@prismicio/simulator 0.1.1 → 0.1.3

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.
@@ -86,8 +86,7 @@ class SimulatorManager {
86
86
  this.state.setActiveSlice();
87
87
  });
88
88
  window.addEventListener("mousewheel", () => {
89
- var _a2;
90
- ((_a2 = this._api) == null ? void 0 : _a2.options.activeSliceAPI) && setTimeout(this.state.setActiveSlice, 200);
89
+ setTimeout(this.state.setActiveSlice, 200);
91
90
  });
92
91
  this.state.on(types$1.StateEventType.Slices, () => {
93
92
  this.state.setActiveSlice();
@@ -123,8 +122,8 @@ class SimulatorManager {
123
122
  }, 16));
124
123
  const observeSimulatorRoot = () => {
125
124
  const simulatorRootDOM = domHelpers.getSimulatorRootDOM();
125
+ resizeObserver.disconnect();
126
126
  if (simulatorRootDOM) {
127
- resizeObserver.disconnect();
128
127
  resizeObserver.observe(simulatorRootDOM);
129
128
  }
130
129
  };
@@ -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\tthis._api?.options.activeSliceAPI &&\n\t\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\tif (simulatorRootDOM) {\n\t\t\t\t\tresizeObserver.disconnect();\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","_a","StateEventType","ResponseError","throttle","getSimulatorRootDOM","getSimulatorDOM"],"mappings":"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"}
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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"}
@@ -84,8 +84,7 @@ class SimulatorManager {
84
84
  this.state.setActiveSlice();
85
85
  });
86
86
  window.addEventListener("mousewheel", () => {
87
- var _a2;
88
- ((_a2 = this._api) == null ? void 0 : _a2.options.activeSliceAPI) && setTimeout(this.state.setActiveSlice, 200);
87
+ setTimeout(this.state.setActiveSlice, 200);
89
88
  });
90
89
  this.state.on(StateEventType.Slices, () => {
91
90
  this.state.setActiveSlice();
@@ -121,8 +120,8 @@ class SimulatorManager {
121
120
  }, 16));
122
121
  const observeSimulatorRoot = () => {
123
122
  const simulatorRootDOM = getSimulatorRootDOM();
123
+ resizeObserver.disconnect();
124
124
  if (simulatorRootDOM) {
125
- resizeObserver.disconnect();
126
125
  resizeObserver.observe(simulatorRootDOM);
127
126
  }
128
127
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SimulatorManager.js","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\tthis._api?.options.activeSliceAPI &&\n\t\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\tif (simulatorRootDOM) {\n\t\t\t\t\tresizeObserver.disconnect();\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":["_a"],"mappings":"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"}
1
+ {"version":3,"file":"SimulatorManager.js","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":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const SimulatorManager = require("./SimulatorManager.cjs");
4
- const State = require("./State.cjs");
5
- const getDefault = require("./getDefault.cjs");
6
- const domHelpers = require("./domHelpers.cjs");
7
- const eventHandlers = require("./eventHandlers.cjs");
8
- const messages = require("./messages.cjs");
9
- const types = require("./types.cjs");
3
+ const SimulatorManager = require("./kit/SimulatorManager.cjs");
4
+ const State = require("./kit/State.cjs");
5
+ const getDefault = require("./kit/getDefault.cjs");
6
+ const domHelpers = require("./kit/domHelpers.cjs");
7
+ const eventHandlers = require("./kit/eventHandlers.cjs");
8
+ const messages = require("./kit/messages.cjs");
9
+ const types = require("./kit/types.cjs");
10
10
  exports.SimulatorManager = SimulatorManager.SimulatorManager;
11
11
  exports.State = State.State;
12
12
  exports.getDefaultMessage = getDefault.getDefaultMessage;
@@ -23,4 +23,4 @@ Object.defineProperty(exports, "StateEventType", {
23
23
  enumerable: true,
24
24
  get: () => types.StateEventType
25
25
  });
26
- //# sourceMappingURL=index.cjs.map
26
+ //# sourceMappingURL=kit.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kit.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/kit.js ADDED
@@ -0,0 +1,23 @@
1
+ import { SimulatorManager } from "./kit/SimulatorManager.js";
2
+ import { State } from "./kit/State.js";
3
+ import { getDefaultMessage, getDefaultProps, getDefaultSlices } from "./kit/getDefault.js";
4
+ import { getActiveSliceDOM, getSliceZoneDOM, simulatorClass, simulatorRootClass } from "./kit/domHelpers.js";
5
+ import { disableEventHandler, onClickHandler } from "./kit/eventHandlers.js";
6
+ import { sliceSimulatorAccessedDirectly } from "./kit/messages.js";
7
+ import { StateEventType } from "./kit/types.js";
8
+ export {
9
+ SimulatorManager,
10
+ State,
11
+ StateEventType,
12
+ disableEventHandler,
13
+ getActiveSliceDOM,
14
+ getDefaultMessage,
15
+ getDefaultProps,
16
+ getDefaultSlices,
17
+ getSliceZoneDOM,
18
+ onClickHandler,
19
+ simulatorClass,
20
+ simulatorRootClass,
21
+ sliceSimulatorAccessedDirectly
22
+ };
23
+ //# sourceMappingURL=kit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kit.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sources":["../../src/types.ts"],"sourcesContent":["import { SliceZone } from \"@prismicio/types\";\n\nimport { RequestMessage, ResponseMessage, Transaction } from \"./channel\";\n\nexport type ActiveSlice = {\n\trect: DOMRect;\n\tsliceID: string;\n\tvariationID: string;\n\tindex: number;\n};\n\nexport type SliceZoneSize = {\n\trect: DOMRect;\n};\n\nexport enum APIRequestType {\n\tSetActiveSlice = \"setActiveSlice\",\n\tSetSliceZoneSize = \"setSliceZoneSize\",\n}\n\nexport type APITransactions = {\n\t[APIRequestType.SetActiveSlice]: Transaction<\n\t\tRequestMessage<APIRequestType.SetActiveSlice, ActiveSlice | null>\n\t>;\n\t[APIRequestType.SetSliceZoneSize]: Transaction<\n\t\tRequestMessage<APIRequestType.SetSliceZoneSize, SliceZoneSize | null>\n\t>;\n};\n\nexport enum ClientRequestType {\n\tPing = \"ping\",\n\tSetSliceZone = \"setSliceZone\",\n\tScrollToSlice = \"scrollToSlice\",\n}\n\nexport type ClientTransactions = {\n\t[ClientRequestType.Ping]: Transaction<\n\t\tRequestMessage<ClientRequestType.Ping>,\n\t\tResponseMessage<\"pong\">\n\t>;\n\n\t[ClientRequestType.SetSliceZone]: Transaction<\n\t\tRequestMessage<ClientRequestType.SetSliceZone, SliceZone>\n\t>;\n\n\t[ClientRequestType.ScrollToSlice]: Transaction<\n\t\tRequestMessage<\n\t\t\tClientRequestType.ScrollToSlice,\n\t\t\t{\n\t\t\t\tsliceIndex: number;\n\t\t\t\tbehavior?: \"auto\" | \"smooth\";\n\t\t\t\tblock?: \"start\" | \"center\" | \"end\" | \"nearest\";\n\t\t\t\tinline?: \"start\" | \"center\" | \"end\" | \"nearest\";\n\t\t\t}\n\t\t>\n\t>;\n};\n"],"names":["APIRequestType","ClientRequestType"],"mappings":";;AAeYA,QAAA,iBAAA;AAAA,CAAZ,SAAYA,iBAAc;AACzBA,kBAAA,gBAAA,IAAA;AACAA,kBAAA,kBAAA,IAAA;AACD,GAHYA,2BAAAA,QAAAA,iBAGX,CAAA,EAAA;AAWWC,QAAA,oBAAA;AAAA,CAAZ,SAAYA,oBAAiB;AAC5BA,qBAAA,MAAA,IAAA;AACAA,qBAAA,cAAA,IAAA;AACAA,qBAAA,eAAA,IAAA;AACD,GAJYA,QAAA,sBAAAA,4BAIX,CAAA,EAAA;"}
1
+ {"version":3,"file":"types.cjs","sources":["../../src/types.ts"],"sourcesContent":["import { SliceZone } from \"@prismicio/types\";\n\nimport { RequestMessage, ResponseMessage, Transaction } from \"./channel\";\n\nexport type ActiveSlice = {\n\trect: DOMRect;\n\tsliceID: string;\n\tvariationID: string;\n\tindex: number;\n};\n\nexport type SliceZoneSize = {\n\trect: DOMRect;\n};\n\nexport enum APIRequestType {\n\tSetActiveSlice = \"setActiveSlice\",\n\tSetSliceZoneSize = \"setSliceZoneSize\",\n}\n\nexport type APITransactions = {\n\t[APIRequestType.SetActiveSlice]: Transaction<\n\t\tRequestMessage<APIRequestType.SetActiveSlice, ActiveSlice | null>\n\t>;\n\t[APIRequestType.SetSliceZoneSize]: Transaction<\n\t\tRequestMessage<APIRequestType.SetSliceZoneSize, SliceZoneSize>\n\t>;\n};\n\nexport enum ClientRequestType {\n\tPing = \"ping\",\n\tSetSliceZone = \"setSliceZone\",\n\tScrollToSlice = \"scrollToSlice\",\n}\n\nexport type ClientTransactions = {\n\t[ClientRequestType.Ping]: Transaction<\n\t\tRequestMessage<ClientRequestType.Ping>,\n\t\tResponseMessage<\"pong\">\n\t>;\n\n\t[ClientRequestType.SetSliceZone]: Transaction<\n\t\tRequestMessage<ClientRequestType.SetSliceZone, SliceZone>\n\t>;\n\n\t[ClientRequestType.ScrollToSlice]: Transaction<\n\t\tRequestMessage<\n\t\t\tClientRequestType.ScrollToSlice,\n\t\t\t{\n\t\t\t\tsliceIndex: number;\n\t\t\t\tbehavior?: \"auto\" | \"smooth\";\n\t\t\t\tblock?: \"start\" | \"center\" | \"end\" | \"nearest\";\n\t\t\t\tinline?: \"start\" | \"center\" | \"end\" | \"nearest\";\n\t\t\t}\n\t\t>\n\t>;\n};\n"],"names":["APIRequestType","ClientRequestType"],"mappings":";;AAeYA,QAAA,iBAAA;AAAA,CAAZ,SAAYA,iBAAc;AACzBA,kBAAA,gBAAA,IAAA;AACAA,kBAAA,kBAAA,IAAA;AACD,GAHYA,2BAAAA,QAAAA,iBAGX,CAAA,EAAA;AAWWC,QAAA,oBAAA;AAAA,CAAZ,SAAYA,oBAAiB;AAC5BA,qBAAA,MAAA,IAAA;AACAA,qBAAA,cAAA,IAAA;AACAA,qBAAA,eAAA,IAAA;AACD,GAJYA,QAAA,sBAAAA,4BAIX,CAAA,EAAA;"}
package/dist/types.d.ts CHANGED
@@ -15,7 +15,7 @@ export declare enum APIRequestType {
15
15
  }
16
16
  export type APITransactions = {
17
17
  [APIRequestType.SetActiveSlice]: Transaction<RequestMessage<APIRequestType.SetActiveSlice, ActiveSlice | null>>;
18
- [APIRequestType.SetSliceZoneSize]: Transaction<RequestMessage<APIRequestType.SetSliceZoneSize, SliceZoneSize | null>>;
18
+ [APIRequestType.SetSliceZoneSize]: Transaction<RequestMessage<APIRequestType.SetSliceZoneSize, SliceZoneSize>>;
19
19
  };
20
20
  export declare enum ClientRequestType {
21
21
  Ping = "ping",
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../src/types.ts"],"sourcesContent":["import { SliceZone } from \"@prismicio/types\";\n\nimport { RequestMessage, ResponseMessage, Transaction } from \"./channel\";\n\nexport type ActiveSlice = {\n\trect: DOMRect;\n\tsliceID: string;\n\tvariationID: string;\n\tindex: number;\n};\n\nexport type SliceZoneSize = {\n\trect: DOMRect;\n};\n\nexport enum APIRequestType {\n\tSetActiveSlice = \"setActiveSlice\",\n\tSetSliceZoneSize = \"setSliceZoneSize\",\n}\n\nexport type APITransactions = {\n\t[APIRequestType.SetActiveSlice]: Transaction<\n\t\tRequestMessage<APIRequestType.SetActiveSlice, ActiveSlice | null>\n\t>;\n\t[APIRequestType.SetSliceZoneSize]: Transaction<\n\t\tRequestMessage<APIRequestType.SetSliceZoneSize, SliceZoneSize | null>\n\t>;\n};\n\nexport enum ClientRequestType {\n\tPing = \"ping\",\n\tSetSliceZone = \"setSliceZone\",\n\tScrollToSlice = \"scrollToSlice\",\n}\n\nexport type ClientTransactions = {\n\t[ClientRequestType.Ping]: Transaction<\n\t\tRequestMessage<ClientRequestType.Ping>,\n\t\tResponseMessage<\"pong\">\n\t>;\n\n\t[ClientRequestType.SetSliceZone]: Transaction<\n\t\tRequestMessage<ClientRequestType.SetSliceZone, SliceZone>\n\t>;\n\n\t[ClientRequestType.ScrollToSlice]: Transaction<\n\t\tRequestMessage<\n\t\t\tClientRequestType.ScrollToSlice,\n\t\t\t{\n\t\t\t\tsliceIndex: number;\n\t\t\t\tbehavior?: \"auto\" | \"smooth\";\n\t\t\t\tblock?: \"start\" | \"center\" | \"end\" | \"nearest\";\n\t\t\t\tinline?: \"start\" | \"center\" | \"end\" | \"nearest\";\n\t\t\t}\n\t\t>\n\t>;\n};\n"],"names":["APIRequestType","ClientRequestType"],"mappings":"AAeY,IAAA;AAAA,CAAZ,SAAYA,iBAAc;AACzBA,kBAAA,gBAAA,IAAA;AACAA,kBAAA,kBAAA,IAAA;AACD,GAHY,mBAAA,iBAGX,CAAA,EAAA;AAWW,IAAA;AAAA,CAAZ,SAAYC,oBAAiB;AAC5BA,qBAAA,MAAA,IAAA;AACAA,qBAAA,cAAA,IAAA;AACAA,qBAAA,eAAA,IAAA;AACD,GAJY,sBAAA,oBAIX,CAAA,EAAA;"}
1
+ {"version":3,"file":"types.js","sources":["../../src/types.ts"],"sourcesContent":["import { SliceZone } from \"@prismicio/types\";\n\nimport { RequestMessage, ResponseMessage, Transaction } from \"./channel\";\n\nexport type ActiveSlice = {\n\trect: DOMRect;\n\tsliceID: string;\n\tvariationID: string;\n\tindex: number;\n};\n\nexport type SliceZoneSize = {\n\trect: DOMRect;\n};\n\nexport enum APIRequestType {\n\tSetActiveSlice = \"setActiveSlice\",\n\tSetSliceZoneSize = \"setSliceZoneSize\",\n}\n\nexport type APITransactions = {\n\t[APIRequestType.SetActiveSlice]: Transaction<\n\t\tRequestMessage<APIRequestType.SetActiveSlice, ActiveSlice | null>\n\t>;\n\t[APIRequestType.SetSliceZoneSize]: Transaction<\n\t\tRequestMessage<APIRequestType.SetSliceZoneSize, SliceZoneSize>\n\t>;\n};\n\nexport enum ClientRequestType {\n\tPing = \"ping\",\n\tSetSliceZone = \"setSliceZone\",\n\tScrollToSlice = \"scrollToSlice\",\n}\n\nexport type ClientTransactions = {\n\t[ClientRequestType.Ping]: Transaction<\n\t\tRequestMessage<ClientRequestType.Ping>,\n\t\tResponseMessage<\"pong\">\n\t>;\n\n\t[ClientRequestType.SetSliceZone]: Transaction<\n\t\tRequestMessage<ClientRequestType.SetSliceZone, SliceZone>\n\t>;\n\n\t[ClientRequestType.ScrollToSlice]: Transaction<\n\t\tRequestMessage<\n\t\t\tClientRequestType.ScrollToSlice,\n\t\t\t{\n\t\t\t\tsliceIndex: number;\n\t\t\t\tbehavior?: \"auto\" | \"smooth\";\n\t\t\t\tblock?: \"start\" | \"center\" | \"end\" | \"nearest\";\n\t\t\t\tinline?: \"start\" | \"center\" | \"end\" | \"nearest\";\n\t\t\t}\n\t\t>\n\t>;\n};\n"],"names":["APIRequestType","ClientRequestType"],"mappings":"AAeY,IAAA;AAAA,CAAZ,SAAYA,iBAAc;AACzBA,kBAAA,gBAAA,IAAA;AACAA,kBAAA,kBAAA,IAAA;AACD,GAHY,mBAAA,iBAGX,CAAA,EAAA;AAWW,IAAA;AAAA,CAAZ,SAAYC,oBAAiB;AAC5BA,qBAAA,MAAA,IAAA;AACAA,qBAAA,cAAA,IAAA;AACAA,qBAAA,eAAA,IAAA;AACD,GAJY,sBAAA,oBAIX,CAAA,EAAA;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prismicio/simulator",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Preview and develop Prismic slices fast with minimal configuration",
5
5
  "keywords": [
6
6
  "typescript",
@@ -27,11 +27,11 @@
27
27
  "./kit": {
28
28
  "require": {
29
29
  "types": "./dist/kit/index.d.ts",
30
- "default": "./dist/kit/index.cjs"
30
+ "default": "./dist/kit.cjs"
31
31
  },
32
32
  "import": {
33
33
  "types": "./dist/kit/index.d.ts",
34
- "default": "./dist/kit/index.js"
34
+ "default": "./dist/kit.js"
35
35
  }
36
36
  },
37
37
  "./package.json": "./package.json"
@@ -43,6 +43,16 @@
43
43
  "./dist",
44
44
  "./src"
45
45
  ],
46
+ "typesVersions": {
47
+ "*": {
48
+ "*": [
49
+ "dist/index.d.ts"
50
+ ],
51
+ "kit": [
52
+ "dist/kit/index.d.ts"
53
+ ]
54
+ }
55
+ },
46
56
  "scripts": {
47
57
  "build": "vite build",
48
58
  "dev": "nuxi dev playground",
@@ -127,8 +127,7 @@ export class SimulatorManager {
127
127
  this.state.setActiveSlice();
128
128
  });
129
129
  window.addEventListener("mousewheel", () => {
130
- this._api?.options.activeSliceAPI &&
131
- setTimeout(this.state.setActiveSlice, 200);
130
+ setTimeout(this.state.setActiveSlice, 200);
132
131
  });
133
132
 
134
133
  // Update active slice when slices are set
@@ -180,8 +179,8 @@ export class SimulatorManager {
180
179
  );
181
180
  const observeSimulatorRoot = () => {
182
181
  const simulatorRootDOM = getSimulatorRootDOM();
182
+ resizeObserver.disconnect();
183
183
  if (simulatorRootDOM) {
184
- resizeObserver.disconnect();
185
184
  resizeObserver.observe(simulatorRootDOM);
186
185
  }
187
186
  };
package/src/types.ts CHANGED
@@ -23,7 +23,7 @@ export type APITransactions = {
23
23
  RequestMessage<APIRequestType.SetActiveSlice, ActiveSlice | null>
24
24
  >;
25
25
  [APIRequestType.SetSliceZoneSize]: Transaction<
26
- RequestMessage<APIRequestType.SetSliceZoneSize, SliceZoneSize | null>
26
+ RequestMessage<APIRequestType.SetSliceZoneSize, SliceZoneSize>
27
27
  >;
28
28
  };
29
29
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/kit/index.js DELETED
@@ -1,23 +0,0 @@
1
- import { SimulatorManager } from "./SimulatorManager.js";
2
- import { State } from "./State.js";
3
- import { getDefaultMessage, getDefaultProps, getDefaultSlices } from "./getDefault.js";
4
- import { getActiveSliceDOM, getSliceZoneDOM, simulatorClass, simulatorRootClass } from "./domHelpers.js";
5
- import { disableEventHandler, onClickHandler } from "./eventHandlers.js";
6
- import { sliceSimulatorAccessedDirectly } from "./messages.js";
7
- import { StateEventType } from "./types.js";
8
- export {
9
- SimulatorManager,
10
- State,
11
- StateEventType,
12
- disableEventHandler,
13
- getActiveSliceDOM,
14
- getDefaultMessage,
15
- getDefaultProps,
16
- getDefaultSlices,
17
- getSliceZoneDOM,
18
- onClickHandler,
19
- simulatorClass,
20
- simulatorRootClass,
21
- sliceSimulatorAccessedDirectly
22
- };
23
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}