@grapesjs/studio-sdk-plugins 1.0.35 → 1.0.36

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 (88) hide show
  1. package/dist/accordionComponent/index.cjs.js +7 -7
  2. package/dist/accordionComponent/index.es.js +175 -162
  3. package/dist/accordionComponent/index.umd.js +7 -7
  4. package/dist/aiChat/index.cjs.js +64 -64
  5. package/dist/aiChat/index.es.js +5785 -5757
  6. package/dist/aiChat/index.js +64 -64
  7. package/dist/aiChat/index.umd.js +63 -63
  8. package/dist/animationComponent/index.cjs.js +3 -3
  9. package/dist/animationComponent/index.es.js +204 -191
  10. package/dist/animationComponent/index.umd.js +3 -3
  11. package/dist/canvasAbsoluteMode/index.cjs.js +1 -1
  12. package/dist/canvasAbsoluteMode/index.es.js +183 -170
  13. package/dist/canvasAbsoluteMode/index.umd.js +1 -1
  14. package/dist/canvasEmptyState/index.cjs.js +1 -1
  15. package/dist/canvasEmptyState/index.es.js +134 -121
  16. package/dist/canvasEmptyState/index.umd.js +1 -1
  17. package/dist/canvasFullSize/index.cjs.js +9 -9
  18. package/dist/canvasFullSize/index.es.js +165 -152
  19. package/dist/canvasFullSize/index.umd.js +9 -9
  20. package/dist/canvasGridMode/index.cjs.js +5 -5
  21. package/dist/canvasGridMode/index.es.js +245 -232
  22. package/dist/canvasGridMode/index.umd.js +4 -4
  23. package/dist/canvasScreenshot/index.cjs.js +1 -1
  24. package/dist/canvasScreenshot/index.es.js +155 -142
  25. package/dist/canvasScreenshot/index.umd.js +1 -1
  26. package/dist/dataSourceEjs/index.cjs.js +9 -9
  27. package/dist/dataSourceEjs/index.es.js +257 -244
  28. package/dist/dataSourceEjs/index.umd.js +9 -9
  29. package/dist/dataSourceHandlebars/index.cjs.js +8 -8
  30. package/dist/dataSourceHandlebars/index.es.js +216 -203
  31. package/dist/dataSourceHandlebars/index.umd.js +7 -7
  32. package/dist/dialogComponent/index.cjs.js +14 -14
  33. package/dist/dialogComponent/index.es.js +141 -128
  34. package/dist/dialogComponent/index.umd.js +14 -14
  35. package/dist/flexComponent/index.cjs.js +13 -13
  36. package/dist/flexComponent/index.es.js +484 -471
  37. package/dist/flexComponent/index.umd.js +13 -13
  38. package/dist/fsLightboxComponent/index.cjs.js +3 -3
  39. package/dist/fsLightboxComponent/index.es.js +173 -160
  40. package/dist/fsLightboxComponent/index.umd.js +3 -3
  41. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  42. package/dist/googleFontsAssetProvider/index.es.js +160 -147
  43. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  44. package/dist/iconifyComponent/index.cjs.js +2 -2
  45. package/dist/iconifyComponent/index.es.js +196 -183
  46. package/dist/iconifyComponent/index.umd.js +2 -2
  47. package/dist/index.cjs.js +25 -25
  48. package/dist/index.es.js +121 -108
  49. package/dist/index.umd.js +18 -18
  50. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  51. package/dist/layoutSidebarButtons/index.es.js +157 -144
  52. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  53. package/dist/lightGalleryComponent/index.cjs.js +1 -1
  54. package/dist/lightGalleryComponent/index.es.js +245 -232
  55. package/dist/lightGalleryComponent/index.umd.js +1 -1
  56. package/dist/linkImageComponent/index.cjs.js +2 -2
  57. package/dist/linkImageComponent/index.es.js +106 -93
  58. package/dist/linkImageComponent/index.umd.js +2 -2
  59. package/dist/listPagesComponent/index.cjs.js +5 -5
  60. package/dist/listPagesComponent/index.es.js +157 -144
  61. package/dist/listPagesComponent/index.umd.js +5 -5
  62. package/dist/presetPrintable/index.cjs.js +3 -3
  63. package/dist/presetPrintable/index.es.js +181 -168
  64. package/dist/presetPrintable/index.umd.js +3 -3
  65. package/dist/prosemirror/index.cjs.js +7 -7
  66. package/dist/prosemirror/index.es.js +385 -372
  67. package/dist/prosemirror/index.umd.js +8 -8
  68. package/dist/rendererReact/index.cjs.js +1 -1
  69. package/dist/rendererReact/index.es.js +200 -187
  70. package/dist/rendererReact/index.js +1 -1
  71. package/dist/rendererReact/index.umd.js +1 -1
  72. package/dist/rteTinyMce/index.cjs.js +2 -2
  73. package/dist/rteTinyMce/index.es.js +118 -105
  74. package/dist/rteTinyMce/index.umd.js +2 -2
  75. package/dist/shapeDividerComponent/index.cjs.js +4 -4
  76. package/dist/shapeDividerComponent/index.es.js +129 -116
  77. package/dist/shapeDividerComponent/index.umd.js +4 -4
  78. package/dist/swiperComponent/index.cjs.js +9 -9
  79. package/dist/swiperComponent/index.es.js +203 -190
  80. package/dist/swiperComponent/index.umd.js +7 -7
  81. package/dist/tableComponent/index.cjs.js +1 -1
  82. package/dist/tableComponent/index.es.js +257 -244
  83. package/dist/tableComponent/index.umd.js +1 -1
  84. package/dist/types.d.ts +1 -1
  85. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  86. package/dist/youtubeAssetProvider/index.es.js +121 -108
  87. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  88. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
- const D = "app.grapesjs.com", C = "app-stage.grapesjs.com", S = "app2.grapesjs.com", x = "app-stage2.grapesjs.com", v = [
2
- D,
3
- S,
4
- C,
5
- x,
1
+ const B = "app.grapesjs.com", O = "app-stage.grapesjs.com", $ = "app2.grapesjs.com", N = "app-stage2.grapesjs.com", G = [
2
+ B,
3
+ $,
4
+ O,
5
+ N,
6
6
  "localhost",
7
7
  "127.0.0.1",
8
8
  ".local-credentialless.webcontainer.io",
@@ -11,151 +11,164 @@ const D = "app.grapesjs.com", C = "app-stage.grapesjs.com", S = "app2.grapesjs.c
11
11
  // For stackblitz.com demos
12
12
  "-sandpack.codesandbox.io"
13
13
  // For Sandpack demos
14
- ], O = "license:check:start", U = "license:check:end", k = () => typeof window < "u", W = ({
15
- isDev: t,
14
+ ], _ = "license:check:end", U = () => typeof window < "u", F = ({
15
+ isDev: e,
16
16
  isStage: s,
17
- isPlatform: i
18
- }) => `${t ? "" : `https://${s ? C : D}`}/${i ? "platform-api" : "api"}`, j = () => {
19
- const t = k() && window.location.hostname;
20
- return !!t && (v.includes(t) || v.some((s) => t.endsWith(s)));
17
+ isPlatform: a
18
+ }) => `${e ? "" : `https://${s ? O : B}`}/${a ? "platform-api" : "api"}`, j = () => {
19
+ const e = U() && window.location.hostname;
20
+ return !!e && (G.includes(e) || G.some((s) => e.endsWith(s)));
21
21
  };
22
- async function B({
23
- path: t,
22
+ async function W({
23
+ path: e,
24
24
  baseApiUrl: s,
25
- method: i = "GET",
26
- headers: e = {},
27
- params: o,
28
- body: a
25
+ method: a = "GET",
26
+ headers: t = {},
27
+ params: n,
28
+ body: r
29
29
  }) {
30
- const c = `${s || W({ isDev: !1, isStage: !1 })}${t}`, u = {
31
- method: i,
30
+ const i = `${s || F({ isDev: !1, isStage: !1 })}${e}`, l = {
31
+ method: a,
32
32
  headers: {
33
33
  "Content-Type": "application/json",
34
- ...e
34
+ ...t
35
35
  }
36
36
  };
37
- a && (u.body = JSON.stringify(a));
38
- const r = o ? new URLSearchParams(o).toString() : "", p = r ? `?${r}` : "", n = await fetch(`${c}${p}`, u);
39
- if (!n.ok)
40
- throw new Error(`HTTP error! status: ${n.status}`);
41
- return n.json();
37
+ r && (l.body = JSON.stringify(r));
38
+ const p = n ? new URLSearchParams(n).toString() : "", c = p ? `?${p}` : "", o = await fetch(`${i}${c}`, l);
39
+ if (!o.ok)
40
+ throw new Error(`HTTP error! status: ${o.status}`);
41
+ return o.json();
42
42
  }
43
- var y = /* @__PURE__ */ ((t) => (t.free = "free", t.startup = "startup", t.business = "business", t.enterprise = "enterprise", t))(y || {});
44
- const _ = {
45
- [y.free]: 0,
46
- [y.startup]: 10,
47
- [y.business]: 20,
48
- [y.enterprise]: 30
43
+ var b = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(b || {}), E = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", e.dialogOpen = "studio:dialogOpen", e.dialogClose = "studio:dialogClose", e.dialogExportCode = "studio:dialogExportCode", e.dialogImportCode = "studio:dialogImportCode", 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.clearPage = "studio:clearPage", e.projectFiles = "studio:projectFiles", e.validateCode = "studio:validateCode", 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.layoutComponentAdd = "studio:layoutComponentAdd", e.layoutComponentGet = "studio:layoutComponentGet", e.layoutComponentRemove = "studio:layoutComponentRemove", e.layoutComponentRender = "studio:layoutComponentRender", e.getStateTheme = "studio:getStateTheme", e.setStateTheme = "studio:setStateTheme", e.settings = "studio:settings", 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))(E || {});
44
+ const V = {
45
+ [b.free]: 0,
46
+ [b.startup]: 10,
47
+ [b.business]: 20,
48
+ [b.enterprise]: 30
49
49
  };
50
- function K(t) {
51
- const s = t;
52
- return s.init = (i) => (e) => t(e, i), s;
50
+ function K(e) {
51
+ const s = e;
52
+ return s.init = (a) => (t) => e(t, a), s;
53
53
  }
54
- const G = (t) => /* @__PURE__ */ K(t);
55
- async function F({
56
- editor: t,
54
+ const m = (e) => /* @__PURE__ */ K(e);
55
+ async function q({
56
+ editor: e,
57
57
  plan: s,
58
- pluginName: i,
59
- licenseKey: e,
60
- onLicenseCheckResponse: o,
61
- cleanup: a
58
+ pluginName: a,
59
+ licenseKey: t,
60
+ onLicenseCheckResponse: n,
61
+ cleanup: r
62
62
  }) {
63
- let l = "", c = !1;
64
- const u = j(), r = (n) => {
65
- console.warn("Cleanup plugin:", i, "Reason:", n), a();
66
- }, p = (n = {}) => {
67
- var P;
68
- const { error: h, sdkLicense: A } = n, m = (P = n.plan) == null ? void 0 : P.category;
69
- if (!(A || n.license) || h)
70
- r(h || "Invalid license");
71
- else if (m) {
72
- const b = _[s], H = _[m];
73
- b > H && r({ pluginRequiredPlan: s, licensePlan: m });
63
+ let g = "", i;
64
+ const l = (o) => {
65
+ console.warn("Cleanup plugin:", a, "Reason:", o), r();
66
+ }, p = (o = {}) => {
67
+ var h;
68
+ const { error: P, sdkLicense: L } = o, u = (h = o.plan) == null ? void 0 : h.category;
69
+ if (!(L || o.license) || P)
70
+ l(P || "Invalid license");
71
+ else if (u) {
72
+ const T = V[s], I = V[u];
73
+ T > I && l({ pluginRequiredPlan: s, licensePlan: u });
74
74
  }
75
75
  };
76
- t.on(O, (n) => {
77
- l = n == null ? void 0 : n.baseApiUrl, c = !0;
78
- }), t.on(U, (n) => {
79
- o == null || o(n), p(n);
80
- }), setTimeout(async () => {
81
- if (!c) {
82
- if (u) return;
83
- if (e) {
84
- const n = await R({ licenseKey: e, pluginName: i, baseApiUrl: l });
85
- o == null || o(n), n && p(n);
86
- } else
87
- r("The `licenseKey` option not provided");
88
- }
89
- }, 2e3);
76
+ e.Commands.has(E.settings) && (i = e.runCommand(E.settings), g = (i == null ? void 0 : i.baseUrl) || "");
77
+ const c = (o) => {
78
+ n == null || n(o), o && p(o);
79
+ };
80
+ if (!i) {
81
+ e.onReady(async () => {
82
+ if (!j())
83
+ if (t) {
84
+ const o = await Y({ licenseKey: t, pluginName: a, baseApiUrl: g });
85
+ c(o);
86
+ } else
87
+ l("The `licenseKey` option not provided");
88
+ });
89
+ return;
90
+ }
91
+ if (i.licensePlan || i.licenseError) {
92
+ const o = X(i);
93
+ c(o);
94
+ return;
95
+ }
96
+ e.on(_, (o) => c(o));
90
97
  }
91
- async function R(t) {
92
- const { licenseKey: s, pluginName: i, baseApiUrl: e } = t;
98
+ const X = (e) => ({
99
+ sdkLicense: e.license,
100
+ license: e.license,
101
+ error: e.licenseError,
102
+ plan: e.licensePlan
103
+ });
104
+ async function Y(e) {
105
+ const { licenseKey: s, pluginName: a, baseApiUrl: t } = e;
93
106
  try {
94
- return (await B({
95
- baseApiUrl: e,
107
+ return (await W({
108
+ baseApiUrl: t,
96
109
  path: `/sdk/${s || "na"}`,
97
110
  method: "POST",
98
111
  params: {
99
112
  d: window.location.hostname,
100
- pn: i
113
+ pn: a
101
114
  }
102
115
  })).result || {};
103
- } catch (o) {
104
- return console.error("Error during SDK license check:", o), !1;
116
+ } catch (n) {
117
+ return console.error("Error during SDK license check:", n), !1;
105
118
  }
106
119
  }
107
- const N = "gjs-plg-", q = "listPagesComponent", X = y.startup;
108
- function Y(t, s, i) {
109
- let e, o, a, l, c;
110
- const u = s;
111
- function r() {
112
- const n = Date.now() - l;
113
- n < u && n >= 0 ? e = setTimeout(r, u - n) : (e = null, c = t.apply(a, o), a = o = null);
120
+ const x = "gjs-plg-", Z = "listPagesComponent", J = b.startup;
121
+ function z(e, s, a) {
122
+ let t, n, r, g, i;
123
+ const l = s;
124
+ function p() {
125
+ const o = Date.now() - g;
126
+ o < l && o >= 0 ? t = setTimeout(p, l - o) : (t = null, i = e.apply(r, n), r = n = null);
114
127
  }
115
- const p = function() {
116
- return a = this, o = arguments, l = Date.now(), e || (e = setTimeout(r, u)), c;
128
+ const c = function() {
129
+ return r = this, n = arguments, g = Date.now(), t || (t = setTimeout(p, l)), i;
117
130
  };
118
- return p.clear = function() {
119
- e && (clearTimeout(e), e = null);
120
- }, p.flush = function() {
121
- e && (c = t.apply(a, o), a = o = null, clearTimeout(e), e = null);
122
- }, p;
131
+ return c.clear = function() {
132
+ t && (clearTimeout(t), t = null);
133
+ }, c.flush = function() {
134
+ t && (i = e.apply(r, n), r = n = null, clearTimeout(t), t = null);
135
+ }, c;
123
136
  }
124
- const $ = "page://", g = "list-pages", f = "list-pages-item", d = "list-pages-link", Z = (t) => t.components().reduce(
125
- (s, i) => {
126
- var l;
127
- const e = i.findFirstType(d), o = (l = e == null ? void 0 : e.attributes.attributes) == null ? void 0 : l.href, a = o != null && o.startsWith($) ? o.replace($, "") : "";
128
- if (a && e) {
129
- const c = s[a];
130
- c ? c.push(e) : s[a] = [e];
137
+ const k = "page://", d = "list-pages", f = "list-pages-item", y = "list-pages-link", Q = (e) => e.components().reduce(
138
+ (s, a) => {
139
+ var g;
140
+ const t = a.findFirstType(y), n = (g = t == null ? void 0 : t.attributes.attributes) == null ? void 0 : g.href, r = n != null && n.startsWith(k) ? n.replace(k, "") : "";
141
+ if (r && t) {
142
+ const i = s[r];
143
+ i ? i.push(t) : s[r] = [t];
131
144
  }
132
145
  return s;
133
146
  },
134
147
  {}
135
- ), I = "data-type-role", J = "page_root", z = (t) => (s) => s.is(t), Q = (t) => (s, i) => i.is(t), w = (t) => (s) => {
136
- var i;
137
- return ((i = s.getAttribute) == null ? void 0 : i.call(s, I)) === t;
138
- }, tt = function(t, s = {}) {
139
- const { Blocks: i, Components: e, Pages: o } = t, { licenseKey: a, block: l = {} } = s, c = "List Pages", u = "List Pages Item", r = "Link", p = `${N}${g}`, n = `${N}${d}`, h = '<svg viewBox="0 0 24 24"><path d="M11 15H17V17H11V15M9 7H7V9H9V7M11 13H17V11H11V13M11 9H17V7H11V9M9 11H7V13H9V11M21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5M19 5H5V19H19V5M9 15H7V17H9V15Z"/></svg>', A = '<svg viewBox="0 0 24 24"><path d="M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z" /></svg>';
140
- e.addType(g, {
141
- block: l && {
142
- label: c,
143
- media: h,
148
+ ), A = "data-type-role", S = "page_root", C = (e) => (s) => s.is(e), ee = (e) => (s, a) => a.is(e), M = (e) => (s) => {
149
+ var a;
150
+ return ((a = s.getAttribute) == null ? void 0 : a.call(s, A)) === e;
151
+ }, te = function(e, s = {}) {
152
+ const { Blocks: a, Components: t, Pages: n } = e, { licenseKey: r, block: g = {} } = s, i = "List Pages", l = "List Pages Item", p = "Link", c = `${x}${d}`, o = `${x}${y}`, P = '<svg viewBox="0 0 24 24"><path d="M11 15H17V17H11V15M9 7H7V9H9V7M11 13H17V11H11V13M11 9H17V7H11V9M9 11H7V13H9V11M21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5M19 5H5V19H19V5M9 15H7V17H9V15Z"/></svg>', L = '<svg viewBox="0 0 24 24"><path d="M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z" /></svg>';
153
+ t.addType(d, {
154
+ block: g && {
155
+ label: i,
156
+ media: P,
144
157
  category: "Extra",
145
158
  select: !0,
146
159
  ...s.block
147
160
  },
148
- isComponent: w(g),
161
+ isComponent: M(d),
149
162
  model: {
150
163
  defaults: {
151
164
  tagName: "ul",
152
- name: c,
153
- [J]: "",
154
- classes: p,
155
- attributes: { [I]: g, role: "navigation" },
156
- droppable: z(f),
165
+ name: i,
166
+ [S]: "",
167
+ classes: c,
168
+ attributes: { [A]: d, role: "navigation" },
169
+ droppable: C(f),
157
170
  styles: `
158
- .${p} {
171
+ .${c} {
159
172
  list-style: none;
160
173
  margin: 0;
161
174
  padding: 0;
@@ -163,74 +176,74 @@ const $ = "page://", g = "list-pages", f = "list-pages-item", d = "list-pages-li
163
176
  `
164
177
  },
165
178
  init() {
166
- this.syncPageItems = Y(this.syncPageItems.bind(this), 0), this.listenTo(this.em, o.events.all, this.syncPageItems), this.syncPageItems();
179
+ this.syncPageItems = z(this.syncPageItems.bind(this), 0), this.listenTo(this.em, n.events.all, this.syncPageItems), this.syncPageItems();
167
180
  },
168
181
  syncPageItems() {
169
- if (t.Components.getSymbolInfo(this).isInstance) return;
170
- const m = this.em.Pages.getAll(), E = this.components(), P = Z(this);
171
- m.forEach((b, H) => {
172
- const V = b.id, L = b.getName(), T = P[V];
173
- T ? T == null || T.forEach((M) => {
174
- M.getInnerHTML() !== L && M.components(L);
175
- }) : E.add(
182
+ if (e.Components.getSymbolInfo(this).isInstance) return;
183
+ const u = this.em.Pages.getAll(), H = this.components(), h = Q(this);
184
+ u.forEach((T, I) => {
185
+ const D = T.id, R = T.getName(), v = h[D];
186
+ v ? v == null || v.forEach((w) => {
187
+ w.getInnerHTML() !== R && w.components(R);
188
+ }) : H.add(
176
189
  {
177
190
  type: f,
178
191
  components: [
179
192
  {
180
- type: d,
181
- attributes: { href: `page://${V}` },
182
- components: { type: "textnode", content: L }
193
+ type: y,
194
+ attributes: { href: `page://${D}` },
195
+ components: { type: "textnode", content: R }
183
196
  }
184
197
  ]
185
198
  },
186
- { at: H }
199
+ { at: I }
187
200
  );
188
201
  });
189
202
  }
190
203
  }
191
- }), e.addType(f, {
192
- isComponent: w(f),
204
+ }), t.addType(f, {
205
+ isComponent: M(f),
193
206
  model: {
194
207
  defaults: {
195
- name: u,
208
+ name: l,
196
209
  tagName: "li",
197
- icon: A,
198
- attributes: { [I]: f },
199
- components: { type: d },
200
- draggable: Q(g)
210
+ icon: L,
211
+ attributes: { [A]: f },
212
+ components: { type: y },
213
+ draggable: ee(d)
201
214
  }
202
215
  }
203
- }), e.addType(d, {
216
+ }), t.addType(y, {
204
217
  extend: "link",
205
- isComponent: w(d),
218
+ isComponent: M(y),
206
219
  model: {
207
220
  defaults: {
208
221
  removable: !1,
209
222
  copyable: !1,
210
223
  delegate: {
211
- move: (m) => m.closestType(f)
224
+ move: (u) => u.closestType(f)
212
225
  },
213
- name: r,
214
- classes: n,
215
- attributes: { [I]: d },
226
+ name: p,
227
+ classes: o,
228
+ attributes: { [A]: y },
216
229
  components: { type: "textnode", content: "Item" },
217
230
  styles: `
218
- .${n} {
231
+ .${o} {
219
232
  text-decoration: none;
220
233
  }
221
234
  `
222
235
  }
223
236
  }
224
- }), F({
225
- editor: t,
226
- licenseKey: a,
227
- plan: X,
228
- pluginName: q,
237
+ }), q({
238
+ editor: e,
239
+ licenseKey: r,
240
+ plan: J,
241
+ pluginName: Z,
229
242
  cleanup: () => {
230
- i.remove(g), e.removeType(g);
243
+ a.remove(d), t.removeType(d);
231
244
  }
232
245
  });
233
- }, et = G(tt);
246
+ }, se = m(te);
234
247
  export {
235
- et as default
248
+ se as default
236
249
  };
@@ -1,11 +1,11 @@
1
- (function(f,y){typeof exports=="object"&&typeof module<"u"?module.exports=y():typeof define=="function"&&define.amd?define(y):(f=typeof globalThis<"u"?globalThis:f||self,f.StudioSdkPlugins_listPagesComponent=y())})(this,function(){"use strict";const f="app.grapesjs.com",y="app-stage.grapesjs.com",V=[f,"app2.grapesjs.com",y,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],O="license:check:start",x="license:check:end",C=()=>typeof window<"u",U=({isDev:t,isStage:s,isPlatform:i})=>`${t?"":`https://${s?y:f}`}/${i?"platform-api":"api"}`,k=()=>{const t=C()&&window.location.hostname;return!!t&&(V.includes(t)||V.some(s=>t.endsWith(s)))};async function W({path:t,baseApiUrl:s,method:i="GET",headers:e={},params:o,body:a}){const c=`${s||U({isDev:!1,isStage:!1})}${t}`,u={method:i,headers:{"Content-Type":"application/json",...e}};a&&(u.body=JSON.stringify(a));const r=o?new URLSearchParams(o).toString():"",p=r?`?${r}`:"",n=await fetch(`${c}${p}`,u);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return n.json()}var h=(t=>(t.free="free",t.startup="startup",t.business="business",t.enterprise="enterprise",t))(h||{});const _={[h.free]:0,[h.startup]:10,[h.business]:20,[h.enterprise]:30};function j(t){const s=t;return s.init=i=>e=>t(e,i),s}const B=t=>j(t);async function G({editor:t,plan:s,pluginName:i,licenseKey:e,onLicenseCheckResponse:o,cleanup:a}){let l="",c=!1;const u=k(),r=n=>{console.warn("Cleanup plugin:",i,"Reason:",n),a()},p=(n={})=>{var A;const{error:T,sdkLicense:E}=n,g=(A=n.plan)==null?void 0:A.category;if(!(E||n.license)||T)r(T||"Invalid license");else if(g){const I=_[s],w=_[g];I>w&&r({pluginRequiredPlan:s,licensePlan:g})}};t.on(O,n=>{l=n==null?void 0:n.baseApiUrl,c=!0}),t.on(x,n=>{o==null||o(n),p(n)}),setTimeout(async()=>{if(!c){if(u)return;if(e){const n=await K({licenseKey:e,pluginName:i,baseApiUrl:l});o==null||o(n),n&&p(n)}else r("The `licenseKey` option not provided")}},2e3)}async function K(t){const{licenseKey:s,pluginName:i,baseApiUrl:e}=t;try{return(await W({baseApiUrl:e,path:`/sdk/${s||"na"}`,method:"POST",params:{d:window.location.hostname,pn:i}})).result||{}}catch(o){return console.error("Error during SDK license check:",o),!1}}const v="gjs-plg-",F="listPagesComponent",R=h.startup;function q(t,s,i){let e,o,a,l,c;const u=s;function r(){const n=Date.now()-l;n<u&&n>=0?e=setTimeout(r,u-n):(e=null,c=t.apply(a,o),a=o=null)}const p=function(){return a=this,o=arguments,l=Date.now(),e||(e=setTimeout(r,u)),c};return p.clear=function(){e&&(clearTimeout(e),e=null)},p.flush=function(){e&&(c=t.apply(a,o),a=o=null,clearTimeout(e),e=null)},p}const N="page://",m="list-pages",P="list-pages-item",d="list-pages-link",X=t=>t.components().reduce((s,i)=>{var l;const e=i.findFirstType(d),o=(l=e==null?void 0:e.attributes.attributes)==null?void 0:l.href,a=o!=null&&o.startsWith(N)?o.replace(N,""):"";if(a&&e){const c=s[a];c?c.push(e):s[a]=[e]}return s},{}),b="data-type-role",Y="page_root",Z=t=>s=>s.is(t),J=t=>(s,i)=>i.is(t),L=t=>s=>{var i;return((i=s.getAttribute)==null?void 0:i.call(s,b))===t};return B(function(t,s={}){const{Blocks:i,Components:e,Pages:o}=t,{licenseKey:a,block:l={}}=s,c="List Pages",u="List Pages Item",r="Link",p=`${v}${m}`,n=`${v}${d}`,T='<svg viewBox="0 0 24 24"><path d="M11 15H17V17H11V15M9 7H7V9H9V7M11 13H17V11H11V13M11 9H17V7H11V9M9 11H7V13H9V11M21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5M19 5H5V19H19V5M9 15H7V17H9V15Z"/></svg>',E='<svg viewBox="0 0 24 24"><path d="M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z" /></svg>';e.addType(m,{block:l&&{label:c,media:T,category:"Extra",select:!0,...s.block},isComponent:L(m),model:{defaults:{tagName:"ul",name:c,[Y]:"",classes:p,attributes:{[b]:m,role:"navigation"},droppable:Z(P),styles:`
2
- .${p} {
1
+ (function(y,b){typeof exports=="object"&&typeof module<"u"?module.exports=b():typeof define=="function"&&define.amd?define(b):(y=typeof globalThis<"u"?globalThis:y||self,y.StudioSdkPlugins_listPagesComponent=b())})(this,function(){"use strict";const y="app.grapesjs.com",b="app-stage.grapesjs.com",x=[y,"app2.grapesjs.com",b,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],N="license:check:end",B=()=>typeof window<"u",$=({isDev:e,isStage:s,isPlatform:i})=>`${e?"":`https://${s?b:y}`}/${i?"platform-api":"api"}`,U=()=>{const e=B()&&window.location.hostname;return!!e&&(x.includes(e)||x.some(s=>e.endsWith(s)))};async function j({path:e,baseApiUrl:s,method:i="GET",headers:t={},params:n,body:r}){const a=`${s||$({isDev:!1,isStage:!1})}${e}`,l={method:i,headers:{"Content-Type":"application/json",...t}};r&&(l.body=JSON.stringify(r));const p=n?new URLSearchParams(n).toString():"",c=p?`?${p}`:"",o=await fetch(`${a}${c}`,l);if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);return o.json()}var P=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(P||{}),R=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.dialogImportCode="studio:dialogImportCode",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.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",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.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.settings="studio:settings",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))(R||{});const G={[P.free]:0,[P.startup]:10,[P.business]:20,[P.enterprise]:30};function F(e){const s=e;return s.init=i=>t=>e(t,i),s}const W=e=>F(e);async function m({editor:e,plan:s,pluginName:i,licenseKey:t,onLicenseCheckResponse:n,cleanup:r}){let g="",a;const l=o=>{console.warn("Cleanup plugin:",i,"Reason:",o),r()},p=(o={})=>{var v;const{error:A,sdkLicense:D}=o,f=(v=o.plan)==null?void 0:v.category;if(!(D||o.license)||A)l(A||"Invalid license");else if(f){const L=G[s],E=G[f];L>E&&l({pluginRequiredPlan:s,licensePlan:f})}};e.Commands.has(R.settings)&&(a=e.runCommand(R.settings),g=(a==null?void 0:a.baseUrl)||"");const c=o=>{n==null||n(o),o&&p(o)};if(!a){e.onReady(async()=>{if(!U())if(t){const o=await q({licenseKey:t,pluginName:i,baseApiUrl:g});c(o)}else l("The `licenseKey` option not provided")});return}if(a.licensePlan||a.licenseError){const o=K(a);c(o);return}e.on(N,o=>c(o))}const K=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function q(e){const{licenseKey:s,pluginName:i,baseApiUrl:t}=e;try{return(await j({baseApiUrl:t,path:`/sdk/${s||"na"}`,method:"POST",params:{d:window.location.hostname,pn:i}})).result||{}}catch(n){return console.error("Error during SDK license check:",n),!1}}const w="gjs-plg-",X="listPagesComponent",Y=P.startup;function Z(e,s,i){let t,n,r,g,a;const l=s;function p(){const o=Date.now()-g;o<l&&o>=0?t=setTimeout(p,l-o):(t=null,a=e.apply(r,n),r=n=null)}const c=function(){return r=this,n=arguments,g=Date.now(),t||(t=setTimeout(p,l)),a};return c.clear=function(){t&&(clearTimeout(t),t=null)},c.flush=function(){t&&(a=e.apply(r,n),r=n=null,clearTimeout(t),t=null)},c}const V="page://",u="list-pages",h="list-pages-item",d="list-pages-link",J=e=>e.components().reduce((s,i)=>{var g;const t=i.findFirstType(d),n=(g=t==null?void 0:t.attributes.attributes)==null?void 0:g.href,r=n!=null&&n.startsWith(V)?n.replace(V,""):"";if(r&&t){const a=s[r];a?a.push(t):s[r]=[t]}return s},{}),T="data-type-role",z="page_root",Q=e=>s=>s.is(e),S=e=>(s,i)=>i.is(e),M=e=>s=>{var i;return((i=s.getAttribute)==null?void 0:i.call(s,T))===e};return W(function(e,s={}){const{Blocks:i,Components:t,Pages:n}=e,{licenseKey:r,block:g={}}=s,a="List Pages",l="List Pages Item",p="Link",c=`${w}${u}`,o=`${w}${d}`,A='<svg viewBox="0 0 24 24"><path d="M11 15H17V17H11V15M9 7H7V9H9V7M11 13H17V11H11V13M11 9H17V7H11V9M9 11H7V13H9V11M21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5M19 5H5V19H19V5M9 15H7V17H9V15Z"/></svg>',D='<svg viewBox="0 0 24 24"><path d="M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z" /></svg>';t.addType(u,{block:g&&{label:a,media:A,category:"Extra",select:!0,...s.block},isComponent:M(u),model:{defaults:{tagName:"ul",name:a,[z]:"",classes:c,attributes:{[T]:u,role:"navigation"},droppable:Q(h),styles:`
2
+ .${c} {
3
3
  list-style: none;
4
4
  margin: 0;
5
5
  padding: 0;
6
6
  }
7
- `},init(){this.syncPageItems=q(this.syncPageItems.bind(this),0),this.listenTo(this.em,o.events.all,this.syncPageItems),this.syncPageItems()},syncPageItems(){if(t.Components.getSymbolInfo(this).isInstance)return;const g=this.em.Pages.getAll(),$=this.components(),A=X(this);g.forEach((I,w)=>{const D=I.id,M=I.getName(),H=A[D];H?H==null||H.forEach(S=>{S.getInnerHTML()!==M&&S.components(M)}):$.add({type:P,components:[{type:d,attributes:{href:`page://${D}`},components:{type:"textnode",content:M}}]},{at:w})})}}}),e.addType(P,{isComponent:L(P),model:{defaults:{name:u,tagName:"li",icon:E,attributes:{[b]:P},components:{type:d},draggable:J(m)}}}),e.addType(d,{extend:"link",isComponent:L(d),model:{defaults:{removable:!1,copyable:!1,delegate:{move:g=>g.closestType(P)},name:r,classes:n,attributes:{[b]:d},components:{type:"textnode",content:"Item"},styles:`
8
- .${n} {
7
+ `},init(){this.syncPageItems=Z(this.syncPageItems.bind(this),0),this.listenTo(this.em,n.events.all,this.syncPageItems),this.syncPageItems()},syncPageItems(){if(e.Components.getSymbolInfo(this).isInstance)return;const f=this.em.Pages.getAll(),O=this.components(),v=J(this);f.forEach((L,E)=>{const _=L.id,H=L.getName(),I=v[_];I?I==null||I.forEach(k=>{k.getInnerHTML()!==H&&k.components(H)}):O.add({type:h,components:[{type:d,attributes:{href:`page://${_}`},components:{type:"textnode",content:H}}]},{at:E})})}}}),t.addType(h,{isComponent:M(h),model:{defaults:{name:l,tagName:"li",icon:D,attributes:{[T]:h},components:{type:d},draggable:S(u)}}}),t.addType(d,{extend:"link",isComponent:M(d),model:{defaults:{removable:!1,copyable:!1,delegate:{move:f=>f.closestType(h)},name:p,classes:o,attributes:{[T]:d},components:{type:"textnode",content:"Item"},styles:`
8
+ .${o} {
9
9
  text-decoration: none;
10
10
  }
11
- `}}}),G({editor:t,licenseKey:a,plan:R,pluginName:F,cleanup:()=>{i.remove(m),e.removeType(m)}})})});
11
+ `}}}),m({editor:e,licenseKey:r,plan:Y,pluginName:X,cleanup:()=>{i.remove(u),t.removeType(u)}})})});
@@ -1,4 +1,4 @@
1
- "use strict";const W="app.grapesjs.com",z="app-stage.grapesjs.com",X="app2.grapesjs.com",Z="app-stage2.grapesjs.com",U=[W,X,z,Z,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],Q="license:check:start",ee="license:check:end",te=()=>typeof window<"u",I=(e,s={})=>{const t=ne(e)?{id:e,src:e}:e;return new Promise((o,n)=>{var p,u;const{loadedScripts:r}=s,{id:i,src:l}=t,d=document.querySelector(`script[src="${l}"]`);if(d){if((p=s.onScript)==null||p.call(s,d),r&&!r.get(l)){d.addEventListener("load",()=>o(i)),d.addEventListener("error",()=>n(i));return}return o(i)}const g=window.define;window.define=void 0;const f=()=>{r==null||r.set(l,!0),window.define=g},a=document.createElement("script");a.src=l,a.onload=()=>{o(i),f()},a.onerror=()=>{n(i),f()},document.head.appendChild(a),(u=s.onScript)==null||u.call(s,a)})},oe=({isDev:e,isStage:s,isPlatform:t})=>`${e?"":`https://${s?z:W}`}/${t?"platform-api":"api"}`,se=()=>{const e=te()&&window.location.hostname;return!!e&&(U.includes(e)||U.some(s=>e.endsWith(s)))},ne=e=>typeof e=="string";async function ae({path:e,baseApiUrl:s,method:t="GET",headers:o={},params:n,body:r}){const l=`${s||oe({isDev:!1,isStage:!1})}${e}`,d={method:t,headers:{"Content-Type":"application/json",...o}};r&&(d.body=JSON.stringify(r));const g=n?new URLSearchParams(n).toString():"",f=g?`?${g}`:"",a=await fetch(`${l}${f}`,d);if(!a.ok)throw new Error(`HTTP error! status: ${a.status}`);return a.json()}var $=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))($||{}),K=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.dialogImportCode="studio:dialogImportCode",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.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",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.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",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))(K||{});const O={[$.free]:0,[$.startup]:10,[$.business]:20,[$.enterprise]:30};function re(e){const s=e;return s.init=t=>o=>e(o,t),s}const ie=e=>re(e);async function ce({editor:e,plan:s,pluginName:t,licenseKey:o,onLicenseCheckResponse:n,cleanup:r}){let i="",l=!1;const d=se(),g=a=>{console.warn("Cleanup plugin:",t,"Reason:",a),r()},f=(a={})=>{var c;const{error:p,sdkLicense:u}=a,m=(c=a.plan)==null?void 0:c.category;if(!(u||a.license)||p)g(p||"Invalid license");else if(m){const h=O[s],k=O[m];h>k&&g({pluginRequiredPlan:s,licensePlan:m})}};e.on(Q,a=>{i=a==null?void 0:a.baseApiUrl,l=!0}),e.on(ee,a=>{n==null||n(a),f(a)}),setTimeout(async()=>{if(!l){if(d)return;if(o){const a=await le({licenseKey:o,pluginName:t,baseApiUrl:i});n==null||n(a),a&&f(a)}else g("The `licenseKey` option not provided")}},2e3)}async function le(e){const{licenseKey:s,pluginName:t,baseApiUrl:o}=e;try{return(await ae({baseApiUrl:o,path:`/sdk/${s||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(n){return console.error("Error during SDK license check:",n),!1}}const de=e=>s=>{var t;return((t=s.getAttribute)==null?void 0:t.call(s,V))===e},pe=(...e)=>(s,t)=>e.some(o=>t.is(o)),C=(e,s,t)=>{const{doc:o=document}=t,n=t.target||o.head,r=n.querySelector(`style[${e}]`)||o.createElement("style");r.setAttribute(e,"true"),r.innerHTML=s,!n.contains(r)&&n.appendChild(r)},ge="gjs-plg-",q="data-gs-plg-",V="data-type-role";function N(e,s,t){let o,n,r,i,l;const d=s===void 0?100:s;function g(){const a=Date.now()-i;a<d&&a>=0?o=setTimeout(g,d-a):(o=null,l=e.apply(r,n),r=n=null)}const f=function(){return r=this,n=arguments,i=Date.now(),o||(o=setTimeout(g,d)),l};return f.clear=function(){o&&(clearTimeout(o),o=null)},f.flush=function(){o&&(l=e.apply(r,n),r=n=null,clearTimeout(o),o=null)},f}const A="page-break";var y=(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))(y||{});function _(e,s){const o={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return o[s]?e*o[s]:null}const ue=(e,s)=>{const{name:t,id:o,width:n,height:r,unit:i}=e,{fixedHeight:l}=s,d=`${n}${i}`,g=`${r}${i}`;return{id:o||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${d} x ${g})`,sizeH:r,sizeW:n,sizeUnit:i,widthMedia:"",width:d,minHeight:l?"0":`${_(r,i)}px`,height:l?g:void 0}},G="page-breaks",D="gjs-page-breaks-spot",j=e=>e.type===G;function he(e){const{Devices:s}=e,{height:t,minHeight:o}=s.getSelected().attributes,r=parseFloat(`${t&&t!=="auto"?t:o}`),i=e.getWrapper(),l=i==null?void 0:i.getEl(),d=[];if(!i||!l)return d;const g=l.getBoundingClientRect().height,a=i.findType(A).map(u=>u.getEl()).filter(Boolean).map(u=>({top:u.offsetTop,height:u.offsetHeight}));let p=0;for(;p<g;){const u=a.find(m=>m.top>p&&m.top<p+r);u?(p=u.top+u.height,d.push(u.top)):(p+=r,p<g&&d.push(p))}return d}function fe(e,s){const{Canvas:t}=e,o=t.events,n=e.events;let r;const i=()=>{C(`${q}preset-printable-spots`,`.${D} {
1
+ "use strict";const C="app.grapesjs.com",z="app-stage.grapesjs.com",X="app2.grapesjs.com",Z="app-stage2.grapesjs.com",O=[C,X,z,Z,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],Q="license:check:end",ee=()=>typeof window<"u",I=(e,s={})=>{const t=se(e)?{id:e,src:e}:e;return new Promise((o,a)=>{var d,u;const{loadedScripts:r}=s,{id:c,src:i}=t,l=document.querySelector(`script[src="${i}"]`);if(l){if((d=s.onScript)==null||d.call(s,l),r&&!r.get(i)){l.addEventListener("load",()=>o(c)),l.addEventListener("error",()=>a(c));return}return o(c)}const g=window.define;window.define=void 0;const f=()=>{r==null||r.set(i,!0),window.define=g},n=document.createElement("script");n.src=i,n.onload=()=>{o(c),f()},n.onerror=()=>{a(c),f()},document.head.appendChild(n),(u=s.onScript)==null||u.call(s,n)})},te=({isDev:e,isStage:s,isPlatform:t})=>`${e?"":`https://${s?z:C}`}/${t?"platform-api":"api"}`,oe=()=>{const e=ee()&&window.location.hostname;return!!e&&(O.includes(e)||O.some(s=>e.endsWith(s)))},se=e=>typeof e=="string";async function ne({path:e,baseApiUrl:s,method:t="GET",headers:o={},params:a,body:r}){const i=`${s||te({isDev:!1,isStage:!1})}${e}`,l={method:t,headers:{"Content-Type":"application/json",...o}};r&&(l.body=JSON.stringify(r));const g=a?new URLSearchParams(a).toString():"",f=g?`?${g}`:"",n=await fetch(`${i}${f}`,l);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return n.json()}var k=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(k||{}),j=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.dialogImportCode="studio:dialogImportCode",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.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",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.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.settings="studio:settings",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))(j||{});const F={[k.free]:0,[k.startup]:10,[k.business]:20,[k.enterprise]:30};function ae(e){const s=e;return s.init=t=>o=>e(o,t),s}const re=e=>ae(e);async function ie({editor:e,plan:s,pluginName:t,licenseKey:o,onLicenseCheckResponse:a,cleanup:r}){let c="",i;const l=n=>{console.warn("Cleanup plugin:",t,"Reason:",n),r()},g=(n={})=>{var p;const{error:d,sdkLicense:u}=n,m=(p=n.plan)==null?void 0:p.category;if(!(u||n.license)||d)l(d||"Invalid license");else if(m){const h=F[s],L=F[m];h>L&&l({pluginRequiredPlan:s,licensePlan:m})}};e.Commands.has(j.settings)&&(i=e.runCommand(j.settings),c=(i==null?void 0:i.baseUrl)||"");const f=n=>{a==null||a(n),n&&g(n)};if(!i){e.onReady(async()=>{if(!oe())if(o){const n=await le({licenseKey:o,pluginName:t,baseApiUrl:c});f(n)}else l("The `licenseKey` option not provided")});return}if(i.licensePlan||i.licenseError){const n=ce(i);f(n);return}e.on(Q,n=>f(n))}const ce=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function le(e){const{licenseKey:s,pluginName:t,baseApiUrl:o}=e;try{return(await ne({baseApiUrl:o,path:`/sdk/${s||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(a){return console.error("Error during SDK license check:",a),!1}}const pe=e=>s=>{var t;return((t=s.getAttribute)==null?void 0:t.call(s,V))===e},de=(...e)=>(s,t)=>e.some(o=>t.is(o)),K=(e,s,t)=>{const{doc:o=document}=t,a=t.target||o.head,r=a.querySelector(`style[${e}]`)||o.createElement("style");r.setAttribute(e,"true"),r.innerHTML=s,!a.contains(r)&&a.appendChild(r)},ge="gjs-plg-",q="data-gs-plg-",V="data-type-role";function N(e,s,t){let o,a,r,c,i;const l=s===void 0?100:s;function g(){const n=Date.now()-c;n<l&&n>=0?o=setTimeout(g,l-n):(o=null,i=e.apply(r,a),r=a=null)}const f=function(){return r=this,a=arguments,c=Date.now(),o||(o=setTimeout(g,l)),i};return f.clear=function(){o&&(clearTimeout(o),o=null)},f.flush=function(){o&&(i=e.apply(r,a),r=a=null,clearTimeout(o),o=null)},f}const A="page-break";var y=(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))(y||{});function _(e,s){const o={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return o[s]?e*o[s]:null}const ue=(e,s)=>{const{name:t,id:o,width:a,height:r,unit:c}=e,{fixedHeight:i}=s,l=`${a}${c}`,g=`${r}${c}`;return{id:o||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${l} x ${g})`,sizeH:r,sizeW:a,sizeUnit:c,widthMedia:"",width:l,minHeight:i?"0":`${_(r,c)}px`,height:i?g:void 0}},H="page-breaks",D="gjs-page-breaks-spot",S=e=>e.type===H;function he(e){const{Devices:s}=e,{height:t,minHeight:o}=s.getSelected().attributes,r=parseFloat(`${t&&t!=="auto"?t:o}`),c=e.getWrapper(),i=c==null?void 0:c.getEl(),l=[];if(!c||!i)return l;const g=i.getBoundingClientRect().height,n=c.findType(A).map(u=>u.getEl()).filter(Boolean).map(u=>({top:u.offsetTop,height:u.offsetHeight}));let d=0;for(;d<g;){const u=n.find(m=>m.top>d&&m.top<d+r);u?(d=u.top+u.height,l.push(u.top)):(d+=r,d<g&&l.push(d))}return l}function fe(e,s){const{Canvas:t}=e,o=t.events,a=e.events;let r;const c=()=>{K(`${q}preset-printable-spots`,`.${D} {
2
2
  position: absolute;
3
3
  left: 0;
4
4
  width: 100%;
@@ -16,7 +16,7 @@
16
16
  right: 0;
17
17
  transform: translate(100%, -50%);
18
18
  }
19
- `,{target:window.document.head})},l=()=>{if(s.enablePageBreaksSpot===!1)return;const c={id:G,type:G,component:e.getWrapper()};return t.getSpots(c).pop()||t.addSpot(c)},d=({spot:c})=>{const{spotEl:h}=c.attributes;!j(c)||!h||!r||r.removeChild(h)},g=({spot:c})=>{if(!j(c)||!r)return;let{spotEl:h}=c.attributes;h||(h=document.createElement("div"),h.className=`${D}__items`,c.set({spotEl:h})),r.appendChild(h)},f=({spot:c})=>{const{spotEl:h,pageBreaks:k=[]}=c.attributes;!j(c)||!h||!r||(Object.entries(c.getStyle()).forEach(([x,L])=>h.style.setProperty(x,L)),h.innerHTML="",k.forEach((x,L)=>{const E=document.createElement("div");E.setAttribute("data-page-number",`${L+2}`),E.className=D,E.style.top=`${x}px`,h.appendChild(E)}))},a=N(()=>{if(e.em.destroyed)return;const c=l();c&&c.set({pageBreaks:he(e),up:(c.attributes.up||0)+1})},150),p=N(a,200),u=()=>{r=t.getSpotsEl(),l()},m=()=>{const c=l();c&&c.set({up:(c.attributes.up||0)+1})},w=[["component:input",a],["frame:scroll",m],[n.update,a],[o.spotAdd,g],[o.spotUpdate,f],[o.spotRemove,d],[o.frameLoadBody,u]];return w.forEach(([c,h])=>e.on(c,h)),e.onReady(()=>{i(),new ResizeObserver(m).observe(t.getElement().parentElement)}),()=>{w.forEach(([c,h])=>e.off(c,h)),a.clear(),p.clear()}}var H=(e=>(e.print="presetPrintable:print",e))(H||{});const F=e=>new Promise(s=>{const t=document.createElement("iframe");t.style.cssText="position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;",t.srcdoc=e.content,t.onload=()=>s(t),document.body.appendChild(t)});function ve(e,s){const{Commands:t,Pages:o}=e;return t.add(H.print,async(n,r,i={})=>{const l={page:i.allPages?void 0:o.getSelected(),styles:"inline",optionsHtml:{exporter:null}},g=(await t.run(K.projectFiles,l)).filter(p=>p.filename.endsWith(".html")),f=g.map(p=>p.content).join('<div style="break-before: page;"></div>'),a=[];if(i.separatePrints)for(const p of g)a.push(await F(p));else a.push(await F({content:f,filename:"",mimeType:""}));for(const p of a){const u=p.contentWindow;u.focus(),u.print()}setTimeout(()=>a.forEach(p=>p.remove()),1e3)}),t.add("presetPrintable:exp",async n=>{await I("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await I("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:r,Canvas:i}=n,{sizeW:l,sizeH:d,sizeUnit:g}=r.getSelected().attributes,f=i.getFrameEl().contentDocument,a="px",p=[_(l,g),_(d,g)],u=new window.jspdf.jsPDF({unit:a,format:p}),m=f.body;u.html(m,{callback:w=>w.save()})}),()=>{delete e.Commands.commands[H.print]}}function be(e,s){const{blockPageBreak:t={}}=s,{Components:o,Blocks:n}=e,r="Page Break",i=`${ge}${A}`;return o.addType(A,{block:t&&{label:r,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>',category:"Extra",select:!0,...t},isComponent:de(A),model:{defaults:{name:r,classes:i,attributes:{[V]:A},emptyState:!0,stylable:!1,droppable:!1,draggable:pe("wrapper"),styles:`.${i} { break-before: page; }`,traits:[]}}}),()=>{o.removeType(A),n.remove(A)}}const me="presetPrintable",ye=$.free,we=function(e,s={}){var M;const t={selectedDevice:y.A4,...s},{Canvas:o,Devices:n,Blocks:r}=e,i=o.events,l=e.events,d=t.selectedDevice||n.getConfig().default,g=[{id:y.A5,name:"A5",width:148,height:210,unit:"mm"},{id:y.A5Portrait,name:"A5 Portrait",width:210,height:148,unit:"mm"},{id:y.A4,name:"A4",width:210,height:297,unit:"mm"},{id:y.A3,name:"A3",width:297,height:420,unit:"mm"},{id:y.B5,name:"B5",width:176,height:250,unit:"mm"},{id:y.B4,name:"B4",width:250,height:353,unit:"mm"},{id:y.letter,name:"Letter",width:8.5,height:11,unit:"in"},{id:y.legal,name:"Legal",width:8.5,height:14,unit:"in"},{id:y.ledger,name:"Ledger",width:11,height:17,unit:"in"}],a=(((M=t.devices)==null?void 0:M.call(t,{items:g}))||g).map(v=>ue(v,t));n.devices.reset(a);const p=d&&n.get(d)||n.getAll().at(0);n.select(p),["map","video"].forEach(v=>r.remove(v));const m=(v={})=>{const b="page-rule",{rules:P}=e.Css,{width:T,height:B,minHeight:R}=n.getSelected().attributes,Y=B&&B!=="auto"?B:R,S=P.where({id:b}).pop(),J=S||P.add({id:b,selectors:[],selectorsAdd:"@page"},{at:0});(v.fromDeviceChange||!S)&&J.addStyle({size:`${T} ${Y}`,...!S&&{margin:"0"}})},w=(v,b={})=>{const P=v.document,{minHeight:T}=n.getSelected().attributes,R=`
19
+ `,{target:window.document.head})},i=()=>{if(s.enablePageBreaksSpot===!1)return;const p={id:H,type:H,component:e.getWrapper()};return t.getSpots(p).pop()||t.addSpot(p)},l=({spot:p})=>{const{spotEl:h}=p.attributes;!S(p)||!h||!r||r.removeChild(h)},g=({spot:p})=>{if(!S(p)||!r)return;let{spotEl:h}=p.attributes;h||(h=document.createElement("div"),h.className=`${D}__items`,p.set({spotEl:h})),r.appendChild(h)},f=({spot:p})=>{const{spotEl:h,pageBreaks:L=[]}=p.attributes;!S(p)||!h||!r||(Object.entries(p.getStyle()).forEach(([$,x])=>h.style.setProperty($,x)),h.innerHTML="",L.forEach(($,x)=>{const E=document.createElement("div");E.setAttribute("data-page-number",`${x+2}`),E.className=D,E.style.top=`${$}px`,h.appendChild(E)}))},n=N(()=>{if(e.em.destroyed)return;const p=i();p&&p.set({pageBreaks:he(e),up:(p.attributes.up||0)+1})},150),d=N(n,200),u=()=>{r=t.getSpotsEl(),i()},m=()=>{const p=i();p&&p.set({up:(p.attributes.up||0)+1})},w=[["component:input",n],["frame:scroll",m],[a.update,n],[o.spotAdd,g],[o.spotUpdate,f],[o.spotRemove,l],[o.frameLoadBody,u]];return w.forEach(([p,h])=>e.on(p,h)),e.onReady(()=>{c(),new ResizeObserver(m).observe(t.getElement().parentElement)}),()=>{w.forEach(([p,h])=>e.off(p,h)),n.clear(),d.clear()}}var M=(e=>(e.print="presetPrintable:print",e))(M||{});const W=e=>new Promise(s=>{const t=document.createElement("iframe");t.style.cssText="position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;",t.srcdoc=e.content,t.onload=()=>s(t),document.body.appendChild(t)});function ve(e,s){const{Commands:t,Pages:o}=e;return t.add(M.print,async(a,r,c={})=>{const i={page:c.allPages?void 0:o.getSelected(),styles:"inline",optionsHtml:{exporter:null}},g=(await t.run(j.projectFiles,i)).filter(d=>d.filename.endsWith(".html")),f=g.map(d=>d.content).join('<div style="break-before: page;"></div>'),n=[];if(c.separatePrints)for(const d of g)n.push(await W(d));else n.push(await W({content:f,filename:"",mimeType:""}));for(const d of n){const u=d.contentWindow;u.focus(),u.print()}setTimeout(()=>n.forEach(d=>d.remove()),1e3)}),t.add("presetPrintable:exp",async a=>{await I("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await I("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:r,Canvas:c}=a,{sizeW:i,sizeH:l,sizeUnit:g}=r.getSelected().attributes,f=c.getFrameEl().contentDocument,n="px",d=[_(i,g),_(l,g)],u=new window.jspdf.jsPDF({unit:n,format:d}),m=f.body;u.html(m,{callback:w=>w.save()})}),()=>{delete e.Commands.commands[M.print]}}function be(e,s){const{blockPageBreak:t={}}=s,{Components:o,Blocks:a}=e,r="Page Break",c=`${ge}${A}`;return o.addType(A,{block:t&&{label:r,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>',category:"Extra",select:!0,...t},isComponent:pe(A),model:{defaults:{name:r,classes:c,attributes:{[V]:A},emptyState:!0,stylable:!1,droppable:!1,draggable:de("wrapper"),styles:`.${c} { break-before: page; }`,traits:[]}}}),()=>{o.removeType(A),a.remove(A)}}const me="presetPrintable",ye=k.free,we=function(e,s={}){var U;const t={selectedDevice:y.A4,...s},{Canvas:o,Devices:a,Blocks:r}=e,c=o.events,i=e.events,l=t.selectedDevice||a.getConfig().default,g=[{id:y.A5,name:"A5",width:148,height:210,unit:"mm"},{id:y.A5Portrait,name:"A5 Portrait",width:210,height:148,unit:"mm"},{id:y.A4,name:"A4",width:210,height:297,unit:"mm"},{id:y.A3,name:"A3",width:297,height:420,unit:"mm"},{id:y.B5,name:"B5",width:176,height:250,unit:"mm"},{id:y.B4,name:"B4",width:250,height:353,unit:"mm"},{id:y.letter,name:"Letter",width:8.5,height:11,unit:"in"},{id:y.legal,name:"Legal",width:8.5,height:14,unit:"in"},{id:y.ledger,name:"Ledger",width:11,height:17,unit:"in"}],n=(((U=t.devices)==null?void 0:U.call(t,{items:g}))||g).map(v=>ue(v,t));a.devices.reset(n);const d=l&&a.get(l)||a.getAll().at(0);a.select(d),["map","video"].forEach(v=>r.remove(v));const m=(v={})=>{const b="page-rule",{rules:P}=e.Css,{width:T,height:B,minHeight:R}=a.getSelected().attributes,Y=B&&B!=="auto"?B:R,G=P.where({id:b}).pop(),J=G||P.add({id:b,selectors:[],selectorsAdd:"@page"},{at:0});(v.fromDeviceChange||!G)&&J.addStyle({size:`${T} ${Y}`,...!G&&{margin:"0"}})},w=(v,b={})=>{const P=v.document,{minHeight:T}=a.getSelected().attributes,R=`
20
20
  ${!!parseFloat(`${T}`)?`
21
21
  [data-gjs-type="wrapper"] { min-height: ${T}; }
22
22
  `:`
@@ -29,4 +29,4 @@
29
29
  height: 100dvh;
30
30
  }
31
31
  `}
32
- `;C(`${q}preset-printable`,R,{doc:P,target:P.head}),m(b)};e.on(i.frameLoadBody,v=>{const b=v.window;if(w(b),t.fixedHeight){const T=v.model.getComponent().getEl();T==null||T.addEventListener("scroll",B=>{const R=B.target;R.scrollTop>0&&R.scrollTo(0,0)})}}),e.on(n.events.select,()=>{var b;const v=(b=o.getFrameEl().contentDocument)==null?void 0:b.defaultView;v&&w(v,{fromDeviceChange:!0})});const c=()=>{const b=e.Css.getRules().filter(P=>P.selectorsToString()==="body").pop();b==null||b.addStyle({"margin-top":"","margin-right":"","margin-bottom":"","margin-left":"",margin:"0"})},h=[[l.projectLoad,c]];h.forEach(([v,b])=>e.on(v,b));const k=fe(e,t),x=ve(e),L=be(e,t);e.onReady(()=>{e.UndoManager.clear()});const E=()=>{h.forEach(([v,b])=>e.off(v,b)),k(),x(),L()};e.on(l.destroy,E),ce({editor:e,licenseKey:t.licenseKey,plan:ye,pluginName:me,cleanup:E})},Pe=ie(we);module.exports=Pe;
32
+ `;K(`${q}preset-printable`,R,{doc:P,target:P.head}),m(b)};e.on(c.frameLoadBody,v=>{const b=v.window;if(w(b),t.fixedHeight){const T=v.model.getComponent().getEl();T==null||T.addEventListener("scroll",B=>{const R=B.target;R.scrollTop>0&&R.scrollTo(0,0)})}}),e.on(a.events.select,()=>{var b;const v=(b=o.getFrameEl().contentDocument)==null?void 0:b.defaultView;v&&w(v,{fromDeviceChange:!0})});const p=()=>{const b=e.Css.getRules().filter(P=>P.selectorsToString()==="body").pop();b==null||b.addStyle({"margin-top":"","margin-right":"","margin-bottom":"","margin-left":"",margin:"0"})},h=[[i.projectLoad,p]];h.forEach(([v,b])=>e.on(v,b));const L=fe(e,t),$=ve(e),x=be(e,t);e.onReady(()=>{e.UndoManager.clear()});const E=()=>{h.forEach(([v,b])=>e.off(v,b)),L(),$(),x()};e.on(i.destroy,E),ie({editor:e,licenseKey:t.licenseKey,plan:ye,pluginName:me,cleanup:E})},Pe=re(we);module.exports=Pe;