@prismicio/simulator 0.1.4 → 0.2.0-canary.a0bdcb9

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 (185) hide show
  1. package/README.md +7 -18
  2. package/dist/SimulatorAPI.cjs +36 -46
  3. package/dist/SimulatorAPI.cjs.map +1 -1
  4. package/dist/SimulatorAPI.d.cts +18 -0
  5. package/dist/SimulatorAPI.d.cts.map +1 -0
  6. package/dist/SimulatorAPI.d.ts +16 -10
  7. package/dist/SimulatorAPI.d.ts.map +1 -0
  8. package/dist/SimulatorAPI.js +35 -46
  9. package/dist/SimulatorAPI.js.map +1 -1
  10. package/dist/SimulatorClient.cjs +39 -51
  11. package/dist/SimulatorClient.cjs.map +1 -1
  12. package/dist/SimulatorClient.d.cts +16 -0
  13. package/dist/SimulatorClient.d.cts.map +1 -0
  14. package/dist/SimulatorClient.d.ts +15 -9
  15. package/dist/SimulatorClient.d.ts.map +1 -0
  16. package/dist/SimulatorClient.js +39 -52
  17. package/dist/SimulatorClient.js.map +1 -1
  18. package/dist/channel/ChannelEmitter.cjs +109 -143
  19. package/dist/channel/ChannelEmitter.cjs.map +1 -1
  20. package/dist/channel/ChannelEmitter.d.cts +36 -0
  21. package/dist/channel/ChannelEmitter.d.cts.map +1 -0
  22. package/dist/channel/ChannelEmitter.d.ts +34 -36
  23. package/dist/channel/ChannelEmitter.d.ts.map +1 -0
  24. package/dist/channel/ChannelEmitter.js +107 -141
  25. package/dist/channel/ChannelEmitter.js.map +1 -1
  26. package/dist/channel/ChannelNetwork.cjs +80 -109
  27. package/dist/channel/ChannelNetwork.cjs.map +1 -1
  28. package/dist/channel/ChannelNetwork.d.cts +28 -0
  29. package/dist/channel/ChannelNetwork.d.cts.map +1 -0
  30. package/dist/channel/ChannelNetwork.d.ts +25 -21
  31. package/dist/channel/ChannelNetwork.d.ts.map +1 -0
  32. package/dist/channel/ChannelNetwork.js +80 -109
  33. package/dist/channel/ChannelNetwork.js.map +1 -1
  34. package/dist/channel/ChannelReceiver.cjs +68 -92
  35. package/dist/channel/ChannelReceiver.cjs.map +1 -1
  36. package/dist/channel/ChannelReceiver.d.cts +20 -0
  37. package/dist/channel/ChannelReceiver.d.cts.map +1 -0
  38. package/dist/channel/ChannelReceiver.d.ts +18 -18
  39. package/dist/channel/ChannelReceiver.d.ts.map +1 -0
  40. package/dist/channel/ChannelReceiver.js +66 -90
  41. package/dist/channel/ChannelReceiver.js.map +1 -1
  42. package/dist/channel/errors.cjs +40 -46
  43. package/dist/channel/errors.cjs.map +1 -1
  44. package/dist/channel/errors.d.cts +28 -0
  45. package/dist/channel/errors.d.cts.map +1 -0
  46. package/dist/channel/errors.d.ts +22 -19
  47. package/dist/channel/errors.d.ts.map +1 -0
  48. package/dist/channel/errors.js +40 -52
  49. package/dist/channel/errors.js.map +1 -1
  50. package/dist/channel/messages.cjs +47 -43
  51. package/dist/channel/messages.cjs.map +1 -1
  52. package/dist/channel/messages.d.cts +11 -0
  53. package/dist/channel/messages.d.cts.map +1 -0
  54. package/dist/channel/messages.d.ts +11 -10
  55. package/dist/channel/messages.d.ts.map +1 -0
  56. package/dist/channel/messages.js +50 -53
  57. package/dist/channel/messages.js.map +1 -1
  58. package/dist/channel/types.cjs +14 -11
  59. package/dist/channel/types.cjs.map +1 -1
  60. package/dist/channel/types.d.cts +53 -0
  61. package/dist/channel/types.d.cts.map +1 -0
  62. package/dist/channel/types.d.ts +42 -50
  63. package/dist/channel/types.d.ts.map +1 -0
  64. package/dist/channel/types.js +13 -13
  65. package/dist/channel/types.js.map +1 -1
  66. package/dist/globalExtensions.d.cts +15 -0
  67. package/dist/globalExtensions.d.cts.map +1 -0
  68. package/dist/globalExtensions.d.ts +14 -11
  69. package/dist/globalExtensions.d.ts.map +1 -0
  70. package/dist/index.cjs +23 -32
  71. package/dist/index.d.cts +9 -0
  72. package/dist/index.d.ts +9 -8
  73. package/dist/index.js +3 -24
  74. package/dist/kit/SimulatorManager.cjs +103 -137
  75. package/dist/kit/SimulatorManager.cjs.map +1 -1
  76. package/dist/kit/SimulatorManager.d.cts +19 -0
  77. package/dist/kit/SimulatorManager.d.cts.map +1 -0
  78. package/dist/kit/SimulatorManager.d.ts +16 -12
  79. package/dist/kit/SimulatorManager.d.ts.map +1 -0
  80. package/dist/kit/SimulatorManager.js +101 -135
  81. package/dist/kit/SimulatorManager.js.map +1 -1
  82. package/dist/kit/State.cjs +81 -80
  83. package/dist/kit/State.cjs.map +1 -1
  84. package/dist/kit/State.d.cts +29 -0
  85. package/dist/kit/State.d.cts.map +1 -0
  86. package/dist/kit/State.d.ts +26 -22
  87. package/dist/kit/State.d.ts.map +1 -0
  88. package/dist/kit/State.js +80 -79
  89. package/dist/kit/State.js.map +1 -1
  90. package/dist/kit/domHelpers.cjs +24 -37
  91. package/dist/kit/domHelpers.cjs.map +1 -1
  92. package/dist/kit/domHelpers.d.cts +11 -0
  93. package/dist/kit/domHelpers.d.cts.map +1 -0
  94. package/dist/kit/domHelpers.d.ts +10 -8
  95. package/dist/kit/domHelpers.d.ts.map +1 -0
  96. package/dist/kit/domHelpers.js +25 -43
  97. package/dist/kit/domHelpers.js.map +1 -1
  98. package/dist/kit/eventHandlers.cjs +10 -9
  99. package/dist/kit/eventHandlers.cjs.map +1 -1
  100. package/dist/kit/eventHandlers.d.cts +8 -0
  101. package/dist/kit/eventHandlers.d.cts.map +1 -0
  102. package/dist/kit/eventHandlers.d.ts +7 -3
  103. package/dist/kit/eventHandlers.d.ts.map +1 -0
  104. package/dist/kit/eventHandlers.js +11 -11
  105. package/dist/kit/eventHandlers.js.map +1 -1
  106. package/dist/kit/getDefault.cjs +8 -7
  107. package/dist/kit/getDefault.cjs.map +1 -1
  108. package/dist/kit/getDefault.d.cts +10 -0
  109. package/dist/kit/getDefault.d.cts.map +1 -0
  110. package/dist/kit/getDefault.d.ts +10 -8
  111. package/dist/kit/getDefault.d.ts.map +1 -0
  112. package/dist/kit/getDefault.js +9 -10
  113. package/dist/kit/getDefault.js.map +1 -1
  114. package/dist/kit/messages.cjs +7 -24
  115. package/dist/kit/messages.cjs.map +1 -1
  116. package/dist/kit/messages.d.cts +5 -0
  117. package/dist/kit/messages.d.cts.map +1 -0
  118. package/dist/kit/messages.d.ts +5 -1
  119. package/dist/kit/messages.d.ts.map +1 -0
  120. package/dist/kit/messages.js +8 -25
  121. package/dist/kit/messages.js.map +1 -1
  122. package/dist/kit/types.cjs +11 -9
  123. package/dist/kit/types.cjs.map +1 -1
  124. package/dist/kit/types.d.cts +28 -0
  125. package/dist/kit/types.d.cts.map +1 -0
  126. package/dist/kit/types.d.ts +24 -19
  127. package/dist/kit/types.d.ts.map +1 -0
  128. package/dist/kit/types.js +11 -10
  129. package/dist/kit/types.js.map +1 -1
  130. package/dist/kit.cjs +20 -25
  131. package/dist/kit.d.cts +8 -0
  132. package/dist/kit.d.ts +8 -0
  133. package/dist/kit.js +5 -20
  134. package/dist/lib/EventEmitter.cjs +15 -25
  135. package/dist/lib/EventEmitter.cjs.map +1 -1
  136. package/dist/lib/EventEmitter.d.cts +12 -0
  137. package/dist/lib/EventEmitter.d.cts.map +1 -0
  138. package/dist/lib/EventEmitter.d.ts +11 -9
  139. package/dist/lib/EventEmitter.d.ts.map +1 -0
  140. package/dist/lib/EventEmitter.js +16 -26
  141. package/dist/lib/EventEmitter.js.map +1 -1
  142. package/dist/lib/throttle.cjs +20 -21
  143. package/dist/lib/throttle.cjs.map +1 -1
  144. package/dist/lib/throttle.js +21 -22
  145. package/dist/lib/throttle.js.map +1 -1
  146. package/dist/types.cjs +17 -14
  147. package/dist/types.cjs.map +1 -1
  148. package/dist/types.d.cts +39 -0
  149. package/dist/types.d.cts.map +1 -0
  150. package/dist/types.d.ts +32 -27
  151. package/dist/types.d.ts.map +1 -0
  152. package/dist/types.js +16 -16
  153. package/dist/types.js.map +1 -1
  154. package/package.json +44 -87
  155. package/src/SimulatorAPI.ts +26 -40
  156. package/src/SimulatorClient.ts +25 -43
  157. package/src/channel/ChannelEmitter.ts +75 -110
  158. package/src/channel/ChannelNetwork.ts +71 -98
  159. package/src/channel/ChannelReceiver.ts +45 -78
  160. package/src/channel/errors.ts +16 -21
  161. package/src/channel/index.ts +10 -25
  162. package/src/channel/messages.ts +43 -44
  163. package/src/channel/types.ts +51 -67
  164. package/src/globalExtensions.ts +6 -6
  165. package/src/index.ts +8 -16
  166. package/src/kit/SimulatorManager.ts +66 -78
  167. package/src/kit/State.ts +45 -49
  168. package/src/kit/domHelpers.ts +25 -27
  169. package/src/kit/eventHandlers.ts +8 -13
  170. package/src/kit/getDefault.ts +8 -8
  171. package/src/kit/index.ts +8 -12
  172. package/src/kit/messages.ts +5 -6
  173. package/src/kit/types.ts +13 -14
  174. package/src/lib/EventEmitter.ts +10 -16
  175. package/src/lib/__PRODUCTION__.ts +3 -4
  176. package/src/lib/throttle.ts +12 -12
  177. package/src/types.ts +20 -20
  178. package/dist/channel/index.d.ts +0 -10
  179. package/dist/index.cjs.map +0 -1
  180. package/dist/index.js.map +0 -1
  181. package/dist/kit/index.d.ts +0 -8
  182. package/dist/kit.cjs.map +0 -1
  183. package/dist/kit.js.map +0 -1
  184. package/dist/lib/__PRODUCTION__.d.ts +0 -7
  185. package/dist/lib/throttle.d.ts +0 -1
package/src/kit/State.ts CHANGED
@@ -1,100 +1,96 @@
1
- import type { SharedSlice, SliceZone } from "@prismicio/client";
1
+ import type { SharedSlice, SliceZone } from "@prismicio/client"
2
2
 
3
- import { EventEmitter } from "../lib/EventEmitter";
4
- import { __PRODUCTION__ } from "../lib/__PRODUCTION__";
5
- import { throttle } from "../lib/throttle";
6
-
7
- import type { ActiveSlice } from "../types";
8
- import { StateEventType, StateEvents } from "./types";
9
-
10
- import { getActiveSliceDOM, getSliceZoneDOM } from "./domHelpers";
11
- import { getDefaultSlices } from "./getDefault";
3
+ import { __PRODUCTION__ } from "../lib/__PRODUCTION__"
4
+ import { EventEmitter } from "../lib/EventEmitter"
5
+ import { throttle } from "../lib/throttle"
6
+ import type { ActiveSlice } from "../types"
7
+ import { getActiveSliceDOM, getSliceZoneDOM } from "./domHelpers"
8
+ import { getDefaultSlices } from "./getDefault"
9
+ import type { StateEvents } from "./types"
10
+ import { StateEventType } from "./types"
12
11
 
13
12
  type StateConstructorArgs = {
14
- slices?: SliceZone;
15
- };
13
+ slices?: SliceZone
14
+ }
16
15
 
17
16
  export class State extends EventEmitter<StateEvents> {
18
- private _slices: SliceZone;
17
+ private _slices: SliceZone
19
18
  public set slices(slices: SliceZone) {
20
- this._slices = slices;
19
+ this._slices = slices
21
20
  // Clean up message
22
- this.message = "";
21
+ this.message = ""
23
22
  // Dispatch event
24
- this.emit(StateEventType.Slices, slices);
23
+ this.emit(StateEventType.Slices, slices)
25
24
  }
26
25
  public get slices(): SliceZone {
27
- return this._slices;
26
+ return this._slices
28
27
  }
29
28
 
30
- private _activeSlice: ActiveSlice | null;
29
+ private _activeSlice: ActiveSlice | null
31
30
  public set activeSlice(activeSlice: ActiveSlice | null) {
32
- this._activeSlice = activeSlice;
33
- this.emit(StateEventType.ActiveSlice, activeSlice);
31
+ this._activeSlice = activeSlice
32
+ this.emit(StateEventType.ActiveSlice, activeSlice)
34
33
  }
35
34
  public get activeSlice(): ActiveSlice | null {
36
- return this._activeSlice;
35
+ return this._activeSlice
37
36
  }
38
37
 
39
- private _message: string;
38
+ private _message: string
40
39
  public set message(message: string) {
41
- this._message = message;
42
- this.emit(StateEventType.Message, message);
40
+ this._message = message
41
+ this.emit(StateEventType.Message, message)
43
42
  }
44
43
  public get message(): string {
45
- return this._message;
44
+ return this._message
46
45
  }
47
46
 
48
- private _mouse: { x: number; y: number };
47
+ private _mouse: { x: number; y: number }
49
48
 
50
49
  constructor(args?: StateConstructorArgs) {
51
- super();
50
+ super()
52
51
 
53
- this._slices = args?.slices || getDefaultSlices();
54
- this._activeSlice = null;
55
- this._message = "";
52
+ this._slices = args?.slices || getDefaultSlices()
53
+ this._activeSlice = null
54
+ this._message = ""
56
55
 
57
56
  // StateManager needs to keep track of mouse position for the active slice
58
- this._mouse = { x: 0, y: 0 };
57
+ this._mouse = { x: 0, y: 0 }
59
58
  }
60
59
 
61
60
  async init(): Promise<void> {
62
61
  // Init listener
63
62
  window.addEventListener("mousemove", (event) => {
64
- this._mouse = { x: event.clientX, y: event.clientY };
65
- });
63
+ this._mouse = { x: event.clientX, y: event.clientY }
64
+ })
66
65
  }
67
66
 
68
67
  private _setActiveSlice = (): void => {
69
68
  // There can't be an active slice if there's no slice displayed
70
69
  if (this.slices.length === 0) {
71
- this.activeSlice = null;
70
+ this.activeSlice = null
72
71
 
73
- return;
72
+ return
74
73
  }
75
74
 
76
- const $sliceZone = getSliceZoneDOM(this.slices.length);
75
+ const $sliceZone = getSliceZoneDOM(this.slices.length)
77
76
 
78
77
  // SliceZone has not been found, therefore active slice cannot be found
79
78
  if (!$sliceZone) {
80
- this.activeSlice = null;
79
+ this.activeSlice = null
81
80
 
82
- return;
81
+ return
83
82
  }
84
83
 
85
- const $activeSlice = getActiveSliceDOM($sliceZone, this._mouse);
84
+ const $activeSlice = getActiveSliceDOM($sliceZone, this._mouse)
86
85
 
87
86
  // Active slice has not been found
88
87
  if (!$activeSlice) {
89
- this.activeSlice = null;
88
+ this.activeSlice = null
90
89
 
91
- return;
90
+ return
92
91
  }
93
92
 
94
- const activeSliceIndex = Array.prototype.indexOf.call(
95
- $sliceZone.children,
96
- $activeSlice,
97
- );
93
+ const activeSliceIndex = Array.prototype.indexOf.call($sliceZone.children, $activeSlice)
98
94
 
99
95
  // Active slice has been found
100
96
  this.activeSlice = {
@@ -102,12 +98,12 @@ export class State extends EventEmitter<StateEvents> {
102
98
  sliceID: this.slices[activeSliceIndex].slice_type,
103
99
  variationID: (this.slices[activeSliceIndex] as SharedSlice).variation,
104
100
  index: activeSliceIndex,
105
- };
106
- };
107
- setActiveSlice = throttle(this._setActiveSlice, 16);
101
+ }
102
+ }
103
+ setActiveSlice = throttle(this._setActiveSlice, 16)
108
104
 
109
105
  setSliceZone(slices: SliceZone): void {
110
106
  // Set slices
111
- this.slices = slices;
107
+ this.slices = slices
112
108
  }
113
109
  }
@@ -1,75 +1,73 @@
1
- export const simulatorClass = "slice-simulator";
2
- export const simulatorRootClass = "slice-simulator--root";
1
+ export const simulatorClass = "slice-simulator"
2
+ export const simulatorRootClass = "slice-simulator--root"
3
3
 
4
4
  export const getSimulatorDOM = (): Element | null => {
5
- return document.querySelector(`.${simulatorClass}`);
6
- };
5
+ return document.querySelector(`.${simulatorClass}`)
6
+ }
7
7
 
8
8
  export const getSimulatorRootDOM = (): Element | null => {
9
- return document.querySelector(`.${simulatorRootClass}`);
10
- };
9
+ return document.querySelector(`.${simulatorRootClass}`)
10
+ }
11
11
 
12
- export const getSliceZoneDOM = (
13
- expectedNumberOfChildren: number,
14
- ): Element | null => {
12
+ export const getSliceZoneDOM = (expectedNumberOfChildren: number): Element | null => {
15
13
  // If SliceZone has been tagged (#5)
16
- let node = document.querySelector(`.${simulatorClass} [data-slice-zone]`);
14
+ let node = document.querySelector(`.${simulatorClass} [data-slice-zone]`)
17
15
  if (node) {
18
16
  if (node.children.length !== expectedNumberOfChildren) {
19
17
  console.warn(
20
18
  `Flagged SliceZone has an unexpected number of children, found ${node.children.length} but expected ${expectedNumberOfChildren}. This might lead to unexpected behaviors. Are you sure you tagged the right element?`,
21
- );
19
+ )
22
20
  }
23
21
 
24
- return node;
22
+ return node
25
23
  }
26
24
 
27
25
  // Start searching
28
- node = document.querySelector(`.${simulatorClass} .${simulatorRootClass}`);
26
+ node = document.querySelector(`.${simulatorClass} .${simulatorRootClass}`)
29
27
 
30
28
  if (!node) {
31
- return null;
29
+ return null
32
30
  }
33
31
 
34
- const searchDepth = 5;
32
+ const searchDepth = 5
35
33
  for (let i = 0; i < searchDepth; i++) {
36
34
  if (node.children.length === expectedNumberOfChildren) {
37
35
  // Return the first node that matches the expected number of children
38
- return node;
36
+ return node
39
37
  } else if (node.children.length) {
40
38
  // Continue searching if current node has children
41
- node = node.children[0];
39
+ node = node.children[0]
42
40
  } else {
43
41
  // Stop searching if current node has no children
44
- break;
42
+ break
45
43
  }
46
44
  }
47
45
 
48
46
  // Failed to find SliceZone
49
- return null;
50
- };
47
+ return null
48
+ }
51
49
 
52
50
  export const getActiveSliceDOM = (
53
51
  $sliceZone: Element,
54
52
  mouse: { x: number; y: number },
55
53
  ): Element | null => {
56
54
  // Raycast cursor position on DOM
57
- const raycast = document.elementsFromPoint(mouse.x, mouse.y).reverse();
55
+ const raycast = document.elementsFromPoint(mouse.x, mouse.y).reverse()
58
56
 
59
57
  // Find SliceZone in raycast
60
- const sliceZoneIndex = raycast.indexOf($sliceZone);
58
+ const sliceZoneIndex = raycast.indexOf($sliceZone)
61
59
 
62
60
  // SliceZone is not part of raycast
63
61
  if (sliceZoneIndex === -1) {
64
- return null;
62
+ return null
65
63
  }
66
64
 
67
- const $slice = raycast[sliceZoneIndex + 1];
65
+ const $slice = raycast[sliceZoneIndex + 1]
68
66
 
69
67
  // Slice is not part of raycast
70
68
  if (!$slice) {
71
- return null;
69
+ return null
72
70
  }
73
71
 
74
- return $slice;
75
- };
72
+ return $slice
73
+ }
@@ -1,16 +1,11 @@
1
1
  export const disableEventHandler = (event: Event): void => {
2
- event.preventDefault();
3
- event.stopPropagation();
4
- };
2
+ event.preventDefault()
3
+ event.stopPropagation()
4
+ }
5
5
 
6
- export const onClickHandler = (
7
- event: MouseEvent & { path?: HTMLElement[] },
8
- ): void => {
9
- if (
10
- event.path &&
11
- event.path.slice(0, 5).some((el) => el instanceof HTMLAnchorElement)
12
- ) {
13
- event.preventDefault();
14
- event.stopPropagation();
6
+ export const onClickHandler = (event: MouseEvent & { path?: HTMLElement[] }): void => {
7
+ if (event.path && event.path.slice(0, 5).some((el) => el instanceof HTMLAnchorElement)) {
8
+ event.preventDefault()
9
+ event.stopPropagation()
15
10
  }
16
- };
11
+ }
@@ -1,18 +1,18 @@
1
- import type { SliceZone } from "@prismicio/client";
1
+ import type { SliceZone } from "@prismicio/client"
2
2
 
3
- import { SliceSimulatorProps } from "./types";
3
+ import type { SliceSimulatorProps } from "./types"
4
4
 
5
5
  export const getDefaultProps = (): Required<{
6
- [K in keyof SliceSimulatorProps]: NonNullable<SliceSimulatorProps[K]>;
6
+ [K in keyof SliceSimulatorProps]: NonNullable<SliceSimulatorProps[K]>
7
7
  }> => ({
8
8
  zIndex: 100,
9
9
  background: "#ffffff",
10
- });
10
+ })
11
11
 
12
12
  export const getDefaultSlices = (): SliceZone => {
13
- return [];
14
- };
13
+ return []
14
+ }
15
15
 
16
16
  export const getDefaultMessage = (): string => {
17
- return "";
18
- };
17
+ return ""
18
+ }
package/src/kit/index.ts CHANGED
@@ -1,13 +1,9 @@
1
1
  // Main
2
- export { SimulatorManager } from "./SimulatorManager";
3
- export { State } from "./State";
2
+ export { SimulatorManager } from "./SimulatorManager"
3
+ export { State } from "./State"
4
4
 
5
5
  // Defaults
6
- export {
7
- getDefaultProps,
8
- getDefaultSlices,
9
- getDefaultMessage,
10
- } from "./getDefault";
6
+ export { getDefaultProps, getDefaultSlices, getDefaultMessage } from "./getDefault"
11
7
 
12
8
  // DOM helpers
13
9
  export {
@@ -15,19 +11,19 @@ export {
15
11
  simulatorRootClass,
16
12
  getSliceZoneDOM,
17
13
  getActiveSliceDOM,
18
- } from "./domHelpers";
14
+ } from "./domHelpers"
19
15
 
20
16
  // Events
21
- export { disableEventHandler, onClickHandler } from "./eventHandlers";
17
+ export { disableEventHandler, onClickHandler } from "./eventHandlers"
22
18
 
23
19
  // Messages
24
- export { sliceSimulatorAccessedDirectly } from "./messages";
20
+ export { sliceSimulatorAccessedDirectly } from "./messages"
25
21
 
26
22
  // Types
27
- export { StateEventType } from "./types";
23
+ export { StateEventType } from "./types"
28
24
  export type {
29
25
  StateEvents,
30
26
  SliceSimulatorProps,
31
27
  SliceSimulatorState,
32
28
  SliceSimulatorOptions,
33
- } from "./types";
29
+ } from "./types"
@@ -1,14 +1,13 @@
1
1
  const div = (content: string) =>
2
- `<div style="word-spacing: initial; white-space: pre; line-height: initial; font-family: monospace; color: #ffffff; mix-blend-mode: difference; padding: 1rem; font-size: 1rem;">${content}</div>`;
2
+ `<div style="word-spacing: initial; white-space: pre; line-height: initial; font-family: monospace; color: #ffffff; mix-blend-mode: difference; padding: 1rem; font-size: 1rem;">${content}</div>`
3
3
 
4
4
  const a = (href: string, label?: string) =>
5
- `<a href="${href}" style="text-decoration: underline;">${label || href}<a>`;
5
+ `<a href="${href}" style="text-decoration: underline;">${label || href}<a>`
6
6
 
7
7
  const header =
8
- " _____ ___ _____ _ __ __ \n / ___// (_)_______ / ___/(_)___ ___ __ __/ /___ _/ /_____ _____\n \\__ \\/ / / ___/ _ \\\\__ \\/ / __ `__ \\/ / / / / __ `/ __/ __ \\/ ___/\n ___/ / / / /__/ __/__/ / / / / / / / /_/ / / /_/ / /_/ /_/ / / \n/____/_/_/\\___/\\___/____/_/_/ /_/ /_/\\__,_/_/\\__,_/\\__/\\____/_/ \n / /_ __ __ / __ \\_____(_)________ ___ (_)____\n / __ \\/ / / / / /_/ / ___/ / ___/ __ `__ \\/ / ___/\n / /_/ / /_/ / / ____/ / / (__ ) / / / / / / /__ \n /_.___/\\__, / /_/ /_/ /_/____/_/ /_/ /_/_/\\___/ \n /____/\n\n";
8
+ " _____ ___ _____ _ __ __ \n / ___// (_)_______ / ___/(_)___ ___ __ __/ /___ _/ /_____ _____\n \\__ \\/ / / ___/ _ \\\\__ \\/ / __ `__ \\/ / / / / __ `/ __/ __ \\/ ___/\n ___/ / / / /__/ __/__/ / / / / / / / /_/ / / /_/ / /_/ /_/ / / \n/____/_/_/\\___/\\___/____/_/_/ /_/ /_/\\__,_/_/\\__,_/\\__/\\____/_/ \n / /_ __ __ / __ \\_____(_)________ ___ (_)____\n / __ \\/ / / / / /_/ / ___/ / ___/ __ `__ \\/ / ___/\n / /_/ / /_/ / / ____/ / / (__ ) / / / / / / /__ \n /_.___/\\__, / /_/ /_/ /_/____/_/ /_/ /_/_/\\___/ \n /____/\n\n"
9
9
 
10
- const footer =
11
- "\n\n\n\n\n\n - The Prismic team";
10
+ const footer = "\n\n\n\n\n\n - The Prismic team"
12
11
 
13
12
  export const sliceSimulatorAccessedDirectly = div(
14
13
  [
@@ -22,4 +21,4 @@ export const sliceSimulatorAccessedDirectly = div(
22
21
  )}`,
23
22
  footer,
24
23
  ].join(""),
25
- );
24
+ )
package/src/kit/types.ts CHANGED
@@ -1,8 +1,7 @@
1
- import type { SliceZone } from "@prismicio/client";
1
+ import type { SliceZone } from "@prismicio/client"
2
2
 
3
- import type { ActiveSlice } from "../types";
4
-
5
- import type { SimulatorManager } from "./SimulatorManager";
3
+ import type { ActiveSlice } from "../types"
4
+ import type { SimulatorManager } from "./SimulatorManager"
6
5
 
7
6
  export enum StateEventType {
8
7
  Slices = "slices",
@@ -11,20 +10,20 @@ export enum StateEventType {
11
10
  }
12
11
 
13
12
  export type StateEvents = {
14
- [StateEventType.Slices]: SliceZone;
15
- [StateEventType.ActiveSlice]: ActiveSlice | null;
16
- [StateEventType.Message]: string;
17
- };
13
+ [StateEventType.Slices]: SliceZone
14
+ [StateEventType.ActiveSlice]: ActiveSlice | null
15
+ [StateEventType.Message]: string
16
+ }
18
17
 
19
18
  export interface SliceSimulatorProps {
20
- zIndex?: number;
21
- background?: string;
19
+ zIndex?: number
20
+ background?: string
22
21
  }
23
22
 
24
23
  export interface SliceSimulatorState {
25
- manager: SimulatorManager;
26
- slices: SliceZone;
27
- message: string;
24
+ manager: SimulatorManager
25
+ slices: SliceZone
26
+ message: string
28
27
  }
29
28
 
30
- export type SliceSimulatorOptions = SliceSimulatorProps & SliceSimulatorState;
29
+ export type SliceSimulatorOptions = SliceSimulatorProps & SliceSimulatorState
@@ -1,41 +1,35 @@
1
- export type Listener<T> = (event: T) => void;
1
+ export type Listener<T> = (event: T) => void
2
2
 
3
3
  export type EventMap = {
4
- [K in string]: unknown;
5
- };
4
+ [K in string]: unknown
5
+ }
6
6
 
7
7
  export abstract class EventEmitter<TEventMap = EventMap> {
8
8
  private _listeners: {
9
- [K in keyof TEventMap]?: [Listener<TEventMap[K]>, string | null][];
10
- } = {};
9
+ [K in keyof TEventMap]?: [Listener<TEventMap[K]>, string | null][]
10
+ } = {}
11
11
 
12
12
  on<TEventType extends keyof TEventMap>(
13
13
  event: TEventType,
14
14
  listener: Listener<TEventMap[TEventType]>,
15
15
  key: string | null = null,
16
16
  ): void {
17
- this._listeners[event] = [
18
- ...(this._listeners[event] ?? []),
19
- [listener, key],
20
- ];
17
+ this._listeners[event] = [...(this._listeners[event] ?? []), [listener, key]]
21
18
  }
22
19
 
23
20
  off<TEventType extends keyof TEventMap>(
24
21
  event: TEventType,
25
22
  listenerOrKey: Listener<TEventMap[TEventType]> | string,
26
23
  ): void {
27
- this._listeners[event] = (this._listeners[event] ?? []).filter(
28
- ([listener, key]) =>
29
- typeof listenerOrKey === "function"
30
- ? listener !== listenerOrKey
31
- : key !== listenerOrKey,
32
- );
24
+ this._listeners[event] = (this._listeners[event] ?? []).filter(([listener, key]) =>
25
+ typeof listenerOrKey === "function" ? listener !== listenerOrKey : key !== listenerOrKey,
26
+ )
33
27
  }
34
28
 
35
29
  emit<TEventType extends keyof TEventMap>(
36
30
  event: TEventType,
37
31
  payload: TEventMap[TEventType],
38
32
  ): void {
39
- (this._listeners[event] ?? []).forEach((listener) => listener[0](payload));
33
+ ;(this._listeners[event] ?? []).forEach((listener) => listener[0](payload))
40
34
  }
41
35
  }
@@ -1,12 +1,11 @@
1
1
  // We need to polyfill process if it doesn't exist, such as in the browser.
2
2
  if (typeof process === "undefined") {
3
- globalThis.process = { env: {} } as typeof process;
3
+ globalThis.process = { env: {} } as typeof process
4
4
  }
5
5
 
6
6
  /**
7
7
  * `true` if in the production environment, `false` otherwise.
8
8
  *
9
- * This boolean can be used to perform actions only in development environments,
10
- * such as logging.
9
+ * This boolean can be used to perform actions only in development environments, such as logging.
11
10
  */
12
- export const __PRODUCTION__ = process.env.NODE_ENV === "production";
11
+ export const __PRODUCTION__ = process.env.NODE_ENV === "production"
@@ -3,24 +3,24 @@ export const throttle = <TFn extends (...args: any[]) => any>(
3
3
  fn: TFn,
4
4
  delay = 16,
5
5
  ): ((...args: Parameters<TFn>) => void) => {
6
- let lastExec = 0;
7
- let timer: NodeJS.Timeout | null = null;
6
+ let lastExec = 0
7
+ let timer: NodeJS.Timeout | null = null
8
8
 
9
9
  return function (this: unknown, ...args: Parameters<TFn>) {
10
- const now = Date.now();
11
- const delta = now - lastExec;
10
+ const now = Date.now()
11
+ const delta = now - lastExec
12
12
 
13
13
  if (delta >= delay) {
14
- fn.apply(this, args);
15
- lastExec = now;
14
+ fn.apply(this, args)
15
+ lastExec = now
16
16
  } else {
17
17
  if (timer) {
18
- clearTimeout(timer);
18
+ clearTimeout(timer)
19
19
  }
20
20
  timer = setTimeout(() => {
21
- fn.apply(this, args);
22
- lastExec = Date.now();
23
- }, delay - delta);
21
+ fn.apply(this, args)
22
+ lastExec = Date.now()
23
+ }, delay - delta)
24
24
  }
25
- };
26
- };
25
+ }
26
+ }
package/src/types.ts CHANGED
@@ -1,17 +1,17 @@
1
- import { SliceZone } from "@prismicio/client";
1
+ import type { SliceZone } from "@prismicio/client"
2
2
 
3
- import { RequestMessage, ResponseMessage, Transaction } from "./channel";
3
+ import type { RequestMessage, ResponseMessage, Transaction } from "./channel"
4
4
 
5
5
  export type ActiveSlice = {
6
- rect: DOMRect;
7
- sliceID: string;
8
- variationID: string;
9
- index: number;
10
- };
6
+ rect: DOMRect
7
+ sliceID: string
8
+ variationID: string
9
+ index: number
10
+ }
11
11
 
12
12
  export type SliceZoneSize = {
13
- rect: DOMRect;
14
- };
13
+ rect: DOMRect
14
+ }
15
15
 
16
16
  export enum APIRequestType {
17
17
  SetActiveSlice = "setActiveSlice",
@@ -21,11 +21,11 @@ export enum APIRequestType {
21
21
  export type APITransactions = {
22
22
  [APIRequestType.SetActiveSlice]: Transaction<
23
23
  RequestMessage<APIRequestType.SetActiveSlice, ActiveSlice | null>
24
- >;
24
+ >
25
25
  [APIRequestType.SetSliceZoneSize]: Transaction<
26
26
  RequestMessage<APIRequestType.SetSliceZoneSize, SliceZoneSize>
27
- >;
28
- };
27
+ >
28
+ }
29
29
 
30
30
  export enum ClientRequestType {
31
31
  Ping = "ping",
@@ -37,21 +37,21 @@ export type ClientTransactions = {
37
37
  [ClientRequestType.Ping]: Transaction<
38
38
  RequestMessage<ClientRequestType.Ping>,
39
39
  ResponseMessage<"pong">
40
- >;
40
+ >
41
41
 
42
42
  [ClientRequestType.SetSliceZone]: Transaction<
43
43
  RequestMessage<ClientRequestType.SetSliceZone, SliceZone>
44
- >;
44
+ >
45
45
 
46
46
  [ClientRequestType.ScrollToSlice]: Transaction<
47
47
  RequestMessage<
48
48
  ClientRequestType.ScrollToSlice,
49
49
  {
50
- sliceIndex: number;
51
- behavior?: "auto" | "smooth";
52
- block?: "start" | "center" | "end" | "nearest";
53
- inline?: "start" | "center" | "end" | "nearest";
50
+ sliceIndex: number
51
+ behavior?: "auto" | "smooth"
52
+ block?: "start" | "center" | "end" | "nearest"
53
+ inline?: "start" | "center" | "end" | "nearest"
54
54
  }
55
55
  >
56
- >;
57
- };
56
+ >
57
+ }
@@ -1,10 +0,0 @@
1
- export { ChannelNetwork, channelNetworkDefaultOptions } from "./ChannelNetwork";
2
- export type { PostRequestOptions, ChannelNetworkOptions, } from "./ChannelNetwork";
3
- export { ChannelEmitter, channelEmitterDefaultOptions } from "./ChannelEmitter";
4
- export type { ChannelEmitterOptions, AllChannelEmitterOptions, } from "./ChannelEmitter";
5
- export { ChannelReceiver, channelReceiverDefaultOptions, } from "./ChannelReceiver";
6
- export type { ChannelReceiverOptions, AllChannelReceiverOptions, } from "./ChannelReceiver";
7
- export { createRequestMessage, createSuccessResponseMessage, createErrorResponseMessage, validateMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, isErrorResponseMessage, } from "./messages";
8
- export { ResponseError, ConnectionTimeoutError, TooManyConcurrentRequestsError, RequestTimeoutError, NotReadyError, PortNotSetError, ChannelNotSetError, } from "./errors";
9
- export { InternalEmitterRequestType, InternalReceiverRequestType, } from "./types";
10
- export type { RequestMessage, ResponseMessage, ErrorResponseMessage, SuccessResponseMessage, ExtractSuccessResponseMessage, ExtractErrorResponseMessage, UnknownRequestMessage, UnknownSuccessResponseMessage, UnknownErrorResponseMessage, UnknownResponseMessage, UnknownMessage, Transaction, TransactionMethod, TransactionHandler, TransactionsMethods, TransactionsHandlers, UnknownTransaction, UnknownTransactionMethod, UnknownTransactionHandler, InternalEmitterTransactions, InternalReceiverTransactions, } from "./types";
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,8 +0,0 @@
1
- export { SimulatorManager } from "./SimulatorManager";
2
- export { State } from "./State";
3
- export { getDefaultProps, getDefaultSlices, getDefaultMessage, } from "./getDefault";
4
- export { simulatorClass, simulatorRootClass, getSliceZoneDOM, getActiveSliceDOM, } from "./domHelpers";
5
- export { disableEventHandler, onClickHandler } from "./eventHandlers";
6
- export { sliceSimulatorAccessedDirectly } from "./messages";
7
- export { StateEventType } from "./types";
8
- export type { StateEvents, SliceSimulatorProps, SliceSimulatorState, SliceSimulatorOptions, } from "./types";
package/dist/kit.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"kit.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/kit.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"kit.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,7 +0,0 @@
1
- /**
2
- * `true` if in the production environment, `false` otherwise.
3
- *
4
- * This boolean can be used to perform actions only in development environments,
5
- * such as logging.
6
- */
7
- export declare const __PRODUCTION__: boolean;
@@ -1 +0,0 @@
1
- export declare const throttle: <TFn extends (...args: any[]) => any>(fn: TFn, delay?: number) => (...args: Parameters<TFn>) => void;