Skip to content

Commit b70cdd6

Browse files
committed
Merge branch 'master' into release
2 parents 8c36726 + 74971ea commit b70cdd6

File tree

262 files changed

+7843
-1037
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

262 files changed

+7843
-1037
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ var context = infiniteCanvas.getContext("2d");
2323
Include `InfiniteCanvas` in your web page:
2424

2525
```html
26-
<script src="https://cdn.jsdelivr.net/npm/ef-infinite-canvas@0.5.7-alpha/dist/infinite-canvas.js"></script>
26+
<script src="https://cdn.jsdelivr.net/npm/ef-infinite-canvas@0.6.0-alpha/dist/infinite-canvas.js"></script>
2727
```
2828

2929
or install it using npm:

dist/infinite-canvas.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/types/add-event-listener-options.d.ts

-9
This file was deleted.

dist/types/draw-event.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import { Transformed } from "./transformed";
2-
export interface DrawEvent extends Transformed {
2+
export interface DrawEvent extends Event, Transformed {
33
}

dist/types/event-listener.d.ts

-2
This file was deleted.

dist/types/event-map.d.ts

+29-9
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,43 @@
11
import { DrawEvent } from "./draw-event";
2+
import { InfiniteCanvasEventWithDefaultBehavior } from "./infinite-canvas-event-with-default-behavior";
3+
import { InfiniteCanvasTouchEvent } from "./infinite-canvas-touch-event";
24
import { TransformationEvent } from "./transformation-event";
3-
export interface EventMap {
4-
/**
5-
* Emitted when the {@link InfiniteCanvas} has drawn its content on the underlying `<canvas>`
6-
*/
7-
"draw": DrawEvent;
5+
export interface EventMap extends HTMLElementEventMap {
86
/**
97
* Emitted when {@link InfiniteCanvas} begins transforming (for example when the user begins to pan)
108
*/
11-
"transformationStart": TransformationEvent;
9+
transformationstart: TransformationEvent;
1210
/**
1311
* Emitted when {@link InfiniteCanvas} transforms (for example when the user pans)
1412
*/
15-
"transformationChange": TransformationEvent;
13+
transformationchange: TransformationEvent;
1614
/**
1715
* Emitted when {@link InfiniteCanvas} has finished transforming
1816
*/
19-
"transformationEnd": TransformationEvent;
17+
transformationend: TransformationEvent;
18+
/**
19+
* Emitted when the {@link InfiniteCanvas} has drawn its content on the underlying `<canvas>`
20+
*/
21+
draw: DrawEvent;
22+
/**
23+
* Emitted when {@link Config#greedyGestureHandling} is `false` and the user 'scrolls' (uses the mouse wheel) without using the Ctrl key
24+
*/
25+
wheelignored: Event;
26+
/**
27+
* Emitted when {@link Config#greedyGestureHandling} is `false` and the user uses one one finger
28+
*/
29+
touchignored: Event;
30+
mousedown: MouseEvent & InfiniteCanvasEventWithDefaultBehavior;
31+
pointerdown: PointerEvent & InfiniteCanvasEventWithDefaultBehavior;
32+
wheel: WheelEvent & InfiniteCanvasEventWithDefaultBehavior;
33+
touchstart: InfiniteCanvasTouchEvent & InfiniteCanvasEventWithDefaultBehavior;
34+
touchmove: InfiniteCanvasTouchEvent;
35+
touchend: InfiniteCanvasTouchEvent;
36+
touchcancel: InfiniteCanvasTouchEvent;
2037
}
21-
export * from './draw-event';
38+
export * from "./draw-event";
2239
export * from './transformation-event';
40+
export * from './infinite-canvas-touch-event';
2341
export * from './transformed';
42+
export * from './infinite-canvas-event-with-default-behavior';
43+
export * from './infinite-canvas-touch-event';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* This represents an a DOM event to which {@link InfiniteCanvas} attaches a default behavior.
3+
*
4+
* @example
5+
* ```js
6+
* infCanvas.addEventListener('mousedown', e => {
7+
* console.log(e.nativeDefaultPrevented)
8+
* // --> `false`
9+
*
10+
* // keep the InfiniteCanvas from panning
11+
* e.preventDefault(true);
12+
*
13+
* console.log(e.nativeDefaultPrevented);
14+
* // --> `true`, because the original mouse event's default was also prevented
15+
* });
16+
* ```
17+
*/
18+
export interface InfiniteCanvasEventWithDefaultBehavior {
19+
/**
20+
* Returns whether the default for the original DOM event was prevented
21+
*/
22+
readonly nativeDefaultPrevented: boolean;
23+
/**
24+
* Returns whether the default for the original DOM event is cancelable
25+
*/
26+
readonly nativeCancelable: boolean;
27+
/**
28+
* Prevents {@link InfiniteCanvas}'s default behavior from occuring
29+
* @param preventNativeDefault whether or not to also prevent the default behavior of the 'native' event
30+
*/
31+
preventDefault(preventNativeDefault?: boolean): void;
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { InfiniteCanvasTouchList } from "./infinite-canvas-touch-list";
2+
export interface InfiniteCanvasTouchEvent extends TouchEvent {
3+
readonly targetTouches: InfiniteCanvasTouchList;
4+
readonly changedTouches: InfiniteCanvasTouchList;
5+
readonly touches: InfiniteCanvasTouchList;
6+
}
7+
export * from './infinite-canvas-touch-list';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { InfiniteCanvasTouch } from "./infinite-canvas-touch";
2+
export interface InfiniteCanvasTouchList extends TouchList {
3+
item(index: number): InfiniteCanvasTouch | null;
4+
[index: number]: InfiniteCanvasTouch;
5+
}
6+
export * from './infinite-canvas-touch';

dist/types/infinite-canvas-touch.d.ts

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export interface InfiniteCanvasTouch extends Touch {
2+
/**
3+
* the x coordinate of the point on {@link InfiniteCanvas} where the touch is
4+
*/
5+
infiniteCanvasX: number;
6+
/**
7+
* the y coordinate of the point on {@link InfiniteCanvas} where the touch is
8+
*/
9+
infiniteCanvasY: number;
10+
}

dist/types/infinite-canvas.d.ts

+39-25
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,51 @@ import { Config } from "./config";
22
import { Units } from "./units";
33
import { InfiniteCanvasRenderingContext2D } from "./infinite-canvas-rendering-context-2d";
44
import { EventMap } from "./event-map";
5-
import { AddEventListenerOptions } from "./add-event-listener-options";
6-
import { EventListener } from "./event-listener";
7-
export interface InfiniteCanvas extends Config {
5+
import { TransformationEvent } from "./transformation-event";
6+
import { Transformed } from './transformed';
7+
export interface InfiniteCanvasEventHandlers extends DocumentAndElementEventHandlers, GlobalEventHandlers {
8+
/**
9+
* The [event handler property](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_handler_properties) for the {@link EventMap.transformationstart} event
10+
*/
11+
ontransformationstart: ((this: InfiniteCanvas, event: TransformationEvent) => any) | null;
12+
/**
13+
* The [event handler property](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_handler_properties) for the {@link EventMap.transformationchange} event
14+
*/
15+
ontransformationchange: ((this: InfiniteCanvas, event: TransformationEvent) => any) | null;
16+
/**
17+
* The [event handler property](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_handler_properties) for the {@link EventMap.transformationend} event
18+
*/
19+
ontransformationend: ((this: InfiniteCanvas, event: TransformationEvent) => any) | null;
20+
/**
21+
* The [event handler property](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_handler_properties) for the {@link EventMap.draw} event
22+
*/
23+
ondraw: ((this: InfiniteCanvas, event: TransformationEvent) => any) | null;
24+
/**
25+
* The [event handler property](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_handler_properties) for the {@link EventMap.wheelignored} event
26+
*/
27+
onwheelignored: ((this: InfiniteCanvas, event: Event) => any) | null;
28+
/**
29+
* The [event handler property](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_handler_properties) for the {@link EventMap.touchignored} event
30+
*/
31+
ontouchignored: ((this: InfiniteCanvas, event: Event) => any) | null;
32+
/**
33+
* See [`addEventListener`](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)
34+
*/
35+
addEventListener<K extends keyof EventMap>(type: K, listener: (this: InfiniteCanvas, ev: EventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
36+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
37+
/**
38+
* See [`removeEventListener`](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener)
39+
*/
40+
removeEventListener<K extends keyof EventMap>(type: K, listener: (this: InfiniteCanvas, ev: EventMap[K]) => any, options?: boolean | EventListenerOptions): void;
41+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
42+
}
43+
export interface InfiniteCanvas extends Config, InfiniteCanvasEventHandlers, Transformed {
844
/**
945
* This methods return the {@link InfiniteCanvasRenderingContext2D} belonging to this instance of {@link InfiniteCanvas}
1046
*
1147
* @param contextType for (partial) compatibility with the other [getContext()](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext)
1248
*/
1349
getContext(contextType?: '2d'): InfiniteCanvasRenderingContext2D;
14-
/**
15-
* Adds an event listener to an {@link InfiniteCanvas}
16-
*
17-
* @example
18-
* ```js
19-
* infCanvas.addEventListener('draw', () => {
20-
* console.log('drawn!')
21-
* })
22-
* ```
23-
* @param type The type of event to listen to
24-
* @param listener The listener to add
25-
* @param options An optional options object
26-
*/
27-
addEventListener<K extends keyof EventMap>(type: K, listener: EventListener<K>, options?: AddEventListenerOptions): void;
28-
/**
29-
* Removes an event listener
30-
* @param type The type of event that the listener to remove is listening to
31-
* @param listener The listener to remove
32-
*/
33-
removeEventListener<K extends keyof EventMap>(type: K, listener: EventListener<K>): void;
3450
}
3551
export interface InfiniteCanvasCtr {
3652
/**
@@ -51,10 +67,8 @@ export interface InfiniteCanvasCtr {
5167
CSS_UNITS: Units;
5268
}
5369
declare var InfiniteCanvasConstructor: InfiniteCanvasCtr;
54-
export * from './add-event-listener-options';
5570
export * from './config';
5671
export * from './event-map';
57-
export * from './event-listener';
5872
export * from './infinite-canvas-rendering-context-2d';
5973
export * from './units';
6074
export default InfiniteCanvasConstructor;

dist/types/transformation-event.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import { Transformed } from "./transformed";
2-
export interface TransformationEvent extends Transformed {
2+
export interface TransformationEvent extends Event, Transformed {
33
}

docs/_sidebar.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
* [Live demo](live-demo.md)
33
* [Getting started](getting-started.md)
44
* [API Reference](api/)
5-
* [Infinity](infinity.md)
5+
* [Infinity](infinity.md)
6+
* [Events](events.md)

docs/api/README.md

+6-32
Original file line numberDiff line numberDiff line change
@@ -8,47 +8,21 @@ ef-infinite-canvas
88

99
## Interfaces
1010

11-
- [AddEventListenerOptions](api/interfaces/AddEventListenerOptions.md)
1211
- [Config](api/interfaces/Config.md)
1312
- [DrawEvent](api/interfaces/DrawEvent.md)
1413
- [EventMap](api/interfaces/EventMap.md)
1514
- [InfiniteCanvas](api/interfaces/InfiniteCanvas.md)
1615
- [InfiniteCanvasCtr](api/interfaces/InfiniteCanvasCtr.md)
16+
- [InfiniteCanvasEventHandlers](api/interfaces/InfiniteCanvasEventHandlers.md)
17+
- [InfiniteCanvasEventWithDefaultBehavior](api/interfaces/InfiniteCanvasEventWithDefaultBehavior.md)
1718
- [InfiniteCanvasRenderingContext2D](api/interfaces/InfiniteCanvasRenderingContext2D.md)
19+
- [InfiniteCanvasTouch](api/interfaces/InfiniteCanvasTouch.md)
20+
- [InfiniteCanvasTouchEvent](api/interfaces/InfiniteCanvasTouchEvent.md)
21+
- [InfiniteCanvasTouchList](api/interfaces/InfiniteCanvasTouchList.md)
1822
- [TransformationEvent](api/interfaces/TransformationEvent.md)
1923
- [TransformationRepresentation](api/interfaces/TransformationRepresentation.md)
2024
- [Transformed](api/interfaces/Transformed.md)
2125

22-
## Type Aliases
23-
24-
### EventListener
25-
26-
Ƭ **EventListener**<`K`\>: (`ev`: [`EventMap`](api/interfaces/EventMap.md)[`K`]) => `void`
27-
28-
#### Type parameters
29-
30-
| Name | Type |
31-
| :------ | :------ |
32-
| `K` | extends keyof [`EventMap`](api/interfaces/EventMap.md) |
33-
34-
#### Type declaration
35-
36-
▸ (`ev`): `void`
37-
38-
##### Parameters
39-
40-
| Name | Type |
41-
| :------ | :------ |
42-
| `ev` | [`EventMap`](api/interfaces/EventMap.md)[`K`] |
43-
44-
##### Returns
45-
46-
`void`
47-
48-
#### Defined in
49-
50-
[event-listener.ts:4](https://github.com/emilefokkema/infinite-canvas/blob/c465771/src/api-surface/event-listener.ts#L4)
51-
5226
## Variables
5327

5428
### default
@@ -57,4 +31,4 @@ ef-infinite-canvas
5731

5832
#### Defined in
5933

60-
[infinite-canvas.ts:56](https://github.com/emilefokkema/infinite-canvas/blob/c465771/src/api-surface/infinite-canvas.ts#L56)
34+
[infinite-canvas.ts:73](https://github.com/emilefokkema/infinite-canvas/blob/65104bb/src/api-surface/infinite-canvas.ts#L73)

docs/api/enums/Units.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This value indicates that the [InfiniteCanvas](api/interfaces/InfiniteCanvas.md)
1212

1313
#### Defined in
1414

15-
[units.ts:9](https://github.com/emilefokkema/infinite-canvas/blob/c465771/src/api-surface/units.ts#L9)
15+
[units.ts:9](https://github.com/emilefokkema/infinite-canvas/blob/65104bb/src/api-surface/units.ts#L9)
1616

1717
___
1818

@@ -24,4 +24,4 @@ This value indicates that the [InfiniteCanvas](api/interfaces/InfiniteCanvas.md)
2424

2525
#### Defined in
2626

27-
[units.ts:5](https://github.com/emilefokkema/infinite-canvas/blob/c465771/src/api-surface/units.ts#L5)
27+
[units.ts:5](https://github.com/emilefokkema/infinite-canvas/blob/65104bb/src/api-surface/units.ts#L5)

docs/api/interfaces/AddEventListenerOptions.md

-17
This file was deleted.

docs/api/interfaces/Config.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ false
2424

2525
#### Defined in
2626

27-
[config.ts:18](https://github.com/emilefokkema/infinite-canvas/blob/c465771/src/api-surface/config.ts#L18)
27+
[config.ts:18](https://github.com/emilefokkema/infinite-canvas/blob/65104bb/src/api-surface/config.ts#L18)
2828

2929
___
3030

@@ -40,7 +40,7 @@ true
4040

4141
#### Defined in
4242

43-
[config.ts:12](https://github.com/emilefokkema/infinite-canvas/blob/c465771/src/api-surface/config.ts#L12)
43+
[config.ts:12](https://github.com/emilefokkema/infinite-canvas/blob/65104bb/src/api-surface/config.ts#L12)
4444

4545
___
4646

@@ -56,4 +56,4 @@ Determines the units to use when drawing on an [InfiniteCanvas](api/interfaces/I
5656

5757
#### Defined in
5858

59-
[config.ts:24](https://github.com/emilefokkema/infinite-canvas/blob/c465771/src/api-surface/config.ts#L24)
59+
[config.ts:24](https://github.com/emilefokkema/infinite-canvas/blob/65104bb/src/api-surface/config.ts#L24)

docs/api/interfaces/DrawEvent.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
## Hierarchy
66

7+
- `Event`
8+
79
- [`Transformed`](api/interfaces/Transformed.md)
810

911
**`DrawEvent`**
@@ -22,7 +24,7 @@ The inverse of [transformation](api/interfaces/DrawEvent.md#transformation)
2224

2325
#### Defined in
2426

25-
[transformed.ts:11](https://github.com/emilefokkema/infinite-canvas/blob/c465771/src/api-surface/transformed.ts#L11)
27+
[transformed.ts:11](https://github.com/emilefokkema/infinite-canvas/blob/65104bb/src/api-surface/transformed.ts#L11)
2628

2729
___
2830

@@ -38,4 +40,4 @@ The transformation that, when applied to a point `(x, y)` in the CSS-pixel-base
3840

3941
#### Defined in
4042

41-
[transformed.ts:7](https://github.com/emilefokkema/infinite-canvas/blob/c465771/src/api-surface/transformed.ts#L7)
43+
[transformed.ts:7](https://github.com/emilefokkema/infinite-canvas/blob/65104bb/src/api-surface/transformed.ts#L7)

0 commit comments

Comments
 (0)