@grapesjs/studio-sdk-plugins 1.0.35 → 1.0.37

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 (92) hide show
  1. package/dist/accordionComponent/index.cjs.js +7 -7
  2. package/dist/accordionComponent/index.es.js +185 -159
  3. package/dist/accordionComponent/index.umd.js +7 -7
  4. package/dist/aiChat/clientToolsProcessors.d.ts +1 -2
  5. package/dist/aiChat/components/utils.d.ts +1 -0
  6. package/dist/aiChat/components/utilsTw.d.ts +11 -0
  7. package/dist/aiChat/index.cjs.js +75 -75
  8. package/dist/aiChat/index.es.js +9122 -8628
  9. package/dist/aiChat/index.js +75 -75
  10. package/dist/aiChat/index.umd.js +75 -75
  11. package/dist/aiChat/projectGeneration.d.ts +17 -0
  12. package/dist/animationComponent/index.cjs.js +3 -3
  13. package/dist/animationComponent/index.es.js +221 -195
  14. package/dist/animationComponent/index.umd.js +3 -3
  15. package/dist/canvasAbsoluteMode/index.cjs.js +1 -1
  16. package/dist/canvasAbsoluteMode/index.es.js +199 -173
  17. package/dist/canvasAbsoluteMode/index.umd.js +1 -1
  18. package/dist/canvasEmptyState/index.cjs.js +1 -1
  19. package/dist/canvasEmptyState/index.es.js +149 -123
  20. package/dist/canvasEmptyState/index.umd.js +1 -1
  21. package/dist/canvasFullSize/index.cjs.js +9 -9
  22. package/dist/canvasFullSize/index.es.js +186 -160
  23. package/dist/canvasFullSize/index.umd.js +9 -9
  24. package/dist/canvasGridMode/index.cjs.js +5 -5
  25. package/dist/canvasGridMode/index.es.js +263 -237
  26. package/dist/canvasGridMode/index.umd.js +2 -2
  27. package/dist/canvasScreenshot/index.cjs.js +1 -1
  28. package/dist/canvasScreenshot/index.es.js +168 -142
  29. package/dist/canvasScreenshot/index.umd.js +1 -1
  30. package/dist/dataSourceEjs/index.cjs.js +9 -9
  31. package/dist/dataSourceEjs/index.es.js +271 -245
  32. package/dist/dataSourceEjs/index.umd.js +9 -9
  33. package/dist/dataSourceHandlebars/index.cjs.js +8 -8
  34. package/dist/dataSourceHandlebars/index.es.js +232 -206
  35. package/dist/dataSourceHandlebars/index.umd.js +8 -8
  36. package/dist/dialogComponent/index.cjs.js +14 -14
  37. package/dist/dialogComponent/index.es.js +157 -131
  38. package/dist/dialogComponent/index.umd.js +14 -14
  39. package/dist/flexComponent/index.cjs.js +13 -13
  40. package/dist/flexComponent/index.es.js +497 -471
  41. package/dist/flexComponent/index.umd.js +13 -13
  42. package/dist/fsLightboxComponent/index.cjs.js +3 -3
  43. package/dist/fsLightboxComponent/index.es.js +189 -163
  44. package/dist/fsLightboxComponent/index.umd.js +3 -3
  45. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  46. package/dist/googleFontsAssetProvider/index.es.js +175 -149
  47. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  48. package/dist/iconifyComponent/index.cjs.js +2 -2
  49. package/dist/iconifyComponent/index.es.js +207 -181
  50. package/dist/iconifyComponent/index.umd.js +2 -2
  51. package/dist/index.cjs.js +36 -36
  52. package/dist/index.es.js +917 -891
  53. package/dist/index.umd.js +36 -36
  54. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  55. package/dist/layoutSidebarButtons/index.es.js +192 -166
  56. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  57. package/dist/lightGalleryComponent/index.cjs.js +1 -1
  58. package/dist/lightGalleryComponent/index.es.js +265 -239
  59. package/dist/lightGalleryComponent/index.umd.js +1 -1
  60. package/dist/linkImageComponent/index.cjs.js +2 -2
  61. package/dist/linkImageComponent/index.es.js +121 -95
  62. package/dist/linkImageComponent/index.umd.js +2 -2
  63. package/dist/listPagesComponent/index.cjs.js +5 -5
  64. package/dist/listPagesComponent/index.es.js +171 -145
  65. package/dist/listPagesComponent/index.umd.js +5 -5
  66. package/dist/presetPrintable/index.cjs.js +3 -3
  67. package/dist/presetPrintable/index.es.js +227 -201
  68. package/dist/presetPrintable/index.umd.js +3 -3
  69. package/dist/prosemirror/index.cjs.js +7 -7
  70. package/dist/prosemirror/index.es.js +457 -431
  71. package/dist/prosemirror/index.umd.js +8 -8
  72. package/dist/rendererReact/index.cjs.js +1 -1
  73. package/dist/rendererReact/index.es.js +248 -223
  74. package/dist/rendererReact/index.js +1 -1
  75. package/dist/rendererReact/index.umd.js +1 -1
  76. package/dist/rteTinyMce/index.cjs.js +2 -2
  77. package/dist/rteTinyMce/index.es.js +150 -124
  78. package/dist/rteTinyMce/index.umd.js +2 -2
  79. package/dist/shapeDividerComponent/index.cjs.js +4 -4
  80. package/dist/shapeDividerComponent/index.es.js +143 -117
  81. package/dist/shapeDividerComponent/index.umd.js +4 -4
  82. package/dist/swiperComponent/index.cjs.js +9 -9
  83. package/dist/swiperComponent/index.es.js +218 -192
  84. package/dist/swiperComponent/index.umd.js +7 -7
  85. package/dist/tableComponent/index.cjs.js +1 -1
  86. package/dist/tableComponent/index.es.js +275 -249
  87. package/dist/tableComponent/index.umd.js +1 -1
  88. package/dist/types.d.ts +1 -1
  89. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  90. package/dist/youtubeAssetProvider/index.es.js +134 -108
  91. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  92. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
- const W = "app.grapesjs.com", z = "app-stage.grapesjs.com", X = "app2.grapesjs.com", Z = "app-stage2.grapesjs.com", U = [
2
- W,
1
+ const C = "app.grapesjs.com", z = "app-stage.grapesjs.com", X = "app2.grapesjs.com", Z = "app-stage2.grapesjs.com", O = [
2
+ C,
3
3
  X,
4
4
  z,
5
5
  Z,
@@ -9,150 +9,176 @@ const W = "app.grapesjs.com", z = "app-stage.grapesjs.com", X = "app2.grapesjs.c
9
9
  // For stackblitz.com demos
10
10
  ".local.webcontainer.io",
11
11
  // For stackblitz.com demos
12
- "-sandpack.codesandbox.io"
12
+ "-sandpack.codesandbox.io",
13
13
  // For Sandpack demos
14
- ], Q = "license:check:start", ee = "license:check:end", te = () => typeof window < "u", I = (e, s = {}) => {
15
- const t = ne(e) ? { id: e, src: e } : e;
16
- return new Promise((o, n) => {
17
- var p, u;
18
- const { loadedScripts: r } = s, { id: i, src: l } = t, d = document.querySelector(`script[src="${l}"]`);
19
- if (d) {
20
- if ((p = s.onScript) == null || p.call(s, d), r && !r.get(l)) {
21
- d.addEventListener("load", () => o(i)), d.addEventListener("error", () => n(i));
14
+ ".claudemcpcontent.com",
15
+ // For Claude mcp app
16
+ ".web-sandbox.oaiusercontent.com"
17
+ // For OpenAI mcp app
18
+ ], Q = "license:check:end", ee = () => typeof window < "u", I = (e, n = {}) => {
19
+ const t = se(e) ? { id: e, src: e } : e;
20
+ return new Promise((o, a) => {
21
+ var d, u;
22
+ const { loadedScripts: r } = n, { id: c, src: i } = t, l = document.querySelector(`script[src="${i}"]`);
23
+ if (l) {
24
+ if ((d = n.onScript) == null || d.call(n, l), r && !r.get(i)) {
25
+ l.addEventListener("load", () => o(c)), l.addEventListener("error", () => a(c));
22
26
  return;
23
27
  }
24
- return o(i);
28
+ return o(c);
25
29
  }
26
30
  const g = window.define;
27
31
  window.define = void 0;
28
32
  const f = () => {
29
- r == null || r.set(l, !0), window.define = g;
30
- }, a = document.createElement("script");
31
- a.src = l, a.onload = () => {
32
- o(i), f();
33
- }, a.onerror = () => {
34
- n(i), f();
35
- }, document.head.appendChild(a), (u = s.onScript) == null || u.call(s, a);
33
+ r == null || r.set(i, !0), window.define = g;
34
+ }, s = document.createElement("script");
35
+ s.src = i, s.onload = () => {
36
+ o(c), f();
37
+ }, s.onerror = () => {
38
+ a(c), f();
39
+ }, document.head.appendChild(s), (u = n.onScript) == null || u.call(n, s);
36
40
  });
37
- }, oe = ({
41
+ }, te = ({
38
42
  isDev: e,
39
- isStage: s,
43
+ isStage: n,
40
44
  isPlatform: t
41
- }) => `${e ? "" : `https://${s ? z : W}`}/${t ? "platform-api" : "api"}`, se = () => {
42
- const e = te() && window.location.hostname;
43
- return !!e && (U.includes(e) || U.some((s) => e.endsWith(s)));
44
- }, ne = (e) => typeof e == "string";
45
+ }) => `${e ? "" : `https://${n ? z : C}`}/${t ? "platform-api" : "api"}`, oe = () => {
46
+ if (!ee()) return "";
47
+ const { hostname: e } = window.location;
48
+ if (e) return e;
49
+ try {
50
+ return window.parent.location.hostname || "";
51
+ } catch {
52
+ return "";
53
+ }
54
+ }, ne = () => {
55
+ const e = oe();
56
+ return !!e && (O.includes(e) || O.some((n) => e.endsWith(n)));
57
+ }, se = (e) => typeof e == "string";
45
58
  async function ae({
46
59
  path: e,
47
- baseApiUrl: s,
60
+ baseApiUrl: n,
48
61
  method: t = "GET",
49
62
  headers: o = {},
50
- params: n,
63
+ params: a,
51
64
  body: r
52
65
  }) {
53
- const l = `${s || oe({ isDev: !1, isStage: !1 })}${e}`, d = {
66
+ const i = `${n || te({ isDev: !1, isStage: !1 })}${e}`, l = {
54
67
  method: t,
55
68
  headers: {
56
69
  "Content-Type": "application/json",
57
70
  ...o
58
71
  }
59
72
  };
60
- r && (d.body = JSON.stringify(r));
61
- const g = n ? new URLSearchParams(n).toString() : "", f = g ? `?${g}` : "", a = await fetch(`${l}${f}`, d);
62
- if (!a.ok)
63
- throw new Error(`HTTP error! status: ${a.status}`);
64
- return a.json();
73
+ r && (l.body = JSON.stringify(r));
74
+ const g = a ? new URLSearchParams(a).toString() : "", f = g ? `?${g}` : "", s = await fetch(`${i}${f}`, l);
75
+ if (!s.ok)
76
+ throw new Error(`HTTP error! status: ${s.status}`);
77
+ return s.json();
65
78
  }
66
- var $ = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))($ || {}), K = /* @__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.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 || {});
67
- const O = {
68
- [$.free]: 0,
69
- [$.startup]: 10,
70
- [$.business]: 20,
71
- [$.enterprise]: 30
79
+ var k = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(k || {}), j = /* @__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))(j || {});
80
+ const F = {
81
+ [k.free]: 0,
82
+ [k.startup]: 10,
83
+ [k.business]: 20,
84
+ [k.enterprise]: 30
72
85
  };
73
86
  function re(e) {
74
- const s = e;
75
- return s.init = (t) => (o) => e(o, t), s;
87
+ const n = e;
88
+ return n.init = (t) => (o) => e(o, t), n;
76
89
  }
77
90
  const ie = (e) => /* @__PURE__ */ re(e);
78
91
  async function ce({
79
92
  editor: e,
80
- plan: s,
93
+ plan: n,
81
94
  pluginName: t,
82
95
  licenseKey: o,
83
- onLicenseCheckResponse: n,
96
+ onLicenseCheckResponse: a,
84
97
  cleanup: r
85
98
  }) {
86
- let i = "", l = !1;
87
- const d = se(), g = (a) => {
88
- console.warn("Cleanup plugin:", t, "Reason:", a), r();
89
- }, f = (a = {}) => {
90
- var c;
91
- const { error: p, sdkLicense: u } = a, m = (c = a.plan) == null ? void 0 : c.category;
92
- if (!(u || a.license) || p)
93
- g(p || "Invalid license");
94
- else if (m) {
95
- const h = O[s], k = O[m];
96
- h > k && g({ pluginRequiredPlan: s, licensePlan: m });
99
+ let c = "", i;
100
+ const l = (s) => {
101
+ console.warn("Cleanup plugin:", t, "Reason:", s), r();
102
+ }, g = (s = {}) => {
103
+ var p;
104
+ const { error: d, sdkLicense: u } = s, b = (p = s.plan) == null ? void 0 : p.category;
105
+ if (!(u || s.license) || d)
106
+ l(d || "Invalid license");
107
+ else if (b) {
108
+ const h = F[n], L = F[b];
109
+ h > L && l({ pluginRequiredPlan: n, licensePlan: b });
97
110
  }
98
111
  };
99
- e.on(Q, (a) => {
100
- i = a == null ? void 0 : a.baseApiUrl, l = !0;
101
- }), e.on(ee, (a) => {
102
- n == null || n(a), f(a);
103
- }), setTimeout(async () => {
104
- if (!l) {
105
- if (d) return;
106
- if (o) {
107
- const a = await le({ licenseKey: o, pluginName: t, baseApiUrl: i });
108
- n == null || n(a), a && f(a);
109
- } else
110
- g("The `licenseKey` option not provided");
111
- }
112
- }, 2e3);
112
+ e.Commands.has(j.settings) && (i = e.runCommand(j.settings), c = (i == null ? void 0 : i.baseUrl) || "");
113
+ const f = (s) => {
114
+ a == null || a(s), s && g(s);
115
+ };
116
+ if (!i) {
117
+ e.onReady(async () => {
118
+ if (!ne())
119
+ if (o) {
120
+ const s = await pe({ licenseKey: o, pluginName: t, baseApiUrl: c });
121
+ f(s);
122
+ } else
123
+ l("The `licenseKey` option not provided");
124
+ });
125
+ return;
126
+ }
127
+ if (i.licensePlan || i.licenseError) {
128
+ const s = le(i);
129
+ f(s);
130
+ return;
131
+ }
132
+ e.on(Q, (s) => f(s));
113
133
  }
114
- async function le(e) {
115
- const { licenseKey: s, pluginName: t, baseApiUrl: o } = e;
134
+ const le = (e) => ({
135
+ sdkLicense: e.license,
136
+ license: e.license,
137
+ error: e.licenseError,
138
+ plan: e.licensePlan
139
+ });
140
+ async function pe(e) {
141
+ const { licenseKey: n, pluginName: t, baseApiUrl: o } = e;
116
142
  try {
117
143
  return (await ae({
118
144
  baseApiUrl: o,
119
- path: `/sdk/${s || "na"}`,
145
+ path: `/sdk/${n || "na"}`,
120
146
  method: "POST",
121
147
  params: {
122
148
  d: window.location.hostname,
123
149
  pn: t
124
150
  }
125
151
  })).result || {};
126
- } catch (n) {
127
- return console.error("Error during SDK license check:", n), !1;
152
+ } catch (a) {
153
+ return console.error("Error during SDK license check:", a), !1;
128
154
  }
129
155
  }
130
- const de = (e) => (s) => {
156
+ const de = (e) => (n) => {
131
157
  var t;
132
- return ((t = s.getAttribute) == null ? void 0 : t.call(s, V)) === e;
133
- }, pe = (...e) => (s, t) => e.some((o) => t.is(o)), C = (e, s, t) => {
134
- const { doc: o = document } = t, n = t.target || o.head, r = n.querySelector(`style[${e}]`) || o.createElement("style");
135
- r.setAttribute(e, "true"), r.innerHTML = s, !n.contains(r) && n.appendChild(r);
136
- }, ge = "gjs-plg-", q = "data-gs-plg-", V = "data-type-role";
137
- function N(e, s, t) {
138
- let o, n, r, i, l;
139
- const d = s === void 0 ? 100 : s;
158
+ return ((t = n.getAttribute) == null ? void 0 : t.call(n, V)) === e;
159
+ }, ge = (...e) => (n, t) => e.some((o) => t.is(o)), K = (e, n, t) => {
160
+ const { doc: o = document } = t, a = t.target || o.head, r = a.querySelector(`style[${e}]`) || o.createElement("style");
161
+ r.setAttribute(e, "true"), r.innerHTML = n, !a.contains(r) && a.appendChild(r);
162
+ }, ue = "gjs-plg-", q = "data-gs-plg-", V = "data-type-role";
163
+ function N(e, n, t) {
164
+ let o, a, r, c, i;
165
+ const l = n === void 0 ? 100 : n;
140
166
  function g() {
141
- const a = Date.now() - i;
142
- a < d && a >= 0 ? o = setTimeout(g, d - a) : (o = null, l = e.apply(r, n), r = n = null);
167
+ const s = Date.now() - c;
168
+ s < l && s >= 0 ? o = setTimeout(g, l - s) : (o = null, i = e.apply(r, a), r = a = null);
143
169
  }
144
170
  const f = function() {
145
- return r = this, n = arguments, i = Date.now(), o || (o = setTimeout(g, d)), l;
171
+ return r = this, a = arguments, c = Date.now(), o || (o = setTimeout(g, l)), i;
146
172
  };
147
173
  return f.clear = function() {
148
174
  o && (clearTimeout(o), o = null);
149
175
  }, f.flush = function() {
150
- o && (l = e.apply(r, n), r = n = null, clearTimeout(o), o = null);
176
+ o && (i = e.apply(r, a), r = a = null, clearTimeout(o), o = null);
151
177
  }, f;
152
178
  }
153
179
  const A = "page-break";
154
180
  var y = /* @__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))(y || {});
155
- function _(e, s) {
181
+ function S(e, n) {
156
182
  const o = {
157
183
  mm: 3.7795275590551185,
158
184
  // 1mm ≈ 3.78px
@@ -165,39 +191,39 @@ function _(e, s) {
165
191
  pc: 16
166
192
  // 1pc ≈ 16px
167
193
  };
168
- return o[s] ? e * o[s] : null;
194
+ return o[n] ? e * o[n] : null;
169
195
  }
170
- const ue = (e, s) => {
171
- const { name: t, id: o, width: n, height: r, unit: i } = e, { fixedHeight: l } = s, d = `${n}${i}`, g = `${r}${i}`;
196
+ const he = (e, n) => {
197
+ const { name: t, id: o, width: a, height: r, unit: c } = e, { fixedHeight: i } = n, l = `${a}${c}`, g = `${r}${c}`;
172
198
  return {
173
199
  id: o || t.toLowerCase().replace(/\s/g, "-"),
174
- name: `${t} (${d} x ${g})`,
200
+ name: `${t} (${l} x ${g})`,
175
201
  sizeH: r,
176
- sizeW: n,
177
- sizeUnit: i,
202
+ sizeW: a,
203
+ sizeUnit: c,
178
204
  widthMedia: "",
179
- width: d,
180
- minHeight: l ? "0" : `${_(r, i)}px`,
181
- height: l ? g : void 0
205
+ width: l,
206
+ minHeight: i ? "0" : `${S(r, c)}px`,
207
+ height: i ? g : void 0
182
208
  };
183
- }, G = "page-breaks", D = "gjs-page-breaks-spot", j = (e) => e.type === G;
184
- function he(e) {
185
- 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 = [];
186
- if (!i || !l)
187
- return d;
188
- const g = l.getBoundingClientRect().height, a = i.findType(A).map((u) => u.getEl()).filter(Boolean).map((u) => ({ top: u.offsetTop, height: u.offsetHeight }));
189
- let p = 0;
190
- for (; p < g; ) {
191
- const u = a.find((m) => m.top > p && m.top < p + r);
192
- u ? (p = u.top + u.height, d.push(u.top)) : (p += r, p < g && d.push(p));
209
+ }, _ = "page-breaks", D = "gjs-page-breaks-spot", H = (e) => e.type === _;
210
+ function fe(e) {
211
+ const { Devices: n } = e, { height: t, minHeight: o } = n.getSelected().attributes, r = parseFloat(`${t && t !== "auto" ? t : o}`), c = e.getWrapper(), i = c == null ? void 0 : c.getEl(), l = [];
212
+ if (!c || !i)
213
+ return l;
214
+ const g = i.getBoundingClientRect().height, s = c.findType(A).map((u) => u.getEl()).filter(Boolean).map((u) => ({ top: u.offsetTop, height: u.offsetHeight }));
215
+ let d = 0;
216
+ for (; d < g; ) {
217
+ const u = s.find((b) => b.top > d && b.top < d + r);
218
+ u ? (d = u.top + u.height, l.push(u.top)) : (d += r, d < g && l.push(d));
193
219
  }
194
- return d;
220
+ return l;
195
221
  }
196
- function fe(e, s) {
197
- const { Canvas: t } = e, o = t.events, n = e.events;
222
+ function ve(e, n) {
223
+ const { Canvas: t } = e, o = t.events, a = e.events;
198
224
  let r;
199
- const i = () => {
200
- C(
225
+ const c = () => {
226
+ K(
201
227
  `${q}preset-printable-spots`,
202
228
  `.${D} {
203
229
  position: absolute;
@@ -220,86 +246,86 @@ function fe(e, s) {
220
246
  `,
221
247
  { target: window.document.head }
222
248
  );
223
- }, l = () => {
224
- if (s.enablePageBreaksSpot === !1) return;
225
- const c = { id: G, type: G, component: e.getWrapper() };
226
- return t.getSpots(c).pop() || t.addSpot(c);
227
- }, d = ({ spot: c }) => {
228
- const { spotEl: h } = c.attributes;
229
- !j(c) || !h || !r || r.removeChild(h);
230
- }, g = ({ spot: c }) => {
231
- if (!j(c) || !r) return;
232
- let { spotEl: h } = c.attributes;
233
- h || (h = document.createElement("div"), h.className = `${D}__items`, c.set({ spotEl: h })), r.appendChild(h);
234
- }, f = ({ spot: c }) => {
235
- const { spotEl: h, pageBreaks: k = [] } = c.attributes;
236
- !j(c) || !h || !r || (Object.entries(c.getStyle()).forEach(([x, L]) => h.style.setProperty(x, L)), h.innerHTML = "", k.forEach((x, L) => {
249
+ }, i = () => {
250
+ if (n.enablePageBreaksSpot === !1) return;
251
+ const p = { id: _, type: _, component: e.getWrapper() };
252
+ return t.getSpots(p).pop() || t.addSpot(p);
253
+ }, l = ({ spot: p }) => {
254
+ const { spotEl: h } = p.attributes;
255
+ !H(p) || !h || !r || r.removeChild(h);
256
+ }, g = ({ spot: p }) => {
257
+ if (!H(p) || !r) return;
258
+ let { spotEl: h } = p.attributes;
259
+ h || (h = document.createElement("div"), h.className = `${D}__items`, p.set({ spotEl: h })), r.appendChild(h);
260
+ }, f = ({ spot: p }) => {
261
+ const { spotEl: h, pageBreaks: L = [] } = p.attributes;
262
+ !H(p) || !h || !r || (Object.entries(p.getStyle()).forEach(([$, x]) => h.style.setProperty($, x)), h.innerHTML = "", L.forEach(($, x) => {
237
263
  const E = document.createElement("div");
238
- E.setAttribute("data-page-number", `${L + 2}`), E.className = D, E.style.top = `${x}px`, h.appendChild(E);
264
+ E.setAttribute("data-page-number", `${x + 2}`), E.className = D, E.style.top = `${$}px`, h.appendChild(E);
239
265
  }));
240
- }, a = N(() => {
266
+ }, s = N(() => {
241
267
  if (e.em.destroyed) return;
242
- const c = l();
243
- c && c.set({ pageBreaks: he(e), up: (c.attributes.up || 0) + 1 });
244
- }, 150), p = N(a, 200), u = () => {
245
- r = t.getSpotsEl(), l();
246
- }, m = () => {
247
- const c = l();
248
- c && c.set({ up: (c.attributes.up || 0) + 1 });
268
+ const p = i();
269
+ p && p.set({ pageBreaks: fe(e), up: (p.attributes.up || 0) + 1 });
270
+ }, 150), d = N(s, 200), u = () => {
271
+ r = t.getSpotsEl(), i();
272
+ }, b = () => {
273
+ const p = i();
274
+ p && p.set({ up: (p.attributes.up || 0) + 1 });
249
275
  }, w = [
250
- ["component:input", a],
251
- ["frame:scroll", m],
252
- [n.update, a],
276
+ ["component:input", s],
277
+ ["frame:scroll", b],
278
+ [a.update, s],
253
279
  [o.spotAdd, g],
254
280
  [o.spotUpdate, f],
255
- [o.spotRemove, d],
281
+ [o.spotRemove, l],
256
282
  [o.frameLoadBody, u]
257
283
  ];
258
- return w.forEach(([c, h]) => e.on(c, h)), e.onReady(() => {
259
- i(), new ResizeObserver(m).observe(t.getElement().parentElement);
284
+ return w.forEach(([p, h]) => e.on(p, h)), e.onReady(() => {
285
+ c(), new ResizeObserver(b).observe(t.getElement().parentElement);
260
286
  }), () => {
261
- w.forEach(([c, h]) => e.off(c, h)), a.clear(), p.clear();
287
+ w.forEach(([p, h]) => e.off(p, h)), s.clear(), d.clear();
262
288
  };
263
289
  }
264
- var H = /* @__PURE__ */ ((e) => (e.print = "presetPrintable:print", e))(H || {});
265
- const F = (e) => new Promise((s) => {
290
+ var M = /* @__PURE__ */ ((e) => (e.print = "presetPrintable:print", e))(M || {});
291
+ const W = (e) => new Promise((n) => {
266
292
  const t = document.createElement("iframe");
267
- 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);
293
+ 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);
268
294
  });
269
- function ve(e, s) {
295
+ function me(e, n) {
270
296
  const { Commands: t, Pages: o } = e;
271
297
  return t.add(
272
- H.print,
273
- async (n, r, i = {}) => {
274
- const l = {
275
- page: i.allPages ? void 0 : o.getSelected(),
298
+ M.print,
299
+ async (a, r, c = {}) => {
300
+ const i = {
301
+ page: c.allPages ? void 0 : o.getSelected(),
276
302
  styles: "inline",
277
303
  optionsHtml: {
278
304
  // Avoid DataSource exporter
279
305
  exporter: null
280
306
  }
281
- }, 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 = [];
282
- if (i.separatePrints)
283
- for (const p of g)
284
- a.push(await F(p));
307
+ }, 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>'), s = [];
308
+ if (c.separatePrints)
309
+ for (const d of g)
310
+ s.push(await W(d));
285
311
  else
286
- a.push(await F({ content: f, filename: "", mimeType: "" }));
287
- for (const p of a) {
288
- const u = p.contentWindow;
312
+ s.push(await W({ content: f, filename: "", mimeType: "" }));
313
+ for (const d of s) {
314
+ const u = d.contentWindow;
289
315
  u.focus(), u.print();
290
316
  }
291
- setTimeout(() => a.forEach((p) => p.remove()), 1e3);
317
+ setTimeout(() => s.forEach((d) => d.remove()), 1e3);
292
318
  }
293
- ), t.add("presetPrintable:exp", async (n) => {
319
+ ), t.add("presetPrintable:exp", async (a) => {
294
320
  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");
295
- 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;
296
- u.html(m, { callback: (w) => w.save() });
321
+ const { Devices: r, Canvas: c } = a, { sizeW: i, sizeH: l, sizeUnit: g } = r.getSelected().attributes, f = c.getFrameEl().contentDocument, s = "px", d = [S(i, g), S(l, g)], u = new window.jspdf.jsPDF({ unit: s, format: d }), b = f.body;
322
+ u.html(b, { callback: (w) => w.save() });
297
323
  }), () => {
298
- delete e.Commands.commands[H.print];
324
+ delete e.Commands.commands[M.print];
299
325
  };
300
326
  }
301
- function be(e, s) {
302
- const { blockPageBreak: t = {} } = s, { Components: o, Blocks: n } = e, r = "Page Break", i = `${ge}${A}`;
327
+ function be(e, n) {
328
+ const { blockPageBreak: t = {} } = n, { Components: o, Blocks: a } = e, r = "Page Break", c = `${ue}${A}`;
303
329
  return o.addType(A, {
304
330
  block: t && {
305
331
  label: r,
@@ -312,26 +338,26 @@ function be(e, s) {
312
338
  model: {
313
339
  defaults: {
314
340
  name: r,
315
- classes: i,
341
+ classes: c,
316
342
  attributes: { [V]: A },
317
343
  emptyState: !0,
318
344
  stylable: !1,
319
345
  droppable: !1,
320
- draggable: pe("wrapper"),
321
- styles: `.${i} { break-before: page; }`,
346
+ draggable: ge("wrapper"),
347
+ styles: `.${c} { break-before: page; }`,
322
348
  traits: []
323
349
  }
324
350
  }
325
351
  }), () => {
326
- o.removeType(A), n.remove(A);
352
+ o.removeType(A), a.remove(A);
327
353
  };
328
354
  }
329
- const me = "presetPrintable", ye = $.free, we = function(e, s = {}) {
330
- var M;
355
+ const ye = "presetPrintable", we = k.free, Pe = function(e, n = {}) {
356
+ var U;
331
357
  const t = {
332
358
  selectedDevice: y.A4,
333
- ...s
334
- }, { Canvas: o, Devices: n, Blocks: r } = e, i = o.events, l = e.events, d = t.selectedDevice || n.getConfig().default, g = [
359
+ ...n
360
+ }, { Canvas: o, Devices: a, Blocks: r } = e, c = o.events, i = e.events, l = t.selectedDevice || a.getConfig().default, g = [
335
361
  { id: y.A5, name: "A5", width: 148, height: 210, unit: "mm" },
336
362
  { id: y.A5Portrait, name: "A5 Portrait", width: 210, height: 148, unit: "mm" },
337
363
  { id: y.A4, name: "A4", width: 210, height: 297, unit: "mm" },
@@ -341,25 +367,25 @@ const me = "presetPrintable", ye = $.free, we = function(e, s = {}) {
341
367
  { id: y.letter, name: "Letter", width: 8.5, height: 11, unit: "in" },
342
368
  { id: y.legal, name: "Legal", width: 8.5, height: 14, unit: "in" },
343
369
  { id: y.ledger, name: "Ledger", width: 11, height: 17, unit: "in" }
344
- ], a = (((M = t.devices) == null ? void 0 : M.call(t, { items: g })) || g).map((v) => ue(v, t));
345
- n.devices.reset(a);
346
- const p = d && n.get(d) || n.getAll().at(0);
347
- n.select(p), ["map", "video"].forEach((v) => r.remove(v));
348
- const m = (v = {}) => {
349
- 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(
370
+ ], s = (((U = t.devices) == null ? void 0 : U.call(t, { items: g })) || g).map((v) => he(v, t));
371
+ a.devices.reset(s);
372
+ const d = l && a.get(l) || a.getAll().at(0);
373
+ a.select(d), ["map", "video"].forEach((v) => r.remove(v));
374
+ const b = (v = {}) => {
375
+ const m = "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: m }).pop(), J = G || P.add(
350
376
  {
351
- id: b,
377
+ id: m,
352
378
  selectors: [],
353
379
  selectorsAdd: "@page"
354
380
  },
355
381
  { at: 0 }
356
382
  );
357
- (v.fromDeviceChange || !S) && J.addStyle({
383
+ (v.fromDeviceChange || !G) && J.addStyle({
358
384
  size: `${T} ${Y}`,
359
- ...!S && { margin: "0" }
385
+ ...!G && { margin: "0" }
360
386
  });
361
- }, w = (v, b = {}) => {
362
- const P = v.document, { minHeight: T } = n.getSelected().attributes, R = `
387
+ }, w = (v, m = {}) => {
388
+ const P = v.document, { minHeight: T } = a.getSelected().attributes, R = `
363
389
  ${!!parseFloat(`${T}`) ? `
364
390
  [data-gjs-type="wrapper"] { min-height: ${T}; }
365
391
  ` : `
@@ -373,48 +399,48 @@ const me = "presetPrintable", ye = $.free, we = function(e, s = {}) {
373
399
  }
374
400
  `}
375
401
  `;
376
- C(`${q}preset-printable`, R, { doc: P, target: P.head }), m(b);
402
+ K(`${q}preset-printable`, R, { doc: P, target: P.head }), b(m);
377
403
  };
378
- e.on(i.frameLoadBody, (v) => {
379
- const b = v.window;
380
- if (w(b), t.fixedHeight) {
404
+ e.on(c.frameLoadBody, (v) => {
405
+ const m = v.window;
406
+ if (w(m), t.fixedHeight) {
381
407
  const T = v.model.getComponent().getEl();
382
408
  T == null || T.addEventListener("scroll", (B) => {
383
409
  const R = B.target;
384
410
  R.scrollTop > 0 && R.scrollTo(0, 0);
385
411
  });
386
412
  }
387
- }), e.on(n.events.select, () => {
388
- var b;
389
- const v = (b = o.getFrameEl().contentDocument) == null ? void 0 : b.defaultView;
413
+ }), e.on(a.events.select, () => {
414
+ var m;
415
+ const v = (m = o.getFrameEl().contentDocument) == null ? void 0 : m.defaultView;
390
416
  v && w(v, { fromDeviceChange: !0 });
391
417
  });
392
- const c = () => {
393
- const b = e.Css.getRules().filter((P) => P.selectorsToString() === "body").pop();
394
- b == null || b.addStyle({
418
+ const p = () => {
419
+ const m = e.Css.getRules().filter((P) => P.selectorsToString() === "body").pop();
420
+ m == null || m.addStyle({
395
421
  "margin-top": "",
396
422
  "margin-right": "",
397
423
  "margin-bottom": "",
398
424
  "margin-left": "",
399
425
  margin: "0"
400
426
  });
401
- }, h = [[l.projectLoad, c]];
402
- h.forEach(([v, b]) => e.on(v, b));
403
- const k = fe(e, t), x = ve(e), L = be(e, t);
427
+ }, h = [[i.projectLoad, p]];
428
+ h.forEach(([v, m]) => e.on(v, m));
429
+ const L = ve(e, t), $ = me(e), x = be(e, t);
404
430
  e.onReady(() => {
405
431
  e.UndoManager.clear();
406
432
  });
407
433
  const E = () => {
408
- h.forEach(([v, b]) => e.off(v, b)), k(), x(), L();
434
+ h.forEach(([v, m]) => e.off(v, m)), L(), $(), x();
409
435
  };
410
- e.on(l.destroy, E), ce({
436
+ e.on(i.destroy, E), ce({
411
437
  editor: e,
412
438
  licenseKey: t.licenseKey,
413
- plan: ye,
414
- pluginName: me,
439
+ plan: we,
440
+ pluginName: ye,
415
441
  cleanup: E
416
442
  });
417
- }, Pe = ie(we);
443
+ }, Te = ie(Pe);
418
444
  export {
419
- Pe as default
445
+ Te as default
420
446
  };