@grapesjs/studio-sdk-plugins 1.0.25 → 1.0.26-rc.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 (65) hide show
  1. package/dist/dataSourceEjs/EjsExporter.d.ts +2 -2
  2. package/dist/dataSourceHandlebars/HandlebarsExporter.d.ts +2 -2
  3. package/dist/flexComponent/index.cjs.js +1 -1
  4. package/dist/flexComponent/index.es.js +1 -1
  5. package/dist/flexComponent/index.umd.js +1 -1
  6. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  7. package/dist/googleFontsAssetProvider/index.es.js +4 -4
  8. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  9. package/dist/iconifyComponent/index.cjs.js +1 -1
  10. package/dist/iconifyComponent/index.es.js +1 -1
  11. package/dist/iconifyComponent/index.umd.js +1 -1
  12. package/dist/index.cjs.js +21 -21
  13. package/dist/index.es.js +219 -216
  14. package/dist/index.umd.js +2 -2
  15. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  16. package/dist/layoutSidebarButtons/index.es.js +19 -19
  17. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  18. package/dist/layoutSidebarButtons/types.d.ts +2 -1
  19. package/dist/presetPrintable/index.cjs.js +3 -3
  20. package/dist/presetPrintable/index.es.js +101 -101
  21. package/dist/presetPrintable/index.umd.js +1 -1
  22. package/dist/prosemirror/index.cjs.js +1 -1
  23. package/dist/prosemirror/index.es.js +1 -1
  24. package/dist/prosemirror/index.umd.js +1 -1
  25. package/dist/rendererReact/index.cjs.d.ts +3 -2
  26. package/dist/rendererReact/index.cjs.js +1 -1
  27. package/dist/rendererReact/index.d.ts +3 -2
  28. package/dist/rendererReact/index.es.d.ts +3 -2
  29. package/dist/rendererReact/index.es.js +219 -153
  30. package/dist/rendererReact/index.js +1 -0
  31. package/dist/rendererReact/index.umd.js +1 -1
  32. package/dist/rendererReact/rendererCanvas/RenderCanvasComponent.d.ts +4 -2
  33. package/dist/rendererReact/rendererCanvas/customRenderer.d.ts +2 -2
  34. package/dist/rendererReact/rendererCanvas/util.d.ts +27 -7
  35. package/dist/rendererReact/rendererProject/RenderComponent.d.ts +2 -0
  36. package/dist/rendererReact/rendererProject/RenderError.d.ts +2 -0
  37. package/dist/rendererReact/rendererProject/RenderPage.d.ts +2 -0
  38. package/dist/rendererReact/rendererProject/RenderProject.d.ts +3 -0
  39. package/dist/rendererReact/rendererProject/index.cjs.d.ts +1 -2
  40. package/dist/rendererReact/rendererProject/index.cjs.js +2 -10
  41. package/dist/rendererReact/rendererProject/index.d.ts +1 -2
  42. package/dist/rendererReact/rendererProject/index.es.d.ts +1 -2
  43. package/dist/rendererReact/rendererProject/index.es.js +206 -227
  44. package/dist/rendererReact/rendererProject/index.js +2 -10
  45. package/dist/rendererReact/rendererProject/index.umd.js +2 -10
  46. package/dist/rendererReact/rendererProject/parser/parser.d.ts +34 -53
  47. package/dist/rendererReact/rendererProject/types.d.ts +18 -4
  48. package/dist/rendererReact/rendererProject/util.d.ts +0 -11
  49. package/dist/rendererReact/shared/shared.d.ts +3 -0
  50. package/dist/rendererReact/shared/types.d.ts +150 -44
  51. package/dist/rendererReact/shared/util.d.ts +7 -1
  52. package/dist/rendererReact/types.d.ts +9 -12
  53. package/dist/rendererReact/typesSchema.d.ts +116 -49
  54. package/dist/rteTinyMce/index.cjs.js +1 -1
  55. package/dist/rteTinyMce/index.es.js +1 -1
  56. package/dist/rteTinyMce/index.umd.js +1 -1
  57. package/dist/tableComponent/index.cjs.js +1 -1
  58. package/dist/tableComponent/index.es.js +15 -12
  59. package/dist/tableComponent/index.umd.js +1 -1
  60. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  61. package/dist/youtubeAssetProvider/index.es.js +6 -6
  62. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  63. package/package.json +14 -2
  64. package/dist/rendererReact/rendererProject/GrapesJSProject.d.ts +0 -3
  65. package/dist/rendererReact/rendererProject/RenderProjectComponent.d.ts +0 -12
@@ -9,42 +9,42 @@ const N = "app.grapesjs.com", W = "app-stage.grapesjs.com", G = [
9
9
  // For stackblitz.com demos
10
10
  "-sandpack.codesandbox.io"
11
11
  // For Sandpack demos
12
- ], V = "license:check:start", Y = "license:check:end", J = () => typeof window < "u", M = (e, n = {}) => {
12
+ ], V = "license:check:start", Y = "license:check:end", J = () => typeof window < "u", M = (e, o = {}) => {
13
13
  const t = Q(e) ? { id: e, src: e } : e;
14
14
  return new Promise((s, a) => {
15
15
  var l, p;
16
- const o = document.querySelector(`script[src="${t.src}"]`), { id: r } = t;
17
- if (o)
18
- return (l = n.onScript) == null || l.call(n, o), s(r);
16
+ const n = document.querySelector(`script[src="${t.src}"]`), { id: r } = t;
17
+ if (n)
18
+ return (l = o.onScript) == null || l.call(o, n), s(r);
19
19
  const i = document.createElement("script");
20
- i.src = t.src, i.onload = () => s(r), i.onerror = () => a(r), document.head.appendChild(i), (p = n.onScript) == null || p.call(n, i);
20
+ i.src = t.src, i.onload = () => s(r), i.onerror = () => a(r), document.head.appendChild(i), (p = o.onScript) == null || p.call(o, i);
21
21
  });
22
- }, X = ({ isDev: e, isStage: n }) => `${e ? "" : `https://${n ? W : N}`}/api`, Z = () => {
22
+ }, X = ({ isDev: e, isStage: o }) => `${e ? "" : `https://${o ? W : N}`}/api`, Z = () => {
23
23
  const e = J() && window.location.hostname;
24
- return !!e && (G.includes(e) || G.some((n) => e.endsWith(n)));
24
+ return !!e && (G.includes(e) || G.some((o) => e.endsWith(o)));
25
25
  }, Q = (e) => typeof e == "string";
26
26
  async function ee({
27
27
  path: e,
28
- baseApiUrl: n,
28
+ baseApiUrl: o,
29
29
  method: t = "GET",
30
30
  headers: s = {},
31
31
  params: a,
32
- body: o
32
+ body: n
33
33
  }) {
34
- const i = `${n || X({ isDev: !1, isStage: !1 })}${e}`, l = {
34
+ const i = `${o || X({ isDev: !1, isStage: !1 })}${e}`, l = {
35
35
  method: t,
36
36
  headers: {
37
37
  "Content-Type": "application/json",
38
38
  ...s
39
39
  }
40
40
  };
41
- o && (l.body = JSON.stringify(o));
42
- const p = a ? new URLSearchParams(a).toString() : "", d = p ? `?${p}` : "", g = await fetch(`${i}${d}`, l);
43
- if (!g.ok)
44
- throw new Error(`HTTP error! status: ${g.status}`);
45
- return g.json();
41
+ n && (l.body = JSON.stringify(n));
42
+ const p = a ? new URLSearchParams(a).toString() : "", g = p ? `?${p}` : "", d = await fetch(`${i}${g}`, l);
43
+ if (!d.ok)
44
+ throw new Error(`HTTP error! status: ${d.status}`);
45
+ return d.json();
46
46
  }
47
- var B = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(B || {}), z = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.dialogOpen = "studio:dialogOpen", e.dialogClose = "studio:dialogClose", e.sidebarLeftSet = "studio:sidebarLeft:set", e.sidebarLeftGet = "studio:sidebarLeft:get", e.sidebarLeftToggle = "studio:sidebarLeft:toggle", e.sidebarRightSet = "studio:sidebarRight:set", e.sidebarRightGet = "studio:sidebarRight:get", e.sidebarRightToggle = "studio:sidebarRight:toggle", e.sidebarTopSet = "studio:sidebarTop:set", e.sidebarTopGet = "studio:sidebarTop:get", e.sidebarTopToggle = "studio:sidebarTop:toggle", e.sidebarBottomSet = "studio:sidebarBottom:set", e.sidebarBottomGet = "studio:sidebarBottom:get", e.sidebarBottomToggle = "studio:sidebarBottom:toggle", e.symbolAdd = "studio:symbolAdd", e.symbolDetach = "studio:symbolDetach", e.symbolOverride = "studio:symbolOverride", e.symbolPropagateStyles = "studio:propagateStyles", e.getPagesConfig = "studio:getPagesConfig", e.setPagesConfig = "studio:setPagesConfig", e.getPageSettings = "studio:getPageSettings", e.setPageSettings = "studio:setPageSettings", e.projectFiles = "studio:projectFiles", e.canvasReload = "studio:canvasReload", e.getBlocksPanel = "studio:getBlocksPanel", e.setBlocksPanel = "studio:setBlocksPanel", e.getStateContextMenu = "studio:getStateContextMenu", e.setStateContextMenu = "studio:setStateContextMenu", e.contextMenuComponent = "studio:contextMenuComponent", e.layoutAdd = "studio:layoutAdd", e.layoutRemove = "studio:layoutRemove", e.layoutToggle = "studio:layoutToggle", e.layoutUpdate = "studio:layoutUpdate", e.layoutGet = "studio:layoutGet", e.layoutConfigGet = "studio:layoutConfigGet", e.layoutConfigSet = "studio:layoutConfigSet", e.getStateTheme = "studio:getStateTheme", e.setStateTheme = "studio:setStateTheme", e.assetProviderGet = "studio:assetProviderGet", e.assetProviderAdd = "studio:assetProviderAdd", e.assetProviderRemove = "studio:assetProviderRemove", e.fontGet = "studio:fontGet", e.fontAdd = "studio:fontAdd", e.fontRemove = "studio:fontRemove", e.fontManagerOpen = "studio:fontManagerOpen", e.menuFontLoad = "studio:menuFontLoad", e.toggleStateDataSource = "studio:toggleStateDataSource", e.getStateDataSource = "studio:getStateDataSource", e.dataSourceSetGlobalData = "studio:dataSourceSetGlobalData", e.dataSourceSetImporter = "studio:dataSourceSetImporter", e.dataSourceSetExporter = "studio:dataSourceSetExporter", e.setDragAbsolute = "studio:setDragAbsolute", e))(z || {});
47
+ var B = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(B || {}), z = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", e.dialogOpen = "studio:dialogOpen", e.dialogClose = "studio:dialogClose", e.sidebarLeftSet = "studio:sidebarLeft:set", e.sidebarLeftGet = "studio:sidebarLeft:get", e.sidebarLeftToggle = "studio:sidebarLeft:toggle", e.sidebarRightSet = "studio:sidebarRight:set", e.sidebarRightGet = "studio:sidebarRight:get", e.sidebarRightToggle = "studio:sidebarRight:toggle", e.sidebarTopSet = "studio:sidebarTop:set", e.sidebarTopGet = "studio:sidebarTop:get", e.sidebarTopToggle = "studio:sidebarTop:toggle", e.sidebarBottomSet = "studio:sidebarBottom:set", e.sidebarBottomGet = "studio:sidebarBottom:get", e.sidebarBottomToggle = "studio:sidebarBottom:toggle", e.symbolAdd = "studio:symbolAdd", e.symbolDetach = "studio:symbolDetach", e.symbolOverride = "studio:symbolOverride", e.symbolPropagateStyles = "studio:propagateStyles", e.getPagesConfig = "studio:getPagesConfig", e.setPagesConfig = "studio:setPagesConfig", e.getPageSettings = "studio:getPageSettings", e.setPageSettings = "studio:setPageSettings", e.projectFiles = "studio:projectFiles", e.canvasReload = "studio:canvasReload", e.getBlocksPanel = "studio:getBlocksPanel", e.setBlocksPanel = "studio:setBlocksPanel", e.getStateContextMenu = "studio:getStateContextMenu", e.setStateContextMenu = "studio:setStateContextMenu", e.contextMenuComponent = "studio:contextMenuComponent", e.layoutAdd = "studio:layoutAdd", e.layoutRemove = "studio:layoutRemove", e.layoutToggle = "studio:layoutToggle", e.layoutUpdate = "studio:layoutUpdate", e.layoutGet = "studio:layoutGet", e.layoutConfigGet = "studio:layoutConfigGet", e.layoutConfigSet = "studio:layoutConfigSet", e.getStateTheme = "studio:getStateTheme", e.setStateTheme = "studio:setStateTheme", e.assetProviderGet = "studio:assetProviderGet", e.assetProviderAdd = "studio:assetProviderAdd", e.assetProviderRemove = "studio:assetProviderRemove", e.fontGet = "studio:fontGet", e.fontAdd = "studio:fontAdd", e.fontRemove = "studio:fontRemove", e.fontManagerOpen = "studio:fontManagerOpen", e.menuFontLoad = "studio:menuFontLoad", e.toggleStateDataSource = "studio:toggleStateDataSource", e.getStateDataSource = "studio:getStateDataSource", e.dataSourceSetGlobalData = "studio:dataSourceSetGlobalData", e.dataSourceSetImporter = "studio:dataSourceSetImporter", e.dataSourceSetExporter = "studio:dataSourceSetExporter", e.setDragAbsolute = "studio:setDragAbsolute", e))(z || {});
48
48
  const O = {
49
49
  [B.free]: 0,
50
50
  [B.startup]: 10,
@@ -52,51 +52,51 @@ const O = {
52
52
  [B.enterprise]: 30
53
53
  };
54
54
  function te(e) {
55
- const n = e;
56
- return n.init = (t) => (s) => e(s, t), n;
55
+ const o = e;
56
+ return o.init = (t) => (s) => e(s, t), o;
57
57
  }
58
58
  const se = (e) => /* @__PURE__ */ te(e);
59
- async function ne({
59
+ async function oe({
60
60
  editor: e,
61
- plan: n,
61
+ plan: o,
62
62
  pluginName: t,
63
63
  licenseKey: s,
64
64
  cleanup: a
65
65
  }) {
66
- let o = "", r = !1;
67
- const i = Z(), l = (d) => {
68
- console.warn("Cleanup plugin:", t, "Reason:", d), a();
69
- }, p = (d = {}) => {
66
+ let n = "", r = !1;
67
+ const i = Z(), l = (g) => {
68
+ console.warn("Cleanup plugin:", t, "Reason:", g), a();
69
+ }, p = (g = {}) => {
70
70
  var w;
71
- const { error: g, sdkLicense: u } = d, f = (w = d.plan) == null ? void 0 : w.category;
72
- if (!(u || d.license) || g)
73
- l(g || "Invalid license");
71
+ const { error: d, sdkLicense: u } = g, f = (w = g.plan) == null ? void 0 : w.category;
72
+ if (!(u || g.license) || d)
73
+ l(d || "Invalid license");
74
74
  else if (f) {
75
- const c = O[n], h = O[f];
76
- c > h && l({ pluginRequiredPlan: n, licensePlan: f });
75
+ const c = O[o], h = O[f];
76
+ c > h && l({ pluginRequiredPlan: o, licensePlan: f });
77
77
  }
78
78
  };
79
- e.on(V, (d) => {
80
- o = d == null ? void 0 : d.baseApiUrl, r = !0;
81
- }), e.on(Y, (d) => {
82
- p(d);
79
+ e.on(V, (g) => {
80
+ n = g == null ? void 0 : g.baseApiUrl, r = !0;
81
+ }), e.on(Y, (g) => {
82
+ p(g);
83
83
  }), setTimeout(async () => {
84
84
  if (!r) {
85
85
  if (i) return;
86
86
  if (s) {
87
- const d = await oe({ licenseKey: s, pluginName: t, baseApiUrl: o });
88
- d && p(d);
87
+ const g = await ne({ licenseKey: s, pluginName: t, baseApiUrl: n });
88
+ g && p(g);
89
89
  } else
90
90
  l("The `licenseKey` option not provided");
91
91
  }
92
92
  }, 2e3);
93
93
  }
94
- async function oe(e) {
95
- const { licenseKey: n, pluginName: t, baseApiUrl: s } = e;
94
+ async function ne(e) {
95
+ const { licenseKey: o, pluginName: t, baseApiUrl: s } = e;
96
96
  try {
97
97
  return (await ee({
98
98
  baseApiUrl: s,
99
- path: `/sdk/${n || "na"}`,
99
+ path: `/sdk/${o || "na"}`,
100
100
  method: "POST",
101
101
  params: {
102
102
  d: window.location.hostname,
@@ -107,32 +107,32 @@ async function oe(e) {
107
107
  return console.error("Error during SDK license check:", a), !1;
108
108
  }
109
109
  }
110
- const ae = (e) => (n) => {
110
+ const ae = (e) => (o) => {
111
111
  var t;
112
- return ((t = n.getAttribute) == null ? void 0 : t.call(n, q)) === e;
113
- }, re = (...e) => (n, t) => e.some((s) => t.is(s)), K = (e, n, t) => {
114
- const { doc: s = document } = t, a = t.target || s.head, o = a.querySelector(`style[${e}]`) || s.createElement("style");
115
- o.setAttribute(e, "true"), o.innerHTML = n, !a.contains(o) && a.appendChild(o);
112
+ return ((t = o.getAttribute) == null ? void 0 : t.call(o, q)) === e;
113
+ }, re = (...e) => (o, t) => e.some((s) => t.is(s)), K = (e, o, t) => {
114
+ const { doc: s = document } = t, a = t.target || s.head, n = a.querySelector(`style[${e}]`) || s.createElement("style");
115
+ n.setAttribute(e, "true"), n.innerHTML = o, !a.contains(n) && a.appendChild(n);
116
116
  }, ie = "gjs-plg-", C = "data-gs-plg-", q = "data-type-role";
117
- function I(e, n, t) {
118
- let s, a, o, r, i;
119
- const l = n === void 0 ? 100 : n;
117
+ function I(e, o, t) {
118
+ let s, a, n, r, i;
119
+ const l = o === void 0 ? 100 : o;
120
120
  function p() {
121
- const g = Date.now() - r;
122
- g < l && g >= 0 ? s = setTimeout(p, l - g) : (s = null, i = e.apply(o, a), o = a = null);
121
+ const d = Date.now() - r;
122
+ d < l && d >= 0 ? s = setTimeout(p, l - d) : (s = null, i = e.apply(n, a), n = a = null);
123
123
  }
124
- const d = function() {
125
- return o = this, a = arguments, r = Date.now(), s || (s = setTimeout(p, l)), i;
124
+ const g = function() {
125
+ return n = this, a = arguments, r = Date.now(), s || (s = setTimeout(p, l)), i;
126
126
  };
127
- return d.clear = function() {
127
+ return g.clear = function() {
128
128
  s && (clearTimeout(s), s = null);
129
- }, d.flush = function() {
130
- s && (i = e.apply(o, a), o = a = null, clearTimeout(s), s = null);
131
- }, d;
129
+ }, g.flush = function() {
130
+ s && (i = e.apply(n, a), n = a = null, clearTimeout(s), s = null);
131
+ }, g;
132
132
  }
133
133
  const A = "page-break";
134
134
  var m = /* @__PURE__ */ ((e) => (e.A5 = "a5", e.A5Portrait = "a5-portrait", e.A4 = "a4", e.A3 = "a3", e.B5 = "b5", e.B4 = "b4", e.letter = "letter", e.legal = "legal", e.ledger = "ledger", e))(m || {});
135
- function D(e, n) {
135
+ function D(e, o) {
136
136
  const s = {
137
137
  mm: 3.7795275590551185,
138
138
  // 1mm ≈ 3.78px
@@ -145,37 +145,37 @@ function D(e, n) {
145
145
  pc: 16
146
146
  // 1pc ≈ 16px
147
147
  };
148
- return s[n] ? e * s[n] : null;
148
+ return s[o] ? e * s[o] : null;
149
149
  }
150
- const ce = (e, n) => {
151
- const { name: t, id: s, width: a, height: o, unit: r } = e, { fixedHeight: i } = n, l = `${a}${r}`, p = `${o}${r}`;
150
+ const ce = (e, o) => {
151
+ const { name: t, id: s, width: a, height: n, unit: r } = e, { fixedHeight: i } = o, l = `${a}${r}`, p = `${n}${r}`;
152
152
  return {
153
153
  id: s || t.toLowerCase().replace(/\s/g, "-"),
154
154
  name: `${t} (${l} x ${p})`,
155
- sizeH: o,
155
+ sizeH: n,
156
156
  sizeW: a,
157
157
  sizeUnit: r,
158
158
  widthMedia: "",
159
159
  width: l,
160
- minHeight: i ? "0" : `${D(o, r)}px`,
160
+ minHeight: i ? "0" : `${D(n, r)}px`,
161
161
  height: i ? p : void 0
162
162
  };
163
163
  }, H = "page-breaks", $ = "gjs-page-breaks-spot", j = (e) => e.type === H;
164
164
  function le(e) {
165
- const { Devices: n } = e, { height: t, minHeight: s } = n.getSelected().attributes, o = parseFloat(`${t && t !== "auto" ? t : s}`), r = e.getWrapper(), i = r == null ? void 0 : r.getEl(), l = [];
165
+ const { Devices: o } = e, { height: t, minHeight: s } = o.getSelected().attributes, n = parseFloat(`${t && t !== "auto" ? t : s}`), r = e.getWrapper(), i = r == null ? void 0 : r.getEl(), l = [];
166
166
  if (!r || !i)
167
167
  return l;
168
- const p = i.getBoundingClientRect().height, g = r.findType(A).map((f) => f.getEl()).filter(Boolean).map((f) => ({ top: f.offsetTop, height: f.offsetHeight }));
168
+ const p = i.getBoundingClientRect().height, d = r.findType(A).map((f) => f.getEl()).filter(Boolean).map((f) => ({ top: f.offsetTop, height: f.offsetHeight }));
169
169
  let u = 0;
170
170
  for (; u < p; ) {
171
- const f = g.find((y) => y.top > u && y.top < u + o);
172
- f ? (u = f.top + f.height, l.push(f.top)) : (u += o, u < p && l.push(u));
171
+ const f = d.find((y) => y.top > u && y.top < u + n);
172
+ f ? (u = f.top + f.height, l.push(f.top)) : (u += n, u < p && l.push(u));
173
173
  }
174
174
  return l;
175
175
  }
176
- function pe(e, n) {
176
+ function pe(e, o) {
177
177
  const { Canvas: t } = e, s = t.events, a = e.events;
178
- let o;
178
+ let n;
179
179
  const r = () => {
180
180
  K(
181
181
  `${C}preset-printable-spots`,
@@ -201,56 +201,56 @@ function pe(e, n) {
201
201
  { target: window.document.head }
202
202
  );
203
203
  }, i = () => {
204
- if (n.enablePageBreaksSpot === !1) return;
204
+ if (o.enablePageBreaksSpot === !1) return;
205
205
  const c = { id: H, type: H, component: e.getWrapper() };
206
206
  return t.getSpots(c).pop() || t.addSpot(c);
207
207
  }, l = ({ spot: c }) => {
208
208
  const { spotEl: h } = c.attributes;
209
- !j(c) || !h || !o || o.removeChild(h);
209
+ !j(c) || !h || !n || n.removeChild(h);
210
210
  }, p = ({ spot: c }) => {
211
- if (!j(c) || !o) return;
211
+ if (!j(c) || !n) return;
212
212
  let { spotEl: h } = c.attributes;
213
- h || (h = document.createElement("div"), h.className = `${$}__items`, c.set({ spotEl: h })), o.appendChild(h);
214
- }, d = ({ spot: c }) => {
213
+ h || (h = document.createElement("div"), h.className = `${$}__items`, c.set({ spotEl: h })), n.appendChild(h);
214
+ }, g = ({ spot: c }) => {
215
215
  const { spotEl: h, pageBreaks: x = [] } = c.attributes;
216
- !j(c) || !h || !o || (Object.entries(c.getStyle()).forEach(([k, R]) => h.style.setProperty(k, R)), h.innerHTML = "", x.forEach((k, R) => {
216
+ !j(c) || !h || !n || (Object.entries(c.getStyle()).forEach(([k, R]) => h.style.setProperty(k, R)), h.innerHTML = "", x.forEach((k, R) => {
217
217
  const T = document.createElement("div");
218
218
  T.setAttribute("data-page-number", `${R + 2}`), T.className = $, T.style.top = `${k}px`, h.appendChild(T);
219
219
  }));
220
- }, g = I(() => {
220
+ }, d = I(() => {
221
221
  if (e.em.destroyed) return;
222
222
  const c = i();
223
223
  c && c.set({ pageBreaks: le(e), up: (c.attributes.up || 0) + 1 });
224
- }, 150), u = I(g, 200), f = () => {
225
- o = t.getSpotsEl(), i();
224
+ }, 150), u = I(d, 200), f = () => {
225
+ n = t.getSpotsEl(), i();
226
226
  }, y = () => {
227
227
  const c = i();
228
228
  c && c.set({ up: (c.attributes.up || 0) + 1 });
229
229
  }, w = [
230
- ["component:input", g],
230
+ ["component:input", d],
231
231
  ["frame:scroll", y],
232
- [a.update, g],
232
+ [a.update, d],
233
233
  [s.spotAdd, p],
234
- [s.spotUpdate, d],
234
+ [s.spotUpdate, g],
235
235
  [s.spotRemove, l],
236
236
  [s.frameLoadBody, f]
237
237
  ];
238
238
  return w.forEach(([c, h]) => e.on(c, h)), e.onReady(() => {
239
239
  r(), new ResizeObserver(y).observe(t.getElement().parentElement);
240
240
  }), () => {
241
- w.forEach(([c, h]) => e.off(c, h)), g.clear(), u.clear();
241
+ w.forEach(([c, h]) => e.off(c, h)), d.clear(), u.clear();
242
242
  };
243
243
  }
244
244
  var _ = /* @__PURE__ */ ((e) => (e.print = "presetPrintable:print", e))(_ || {});
245
- const F = (e) => new Promise((n) => {
245
+ const F = (e) => new Promise((o) => {
246
246
  const t = document.createElement("iframe");
247
- t.style.cssText = "position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;", t.srcdoc = e.content, t.onload = () => n(t), document.body.appendChild(t);
247
+ t.style.cssText = "position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;", t.srcdoc = e.content, t.onload = () => o(t), document.body.appendChild(t);
248
248
  });
249
- function de(e, n) {
249
+ function ge(e, o) {
250
250
  const { Commands: t, Pages: s } = e;
251
251
  return t.add(
252
252
  _.print,
253
- async (a, o, r = {}) => {
253
+ async (a, n, r = {}) => {
254
254
  const i = {
255
255
  page: r.allPages ? void 0 : s.getSelected(),
256
256
  styles: "inline",
@@ -258,31 +258,31 @@ function de(e, n) {
258
258
  // Avoid DataSource exporter
259
259
  exporter: null
260
260
  }
261
- }, p = (await t.run(z.projectFiles, i)).filter((u) => u.filename.endsWith(".html")), d = p.map((u) => u.content).join('<div style="break-before: page;"></div>'), g = [];
261
+ }, p = (await t.run(z.projectFiles, i)).filter((u) => u.filename.endsWith(".html")), g = p.map((u) => u.content).join('<div style="break-before: page;"></div>'), d = [];
262
262
  if (r.separatePrints)
263
263
  for (const u of p)
264
- g.push(await F(u));
264
+ d.push(await F(u));
265
265
  else
266
- g.push(await F({ content: d, filename: "", mimeType: "" }));
267
- for (const u of g) {
266
+ d.push(await F({ content: g, filename: "", mimeType: "" }));
267
+ for (const u of d) {
268
268
  const f = u.contentWindow;
269
269
  f.focus(), f.print();
270
270
  }
271
- setTimeout(() => g.forEach((u) => u.remove()), 1e3);
271
+ setTimeout(() => d.forEach((u) => u.remove()), 1e3);
272
272
  }
273
273
  ), t.add("presetPrintable:exp", async (a) => {
274
274
  await M("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"), await M("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");
275
- const { Devices: o, Canvas: r } = a, { sizeW: i, sizeH: l, sizeUnit: p } = o.getSelected().attributes, d = r.getFrameEl().contentDocument, g = "px", u = [D(i, p), D(l, p)], f = new window.jspdf.jsPDF({ unit: g, format: u }), y = d.body;
275
+ const { Devices: n, Canvas: r } = a, { sizeW: i, sizeH: l, sizeUnit: p } = n.getSelected().attributes, g = r.getFrameEl().contentDocument, d = "px", u = [D(i, p), D(l, p)], f = new window.jspdf.jsPDF({ unit: d, format: u }), y = g.body;
276
276
  f.html(y, { callback: (w) => w.save() });
277
277
  }), () => {
278
278
  delete e.Commands.commands[_.print];
279
279
  };
280
280
  }
281
- function ge(e, n) {
282
- const { blockPageBreak: t = {} } = n, { Components: s, Blocks: a } = e, o = "Page Break", r = `${ie}${A}`;
281
+ function de(e, o) {
282
+ const { blockPageBreak: t = {} } = o, { Components: s, Blocks: a } = e, n = "Page Break", r = `${ie}${A}`;
283
283
  return s.addType(A, {
284
284
  block: t && {
285
- label: o,
285
+ label: n,
286
286
  media: '<svg viewBox="0 0 24 24"><path d="M18 20H6v-2H4v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2h-2v2M14 2H6a2 2 0 0 0-2 2v8h2V4h8v4h4v4h2V8l-6-6m-3 14H8v-2h3v2m5 0h-3v-2h3v2M3 14h3v2H3v-2m18 2h-3v-2h3v2Z"/></svg>',
287
287
  category: "Extra",
288
288
  select: !0,
@@ -291,7 +291,7 @@ function ge(e, n) {
291
291
  isComponent: ae(A),
292
292
  model: {
293
293
  defaults: {
294
- name: o,
294
+ name: n,
295
295
  classes: r,
296
296
  attributes: { [q]: A },
297
297
  emptyState: !0,
@@ -306,12 +306,12 @@ function ge(e, n) {
306
306
  s.removeType(A), a.remove(A);
307
307
  };
308
308
  }
309
- const ue = "presetPrintable", he = B.free, fe = function(e, n = {}) {
309
+ const ue = "presetPrintable", he = B.free, fe = function(e, o = {}) {
310
310
  var U;
311
311
  const t = {
312
312
  selectedDevice: m.A4,
313
- ...n
314
- }, { Canvas: s, Devices: a, Blocks: o } = e, r = s.events, i = e.events, l = t.selectedDevice || a.getConfig().default, p = [
313
+ ...o
314
+ }, { Canvas: s, Devices: a, Blocks: n } = e, r = s.events, i = e.events, l = t.selectedDevice || a.getConfig().default, p = [
315
315
  { id: m.A5, name: "A5", width: 148, height: 210, unit: "mm" },
316
316
  { id: m.A5Portrait, name: "A5 Portrait", width: 210, height: 148, unit: "mm" },
317
317
  { id: m.A4, name: "A4", width: 210, height: 297, unit: "mm" },
@@ -321,10 +321,10 @@ const ue = "presetPrintable", he = B.free, fe = function(e, n = {}) {
321
321
  { id: m.letter, name: "Letter", width: 8.5, height: 11, unit: "in" },
322
322
  { id: m.legal, name: "Legal", width: 8.5, height: 14, unit: "in" },
323
323
  { id: m.ledger, name: "Ledger", width: 11, height: 17, unit: "in" }
324
- ], g = (((U = t.devices) == null ? void 0 : U.call(t, { items: p })) || p).map((v) => ce(v, t));
325
- a.devices.reset(g);
324
+ ], d = (((U = t.devices) == null ? void 0 : U.call(t, { items: p })) || p).map((v) => ce(v, t));
325
+ a.devices.reset(d);
326
326
  const u = l && a.get(l) || a.getAll().at(0);
327
- a.select(u), ["map", "video"].forEach((v) => o.remove(v));
327
+ a.select(u), ["map", "video"].forEach((v) => n.remove(v));
328
328
  const y = () => {
329
329
  const v = "page-rule", { rules: b } = e.Css, { width: E, height: P, minHeight: L } = a.getSelected().attributes, S = P && P !== "auto" ? P : L;
330
330
  (b.where({ id: v }).pop() || b.add(
@@ -380,14 +380,14 @@ const ue = "presetPrintable", he = B.free, fe = function(e, n = {}) {
380
380
  });
381
381
  }, h = [[i.projectLoad, c]];
382
382
  h.forEach(([v, b]) => e.on(v, b));
383
- const x = pe(e, t), k = de(e), R = ge(e, t);
383
+ const x = pe(e, t), k = ge(e), R = de(e, t);
384
384
  e.onReady(() => {
385
385
  e.UndoManager.clear();
386
386
  });
387
387
  const T = () => {
388
388
  h.forEach(([v, b]) => e.off(v, b)), x(), k(), R();
389
389
  };
390
- e.on(i.destroy, T), ne({
390
+ e.on(i.destroy, T), oe({
391
391
  editor: e,
392
392
  licenseKey: t.licenseKey,
393
393
  plan: he,
@@ -1,4 +1,4 @@
1
- (function(B,k){typeof exports=="object"&&typeof module<"u"?module.exports=k():typeof define=="function"&&define.amd?define(k):(B=typeof globalThis<"u"?globalThis:B||self,B.StudioSdkPlugins_presetPrintable=k())})(this,function(){"use strict";const B="app.grapesjs.com",k="app-stage.grapesjs.com",M=[B,k,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],V="license:check:start",Y="license:check:end",J=()=>typeof window<"u",O=(e,n={})=>{const t=Q(e)?{id:e,src:e}:e;return new Promise((s,a)=>{var l,p;const o=document.querySelector(`script[src="${t.src}"]`),{id:i}=t;if(o)return(l=n.onScript)==null||l.call(n,o),s(i);const r=document.createElement("script");r.src=t.src,r.onload=()=>s(i),r.onerror=()=>a(i),document.head.appendChild(r),(p=n.onScript)==null||p.call(n,r)})},X=({isDev:e,isStage:n})=>`${e?"":`https://${n?k:B}`}/api`,Z=()=>{const e=J()&&window.location.hostname;return!!e&&(M.includes(e)||M.some(n=>e.endsWith(n)))},Q=e=>typeof e=="string";async function ee({path:e,baseApiUrl:n,method:t="GET",headers:s={},params:a,body:o}){const r=`${n||X({isDev:!1,isStage:!1})}${e}`,l={method:t,headers:{"Content-Type":"application/json",...s}};o&&(l.body=JSON.stringify(o));const p=a?new URLSearchParams(a).toString():"",d=p?`?${p}`:"",g=await fetch(`${r}${d}`,l);if(!g.ok)throw new Error(`HTTP error! status: ${g.status}`);return g.json()}var R=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(R||{}),I=(e=>(e.toastAdd="studio:toastAdd",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.projectFiles="studio:projectFiles",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(I||{});const F={[R.free]:0,[R.startup]:10,[R.business]:20,[R.enterprise]:30};function te(e){const n=e;return n.init=t=>s=>e(s,t),n}const se=e=>te(e);async function ne({editor:e,plan:n,pluginName:t,licenseKey:s,cleanup:a}){let o="",i=!1;const r=Z(),l=d=>{console.warn("Cleanup plugin:",t,"Reason:",d),a()},p=(d={})=>{var w;const{error:g,sdkLicense:u}=d,f=(w=d.plan)==null?void 0:w.category;if(!(u||d.license)||g)l(g||"Invalid license");else if(f){const c=F[n],h=F[f];c>h&&l({pluginRequiredPlan:n,licensePlan:f})}};e.on(V,d=>{o=d==null?void 0:d.baseApiUrl,i=!0}),e.on(Y,d=>{p(d)}),setTimeout(async()=>{if(!i){if(r)return;if(s){const d=await oe({licenseKey:s,pluginName:t,baseApiUrl:o});d&&p(d)}else l("The `licenseKey` option not provided")}},2e3)}async function oe(e){const{licenseKey:n,pluginName:t,baseApiUrl:s}=e;try{return(await ee({baseApiUrl:s,path:`/sdk/${n||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(a){return console.error("Error during SDK license check:",a),!1}}const ae=e=>n=>{var t;return((t=n.getAttribute)==null?void 0:t.call(n,z))===e},ie=(...e)=>(n,t)=>e.some(s=>t.is(s)),N=(e,n,t)=>{const{doc:s=document}=t,a=t.target||s.head,o=a.querySelector(`style[${e}]`)||s.createElement("style");o.setAttribute(e,"true"),o.innerHTML=n,!a.contains(o)&&a.appendChild(o)},re="gjs-plg-",W="data-gs-plg-",z="data-type-role";function K(e,n,t){let s,a,o,i,r;const l=n===void 0?100:n;function p(){const g=Date.now()-i;g<l&&g>=0?s=setTimeout(p,l-g):(s=null,r=e.apply(o,a),o=a=null)}const d=function(){return o=this,a=arguments,i=Date.now(),s||(s=setTimeout(p,l)),r};return d.clear=function(){s&&(clearTimeout(s),s=null)},d.flush=function(){s&&(r=e.apply(o,a),o=a=null,clearTimeout(s),s=null)},d}const T="page-break";var m=(e=>(e.A5="a5",e.A5Portrait="a5-portrait",e.A4="a4",e.A3="a3",e.B5="b5",e.B4="b4",e.letter="letter",e.legal="legal",e.ledger="ledger",e))(m||{});function _(e,n){const s={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return s[n]?e*s[n]:null}const ce=(e,n)=>{const{name:t,id:s,width:a,height:o,unit:i}=e,{fixedHeight:r}=n,l=`${a}${i}`,p=`${o}${i}`;return{id:s||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${l} x ${p})`,sizeH:o,sizeW:a,sizeUnit:i,widthMedia:"",width:l,minHeight:r?"0":`${_(o,i)}px`,height:r?p:void 0}},D="page-breaks",x="gjs-page-breaks-spot",H=e=>e.type===D;function le(e){const{Devices:n}=e,{height:t,minHeight:s}=n.getSelected().attributes,o=parseFloat(`${t&&t!=="auto"?t:s}`),i=e.getWrapper(),r=i==null?void 0:i.getEl(),l=[];if(!i||!r)return l;const p=r.getBoundingClientRect().height,g=i.findType(T).map(f=>f.getEl()).filter(Boolean).map(f=>({top:f.offsetTop,height:f.offsetHeight}));let u=0;for(;u<p;){const f=g.find(y=>y.top>u&&y.top<u+o);f?(u=f.top+f.height,l.push(f.top)):(u+=o,u<p&&l.push(u))}return l}function pe(e,n){const{Canvas:t}=e,s=t.events,a=e.events;let o;const i=()=>{N(`${W}preset-printable-spots`,`.${x} {
1
+ (function(B,k){typeof exports=="object"&&typeof module<"u"?module.exports=k():typeof define=="function"&&define.amd?define(k):(B=typeof globalThis<"u"?globalThis:B||self,B.StudioSdkPlugins_presetPrintable=k())})(this,function(){"use strict";const B="app.grapesjs.com",k="app-stage.grapesjs.com",M=[B,k,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],V="license:check:start",Y="license:check:end",J=()=>typeof window<"u",O=(e,n={})=>{const t=Q(e)?{id:e,src:e}:e;return new Promise((s,a)=>{var l,p;const o=document.querySelector(`script[src="${t.src}"]`),{id:i}=t;if(o)return(l=n.onScript)==null||l.call(n,o),s(i);const r=document.createElement("script");r.src=t.src,r.onload=()=>s(i),r.onerror=()=>a(i),document.head.appendChild(r),(p=n.onScript)==null||p.call(n,r)})},X=({isDev:e,isStage:n})=>`${e?"":`https://${n?k:B}`}/api`,Z=()=>{const e=J()&&window.location.hostname;return!!e&&(M.includes(e)||M.some(n=>e.endsWith(n)))},Q=e=>typeof e=="string";async function ee({path:e,baseApiUrl:n,method:t="GET",headers:s={},params:a,body:o}){const r=`${n||X({isDev:!1,isStage:!1})}${e}`,l={method:t,headers:{"Content-Type":"application/json",...s}};o&&(l.body=JSON.stringify(o));const p=a?new URLSearchParams(a).toString():"",d=p?`?${p}`:"",g=await fetch(`${r}${d}`,l);if(!g.ok)throw new Error(`HTTP error! status: ${g.status}`);return g.json()}var R=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(R||{}),I=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.projectFiles="studio:projectFiles",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(I||{});const F={[R.free]:0,[R.startup]:10,[R.business]:20,[R.enterprise]:30};function te(e){const n=e;return n.init=t=>s=>e(s,t),n}const se=e=>te(e);async function ne({editor:e,plan:n,pluginName:t,licenseKey:s,cleanup:a}){let o="",i=!1;const r=Z(),l=d=>{console.warn("Cleanup plugin:",t,"Reason:",d),a()},p=(d={})=>{var w;const{error:g,sdkLicense:u}=d,f=(w=d.plan)==null?void 0:w.category;if(!(u||d.license)||g)l(g||"Invalid license");else if(f){const c=F[n],h=F[f];c>h&&l({pluginRequiredPlan:n,licensePlan:f})}};e.on(V,d=>{o=d==null?void 0:d.baseApiUrl,i=!0}),e.on(Y,d=>{p(d)}),setTimeout(async()=>{if(!i){if(r)return;if(s){const d=await oe({licenseKey:s,pluginName:t,baseApiUrl:o});d&&p(d)}else l("The `licenseKey` option not provided")}},2e3)}async function oe(e){const{licenseKey:n,pluginName:t,baseApiUrl:s}=e;try{return(await ee({baseApiUrl:s,path:`/sdk/${n||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(a){return console.error("Error during SDK license check:",a),!1}}const ae=e=>n=>{var t;return((t=n.getAttribute)==null?void 0:t.call(n,z))===e},ie=(...e)=>(n,t)=>e.some(s=>t.is(s)),N=(e,n,t)=>{const{doc:s=document}=t,a=t.target||s.head,o=a.querySelector(`style[${e}]`)||s.createElement("style");o.setAttribute(e,"true"),o.innerHTML=n,!a.contains(o)&&a.appendChild(o)},re="gjs-plg-",W="data-gs-plg-",z="data-type-role";function K(e,n,t){let s,a,o,i,r;const l=n===void 0?100:n;function p(){const g=Date.now()-i;g<l&&g>=0?s=setTimeout(p,l-g):(s=null,r=e.apply(o,a),o=a=null)}const d=function(){return o=this,a=arguments,i=Date.now(),s||(s=setTimeout(p,l)),r};return d.clear=function(){s&&(clearTimeout(s),s=null)},d.flush=function(){s&&(r=e.apply(o,a),o=a=null,clearTimeout(s),s=null)},d}const T="page-break";var m=(e=>(e.A5="a5",e.A5Portrait="a5-portrait",e.A4="a4",e.A3="a3",e.B5="b5",e.B4="b4",e.letter="letter",e.legal="legal",e.ledger="ledger",e))(m||{});function _(e,n){const s={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return s[n]?e*s[n]:null}const ce=(e,n)=>{const{name:t,id:s,width:a,height:o,unit:i}=e,{fixedHeight:r}=n,l=`${a}${i}`,p=`${o}${i}`;return{id:s||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${l} x ${p})`,sizeH:o,sizeW:a,sizeUnit:i,widthMedia:"",width:l,minHeight:r?"0":`${_(o,i)}px`,height:r?p:void 0}},D="page-breaks",x="gjs-page-breaks-spot",H=e=>e.type===D;function le(e){const{Devices:n}=e,{height:t,minHeight:s}=n.getSelected().attributes,o=parseFloat(`${t&&t!=="auto"?t:s}`),i=e.getWrapper(),r=i==null?void 0:i.getEl(),l=[];if(!i||!r)return l;const p=r.getBoundingClientRect().height,g=i.findType(T).map(f=>f.getEl()).filter(Boolean).map(f=>({top:f.offsetTop,height:f.offsetHeight}));let u=0;for(;u<p;){const f=g.find(y=>y.top>u&&y.top<u+o);f?(u=f.top+f.height,l.push(f.top)):(u+=o,u<p&&l.push(u))}return l}function pe(e,n){const{Canvas:t}=e,s=t.events,a=e.events;let o;const i=()=>{N(`${W}preset-printable-spots`,`.${x} {
2
2
  position: absolute;
3
3
  left: 0;
4
4
  width: 100%;