@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/dist/index.cjs CHANGED
@@ -1,33 +1,24 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const SimulatorClient = require("./SimulatorClient.cjs");
4
- const SimulatorAPI = require("./SimulatorAPI.cjs");
5
- const errors = require("./channel/errors.cjs");
6
- const messages = require("./channel/messages.cjs");
7
- require("./channel/types.cjs");
8
- const types = require("./types.cjs");
9
- exports.SimulatorClient = SimulatorClient.SimulatorClient;
10
- exports.simulatorClientDefaultOptions = SimulatorClient.simulatorClientDefaultOptions;
11
- exports.SimulatorAPI = SimulatorAPI.SimulatorAPI;
12
- exports.simulatorAPIDefaultOptions = SimulatorAPI.simulatorAPIDefaultOptions;
13
- exports.ChannelNotSetError = errors.ChannelNotSetError;
14
- exports.ConnectionTimeoutError = errors.ConnectionTimeoutError;
15
- exports.NotReadyError = errors.NotReadyError;
16
- exports.PortNotSetError = errors.PortNotSetError;
17
- exports.RequestTimeoutError = errors.RequestTimeoutError;
18
- exports.ResponseError = errors.ResponseError;
19
- exports.TooManyConcurrentRequestsError = errors.TooManyConcurrentRequestsError;
20
- exports.isErrorResponseMessage = messages.isErrorResponseMessage;
21
- exports.isRequestMessage = messages.isRequestMessage;
22
- exports.isResponseMessage = messages.isResponseMessage;
23
- exports.isSuccessResponseMessage = messages.isSuccessResponseMessage;
24
- exports.validateMessage = messages.validateMessage;
25
- Object.defineProperty(exports, "APIRequestType", {
26
- enumerable: true,
27
- get: () => types.APIRequestType
28
- });
29
- Object.defineProperty(exports, "ClientRequestType", {
30
- enumerable: true,
31
- get: () => types.ClientRequestType
32
- });
33
- //# sourceMappingURL=index.cjs.map
2
+ const require_errors = require("./channel/errors.cjs");
3
+ const require_messages = require("./channel/messages.cjs");
4
+ const require_types = require("./types.cjs");
5
+ const require_SimulatorClient = require("./SimulatorClient.cjs");
6
+ const require_SimulatorAPI = require("./SimulatorAPI.cjs");
7
+ exports.APIRequestType = require_types.APIRequestType;
8
+ exports.ChannelNotSetError = require_errors.ChannelNotSetError;
9
+ exports.ClientRequestType = require_types.ClientRequestType;
10
+ exports.ConnectionTimeoutError = require_errors.ConnectionTimeoutError;
11
+ exports.NotReadyError = require_errors.NotReadyError;
12
+ exports.PortNotSetError = require_errors.PortNotSetError;
13
+ exports.RequestTimeoutError = require_errors.RequestTimeoutError;
14
+ exports.ResponseError = require_errors.ResponseError;
15
+ exports.SimulatorAPI = require_SimulatorAPI.SimulatorAPI;
16
+ exports.SimulatorClient = require_SimulatorClient.SimulatorClient;
17
+ exports.TooManyConcurrentRequestsError = require_errors.TooManyConcurrentRequestsError;
18
+ exports.isErrorResponseMessage = require_messages.isErrorResponseMessage;
19
+ exports.isRequestMessage = require_messages.isRequestMessage;
20
+ exports.isResponseMessage = require_messages.isResponseMessage;
21
+ exports.isSuccessResponseMessage = require_messages.isSuccessResponseMessage;
22
+ exports.simulatorAPIDefaultOptions = require_SimulatorAPI.simulatorAPIDefaultOptions;
23
+ exports.simulatorClientDefaultOptions = require_SimulatorClient.simulatorClientDefaultOptions;
24
+ exports.validateMessage = require_messages.validateMessage;
@@ -0,0 +1,9 @@
1
+ import { ErrorResponseMessage, RequestMessage, ResponseMessage, SuccessResponseMessage } from "./channel/types.cjs";
2
+ import { AllChannelReceiverOptions } from "./channel/ChannelReceiver.cjs";
3
+ import { AllChannelEmitterOptions } from "./channel/ChannelEmitter.cjs";
4
+ import { isErrorResponseMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, validateMessage } from "./channel/messages.cjs";
5
+ import { ChannelNotSetError, ConnectionTimeoutError, NotReadyError, PortNotSetError, RequestTimeoutError, ResponseError, TooManyConcurrentRequestsError } from "./channel/errors.cjs";
6
+ import { APIRequestType, APITransactions, ActiveSlice, ClientRequestType, ClientTransactions, SliceZoneSize } from "./types.cjs";
7
+ import { SimulatorAPI, SimulatorAPIOptions, simulatorAPIDefaultOptions } from "./SimulatorAPI.cjs";
8
+ import { SimulatorClient, simulatorClientDefaultOptions } from "./SimulatorClient.cjs";
9
+ export { APIRequestType, type APITransactions, type ActiveSlice, type AllChannelEmitterOptions, type AllChannelReceiverOptions, ChannelNotSetError, ClientRequestType, type ClientTransactions, ConnectionTimeoutError, type ErrorResponseMessage, NotReadyError, PortNotSetError, type RequestMessage, RequestTimeoutError, ResponseError, type ResponseMessage, SimulatorAPI, type SimulatorAPIOptions, SimulatorClient, type SliceZoneSize, type SuccessResponseMessage, TooManyConcurrentRequestsError, isErrorResponseMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, simulatorAPIDefaultOptions, simulatorClientDefaultOptions, validateMessage };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- export { SimulatorClient, simulatorClientDefaultOptions, } from "./SimulatorClient";
2
- export { SimulatorAPI, simulatorAPIDefaultOptions } from "./SimulatorAPI";
3
- export type { SimulatorAPIOptions } from "./SimulatorAPI";
4
- export { validateMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, isErrorResponseMessage, ResponseError, ConnectionTimeoutError, TooManyConcurrentRequestsError, RequestTimeoutError, NotReadyError, PortNotSetError, ChannelNotSetError, } from "./channel";
5
- export type { RequestMessage, ResponseMessage, ErrorResponseMessage, SuccessResponseMessage, AllChannelEmitterOptions, AllChannelReceiverOptions, } from "./channel";
6
- export { APIRequestType, ClientRequestType } from "./types";
7
- export type { ActiveSlice, SliceZoneSize, APITransactions, ClientTransactions, } from "./types";
8
- export * from "./globalExtensions";
1
+ import { ErrorResponseMessage, RequestMessage, ResponseMessage, SuccessResponseMessage } from "./channel/types.js";
2
+ import { AllChannelReceiverOptions } from "./channel/ChannelReceiver.js";
3
+ import { AllChannelEmitterOptions } from "./channel/ChannelEmitter.js";
4
+ import { isErrorResponseMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, validateMessage } from "./channel/messages.js";
5
+ import { ChannelNotSetError, ConnectionTimeoutError, NotReadyError, PortNotSetError, RequestTimeoutError, ResponseError, TooManyConcurrentRequestsError } from "./channel/errors.js";
6
+ import { APIRequestType, APITransactions, ActiveSlice, ClientRequestType, ClientTransactions, SliceZoneSize } from "./types.js";
7
+ import { SimulatorAPI, SimulatorAPIOptions, simulatorAPIDefaultOptions } from "./SimulatorAPI.js";
8
+ import { SimulatorClient, simulatorClientDefaultOptions } from "./SimulatorClient.js";
9
+ export { APIRequestType, type APITransactions, type ActiveSlice, type AllChannelEmitterOptions, type AllChannelReceiverOptions, ChannelNotSetError, ClientRequestType, type ClientTransactions, ConnectionTimeoutError, type ErrorResponseMessage, NotReadyError, PortNotSetError, type RequestMessage, RequestTimeoutError, ResponseError, type ResponseMessage, SimulatorAPI, type SimulatorAPIOptions, SimulatorClient, type SliceZoneSize, type SuccessResponseMessage, TooManyConcurrentRequestsError, isErrorResponseMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, simulatorAPIDefaultOptions, simulatorClientDefaultOptions, validateMessage };
package/dist/index.js CHANGED
@@ -1,27 +1,6 @@
1
- import { SimulatorClient, simulatorClientDefaultOptions } from "./SimulatorClient.js";
2
- import { SimulatorAPI, simulatorAPIDefaultOptions } from "./SimulatorAPI.js";
3
1
  import { ChannelNotSetError, ConnectionTimeoutError, NotReadyError, PortNotSetError, RequestTimeoutError, ResponseError, TooManyConcurrentRequestsError } from "./channel/errors.js";
4
2
  import { isErrorResponseMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, validateMessage } from "./channel/messages.js";
5
- import "./channel/types.js";
6
3
  import { APIRequestType, ClientRequestType } from "./types.js";
7
- export {
8
- APIRequestType,
9
- ChannelNotSetError,
10
- ClientRequestType,
11
- ConnectionTimeoutError,
12
- NotReadyError,
13
- PortNotSetError,
14
- RequestTimeoutError,
15
- ResponseError,
16
- SimulatorAPI,
17
- SimulatorClient,
18
- TooManyConcurrentRequestsError,
19
- isErrorResponseMessage,
20
- isRequestMessage,
21
- isResponseMessage,
22
- isSuccessResponseMessage,
23
- simulatorAPIDefaultOptions,
24
- simulatorClientDefaultOptions,
25
- validateMessage
26
- };
27
- //# sourceMappingURL=index.js.map
4
+ import { SimulatorClient, simulatorClientDefaultOptions } from "./SimulatorClient.js";
5
+ import { SimulatorAPI, simulatorAPIDefaultOptions } from "./SimulatorAPI.js";
6
+ export { APIRequestType, ChannelNotSetError, ClientRequestType, ConnectionTimeoutError, NotReadyError, PortNotSetError, RequestTimeoutError, ResponseError, SimulatorAPI, SimulatorClient, TooManyConcurrentRequestsError, isErrorResponseMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, simulatorAPIDefaultOptions, simulatorClientDefaultOptions, validateMessage };
@@ -1,139 +1,105 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => {
5
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
- return value;
1
+ const require_errors = require("../channel/errors.cjs");
2
+ const require_types = require("../types.cjs");
3
+ const require_SimulatorAPI = require("../SimulatorAPI.cjs");
4
+ const require_throttle = require("../lib/throttle.cjs");
5
+ const require_domHelpers = require("./domHelpers.cjs");
6
+ const require_messages = require("./messages.cjs");
7
+ const require_types$1 = require("./types.cjs");
8
+ const require_State = require("./State.cjs");
9
+ //#region src/kit/SimulatorManager.ts
10
+ var SimulatorManager = class {
11
+ state;
12
+ _api;
13
+ _initialized;
14
+ constructor(args) {
15
+ this.state = new require_State.State(args);
16
+ this._api = null;
17
+ this._initialized = false;
18
+ }
19
+ async init() {
20
+ if (this._initialized) return;
21
+ else this._initialized = true;
22
+ await this.state.init();
23
+ try {
24
+ await this._initAPI();
25
+ } catch (error) {
26
+ if (error instanceof Error && error.message === "Receiver is currently not embedded as an iframe" && !this.state.slices.length) this.state.message = require_messages.sliceSimulatorAccessedDirectly;
27
+ console.error(error);
28
+ return;
29
+ }
30
+ this._initListeners();
31
+ }
32
+ async _initAPI() {
33
+ this._api = new require_SimulatorAPI.SimulatorAPI({
34
+ [require_types.ClientRequestType.SetSliceZone]: (req, res) => {
35
+ this.state.setSliceZone(req.data);
36
+ return res.success();
37
+ },
38
+ [require_types.ClientRequestType.ScrollToSlice]: (req, res) => {
39
+ if (req.data.sliceIndex < 0) return res.error("`sliceIndex` must be > 0", 400);
40
+ else if (req.data.sliceIndex >= this.state.slices.length) return res.error(`\`sliceIndex\` must be < ${this.state.slices.length} (\`<SliceZone />\` current length)`, 400);
41
+ const $sliceZone = require_domHelpers.getSliceZoneDOM(this.state.slices.length);
42
+ if (!$sliceZone) return res.error("Failed to find `<SliceZone />`", 500);
43
+ this.state.activeSlice = null;
44
+ const $slice = $sliceZone.children[req.data.sliceIndex];
45
+ if (!$slice) return res.error(`Failed fo find slice at index $\`{req.data.sliceIndex}\` in \`<SliceZone />\``, 500);
46
+ $slice.scrollIntoView({
47
+ behavior: req.data.behavior,
48
+ block: req.data.block,
49
+ inline: req.data.inline
50
+ });
51
+ if (this._api?.options.activeSliceAPI) setTimeout(this.state.setActiveSlice, 750);
52
+ return res.success();
53
+ }
54
+ });
55
+ await this._api.ready();
56
+ }
57
+ _initListeners() {
58
+ if (this._api?.options.activeSliceAPI) {
59
+ window.addEventListener("mousemove", () => {
60
+ this.state.setActiveSlice();
61
+ });
62
+ window.addEventListener("resize", () => {
63
+ this.state.setActiveSlice();
64
+ });
65
+ window.addEventListener("mousewheel", () => {
66
+ setTimeout(this.state.setActiveSlice, 200);
67
+ });
68
+ this.state.on(require_types$1.StateEventType.Slices, () => {
69
+ this.state.setActiveSlice();
70
+ });
71
+ this.state.on(require_types$1.StateEventType.ActiveSlice, async (activeSlice) => {
72
+ if (this._api) try {
73
+ await this._api.setActiveSlice(activeSlice);
74
+ } catch (error) {
75
+ if (error instanceof require_errors.ResponseError && error.response.status === 400) console.error(error.response);
76
+ else throw error;
77
+ }
78
+ });
79
+ }
80
+ if (this._api?.options.sliceZoneSizeAPI) {
81
+ const resizeObserver = new ResizeObserver(require_throttle.throttle(async (entries) => {
82
+ const [entry] = entries;
83
+ if (this._api && entry) try {
84
+ await this._api.setSliceZoneSize({ rect: entry.contentRect });
85
+ } catch (error) {
86
+ if (error instanceof require_errors.ResponseError && error.response.status === 400) console.error(error.response);
87
+ else throw error;
88
+ }
89
+ }, 16));
90
+ const observeSimulatorRoot = () => {
91
+ const simulatorRootDOM = require_domHelpers.getSimulatorRootDOM();
92
+ resizeObserver.disconnect();
93
+ if (simulatorRootDOM) resizeObserver.observe(simulatorRootDOM);
94
+ };
95
+ new MutationObserver(observeSimulatorRoot).observe(require_domHelpers.getSimulatorDOM(), {
96
+ subtree: false,
97
+ childList: true
98
+ });
99
+ }
100
+ }
7
101
  };
8
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
9
- const throttle = require("../lib/throttle.cjs");
10
- const types = require("../types.cjs");
11
- const types$1 = require("./types.cjs");
12
- const SimulatorAPI = require("../SimulatorAPI.cjs");
13
- const errors = require("../channel/errors.cjs");
14
- require("statuses");
15
- require("../channel/types.cjs");
16
- const State = require("./State.cjs");
17
- const domHelpers = require("./domHelpers.cjs");
18
- const messages = require("./messages.cjs");
19
- class SimulatorManager {
20
- constructor(args) {
21
- __publicField(this, "state");
22
- __publicField(this, "_api");
23
- __publicField(this, "_initialized");
24
- this.state = new State.State(args);
25
- this._api = null;
26
- this._initialized = false;
27
- }
28
- async init() {
29
- if (this._initialized) {
30
- return;
31
- } else {
32
- this._initialized = true;
33
- }
34
- await this.state.init();
35
- try {
36
- await this._initAPI();
37
- } catch (error) {
38
- if (error instanceof Error && error.message === "Receiver is currently not embedded as an iframe" && !this.state.slices.length) {
39
- this.state.message = messages.sliceSimulatorAccessedDirectly;
40
- }
41
- console.error(error);
42
- return;
43
- }
44
- this._initListeners();
45
- }
46
- async _initAPI() {
47
- this._api = new SimulatorAPI.SimulatorAPI({
48
- [types.ClientRequestType.SetSliceZone]: (req, res) => {
49
- this.state.setSliceZone(req.data);
50
- return res.success();
51
- },
52
- [types.ClientRequestType.ScrollToSlice]: (req, res) => {
53
- var _a;
54
- if (req.data.sliceIndex < 0) {
55
- return res.error("`sliceIndex` must be > 0", 400);
56
- } else if (req.data.sliceIndex >= this.state.slices.length) {
57
- return res.error(`\`sliceIndex\` must be < ${this.state.slices.length} (\`<SliceZone />\` current length)`, 400);
58
- }
59
- const $sliceZone = domHelpers.getSliceZoneDOM(this.state.slices.length);
60
- if (!$sliceZone) {
61
- return res.error("Failed to find `<SliceZone />`", 500);
62
- }
63
- this.state.activeSlice = null;
64
- const $slice = $sliceZone.children[req.data.sliceIndex];
65
- if (!$slice) {
66
- return res.error(`Failed fo find slice at index $\`{req.data.sliceIndex}\` in \`<SliceZone />\``, 500);
67
- }
68
- $slice.scrollIntoView({
69
- behavior: req.data.behavior,
70
- block: req.data.block,
71
- inline: req.data.inline
72
- });
73
- ((_a = this._api) == null ? void 0 : _a.options.activeSliceAPI) && setTimeout(this.state.setActiveSlice, 750);
74
- return res.success();
75
- }
76
- });
77
- await this._api.ready();
78
- }
79
- _initListeners() {
80
- var _a, _b;
81
- if ((_a = this._api) == null ? void 0 : _a.options.activeSliceAPI) {
82
- window.addEventListener("mousemove", () => {
83
- this.state.setActiveSlice();
84
- });
85
- window.addEventListener("resize", () => {
86
- this.state.setActiveSlice();
87
- });
88
- window.addEventListener("mousewheel", () => {
89
- setTimeout(this.state.setActiveSlice, 200);
90
- });
91
- this.state.on(types$1.StateEventType.Slices, () => {
92
- this.state.setActiveSlice();
93
- });
94
- this.state.on(types$1.StateEventType.ActiveSlice, async (activeSlice) => {
95
- if (this._api) {
96
- try {
97
- await this._api.setActiveSlice(activeSlice);
98
- } catch (error) {
99
- if (error instanceof errors.ResponseError && error.response.status === 400) {
100
- console.error(error.response);
101
- } else {
102
- throw error;
103
- }
104
- }
105
- }
106
- });
107
- }
108
- if ((_b = this._api) == null ? void 0 : _b.options.sliceZoneSizeAPI) {
109
- const resizeObserver = new ResizeObserver(throttle.throttle(async (entries) => {
110
- const [entry] = entries;
111
- if (this._api && entry) {
112
- try {
113
- await this._api.setSliceZoneSize({ rect: entry.contentRect });
114
- } catch (error) {
115
- if (error instanceof errors.ResponseError && error.response.status === 400) {
116
- console.error(error.response);
117
- } else {
118
- throw error;
119
- }
120
- }
121
- }
122
- }, 16));
123
- const observeSimulatorRoot = () => {
124
- const simulatorRootDOM = domHelpers.getSimulatorRootDOM();
125
- resizeObserver.disconnect();
126
- if (simulatorRootDOM) {
127
- resizeObserver.observe(simulatorRootDOM);
128
- }
129
- };
130
- const mutationObserver = new MutationObserver(observeSimulatorRoot);
131
- mutationObserver.observe(domHelpers.getSimulatorDOM(), {
132
- subtree: false,
133
- childList: true
134
- });
135
- }
136
- }
137
- }
102
+ //#endregion
138
103
  exports.SimulatorManager = SimulatorManager;
139
- //# sourceMappingURL=SimulatorManager.cjs.map
104
+
105
+ //# sourceMappingURL=SimulatorManager.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimulatorManager.cjs","sources":["../../../src/kit/SimulatorManager.ts"],"sourcesContent":["import type { SliceZone } from \"@prismicio/client\";\n\nimport { throttle } from \"../lib/throttle\";\n\nimport { ClientRequestType } from \"../types\";\nimport { StateEventType } from \"./types\";\n\nimport { SimulatorAPI } from \"../SimulatorAPI\";\nimport { ResponseError } from \"../channel\";\n\nimport { State } from \"./State\";\nimport {\n\tgetSimulatorDOM,\n\tgetSimulatorRootDOM,\n\tgetSliceZoneDOM,\n} from \"./domHelpers\";\nimport { sliceSimulatorAccessedDirectly } from \"./messages\";\n\ntype ManagerConstructorArgs = {\n\tslices?: SliceZone;\n};\n\nexport class SimulatorManager {\n\tpublic state: State;\n\tprivate _api: SimulatorAPI | null;\n\tprivate _initialized: boolean;\n\n\tconstructor(args?: ManagerConstructorArgs) {\n\t\tthis.state = new State(args);\n\t\tthis._api = null;\n\t\tthis._initialized = false;\n\t}\n\n\tasync init(): Promise<void> {\n\t\tif (this._initialized) {\n\t\t\treturn;\n\t\t} else {\n\t\t\tthis._initialized = true;\n\t\t}\n\n\t\t// Init state manager\n\t\tawait this.state.init();\n\n\t\t// Init API\n\t\ttry {\n\t\t\tawait this._initAPI();\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror instanceof Error &&\n\t\t\t\terror.message === \"Receiver is currently not embedded as an iframe\" &&\n\t\t\t\t!this.state.slices.length\n\t\t\t) {\n\t\t\t\t// Catch not embedded error and display message\n\t\t\t\tthis.state.message = sliceSimulatorAccessedDirectly;\n\t\t\t}\n\t\t\tconsole.error(error);\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Init listeners\n\t\tthis._initListeners();\n\t}\n\n\tprivate async _initAPI(): Promise<void> {\n\t\t// Register SimulatorAPI request handlers\n\t\tthis._api = new SimulatorAPI({\n\t\t\t[ClientRequestType.SetSliceZone]: (req, res) => {\n\t\t\t\tthis.state.setSliceZone(req.data);\n\n\t\t\t\treturn res.success();\n\t\t\t},\n\t\t\t[ClientRequestType.ScrollToSlice]: (req, res) => {\n\t\t\t\t// Error if `sliceIndex` is invalid\n\t\t\t\tif (req.data.sliceIndex < 0) {\n\t\t\t\t\treturn res.error(\"`sliceIndex` must be > 0\", 400);\n\t\t\t\t} else if (req.data.sliceIndex >= this.state.slices.length) {\n\t\t\t\t\treturn res.error(\n\t\t\t\t\t\t`\\`sliceIndex\\` must be < ${this.state.slices.length} (\\`<SliceZone />\\` current length)`,\n\t\t\t\t\t\t400,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst $sliceZone = getSliceZoneDOM(this.state.slices.length);\n\t\t\t\tif (!$sliceZone) {\n\t\t\t\t\treturn res.error(\"Failed to find `<SliceZone />`\", 500);\n\t\t\t\t}\n\n\t\t\t\t// Destroy existing active slice as we're about to scroll\n\t\t\t\tthis.state.activeSlice = null;\n\n\t\t\t\tconst $slice = $sliceZone.children[req.data.sliceIndex];\n\t\t\t\tif (!$slice) {\n\t\t\t\t\treturn res.error(\n\t\t\t\t\t\t`Failed fo find slice at index $\\`{req.data.sliceIndex}\\` in \\`<SliceZone />\\``,\n\t\t\t\t\t\t500,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Scroll to Slice\n\t\t\t\t$slice.scrollIntoView({\n\t\t\t\t\tbehavior: req.data.behavior,\n\t\t\t\t\tblock: req.data.block,\n\t\t\t\t\tinline: req.data.inline,\n\t\t\t\t});\n\n\t\t\t\t// Update active slice after scrolling\n\t\t\t\tthis._api?.options.activeSliceAPI &&\n\t\t\t\t\tsetTimeout(this.state.setActiveSlice, 750);\n\n\t\t\t\treturn res.success();\n\t\t\t},\n\t\t});\n\n\t\t// Mark API as ready\n\t\tawait this._api.ready();\n\t}\n\n\tprivate _initListeners(): void {\n\t\tif (this._api?.options.activeSliceAPI) {\n\t\t\t// Update active slice on mouse move\n\t\t\twindow.addEventListener(\"mousemove\", () => {\n\t\t\t\tthis.state.setActiveSlice();\n\t\t\t});\n\t\t\t// Update active slice on events impacting slices rendering\n\t\t\twindow.addEventListener(\"resize\", () => {\n\t\t\t\tthis.state.setActiveSlice();\n\t\t\t});\n\t\t\twindow.addEventListener(\"mousewheel\", () => {\n\t\t\t\tsetTimeout(this.state.setActiveSlice, 200);\n\t\t\t});\n\n\t\t\t// Update active slice when slices are set\n\t\t\tthis.state.on(StateEventType.Slices, () => {\n\t\t\t\tthis.state.setActiveSlice();\n\t\t\t});\n\t\t\t// Send active slices to renderer\n\t\t\tthis.state.on(StateEventType.ActiveSlice, async (activeSlice) => {\n\t\t\t\tif (this._api) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait this._api.setActiveSlice(activeSlice);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// Just log bad requests, throw everything else\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\terror instanceof ResponseError &&\n\t\t\t\t\t\t\terror.response.status === 400\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconsole.error(error.response);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (this._api?.options.sliceZoneSizeAPI) {\n\t\t\t// Monitor Simulator root node size\n\t\t\tconst resizeObserver = new ResizeObserver(\n\t\t\t\tthrottle(async (entries) => {\n\t\t\t\t\tconst [entry] = entries;\n\n\t\t\t\t\tif (this._api && entry) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait this._api.setSliceZoneSize({ rect: entry.contentRect });\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t// Just log bad requests, throw everything else\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\terror instanceof ResponseError &&\n\t\t\t\t\t\t\t\terror.response.status === 400\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconsole.error(error.response);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, 16),\n\t\t\t);\n\t\t\tconst observeSimulatorRoot = () => {\n\t\t\t\tconst simulatorRootDOM = getSimulatorRootDOM();\n\t\t\t\tresizeObserver.disconnect();\n\t\t\t\tif (simulatorRootDOM) {\n\t\t\t\t\tresizeObserver.observe(simulatorRootDOM);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Monitor Simulator root node in DOM\n\t\t\tconst mutationObserver = new MutationObserver(observeSimulatorRoot);\n\t\t\t// We want it to fail if not found\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tmutationObserver.observe(getSimulatorDOM()!, {\n\t\t\t\tsubtree: false,\n\t\t\t\tchildList: true,\n\t\t\t});\n\t\t}\n\t}\n}\n"],"names":["State","sliceSimulatorAccessedDirectly","SimulatorAPI","ClientRequestType","getSliceZoneDOM","StateEventType","ResponseError","throttle","getSimulatorRootDOM","getSimulatorDOM"],"mappings":"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"}
1
+ {"version":3,"file":"SimulatorManager.cjs","names":["State","sliceSimulatorAccessedDirectly","SimulatorAPI","ClientRequestType","getSliceZoneDOM","StateEventType","ResponseError","throttle","getSimulatorRootDOM","getSimulatorDOM"],"sources":["../../src/kit/SimulatorManager.ts"],"sourcesContent":["import type { SliceZone } from \"@prismicio/client\"\n\nimport { ResponseError } from \"../channel\"\nimport { throttle } from \"../lib/throttle\"\nimport { SimulatorAPI } from \"../SimulatorAPI\"\nimport { ClientRequestType } from \"../types\"\nimport { getSimulatorDOM, getSimulatorRootDOM, getSliceZoneDOM } from \"./domHelpers\"\nimport { sliceSimulatorAccessedDirectly } from \"./messages\"\nimport { State } from \"./State\"\nimport { StateEventType } from \"./types\"\n\ntype ManagerConstructorArgs = {\n\tslices?: SliceZone\n}\n\nexport class SimulatorManager {\n\tpublic state: State\n\tprivate _api: SimulatorAPI | null\n\tprivate _initialized: boolean\n\n\tconstructor(args?: ManagerConstructorArgs) {\n\t\tthis.state = new State(args)\n\t\tthis._api = null\n\t\tthis._initialized = false\n\t}\n\n\tasync init(): Promise<void> {\n\t\tif (this._initialized) {\n\t\t\treturn\n\t\t} else {\n\t\t\tthis._initialized = true\n\t\t}\n\n\t\t// Init state manager\n\t\tawait this.state.init()\n\n\t\t// Init API\n\t\ttry {\n\t\t\tawait this._initAPI()\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror instanceof Error &&\n\t\t\t\terror.message === \"Receiver is currently not embedded as an iframe\" &&\n\t\t\t\t!this.state.slices.length\n\t\t\t) {\n\t\t\t\t// Catch not embedded error and display message\n\t\t\t\tthis.state.message = sliceSimulatorAccessedDirectly\n\t\t\t}\n\t\t\tconsole.error(error)\n\n\t\t\treturn\n\t\t}\n\n\t\t// Init listeners\n\t\tthis._initListeners()\n\t}\n\n\tprivate async _initAPI(): Promise<void> {\n\t\t// Register SimulatorAPI request handlers\n\t\tthis._api = new SimulatorAPI({\n\t\t\t[ClientRequestType.SetSliceZone]: (req, res) => {\n\t\t\t\tthis.state.setSliceZone(req.data)\n\n\t\t\t\treturn res.success()\n\t\t\t},\n\t\t\t[ClientRequestType.ScrollToSlice]: (req, res) => {\n\t\t\t\t// Error if `sliceIndex` is invalid\n\t\t\t\tif (req.data.sliceIndex < 0) {\n\t\t\t\t\treturn res.error(\"`sliceIndex` must be > 0\", 400)\n\t\t\t\t} else if (req.data.sliceIndex >= this.state.slices.length) {\n\t\t\t\t\treturn res.error(\n\t\t\t\t\t\t`\\`sliceIndex\\` must be < ${this.state.slices.length} (\\`<SliceZone />\\` current length)`,\n\t\t\t\t\t\t400,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tconst $sliceZone = getSliceZoneDOM(this.state.slices.length)\n\t\t\t\tif (!$sliceZone) {\n\t\t\t\t\treturn res.error(\"Failed to find `<SliceZone />`\", 500)\n\t\t\t\t}\n\n\t\t\t\t// Destroy existing active slice as we're about to scroll\n\t\t\t\tthis.state.activeSlice = null\n\n\t\t\t\tconst $slice = $sliceZone.children[req.data.sliceIndex]\n\t\t\t\tif (!$slice) {\n\t\t\t\t\treturn res.error(\n\t\t\t\t\t\t`Failed fo find slice at index $\\`{req.data.sliceIndex}\\` in \\`<SliceZone />\\``,\n\t\t\t\t\t\t500,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t// Scroll to Slice\n\t\t\t\t$slice.scrollIntoView({\n\t\t\t\t\tbehavior: req.data.behavior,\n\t\t\t\t\tblock: req.data.block,\n\t\t\t\t\tinline: req.data.inline,\n\t\t\t\t})\n\n\t\t\t\t// Update active slice after scrolling\n\t\t\t\tif (this._api?.options.activeSliceAPI) {\n\t\t\t\t\tsetTimeout(this.state.setActiveSlice, 750)\n\t\t\t\t}\n\n\t\t\t\treturn res.success()\n\t\t\t},\n\t\t})\n\n\t\t// Mark API as ready\n\t\tawait this._api.ready()\n\t}\n\n\tprivate _initListeners(): void {\n\t\tif (this._api?.options.activeSliceAPI) {\n\t\t\t// Update active slice on mouse move\n\t\t\twindow.addEventListener(\"mousemove\", () => {\n\t\t\t\tthis.state.setActiveSlice()\n\t\t\t})\n\t\t\t// Update active slice on events impacting slices rendering\n\t\t\twindow.addEventListener(\"resize\", () => {\n\t\t\t\tthis.state.setActiveSlice()\n\t\t\t})\n\t\t\twindow.addEventListener(\"mousewheel\", () => {\n\t\t\t\tsetTimeout(this.state.setActiveSlice, 200)\n\t\t\t})\n\n\t\t\t// Update active slice when slices are set\n\t\t\tthis.state.on(StateEventType.Slices, () => {\n\t\t\t\tthis.state.setActiveSlice()\n\t\t\t})\n\t\t\t// Send active slices to renderer\n\t\t\tthis.state.on(StateEventType.ActiveSlice, async (activeSlice) => {\n\t\t\t\tif (this._api) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait this._api.setActiveSlice(activeSlice)\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t// Just log bad requests, throw everything else\n\t\t\t\t\t\tif (error instanceof ResponseError && error.response.status === 400) {\n\t\t\t\t\t\t\tconsole.error(error.response)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthrow error\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tif (this._api?.options.sliceZoneSizeAPI) {\n\t\t\t// Monitor Simulator root node size\n\t\t\tconst resizeObserver = new ResizeObserver(\n\t\t\t\tthrottle(async (entries) => {\n\t\t\t\t\tconst [entry] = entries\n\n\t\t\t\t\tif (this._api && entry) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait this._api.setSliceZoneSize({ rect: entry.contentRect })\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t// Just log bad requests, throw everything else\n\t\t\t\t\t\t\tif (error instanceof ResponseError && error.response.status === 400) {\n\t\t\t\t\t\t\t\tconsole.error(error.response)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthrow error\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, 16),\n\t\t\t)\n\t\t\tconst observeSimulatorRoot = () => {\n\t\t\t\tconst simulatorRootDOM = getSimulatorRootDOM()\n\t\t\t\tresizeObserver.disconnect()\n\t\t\t\tif (simulatorRootDOM) {\n\t\t\t\t\tresizeObserver.observe(simulatorRootDOM)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Monitor Simulator root node in DOM\n\t\t\tconst mutationObserver = new MutationObserver(observeSimulatorRoot)\n\t\t\t// We want it to fail if not found\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tmutationObserver.observe(getSimulatorDOM()!, {\n\t\t\t\tsubtree: false,\n\t\t\t\tchildList: true,\n\t\t\t})\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { State } from "./State.cjs";
2
+ import { SliceZone } from "@prismicio/client";
3
+
4
+ //#region src/kit/SimulatorManager.d.ts
5
+ type ManagerConstructorArgs = {
6
+ slices?: SliceZone;
7
+ };
8
+ declare class SimulatorManager {
9
+ state: State;
10
+ private _api;
11
+ private _initialized;
12
+ constructor(args?: ManagerConstructorArgs);
13
+ init(): Promise<void>;
14
+ private _initAPI;
15
+ private _initListeners;
16
+ }
17
+ //#endregion
18
+ export { SimulatorManager };
19
+ //# sourceMappingURL=SimulatorManager.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimulatorManager.d.cts","names":[],"sources":["../../src/kit/SimulatorManager.ts"],"mappings":";;;;KAWK,sBAAA;EACJ,MAAA,GAAS,SAAA;AAAA;AAAA,cAGG,gBAAA;EACL,KAAA,EAAO,KAAA;EAAA,QACN,IAAA;EAAA,QACA,YAAA;cAEI,IAAA,GAAO,sBAAA;EAMb,IAAA,CAAA,GAAQ,OAAA;EAAA,QA+BA,QAAA;EAAA,QAuDN,cAAA;AAAA"}
@@ -1,15 +1,19 @@
1
- import type { SliceZone } from "@prismicio/client";
2
- import { State } from "./State";
1
+ import { State } from "./State.js";
2
+ import { SliceZone } from "@prismicio/client";
3
+
4
+ //#region src/kit/SimulatorManager.d.ts
3
5
  type ManagerConstructorArgs = {
4
- slices?: SliceZone;
6
+ slices?: SliceZone;
5
7
  };
6
- export declare class SimulatorManager {
7
- state: State;
8
- private _api;
9
- private _initialized;
10
- constructor(args?: ManagerConstructorArgs);
11
- init(): Promise<void>;
12
- private _initAPI;
13
- private _initListeners;
8
+ declare class SimulatorManager {
9
+ state: State;
10
+ private _api;
11
+ private _initialized;
12
+ constructor(args?: ManagerConstructorArgs);
13
+ init(): Promise<void>;
14
+ private _initAPI;
15
+ private _initListeners;
14
16
  }
15
- export {};
17
+ //#endregion
18
+ export { SimulatorManager };
19
+ //# sourceMappingURL=SimulatorManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimulatorManager.d.ts","names":[],"sources":["../../src/kit/SimulatorManager.ts"],"mappings":";;;;KAWK,sBAAA;EACJ,MAAA,GAAS,SAAA;AAAA;AAAA,cAGG,gBAAA;EACL,KAAA,EAAO,KAAA;EAAA,QACN,IAAA;EAAA,QACA,YAAA;cAEI,IAAA,GAAO,sBAAA;EAMb,IAAA,CAAA,GAAQ,OAAA;EAAA,QA+BA,QAAA;EAAA,QAuDN,cAAA;AAAA"}