@bhbr/minter 0.0.0-stage → 1.0.1
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.
- package/LICENSE +21 -0
- package/README.md +4 -2
- package/dist/boards/Board.d.ts +138 -0
- package/dist/boards/Board.d.ts.map +1 -0
- package/dist/boards/Board.js +1329 -0
- package/dist/boards/Board.js.map +1 -0
- package/dist/boards/BoardCreator.d.ts +8 -0
- package/dist/boards/BoardCreator.d.ts.map +1 -0
- package/dist/boards/BoardCreator.js +24 -0
- package/dist/boards/BoardCreator.js.map +1 -0
- package/dist/boards/EditableLinkHook.d.ts +2 -0
- package/dist/boards/EditableLinkHook.d.ts.map +1 -0
- package/dist/boards/EditableLinkHook.js +137 -0
- package/dist/boards/EditableLinkHook.js.map +1 -0
- package/dist/boards/EditableLinkHookView.d.ts +2 -0
- package/dist/boards/EditableLinkHookView.d.ts.map +1 -0
- package/dist/boards/EditableLinkHookView.js +42 -0
- package/dist/boards/EditableLinkHookView.js.map +1 -0
- package/dist/boards/ExpandButton.d.ts +17 -0
- package/dist/boards/ExpandButton.d.ts.map +1 -0
- package/dist/boards/ExpandButton.js +59 -0
- package/dist/boards/ExpandButton.js.map +1 -0
- package/dist/boards/ExpandedBoardIOList.d.ts +12 -0
- package/dist/boards/ExpandedBoardIOList.d.ts.map +1 -0
- package/dist/boards/ExpandedBoardIOList.js +35 -0
- package/dist/boards/ExpandedBoardIOList.js.map +1 -0
- package/dist/boards/ExpandedBoardInputList.d.ts +4 -0
- package/dist/boards/ExpandedBoardInputList.d.ts.map +1 -0
- package/dist/boards/ExpandedBoardInputList.js +4 -0
- package/dist/boards/ExpandedBoardInputList.js.map +1 -0
- package/dist/boards/ExpandedBoardOutputList.d.ts +4 -0
- package/dist/boards/ExpandedBoardOutputList.d.ts.map +1 -0
- package/dist/boards/ExpandedBoardOutputList.js +4 -0
- package/dist/boards/ExpandedBoardOutputList.js.map +1 -0
- package/dist/boards/constants.d.ts +6 -0
- package/dist/boards/constants.d.ts.map +1 -0
- package/dist/boards/constants.js +6 -0
- package/dist/boards/constants.js.map +1 -0
- package/dist/constants.d.ts +14 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +23 -0
- package/dist/constants.js.map +1 -0
- package/dist/creators/Creator.d.ts +19 -0
- package/dist/creators/Creator.d.ts.map +1 -0
- package/dist/creators/Creator.js +54 -0
- package/dist/creators/Creator.js.map +1 -0
- package/dist/creators/DraggingCreator.d.ts +10 -0
- package/dist/creators/DraggingCreator.d.ts.map +1 -0
- package/dist/creators/DraggingCreator.js +45 -0
- package/dist/creators/DraggingCreator.js.map +1 -0
- package/dist/creators/Freehand.d.ts +16 -0
- package/dist/creators/Freehand.d.ts.map +1 -0
- package/dist/creators/Freehand.js +68 -0
- package/dist/creators/Freehand.js.map +1 -0
- package/dist/creators/SpanningCreator.d.ts +15 -0
- package/dist/creators/SpanningCreator.d.ts.map +1 -0
- package/dist/creators/SpanningCreator.js +66 -0
- package/dist/creators/SpanningCreator.js.map +1 -0
- package/dist/functions/logging.d.ts +4 -0
- package/dist/functions/logging.d.ts.map +1 -0
- package/dist/functions/logging.js +103 -0
- package/dist/functions/logging.js.map +1 -0
- package/dist/functions/math.d.ts +9 -0
- package/dist/functions/math.d.ts.map +1 -0
- package/dist/functions/math.js +85 -0
- package/dist/functions/math.js.map +1 -0
- package/dist/functions/various.d.ts +4 -0
- package/dist/functions/various.d.ts.map +1 -0
- package/dist/functions/various.js +54 -0
- package/dist/functions/various.js.map +1 -0
- package/dist/index.d.ts +77 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/index.js.map +1 -0
- package/dist/linkables/DependencyLink.d.ts +24 -0
- package/dist/linkables/DependencyLink.d.ts.map +1 -0
- package/dist/linkables/DependencyLink.js +70 -0
- package/dist/linkables/DependencyLink.js.map +1 -0
- package/dist/linkables/IOList.d.ts +37 -0
- package/dist/linkables/IOList.d.ts.map +1 -0
- package/dist/linkables/IOList.js +203 -0
- package/dist/linkables/IOList.js.map +1 -0
- package/dist/linkables/InputList.d.ts +7 -0
- package/dist/linkables/InputList.d.ts.map +1 -0
- package/dist/linkables/InputList.js +13 -0
- package/dist/linkables/InputList.js.map +1 -0
- package/dist/linkables/LinkBullet.d.ts +11 -0
- package/dist/linkables/LinkBullet.d.ts.map +1 -0
- package/dist/linkables/LinkBullet.js +35 -0
- package/dist/linkables/LinkBullet.js.map +1 -0
- package/dist/linkables/LinkHook.d.ts +14 -0
- package/dist/linkables/LinkHook.d.ts.map +1 -0
- package/dist/linkables/LinkHook.js +50 -0
- package/dist/linkables/LinkHook.js.map +1 -0
- package/dist/linkables/LinkOutlet.d.ts +26 -0
- package/dist/linkables/LinkOutlet.d.ts.map +1 -0
- package/dist/linkables/LinkOutlet.js +136 -0
- package/dist/linkables/LinkOutlet.js.map +1 -0
- package/dist/linkables/Linkable.d.ts +55 -0
- package/dist/linkables/Linkable.d.ts.map +1 -0
- package/dist/linkables/Linkable.js +258 -0
- package/dist/linkables/Linkable.js.map +1 -0
- package/dist/linkables/OutputList.d.ts +7 -0
- package/dist/linkables/OutputList.d.ts.map +1 -0
- package/dist/linkables/OutputList.js +16 -0
- package/dist/linkables/OutputList.js.map +1 -0
- package/dist/linkables/constants.d.ts +12 -0
- package/dist/linkables/constants.d.ts.map +1 -0
- package/dist/linkables/constants.js +16 -0
- package/dist/linkables/constants.js.map +1 -0
- package/dist/mobjects/Dependency.d.ts +11 -0
- package/dist/mobjects/Dependency.d.ts.map +1 -0
- package/dist/mobjects/Dependency.js +19 -0
- package/dist/mobjects/Dependency.js.map +1 -0
- package/dist/mobjects/MGroup.d.ts +5 -0
- package/dist/mobjects/MGroup.d.ts.map +1 -0
- package/dist/mobjects/MGroup.js +15 -0
- package/dist/mobjects/MGroup.js.map +1 -0
- package/dist/mobjects/Mobject.d.ts +138 -0
- package/dist/mobjects/Mobject.d.ts.map +1 -0
- package/dist/mobjects/Mobject.js +488 -0
- package/dist/mobjects/Mobject.js.map +1 -0
- package/dist/mobjects/Motor.d.ts +20 -0
- package/dist/mobjects/Motor.d.ts.map +1 -0
- package/dist/mobjects/Motor.js +118 -0
- package/dist/mobjects/Motor.js.map +1 -0
- package/dist/mobjects/Sensor.d.ts +112 -0
- package/dist/mobjects/Sensor.d.ts.map +1 -0
- package/dist/mobjects/Sensor.js +650 -0
- package/dist/mobjects/Sensor.js.map +1 -0
- package/dist/mobjects/UpdateCall.d.ts +17 -0
- package/dist/mobjects/UpdateCall.d.ts.map +1 -0
- package/dist/mobjects/UpdateCall.js +67 -0
- package/dist/mobjects/UpdateCall.js.map +1 -0
- package/dist/mobjects/screen_events.d.ts +38 -0
- package/dist/mobjects/screen_events.d.ts.map +1 -0
- package/dist/mobjects/screen_events.js +143 -0
- package/dist/mobjects/screen_events.js.map +1 -0
- package/dist/paper/APILoader.d.ts +10 -0
- package/dist/paper/APILoader.d.ts.map +1 -0
- package/dist/paper/APILoader.js +18 -0
- package/dist/paper/APILoader.js.map +1 -0
- package/dist/paper/Paper.d.ts +34 -0
- package/dist/paper/Paper.d.ts.map +1 -0
- package/dist/paper/Paper.js +210 -0
- package/dist/paper/Paper.js.map +1 -0
- package/dist/paper/PaperView.d.ts +5 -0
- package/dist/paper/PaperView.d.ts.map +1 -0
- package/dist/paper/PaperView.js +9 -0
- package/dist/paper/PaperView.js.map +1 -0
- package/dist/paper/getPaper.d.ts +3 -0
- package/dist/paper/getPaper.d.ts.map +1 -0
- package/dist/paper/getPaper.js +8 -0
- package/dist/paper/getPaper.js.map +1 -0
- package/dist/paper/initPaper.d.ts +2 -0
- package/dist/paper/initPaper.d.ts.map +1 -0
- package/dist/paper/initPaper.js +3 -0
- package/dist/paper/initPaper.js.map +1 -0
- package/dist/shapes/Circle.d.ts +6 -0
- package/dist/shapes/Circle.d.ts.map +1 -0
- package/dist/shapes/Circle.js +20 -0
- package/dist/shapes/Circle.js.map +1 -0
- package/dist/shapes/CircularArc.d.ts +13 -0
- package/dist/shapes/CircularArc.d.ts.map +1 -0
- package/dist/shapes/CircularArc.js +95 -0
- package/dist/shapes/CircularArc.js.map +1 -0
- package/dist/shapes/CurvedArrow.d.ts +19 -0
- package/dist/shapes/CurvedArrow.d.ts.map +1 -0
- package/dist/shapes/CurvedArrow.js +89 -0
- package/dist/shapes/CurvedArrow.js.map +1 -0
- package/dist/shapes/Line.d.ts +14 -0
- package/dist/shapes/Line.d.ts.map +1 -0
- package/dist/shapes/Line.js +33 -0
- package/dist/shapes/Line.js.map +1 -0
- package/dist/shapes/Pill.d.ts +9 -0
- package/dist/shapes/Pill.d.ts.map +1 -0
- package/dist/shapes/Pill.js +51 -0
- package/dist/shapes/Pill.js.map +1 -0
- package/dist/shapes/Rectangle.d.ts +14 -0
- package/dist/shapes/Rectangle.d.ts.map +1 -0
- package/dist/shapes/Rectangle.js +34 -0
- package/dist/shapes/Rectangle.js.map +1 -0
- package/dist/shapes/RoundedRectangle.d.ts +17 -0
- package/dist/shapes/RoundedRectangle.d.ts.map +1 -0
- package/dist/shapes/RoundedRectangle.js +86 -0
- package/dist/shapes/RoundedRectangle.js.map +1 -0
- package/dist/shapes/Square.d.ts +8 -0
- package/dist/shapes/Square.d.ts.map +1 -0
- package/dist/shapes/Square.js +25 -0
- package/dist/shapes/Square.js.map +1 -0
- package/dist/sidebar/Sidebar.d.ts +28 -0
- package/dist/sidebar/Sidebar.d.ts.map +1 -0
- package/dist/sidebar/Sidebar.js +222 -0
- package/dist/sidebar/Sidebar.js.map +1 -0
- package/dist/sidebar/SidebarView.d.ts +5 -0
- package/dist/sidebar/SidebarView.d.ts.map +1 -0
- package/dist/sidebar/SidebarView.js +9 -0
- package/dist/sidebar/SidebarView.js.map +1 -0
- package/dist/sidebar/buttons/BoardButton.d.ts +6 -0
- package/dist/sidebar/buttons/BoardButton.d.ts.map +1 -0
- package/dist/sidebar/buttons/BoardButton.js +14 -0
- package/dist/sidebar/buttons/BoardButton.js.map +1 -0
- package/dist/sidebar/buttons/ControlsButton.d.ts +5 -0
- package/dist/sidebar/buttons/ControlsButton.d.ts.map +1 -0
- package/dist/sidebar/buttons/ControlsButton.js +11 -0
- package/dist/sidebar/buttons/ControlsButton.js.map +1 -0
- package/dist/sidebar/buttons/CreativeButton.d.ts +13 -0
- package/dist/sidebar/buttons/CreativeButton.d.ts.map +1 -0
- package/dist/sidebar/buttons/CreativeButton.js +49 -0
- package/dist/sidebar/buttons/CreativeButton.js.map +1 -0
- package/dist/sidebar/buttons/DragButton.d.ts +5 -0
- package/dist/sidebar/buttons/DragButton.d.ts.map +1 -0
- package/dist/sidebar/buttons/DragButton.js +10 -0
- package/dist/sidebar/buttons/DragButton.js.map +1 -0
- package/dist/sidebar/buttons/EraseButton.d.ts +7 -0
- package/dist/sidebar/buttons/EraseButton.d.ts.map +1 -0
- package/dist/sidebar/buttons/EraseButton.js +34 -0
- package/dist/sidebar/buttons/EraseButton.js.map +1 -0
- package/dist/sidebar/buttons/LinkButton.d.ts +5 -0
- package/dist/sidebar/buttons/LinkButton.d.ts.map +1 -0
- package/dist/sidebar/buttons/LinkButton.js +9 -0
- package/dist/sidebar/buttons/LinkButton.js.map +1 -0
- package/dist/sidebar/buttons/SidebarButton.d.ts +72 -0
- package/dist/sidebar/buttons/SidebarButton.d.ts.map +1 -0
- package/dist/sidebar/buttons/SidebarButton.js +369 -0
- package/dist/sidebar/buttons/SidebarButton.js.map +1 -0
- package/dist/sidebar/buttons/SidebarButtonView.d.ts +6 -0
- package/dist/sidebar/buttons/SidebarButtonView.d.ts.map +1 -0
- package/dist/sidebar/buttons/SidebarButtonView.js +8 -0
- package/dist/sidebar/buttons/SidebarButtonView.js.map +1 -0
- package/dist/sidebar/buttons/ToggleButton.d.ts +17 -0
- package/dist/sidebar/buttons/ToggleButton.d.ts.map +1 -0
- package/dist/sidebar/buttons/ToggleButton.js +79 -0
- package/dist/sidebar/buttons/ToggleButton.js.map +1 -0
- package/dist/sidebar/buttons/button_geometry.d.ts +10 -0
- package/dist/sidebar/buttons/button_geometry.d.ts.map +1 -0
- package/dist/sidebar/buttons/button_geometry.js +15 -0
- package/dist/sidebar/buttons/button_geometry.js.map +1 -0
- package/dist/sidebar/getSidebar.d.ts +3 -0
- package/dist/sidebar/getSidebar.d.ts.map +1 -0
- package/dist/sidebar/getSidebar.js +8 -0
- package/dist/sidebar/getSidebar.js.map +1 -0
- package/dist/sidebar/initSidebar.d.ts +2 -0
- package/dist/sidebar/initSidebar.d.ts.map +1 -0
- package/dist/sidebar/initSidebar.js +3 -0
- package/dist/sidebar/initSidebar.js.map +1 -0
- package/dist/ui/Checkbox.d.ts +20 -0
- package/dist/ui/Checkbox.d.ts.map +1 -0
- package/dist/ui/Checkbox.js +71 -0
- package/dist/ui/Checkbox.js.map +1 -0
- package/dist/ui/InputTextBox.d.ts +24 -0
- package/dist/ui/InputTextBox.d.ts.map +1 -0
- package/dist/ui/InputTextBox.js +104 -0
- package/dist/ui/InputTextBox.js.map +1 -0
- package/dist/ui/LinkableInputTextBox.d.ts +11 -0
- package/dist/ui/LinkableInputTextBox.d.ts.map +1 -0
- package/dist/ui/LinkableInputTextBox.js +32 -0
- package/dist/ui/LinkableInputTextBox.js.map +1 -0
- package/dist/ui/Popover.d.ts +34 -0
- package/dist/ui/Popover.d.ts.map +1 -0
- package/dist/ui/Popover.js +187 -0
- package/dist/ui/Popover.js.map +1 -0
- package/dist/ui/RadioButton.d.ts +16 -0
- package/dist/ui/RadioButton.d.ts.map +1 -0
- package/dist/ui/RadioButton.js +53 -0
- package/dist/ui/RadioButton.js.map +1 -0
- package/dist/ui/RadioButtonList.d.ts +16 -0
- package/dist/ui/RadioButtonList.d.ts.map +1 -0
- package/dist/ui/RadioButtonList.js +71 -0
- package/dist/ui/RadioButtonList.js.map +1 -0
- package/dist/ui/Scroll.d.ts +10 -0
- package/dist/ui/Scroll.d.ts.map +1 -0
- package/dist/ui/Scroll.js +30 -0
- package/dist/ui/Scroll.js.map +1 -0
- package/dist/ui/SimpleButton.d.ts +16 -0
- package/dist/ui/SimpleButton.d.ts.map +1 -0
- package/dist/ui/SimpleButton.js +61 -0
- package/dist/ui/SimpleButton.js.map +1 -0
- package/dist/ui/TextLabel.d.ts +19 -0
- package/dist/ui/TextLabel.d.ts.map +1 -0
- package/dist/ui/TextLabel.js +21 -0
- package/dist/ui/TextLabel.js.map +1 -0
- package/dist/ui/TextLabelView.d.ts +15 -0
- package/dist/ui/TextLabelView.d.ts.map +1 -0
- package/dist/ui/TextLabelView.js +52 -0
- package/dist/ui/TextLabelView.js.map +1 -0
- package/dist/views/Color.d.ts +31 -0
- package/dist/views/Color.d.ts.map +1 -0
- package/dist/views/Color.js +107 -0
- package/dist/views/Color.js.map +1 -0
- package/dist/views/Frame.d.ts +64 -0
- package/dist/views/Frame.d.ts.map +1 -0
- package/dist/views/Frame.js +132 -0
- package/dist/views/Frame.js.map +1 -0
- package/dist/views/ImageView.d.ts +10 -0
- package/dist/views/ImageView.d.ts.map +1 -0
- package/dist/views/ImageView.js +28 -0
- package/dist/views/ImageView.js.map +1 -0
- package/dist/views/View.d.ts +45 -0
- package/dist/views/View.d.ts.map +1 -0
- package/dist/views/View.js +181 -0
- package/dist/views/View.js.map +1 -0
- package/dist/vmobjects/CurvedLine.d.ts +14 -0
- package/dist/vmobjects/CurvedLine.d.ts.map +1 -0
- package/dist/vmobjects/CurvedLine.js +66 -0
- package/dist/vmobjects/CurvedLine.js.map +1 -0
- package/dist/vmobjects/CurvedShape.d.ts +5 -0
- package/dist/vmobjects/CurvedShape.d.ts.map +1 -0
- package/dist/vmobjects/CurvedShape.js +12 -0
- package/dist/vmobjects/CurvedShape.js.map +1 -0
- package/dist/vmobjects/Polygon.d.ts +5 -0
- package/dist/vmobjects/Polygon.d.ts.map +1 -0
- package/dist/vmobjects/Polygon.js +12 -0
- package/dist/vmobjects/Polygon.js.map +1 -0
- package/dist/vmobjects/PolygonalLine.d.ts +9 -0
- package/dist/vmobjects/PolygonalLine.d.ts.map +1 -0
- package/dist/vmobjects/PolygonalLine.js +34 -0
- package/dist/vmobjects/PolygonalLine.js.map +1 -0
- package/dist/vmobjects/VMobject.d.ts +58 -0
- package/dist/vmobjects/VMobject.d.ts.map +1 -0
- package/dist/vmobjects/VMobject.js +165 -0
- package/dist/vmobjects/VMobject.js.map +1 -0
- package/dist/vmobjects/VView.d.ts +19 -0
- package/dist/vmobjects/VView.d.ts.map +1 -0
- package/dist/vmobjects/VView.js +61 -0
- package/dist/vmobjects/VView.js.map +1 -0
- package/package.json +43 -4
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Mobject } from '../mobjects/Mobject.js';
|
|
2
|
+
import { vertex, vertexArray } from '@bhbr/affr2';
|
|
3
|
+
import { Board } from '../boards/Board.js';
|
|
4
|
+
export declare class Creator extends Mobject {
|
|
5
|
+
creation?: Mobject;
|
|
6
|
+
creationStroke: vertexArray;
|
|
7
|
+
helpText: string;
|
|
8
|
+
pointOffset: vertex;
|
|
9
|
+
defaults(): object;
|
|
10
|
+
get parent(): Board;
|
|
11
|
+
set parent(newValue: Board);
|
|
12
|
+
setup(): void;
|
|
13
|
+
getStartPoint(): vertex;
|
|
14
|
+
getEndPoint(): vertex;
|
|
15
|
+
dissolve(): void;
|
|
16
|
+
createMobject(): Mobject;
|
|
17
|
+
updateFromTip(q: vertex, redraw?: boolean): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=Creator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Creator.d.ts","sourceRoot":"","sources":["../../src/creators/Creator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EAAE,MAAM,EAAE,WAAW,EAA6B,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAG1C,qBAAa,OAAQ,SAAQ,OAAO;IAEnC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,EAAE,WAAW,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IAEnB,QAAQ,IAAI,MAAM;IAUlB,IAAI,MAAM,IAAI,KAAK,CAElB;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,EAEzB;IAED,KAAK;IAOL,aAAa,IAAI,MAAM;IAIvB,WAAW,IAAI,MAAM;IAIrB,QAAQ;IAWR,aAAa,IAAI,OAAO;IAMxB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc;CAK/C"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Mobject } from '../mobjects/Mobject.js';
|
|
2
|
+
import { ScreenEventHandler } from '../mobjects/screen_events.js';
|
|
3
|
+
import { vertexAdd } from '@bhbr/affr2';
|
|
4
|
+
export class Creator extends Mobject {
|
|
5
|
+
defaults() {
|
|
6
|
+
return {
|
|
7
|
+
creationStroke: [],
|
|
8
|
+
creation: null,
|
|
9
|
+
screenEventHandler: ScreenEventHandler.Self,
|
|
10
|
+
helpText: '',
|
|
11
|
+
pointOffset: [0, 0]
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
get parent() {
|
|
15
|
+
return super.parent;
|
|
16
|
+
}
|
|
17
|
+
set parent(newValue) {
|
|
18
|
+
super.parent = newValue;
|
|
19
|
+
}
|
|
20
|
+
setup() {
|
|
21
|
+
super.setup();
|
|
22
|
+
this.update({
|
|
23
|
+
anchor: this.getStartPoint()
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
getStartPoint() {
|
|
27
|
+
return this.creationStroke[0] ?? this.view.frame.anchor;
|
|
28
|
+
}
|
|
29
|
+
getEndPoint() {
|
|
30
|
+
return this.creationStroke[this.creationStroke.length - 1] ?? this.view.frame.anchor;
|
|
31
|
+
}
|
|
32
|
+
dissolve() {
|
|
33
|
+
this.remove(this.creation);
|
|
34
|
+
this.creation = this.createMobject();
|
|
35
|
+
this.creation.update({
|
|
36
|
+
anchor: vertexAdd(this.getStartPoint(), this.pointOffset)
|
|
37
|
+
}, true);
|
|
38
|
+
this.parent.addToContent(this.creation);
|
|
39
|
+
this.parent.creator = null;
|
|
40
|
+
this.parent.remove(this);
|
|
41
|
+
}
|
|
42
|
+
createMobject() {
|
|
43
|
+
return new Mobject({
|
|
44
|
+
anchor: this.pointOffset
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
updateFromTip(q, redraw = true) {
|
|
48
|
+
this.updateDependents();
|
|
49
|
+
if (redraw) {
|
|
50
|
+
this.view.redraw();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=Creator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Creator.js","sourceRoot":"","sources":["../../src/creators/Creator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAuB,SAAS,EAAkB,MAAM,aAAa,CAAA;AAI5E,MAAM,OAAO,OAAQ,SAAQ,OAAO;IAOnC,QAAQ;QACP,OAAO;YACN,cAAc,EAAE,EAAE;YAClB,QAAQ,EAAE,IAAI;YACd,kBAAkB,EAAE,kBAAkB,CAAC,IAAI;YAC3C,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SACnB,CAAA;IACF,CAAC;IAED,IAAI,MAAM;QACT,OAAO,KAAK,CAAC,MAAe,CAAA;IAC7B,CAAC;IACD,IAAI,MAAM,CAAC,QAAe;QACzB,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAA;IACxB,CAAC;IAED,KAAK;QACJ,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,IAAI,CAAC,MAAM,CAAC;YACX,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;SAC5B,CAAC,CAAA;IACH,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IACxD,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IACrF,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC;SACzD,EAAE,IAAI,CAAC,CAAA;QACR,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,OAAO,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,WAAW;SACxB,CAAC,CAAA;IACH,CAAC;IAED,aAAa,CAAC,CAAS,EAAE,SAAkB,IAAI;QAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,MAAM,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;QAAC,CAAC;IACnC,CAAC;CAED"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Mobject } from '../mobjects/Mobject.js';
|
|
2
|
+
import { Creator } from './Creator.js';
|
|
3
|
+
import { vertex } from '@bhbr/affr2';
|
|
4
|
+
export declare class DraggingCreator extends Creator {
|
|
5
|
+
setup(): void;
|
|
6
|
+
createMobject(): Mobject;
|
|
7
|
+
updateFromTip(q: vertex, redraw?: boolean): void;
|
|
8
|
+
dissolve(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=DraggingCreator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DraggingCreator.d.ts","sourceRoot":"","sources":["../../src/creators/DraggingCreator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,MAAM,EAA6B,MAAM,aAAa,CAAA;AAK/D,qBAAa,eAAgB,SAAQ,OAAO;IAE3C,KAAK;IAML,aAAa,IAAI,OAAO;IAYxB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc;IAQ/C,QAAQ;CAWR"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Creator } from './Creator.js';
|
|
2
|
+
import { Color } from '../views/Color.js';
|
|
3
|
+
import { vertexAdd, vertexSubtract } from '@bhbr/affr2';
|
|
4
|
+
import { Rectangle } from '../shapes/Rectangle.js';
|
|
5
|
+
import { VView } from '../vmobjects/VView.js';
|
|
6
|
+
export class DraggingCreator extends Creator {
|
|
7
|
+
setup() {
|
|
8
|
+
super.setup();
|
|
9
|
+
this.creation = this.createMobject();
|
|
10
|
+
this.add(this.creation);
|
|
11
|
+
}
|
|
12
|
+
createMobject() {
|
|
13
|
+
return new Rectangle({
|
|
14
|
+
width: 50,
|
|
15
|
+
height: 50,
|
|
16
|
+
view: new VView({
|
|
17
|
+
fillColor: Color.red(),
|
|
18
|
+
fillOpacity: 1.0
|
|
19
|
+
}),
|
|
20
|
+
anchor: this.pointOffset
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
updateFromTip(q, redraw = true) {
|
|
24
|
+
super.updateFromTip(q, false);
|
|
25
|
+
this.creation.update({
|
|
26
|
+
anchor: vertexAdd(vertexSubtract(q, this.getStartPoint()), this.pointOffset)
|
|
27
|
+
}, redraw);
|
|
28
|
+
if (redraw) {
|
|
29
|
+
this.view.redraw();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
dissolve() {
|
|
33
|
+
if (this.creation === null) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.creation.update({
|
|
37
|
+
anchor: vertexAdd(this.creation.anchor, this.anchor)
|
|
38
|
+
});
|
|
39
|
+
this.remove(this.creation);
|
|
40
|
+
this.parent.addToContent(this.creation);
|
|
41
|
+
this.parent.creator = null;
|
|
42
|
+
this.parent.remove(this);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=DraggingCreator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DraggingCreator.js","sourceRoot":"","sources":["../../src/creators/DraggingCreator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAU,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAG7C,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAE3C,KAAK;QACJ,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACpC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACxB,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,SAAS,CAAC;YACpB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,IAAI,KAAK,CAAC;gBACf,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE;gBACtB,WAAW,EAAE,GAAG;aAChB,CAAC;YACF,MAAM,EAAE,IAAI,CAAC,WAAW;SACxB,CAAC,CAAA;IACH,CAAC;IAED,aAAa,CAAC,CAAS,EAAE,SAAkB,IAAI;QAC9C,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC;SAC5E,EAAE,MAAM,CAAC,CAAA;QACV,IAAI,MAAM,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;QAAC,CAAC;IACnC,CAAC;IAED,QAAQ;QACP,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAAC,OAAM;QAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;SACpD,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;CAED"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Creator } from '../creators/Creator.js';
|
|
2
|
+
import { PolygonalLine } from '../vmobjects/PolygonalLine.js';
|
|
3
|
+
import { vertex } from '@bhbr/affr2';
|
|
4
|
+
import { Color } from '../views/Color.js';
|
|
5
|
+
export declare class Freehand extends Creator {
|
|
6
|
+
line: PolygonalLine;
|
|
7
|
+
penStrokeColor: Color;
|
|
8
|
+
penStrokeWidth: number;
|
|
9
|
+
penStrokeLength: number;
|
|
10
|
+
defaults(): object;
|
|
11
|
+
mutabilities(): object;
|
|
12
|
+
setup(): void;
|
|
13
|
+
updateFromTip(q: vertex, redraw?: boolean): void;
|
|
14
|
+
dissolve(): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=Freehand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Freehand.d.ts","sourceRoot":"","sources":["../../src/creators/Freehand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAkB,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAMzC,qBAAa,QAAS,SAAQ,OAAO;IAEpC,IAAI,EAAE,aAAa,CAAA;IACnB,cAAc,EAAE,KAAK,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IAEvB,QAAQ,IAAI,MAAM;IAYlB,YAAY,IAAI,MAAM;IAOtB,KAAK;IAaL,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc;IAQ/C,QAAQ;CAwBR"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Creator } from '../creators/Creator.js';
|
|
2
|
+
import { PolygonalLine } from '../vmobjects/PolygonalLine.js';
|
|
3
|
+
import { Color } from '../views/Color.js';
|
|
4
|
+
import { ScreenEventHandler } from '../mobjects/screen_events.js';
|
|
5
|
+
export class Freehand extends Creator {
|
|
6
|
+
defaults() {
|
|
7
|
+
return {
|
|
8
|
+
screenEventHandler: ScreenEventHandler.Below,
|
|
9
|
+
line: new PolygonalLine({
|
|
10
|
+
closed: false
|
|
11
|
+
}),
|
|
12
|
+
penStrokeColor: Color.white(),
|
|
13
|
+
penStrokeWidth: 1.0,
|
|
14
|
+
penStrokeLength: 2.0
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
mutabilities() {
|
|
18
|
+
return {
|
|
19
|
+
screenEventHandler: 'never',
|
|
20
|
+
line: 'never'
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
setup() {
|
|
24
|
+
super.setup();
|
|
25
|
+
this.update({
|
|
26
|
+
anchor: [0, 0]
|
|
27
|
+
});
|
|
28
|
+
this.line.update({
|
|
29
|
+
anchor: [0, 0],
|
|
30
|
+
vertices: this.creationStroke
|
|
31
|
+
});
|
|
32
|
+
this.addDependency('penStrokeColor', this.line, 'strokeColor');
|
|
33
|
+
this.add(this.line);
|
|
34
|
+
}
|
|
35
|
+
updateFromTip(q, redraw = true) {
|
|
36
|
+
super.updateFromTip(q, false);
|
|
37
|
+
if (redraw) {
|
|
38
|
+
this.line.view.redraw();
|
|
39
|
+
this.view.redraw();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
dissolve() {
|
|
43
|
+
this.update({
|
|
44
|
+
frameWidth: this.line.getWidth(),
|
|
45
|
+
frameHeight: this.line.getHeight()
|
|
46
|
+
});
|
|
47
|
+
let tl = this.line.ulCorner();
|
|
48
|
+
this.update({
|
|
49
|
+
anchor: tl
|
|
50
|
+
});
|
|
51
|
+
for (var i = 0; i < this.line.vertices.length; i++) {
|
|
52
|
+
this.line.vertices[i][0] -= tl[0];
|
|
53
|
+
this.line.vertices[i][1] -= tl[1];
|
|
54
|
+
}
|
|
55
|
+
this.line.view.redraw();
|
|
56
|
+
let par = this.parent;
|
|
57
|
+
if (par === null || par === undefined) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
par.creator = null;
|
|
61
|
+
par.remove(this);
|
|
62
|
+
if (this.view.visible) {
|
|
63
|
+
par.addToContent(this);
|
|
64
|
+
par.content.moveToBack(this);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=Freehand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Freehand.js","sourceRoot":"","sources":["../../src/creators/Freehand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Creator } from './Creator.js';
|
|
2
|
+
import { Rectangle } from '../shapes/Rectangle.js';
|
|
3
|
+
import { vertex } from '@bhbr/affr2';
|
|
4
|
+
export declare class SpanningCreator extends Creator {
|
|
5
|
+
rectangle: Rectangle;
|
|
6
|
+
defaults(): object;
|
|
7
|
+
mutabilities(): object;
|
|
8
|
+
setup(): void;
|
|
9
|
+
topLeftVertex(): vertex;
|
|
10
|
+
getWidth(): number;
|
|
11
|
+
getHeight(): number;
|
|
12
|
+
updateFromTip(q: vertex, redraw?: boolean): void;
|
|
13
|
+
dissolve(): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=SpanningCreator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpanningCreator.d.ts","sourceRoot":"","sources":["../../src/creators/SpanningCreator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAa,MAAM,aAAa,CAAA;AAK/C,qBAAa,eAAgB,SAAQ,OAAO;IAE3C,SAAS,EAAE,SAAS,CAAA;IAEpB,QAAQ,IAAI,MAAM;IAMlB,YAAY,IAAI,MAAM;IAMtB,KAAK;IASL,aAAa,IAAI,MAAM;IAOvB,QAAQ,IAAI,MAAM;IAIlB,SAAS,IAAI,MAAM;IAInB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc;IAU/C,QAAQ;CAoBR"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Creator } from './Creator.js';
|
|
2
|
+
import { Rectangle } from '../shapes/Rectangle.js';
|
|
3
|
+
import { vertexAdd } from '@bhbr/affr2';
|
|
4
|
+
import { Linkable } from '../linkables/Linkable.js';
|
|
5
|
+
export class SpanningCreator extends Creator {
|
|
6
|
+
defaults() {
|
|
7
|
+
return {
|
|
8
|
+
rectangle: new Rectangle()
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
mutabilities() {
|
|
12
|
+
return {
|
|
13
|
+
rectangle: 'always' // should be never (Mobject bug)
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
setup() {
|
|
17
|
+
super.setup();
|
|
18
|
+
this.add(this.rectangle);
|
|
19
|
+
//this.addDependency('topLeftVertex', this.rectangle, 'anchor')
|
|
20
|
+
this.addDependency('getWidth', this.rectangle, 'width');
|
|
21
|
+
this.addDependency('getHeight', this.rectangle, 'height');
|
|
22
|
+
}
|
|
23
|
+
topLeftVertex() {
|
|
24
|
+
return vertexAdd([
|
|
25
|
+
Math.min(this.getStartPoint()[0], this.getEndPoint()[0]),
|
|
26
|
+
Math.min(this.getStartPoint()[1], this.getEndPoint()[1])
|
|
27
|
+
], this.pointOffset);
|
|
28
|
+
}
|
|
29
|
+
getWidth() {
|
|
30
|
+
return Math.abs(this.getStartPoint()[0] - this.getEndPoint()[0]);
|
|
31
|
+
}
|
|
32
|
+
getHeight() {
|
|
33
|
+
return Math.abs(this.getStartPoint()[1] - this.getEndPoint()[1]);
|
|
34
|
+
}
|
|
35
|
+
updateFromTip(q, redraw = true) {
|
|
36
|
+
super.updateFromTip(q, false);
|
|
37
|
+
this.update({
|
|
38
|
+
anchor: this.topLeftVertex(),
|
|
39
|
+
frameWidth: this.getWidth(),
|
|
40
|
+
frameHeight: this.getHeight()
|
|
41
|
+
});
|
|
42
|
+
if (redraw) {
|
|
43
|
+
this.view.redraw();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
dissolve() {
|
|
47
|
+
let w = this.getWidth();
|
|
48
|
+
let h = this.getHeight();
|
|
49
|
+
if (this.creation) {
|
|
50
|
+
this.remove(this.creation);
|
|
51
|
+
}
|
|
52
|
+
this.creation = this.createMobject();
|
|
53
|
+
this.creation.update({
|
|
54
|
+
anchor: this.topLeftVertex(),
|
|
55
|
+
frameWidth: w,
|
|
56
|
+
frameHeight: h
|
|
57
|
+
});
|
|
58
|
+
if (this.creation instanceof Linkable) {
|
|
59
|
+
this.creation.positionIOLists();
|
|
60
|
+
}
|
|
61
|
+
this.parent.addToContent(this.creation);
|
|
62
|
+
this.parent.creator = null;
|
|
63
|
+
this.parent.remove(this);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=SpanningCreator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpanningCreator.js","sourceRoot":"","sources":["../../src/creators/SpanningCreator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/functions/logging.ts"],"names":[],"mappings":"AAyEA,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAE1C;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,QAE/B;AAaD,wBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,QAI3B"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { isTouchDevice } from '../mobjects/screen_events.js';
|
|
2
|
+
import { SHOW_HTML_CONSOLE } from '../constants.js';
|
|
3
|
+
let debugging = true;
|
|
4
|
+
let logTimestamps = false;
|
|
5
|
+
// logging inside HTML instead of the console
|
|
6
|
+
// for debugging the app e. g. on iPad
|
|
7
|
+
function logInto(obj, id) {
|
|
8
|
+
let msg = obj.toString() + '\n';
|
|
9
|
+
let htmlConsole = document.querySelector('#' + id);
|
|
10
|
+
htmlConsole.hidden = (isTouchDevice && !SHOW_HTML_CONSOLE) || !isTouchDevice;
|
|
11
|
+
htmlConsole.append(msg);
|
|
12
|
+
// push old log entries out the top of the scroll view
|
|
13
|
+
// (these lines don't work though)
|
|
14
|
+
htmlConsole.scrollTop = htmlConsole.scrollHeight;
|
|
15
|
+
}
|
|
16
|
+
function mereLogString(msg) {
|
|
17
|
+
if (msg === undefined) {
|
|
18
|
+
return 'undefined';
|
|
19
|
+
}
|
|
20
|
+
else if (msg === null) {
|
|
21
|
+
return 'null';
|
|
22
|
+
}
|
|
23
|
+
else if (typeof msg === 'string') {
|
|
24
|
+
return msg;
|
|
25
|
+
}
|
|
26
|
+
else if (typeof msg === 'boolean') {
|
|
27
|
+
return msg ? 'true' : 'false';
|
|
28
|
+
}
|
|
29
|
+
else if (typeof msg === 'number') {
|
|
30
|
+
return msg.toString();
|
|
31
|
+
}
|
|
32
|
+
else if (msg.constructor.name == 'Array' || msg.constructor.name == 'Vertex') {
|
|
33
|
+
if (msg.length == 0) {
|
|
34
|
+
return "[]";
|
|
35
|
+
}
|
|
36
|
+
else if (msg[0].constructor.name == 'HTMLDivElement') {
|
|
37
|
+
let ret = '[';
|
|
38
|
+
for (let i = 0; i < msg.length - 1; i++) {
|
|
39
|
+
ret += msg[i].className + ', ';
|
|
40
|
+
}
|
|
41
|
+
ret += msg[msg.length - 1].className + ']';
|
|
42
|
+
return ret;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
let ret = '[';
|
|
46
|
+
for (let i = 0; i < msg.length - 1; i++) {
|
|
47
|
+
ret += mereLogString(msg[i]) + ', ';
|
|
48
|
+
}
|
|
49
|
+
ret += mereLogString(msg[msg.length - 1]) + ']';
|
|
50
|
+
return ret;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
let keys = Object.keys(msg);
|
|
55
|
+
if (keys.length == 0) {
|
|
56
|
+
return '{}';
|
|
57
|
+
}
|
|
58
|
+
else if (keys.length <= 5) {
|
|
59
|
+
var ret = '{ ';
|
|
60
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
61
|
+
ret += keys[i] + ' : ' + mereLogString(msg[keys[i]]) + ', ';
|
|
62
|
+
}
|
|
63
|
+
ret += keys[keys.length - 1] + ' : ' + mereLogString(msg[keys[keys.length - 1]]) + ' }';
|
|
64
|
+
return ret;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return msg.constructor.name;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function datedLogString(msg) {
|
|
72
|
+
return `${Date.now()} ${mereLogString(msg)}`;
|
|
73
|
+
}
|
|
74
|
+
export function logString(msg) {
|
|
75
|
+
return logTimestamps ? datedLogString(msg) : mereLogString(msg);
|
|
76
|
+
}
|
|
77
|
+
export function htmlLog(msg) {
|
|
78
|
+
logInto(logString(msg), 'htmlConsole');
|
|
79
|
+
}
|
|
80
|
+
function jsLog(msg) {
|
|
81
|
+
if (typeof msg == 'string') {
|
|
82
|
+
console.log(logString(msg));
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
if (logTimestamps) {
|
|
86
|
+
console.log(`${Date.now()}`, msg);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log(msg);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export function log(msg) {
|
|
94
|
+
// device-agnostic log function
|
|
95
|
+
// this should be used for logging
|
|
96
|
+
if (isTouchDevice && debugging) {
|
|
97
|
+
htmlLog(msg);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
jsLog(msg);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/functions/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function numberArraySum(arr: Array<number>): number;
|
|
2
|
+
export declare function numberArrayAverage(arr: Array<number>): number;
|
|
3
|
+
export declare function numberArrayCumSum(arr: Array<number>): Array<number>;
|
|
4
|
+
export declare function numberArrayCumAverage(arr: Array<number>): Array<number>;
|
|
5
|
+
export declare function factorial(n: number): number;
|
|
6
|
+
export declare function binomial(n: number, k: number): number;
|
|
7
|
+
export declare function gaussianRandom(mean?: number, stdev?: number): number;
|
|
8
|
+
export declare function randomBinomial(n?: number, p?: number): number;
|
|
9
|
+
//# sourceMappingURL=math.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/functions/math.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAMzD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAG7D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CASnE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CASvE;AAUD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CASrD;AAUD,wBAAgB,cAAc,CAAC,IAAI,GAAE,MAAU,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAM1E;AAED,wBAAgB,cAAc,CAAC,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAY,GAAG,MAAM,CAUrE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
///////////////////////
|
|
2
|
+
// SUMS AND AVERAGES //
|
|
3
|
+
///////////////////////
|
|
4
|
+
export function numberArraySum(arr) {
|
|
5
|
+
var sum = 0;
|
|
6
|
+
for (var i = 0; i < arr.length; i++) {
|
|
7
|
+
sum += arr[i];
|
|
8
|
+
}
|
|
9
|
+
return sum;
|
|
10
|
+
}
|
|
11
|
+
export function numberArrayAverage(arr) {
|
|
12
|
+
if (arr.length == 0) {
|
|
13
|
+
return NaN;
|
|
14
|
+
}
|
|
15
|
+
return numberArraySum(arr) / arr.length;
|
|
16
|
+
}
|
|
17
|
+
export function numberArrayCumSum(arr) {
|
|
18
|
+
if (arr.length == 0) {
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
let cumsum = [];
|
|
22
|
+
var sum = 0;
|
|
23
|
+
for (var i = 0; i < arr.length; i++) {
|
|
24
|
+
sum += arr[i];
|
|
25
|
+
cumsum.push(sum);
|
|
26
|
+
}
|
|
27
|
+
return cumsum;
|
|
28
|
+
}
|
|
29
|
+
export function numberArrayCumAverage(arr) {
|
|
30
|
+
if (arr.length == 0) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
let cumsum = [];
|
|
34
|
+
var sum = 0;
|
|
35
|
+
for (var i = 0; i < arr.length; i++) {
|
|
36
|
+
sum += arr[i];
|
|
37
|
+
cumsum.push(sum / (i + 1));
|
|
38
|
+
}
|
|
39
|
+
return cumsum;
|
|
40
|
+
}
|
|
41
|
+
///////////////////
|
|
42
|
+
// COMBINATORICS //
|
|
43
|
+
///////////////////
|
|
44
|
+
export function factorial(n) {
|
|
45
|
+
if (n == 0 || n == 1) {
|
|
46
|
+
return 1;
|
|
47
|
+
}
|
|
48
|
+
var prod = 1;
|
|
49
|
+
for (var i = 2; i <= n; i++) {
|
|
50
|
+
prod *= i;
|
|
51
|
+
}
|
|
52
|
+
return prod;
|
|
53
|
+
}
|
|
54
|
+
export function binomial(n, k) {
|
|
55
|
+
var prod = 1;
|
|
56
|
+
for (var i = 0; i < k; i++) {
|
|
57
|
+
prod *= (n - i) / (k - i);
|
|
58
|
+
}
|
|
59
|
+
for (var j = 0; j < n - k; j++) {
|
|
60
|
+
prod *= (n - k - j) / (j + 1);
|
|
61
|
+
}
|
|
62
|
+
return Math.round(prod);
|
|
63
|
+
}
|
|
64
|
+
//////////
|
|
65
|
+
// RNGS //
|
|
66
|
+
//////////
|
|
67
|
+
export function gaussianRandom(mean = 0, stdev = 1) {
|
|
68
|
+
const u = 1 - Math.random(); // Converting [0,1) to (0,1]
|
|
69
|
+
const v = Math.random();
|
|
70
|
+
const z = Math.sqrt(-2.0 * Math.log(u)) * Math.cos(2.0 * Math.PI * v);
|
|
71
|
+
// Transform to the desired mean and standard deviation:
|
|
72
|
+
return z * stdev + mean;
|
|
73
|
+
}
|
|
74
|
+
export function randomBinomial(n = 1, p = 0.5) {
|
|
75
|
+
if (n < 5e3) {
|
|
76
|
+
var X = 0;
|
|
77
|
+
for (var i = 0; i < n; i++) {
|
|
78
|
+
let v = (Math.random() < p) ? 1 : 0;
|
|
79
|
+
X += v;
|
|
80
|
+
}
|
|
81
|
+
return X;
|
|
82
|
+
}
|
|
83
|
+
return Math.round(gaussianRandom(n * p, (n * p * (1 - p)) ** 0.5));
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=math.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/functions/math.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function roundedString(x: number, digits?: number): string;
|
|
2
|
+
export declare function prettyPrint(value: any, precision?: number): string;
|
|
3
|
+
export declare function conditionTrigger(condition: () => boolean, handler: () => void, period?: number): void;
|
|
4
|
+
//# sourceMappingURL=various.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"various.d.ts","sourceRoot":"","sources":["../../src/functions/various.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAyBnE;AAUD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,GAAE,MAAW,GAAG,MAAM,CAMtE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,MAAM,GAAE,MAAY,QASnG"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export function roundedString(x, digits = 3) {
|
|
2
|
+
//log(x)
|
|
3
|
+
if (digits <= 0) {
|
|
4
|
+
digits = 1;
|
|
5
|
+
}
|
|
6
|
+
let signed = (x < 0);
|
|
7
|
+
x = Math.abs(x);
|
|
8
|
+
let maxDecimalPlace = Math.floor(Math.log10(x));
|
|
9
|
+
//log(maxDecimalPlace)
|
|
10
|
+
let minDecimalPlace = maxDecimalPlace - digits + 1;
|
|
11
|
+
//log(minDecimalPlace)
|
|
12
|
+
let y = x * 10 ** (-minDecimalPlace);
|
|
13
|
+
//log(y)
|
|
14
|
+
let z = Math.round(y);
|
|
15
|
+
//log(z)
|
|
16
|
+
let w = z * 10 ** minDecimalPlace;
|
|
17
|
+
//log(w)
|
|
18
|
+
let s = w.toString();
|
|
19
|
+
//log(s)
|
|
20
|
+
if (s.includes('.')) {
|
|
21
|
+
let t = s.substring(0, digits + 1);
|
|
22
|
+
return `${signed ? '-' : ''}${t}`;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return `${signed ? '-' : ''}${s}`;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function prettyPrintNumber(value, precision = 4) {
|
|
29
|
+
if (Math.round(value) != value) {
|
|
30
|
+
return value.toPrecision(precision);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return `${value}`;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export function prettyPrint(value, precision = 4) {
|
|
37
|
+
if (typeof value == 'number') {
|
|
38
|
+
return prettyPrintNumber(value);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return `${value}`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function conditionTrigger(condition, handler, period = 0.1) {
|
|
45
|
+
let id = `timeoutID_${Date.now()}`;
|
|
46
|
+
window[id] = window.setInterval(function () {
|
|
47
|
+
if (condition()) {
|
|
48
|
+
window.clearInterval(window[id]);
|
|
49
|
+
delete window[id];
|
|
50
|
+
handler();
|
|
51
|
+
}
|
|
52
|
+
}, period * 1000);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=various.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"various.js","sourceRoot":"","sources":["../../src/functions/various.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,SAAiB,CAAC;IAC1D,QAAQ;IACR,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACjB,MAAM,GAAG,CAAC,CAAA;IACX,CAAC;IACD,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACpB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACf,IAAI,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,sBAAsB;IACtB,IAAI,eAAe,GAAG,eAAe,GAAG,MAAM,GAAG,CAAC,CAAA;IAClD,sBAAsB;IACtB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,eAAe,CAAC,CAAA;IACpC,QAAQ;IACR,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACrB,QAAQ;IACR,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,eAAe,CAAA;IACjC,QAAQ;IACR,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;IACpB,QAAQ;IACR,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;QAClC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;IAClC,CAAC;SAAM,CAAC;QACP,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;IAClC,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAE,YAAoB,CAAC;IAC9D,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IACpC,CAAC;SAAM,CAAC;QACP,OAAO,GAAG,KAAK,EAAE,CAAC;IACnB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAU,EAAE,YAAqB,CAAC;IAC7D,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,KAAe,CAAC,CAAA;IAC1C,CAAC;SAAM,CAAC;QACP,OAAO,GAAG,KAAK,EAAE,CAAC;IACnB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAwB,EAAE,OAAmB,EAAE,SAAiB,GAAG;IACnG,IAAI,EAAE,GAAG,aAAa,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;IAClC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;QAC/B,IAAI,SAAS,EAAE,EAAE,CAAC;YACjB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;YAChC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;YACjB,OAAO,EAAE,CAAA;QACV,CAAC;IACF,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;AAClB,CAAC"}
|