@prismicio/simulator 0.2.0 → 0.2.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.
Files changed (144) hide show
  1. package/dist/SimulatorAPI.cjs +7 -9
  2. package/dist/SimulatorAPI.cjs.map +1 -1
  3. package/dist/SimulatorAPI.d.cts.map +1 -0
  4. package/dist/SimulatorAPI.d.ts.map +1 -0
  5. package/dist/SimulatorAPI.js +6 -8
  6. package/dist/SimulatorAPI.js.map +1 -1
  7. package/dist/SimulatorClient.cjs +7 -9
  8. package/dist/SimulatorClient.cjs.map +1 -1
  9. package/dist/SimulatorClient.d.cts.map +1 -0
  10. package/dist/SimulatorClient.d.ts.map +1 -0
  11. package/dist/SimulatorClient.js +6 -8
  12. package/dist/SimulatorClient.js.map +1 -1
  13. package/dist/channel/ChannelEmitter.cjs +10 -13
  14. package/dist/channel/ChannelEmitter.cjs.map +1 -1
  15. package/dist/channel/ChannelEmitter.d.cts +1 -3
  16. package/dist/channel/ChannelEmitter.d.cts.map +1 -0
  17. package/dist/channel/ChannelEmitter.d.ts +1 -3
  18. package/dist/channel/ChannelEmitter.d.ts.map +1 -0
  19. package/dist/channel/ChannelEmitter.js +6 -9
  20. package/dist/channel/ChannelEmitter.js.map +1 -1
  21. package/dist/channel/ChannelNetwork.cjs +5 -6
  22. package/dist/channel/ChannelNetwork.cjs.map +1 -1
  23. package/dist/channel/ChannelNetwork.d.cts.map +1 -0
  24. package/dist/channel/ChannelNetwork.d.ts.map +1 -0
  25. package/dist/channel/ChannelNetwork.js +3 -4
  26. package/dist/channel/ChannelNetwork.js.map +1 -1
  27. package/dist/channel/ChannelReceiver.cjs +9 -10
  28. package/dist/channel/ChannelReceiver.cjs.map +1 -1
  29. package/dist/channel/ChannelReceiver.d.cts.map +1 -0
  30. package/dist/channel/ChannelReceiver.d.ts.map +1 -0
  31. package/dist/channel/ChannelReceiver.js +5 -6
  32. package/dist/channel/ChannelReceiver.js.map +1 -1
  33. package/dist/channel/errors.cjs +1 -2
  34. package/dist/channel/errors.cjs.map +1 -1
  35. package/dist/channel/errors.d.cts.map +1 -0
  36. package/dist/channel/errors.d.ts.map +1 -0
  37. package/dist/channel/errors.js +1 -1
  38. package/dist/channel/errors.js.map +1 -1
  39. package/dist/channel/messages.cjs +5 -6
  40. package/dist/channel/messages.cjs.map +1 -1
  41. package/dist/channel/messages.d.cts +0 -1
  42. package/dist/channel/messages.d.cts.map +1 -0
  43. package/dist/channel/messages.d.ts +0 -1
  44. package/dist/channel/messages.d.ts.map +1 -0
  45. package/dist/channel/messages.js +5 -5
  46. package/dist/channel/messages.js.map +1 -1
  47. package/dist/channel/types.cjs +7 -8
  48. package/dist/channel/types.cjs.map +1 -1
  49. package/dist/channel/types.d.cts +1 -1
  50. package/dist/channel/types.d.cts.map +1 -0
  51. package/dist/channel/types.d.ts +1 -1
  52. package/dist/channel/types.d.ts.map +1 -0
  53. package/dist/channel/types.js +7 -7
  54. package/dist/channel/types.js.map +1 -1
  55. package/dist/globalExtensions.d.cts +1 -1
  56. package/dist/globalExtensions.d.cts.map +1 -0
  57. package/dist/globalExtensions.d.ts +1 -1
  58. package/dist/globalExtensions.d.ts.map +1 -0
  59. package/dist/index.cjs +7 -7
  60. package/dist/index.d.cts +0 -1
  61. package/dist/index.d.ts +0 -1
  62. package/dist/index.js +2 -3
  63. package/dist/kit/SimulatorManager.cjs +12 -15
  64. package/dist/kit/SimulatorManager.cjs.map +1 -1
  65. package/dist/kit/SimulatorManager.d.cts.map +1 -0
  66. package/dist/kit/SimulatorManager.d.ts.map +1 -0
  67. package/dist/kit/SimulatorManager.js +7 -10
  68. package/dist/kit/SimulatorManager.js.map +1 -1
  69. package/dist/kit/State.cjs +7 -8
  70. package/dist/kit/State.cjs.map +1 -1
  71. package/dist/kit/State.d.cts.map +1 -0
  72. package/dist/kit/State.d.ts.map +1 -0
  73. package/dist/kit/State.js +4 -5
  74. package/dist/kit/State.js.map +1 -1
  75. package/dist/kit/domHelpers.cjs +1 -2
  76. package/dist/kit/domHelpers.cjs.map +1 -1
  77. package/dist/kit/domHelpers.d.cts.map +1 -0
  78. package/dist/kit/domHelpers.d.ts.map +1 -0
  79. package/dist/kit/domHelpers.js +1 -1
  80. package/dist/kit/domHelpers.js.map +1 -1
  81. package/dist/kit/eventHandlers.cjs +1 -2
  82. package/dist/kit/eventHandlers.cjs.map +1 -1
  83. package/dist/kit/eventHandlers.d.cts.map +1 -0
  84. package/dist/kit/eventHandlers.d.ts.map +1 -0
  85. package/dist/kit/eventHandlers.js +1 -1
  86. package/dist/kit/eventHandlers.js.map +1 -1
  87. package/dist/kit/getDefault.cjs +1 -2
  88. package/dist/kit/getDefault.cjs.map +1 -1
  89. package/dist/kit/getDefault.d.cts.map +1 -0
  90. package/dist/kit/getDefault.d.ts.map +1 -0
  91. package/dist/kit/getDefault.js +1 -1
  92. package/dist/kit/messages.cjs +3 -6
  93. package/dist/kit/messages.cjs.map +1 -1
  94. package/dist/kit/messages.d.cts.map +1 -0
  95. package/dist/kit/messages.d.ts.map +1 -0
  96. package/dist/kit/messages.js +3 -5
  97. package/dist/kit/messages.js.map +1 -1
  98. package/dist/kit/types.cjs +6 -7
  99. package/dist/kit/types.cjs.map +1 -1
  100. package/dist/kit/types.d.cts +1 -1
  101. package/dist/kit/types.d.cts.map +1 -0
  102. package/dist/kit/types.d.ts +1 -1
  103. package/dist/kit/types.d.ts.map +1 -0
  104. package/dist/kit/types.js +6 -6
  105. package/dist/kit/types.js.map +1 -1
  106. package/dist/kit.cjs +9 -9
  107. package/dist/kit.js +3 -4
  108. package/dist/lib/EventEmitter.cjs +1 -2
  109. package/dist/lib/EventEmitter.cjs.map +1 -1
  110. package/dist/lib/EventEmitter.d.cts.map +1 -0
  111. package/dist/lib/EventEmitter.d.ts.map +1 -0
  112. package/dist/lib/EventEmitter.js +1 -1
  113. package/dist/lib/EventEmitter.js.map +1 -1
  114. package/dist/lib/throttle.cjs +1 -2
  115. package/dist/lib/throttle.cjs.map +1 -1
  116. package/dist/lib/throttle.js +1 -1
  117. package/dist/types.cjs +10 -11
  118. package/dist/types.cjs.map +1 -1
  119. package/dist/types.d.cts +2 -2
  120. package/dist/types.d.cts.map +1 -0
  121. package/dist/types.d.ts +2 -2
  122. package/dist/types.d.ts.map +1 -0
  123. package/dist/types.js +10 -10
  124. package/dist/types.js.map +1 -1
  125. package/package.json +33 -35
  126. package/src/SimulatorAPI.ts +14 -30
  127. package/src/SimulatorClient.ts +15 -32
  128. package/src/channel/ChannelEmitter.ts +25 -57
  129. package/src/channel/ChannelNetwork.ts +36 -61
  130. package/src/channel/ChannelReceiver.ts +20 -51
  131. package/src/channel/errors.ts +2 -7
  132. package/src/channel/index.ts +5 -20
  133. package/src/channel/messages.ts +4 -13
  134. package/src/channel/types.ts +15 -31
  135. package/src/index.ts +2 -10
  136. package/src/kit/SimulatorManager.ts +7 -20
  137. package/src/kit/State.ts +4 -9
  138. package/src/kit/domHelpers.ts +1 -3
  139. package/src/kit/eventHandlers.ts +2 -7
  140. package/src/kit/index.ts +1 -5
  141. package/src/kit/messages.ts +1 -2
  142. package/src/kit/types.ts +0 -1
  143. package/src/lib/EventEmitter.ts +3 -9
  144. package/src/lib/__PRODUCTION__.ts +1 -2
@@ -11,5 +11,5 @@ declare global {
11
11
  };
12
12
  };
13
13
  }
14
- }
14
+ } //# sourceMappingURL=globalExtensions.d.ts.map
15
15
  //# sourceMappingURL=globalExtensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalExtensions.d.ts","names":[],"sources":["../src/globalExtensions.ts"],"mappings":";;;;QAGQ,MAAA;EAAA,UACG,MAAA;IACT,OAAA;MACC,cAAA;QACC,GAAA,GAAM,YAAA;QACN,MAAA,GAAS,eAAA;MAAA;IAAA;EAAA;AAAA"}
package/dist/index.cjs CHANGED
@@ -1,9 +1,9 @@
1
- const require_types = require('./types.cjs');
2
- const require_errors = require('./channel/errors.cjs');
3
- const require_messages = require('./channel/messages.cjs');
4
- const require_SimulatorClient = require('./SimulatorClient.cjs');
5
- const require_SimulatorAPI = require('./SimulatorAPI.cjs');
6
-
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
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
7
  exports.APIRequestType = require_types.APIRequestType;
8
8
  exports.ChannelNotSetError = require_errors.ChannelNotSetError;
9
9
  exports.ClientRequestType = require_types.ClientRequestType;
@@ -21,4 +21,4 @@ exports.isResponseMessage = require_messages.isResponseMessage;
21
21
  exports.isSuccessResponseMessage = require_messages.isSuccessResponseMessage;
22
22
  exports.simulatorAPIDefaultOptions = require_SimulatorAPI.simulatorAPIDefaultOptions;
23
23
  exports.simulatorClientDefaultOptions = require_SimulatorClient.simulatorClientDefaultOptions;
24
- exports.validateMessage = require_messages.validateMessage;
24
+ exports.validateMessage = require_messages.validateMessage;
package/dist/index.d.cts CHANGED
@@ -6,5 +6,4 @@ import { ChannelNotSetError, ConnectionTimeoutError, NotReadyError, PortNotSetEr
6
6
  import { APIRequestType, APITransactions, ActiveSlice, ClientRequestType, ClientTransactions, SliceZoneSize } from "./types.cjs";
7
7
  import { SimulatorAPI, SimulatorAPIOptions, simulatorAPIDefaultOptions } from "./SimulatorAPI.cjs";
8
8
  import { SimulatorClient, simulatorClientDefaultOptions } from "./SimulatorClient.cjs";
9
- import "./globalExtensions.cjs";
10
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
@@ -6,5 +6,4 @@ import { ChannelNotSetError, ConnectionTimeoutError, NotReadyError, PortNotSetEr
6
6
  import { APIRequestType, APITransactions, ActiveSlice, ClientRequestType, ClientTransactions, SliceZoneSize } from "./types.js";
7
7
  import { SimulatorAPI, SimulatorAPIOptions, simulatorAPIDefaultOptions } from "./SimulatorAPI.js";
8
8
  import { SimulatorClient, simulatorClientDefaultOptions } from "./SimulatorClient.js";
9
- import "./globalExtensions.js";
10
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,7 +1,6 @@
1
- import { APIRequestType, ClientRequestType } from "./types.js";
2
1
  import { ChannelNotSetError, ConnectionTimeoutError, NotReadyError, PortNotSetError, RequestTimeoutError, ResponseError, TooManyConcurrentRequestsError } from "./channel/errors.js";
3
2
  import { isErrorResponseMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, validateMessage } from "./channel/messages.js";
3
+ import { APIRequestType, ClientRequestType } from "./types.js";
4
4
  import { SimulatorClient, simulatorClientDefaultOptions } from "./SimulatorClient.js";
5
5
  import { SimulatorAPI, simulatorAPIDefaultOptions } from "./SimulatorAPI.js";
6
-
7
- export { APIRequestType, ChannelNotSetError, ClientRequestType, ConnectionTimeoutError, NotReadyError, PortNotSetError, RequestTimeoutError, ResponseError, SimulatorAPI, SimulatorClient, TooManyConcurrentRequestsError, isErrorResponseMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, simulatorAPIDefaultOptions, simulatorClientDefaultOptions, validateMessage };
6
+ export { APIRequestType, ChannelNotSetError, ClientRequestType, ConnectionTimeoutError, NotReadyError, PortNotSetError, RequestTimeoutError, ResponseError, SimulatorAPI, SimulatorClient, TooManyConcurrentRequestsError, isErrorResponseMessage, isRequestMessage, isResponseMessage, isSuccessResponseMessage, simulatorAPIDefaultOptions, simulatorClientDefaultOptions, validateMessage };
@@ -1,12 +1,11 @@
1
- const require_types = require('../types.cjs');
2
- const require_errors = require('../channel/errors.cjs');
3
- const require_SimulatorAPI = require('../SimulatorAPI.cjs');
4
- const require_throttle = require('../lib/throttle.cjs');
5
- const require_types$1 = require('./types.cjs');
6
- const require_domHelpers = require('./domHelpers.cjs');
7
- const require_State = require('./State.cjs');
8
- const require_messages = require('./messages.cjs');
9
-
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");
10
9
  //#region src/kit/SimulatorManager.ts
11
10
  var SimulatorManager = class {
12
11
  state;
@@ -37,7 +36,6 @@ var SimulatorManager = class {
37
36
  return res.success();
38
37
  },
39
38
  [require_types.ClientRequestType.ScrollToSlice]: (req, res) => {
40
- var _this$_api;
41
39
  if (req.data.sliceIndex < 0) return res.error("`sliceIndex` must be > 0", 400);
42
40
  else if (req.data.sliceIndex >= this.state.slices.length) return res.error(`\`sliceIndex\` must be < ${this.state.slices.length} (\`<SliceZone />\` current length)`, 400);
43
41
  const $sliceZone = require_domHelpers.getSliceZoneDOM(this.state.slices.length);
@@ -50,15 +48,14 @@ var SimulatorManager = class {
50
48
  block: req.data.block,
51
49
  inline: req.data.inline
52
50
  });
53
- if ((_this$_api = this._api) === null || _this$_api === void 0 ? void 0 : _this$_api.options.activeSliceAPI) setTimeout(this.state.setActiveSlice, 750);
51
+ if (this._api?.options.activeSliceAPI) setTimeout(this.state.setActiveSlice, 750);
54
52
  return res.success();
55
53
  }
56
54
  });
57
55
  await this._api.ready();
58
56
  }
59
57
  _initListeners() {
60
- var _this$_api2, _this$_api3;
61
- if ((_this$_api2 = this._api) === null || _this$_api2 === void 0 ? void 0 : _this$_api2.options.activeSliceAPI) {
58
+ if (this._api?.options.activeSliceAPI) {
62
59
  window.addEventListener("mousemove", () => {
63
60
  this.state.setActiveSlice();
64
61
  });
@@ -80,7 +77,7 @@ var SimulatorManager = class {
80
77
  }
81
78
  });
82
79
  }
83
- if ((_this$_api3 = this._api) === null || _this$_api3 === void 0 ? void 0 : _this$_api3.options.sliceZoneSizeAPI) {
80
+ if (this._api?.options.sliceZoneSizeAPI) {
84
81
  const resizeObserver = new ResizeObserver(require_throttle.throttle(async (entries) => {
85
82
  const [entry] = entries;
86
83
  if (this._api && entry) try {
@@ -102,7 +99,7 @@ var SimulatorManager = class {
102
99
  }
103
100
  }
104
101
  };
105
-
106
102
  //#endregion
107
103
  exports.SimulatorManager = SimulatorManager;
104
+
108
105
  //# sourceMappingURL=SimulatorManager.cjs.map
@@ -1 +1 @@
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 { 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\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 (\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"],"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 @@
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"}
@@ -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"}
@@ -1,12 +1,11 @@
1
- import { ClientRequestType } from "../types.js";
2
1
  import { ResponseError } from "../channel/errors.js";
2
+ import { ClientRequestType } from "../types.js";
3
3
  import { SimulatorAPI } from "../SimulatorAPI.js";
4
4
  import { throttle } from "../lib/throttle.js";
5
- import { StateEventType } from "./types.js";
6
5
  import { getSimulatorDOM, getSimulatorRootDOM, getSliceZoneDOM } from "./domHelpers.js";
7
- import { State } from "./State.js";
8
6
  import { sliceSimulatorAccessedDirectly } from "./messages.js";
9
-
7
+ import { StateEventType } from "./types.js";
8
+ import { State } from "./State.js";
10
9
  //#region src/kit/SimulatorManager.ts
11
10
  var SimulatorManager = class {
12
11
  state;
@@ -37,7 +36,6 @@ var SimulatorManager = class {
37
36
  return res.success();
38
37
  },
39
38
  [ClientRequestType.ScrollToSlice]: (req, res) => {
40
- var _this$_api;
41
39
  if (req.data.sliceIndex < 0) return res.error("`sliceIndex` must be > 0", 400);
42
40
  else if (req.data.sliceIndex >= this.state.slices.length) return res.error(`\`sliceIndex\` must be < ${this.state.slices.length} (\`<SliceZone />\` current length)`, 400);
43
41
  const $sliceZone = getSliceZoneDOM(this.state.slices.length);
@@ -50,15 +48,14 @@ var SimulatorManager = class {
50
48
  block: req.data.block,
51
49
  inline: req.data.inline
52
50
  });
53
- if ((_this$_api = this._api) === null || _this$_api === void 0 ? void 0 : _this$_api.options.activeSliceAPI) setTimeout(this.state.setActiveSlice, 750);
51
+ if (this._api?.options.activeSliceAPI) setTimeout(this.state.setActiveSlice, 750);
54
52
  return res.success();
55
53
  }
56
54
  });
57
55
  await this._api.ready();
58
56
  }
59
57
  _initListeners() {
60
- var _this$_api2, _this$_api3;
61
- if ((_this$_api2 = this._api) === null || _this$_api2 === void 0 ? void 0 : _this$_api2.options.activeSliceAPI) {
58
+ if (this._api?.options.activeSliceAPI) {
62
59
  window.addEventListener("mousemove", () => {
63
60
  this.state.setActiveSlice();
64
61
  });
@@ -80,7 +77,7 @@ var SimulatorManager = class {
80
77
  }
81
78
  });
82
79
  }
83
- if ((_this$_api3 = this._api) === null || _this$_api3 === void 0 ? void 0 : _this$_api3.options.sliceZoneSizeAPI) {
80
+ if (this._api?.options.sliceZoneSizeAPI) {
84
81
  const resizeObserver = new ResizeObserver(throttle(async (entries) => {
85
82
  const [entry] = entries;
86
83
  if (this._api && entry) try {
@@ -102,7 +99,7 @@ var SimulatorManager = class {
102
99
  }
103
100
  }
104
101
  };
105
-
106
102
  //#endregion
107
103
  export { SimulatorManager };
104
+
108
105
  //# sourceMappingURL=SimulatorManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimulatorManager.js","names":[],"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\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 (\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"],"mappings":";;;;;;;;;;AAsBA,IAAa,mBAAb,MAA8B;CAC7B,AAAO;CACP,AAAQ;CACR,AAAQ;CAER,YAAY,MAA+B;AAC1C,OAAK,QAAQ,IAAI,MAAM,KAAK;AAC5B,OAAK,OAAO;AACZ,OAAK,eAAe;;CAGrB,MAAM,OAAsB;AAC3B,MAAI,KAAK,aACR;MAEA,MAAK,eAAe;AAIrB,QAAM,KAAK,MAAM,MAAM;AAGvB,MAAI;AACH,SAAM,KAAK,UAAU;WACb,OAAO;AACf,OACC,iBAAiB,SACjB,MAAM,YAAY,qDAClB,CAAC,KAAK,MAAM,OAAO,OAGnB,MAAK,MAAM,UAAU;AAEtB,WAAQ,MAAM,MAAM;AAEpB;;AAID,OAAK,gBAAgB;;CAGtB,MAAc,WAA0B;AAEvC,OAAK,OAAO,IAAI,aAAa;IAC3B,kBAAkB,gBAAgB,KAAK,QAAQ;AAC/C,SAAK,MAAM,aAAa,IAAI,KAAK;AAEjC,WAAO,IAAI,SAAS;;IAEpB,kBAAkB,iBAAiB,KAAK,QAAQ;;AAEhD,QAAI,IAAI,KAAK,aAAa,EACzB,QAAO,IAAI,MAAM,4BAA4B,IAAI;aACvC,IAAI,KAAK,cAAc,KAAK,MAAM,OAAO,OACnD,QAAO,IAAI,MACV,4BAA4B,KAAK,MAAM,OAAO,OAAO,sCACrD,IACA;IAGF,MAAM,aAAa,gBAAgB,KAAK,MAAM,OAAO,OAAO;AAC5D,QAAI,CAAC,WACJ,QAAO,IAAI,MAAM,kCAAkC,IAAI;AAIxD,SAAK,MAAM,cAAc;IAEzB,MAAM,SAAS,WAAW,SAAS,IAAI,KAAK;AAC5C,QAAI,CAAC,OACJ,QAAO,IAAI,MACV,iFACA,IACA;AAIF,WAAO,eAAe;KACrB,UAAU,IAAI,KAAK;KACnB,OAAO,IAAI,KAAK;KAChB,QAAQ,IAAI,KAAK;KACjB,CAAC;AAGF,sBAAI,KAAK,8DAAM,QAAQ,eACtB,YAAW,KAAK,MAAM,gBAAgB,IAAI;AAG3C,WAAO,IAAI,SAAS;;GAErB,CAAC;AAGF,QAAM,KAAK,KAAK,OAAO;;CAGxB,AAAQ,iBAAuB;;AAC9B,qBAAI,KAAK,gEAAM,QAAQ,gBAAgB;AAEtC,UAAO,iBAAiB,mBAAmB;AAC1C,SAAK,MAAM,gBAAgB;KAC1B;AAEF,UAAO,iBAAiB,gBAAgB;AACvC,SAAK,MAAM,gBAAgB;KAC1B;AACF,UAAO,iBAAiB,oBAAoB;AAC3C,eAAW,KAAK,MAAM,gBAAgB,IAAI;KACzC;AAGF,QAAK,MAAM,GAAG,eAAe,cAAc;AAC1C,SAAK,MAAM,gBAAgB;KAC1B;AAEF,QAAK,MAAM,GAAG,eAAe,aAAa,OAAO,gBAAgB;AAChE,QAAI,KAAK,KACR,KAAI;AACH,WAAM,KAAK,KAAK,eAAe,YAAY;aACnC,OAAO;AAEf,SACC,iBAAiB,iBACjB,MAAM,SAAS,WAAW,IAE1B,SAAQ,MAAM,MAAM,SAAS;SAE7B,OAAM;;KAIR;;AAGH,qBAAI,KAAK,gEAAM,QAAQ,kBAAkB;GAExC,MAAM,iBAAiB,IAAI,eAC1B,SAAS,OAAO,YAAY;IAC3B,MAAM,CAAC,SAAS;AAEhB,QAAI,KAAK,QAAQ,MAChB,KAAI;AACH,WAAM,KAAK,KAAK,iBAAiB,EAAE,MAAM,MAAM,aAAa,CAAC;aACrD,OAAO;AAEf,SACC,iBAAiB,iBACjB,MAAM,SAAS,WAAW,IAE1B,SAAQ,MAAM,MAAM,SAAS;SAE7B,OAAM;;MAIP,GAAG,CACN;GACD,MAAM,6BAA6B;IAClC,MAAM,mBAAmB,qBAAqB;AAC9C,mBAAe,YAAY;AAC3B,QAAI,iBACH,gBAAe,QAAQ,iBAAiB;;AAQ1C,GAHyB,IAAI,iBAAiB,qBAAqB,CAGlD,QAAQ,iBAAiB,EAAG;IAC5C,SAAS;IACT,WAAW;IACX,CAAC"}
1
+ {"version":3,"file":"SimulatorManager.js","names":[],"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":";;;;;;;;;AAeA,IAAa,mBAAb,MAA8B;CAC7B;CACA;CACA;CAEA,YAAY,MAA+B;AAC1C,OAAK,QAAQ,IAAI,MAAM,KAAK;AAC5B,OAAK,OAAO;AACZ,OAAK,eAAe;;CAGrB,MAAM,OAAsB;AAC3B,MAAI,KAAK,aACR;MAEA,MAAK,eAAe;AAIrB,QAAM,KAAK,MAAM,MAAM;AAGvB,MAAI;AACH,SAAM,KAAK,UAAU;WACb,OAAO;AACf,OACC,iBAAiB,SACjB,MAAM,YAAY,qDAClB,CAAC,KAAK,MAAM,OAAO,OAGnB,MAAK,MAAM,UAAU;AAEtB,WAAQ,MAAM,MAAM;AAEpB;;AAID,OAAK,gBAAgB;;CAGtB,MAAc,WAA0B;AAEvC,OAAK,OAAO,IAAI,aAAa;IAC3B,kBAAkB,gBAAgB,KAAK,QAAQ;AAC/C,SAAK,MAAM,aAAa,IAAI,KAAK;AAEjC,WAAO,IAAI,SAAS;;IAEpB,kBAAkB,iBAAiB,KAAK,QAAQ;AAEhD,QAAI,IAAI,KAAK,aAAa,EACzB,QAAO,IAAI,MAAM,4BAA4B,IAAI;aACvC,IAAI,KAAK,cAAc,KAAK,MAAM,OAAO,OACnD,QAAO,IAAI,MACV,4BAA4B,KAAK,MAAM,OAAO,OAAO,sCACrD,IACA;IAGF,MAAM,aAAa,gBAAgB,KAAK,MAAM,OAAO,OAAO;AAC5D,QAAI,CAAC,WACJ,QAAO,IAAI,MAAM,kCAAkC,IAAI;AAIxD,SAAK,MAAM,cAAc;IAEzB,MAAM,SAAS,WAAW,SAAS,IAAI,KAAK;AAC5C,QAAI,CAAC,OACJ,QAAO,IAAI,MACV,iFACA,IACA;AAIF,WAAO,eAAe;KACrB,UAAU,IAAI,KAAK;KACnB,OAAO,IAAI,KAAK;KAChB,QAAQ,IAAI,KAAK;KACjB,CAAC;AAGF,QAAI,KAAK,MAAM,QAAQ,eACtB,YAAW,KAAK,MAAM,gBAAgB,IAAI;AAG3C,WAAO,IAAI,SAAS;;GAErB,CAAC;AAGF,QAAM,KAAK,KAAK,OAAO;;CAGxB,iBAA+B;AAC9B,MAAI,KAAK,MAAM,QAAQ,gBAAgB;AAEtC,UAAO,iBAAiB,mBAAmB;AAC1C,SAAK,MAAM,gBAAgB;KAC1B;AAEF,UAAO,iBAAiB,gBAAgB;AACvC,SAAK,MAAM,gBAAgB;KAC1B;AACF,UAAO,iBAAiB,oBAAoB;AAC3C,eAAW,KAAK,MAAM,gBAAgB,IAAI;KACzC;AAGF,QAAK,MAAM,GAAG,eAAe,cAAc;AAC1C,SAAK,MAAM,gBAAgB;KAC1B;AAEF,QAAK,MAAM,GAAG,eAAe,aAAa,OAAO,gBAAgB;AAChE,QAAI,KAAK,KACR,KAAI;AACH,WAAM,KAAK,KAAK,eAAe,YAAY;aACnC,OAAO;AAEf,SAAI,iBAAiB,iBAAiB,MAAM,SAAS,WAAW,IAC/D,SAAQ,MAAM,MAAM,SAAS;SAE7B,OAAM;;KAIR;;AAGH,MAAI,KAAK,MAAM,QAAQ,kBAAkB;GAExC,MAAM,iBAAiB,IAAI,eAC1B,SAAS,OAAO,YAAY;IAC3B,MAAM,CAAC,SAAS;AAEhB,QAAI,KAAK,QAAQ,MAChB,KAAI;AACH,WAAM,KAAK,KAAK,iBAAiB,EAAE,MAAM,MAAM,aAAa,CAAC;aACrD,OAAO;AAEf,SAAI,iBAAiB,iBAAiB,MAAM,SAAS,WAAW,IAC/D,SAAQ,MAAM,MAAM,SAAS;SAE7B,OAAM;;MAIP,GAAG,CACN;GACD,MAAM,6BAA6B;IAClC,MAAM,mBAAmB,qBAAqB;AAC9C,mBAAe,YAAY;AAC3B,QAAI,iBACH,gBAAe,QAAQ,iBAAiB;;AAKjB,OAAI,iBAAiB,qBAAqB,CAGlD,QAAQ,iBAAiB,EAAG;IAC5C,SAAS;IACT,WAAW;IACX,CAAC"}
@@ -1,9 +1,8 @@
1
- const require_throttle = require('../lib/throttle.cjs');
2
- const require_types = require('./types.cjs');
3
- const require_EventEmitter = require('../lib/EventEmitter.cjs');
4
- const require_domHelpers = require('./domHelpers.cjs');
5
- const require_getDefault = require('./getDefault.cjs');
6
-
1
+ const require_throttle = require("../lib/throttle.cjs");
2
+ const require_domHelpers = require("./domHelpers.cjs");
3
+ const require_EventEmitter = require("../lib/EventEmitter.cjs");
4
+ const require_getDefault = require("./getDefault.cjs");
5
+ const require_types = require("./types.cjs");
7
6
  //#region src/kit/State.ts
8
7
  var State = class extends require_EventEmitter.EventEmitter {
9
8
  _slices;
@@ -34,7 +33,7 @@ var State = class extends require_EventEmitter.EventEmitter {
34
33
  _mouse;
35
34
  constructor(args) {
36
35
  super();
37
- this._slices = (args === null || args === void 0 ? void 0 : args.slices) || require_getDefault.getDefaultSlices();
36
+ this._slices = args?.slices || require_getDefault.getDefaultSlices();
38
37
  this._activeSlice = null;
39
38
  this._message = "";
40
39
  this._mouse = {
@@ -78,7 +77,7 @@ var State = class extends require_EventEmitter.EventEmitter {
78
77
  this.slices = slices;
79
78
  }
80
79
  };
81
-
82
80
  //#endregion
83
81
  exports.State = State;
82
+
84
83
  //# sourceMappingURL=State.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"State.cjs","names":["EventEmitter","StateEventType","getDefaultSlices","getSliceZoneDOM","getActiveSliceDOM","throttle"],"sources":["../../src/kit/State.ts"],"sourcesContent":["import type { SharedSlice, SliceZone } from \"@prismicio/client\"\n\nimport { EventEmitter } from \"../lib/EventEmitter\"\nimport { __PRODUCTION__ } from \"../lib/__PRODUCTION__\"\nimport { throttle } from \"../lib/throttle\"\n\nimport type { ActiveSlice } from \"../types\"\nimport type { StateEvents } from \"./types\";\nimport { StateEventType } from \"./types\"\n\nimport { getActiveSliceDOM, getSliceZoneDOM } from \"./domHelpers\"\nimport { getDefaultSlices } from \"./getDefault\"\n\ntype StateConstructorArgs = {\n\tslices?: SliceZone\n}\n\nexport class State extends EventEmitter<StateEvents> {\n\tprivate _slices: SliceZone\n\tpublic set slices(slices: SliceZone) {\n\t\tthis._slices = slices\n\t\t// Clean up message\n\t\tthis.message = \"\"\n\t\t// Dispatch event\n\t\tthis.emit(StateEventType.Slices, slices)\n\t}\n\tpublic get slices(): SliceZone {\n\t\treturn this._slices\n\t}\n\n\tprivate _activeSlice: ActiveSlice | null\n\tpublic set activeSlice(activeSlice: ActiveSlice | null) {\n\t\tthis._activeSlice = activeSlice\n\t\tthis.emit(StateEventType.ActiveSlice, activeSlice)\n\t}\n\tpublic get activeSlice(): ActiveSlice | null {\n\t\treturn this._activeSlice\n\t}\n\n\tprivate _message: string\n\tpublic set message(message: string) {\n\t\tthis._message = message\n\t\tthis.emit(StateEventType.Message, message)\n\t}\n\tpublic get message(): string {\n\t\treturn this._message\n\t}\n\n\tprivate _mouse: { x: number; y: number }\n\n\tconstructor(args?: StateConstructorArgs) {\n\t\tsuper()\n\n\t\tthis._slices = args?.slices || getDefaultSlices()\n\t\tthis._activeSlice = null\n\t\tthis._message = \"\"\n\n\t\t// StateManager needs to keep track of mouse position for the active slice\n\t\tthis._mouse = { x: 0, y: 0 }\n\t}\n\n\tasync init(): Promise<void> {\n\t\t// Init listener\n\t\twindow.addEventListener(\"mousemove\", (event) => {\n\t\t\tthis._mouse = { x: event.clientX, y: event.clientY }\n\t\t})\n\t}\n\n\tprivate _setActiveSlice = (): void => {\n\t\t// There can't be an active slice if there's no slice displayed\n\t\tif (this.slices.length === 0) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst $sliceZone = getSliceZoneDOM(this.slices.length)\n\n\t\t// SliceZone has not been found, therefore active slice cannot be found\n\t\tif (!$sliceZone) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst $activeSlice = getActiveSliceDOM($sliceZone, this._mouse)\n\n\t\t// Active slice has not been found\n\t\tif (!$activeSlice) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst activeSliceIndex = Array.prototype.indexOf.call(\n\t\t\t$sliceZone.children,\n\t\t\t$activeSlice,\n\t\t)\n\n\t\t// Active slice has been found\n\t\tthis.activeSlice = {\n\t\t\trect: $activeSlice.getBoundingClientRect(),\n\t\t\tsliceID: this.slices[activeSliceIndex].slice_type,\n\t\t\tvariationID: (this.slices[activeSliceIndex] as SharedSlice).variation,\n\t\t\tindex: activeSliceIndex,\n\t\t}\n\t}\n\tsetActiveSlice = throttle(this._setActiveSlice, 16)\n\n\tsetSliceZone(slices: SliceZone): void {\n\t\t// Set slices\n\t\tthis.slices = slices\n\t}\n}\n"],"mappings":";;;;;;;AAiBA,IAAa,QAAb,cAA2BA,kCAA0B;CACpD,AAAQ;CACR,IAAW,OAAO,QAAmB;AACpC,OAAK,UAAU;AAEf,OAAK,UAAU;AAEf,OAAK,KAAKC,6BAAe,QAAQ,OAAO;;CAEzC,IAAW,SAAoB;AAC9B,SAAO,KAAK;;CAGb,AAAQ;CACR,IAAW,YAAY,aAAiC;AACvD,OAAK,eAAe;AACpB,OAAK,KAAKA,6BAAe,aAAa,YAAY;;CAEnD,IAAW,cAAkC;AAC5C,SAAO,KAAK;;CAGb,AAAQ;CACR,IAAW,QAAQ,SAAiB;AACnC,OAAK,WAAW;AAChB,OAAK,KAAKA,6BAAe,SAAS,QAAQ;;CAE3C,IAAW,UAAkB;AAC5B,SAAO,KAAK;;CAGb,AAAQ;CAER,YAAY,MAA6B;AACxC,SAAO;AAEP,OAAK,uDAAU,KAAM,WAAUC,qCAAkB;AACjD,OAAK,eAAe;AACpB,OAAK,WAAW;AAGhB,OAAK,SAAS;GAAE,GAAG;GAAG,GAAG;GAAG;;CAG7B,MAAM,OAAsB;AAE3B,SAAO,iBAAiB,cAAc,UAAU;AAC/C,QAAK,SAAS;IAAE,GAAG,MAAM;IAAS,GAAG,MAAM;IAAS;IACnD;;CAGH,AAAQ,wBAA8B;AAErC,MAAI,KAAK,OAAO,WAAW,GAAG;AAC7B,QAAK,cAAc;AAEnB;;EAGD,MAAM,aAAaC,mCAAgB,KAAK,OAAO,OAAO;AAGtD,MAAI,CAAC,YAAY;AAChB,QAAK,cAAc;AAEnB;;EAGD,MAAM,eAAeC,qCAAkB,YAAY,KAAK,OAAO;AAG/D,MAAI,CAAC,cAAc;AAClB,QAAK,cAAc;AAEnB;;EAGD,MAAM,mBAAmB,MAAM,UAAU,QAAQ,KAChD,WAAW,UACX,aACA;AAGD,OAAK,cAAc;GAClB,MAAM,aAAa,uBAAuB;GAC1C,SAAS,KAAK,OAAO,kBAAkB;GACvC,aAAc,KAAK,OAAO,kBAAkC;GAC5D,OAAO;GACP;;CAEF,iBAAiBC,0BAAS,KAAK,iBAAiB,GAAG;CAEnD,aAAa,QAAyB;AAErC,OAAK,SAAS"}
1
+ {"version":3,"file":"State.cjs","names":["EventEmitter","StateEventType","getDefaultSlices","getSliceZoneDOM","getActiveSliceDOM","throttle"],"sources":["../../src/kit/State.ts"],"sourcesContent":["import type { SharedSlice, SliceZone } from \"@prismicio/client\"\n\nimport { __PRODUCTION__ } from \"../lib/__PRODUCTION__\"\nimport { EventEmitter } from \"../lib/EventEmitter\"\nimport { throttle } from \"../lib/throttle\"\nimport type { ActiveSlice } from \"../types\"\nimport { getActiveSliceDOM, getSliceZoneDOM } from \"./domHelpers\"\nimport { getDefaultSlices } from \"./getDefault\"\nimport type { StateEvents } from \"./types\"\nimport { StateEventType } from \"./types\"\n\ntype StateConstructorArgs = {\n\tslices?: SliceZone\n}\n\nexport class State extends EventEmitter<StateEvents> {\n\tprivate _slices: SliceZone\n\tpublic set slices(slices: SliceZone) {\n\t\tthis._slices = slices\n\t\t// Clean up message\n\t\tthis.message = \"\"\n\t\t// Dispatch event\n\t\tthis.emit(StateEventType.Slices, slices)\n\t}\n\tpublic get slices(): SliceZone {\n\t\treturn this._slices\n\t}\n\n\tprivate _activeSlice: ActiveSlice | null\n\tpublic set activeSlice(activeSlice: ActiveSlice | null) {\n\t\tthis._activeSlice = activeSlice\n\t\tthis.emit(StateEventType.ActiveSlice, activeSlice)\n\t}\n\tpublic get activeSlice(): ActiveSlice | null {\n\t\treturn this._activeSlice\n\t}\n\n\tprivate _message: string\n\tpublic set message(message: string) {\n\t\tthis._message = message\n\t\tthis.emit(StateEventType.Message, message)\n\t}\n\tpublic get message(): string {\n\t\treturn this._message\n\t}\n\n\tprivate _mouse: { x: number; y: number }\n\n\tconstructor(args?: StateConstructorArgs) {\n\t\tsuper()\n\n\t\tthis._slices = args?.slices || getDefaultSlices()\n\t\tthis._activeSlice = null\n\t\tthis._message = \"\"\n\n\t\t// StateManager needs to keep track of mouse position for the active slice\n\t\tthis._mouse = { x: 0, y: 0 }\n\t}\n\n\tasync init(): Promise<void> {\n\t\t// Init listener\n\t\twindow.addEventListener(\"mousemove\", (event) => {\n\t\t\tthis._mouse = { x: event.clientX, y: event.clientY }\n\t\t})\n\t}\n\n\tprivate _setActiveSlice = (): void => {\n\t\t// There can't be an active slice if there's no slice displayed\n\t\tif (this.slices.length === 0) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst $sliceZone = getSliceZoneDOM(this.slices.length)\n\n\t\t// SliceZone has not been found, therefore active slice cannot be found\n\t\tif (!$sliceZone) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst $activeSlice = getActiveSliceDOM($sliceZone, this._mouse)\n\n\t\t// Active slice has not been found\n\t\tif (!$activeSlice) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst activeSliceIndex = Array.prototype.indexOf.call($sliceZone.children, $activeSlice)\n\n\t\t// Active slice has been found\n\t\tthis.activeSlice = {\n\t\t\trect: $activeSlice.getBoundingClientRect(),\n\t\t\tsliceID: this.slices[activeSliceIndex].slice_type,\n\t\t\tvariationID: (this.slices[activeSliceIndex] as SharedSlice).variation,\n\t\t\tindex: activeSliceIndex,\n\t\t}\n\t}\n\tsetActiveSlice = throttle(this._setActiveSlice, 16)\n\n\tsetSliceZone(slices: SliceZone): void {\n\t\t// Set slices\n\t\tthis.slices = slices\n\t}\n}\n"],"mappings":";;;;;;AAeA,IAAa,QAAb,cAA2BA,qBAAAA,aAA0B;CACpD;CACA,IAAW,OAAO,QAAmB;AACpC,OAAK,UAAU;AAEf,OAAK,UAAU;AAEf,OAAK,KAAKC,cAAAA,eAAe,QAAQ,OAAO;;CAEzC,IAAW,SAAoB;AAC9B,SAAO,KAAK;;CAGb;CACA,IAAW,YAAY,aAAiC;AACvD,OAAK,eAAe;AACpB,OAAK,KAAKA,cAAAA,eAAe,aAAa,YAAY;;CAEnD,IAAW,cAAkC;AAC5C,SAAO,KAAK;;CAGb;CACA,IAAW,QAAQ,SAAiB;AACnC,OAAK,WAAW;AAChB,OAAK,KAAKA,cAAAA,eAAe,SAAS,QAAQ;;CAE3C,IAAW,UAAkB;AAC5B,SAAO,KAAK;;CAGb;CAEA,YAAY,MAA6B;AACxC,SAAO;AAEP,OAAK,UAAU,MAAM,UAAUC,mBAAAA,kBAAkB;AACjD,OAAK,eAAe;AACpB,OAAK,WAAW;AAGhB,OAAK,SAAS;GAAE,GAAG;GAAG,GAAG;GAAG;;CAG7B,MAAM,OAAsB;AAE3B,SAAO,iBAAiB,cAAc,UAAU;AAC/C,QAAK,SAAS;IAAE,GAAG,MAAM;IAAS,GAAG,MAAM;IAAS;IACnD;;CAGH,wBAAsC;AAErC,MAAI,KAAK,OAAO,WAAW,GAAG;AAC7B,QAAK,cAAc;AAEnB;;EAGD,MAAM,aAAaC,mBAAAA,gBAAgB,KAAK,OAAO,OAAO;AAGtD,MAAI,CAAC,YAAY;AAChB,QAAK,cAAc;AAEnB;;EAGD,MAAM,eAAeC,mBAAAA,kBAAkB,YAAY,KAAK,OAAO;AAG/D,MAAI,CAAC,cAAc;AAClB,QAAK,cAAc;AAEnB;;EAGD,MAAM,mBAAmB,MAAM,UAAU,QAAQ,KAAK,WAAW,UAAU,aAAa;AAGxF,OAAK,cAAc;GAClB,MAAM,aAAa,uBAAuB;GAC1C,SAAS,KAAK,OAAO,kBAAkB;GACvC,aAAc,KAAK,OAAO,kBAAkC;GAC5D,OAAO;GACP;;CAEF,iBAAiBC,iBAAAA,SAAS,KAAK,iBAAiB,GAAG;CAEnD,aAAa,QAAyB;AAErC,OAAK,SAAS"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"State.d.cts","names":[],"sources":["../../src/kit/State.ts"],"mappings":";;;;;;KAWK,oBAAA;EACJ,MAAA,GAAS,SAAA;AAAA;AAAA,cAGG,KAAA,SAAc,YAAA,CAAa,WAAA;EAAA,QAC/B,OAAA;EAAA,IACG,MAAA,CAAO,MAAA,EAAQ,SAAA;EAAA,IAOf,MAAA,CAAA,GAAU,SAAA;EAAA,QAIb,YAAA;EAAA,IACG,WAAA,CAAY,WAAA,EAAa,WAAA;EAAA,IAIzB,WAAA,CAAA,GAAe,WAAA;EAAA,QAIlB,QAAA;EAAA,IACG,OAAA,CAAQ,OAAA;EAAA,IAIR,OAAA,CAAA;EAAA,QAIH,MAAA;cAEI,IAAA,GAAO,oBAAA;EAWb,IAAA,CAAA,GAAQ,OAAA;EAAA,QAON,eAAA;EAoCR,cAAA;EAEA,YAAA,CAAa,MAAA,EAAQ,SAAA;AAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"State.d.ts","names":[],"sources":["../../src/kit/State.ts"],"mappings":";;;;;;KAWK,oBAAA;EACJ,MAAA,GAAS,SAAA;AAAA;AAAA,cAGG,KAAA,SAAc,YAAA,CAAa,WAAA;EAAA,QAC/B,OAAA;EAAA,IACG,MAAA,CAAO,MAAA,EAAQ,SAAA;EAAA,IAOf,MAAA,CAAA,GAAU,SAAA;EAAA,QAIb,YAAA;EAAA,IACG,WAAA,CAAY,WAAA,EAAa,WAAA;EAAA,IAIzB,WAAA,CAAA,GAAe,WAAA;EAAA,QAIlB,QAAA;EAAA,IACG,OAAA,CAAQ,OAAA;EAAA,IAIR,OAAA,CAAA;EAAA,QAIH,MAAA;cAEI,IAAA,GAAO,oBAAA;EAWb,IAAA,CAAA,GAAQ,OAAA;EAAA,QAON,eAAA;EAoCR,cAAA;EAEA,YAAA,CAAa,MAAA,EAAQ,SAAA;AAAA"}
package/dist/kit/State.js CHANGED
@@ -1,9 +1,8 @@
1
1
  import { throttle } from "../lib/throttle.js";
2
- import { StateEventType } from "./types.js";
3
- import { EventEmitter } from "../lib/EventEmitter.js";
4
2
  import { getActiveSliceDOM, getSliceZoneDOM } from "./domHelpers.js";
3
+ import { EventEmitter } from "../lib/EventEmitter.js";
5
4
  import { getDefaultSlices } from "./getDefault.js";
6
-
5
+ import { StateEventType } from "./types.js";
7
6
  //#region src/kit/State.ts
8
7
  var State = class extends EventEmitter {
9
8
  _slices;
@@ -34,7 +33,7 @@ var State = class extends EventEmitter {
34
33
  _mouse;
35
34
  constructor(args) {
36
35
  super();
37
- this._slices = (args === null || args === void 0 ? void 0 : args.slices) || getDefaultSlices();
36
+ this._slices = args?.slices || getDefaultSlices();
38
37
  this._activeSlice = null;
39
38
  this._message = "";
40
39
  this._mouse = {
@@ -78,7 +77,7 @@ var State = class extends EventEmitter {
78
77
  this.slices = slices;
79
78
  }
80
79
  };
81
-
82
80
  //#endregion
83
81
  export { State };
82
+
84
83
  //# sourceMappingURL=State.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"State.js","names":[],"sources":["../../src/kit/State.ts"],"sourcesContent":["import type { SharedSlice, SliceZone } from \"@prismicio/client\"\n\nimport { EventEmitter } from \"../lib/EventEmitter\"\nimport { __PRODUCTION__ } from \"../lib/__PRODUCTION__\"\nimport { throttle } from \"../lib/throttle\"\n\nimport type { ActiveSlice } from \"../types\"\nimport type { StateEvents } from \"./types\";\nimport { StateEventType } from \"./types\"\n\nimport { getActiveSliceDOM, getSliceZoneDOM } from \"./domHelpers\"\nimport { getDefaultSlices } from \"./getDefault\"\n\ntype StateConstructorArgs = {\n\tslices?: SliceZone\n}\n\nexport class State extends EventEmitter<StateEvents> {\n\tprivate _slices: SliceZone\n\tpublic set slices(slices: SliceZone) {\n\t\tthis._slices = slices\n\t\t// Clean up message\n\t\tthis.message = \"\"\n\t\t// Dispatch event\n\t\tthis.emit(StateEventType.Slices, slices)\n\t}\n\tpublic get slices(): SliceZone {\n\t\treturn this._slices\n\t}\n\n\tprivate _activeSlice: ActiveSlice | null\n\tpublic set activeSlice(activeSlice: ActiveSlice | null) {\n\t\tthis._activeSlice = activeSlice\n\t\tthis.emit(StateEventType.ActiveSlice, activeSlice)\n\t}\n\tpublic get activeSlice(): ActiveSlice | null {\n\t\treturn this._activeSlice\n\t}\n\n\tprivate _message: string\n\tpublic set message(message: string) {\n\t\tthis._message = message\n\t\tthis.emit(StateEventType.Message, message)\n\t}\n\tpublic get message(): string {\n\t\treturn this._message\n\t}\n\n\tprivate _mouse: { x: number; y: number }\n\n\tconstructor(args?: StateConstructorArgs) {\n\t\tsuper()\n\n\t\tthis._slices = args?.slices || getDefaultSlices()\n\t\tthis._activeSlice = null\n\t\tthis._message = \"\"\n\n\t\t// StateManager needs to keep track of mouse position for the active slice\n\t\tthis._mouse = { x: 0, y: 0 }\n\t}\n\n\tasync init(): Promise<void> {\n\t\t// Init listener\n\t\twindow.addEventListener(\"mousemove\", (event) => {\n\t\t\tthis._mouse = { x: event.clientX, y: event.clientY }\n\t\t})\n\t}\n\n\tprivate _setActiveSlice = (): void => {\n\t\t// There can't be an active slice if there's no slice displayed\n\t\tif (this.slices.length === 0) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst $sliceZone = getSliceZoneDOM(this.slices.length)\n\n\t\t// SliceZone has not been found, therefore active slice cannot be found\n\t\tif (!$sliceZone) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst $activeSlice = getActiveSliceDOM($sliceZone, this._mouse)\n\n\t\t// Active slice has not been found\n\t\tif (!$activeSlice) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst activeSliceIndex = Array.prototype.indexOf.call(\n\t\t\t$sliceZone.children,\n\t\t\t$activeSlice,\n\t\t)\n\n\t\t// Active slice has been found\n\t\tthis.activeSlice = {\n\t\t\trect: $activeSlice.getBoundingClientRect(),\n\t\t\tsliceID: this.slices[activeSliceIndex].slice_type,\n\t\t\tvariationID: (this.slices[activeSliceIndex] as SharedSlice).variation,\n\t\t\tindex: activeSliceIndex,\n\t\t}\n\t}\n\tsetActiveSlice = throttle(this._setActiveSlice, 16)\n\n\tsetSliceZone(slices: SliceZone): void {\n\t\t// Set slices\n\t\tthis.slices = slices\n\t}\n}\n"],"mappings":";;;;;;;AAiBA,IAAa,QAAb,cAA2B,aAA0B;CACpD,AAAQ;CACR,IAAW,OAAO,QAAmB;AACpC,OAAK,UAAU;AAEf,OAAK,UAAU;AAEf,OAAK,KAAK,eAAe,QAAQ,OAAO;;CAEzC,IAAW,SAAoB;AAC9B,SAAO,KAAK;;CAGb,AAAQ;CACR,IAAW,YAAY,aAAiC;AACvD,OAAK,eAAe;AACpB,OAAK,KAAK,eAAe,aAAa,YAAY;;CAEnD,IAAW,cAAkC;AAC5C,SAAO,KAAK;;CAGb,AAAQ;CACR,IAAW,QAAQ,SAAiB;AACnC,OAAK,WAAW;AAChB,OAAK,KAAK,eAAe,SAAS,QAAQ;;CAE3C,IAAW,UAAkB;AAC5B,SAAO,KAAK;;CAGb,AAAQ;CAER,YAAY,MAA6B;AACxC,SAAO;AAEP,OAAK,uDAAU,KAAM,WAAU,kBAAkB;AACjD,OAAK,eAAe;AACpB,OAAK,WAAW;AAGhB,OAAK,SAAS;GAAE,GAAG;GAAG,GAAG;GAAG;;CAG7B,MAAM,OAAsB;AAE3B,SAAO,iBAAiB,cAAc,UAAU;AAC/C,QAAK,SAAS;IAAE,GAAG,MAAM;IAAS,GAAG,MAAM;IAAS;IACnD;;CAGH,AAAQ,wBAA8B;AAErC,MAAI,KAAK,OAAO,WAAW,GAAG;AAC7B,QAAK,cAAc;AAEnB;;EAGD,MAAM,aAAa,gBAAgB,KAAK,OAAO,OAAO;AAGtD,MAAI,CAAC,YAAY;AAChB,QAAK,cAAc;AAEnB;;EAGD,MAAM,eAAe,kBAAkB,YAAY,KAAK,OAAO;AAG/D,MAAI,CAAC,cAAc;AAClB,QAAK,cAAc;AAEnB;;EAGD,MAAM,mBAAmB,MAAM,UAAU,QAAQ,KAChD,WAAW,UACX,aACA;AAGD,OAAK,cAAc;GAClB,MAAM,aAAa,uBAAuB;GAC1C,SAAS,KAAK,OAAO,kBAAkB;GACvC,aAAc,KAAK,OAAO,kBAAkC;GAC5D,OAAO;GACP;;CAEF,iBAAiB,SAAS,KAAK,iBAAiB,GAAG;CAEnD,aAAa,QAAyB;AAErC,OAAK,SAAS"}
1
+ {"version":3,"file":"State.js","names":[],"sources":["../../src/kit/State.ts"],"sourcesContent":["import type { SharedSlice, SliceZone } from \"@prismicio/client\"\n\nimport { __PRODUCTION__ } from \"../lib/__PRODUCTION__\"\nimport { EventEmitter } from \"../lib/EventEmitter\"\nimport { throttle } from \"../lib/throttle\"\nimport type { ActiveSlice } from \"../types\"\nimport { getActiveSliceDOM, getSliceZoneDOM } from \"./domHelpers\"\nimport { getDefaultSlices } from \"./getDefault\"\nimport type { StateEvents } from \"./types\"\nimport { StateEventType } from \"./types\"\n\ntype StateConstructorArgs = {\n\tslices?: SliceZone\n}\n\nexport class State extends EventEmitter<StateEvents> {\n\tprivate _slices: SliceZone\n\tpublic set slices(slices: SliceZone) {\n\t\tthis._slices = slices\n\t\t// Clean up message\n\t\tthis.message = \"\"\n\t\t// Dispatch event\n\t\tthis.emit(StateEventType.Slices, slices)\n\t}\n\tpublic get slices(): SliceZone {\n\t\treturn this._slices\n\t}\n\n\tprivate _activeSlice: ActiveSlice | null\n\tpublic set activeSlice(activeSlice: ActiveSlice | null) {\n\t\tthis._activeSlice = activeSlice\n\t\tthis.emit(StateEventType.ActiveSlice, activeSlice)\n\t}\n\tpublic get activeSlice(): ActiveSlice | null {\n\t\treturn this._activeSlice\n\t}\n\n\tprivate _message: string\n\tpublic set message(message: string) {\n\t\tthis._message = message\n\t\tthis.emit(StateEventType.Message, message)\n\t}\n\tpublic get message(): string {\n\t\treturn this._message\n\t}\n\n\tprivate _mouse: { x: number; y: number }\n\n\tconstructor(args?: StateConstructorArgs) {\n\t\tsuper()\n\n\t\tthis._slices = args?.slices || getDefaultSlices()\n\t\tthis._activeSlice = null\n\t\tthis._message = \"\"\n\n\t\t// StateManager needs to keep track of mouse position for the active slice\n\t\tthis._mouse = { x: 0, y: 0 }\n\t}\n\n\tasync init(): Promise<void> {\n\t\t// Init listener\n\t\twindow.addEventListener(\"mousemove\", (event) => {\n\t\t\tthis._mouse = { x: event.clientX, y: event.clientY }\n\t\t})\n\t}\n\n\tprivate _setActiveSlice = (): void => {\n\t\t// There can't be an active slice if there's no slice displayed\n\t\tif (this.slices.length === 0) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst $sliceZone = getSliceZoneDOM(this.slices.length)\n\n\t\t// SliceZone has not been found, therefore active slice cannot be found\n\t\tif (!$sliceZone) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst $activeSlice = getActiveSliceDOM($sliceZone, this._mouse)\n\n\t\t// Active slice has not been found\n\t\tif (!$activeSlice) {\n\t\t\tthis.activeSlice = null\n\n\t\t\treturn\n\t\t}\n\n\t\tconst activeSliceIndex = Array.prototype.indexOf.call($sliceZone.children, $activeSlice)\n\n\t\t// Active slice has been found\n\t\tthis.activeSlice = {\n\t\t\trect: $activeSlice.getBoundingClientRect(),\n\t\t\tsliceID: this.slices[activeSliceIndex].slice_type,\n\t\t\tvariationID: (this.slices[activeSliceIndex] as SharedSlice).variation,\n\t\t\tindex: activeSliceIndex,\n\t\t}\n\t}\n\tsetActiveSlice = throttle(this._setActiveSlice, 16)\n\n\tsetSliceZone(slices: SliceZone): void {\n\t\t// Set slices\n\t\tthis.slices = slices\n\t}\n}\n"],"mappings":";;;;;;AAeA,IAAa,QAAb,cAA2B,aAA0B;CACpD;CACA,IAAW,OAAO,QAAmB;AACpC,OAAK,UAAU;AAEf,OAAK,UAAU;AAEf,OAAK,KAAK,eAAe,QAAQ,OAAO;;CAEzC,IAAW,SAAoB;AAC9B,SAAO,KAAK;;CAGb;CACA,IAAW,YAAY,aAAiC;AACvD,OAAK,eAAe;AACpB,OAAK,KAAK,eAAe,aAAa,YAAY;;CAEnD,IAAW,cAAkC;AAC5C,SAAO,KAAK;;CAGb;CACA,IAAW,QAAQ,SAAiB;AACnC,OAAK,WAAW;AAChB,OAAK,KAAK,eAAe,SAAS,QAAQ;;CAE3C,IAAW,UAAkB;AAC5B,SAAO,KAAK;;CAGb;CAEA,YAAY,MAA6B;AACxC,SAAO;AAEP,OAAK,UAAU,MAAM,UAAU,kBAAkB;AACjD,OAAK,eAAe;AACpB,OAAK,WAAW;AAGhB,OAAK,SAAS;GAAE,GAAG;GAAG,GAAG;GAAG;;CAG7B,MAAM,OAAsB;AAE3B,SAAO,iBAAiB,cAAc,UAAU;AAC/C,QAAK,SAAS;IAAE,GAAG,MAAM;IAAS,GAAG,MAAM;IAAS;IACnD;;CAGH,wBAAsC;AAErC,MAAI,KAAK,OAAO,WAAW,GAAG;AAC7B,QAAK,cAAc;AAEnB;;EAGD,MAAM,aAAa,gBAAgB,KAAK,OAAO,OAAO;AAGtD,MAAI,CAAC,YAAY;AAChB,QAAK,cAAc;AAEnB;;EAGD,MAAM,eAAe,kBAAkB,YAAY,KAAK,OAAO;AAG/D,MAAI,CAAC,cAAc;AAClB,QAAK,cAAc;AAEnB;;EAGD,MAAM,mBAAmB,MAAM,UAAU,QAAQ,KAAK,WAAW,UAAU,aAAa;AAGxF,OAAK,cAAc;GAClB,MAAM,aAAa,uBAAuB;GAC1C,SAAS,KAAK,OAAO,kBAAkB;GACvC,aAAc,KAAK,OAAO,kBAAkC;GAC5D,OAAO;GACP;;CAEF,iBAAiB,SAAS,KAAK,iBAAiB,GAAG;CAEnD,aAAa,QAAyB;AAErC,OAAK,SAAS"}
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/kit/domHelpers.ts
3
2
  const simulatorClass = "slice-simulator";
4
3
  const simulatorRootClass = "slice-simulator--root";
@@ -30,7 +29,6 @@ const getActiveSliceDOM = ($sliceZone, mouse) => {
30
29
  if (!$slice) return null;
31
30
  return $slice;
32
31
  };
33
-
34
32
  //#endregion
35
33
  exports.getActiveSliceDOM = getActiveSliceDOM;
36
34
  exports.getSimulatorDOM = getSimulatorDOM;
@@ -38,4 +36,5 @@ exports.getSimulatorRootDOM = getSimulatorRootDOM;
38
36
  exports.getSliceZoneDOM = getSliceZoneDOM;
39
37
  exports.simulatorClass = simulatorClass;
40
38
  exports.simulatorRootClass = simulatorRootClass;
39
+
41
40
  //# sourceMappingURL=domHelpers.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"domHelpers.cjs","names":[],"sources":["../../src/kit/domHelpers.ts"],"sourcesContent":["export const simulatorClass = \"slice-simulator\"\nexport const simulatorRootClass = \"slice-simulator--root\"\n\nexport const getSimulatorDOM = (): Element | null => {\n\treturn document.querySelector(`.${simulatorClass}`)\n}\n\nexport const getSimulatorRootDOM = (): Element | null => {\n\treturn document.querySelector(`.${simulatorRootClass}`)\n}\n\nexport const getSliceZoneDOM = (\n\texpectedNumberOfChildren: number,\n): Element | null => {\n\t// If SliceZone has been tagged (#5)\n\tlet node = document.querySelector(`.${simulatorClass} [data-slice-zone]`)\n\tif (node) {\n\t\tif (node.children.length !== expectedNumberOfChildren) {\n\t\t\tconsole.warn(\n\t\t\t\t`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?`,\n\t\t\t)\n\t\t}\n\n\t\treturn node\n\t}\n\n\t// Start searching\n\tnode = document.querySelector(`.${simulatorClass} .${simulatorRootClass}`)\n\n\tif (!node) {\n\t\treturn null\n\t}\n\n\tconst searchDepth = 5\n\tfor (let i = 0; i < searchDepth; i++) {\n\t\tif (node.children.length === expectedNumberOfChildren) {\n\t\t\t// Return the first node that matches the expected number of children\n\t\t\treturn node\n\t\t} else if (node.children.length) {\n\t\t\t// Continue searching if current node has children\n\t\t\tnode = node.children[0]\n\t\t} else {\n\t\t\t// Stop searching if current node has no children\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Failed to find SliceZone\n\treturn null\n}\n\nexport const getActiveSliceDOM = (\n\t$sliceZone: Element,\n\tmouse: { x: number; y: number },\n): Element | null => {\n\t// Raycast cursor position on DOM\n\tconst raycast = document.elementsFromPoint(mouse.x, mouse.y).reverse()\n\n\t// Find SliceZone in raycast\n\tconst sliceZoneIndex = raycast.indexOf($sliceZone)\n\n\t// SliceZone is not part of raycast\n\tif (sliceZoneIndex === -1) {\n\t\treturn null\n\t}\n\n\tconst $slice = raycast[sliceZoneIndex + 1]\n\n\t// Slice is not part of raycast\n\tif (!$slice) {\n\t\treturn null\n\t}\n\n\treturn $slice\n}\n"],"mappings":";;AAAA,MAAa,iBAAiB;AAC9B,MAAa,qBAAqB;AAElC,MAAa,wBAAwC;AACpD,QAAO,SAAS,cAAc,IAAI,iBAAiB;;AAGpD,MAAa,4BAA4C;AACxD,QAAO,SAAS,cAAc,IAAI,qBAAqB;;AAGxD,MAAa,mBACZ,6BACoB;CAEpB,IAAI,OAAO,SAAS,cAAc,IAAI,eAAe,oBAAoB;AACzE,KAAI,MAAM;AACT,MAAI,KAAK,SAAS,WAAW,yBAC5B,SAAQ,KACP,iEAAiE,KAAK,SAAS,OAAO,gBAAgB,yBAAyB,uFAC/H;AAGF,SAAO;;AAIR,QAAO,SAAS,cAAc,IAAI,eAAe,IAAI,qBAAqB;AAE1E,KAAI,CAAC,KACJ,QAAO;CAGR,MAAM,cAAc;AACpB,MAAK,IAAI,IAAI,GAAG,IAAI,aAAa,IAChC,KAAI,KAAK,SAAS,WAAW,yBAE5B,QAAO;UACG,KAAK,SAAS,OAExB,QAAO,KAAK,SAAS;KAGrB;AAKF,QAAO;;AAGR,MAAa,qBACZ,YACA,UACoB;CAEpB,MAAM,UAAU,SAAS,kBAAkB,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS;CAGtE,MAAM,iBAAiB,QAAQ,QAAQ,WAAW;AAGlD,KAAI,mBAAmB,GACtB,QAAO;CAGR,MAAM,SAAS,QAAQ,iBAAiB;AAGxC,KAAI,CAAC,OACJ,QAAO;AAGR,QAAO"}
1
+ {"version":3,"file":"domHelpers.cjs","names":[],"sources":["../../src/kit/domHelpers.ts"],"sourcesContent":["export const simulatorClass = \"slice-simulator\"\nexport const simulatorRootClass = \"slice-simulator--root\"\n\nexport const getSimulatorDOM = (): Element | null => {\n\treturn document.querySelector(`.${simulatorClass}`)\n}\n\nexport const getSimulatorRootDOM = (): Element | null => {\n\treturn document.querySelector(`.${simulatorRootClass}`)\n}\n\nexport const getSliceZoneDOM = (expectedNumberOfChildren: number): Element | null => {\n\t// If SliceZone has been tagged (#5)\n\tlet node = document.querySelector(`.${simulatorClass} [data-slice-zone]`)\n\tif (node) {\n\t\tif (node.children.length !== expectedNumberOfChildren) {\n\t\t\tconsole.warn(\n\t\t\t\t`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?`,\n\t\t\t)\n\t\t}\n\n\t\treturn node\n\t}\n\n\t// Start searching\n\tnode = document.querySelector(`.${simulatorClass} .${simulatorRootClass}`)\n\n\tif (!node) {\n\t\treturn null\n\t}\n\n\tconst searchDepth = 5\n\tfor (let i = 0; i < searchDepth; i++) {\n\t\tif (node.children.length === expectedNumberOfChildren) {\n\t\t\t// Return the first node that matches the expected number of children\n\t\t\treturn node\n\t\t} else if (node.children.length) {\n\t\t\t// Continue searching if current node has children\n\t\t\tnode = node.children[0]\n\t\t} else {\n\t\t\t// Stop searching if current node has no children\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Failed to find SliceZone\n\treturn null\n}\n\nexport const getActiveSliceDOM = (\n\t$sliceZone: Element,\n\tmouse: { x: number; y: number },\n): Element | null => {\n\t// Raycast cursor position on DOM\n\tconst raycast = document.elementsFromPoint(mouse.x, mouse.y).reverse()\n\n\t// Find SliceZone in raycast\n\tconst sliceZoneIndex = raycast.indexOf($sliceZone)\n\n\t// SliceZone is not part of raycast\n\tif (sliceZoneIndex === -1) {\n\t\treturn null\n\t}\n\n\tconst $slice = raycast[sliceZoneIndex + 1]\n\n\t// Slice is not part of raycast\n\tif (!$slice) {\n\t\treturn null\n\t}\n\n\treturn $slice\n}\n"],"mappings":";AAAA,MAAa,iBAAiB;AAC9B,MAAa,qBAAqB;AAElC,MAAa,wBAAwC;AACpD,QAAO,SAAS,cAAc,IAAI,iBAAiB;;AAGpD,MAAa,4BAA4C;AACxD,QAAO,SAAS,cAAc,IAAI,qBAAqB;;AAGxD,MAAa,mBAAmB,6BAAqD;CAEpF,IAAI,OAAO,SAAS,cAAc,IAAI,eAAe,oBAAoB;AACzE,KAAI,MAAM;AACT,MAAI,KAAK,SAAS,WAAW,yBAC5B,SAAQ,KACP,iEAAiE,KAAK,SAAS,OAAO,gBAAgB,yBAAyB,uFAC/H;AAGF,SAAO;;AAIR,QAAO,SAAS,cAAc,IAAI,eAAe,IAAI,qBAAqB;AAE1E,KAAI,CAAC,KACJ,QAAO;CAGR,MAAM,cAAc;AACpB,MAAK,IAAI,IAAI,GAAG,IAAI,aAAa,IAChC,KAAI,KAAK,SAAS,WAAW,yBAE5B,QAAO;UACG,KAAK,SAAS,OAExB,QAAO,KAAK,SAAS;KAGrB;AAKF,QAAO;;AAGR,MAAa,qBACZ,YACA,UACoB;CAEpB,MAAM,UAAU,SAAS,kBAAkB,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS;CAGtE,MAAM,iBAAiB,QAAQ,QAAQ,WAAW;AAGlD,KAAI,mBAAmB,GACtB,QAAO;CAGR,MAAM,SAAS,QAAQ,iBAAiB;AAGxC,KAAI,CAAC,OACJ,QAAO;AAGR,QAAO"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domHelpers.d.cts","names":[],"sources":["../../src/kit/domHelpers.ts"],"mappings":";cAAa,cAAA;AAAA,cACA,kBAAA;AAAA,cAUA,eAAA,GAAmB,wBAAA,aAAmC,OAAA;AAAA,cAsCtD,iBAAA,GACZ,UAAA,EAAY,OAAA,EACZ,KAAA;EAAS,CAAA;EAAW,CAAA;AAAA,MAClB,OAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domHelpers.d.ts","names":[],"sources":["../../src/kit/domHelpers.ts"],"mappings":";cAAa,cAAA;AAAA,cACA,kBAAA;AAAA,cAUA,eAAA,GAAmB,wBAAA,aAAmC,OAAA;AAAA,cAsCtD,iBAAA,GACZ,UAAA,EAAY,OAAA,EACZ,KAAA;EAAS,CAAA;EAAW,CAAA;AAAA,MAClB,OAAA"}
@@ -29,7 +29,7 @@ const getActiveSliceDOM = ($sliceZone, mouse) => {
29
29
  if (!$slice) return null;
30
30
  return $slice;
31
31
  };
32
-
33
32
  //#endregion
34
33
  export { getActiveSliceDOM, getSimulatorDOM, getSimulatorRootDOM, getSliceZoneDOM, simulatorClass, simulatorRootClass };
34
+
35
35
  //# sourceMappingURL=domHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domHelpers.js","names":[],"sources":["../../src/kit/domHelpers.ts"],"sourcesContent":["export const simulatorClass = \"slice-simulator\"\nexport const simulatorRootClass = \"slice-simulator--root\"\n\nexport const getSimulatorDOM = (): Element | null => {\n\treturn document.querySelector(`.${simulatorClass}`)\n}\n\nexport const getSimulatorRootDOM = (): Element | null => {\n\treturn document.querySelector(`.${simulatorRootClass}`)\n}\n\nexport const getSliceZoneDOM = (\n\texpectedNumberOfChildren: number,\n): Element | null => {\n\t// If SliceZone has been tagged (#5)\n\tlet node = document.querySelector(`.${simulatorClass} [data-slice-zone]`)\n\tif (node) {\n\t\tif (node.children.length !== expectedNumberOfChildren) {\n\t\t\tconsole.warn(\n\t\t\t\t`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?`,\n\t\t\t)\n\t\t}\n\n\t\treturn node\n\t}\n\n\t// Start searching\n\tnode = document.querySelector(`.${simulatorClass} .${simulatorRootClass}`)\n\n\tif (!node) {\n\t\treturn null\n\t}\n\n\tconst searchDepth = 5\n\tfor (let i = 0; i < searchDepth; i++) {\n\t\tif (node.children.length === expectedNumberOfChildren) {\n\t\t\t// Return the first node that matches the expected number of children\n\t\t\treturn node\n\t\t} else if (node.children.length) {\n\t\t\t// Continue searching if current node has children\n\t\t\tnode = node.children[0]\n\t\t} else {\n\t\t\t// Stop searching if current node has no children\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Failed to find SliceZone\n\treturn null\n}\n\nexport const getActiveSliceDOM = (\n\t$sliceZone: Element,\n\tmouse: { x: number; y: number },\n): Element | null => {\n\t// Raycast cursor position on DOM\n\tconst raycast = document.elementsFromPoint(mouse.x, mouse.y).reverse()\n\n\t// Find SliceZone in raycast\n\tconst sliceZoneIndex = raycast.indexOf($sliceZone)\n\n\t// SliceZone is not part of raycast\n\tif (sliceZoneIndex === -1) {\n\t\treturn null\n\t}\n\n\tconst $slice = raycast[sliceZoneIndex + 1]\n\n\t// Slice is not part of raycast\n\tif (!$slice) {\n\t\treturn null\n\t}\n\n\treturn $slice\n}\n"],"mappings":";AAAA,MAAa,iBAAiB;AAC9B,MAAa,qBAAqB;AAElC,MAAa,wBAAwC;AACpD,QAAO,SAAS,cAAc,IAAI,iBAAiB;;AAGpD,MAAa,4BAA4C;AACxD,QAAO,SAAS,cAAc,IAAI,qBAAqB;;AAGxD,MAAa,mBACZ,6BACoB;CAEpB,IAAI,OAAO,SAAS,cAAc,IAAI,eAAe,oBAAoB;AACzE,KAAI,MAAM;AACT,MAAI,KAAK,SAAS,WAAW,yBAC5B,SAAQ,KACP,iEAAiE,KAAK,SAAS,OAAO,gBAAgB,yBAAyB,uFAC/H;AAGF,SAAO;;AAIR,QAAO,SAAS,cAAc,IAAI,eAAe,IAAI,qBAAqB;AAE1E,KAAI,CAAC,KACJ,QAAO;CAGR,MAAM,cAAc;AACpB,MAAK,IAAI,IAAI,GAAG,IAAI,aAAa,IAChC,KAAI,KAAK,SAAS,WAAW,yBAE5B,QAAO;UACG,KAAK,SAAS,OAExB,QAAO,KAAK,SAAS;KAGrB;AAKF,QAAO;;AAGR,MAAa,qBACZ,YACA,UACoB;CAEpB,MAAM,UAAU,SAAS,kBAAkB,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS;CAGtE,MAAM,iBAAiB,QAAQ,QAAQ,WAAW;AAGlD,KAAI,mBAAmB,GACtB,QAAO;CAGR,MAAM,SAAS,QAAQ,iBAAiB;AAGxC,KAAI,CAAC,OACJ,QAAO;AAGR,QAAO"}
1
+ {"version":3,"file":"domHelpers.js","names":[],"sources":["../../src/kit/domHelpers.ts"],"sourcesContent":["export const simulatorClass = \"slice-simulator\"\nexport const simulatorRootClass = \"slice-simulator--root\"\n\nexport const getSimulatorDOM = (): Element | null => {\n\treturn document.querySelector(`.${simulatorClass}`)\n}\n\nexport const getSimulatorRootDOM = (): Element | null => {\n\treturn document.querySelector(`.${simulatorRootClass}`)\n}\n\nexport const getSliceZoneDOM = (expectedNumberOfChildren: number): Element | null => {\n\t// If SliceZone has been tagged (#5)\n\tlet node = document.querySelector(`.${simulatorClass} [data-slice-zone]`)\n\tif (node) {\n\t\tif (node.children.length !== expectedNumberOfChildren) {\n\t\t\tconsole.warn(\n\t\t\t\t`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?`,\n\t\t\t)\n\t\t}\n\n\t\treturn node\n\t}\n\n\t// Start searching\n\tnode = document.querySelector(`.${simulatorClass} .${simulatorRootClass}`)\n\n\tif (!node) {\n\t\treturn null\n\t}\n\n\tconst searchDepth = 5\n\tfor (let i = 0; i < searchDepth; i++) {\n\t\tif (node.children.length === expectedNumberOfChildren) {\n\t\t\t// Return the first node that matches the expected number of children\n\t\t\treturn node\n\t\t} else if (node.children.length) {\n\t\t\t// Continue searching if current node has children\n\t\t\tnode = node.children[0]\n\t\t} else {\n\t\t\t// Stop searching if current node has no children\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Failed to find SliceZone\n\treturn null\n}\n\nexport const getActiveSliceDOM = (\n\t$sliceZone: Element,\n\tmouse: { x: number; y: number },\n): Element | null => {\n\t// Raycast cursor position on DOM\n\tconst raycast = document.elementsFromPoint(mouse.x, mouse.y).reverse()\n\n\t// Find SliceZone in raycast\n\tconst sliceZoneIndex = raycast.indexOf($sliceZone)\n\n\t// SliceZone is not part of raycast\n\tif (sliceZoneIndex === -1) {\n\t\treturn null\n\t}\n\n\tconst $slice = raycast[sliceZoneIndex + 1]\n\n\t// Slice is not part of raycast\n\tif (!$slice) {\n\t\treturn null\n\t}\n\n\treturn $slice\n}\n"],"mappings":";AAAA,MAAa,iBAAiB;AAC9B,MAAa,qBAAqB;AAElC,MAAa,wBAAwC;AACpD,QAAO,SAAS,cAAc,IAAI,iBAAiB;;AAGpD,MAAa,4BAA4C;AACxD,QAAO,SAAS,cAAc,IAAI,qBAAqB;;AAGxD,MAAa,mBAAmB,6BAAqD;CAEpF,IAAI,OAAO,SAAS,cAAc,IAAI,eAAe,oBAAoB;AACzE,KAAI,MAAM;AACT,MAAI,KAAK,SAAS,WAAW,yBAC5B,SAAQ,KACP,iEAAiE,KAAK,SAAS,OAAO,gBAAgB,yBAAyB,uFAC/H;AAGF,SAAO;;AAIR,QAAO,SAAS,cAAc,IAAI,eAAe,IAAI,qBAAqB;AAE1E,KAAI,CAAC,KACJ,QAAO;CAGR,MAAM,cAAc;AACpB,MAAK,IAAI,IAAI,GAAG,IAAI,aAAa,IAChC,KAAI,KAAK,SAAS,WAAW,yBAE5B,QAAO;UACG,KAAK,SAAS,OAExB,QAAO,KAAK,SAAS;KAGrB;AAKF,QAAO;;AAGR,MAAa,qBACZ,YACA,UACoB;CAEpB,MAAM,UAAU,SAAS,kBAAkB,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS;CAGtE,MAAM,iBAAiB,QAAQ,QAAQ,WAAW;AAGlD,KAAI,mBAAmB,GACtB,QAAO;CAGR,MAAM,SAAS,QAAQ,iBAAiB;AAGxC,KAAI,CAAC,OACJ,QAAO;AAGR,QAAO"}
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/kit/eventHandlers.ts
3
2
  const disableEventHandler = (event) => {
4
3
  event.preventDefault();
@@ -10,8 +9,8 @@ const onClickHandler = (event) => {
10
9
  event.stopPropagation();
11
10
  }
12
11
  };
13
-
14
12
  //#endregion
15
13
  exports.disableEventHandler = disableEventHandler;
16
14
  exports.onClickHandler = onClickHandler;
15
+
17
16
  //# sourceMappingURL=eventHandlers.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventHandlers.cjs","names":[],"sources":["../../src/kit/eventHandlers.ts"],"sourcesContent":["export const disableEventHandler = (event: Event): void => {\n\tevent.preventDefault()\n\tevent.stopPropagation()\n}\n\nexport const onClickHandler = (\n\tevent: MouseEvent & { path?: HTMLElement[] },\n): void => {\n\tif (\n\t\tevent.path &&\n\t\tevent.path.slice(0, 5).some((el) => el instanceof HTMLAnchorElement)\n\t) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n}\n"],"mappings":";;AAAA,MAAa,uBAAuB,UAAuB;AAC1D,OAAM,gBAAgB;AACtB,OAAM,iBAAiB;;AAGxB,MAAa,kBACZ,UACU;AACV,KACC,MAAM,QACN,MAAM,KAAK,MAAM,GAAG,EAAE,CAAC,MAAM,OAAO,cAAc,kBAAkB,EACnE;AACD,QAAM,gBAAgB;AACtB,QAAM,iBAAiB"}
1
+ {"version":3,"file":"eventHandlers.cjs","names":[],"sources":["../../src/kit/eventHandlers.ts"],"sourcesContent":["export const disableEventHandler = (event: Event): void => {\n\tevent.preventDefault()\n\tevent.stopPropagation()\n}\n\nexport const onClickHandler = (event: MouseEvent & { path?: HTMLElement[] }): void => {\n\tif (event.path && event.path.slice(0, 5).some((el) => el instanceof HTMLAnchorElement)) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n}\n"],"mappings":";AAAA,MAAa,uBAAuB,UAAuB;AAC1D,OAAM,gBAAgB;AACtB,OAAM,iBAAiB;;AAGxB,MAAa,kBAAkB,UAAuD;AACrF,KAAI,MAAM,QAAQ,MAAM,KAAK,MAAM,GAAG,EAAE,CAAC,MAAM,OAAO,cAAc,kBAAkB,EAAE;AACvF,QAAM,gBAAgB;AACtB,QAAM,iBAAiB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventHandlers.d.cts","names":[],"sources":["../../src/kit/eventHandlers.ts"],"mappings":";cAAa,mBAAA,GAAuB,KAAA,EAAO,KAAA;AAAA,cAK9B,cAAA,GAAkB,KAAA,EAAO,UAAA;EAAe,IAAA,GAAO,WAAA;AAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventHandlers.d.ts","names":[],"sources":["../../src/kit/eventHandlers.ts"],"mappings":";cAAa,mBAAA,GAAuB,KAAA,EAAO,KAAA;AAAA,cAK9B,cAAA,GAAkB,KAAA,EAAO,UAAA;EAAe,IAAA,GAAO,WAAA;AAAA"}
@@ -9,7 +9,7 @@ const onClickHandler = (event) => {
9
9
  event.stopPropagation();
10
10
  }
11
11
  };
12
-
13
12
  //#endregion
14
13
  export { disableEventHandler, onClickHandler };
14
+
15
15
  //# sourceMappingURL=eventHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventHandlers.js","names":[],"sources":["../../src/kit/eventHandlers.ts"],"sourcesContent":["export const disableEventHandler = (event: Event): void => {\n\tevent.preventDefault()\n\tevent.stopPropagation()\n}\n\nexport const onClickHandler = (\n\tevent: MouseEvent & { path?: HTMLElement[] },\n): void => {\n\tif (\n\t\tevent.path &&\n\t\tevent.path.slice(0, 5).some((el) => el instanceof HTMLAnchorElement)\n\t) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n}\n"],"mappings":";AAAA,MAAa,uBAAuB,UAAuB;AAC1D,OAAM,gBAAgB;AACtB,OAAM,iBAAiB;;AAGxB,MAAa,kBACZ,UACU;AACV,KACC,MAAM,QACN,MAAM,KAAK,MAAM,GAAG,EAAE,CAAC,MAAM,OAAO,cAAc,kBAAkB,EACnE;AACD,QAAM,gBAAgB;AACtB,QAAM,iBAAiB"}
1
+ {"version":3,"file":"eventHandlers.js","names":[],"sources":["../../src/kit/eventHandlers.ts"],"sourcesContent":["export const disableEventHandler = (event: Event): void => {\n\tevent.preventDefault()\n\tevent.stopPropagation()\n}\n\nexport const onClickHandler = (event: MouseEvent & { path?: HTMLElement[] }): void => {\n\tif (event.path && event.path.slice(0, 5).some((el) => el instanceof HTMLAnchorElement)) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t}\n}\n"],"mappings":";AAAA,MAAa,uBAAuB,UAAuB;AAC1D,OAAM,gBAAgB;AACtB,OAAM,iBAAiB;;AAGxB,MAAa,kBAAkB,UAAuD;AACrF,KAAI,MAAM,QAAQ,MAAM,KAAK,MAAM,GAAG,EAAE,CAAC,MAAM,OAAO,cAAc,kBAAkB,EAAE;AACvF,QAAM,gBAAgB;AACtB,QAAM,iBAAiB"}
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/kit/getDefault.ts
3
2
  const getDefaultProps = () => ({
4
3
  zIndex: 100,
@@ -10,9 +9,9 @@ const getDefaultSlices = () => {
10
9
  const getDefaultMessage = () => {
11
10
  return "";
12
11
  };
13
-
14
12
  //#endregion
15
13
  exports.getDefaultMessage = getDefaultMessage;
16
14
  exports.getDefaultProps = getDefaultProps;
17
15
  exports.getDefaultSlices = getDefaultSlices;
16
+
18
17
  //# sourceMappingURL=getDefault.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDefault.cjs","names":[],"sources":["../../src/kit/getDefault.ts"],"sourcesContent":["import type { SliceZone } from \"@prismicio/client\"\n\nimport type { SliceSimulatorProps } from \"./types\"\n\nexport const getDefaultProps = (): Required<{\n\t[K in keyof SliceSimulatorProps]: NonNullable<SliceSimulatorProps[K]>\n}> => ({\n\tzIndex: 100,\n\tbackground: \"#ffffff\",\n})\n\nexport const getDefaultSlices = (): SliceZone => {\n\treturn []\n}\n\nexport const getDefaultMessage = (): string => {\n\treturn \"\"\n}\n"],"mappings":";;AAIA,MAAa,yBAEN;CACN,QAAQ;CACR,YAAY;CACZ;AAED,MAAa,yBAAoC;AAChD,QAAO,EAAE;;AAGV,MAAa,0BAAkC;AAC9C,QAAO"}
1
+ {"version":3,"file":"getDefault.cjs","names":[],"sources":["../../src/kit/getDefault.ts"],"sourcesContent":["import type { SliceZone } from \"@prismicio/client\"\n\nimport type { SliceSimulatorProps } from \"./types\"\n\nexport const getDefaultProps = (): Required<{\n\t[K in keyof SliceSimulatorProps]: NonNullable<SliceSimulatorProps[K]>\n}> => ({\n\tzIndex: 100,\n\tbackground: \"#ffffff\",\n})\n\nexport const getDefaultSlices = (): SliceZone => {\n\treturn []\n}\n\nexport const getDefaultMessage = (): string => {\n\treturn \"\"\n}\n"],"mappings":";AAIA,MAAa,yBAEN;CACN,QAAQ;CACR,YAAY;CACZ;AAED,MAAa,yBAAoC;AAChD,QAAO,EAAE;;AAGV,MAAa,0BAAkC;AAC9C,QAAO"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDefault.d.cts","names":[],"sources":["../../src/kit/getDefault.ts"],"mappings":";;;;cAIa,eAAA,QAAsB,QAAA,eACtB,mBAAA,GAAsB,WAAA,CAAY,mBAAA,CAAoB,CAAA;AAAA,cAMtD,gBAAA,QAAuB,SAAA;AAAA,cAIvB,iBAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDefault.d.ts","names":[],"sources":["../../src/kit/getDefault.ts"],"mappings":";;;;cAIa,eAAA,QAAsB,QAAA,eACtB,mBAAA,GAAsB,WAAA,CAAY,mBAAA,CAAoB,CAAA;AAAA,cAMtD,gBAAA,QAAuB,SAAA;AAAA,cAIvB,iBAAA"}
@@ -9,7 +9,7 @@ const getDefaultSlices = () => {
9
9
  const getDefaultMessage = () => {
10
10
  return "";
11
11
  };
12
-
13
12
  //#endregion
14
13
  export { getDefaultMessage, getDefaultProps, getDefaultSlices };
14
+
15
15
  //# sourceMappingURL=getDefault.js.map
@@ -1,15 +1,12 @@
1
-
2
1
  //#region src/kit/messages.ts
3
2
  const div = (content) => `<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>`;
4
3
  const a = (href, label) => `<a href="${href}" style="text-decoration: underline;">${label || href}<a>`;
5
- const header = " _____ ___ _____ _ __ __ \n / ___// (_)_______ / ___/(_)___ ___ __ __/ /___ _/ /_____ _____\n \\__ \\/ / / ___/ _ \\\\__ \\/ / __ `__ \\/ / / / / __ `/ __/ __ \\/ ___/\n ___/ / / / /__/ __/__/ / / / / / / / /_/ / / /_/ / /_/ /_/ / / \n/____/_/_/\\___/\\___/____/_/_/ /_/ /_/\\__,_/_/\\__,_/\\__/\\____/_/ \n / /_ __ __ / __ \\_____(_)________ ___ (_)____\n / __ \\/ / / / / /_/ / ___/ / ___/ __ `__ \\/ / ___/\n / /_/ / /_/ / / ____/ / / (__ ) / / / / / / /__ \n /_.___/\\__, / /_/ /_/ /_/____/_/ /_/ /_/_/\\___/ \n /____/\n\n";
6
- const footer = "\n\n\n\n\n\n - The Prismic team";
7
4
  const sliceSimulatorAccessedDirectly = div([
8
- header,
5
+ " _____ ___ _____ _ __ __ \n / ___// (_)_______ / ___/(_)___ ___ __ __/ /___ _/ /_____ _____\n \\__ \\/ / / ___/ _ \\\\__ \\/ / __ `__ \\/ / / / / __ `/ __/ __ \\/ ___/\n ___/ / / / /__/ __/__/ / / / / / / / /_/ / / /_/ / /_/ /_/ / / \n/____/_/_/\\___/\\___/____/_/_/ /_/ /_/\\__,_/_/\\__,_/\\__/\\____/_/ \n / /_ __ __ / __ \\_____(_)________ ___ (_)____\n / __ \\/ / / / / /_/ / ___/ / ___/ __ `__ \\/ / ___/\n / /_/ / /_/ / / ____/ / / (__ ) / / / / / / /__ \n /_.___/\\__, / /_/ /_/ /_/____/_/ /_/ /_/_/\\___/ \n /____/\n\n",
9
6
  `You're seeing this page because you're accessing Slice simulator\ndirectly, e.g:\n\n - ${a("http://localhost:3000/slice-simulator")}\n\n\n\nThe Slice simulator can only be accessed through Slice Machine or the\nPage Builder. To preview your Slices, head over to Slice Machine:\n\n - ${a("http://localhost:9999")}\n\n\n\nIf you believe this is an error, please reach out to us:\n\n - ${a("https://github.com/prismicio/slice-machine/issues/new/choose")}`,
10
- footer
7
+ "\n\n\n\n\n\n - The Prismic team"
11
8
  ].join(""));
12
-
13
9
  //#endregion
14
10
  exports.sliceSimulatorAccessedDirectly = sliceSimulatorAccessedDirectly;
11
+
15
12
  //# sourceMappingURL=messages.cjs.map