@grapesjs/studio-sdk-plugins 1.0.34 → 1.0.35

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 (47) hide show
  1. package/dist/aiChat/clientTools.d.ts +3 -3
  2. package/dist/aiChat/clientToolsProcessors.d.ts +5 -2
  3. package/dist/aiChat/components/AiChatHeader.d.ts +22 -2
  4. package/dist/aiChat/components/AiChatToolGenerateImage.d.ts +7 -0
  5. package/dist/aiChat/components/utils.d.ts +2 -0
  6. package/dist/aiChat/index.cjs.js +88 -99
  7. package/dist/aiChat/index.es.js +12677 -11001
  8. package/dist/aiChat/index.js +88 -99
  9. package/dist/aiChat/index.umd.js +97 -108
  10. package/dist/aiChat/locales/en.d.ts +38 -0
  11. package/dist/aiChat/server/index.cjs.js +91 -237
  12. package/dist/aiChat/server/index.es.js +721 -631
  13. package/dist/aiChat/server/index.js +91 -237
  14. package/dist/aiChat/server/index.umd.js +91 -237
  15. package/dist/aiChat/server/prompts.d.ts +15 -11
  16. package/dist/aiChat/server/tools.d.ts +74 -122
  17. package/dist/aiChat/server/types.d.ts +61 -3
  18. package/dist/aiChat/types.d.ts +69 -11
  19. package/dist/aiChat/typesSchema.d.ts +27 -0
  20. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  21. package/dist/googleFontsAssetProvider/index.es.js +11 -11
  22. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  23. package/dist/iconifyComponent/index.cjs.js +2 -2
  24. package/dist/iconifyComponent/index.es.js +11 -11
  25. package/dist/iconifyComponent/index.umd.js +2 -2
  26. package/dist/index.cjs.js +20 -20
  27. package/dist/index.es.js +208 -208
  28. package/dist/index.umd.js +1 -1
  29. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  30. package/dist/layoutSidebarButtons/index.es.js +7 -7
  31. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  32. package/dist/presetPrintable/index.cjs.js +2 -2
  33. package/dist/presetPrintable/index.es.js +5 -5
  34. package/dist/presetPrintable/index.umd.js +3 -3
  35. package/dist/prosemirror/index.cjs.js +1 -1
  36. package/dist/prosemirror/index.es.js +1 -1
  37. package/dist/prosemirror/index.umd.js +1 -1
  38. package/dist/rteTinyMce/index.cjs.js +2 -2
  39. package/dist/rteTinyMce/index.es.js +12 -12
  40. package/dist/rteTinyMce/index.umd.js +2 -2
  41. package/dist/tableComponent/index.cjs.js +1 -1
  42. package/dist/tableComponent/index.es.js +83 -83
  43. package/dist/tableComponent/index.umd.js +1 -1
  44. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  45. package/dist/youtubeAssetProvider/index.es.js +15 -15
  46. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  47. package/package.json +1 -1
@@ -1,12 +1,12 @@
1
1
  function ce(e, t, o) {
2
2
  let l, a, s, c, n;
3
3
  const r = t;
4
- function h() {
5
- const d = Date.now() - c;
6
- d < r && d >= 0 ? l = setTimeout(h, r - d) : (l = null, n = e.apply(s, a), s = a = null);
4
+ function d() {
5
+ const h = Date.now() - c;
6
+ h < r && h >= 0 ? l = setTimeout(d, r - h) : (l = null, n = e.apply(s, a), s = a = null);
7
7
  }
8
8
  const u = function() {
9
- return s = this, a = arguments, c = Date.now(), l || (l = setTimeout(h, r)), n;
9
+ return s = this, a = arguments, c = Date.now(), l || (l = setTimeout(d, r)), n;
10
10
  };
11
11
  return u.clear = function() {
12
12
  l && (clearTimeout(l), l = null);
@@ -14,11 +14,11 @@ function ce(e, t, o) {
14
14
  l && (n = e.apply(s, a), s = a = null, clearTimeout(l), l = null);
15
15
  }, u;
16
16
  }
17
- const O = "app.grapesjs.com", F = "app-stage.grapesjs.com", ie = "app2.grapesjs.com", he = "app-stage2.grapesjs.com", S = [
17
+ const O = "app.grapesjs.com", F = "app-stage.grapesjs.com", ie = "app2.grapesjs.com", de = "app-stage2.grapesjs.com", S = [
18
18
  O,
19
19
  ie,
20
20
  F,
21
- he,
21
+ de,
22
22
  "localhost",
23
23
  "127.0.0.1",
24
24
  ".local-credentialless.webcontainer.io",
@@ -27,11 +27,11 @@ const O = "app.grapesjs.com", F = "app-stage.grapesjs.com", ie = "app2.grapesjs.
27
27
  // For stackblitz.com demos
28
28
  "-sandpack.codesandbox.io"
29
29
  // For Sandpack demos
30
- ], de = "license:check:start", ve = "license:check:end", ue = () => typeof window < "u", be = ({
30
+ ], he = "license:check:start", ve = "license:check:end", ue = () => typeof window < "u", ge = ({
31
31
  isDev: e,
32
32
  isStage: t,
33
33
  isPlatform: o
34
- }) => `${e ? "" : `https://${t ? F : O}`}/${o ? "platform-api" : "api"}`, ge = () => {
34
+ }) => `${e ? "" : `https://${t ? F : O}`}/${o ? "platform-api" : "api"}`, be = () => {
35
35
  const e = ue() && window.location.hostname;
36
36
  return !!e && (S.includes(e) || S.some((t) => e.endsWith(t)));
37
37
  };
@@ -46,7 +46,7 @@ async function pe({
46
46
  params: a,
47
47
  body: s
48
48
  }) {
49
- const n = `${t || be({ isDev: !1, isStage: !1 })}${e}`, r = {
49
+ const n = `${t || ge({ isDev: !1, isStage: !1 })}${e}`, r = {
50
50
  method: o,
51
51
  headers: {
52
52
  "Content-Type": "application/json",
@@ -54,12 +54,12 @@ async function pe({
54
54
  }
55
55
  };
56
56
  s && (r.body = JSON.stringify(s));
57
- const h = a ? new URLSearchParams(a).toString() : "", u = h ? `?${h}` : "", d = await fetch(`${n}${u}`, r);
58
- if (!d.ok)
59
- throw new Error(`HTTP error! status: ${d.status}`);
60
- return d.json();
57
+ const d = a ? new URLSearchParams(a).toString() : "", u = d ? `?${d}` : "", h = await fetch(`${n}${u}`, r);
58
+ if (!h.ok)
59
+ throw new Error(`HTTP error! status: ${h.status}`);
60
+ return h.json();
61
61
  }
62
- var C = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(C || {}), $ = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", e.dialogOpen = "studio:dialogOpen", e.dialogClose = "studio:dialogClose", e.dialogExportCode = "studio:dialogExportCode", 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))($ || {});
62
+ var C = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(C || {}), $ = /* @__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))($ || {});
63
63
  const E = {
64
64
  [C.free]: 0,
65
65
  [C.startup]: 10,
@@ -80,30 +80,30 @@ async function we({
80
80
  cleanup: s
81
81
  }) {
82
82
  let c = "", n = !1;
83
- const r = ge(), h = (d) => {
84
- console.warn("Cleanup plugin:", o, "Reason:", d), s();
85
- }, u = (d = {}) => {
83
+ const r = be(), d = (h) => {
84
+ console.warn("Cleanup plugin:", o, "Reason:", h), s();
85
+ }, u = (h = {}) => {
86
86
  var y;
87
- const { error: p, sdkLicense: V } = d, m = (y = d.plan) == null ? void 0 : y.category;
88
- if (!(V || d.license) || p)
89
- h(p || "Invalid license");
87
+ const { error: p, sdkLicense: V } = h, m = (y = h.plan) == null ? void 0 : y.category;
88
+ if (!(V || h.license) || p)
89
+ d(p || "Invalid license");
90
90
  else if (m) {
91
91
  const z = E[t], A = E[m];
92
- z > A && h({ pluginRequiredPlan: t, licensePlan: m });
92
+ z > A && d({ pluginRequiredPlan: t, licensePlan: m });
93
93
  }
94
94
  };
95
- e.on(de, (d) => {
96
- c = d == null ? void 0 : d.baseApiUrl, n = !0;
97
- }), e.on(ve, (d) => {
98
- a == null || a(d), u(d);
95
+ e.on(he, (h) => {
96
+ c = h == null ? void 0 : h.baseApiUrl, n = !0;
97
+ }), e.on(ve, (h) => {
98
+ a == null || a(h), u(h);
99
99
  }), setTimeout(async () => {
100
100
  if (!n) {
101
101
  if (r) return;
102
102
  if (l) {
103
- const d = await ye({ licenseKey: l, pluginName: o, baseApiUrl: c });
104
- a == null || a(d), d && u(d);
103
+ const h = await ye({ licenseKey: l, pluginName: o, baseApiUrl: c });
104
+ a == null || a(h), h && u(h);
105
105
  } else
106
- h("The `licenseKey` option not provided");
106
+ d("The `licenseKey` option not provided");
107
107
  }
108
108
  }, 2e3);
109
109
  }
@@ -153,10 +153,10 @@ const v = {
153
153
  tableColumnCopy: '<svg viewBox="0 0 24 24"><path d="M17 6v16h-7V6h7zm-2 2h-3v12h3V8zm-2-6v2H8v15H6V2h7z"/></svg>',
154
154
  tableColumnPasteBefore: '<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1a3 3 0 0 1 2.8 2H18c1 0 2 .8 2 1.9V18c0 1-.8 2-1.9 2H11v-2h7V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v2H4V5c0-1 .8-2 1.9-2h3.3A3 3 0 0 1 12 1zm-2 7v12H4V8h6zM8.5 9.5h-3v9h3v-9zM12 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></svg>',
155
155
  tableColumnPasteAfter: '<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1a3 3 0 0 1 2.8 2H18c1 0 2 .8 2 1.9V7h-2V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v13h7v2H6c-1 0-2-.8-2-1.9V5c0-1 .8-2 1.9-2h3.3A3 3 0 0 1 12 1zm8 7v12h-6V8h6zm-1.5 1.5h-3v9h3v-9zM12 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></svg>'
156
- }, f = "table", W = "thead", _ = "tfoot", I = "tbody", g = "row", b = "cell", D = "clipboardTable", Re = [f, W, _, I, g, b], x = (e) => e.em.get(D) || [], Pe = (e) => e.every((t) => t.is(b)), k = (e, t) => {
157
- const { editor: o, event: l, opts: a } = e, s = l.currentTarget || l.target, { x: c, y: n, width: r, height: h } = s.getBoundingClientRect(), u = {
156
+ }, f = "table", W = "thead", _ = "tfoot", I = "tbody", b = "row", g = "cell", D = "clipboardTable", Re = [f, W, _, I, b, g], x = (e) => e.em.get(D) || [], Pe = (e) => e.every((t) => t.is(g)), k = (e, t) => {
157
+ const { editor: o, event: l, opts: a } = e, s = l.currentTarget || l.target, { x: c, y: n, width: r, height: d } = s.getBoundingClientRect(), u = {
158
158
  style: { width: 240, height: 300 },
159
- placer: { type: "popover", closeOnClickAway: !0, x: c, y: n, w: r, h },
159
+ placer: { type: "popover", closeOnClickAway: !0, x: c, y: n, w: r, h: d },
160
160
  layout: {
161
161
  type: "tabs",
162
162
  value: "props",
@@ -183,9 +183,9 @@ const v = {
183
183
  } = {}) => ({
184
184
  type: e,
185
185
  components: Array.from(Array(t).keys()).map((a) => ({
186
- type: g,
186
+ type: b,
187
187
  components: Array.from(Array(o).keys()).map((s) => ({
188
- type: b,
188
+ type: g,
189
189
  components: l ? { type: "text", content: U(l) ? l({ y: a, x: s }) : l } : void 0
190
190
  }))
191
191
  }))
@@ -227,33 +227,33 @@ const v = {
227
227
  const t = x(e);
228
228
  return t.length && Pe(t);
229
229
  }, G = ({ component: e, editor: t, after: o }) => {
230
- if (!e.is(b)) return;
231
- const l = e.closestType(f), a = e.closestType(g), s = e.index() + (o ? 1 : 0);
232
- l == null || l.findType(g).forEach((n) => n.append({ type: b }, { at: s }));
230
+ if (!e.is(g)) return;
231
+ const l = e.closestType(f), a = e.closestType(b), s = e.index() + (o ? 1 : 0);
232
+ l == null || l.findType(b).forEach((n) => n.append({ type: g }, { at: s }));
233
233
  const c = a == null ? void 0 : a.components().at(s);
234
234
  c && t.select(c);
235
235
  }, Y = ({ component: e, opts: t }) => {
236
- if (!e.is(b)) return;
236
+ if (!e.is(g)) return;
237
237
  const o = e.closestType(f), l = e.index();
238
- o == null || o.findType(g).forEach((a) => {
238
+ o == null || o.findType(b).forEach((a) => {
239
239
  var s;
240
240
  return (s = a.components().at(l)) == null ? void 0 : s.remove(t);
241
241
  });
242
242
  }, J = ({ component: e, editor: t }) => {
243
- if (!e.is(b)) return;
244
- const o = e.closestType(f), l = e.index(), a = (o == null ? void 0 : o.findType(g).map((s) => s.components().at(l))) || [];
243
+ if (!e.is(g)) return;
244
+ const o = e.closestType(f), l = e.index(), a = (o == null ? void 0 : o.findType(b).map((s) => s.components().at(l))) || [];
245
245
  a.length && t.em.set(D, a);
246
246
  }, L = (e) => {
247
247
  const { component: t, editor: o, after: l } = e;
248
- if (!t.is(b) || !X(e)) return;
248
+ if (!t.is(g) || !X(e)) return;
249
249
  const a = x(o), s = t.closestType(f), c = t.index() + (l ? 1 : 0);
250
- s == null || s.findType(g).forEach((n, r) => {
251
- const h = a[r], u = (h == null ? void 0 : h.clone()) || { type: b };
250
+ s == null || s.findType(b).forEach((n, r) => {
251
+ const d = a[r], u = (d == null ? void 0 : d.clone()) || { type: g };
252
252
  n.append(u, { at: c });
253
253
  });
254
254
  }, xe = (e) => {
255
255
  const { component: t } = e;
256
- t.is(b) && (J(e), Y({ ...e, opts: { temporary: !0 } }));
256
+ t.is(g) && (J(e), Y({ ...e, opts: { temporary: !0 } }));
257
257
  }, Be = (e) => {
258
258
  const t = X(e);
259
259
  return [{
@@ -307,19 +307,19 @@ const v = {
307
307
  }
308
308
  ]
309
309
  }];
310
- }, Q = "Row settings", Ie = (e) => e.every((t) => t.is(g)), P = (e) => {
311
- const { component: t } = e, o = t.is(b), l = t.is(g);
310
+ }, Q = "Row settings", Ie = (e) => e.every((t) => t.is(b)), P = (e) => {
311
+ const { component: t } = e, o = t.is(g), l = t.is(b);
312
312
  if (!(!o && !l))
313
- return l ? t : t.closestType(g);
313
+ return l ? t : t.closestType(b);
314
314
  }, N = (e) => {
315
315
  const { component: t, editor: o, after: l } = e, a = P(e);
316
316
  if (!a) return;
317
- const s = a.index() + (l ? 1 : 0), c = a.components().length, n = Array.from(Array(c).keys()).map(() => ({ type: b })), r = a.parent();
317
+ const s = a.index() + (l ? 1 : 0), c = a.components().length, n = Array.from(Array(c).keys()).map(() => ({ type: g })), r = a.parent();
318
318
  if (r) {
319
- const h = r.append({ type: g, components: n }, { at: s })[0];
320
- if (t.is(b) && h) {
321
- const u = t.index(), d = h.components().at(u);
322
- d && o.select(d);
319
+ const d = r.append({ type: b, components: n }, { at: s })[0];
320
+ if (t.is(g) && d) {
321
+ const u = t.index(), h = d.components().at(u);
322
+ h && o.select(h);
323
323
  }
324
324
  }
325
325
  }, ee = (e) => {
@@ -422,9 +422,9 @@ function ae(e) {
422
422
  s++;
423
423
  for (let r = l; r < l + c; r++) {
424
424
  t[r] || (t[r] = []);
425
- for (let h = s; h < s + n; h++)
426
- t[r][h] = {
427
- real: r === l && h === s,
425
+ for (let d = s; d < s + n; d++)
426
+ t[r][d] = {
427
+ real: r === l && d === s,
428
428
  cell: a,
429
429
  rowspan: c,
430
430
  colspan: n
@@ -437,26 +437,26 @@ function H(e, t, o) {
437
437
  var l;
438
438
  return (l = e[o]) == null ? void 0 : l[t];
439
439
  }
440
- const M = (e) => e.closestType(g);
440
+ const M = (e) => e.closestType(b);
441
441
  function ke(e, { x: t, y: o, rows: l, cols: a }) {
442
442
  var n;
443
443
  let s = M(e[o][t].cell), c;
444
444
  for (let r = 1; r <= l; r++)
445
445
  if (s = (n = s == null ? void 0 : s.parent()) == null ? void 0 : n.components().at(s.index() + 1), s) {
446
446
  for (c = t; c >= 0; c--) {
447
- const { cell: h } = e[o + r][c], u = M(h);
447
+ const { cell: d } = e[o + r][c], u = M(d);
448
448
  if (u === s) {
449
- for (let d = 1; d <= a; d++) {
450
- const p = h.index();
451
- u.append({ type: b }, { at: p + 1 });
449
+ for (let h = 1; h <= a; h++) {
450
+ const p = d.index();
451
+ u.append({ type: g }, { at: p + 1 });
452
452
  }
453
453
  break;
454
454
  }
455
455
  }
456
456
  if (c === -1) {
457
457
  const u = s.components().at(0).index();
458
- for (let d = 1; d <= a; d++)
459
- s.append({ type: b }, { at: u });
458
+ for (let h = 1; h <= a; h++)
459
+ s.append({ type: g }, { at: u });
460
460
  }
461
461
  }
462
462
  }
@@ -470,7 +470,7 @@ function se(e) {
470
470
  a.addAttributes({ colspan: 1, rowspan: 1 });
471
471
  for (let n = 0; n < c - 1; n++) {
472
472
  const r = a.index();
473
- M(a).append({ type: b }, { at: r + 1 });
473
+ M(a).append({ type: g }, { at: r + 1 });
474
474
  }
475
475
  ke(e, { x: o, y: t, rows: s - 1, cols: c });
476
476
  }
@@ -489,8 +489,8 @@ const B = (e, t = {}) => {
489
489
  let a, s;
490
490
  for (let n = 0; n < o.length; n++)
491
491
  for (let r = 0; r < o[n].length; r++) {
492
- const h = o[n][r];
493
- if ((c = t.selected) != null && c.includes(h.cell) || l.selected.hasComponent(h.cell)) {
492
+ const d = o[n][r];
493
+ if ((c = t.selected) != null && c.includes(d.cell) || l.selected.hasComponent(d.cell)) {
494
494
  const u = { x: r, y: n };
495
495
  a || (a = u), s = u;
496
496
  }
@@ -507,16 +507,16 @@ function Se(e, t = {}) {
507
507
  const { em: c } = e;
508
508
  if (!l || !a)
509
509
  return;
510
- const n = l.x, r = l.y, h = a.x, u = a.y, d = H(s, n, r), p = H(s, h, u);
511
- if (d && p) {
510
+ const n = l.x, r = l.y, d = a.x, u = a.y, h = H(s, n, r), p = H(s, d, u);
511
+ if (h && p) {
512
512
  se(s), s = ae(e);
513
513
  const V = [], m = H(s, n, r).cell;
514
514
  m.addAttributes({
515
- colspan: h - n + 1,
515
+ colspan: d - n + 1,
516
516
  rowspan: u - r + 1
517
517
  });
518
518
  for (let w = r; w <= u; w++)
519
- for (let y = n; y <= h; y++) {
519
+ for (let y = n; y <= d; y++) {
520
520
  const z = H(s, y, w);
521
521
  if (!z) continue;
522
522
  const { cell: A } = z;
@@ -527,12 +527,12 @@ function Se(e, t = {}) {
527
527
  }), c.setSelected(m), Te(e);
528
528
  }
529
529
  }
530
- const ne = "Cell settings", Ee = "Merge cells", Ge = "Split cell", Le = (e) => e.closestType(g), R = (e) => {
530
+ const ne = "Cell settings", Ee = "Merge cells", Ge = "Split cell", Le = (e) => e.closestType(b), R = (e) => {
531
531
  var t;
532
532
  return (t = Le(e)) == null ? void 0 : t.parent();
533
533
  }, Ne = (e) => {
534
534
  const t = e.editor.getSelectedAll(), o = R(t[0]), l = t[0];
535
- if (!o || !(l != null && l.is(b)) || t.length > 1)
535
+ if (!o || !(l != null && l.is(g)) || t.length > 1)
536
536
  return !1;
537
537
  const { rowspan: a, colspan: s } = T(l);
538
538
  return !(s < 2 && a < 2);
@@ -541,14 +541,14 @@ const ne = "Cell settings", Ee = "Merge cells", Ge = "Split cell", Le = (e) => e
541
541
  se(a);
542
542
  }, re = (e) => {
543
543
  const t = e.editor.getSelectedAll(), o = R(t[0]);
544
- if (!o || t.length < 2 || t.some((n) => !n.is(b) || R(n) !== o))
544
+ if (!o || t.length < 2 || t.some((n) => !n.is(g) || R(n) !== o))
545
545
  return !1;
546
546
  const { grid: l, startPos: a, endPos: s } = B(o), { em: c } = o;
547
547
  if (!a || !s) return !1;
548
548
  for (let n = a.y; n <= s.y; n++)
549
549
  for (let r = a.x; r <= s.x; r++) {
550
- const h = H(l, r, n);
551
- if (!h || !c.selected.hasComponent(h.cell))
550
+ const d = H(l, r, n);
551
+ if (!d || !c.selected.hasComponent(d.cell))
552
552
  return !1;
553
553
  }
554
554
  return !0;
@@ -680,12 +680,12 @@ const ne = "Cell settings", Ee = "Merge cells", Ge = "Split cell", Le = (e) => e
680
680
  type: "checkbox",
681
681
  label: "Caption",
682
682
  setValue({ component: c, value: n, emitUpdate: r }) {
683
- const h = c.find("caption")[0];
684
- n ? !h && c.append({
683
+ const d = c.find("caption")[0];
684
+ n ? !d && c.append({
685
685
  type: "text",
686
686
  tagName: "caption",
687
687
  components: { type: "textnode", content: "Caption" }
688
- }) : h == null || h.remove(), r(), e.refresh({ tools: !0 });
688
+ }) : d == null || d.remove(), r(), e.refresh({ tools: !0 });
689
689
  },
690
690
  getValue(c) {
691
691
  return !!c.component.find("caption")[0];
@@ -720,7 +720,7 @@ const ne = "Cell settings", Ee = "Merge cells", Ge = "Split cell", Le = (e) => e
720
720
  ...a
721
721
  }
722
722
  }
723
- }), l.addType(g, {
723
+ }), l.addType(b, {
724
724
  model: {
725
725
  defaults: {
726
726
  icon: v.tableRowProperties,
@@ -734,7 +734,7 @@ const ne = "Cell settings", Ee = "Merge cells", Ge = "Split cell", Le = (e) => e
734
734
  ]
735
735
  }
736
736
  }
737
- }), l.addType(b, {
737
+ }), l.addType(g, {
738
738
  model: {
739
739
  defaults: {
740
740
  icon: v.tableCellProperties,
@@ -787,10 +787,10 @@ const ne = "Cell settings", Ee = "Merge cells", Ge = "Split cell", Le = (e) => e
787
787
  }
788
788
  });
789
789
  const s = ce((c, n) => {
790
- var d;
791
- const r = e.getSelectedAll(), h = !!((d = n == null ? void 0 : n.event) != null && d.shiftKey);
792
- if (r.length < 2 || !h || n.fromCell) return;
793
- const u = r.map((p) => p.is(b) ? p : p.closestType(b)).filter(Boolean);
790
+ var h;
791
+ const r = e.getSelectedAll(), d = !!((h = n == null ? void 0 : n.event) != null && h.shiftKey);
792
+ if (r.length < 2 || !d || n.fromCell) return;
793
+ const u = r.map((p) => p.is(g) ? p : p.closestType(g)).filter(Boolean);
794
794
  u.length === r.length && $e(u);
795
795
  }, 0);
796
796
  e.on("component:select", s), we({
@@ -1 +1 @@
1
- (function(z,y){typeof exports=="object"&&typeof module<"u"?module.exports=y():typeof define=="function"&&define.amd?define(y):(z=typeof globalThis<"u"?globalThis:z||self,z.StudioSdkPlugins_tableComponent=y())})(this,function(){"use strict";function z(e,t,o){let l,n,s,c,a;const r=t;function d(){const h=Date.now()-c;h<r&&h>=0?l=setTimeout(d,r-h):(l=null,a=e.apply(s,n),s=n=null)}const u=function(){return s=this,n=arguments,c=Date.now(),l||(l=setTimeout(d,r)),a};return u.clear=function(){l&&(clearTimeout(l),l=null)},u.flush=function(){l&&(a=e.apply(s,n),s=n=null,clearTimeout(l),l=null)},u}const y="app.grapesjs.com",G="app-stage.grapesjs.com",L=[y,"app2.grapesjs.com",G,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],ie="license:check:start",de="license:check:end",he=()=>typeof window<"u",ve=({isDev:e,isStage:t,isPlatform:o})=>`${e?"":`https://${t?G:y}`}/${o?"platform-api":"api"}`,ue=()=>{const e=he()&&window.location.hostname;return!!e&&(L.includes(e)||L.some(t=>e.endsWith(t)))};function N(e){return typeof e=="function"}async function be({path:e,baseApiUrl:t,method:o="GET",headers:l={},params:n,body:s}){const a=`${t||ve({isDev:!1,isStage:!1})}${e}`,r={method:o,headers:{"Content-Type":"application/json",...l}};s&&(r.body=JSON.stringify(s));const d=n?new URLSearchParams(n).toString():"",u=d?`?${d}`:"",h=await fetch(`${a}${u}`,r);if(!h.ok)throw new Error(`HTTP error! status: ${h.status}`);return h.json()}var C=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(C||{}),O=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",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))(O||{});const Z={[C.free]:0,[C.startup]:10,[C.business]:20,[C.enterprise]:30};function ge(e){const t=e;return t.init=o=>l=>e(l,o),t}const pe=e=>ge(e);async function fe({editor:e,plan:t,pluginName:o,licenseKey:l,onLicenseCheckResponse:n,cleanup:s}){let c="",a=!1;const r=ue(),d=h=>{console.warn("Cleanup plugin:",o,"Reason:",h),s()},u=(h={})=>{var V;const{error:f,sdkLicense:B}=h,m=(V=h.plan)==null?void 0:V.category;if(!(B||h.license)||f)d(f||"Invalid license");else if(m){const I=Z[t],M=Z[m];I>M&&d({pluginRequiredPlan:t,licensePlan:m})}};e.on(ie,h=>{c=h==null?void 0:h.baseApiUrl,a=!0}),e.on(de,h=>{n==null||n(h),u(h)}),setTimeout(async()=>{if(!a){if(r)return;if(l){const h=await me({licenseKey:l,pluginName:o,baseApiUrl:c});n==null||n(h),h&&u(h)}else d("The `licenseKey` option not provided")}},2e3)}async function me(e){const{licenseKey:t,pluginName:o,baseApiUrl:l}=e;try{return(await be({baseApiUrl:l,path:`/sdk/${t||"na"}`,method:"POST",params:{d:window.location.hostname,pn:o}})).result||{}}catch(n){return console.error("Error during SDK license check:",n),!1}}const we="tableComponent",ye=C.startup;var i=(e=>(e.table="table",e.tableSettings="tableSettings",e.tableDelete="tableDelete",e.tableHead="tableHead",e.tableFoot="tableFoot",e.tableCellItems="tableCellItems",e.tableCellProperties="tableCellProperties",e.tableCellMerge="tableCellMerge",e.tableCellSplit="tableCellSplit",e.tableRowItems="tableRowItems",e.tableRowInsertBefore="tableRowInsertBefore",e.tableRowInsertAfter="tableRowInsertAfter",e.tableRowDelete="tableRowDelete",e.tableRowProperties="tableRowProperties",e.tableRowCut="tableRowCut",e.tableRowCopy="tableRowCopy",e.tableRowPasteBefore="tableRowPasteBefore",e.tableRowPasteAfter="tableRowPasteAfter",e.tableColumn="tableColumn",e.tableColumnItems="tableColumnItems",e.tableColumnInsertBefore="tableColumnInsertBefore",e.tableColumnInsertAfter="tableColumnInsertAfter",e.tableColumnDelete="tableColumnDelete",e.tableColumnCut="tableColumnCut",e.tableColumnCopy="tableColumnCopy",e.tableColumnPasteBefore="tableColumnPasteBefore",e.tableColumnPasteAfter="tableColumnPasteAfter",e))(i||{});const v={table:'<svg viewBox="0 0 24 24"><path d="M5 4h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2m0 4v4h6V8H5m8 0v4h6V8h-6m-8 6v4h6v-4H5m8 0v4h6v-4h-6Z"/></svg>',tableSettings:'<svg viewBox="0 0 24 24"><path d="M5 4h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2m0 4v4h6V8H5m8 0v4h6V8h-6m-8 6v4h6v-4H5m8 0v4h6v-4h-6Z"/></svg>',tableDelete:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zM5 6v12h14V6H5z"/><path d="m14.4 8.6 1 1-2.3 2.4 2.3 2.4-1 1-2.4-2.3-2.4 2.3-1-1 2.3-2.4-2.3-2.4 1-1 2.4 2.3z"/></svg>',tableHead:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14Zm-8 11H5v3h6v-3Zm8 0h-6v3h6v-3Zm0-5h-6v3h6v-3ZM5 13h6v-3H5v3Z"/></svg>',tableFoot:'<svg viewBox="0 0 24 24" data-test="1" style="transform: rotate(180deg);"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14Zm-8 11H5v3h6v-3Zm8 0h-6v3h6v-3Zm0-5h-6v3h6v-3ZM5 13h6v-3H5v3Z"/></svg>',tableColumn:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14Zm0 9h-4v5h4v-5Zm-6 0H9v5h4v-5Zm0-7H9v5h4V6Zm6 0h-4v5h4V6Z"/></svg>',tableCellItems:"",tableCellProperties:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6l2-2h14zm-8 9H5v5h6v-5zm8 0h-6v5h6v-5zm-8-7H5v5h6V6z"/></svg>',tableCellMerge:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6l2-2h14zM5 16v2h3v-2H5zm14-5h-9v7h9v-7zm0-5h-4v3h4V6zM8 6H5v3h3V6zm5 0h-3v3h3V6zm-8 8h3v-3H5v3z"/></svg>',tableCellSplit:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zM8 15.5H5V18h3v-2.5zm11-5h-9V18h9v-7.5zm-2.5 1 1 1-2 2 2 2-1 1-2-2-2 2-1-1 2-2-2-2 1-1 2 2 2-2zm-8.5-1H5v3h3v-3zM19 6h-4v2.5h4V6zM8 6H5v2.5h3V6zm5 0h-3v2.5h3V6z"/></svg>',tableRowItems:"",tableRowInsertBefore:'<svg viewBox="0 0 24 24"><path d="M6 4a1 1 0 1 1 0 2H5v6h14V6h-1a1 1 0 0 1 0-2h2c.6 0 1 .4 1 1v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5c0-.6.4-1 1-1h2zm5 10H5v4h6v-4zm8 0h-6v4h6v-4zM12 3c.5 0 1 .4 1 .9V6h2a1 1 0 0 1 0 2h-2v2a1 1 0 0 1-2 .1V8H9a1 1 0 0 1 0-2h2V4c0-.6.4-1 1-1z"/></svg>',tableRowInsertAfter:'<svg viewBox="0 0 24 24"><path d="M12 13c.5 0 1 .4 1 .9V16h2a1 1 0 0 1 .1 2H13v2a1 1 0 0 1-2 .1V18H9a1 1 0 0 1-.1-2H11v-2c0-.6.4-1 1-1zm6 7a1 1 0 0 1 0-2h1v-6H5v6h1a1 1 0 0 1 0 2H4a1 1 0 0 1-1-1V6c0-1.1.9-2 2-2h14a2 2 0 0 1 2 2v13c0 .5-.4 1-.9 1H18zM11 6H5v4h6V6zm8 0h-6v4h6V6z"/></svg>',tableRowDelete:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zm0 2H5v3h2.5v2H5v2h2.5v2H5v3h14v-3h-2.5v-2H19v-2h-2.5V9H19V6zm-4.7 1.8 1.2 1L13 12l2.6 3.3-1.2 1-2.3-3-2.3 3-1.2-1L11 12 8.5 8.7l1.2-1 2.3 3 2.3-3z"/></svg>',tableRowProperties:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zM5 15v3h6v-3H5zm14 0h-6v3h6v-3zm0-9h-6v3h6V6zM5 9h6V6H5v3z"/></svg>',tableRowCut:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M22 3v5H9l3 3 2-2h4l-4 4 1 1h.5c.4 0 .8 0 1.2.3.5.2.9.4 1.2.8.7.6 1 1.3 1 2.2.2.8 0 1.5-.6 2l-.8.5-1 .2c-.4 0-.8 0-1.2-.3a3.9 3.9 0 0 1-2.1-2.2c-.2-.5-.3-1-.2-1.5l-1-1-1 1c0 .5 0 1-.2 1.5-.1.5-.4 1-.9 1.4-.3.4-.7.6-1.2.8l-1.2.3c-.4 0-.7 0-1-.2-.3 0-.6-.3-.8-.5-.5-.5-.8-1.2-.7-2a3 3 0 0 1 1-2.2A3.7 3.7 0 0 1 8.6 14H9l1-1-4-4-.5-1a3.3 3.3 0 0 1 0-2c0-.4.3-.7.5-1l2 2V3h14zM8.5 15.3h-.3a2.6 2.6 0 0 0-.8.4 2.5 2.5 0 0 0-.9 1.1l-.1.4v.7l.2.5.5.2h.7a2.5 2.5 0 0 0 .8-.3L9 18l.4-.4.2-.4.1-.4v-.7a1 1 0 0 0-.2-.5 1 1 0 0 0-.4-.2h-.5zm7 0H15a1 1 0 0 0-.4.3 1 1 0 0 0-.2.5 1.5 1.5 0 0 0 0 .7v.4a2.8 2.8 0 0 0 .5.7h.1a2.8 2.8 0 0 0 .8.6l.4.1h.7l.5-.2.2-.5v-.7a2.6 2.6 0 0 0-.3-.8 2.4 2.4 0 0 0-.7-.7 2.5 2.5 0 0 0-.8-.3h-.3zM12 11.6c-.4 0-.7.1-1 .4-.3.3-.4.6-.4 1s.1.7.4 1c.3.3.6.4 1 .4s.7-.1 1-.4c.3-.3.4-.6.4-1s-.1-.7-.4-1c-.3-.3-.6-.4-1-.4zm8.5-7.1h-11v2h11v-2z"/></svg>',tableRowCopy:'<svg viewBox="0 0 24 24"><path d="M22 11v7H6v-7h16zm-2 2H8v3h12v-3zm-1-6v2H4v5H2V7h17z"/></svg>',tableRowPasteBefore:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1a3 3 0 0 1 2.8 2H18c1 0 2 .8 2 1.9V7h-2V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v13h12v-4h2v4c0 1-.8 2-1.9 2H6c-1 0-2-.8-2-1.9V5c0-1 .8-2 1.9-2h3.3A3 3 0 0 1 12 1zm10 7v5H8V8h14zm-1.5 1.5h-11v2h11v-2zM12 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></svg>',tableRowPasteAfter:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1a3 3 0 0 1 2.8 2H18c1 0 2 .8 2 1.9V11h-2V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v13h14c0 1-.8 2-1.9 2H6c-1 0-2-.8-2-1.9V5c0-1 .8-2 1.9-2h3.3A3 3 0 0 1 12 1zm10 11v5H8v-5h14zm-1.5 1.5h-11v2h11v-2zM12 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></svg>',tableColumnItems:"",tableColumnInsertBefore:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a1 1 0 0 1-1-1v-2a1 1 0 0 1 2 0v1h8V6H5v1a1 1 0 1 1-2 0V5c0-.6.4-1 1-1h15zm0 9h-4v5h4v-5zM8 8c.5 0 1 .4 1 .9V11h2a1 1 0 0 1 .1 2H9v2a1 1 0 0 1-2 .1V13H5a1 1 0 0 1-.1-2H7V9c0-.6.4-1 1-1zm11-2h-4v5h4V6z"/></svg>',tableColumnInsertAfter:'<svg viewBox="0 0 24 24"><path d="M20 4c.6 0 1 .4 1 1v2a1 1 0 0 1-2 0V6h-8v12h8v-1a1 1 0 0 1 2 0v2c0 .5-.4 1-.9 1H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h15zM9 13H5v5h4v-5zm7-5c.5 0 1 .4 1 .9V11h2a1 1 0 0 1 .1 2H17v2a1 1 0 0 1-2 .1V13h-2a1 1 0 0 1-.1-2H15V9c0-.6.4-1 1-1zM9 6H5v5h4V6z"/></svg>',tableColumnDelete:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zm-4 4h-2V6h-2v2H9V6H5v12h4v-2h2v2h2v-2h2v2h4V6h-4v2zm.3.5 1 1.2-3 2.3 3 2.3-1 1.2L12 13l-3.3 2.6-1-1.2 3-2.3-3-2.3 1-1.2L12 11l3.3-2.5z"/></svg>',tableColumnCut:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M7.2 4.5a3 3 0 0 1 2.2 1A3.7 3.7 0 0 1 10.5 8v.5l1 1 4-4 1-.5a3.3 3.3 0 0 1 2 0c.4 0 .7.3 1 .5L17 8h4v13h-6V10l-1.5 1.5.5.5v4l-2.5-2.5-1 1v.5c0 .4 0 .8-.3 1.2-.2.5-.4.9-.8 1.2-.6.7-1.3 1-2.2 1-.8.2-1.5 0-2-.6l-.5-.8-.2-1c0-.4 0-.8.3-1.2A3.9 3.9 0 0 1 7 12.7c.5-.2 1-.3 1.5-.2l1-1-1-1c-.5 0-1 0-1.5-.2-.5-.1-1-.4-1.4-.9-.4-.3-.6-.7-.8-1.2L4.5 7c0-.4 0-.7.2-1 0-.3.3-.6.5-.8.5-.5 1.2-.8 2-.7zm12.3 5h-3v10h3v-10zM8 13.8h-.3l-.4.2a2.8 2.8 0 0 0-.7.4v.1a2.8 2.8 0 0 0-.6.8l-.1.4v.7l.2.5.5.2h.7a2.6 2.6 0 0 0 .8-.3 2.4 2.4 0 0 0 .7-.7 2.5 2.5 0 0 0 .3-.8 1.5 1.5 0 0 0 0-.8 1 1 0 0 0-.2-.4 1 1 0 0 0-.5-.2H8zm3.5-3.7c-.4 0-.7.1-1 .4-.3.3-.4.6-.4 1s.1.7.4 1c.3.3.6.4 1 .4s.7-.1 1-.4c.3-.3.4-.6.4-1s-.1-.7-.4-1c-.3-.3-.6-.4-1-.4zM7 5.8h-.4a1 1 0 0 0-.5.3 1 1 0 0 0-.2.5v.7a2.5 2.5 0 0 0 .3.8l.2.3h.1l.4.4.4.2.4.1h.7L9 9l.2-.4a1.6 1.6 0 0 0 0-.8 2.6 2.6 0 0 0-.3-.8 2.5 2.5 0 0 0-1.2-1l-.4-.1H7z"/></svg>',tableColumnCopy:'<svg viewBox="0 0 24 24"><path d="M17 6v16h-7V6h7zm-2 2h-3v12h3V8zm-2-6v2H8v15H6V2h7z"/></svg>',tableColumnPasteBefore:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1a3 3 0 0 1 2.8 2H18c1 0 2 .8 2 1.9V18c0 1-.8 2-1.9 2H11v-2h7V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v2H4V5c0-1 .8-2 1.9-2h3.3A3 3 0 0 1 12 1zm-2 7v12H4V8h6zM8.5 9.5h-3v9h3v-9zM12 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></svg>',tableColumnPasteAfter:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1a3 3 0 0 1 2.8 2H18c1 0 2 .8 2 1.9V7h-2V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v13h7v2H6c-1 0-2-.8-2-1.9V5c0-1 .8-2 1.9-2h3.3A3 3 0 0 1 12 1zm8 7v12h-6V8h6zm-1.5 1.5h-3v9h3v-9zM12 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></svg>'},p="table",F="thead",_="tfoot",D="tbody",g="row",b="cell",k="clipboardTable",Ce=[p,F,_,D,g,b],A=e=>e.em.get(k)||[],He=e=>e.every(t=>t.is(b)),T=(e,t)=>{const{editor:o,event:l,opts:n}=e,s=l.currentTarget||l.target,{x:c,y:a,width:r,height:d}=s.getBoundingClientRect(),u={style:{width:240,height:300},placer:{type:"popover",closeOnClickAway:!0,x:c,y:a,w:r,h:d},layout:{type:"tabs",value:"props",tabs:[{id:"styles",label:"Styles",children:{type:"panelStyles"}},{id:"props",label:"Properties",children:{type:"panelProperties",style:{padding:"14px 7px"}}}]},...t};N(n.openSettings)?n.openSettings({...e,layoutProps:u}):o.runCommand(O.layoutToggle,u)},Re=(e,{rows:t=1,cells:o=5,text:l}={})=>({type:e,components:Array.from(Array(t).keys()).map(n=>({type:g,components:Array.from(Array(o).keys()).map(s=>({type:b,components:l?{type:"text",content:N(l)?l({y:n,x:s}):l}:void 0}))}))}),U="Table settings",$=e=>{const{component:t}=e;return t.is(p)?t:t.closestType(p)},Pe=e=>{var t;(t=$(e))==null||t.remove(e.opts)},Ve=e=>{const t=$(e);t&&(e.editor.select(t),T(e,{id:"tableSettings",header:{label:U}}))},W=e=>[{id:i.table,icon:v[i.table],label:"Table",items:[{id:i.tableSettings,label:U,icon:v[i.tableSettings],onClick:({event:o})=>Ve({...e,event:o})},{id:i.tableDelete,label:"Delete table",icon:v[i.tableDelete],onClick:()=>Pe(e)}]}],j=({editor:e})=>{const t=A(e);return t.length&&He(t)},K=({component:e,editor:t,after:o})=>{if(!e.is(b))return;const l=e.closestType(p),n=e.closestType(g),s=e.index()+(o?1:0);l==null||l.findType(g).forEach(a=>a.append({type:b},{at:s}));const c=n==null?void 0:n.components().at(s);c&&t.select(c)},q=({component:e,opts:t})=>{if(!e.is(b))return;const o=e.closestType(p),l=e.index();o==null||o.findType(g).forEach(n=>{var s;return(s=n.components().at(l))==null?void 0:s.remove(t)})},X=({component:e,editor:t})=>{if(!e.is(b))return;const o=e.closestType(p),l=e.index(),n=(o==null?void 0:o.findType(g).map(s=>s.components().at(l)))||[];n.length&&t.em.set(k,n)},Y=e=>{const{component:t,editor:o,after:l}=e;if(!t.is(b)||!j(e))return;const n=A(o),s=t.closestType(p),c=t.index()+(l?1:0);s==null||s.findType(g).forEach((a,r)=>{const d=n[r],u=(d==null?void 0:d.clone())||{type:b};a.append(u,{at:c})})},ze=e=>{const{component:t}=e;t.is(b)&&(X(e),q({...e,opts:{temporary:!0}}))},Ae=e=>{const t=j(e);return[{id:i.tableColumnItems,icon:v[i.tableColumn],label:"Column",items:[{id:i.tableColumnInsertBefore,label:"Insert column before",icon:v[i.tableColumnInsertBefore],onClick:()=>K(e)},{id:i.tableColumnInsertAfter,label:"Insert column after",icon:v[i.tableColumnInsertAfter],onClick:()=>K({...e,after:!0})},{id:i.tableColumnDelete,label:"Delete column",icon:v[i.tableColumnDelete],onClick:()=>q(e)},{id:i.tableColumnCut,label:"Cut column",icon:v[i.tableColumnCut],onClick:()=>ze(e)},{id:i.tableColumnCopy,label:"Copy column",icon:v[i.tableColumnCopy],onClick:()=>X(e)},{id:i.tableColumnPasteBefore,label:"Paste column before",icon:v[i.tableColumnPasteBefore],disabled:!t,onClick:()=>Y(e)},{id:i.tableColumnPasteAfter,label:"Paste column after",icon:v[i.tableColumnPasteAfter],disabled:!t,onClick:()=>Y({...e,after:!0})}]}]},J="Row settings",xe=e=>e.every(t=>t.is(g)),H=e=>{const{component:t}=e,o=t.is(b),l=t.is(g);if(!(!o&&!l))return l?t:t.closestType(g)},Q=e=>{const{component:t,editor:o,after:l}=e,n=H(e);if(!n)return;const s=n.index()+(l?1:0),c=n.components().length,a=Array.from(Array(c).keys()).map(()=>({type:b})),r=n.parent();if(r){const d=r.append({type:g,components:a},{at:s})[0];if(t.is(b)&&d){const u=t.index(),h=d.components().at(u);h&&o.select(h)}}},ee=e=>{var t;(t=H(e))==null||t.remove(e.opts)},te=e=>{const t=H(e);t&&e.editor.em.set(k,[t])},le=e=>{var a;const{editor:t,after:o}=e,l=H(e);if(!l||!oe(e))return;const s=A(t)[0],c=l.index()+(o?1:0);s&&((a=l.parent())==null||a.append(s.clone(),{at:c}))},Be=e=>{H(e)&&(te(e),ee({...e,opts:{temporary:!0}}))},oe=({editor:e})=>{const t=A(e);return t.length&&xe(t)},Ie=e=>{const t=H(e);t&&(e.editor.select(t),T(e,{id:"tableRowSettings",header:{label:J}}))},ne=e=>{const t=oe(e);return[{id:i.tableRowItems,icon:v[i.tableRowProperties],label:"Row",items:[{id:i.tableRowInsertBefore,label:"Insert row before",icon:v[i.tableRowInsertBefore],onClick:()=>Q(e)},{id:i.tableRowInsertAfter,label:"Insert row after",icon:v[i.tableRowInsertAfter],onClick:()=>Q({...e,after:!0})},{id:i.tableRowDelete,label:"Delete row",icon:v[i.tableRowDelete],onClick:()=>ee(e)},{id:i.tableRowProperties,label:J,icon:v[i.tableRowProperties],onClick:({event:l})=>Ie({...e,event:l})},{id:i.tableRowCut,label:"Cut row",icon:v[i.tableRowCut],onClick:()=>Be(e)},{id:i.tableRowCopy,label:"Copy row",icon:v[i.tableRowCopy],onClick:()=>te(e)},{id:i.tableRowPasteBefore,label:"Paste row before",icon:v[i.tableRowPasteBefore],disabled:!t,onClick:()=>le(e)},{id:i.tableRowPasteAfter,label:"Paste row after",icon:v[i.tableRowPasteAfter],disabled:!t,onClick:()=>le({...e,after:!0})}]},...W(e)]},S=e=>{const t=e.attributes.attributes||{},o=parseInt(`${t.rowspan||1}`,10),l=parseInt(`${t.colspan||1}`,10);return{rowspan:o,colspan:l}};function se(e){const t=[];return e.components().forEach((o,l)=>{o.components().each((n,s)=>{const{rowspan:c,colspan:a}=S(n);if(t[l])for(;t[l][s];)s++;for(let r=l;r<l+c;r++){t[r]||(t[r]=[]);for(let d=s;d<s+a;d++)t[r][d]={real:r===l&&d===s,cell:n,rowspan:c,colspan:a}}})}),t}function R(e,t,o){var l;return(l=e[o])==null?void 0:l[t]}const E=e=>e.closestType(g);function Me(e,{x:t,y:o,rows:l,cols:n}){var a;let s=E(e[o][t].cell),c;for(let r=1;r<=l;r++)if(s=(a=s==null?void 0:s.parent())==null?void 0:a.components().at(s.index()+1),s){for(c=t;c>=0;c--){const{cell:d}=e[o+r][c],u=E(d);if(u===s){for(let h=1;h<=n;h++){const f=d.index();u.append({type:b},{at:f+1})}break}}if(c===-1){const u=s.components().at(0).index();for(let h=1;h<=n;h++)s.append({type:b},{at:u})}}}function ae(e){for(let t=0;t<e.length;t++)for(let o=0;o<e[t].length;o++){const n=e[t][o].cell;if(n.em.selected.hasComponent(n)){const{rowspan:s,colspan:c}=S(n);if(c>1||s>1){n.addAttributes({colspan:1,rowspan:1});for(let a=0;a<c-1;a++){const r=n.index();E(n).append({type:b},{at:r+1})}Me(e,{x:o,y:t,rows:s-1,cols:c})}}}}function De(e){const t=[];e.components().forEach(o=>{o.components().length||t.push(o)}),t.forEach(o=>o.remove())}const x=(e,t={})=>{var c;const o=se(e),{em:l}=e;let n,s;for(let a=0;a<o.length;a++)for(let r=0;r<o[a].length;r++){const d=o[a][r];if((c=t.selected)!=null&&c.includes(d.cell)||l.selected.hasComponent(d.cell)){const u={x:r,y:a};n||(n=u),s=u}}return{grid:o,startPos:n,endPos:s}};function ke(e,t={}){const o=x(e),{startPos:l,endPos:n}=o;let{grid:s}=o;const{em:c}=e;if(!l||!n)return;const a=l.x,r=l.y,d=n.x,u=n.y,h=R(s,a,r),f=R(s,d,u);if(h&&f){ae(s),s=se(e);const B=[],m=R(s,a,r).cell;m.addAttributes({colspan:d-a+1,rowspan:u-r+1});for(let w=r;w<=u;w++)for(let V=a;V<=d;V++){const I=R(s,V,w);if(!I)continue;const{cell:M}=I;M!==m&&B.push(M)}B.forEach(w=>{t.mergeContent&&m.append(w.components().models),w.remove()}),c.setSelected(m),De(e)}}const re="Cell settings",Te="Merge cells",Se="Split cell",Ee=e=>e.closestType(g),P=e=>{var t;return(t=Ee(e))==null?void 0:t.parent()},Ge=e=>{const t=e.editor.getSelectedAll(),o=P(t[0]),l=t[0];if(!o||!(l!=null&&l.is(b))||t.length>1)return!1;const{rowspan:n,colspan:s}=S(l);return!(s<2&&n<2)},Le=e=>{const o=e.editor.getSelectedAll()[0],l=P(o),{grid:n}=x(l);ae(n)},ce=e=>{const t=e.editor.getSelectedAll(),o=P(t[0]);if(!o||t.length<2||t.some(a=>!a.is(b)||P(a)!==o))return!1;const{grid:l,startPos:n,endPos:s}=x(o),{em:c}=o;if(!n||!s)return!1;for(let a=n.y;a<=s.y;a++)for(let r=n.x;r<=s.x;r++){const d=R(l,r,a);if(!d||!c.selected.hasComponent(d.cell))return!1}return!0},Ne=e=>{const{editor:t}=e;if(!ce(e))return;const o=t.getSelectedAll(),l=P(o[0]);ke(l,{mergeContent:!0})},Oe=e=>{T(e,{id:"tableCellSettings",header:{label:re}})},Ze=e=>[{id:i.tableCellItems,icon:v[i.tableCellProperties],label:"Cell",items:[{id:i.tableCellProperties,label:re,icon:v[i.tableCellProperties],onClick:({event:o})=>Oe({...e,event:o})},{id:i.tableCellMerge,label:Te,icon:v[i.tableCellMerge],onClick:()=>Ne(e),disabled:!ce(e)},{id:i.tableCellSplit,label:Se,icon:v[i.tableCellSplit],onClick:()=>Le(e),disabled:!Ge(e)}]},...Ae(e),...ne(e)],Fe=e=>{const t=e[0]&&P(e[0]);if(!t)return;const{grid:o,startPos:l,endPos:n}=x(t,{selected:e});if(!l||!n)return;const s=[];for(let c=l.y;c<=n.y;c++)for(let a=l.x;a<=n.x;a++){const r=R(o,a,c);r&&s.push(r.cell)}s.length&&t.em.setSelected(s,{fromCell:!0})};return pe(function(e,t={}){const o={block:{},...t},{Components:l}=e,n={copyable:!1,emptyState:!0,highlightable:!1,stylable:["color","font-family","font-size","font-weight","line-height","text-align","vertical-align","background-color","border-width","border-style","border-color"]};l.addType(p,{block:o.block&&{label:"Table",media:v.table,category:"Extra",content:{type:p,style:{width:"100%"}},select:!0,...o.block},model:{defaults:{emptyState:!0,highlightable:!1,icon:v.table,stylable:["width","height","margin","font-family","font-size","font-weight","line-height","text-align","background","background-color","border-width","border-style","border-color"],traits:[{type:"number",min:0,name:"cellspacing",label:"Cell spacing"},{type:"number",min:0,name:"cellpadding",label:"Cell padding"},{id:"tableCaption",type:"checkbox",label:"Caption",setValue({component:c,value:a,emitUpdate:r}){const d=c.find("caption")[0];a?!d&&c.append({type:"text",tagName:"caption",components:{type:"textnode",content:"Caption"}}):d==null||d.remove(),r(),e.refresh({tools:!0})},getValue(c){return!!c.component.find("caption")[0]}}],components:Re(D,{rows:5}),contextMenu:({items:c,editor:a,component:r})=>[...W({editor:a,component:r,opts:o}),...c]}}}),l.addType(F,{model:{defaults:{icon:v.tableHead,...n}}}),l.addType(_,{model:{defaults:{icon:v.tableFoot,...n}}}),l.addType(D,{model:{defaults:{icon:v.tableRowProperties,...n}}}),l.addType(g,{model:{defaults:{icon:v.tableRowProperties,emptyState:!0,highlightable:!1,stylable:["height","text-align","border-width","border-style","border-color"],traits:[],contextMenu:({items:c,editor:a,component:r})=>[...ne({editor:a,component:r,opts:o}),...c]}}}),l.addType(b,{model:{defaults:{icon:v.tableCellProperties,emptyState:{styleOut:"height: 1px"},stylable:["width","height","padding","background","background-color","text-align","vertical-align","border-width","border-style","border-color"],traits:[{id:"tableCellType",type:"select",options:[{value:"td",name:"Cell"},{value:"th",name:"Header Cell"}],label:"Cell type",name:"tagName",changeProp:!0},{id:"tableCellScope",type:"select",options:[{value:!1,name:"None"},{value:"row",name:"Row"},{value:"col",name:"Column"},{value:"rowgroup",name:"Row group"},{value:"colgroup",name:"Column group"}],label:"Scope",name:"scope"}],contextMenu:({items:c,editor:a,component:r})=>[...Ze({editor:a,component:r,opts:o}),...c]}}});const s=z((c,a)=>{var h;const r=e.getSelectedAll(),d=!!((h=a==null?void 0:a.event)!=null&&h.shiftKey);if(r.length<2||!d||a.fromCell)return;const u=r.map(f=>f.is(b)?f:f.closestType(b)).filter(Boolean);u.length===r.length&&Fe(u)},0);e.on("component:select",s),fe({editor:e,plan:ye,pluginName:we,licenseKey:o.licenseKey,cleanup:()=>{e.off("component:select",s),e.Blocks.remove(p),Ce.forEach(c=>l.removeType(c))}})})});
1
+ (function(z,y){typeof exports=="object"&&typeof module<"u"?module.exports=y():typeof define=="function"&&define.amd?define(y):(z=typeof globalThis<"u"?globalThis:z||self,z.StudioSdkPlugins_tableComponent=y())})(this,function(){"use strict";function z(e,t,o){let l,n,s,c,a;const r=t;function d(){const h=Date.now()-c;h<r&&h>=0?l=setTimeout(d,r-h):(l=null,a=e.apply(s,n),s=n=null)}const u=function(){return s=this,n=arguments,c=Date.now(),l||(l=setTimeout(d,r)),a};return u.clear=function(){l&&(clearTimeout(l),l=null)},u.flush=function(){l&&(a=e.apply(s,n),s=n=null,clearTimeout(l),l=null)},u}const y="app.grapesjs.com",G="app-stage.grapesjs.com",L=[y,"app2.grapesjs.com",G,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],ie="license:check:start",de="license:check:end",he=()=>typeof window<"u",ve=({isDev:e,isStage:t,isPlatform:o})=>`${e?"":`https://${t?G:y}`}/${o?"platform-api":"api"}`,ue=()=>{const e=he()&&window.location.hostname;return!!e&&(L.includes(e)||L.some(t=>e.endsWith(t)))};function N(e){return typeof e=="function"}async function ge({path:e,baseApiUrl:t,method:o="GET",headers:l={},params:n,body:s}){const a=`${t||ve({isDev:!1,isStage:!1})}${e}`,r={method:o,headers:{"Content-Type":"application/json",...l}};s&&(r.body=JSON.stringify(s));const d=n?new URLSearchParams(n).toString():"",u=d?`?${d}`:"",h=await fetch(`${a}${u}`,r);if(!h.ok)throw new Error(`HTTP error! status: ${h.status}`);return h.json()}var C=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(C||{}),O=(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))(O||{});const Z={[C.free]:0,[C.startup]:10,[C.business]:20,[C.enterprise]:30};function be(e){const t=e;return t.init=o=>l=>e(l,o),t}const pe=e=>be(e);async function fe({editor:e,plan:t,pluginName:o,licenseKey:l,onLicenseCheckResponse:n,cleanup:s}){let c="",a=!1;const r=ue(),d=h=>{console.warn("Cleanup plugin:",o,"Reason:",h),s()},u=(h={})=>{var V;const{error:f,sdkLicense:B}=h,m=(V=h.plan)==null?void 0:V.category;if(!(B||h.license)||f)d(f||"Invalid license");else if(m){const I=Z[t],M=Z[m];I>M&&d({pluginRequiredPlan:t,licensePlan:m})}};e.on(ie,h=>{c=h==null?void 0:h.baseApiUrl,a=!0}),e.on(de,h=>{n==null||n(h),u(h)}),setTimeout(async()=>{if(!a){if(r)return;if(l){const h=await me({licenseKey:l,pluginName:o,baseApiUrl:c});n==null||n(h),h&&u(h)}else d("The `licenseKey` option not provided")}},2e3)}async function me(e){const{licenseKey:t,pluginName:o,baseApiUrl:l}=e;try{return(await ge({baseApiUrl:l,path:`/sdk/${t||"na"}`,method:"POST",params:{d:window.location.hostname,pn:o}})).result||{}}catch(n){return console.error("Error during SDK license check:",n),!1}}const we="tableComponent",ye=C.startup;var i=(e=>(e.table="table",e.tableSettings="tableSettings",e.tableDelete="tableDelete",e.tableHead="tableHead",e.tableFoot="tableFoot",e.tableCellItems="tableCellItems",e.tableCellProperties="tableCellProperties",e.tableCellMerge="tableCellMerge",e.tableCellSplit="tableCellSplit",e.tableRowItems="tableRowItems",e.tableRowInsertBefore="tableRowInsertBefore",e.tableRowInsertAfter="tableRowInsertAfter",e.tableRowDelete="tableRowDelete",e.tableRowProperties="tableRowProperties",e.tableRowCut="tableRowCut",e.tableRowCopy="tableRowCopy",e.tableRowPasteBefore="tableRowPasteBefore",e.tableRowPasteAfter="tableRowPasteAfter",e.tableColumn="tableColumn",e.tableColumnItems="tableColumnItems",e.tableColumnInsertBefore="tableColumnInsertBefore",e.tableColumnInsertAfter="tableColumnInsertAfter",e.tableColumnDelete="tableColumnDelete",e.tableColumnCut="tableColumnCut",e.tableColumnCopy="tableColumnCopy",e.tableColumnPasteBefore="tableColumnPasteBefore",e.tableColumnPasteAfter="tableColumnPasteAfter",e))(i||{});const v={table:'<svg viewBox="0 0 24 24"><path d="M5 4h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2m0 4v4h6V8H5m8 0v4h6V8h-6m-8 6v4h6v-4H5m8 0v4h6v-4h-6Z"/></svg>',tableSettings:'<svg viewBox="0 0 24 24"><path d="M5 4h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2m0 4v4h6V8H5m8 0v4h6V8h-6m-8 6v4h6v-4H5m8 0v4h6v-4h-6Z"/></svg>',tableDelete:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zM5 6v12h14V6H5z"/><path d="m14.4 8.6 1 1-2.3 2.4 2.3 2.4-1 1-2.4-2.3-2.4 2.3-1-1 2.3-2.4-2.3-2.4 1-1 2.4 2.3z"/></svg>',tableHead:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14Zm-8 11H5v3h6v-3Zm8 0h-6v3h6v-3Zm0-5h-6v3h6v-3ZM5 13h6v-3H5v3Z"/></svg>',tableFoot:'<svg viewBox="0 0 24 24" data-test="1" style="transform: rotate(180deg);"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14Zm-8 11H5v3h6v-3Zm8 0h-6v3h6v-3Zm0-5h-6v3h6v-3ZM5 13h6v-3H5v3Z"/></svg>',tableColumn:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14Zm0 9h-4v5h4v-5Zm-6 0H9v5h4v-5Zm0-7H9v5h4V6Zm6 0h-4v5h4V6Z"/></svg>',tableCellItems:"",tableCellProperties:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6l2-2h14zm-8 9H5v5h6v-5zm8 0h-6v5h6v-5zm-8-7H5v5h6V6z"/></svg>',tableCellMerge:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6l2-2h14zM5 16v2h3v-2H5zm14-5h-9v7h9v-7zm0-5h-4v3h4V6zM8 6H5v3h3V6zm5 0h-3v3h3V6zm-8 8h3v-3H5v3z"/></svg>',tableCellSplit:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zM8 15.5H5V18h3v-2.5zm11-5h-9V18h9v-7.5zm-2.5 1 1 1-2 2 2 2-1 1-2-2-2 2-1-1 2-2-2-2 1-1 2 2 2-2zm-8.5-1H5v3h3v-3zM19 6h-4v2.5h4V6zM8 6H5v2.5h3V6zm5 0h-3v2.5h3V6z"/></svg>',tableRowItems:"",tableRowInsertBefore:'<svg viewBox="0 0 24 24"><path d="M6 4a1 1 0 1 1 0 2H5v6h14V6h-1a1 1 0 0 1 0-2h2c.6 0 1 .4 1 1v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5c0-.6.4-1 1-1h2zm5 10H5v4h6v-4zm8 0h-6v4h6v-4zM12 3c.5 0 1 .4 1 .9V6h2a1 1 0 0 1 0 2h-2v2a1 1 0 0 1-2 .1V8H9a1 1 0 0 1 0-2h2V4c0-.6.4-1 1-1z"/></svg>',tableRowInsertAfter:'<svg viewBox="0 0 24 24"><path d="M12 13c.5 0 1 .4 1 .9V16h2a1 1 0 0 1 .1 2H13v2a1 1 0 0 1-2 .1V18H9a1 1 0 0 1-.1-2H11v-2c0-.6.4-1 1-1zm6 7a1 1 0 0 1 0-2h1v-6H5v6h1a1 1 0 0 1 0 2H4a1 1 0 0 1-1-1V6c0-1.1.9-2 2-2h14a2 2 0 0 1 2 2v13c0 .5-.4 1-.9 1H18zM11 6H5v4h6V6zm8 0h-6v4h6V6z"/></svg>',tableRowDelete:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zm0 2H5v3h2.5v2H5v2h2.5v2H5v3h14v-3h-2.5v-2H19v-2h-2.5V9H19V6zm-4.7 1.8 1.2 1L13 12l2.6 3.3-1.2 1-2.3-3-2.3 3-1.2-1L11 12 8.5 8.7l1.2-1 2.3 3 2.3-3z"/></svg>',tableRowProperties:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zM5 15v3h6v-3H5zm14 0h-6v3h6v-3zm0-9h-6v3h6V6zM5 9h6V6H5v3z"/></svg>',tableRowCut:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M22 3v5H9l3 3 2-2h4l-4 4 1 1h.5c.4 0 .8 0 1.2.3.5.2.9.4 1.2.8.7.6 1 1.3 1 2.2.2.8 0 1.5-.6 2l-.8.5-1 .2c-.4 0-.8 0-1.2-.3a3.9 3.9 0 0 1-2.1-2.2c-.2-.5-.3-1-.2-1.5l-1-1-1 1c0 .5 0 1-.2 1.5-.1.5-.4 1-.9 1.4-.3.4-.7.6-1.2.8l-1.2.3c-.4 0-.7 0-1-.2-.3 0-.6-.3-.8-.5-.5-.5-.8-1.2-.7-2a3 3 0 0 1 1-2.2A3.7 3.7 0 0 1 8.6 14H9l1-1-4-4-.5-1a3.3 3.3 0 0 1 0-2c0-.4.3-.7.5-1l2 2V3h14zM8.5 15.3h-.3a2.6 2.6 0 0 0-.8.4 2.5 2.5 0 0 0-.9 1.1l-.1.4v.7l.2.5.5.2h.7a2.5 2.5 0 0 0 .8-.3L9 18l.4-.4.2-.4.1-.4v-.7a1 1 0 0 0-.2-.5 1 1 0 0 0-.4-.2h-.5zm7 0H15a1 1 0 0 0-.4.3 1 1 0 0 0-.2.5 1.5 1.5 0 0 0 0 .7v.4a2.8 2.8 0 0 0 .5.7h.1a2.8 2.8 0 0 0 .8.6l.4.1h.7l.5-.2.2-.5v-.7a2.6 2.6 0 0 0-.3-.8 2.4 2.4 0 0 0-.7-.7 2.5 2.5 0 0 0-.8-.3h-.3zM12 11.6c-.4 0-.7.1-1 .4-.3.3-.4.6-.4 1s.1.7.4 1c.3.3.6.4 1 .4s.7-.1 1-.4c.3-.3.4-.6.4-1s-.1-.7-.4-1c-.3-.3-.6-.4-1-.4zm8.5-7.1h-11v2h11v-2z"/></svg>',tableRowCopy:'<svg viewBox="0 0 24 24"><path d="M22 11v7H6v-7h16zm-2 2H8v3h12v-3zm-1-6v2H4v5H2V7h17z"/></svg>',tableRowPasteBefore:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1a3 3 0 0 1 2.8 2H18c1 0 2 .8 2 1.9V7h-2V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v13h12v-4h2v4c0 1-.8 2-1.9 2H6c-1 0-2-.8-2-1.9V5c0-1 .8-2 1.9-2h3.3A3 3 0 0 1 12 1zm10 7v5H8V8h14zm-1.5 1.5h-11v2h11v-2zM12 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></svg>',tableRowPasteAfter:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1a3 3 0 0 1 2.8 2H18c1 0 2 .8 2 1.9V11h-2V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v13h14c0 1-.8 2-1.9 2H6c-1 0-2-.8-2-1.9V5c0-1 .8-2 1.9-2h3.3A3 3 0 0 1 12 1zm10 11v5H8v-5h14zm-1.5 1.5h-11v2h11v-2zM12 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></svg>',tableColumnItems:"",tableColumnInsertBefore:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a1 1 0 0 1-1-1v-2a1 1 0 0 1 2 0v1h8V6H5v1a1 1 0 1 1-2 0V5c0-.6.4-1 1-1h15zm0 9h-4v5h4v-5zM8 8c.5 0 1 .4 1 .9V11h2a1 1 0 0 1 .1 2H9v2a1 1 0 0 1-2 .1V13H5a1 1 0 0 1-.1-2H7V9c0-.6.4-1 1-1zm11-2h-4v5h4V6z"/></svg>',tableColumnInsertAfter:'<svg viewBox="0 0 24 24"><path d="M20 4c.6 0 1 .4 1 1v2a1 1 0 0 1-2 0V6h-8v12h8v-1a1 1 0 0 1 2 0v2c0 .5-.4 1-.9 1H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h15zM9 13H5v5h4v-5zm7-5c.5 0 1 .4 1 .9V11h2a1 1 0 0 1 .1 2H17v2a1 1 0 0 1-2 .1V13h-2a1 1 0 0 1-.1-2H15V9c0-.6.4-1 1-1zM9 6H5v5h4V6z"/></svg>',tableColumnDelete:'<svg viewBox="0 0 24 24"><path d="M19 4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h14zm-4 4h-2V6h-2v2H9V6H5v12h4v-2h2v2h2v-2h2v2h4V6h-4v2zm.3.5 1 1.2-3 2.3 3 2.3-1 1.2L12 13l-3.3 2.6-1-1.2 3-2.3-3-2.3 1-1.2L12 11l3.3-2.5z"/></svg>',tableColumnCut:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M7.2 4.5a3 3 0 0 1 2.2 1A3.7 3.7 0 0 1 10.5 8v.5l1 1 4-4 1-.5a3.3 3.3 0 0 1 2 0c.4 0 .7.3 1 .5L17 8h4v13h-6V10l-1.5 1.5.5.5v4l-2.5-2.5-1 1v.5c0 .4 0 .8-.3 1.2-.2.5-.4.9-.8 1.2-.6.7-1.3 1-2.2 1-.8.2-1.5 0-2-.6l-.5-.8-.2-1c0-.4 0-.8.3-1.2A3.9 3.9 0 0 1 7 12.7c.5-.2 1-.3 1.5-.2l1-1-1-1c-.5 0-1 0-1.5-.2-.5-.1-1-.4-1.4-.9-.4-.3-.6-.7-.8-1.2L4.5 7c0-.4 0-.7.2-1 0-.3.3-.6.5-.8.5-.5 1.2-.8 2-.7zm12.3 5h-3v10h3v-10zM8 13.8h-.3l-.4.2a2.8 2.8 0 0 0-.7.4v.1a2.8 2.8 0 0 0-.6.8l-.1.4v.7l.2.5.5.2h.7a2.6 2.6 0 0 0 .8-.3 2.4 2.4 0 0 0 .7-.7 2.5 2.5 0 0 0 .3-.8 1.5 1.5 0 0 0 0-.8 1 1 0 0 0-.2-.4 1 1 0 0 0-.5-.2H8zm3.5-3.7c-.4 0-.7.1-1 .4-.3.3-.4.6-.4 1s.1.7.4 1c.3.3.6.4 1 .4s.7-.1 1-.4c.3-.3.4-.6.4-1s-.1-.7-.4-1c-.3-.3-.6-.4-1-.4zM7 5.8h-.4a1 1 0 0 0-.5.3 1 1 0 0 0-.2.5v.7a2.5 2.5 0 0 0 .3.8l.2.3h.1l.4.4.4.2.4.1h.7L9 9l.2-.4a1.6 1.6 0 0 0 0-.8 2.6 2.6 0 0 0-.3-.8 2.5 2.5 0 0 0-1.2-1l-.4-.1H7z"/></svg>',tableColumnCopy:'<svg viewBox="0 0 24 24"><path d="M17 6v16h-7V6h7zm-2 2h-3v12h3V8zm-2-6v2H8v15H6V2h7z"/></svg>',tableColumnPasteBefore:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1a3 3 0 0 1 2.8 2H18c1 0 2 .8 2 1.9V18c0 1-.8 2-1.9 2H11v-2h7V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v2H4V5c0-1 .8-2 1.9-2h3.3A3 3 0 0 1 12 1zm-2 7v12H4V8h6zM8.5 9.5h-3v9h3v-9zM12 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></svg>',tableColumnPasteAfter:'<svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1a3 3 0 0 1 2.8 2H18c1 0 2 .8 2 1.9V7h-2V5h-2v1c0 .6-.4 1-1 1H9a1 1 0 0 1-1-1V5H6v13h7v2H6c-1 0-2-.8-2-1.9V5c0-1 .8-2 1.9-2h3.3A3 3 0 0 1 12 1zm8 7v12h-6V8h6zm-1.5 1.5h-3v9h3v-9zM12 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></svg>'},p="table",F="thead",_="tfoot",D="tbody",b="row",g="cell",k="clipboardTable",Ce=[p,F,_,D,b,g],A=e=>e.em.get(k)||[],He=e=>e.every(t=>t.is(g)),T=(e,t)=>{const{editor:o,event:l,opts:n}=e,s=l.currentTarget||l.target,{x:c,y:a,width:r,height:d}=s.getBoundingClientRect(),u={style:{width:240,height:300},placer:{type:"popover",closeOnClickAway:!0,x:c,y:a,w:r,h:d},layout:{type:"tabs",value:"props",tabs:[{id:"styles",label:"Styles",children:{type:"panelStyles"}},{id:"props",label:"Properties",children:{type:"panelProperties",style:{padding:"14px 7px"}}}]},...t};N(n.openSettings)?n.openSettings({...e,layoutProps:u}):o.runCommand(O.layoutToggle,u)},Re=(e,{rows:t=1,cells:o=5,text:l}={})=>({type:e,components:Array.from(Array(t).keys()).map(n=>({type:b,components:Array.from(Array(o).keys()).map(s=>({type:g,components:l?{type:"text",content:N(l)?l({y:n,x:s}):l}:void 0}))}))}),U="Table settings",$=e=>{const{component:t}=e;return t.is(p)?t:t.closestType(p)},Pe=e=>{var t;(t=$(e))==null||t.remove(e.opts)},Ve=e=>{const t=$(e);t&&(e.editor.select(t),T(e,{id:"tableSettings",header:{label:U}}))},W=e=>[{id:i.table,icon:v[i.table],label:"Table",items:[{id:i.tableSettings,label:U,icon:v[i.tableSettings],onClick:({event:o})=>Ve({...e,event:o})},{id:i.tableDelete,label:"Delete table",icon:v[i.tableDelete],onClick:()=>Pe(e)}]}],j=({editor:e})=>{const t=A(e);return t.length&&He(t)},K=({component:e,editor:t,after:o})=>{if(!e.is(g))return;const l=e.closestType(p),n=e.closestType(b),s=e.index()+(o?1:0);l==null||l.findType(b).forEach(a=>a.append({type:g},{at:s}));const c=n==null?void 0:n.components().at(s);c&&t.select(c)},q=({component:e,opts:t})=>{if(!e.is(g))return;const o=e.closestType(p),l=e.index();o==null||o.findType(b).forEach(n=>{var s;return(s=n.components().at(l))==null?void 0:s.remove(t)})},X=({component:e,editor:t})=>{if(!e.is(g))return;const o=e.closestType(p),l=e.index(),n=(o==null?void 0:o.findType(b).map(s=>s.components().at(l)))||[];n.length&&t.em.set(k,n)},Y=e=>{const{component:t,editor:o,after:l}=e;if(!t.is(g)||!j(e))return;const n=A(o),s=t.closestType(p),c=t.index()+(l?1:0);s==null||s.findType(b).forEach((a,r)=>{const d=n[r],u=(d==null?void 0:d.clone())||{type:g};a.append(u,{at:c})})},ze=e=>{const{component:t}=e;t.is(g)&&(X(e),q({...e,opts:{temporary:!0}}))},Ae=e=>{const t=j(e);return[{id:i.tableColumnItems,icon:v[i.tableColumn],label:"Column",items:[{id:i.tableColumnInsertBefore,label:"Insert column before",icon:v[i.tableColumnInsertBefore],onClick:()=>K(e)},{id:i.tableColumnInsertAfter,label:"Insert column after",icon:v[i.tableColumnInsertAfter],onClick:()=>K({...e,after:!0})},{id:i.tableColumnDelete,label:"Delete column",icon:v[i.tableColumnDelete],onClick:()=>q(e)},{id:i.tableColumnCut,label:"Cut column",icon:v[i.tableColumnCut],onClick:()=>ze(e)},{id:i.tableColumnCopy,label:"Copy column",icon:v[i.tableColumnCopy],onClick:()=>X(e)},{id:i.tableColumnPasteBefore,label:"Paste column before",icon:v[i.tableColumnPasteBefore],disabled:!t,onClick:()=>Y(e)},{id:i.tableColumnPasteAfter,label:"Paste column after",icon:v[i.tableColumnPasteAfter],disabled:!t,onClick:()=>Y({...e,after:!0})}]}]},J="Row settings",xe=e=>e.every(t=>t.is(b)),H=e=>{const{component:t}=e,o=t.is(g),l=t.is(b);if(!(!o&&!l))return l?t:t.closestType(b)},Q=e=>{const{component:t,editor:o,after:l}=e,n=H(e);if(!n)return;const s=n.index()+(l?1:0),c=n.components().length,a=Array.from(Array(c).keys()).map(()=>({type:g})),r=n.parent();if(r){const d=r.append({type:b,components:a},{at:s})[0];if(t.is(g)&&d){const u=t.index(),h=d.components().at(u);h&&o.select(h)}}},ee=e=>{var t;(t=H(e))==null||t.remove(e.opts)},te=e=>{const t=H(e);t&&e.editor.em.set(k,[t])},le=e=>{var a;const{editor:t,after:o}=e,l=H(e);if(!l||!oe(e))return;const s=A(t)[0],c=l.index()+(o?1:0);s&&((a=l.parent())==null||a.append(s.clone(),{at:c}))},Be=e=>{H(e)&&(te(e),ee({...e,opts:{temporary:!0}}))},oe=({editor:e})=>{const t=A(e);return t.length&&xe(t)},Ie=e=>{const t=H(e);t&&(e.editor.select(t),T(e,{id:"tableRowSettings",header:{label:J}}))},ne=e=>{const t=oe(e);return[{id:i.tableRowItems,icon:v[i.tableRowProperties],label:"Row",items:[{id:i.tableRowInsertBefore,label:"Insert row before",icon:v[i.tableRowInsertBefore],onClick:()=>Q(e)},{id:i.tableRowInsertAfter,label:"Insert row after",icon:v[i.tableRowInsertAfter],onClick:()=>Q({...e,after:!0})},{id:i.tableRowDelete,label:"Delete row",icon:v[i.tableRowDelete],onClick:()=>ee(e)},{id:i.tableRowProperties,label:J,icon:v[i.tableRowProperties],onClick:({event:l})=>Ie({...e,event:l})},{id:i.tableRowCut,label:"Cut row",icon:v[i.tableRowCut],onClick:()=>Be(e)},{id:i.tableRowCopy,label:"Copy row",icon:v[i.tableRowCopy],onClick:()=>te(e)},{id:i.tableRowPasteBefore,label:"Paste row before",icon:v[i.tableRowPasteBefore],disabled:!t,onClick:()=>le(e)},{id:i.tableRowPasteAfter,label:"Paste row after",icon:v[i.tableRowPasteAfter],disabled:!t,onClick:()=>le({...e,after:!0})}]},...W(e)]},S=e=>{const t=e.attributes.attributes||{},o=parseInt(`${t.rowspan||1}`,10),l=parseInt(`${t.colspan||1}`,10);return{rowspan:o,colspan:l}};function se(e){const t=[];return e.components().forEach((o,l)=>{o.components().each((n,s)=>{const{rowspan:c,colspan:a}=S(n);if(t[l])for(;t[l][s];)s++;for(let r=l;r<l+c;r++){t[r]||(t[r]=[]);for(let d=s;d<s+a;d++)t[r][d]={real:r===l&&d===s,cell:n,rowspan:c,colspan:a}}})}),t}function R(e,t,o){var l;return(l=e[o])==null?void 0:l[t]}const E=e=>e.closestType(b);function Me(e,{x:t,y:o,rows:l,cols:n}){var a;let s=E(e[o][t].cell),c;for(let r=1;r<=l;r++)if(s=(a=s==null?void 0:s.parent())==null?void 0:a.components().at(s.index()+1),s){for(c=t;c>=0;c--){const{cell:d}=e[o+r][c],u=E(d);if(u===s){for(let h=1;h<=n;h++){const f=d.index();u.append({type:g},{at:f+1})}break}}if(c===-1){const u=s.components().at(0).index();for(let h=1;h<=n;h++)s.append({type:g},{at:u})}}}function ae(e){for(let t=0;t<e.length;t++)for(let o=0;o<e[t].length;o++){const n=e[t][o].cell;if(n.em.selected.hasComponent(n)){const{rowspan:s,colspan:c}=S(n);if(c>1||s>1){n.addAttributes({colspan:1,rowspan:1});for(let a=0;a<c-1;a++){const r=n.index();E(n).append({type:g},{at:r+1})}Me(e,{x:o,y:t,rows:s-1,cols:c})}}}}function De(e){const t=[];e.components().forEach(o=>{o.components().length||t.push(o)}),t.forEach(o=>o.remove())}const x=(e,t={})=>{var c;const o=se(e),{em:l}=e;let n,s;for(let a=0;a<o.length;a++)for(let r=0;r<o[a].length;r++){const d=o[a][r];if((c=t.selected)!=null&&c.includes(d.cell)||l.selected.hasComponent(d.cell)){const u={x:r,y:a};n||(n=u),s=u}}return{grid:o,startPos:n,endPos:s}};function ke(e,t={}){const o=x(e),{startPos:l,endPos:n}=o;let{grid:s}=o;const{em:c}=e;if(!l||!n)return;const a=l.x,r=l.y,d=n.x,u=n.y,h=R(s,a,r),f=R(s,d,u);if(h&&f){ae(s),s=se(e);const B=[],m=R(s,a,r).cell;m.addAttributes({colspan:d-a+1,rowspan:u-r+1});for(let w=r;w<=u;w++)for(let V=a;V<=d;V++){const I=R(s,V,w);if(!I)continue;const{cell:M}=I;M!==m&&B.push(M)}B.forEach(w=>{t.mergeContent&&m.append(w.components().models),w.remove()}),c.setSelected(m),De(e)}}const re="Cell settings",Te="Merge cells",Se="Split cell",Ee=e=>e.closestType(b),P=e=>{var t;return(t=Ee(e))==null?void 0:t.parent()},Ge=e=>{const t=e.editor.getSelectedAll(),o=P(t[0]),l=t[0];if(!o||!(l!=null&&l.is(g))||t.length>1)return!1;const{rowspan:n,colspan:s}=S(l);return!(s<2&&n<2)},Le=e=>{const o=e.editor.getSelectedAll()[0],l=P(o),{grid:n}=x(l);ae(n)},ce=e=>{const t=e.editor.getSelectedAll(),o=P(t[0]);if(!o||t.length<2||t.some(a=>!a.is(g)||P(a)!==o))return!1;const{grid:l,startPos:n,endPos:s}=x(o),{em:c}=o;if(!n||!s)return!1;for(let a=n.y;a<=s.y;a++)for(let r=n.x;r<=s.x;r++){const d=R(l,r,a);if(!d||!c.selected.hasComponent(d.cell))return!1}return!0},Ne=e=>{const{editor:t}=e;if(!ce(e))return;const o=t.getSelectedAll(),l=P(o[0]);ke(l,{mergeContent:!0})},Oe=e=>{T(e,{id:"tableCellSettings",header:{label:re}})},Ze=e=>[{id:i.tableCellItems,icon:v[i.tableCellProperties],label:"Cell",items:[{id:i.tableCellProperties,label:re,icon:v[i.tableCellProperties],onClick:({event:o})=>Oe({...e,event:o})},{id:i.tableCellMerge,label:Te,icon:v[i.tableCellMerge],onClick:()=>Ne(e),disabled:!ce(e)},{id:i.tableCellSplit,label:Se,icon:v[i.tableCellSplit],onClick:()=>Le(e),disabled:!Ge(e)}]},...Ae(e),...ne(e)],Fe=e=>{const t=e[0]&&P(e[0]);if(!t)return;const{grid:o,startPos:l,endPos:n}=x(t,{selected:e});if(!l||!n)return;const s=[];for(let c=l.y;c<=n.y;c++)for(let a=l.x;a<=n.x;a++){const r=R(o,a,c);r&&s.push(r.cell)}s.length&&t.em.setSelected(s,{fromCell:!0})};return pe(function(e,t={}){const o={block:{},...t},{Components:l}=e,n={copyable:!1,emptyState:!0,highlightable:!1,stylable:["color","font-family","font-size","font-weight","line-height","text-align","vertical-align","background-color","border-width","border-style","border-color"]};l.addType(p,{block:o.block&&{label:"Table",media:v.table,category:"Extra",content:{type:p,style:{width:"100%"}},select:!0,...o.block},model:{defaults:{emptyState:!0,highlightable:!1,icon:v.table,stylable:["width","height","margin","font-family","font-size","font-weight","line-height","text-align","background","background-color","border-width","border-style","border-color"],traits:[{type:"number",min:0,name:"cellspacing",label:"Cell spacing"},{type:"number",min:0,name:"cellpadding",label:"Cell padding"},{id:"tableCaption",type:"checkbox",label:"Caption",setValue({component:c,value:a,emitUpdate:r}){const d=c.find("caption")[0];a?!d&&c.append({type:"text",tagName:"caption",components:{type:"textnode",content:"Caption"}}):d==null||d.remove(),r(),e.refresh({tools:!0})},getValue(c){return!!c.component.find("caption")[0]}}],components:Re(D,{rows:5}),contextMenu:({items:c,editor:a,component:r})=>[...W({editor:a,component:r,opts:o}),...c]}}}),l.addType(F,{model:{defaults:{icon:v.tableHead,...n}}}),l.addType(_,{model:{defaults:{icon:v.tableFoot,...n}}}),l.addType(D,{model:{defaults:{icon:v.tableRowProperties,...n}}}),l.addType(b,{model:{defaults:{icon:v.tableRowProperties,emptyState:!0,highlightable:!1,stylable:["height","text-align","border-width","border-style","border-color"],traits:[],contextMenu:({items:c,editor:a,component:r})=>[...ne({editor:a,component:r,opts:o}),...c]}}}),l.addType(g,{model:{defaults:{icon:v.tableCellProperties,emptyState:{styleOut:"height: 1px"},stylable:["width","height","padding","background","background-color","text-align","vertical-align","border-width","border-style","border-color"],traits:[{id:"tableCellType",type:"select",options:[{value:"td",name:"Cell"},{value:"th",name:"Header Cell"}],label:"Cell type",name:"tagName",changeProp:!0},{id:"tableCellScope",type:"select",options:[{value:!1,name:"None"},{value:"row",name:"Row"},{value:"col",name:"Column"},{value:"rowgroup",name:"Row group"},{value:"colgroup",name:"Column group"}],label:"Scope",name:"scope"}],contextMenu:({items:c,editor:a,component:r})=>[...Ze({editor:a,component:r,opts:o}),...c]}}});const s=z((c,a)=>{var h;const r=e.getSelectedAll(),d=!!((h=a==null?void 0:a.event)!=null&&h.shiftKey);if(r.length<2||!d||a.fromCell)return;const u=r.map(f=>f.is(g)?f:f.closestType(g)).filter(Boolean);u.length===r.length&&Fe(u)},0);e.on("component:select",s),fe({editor:e,plan:ye,pluginName:we,licenseKey:o.licenseKey,cleanup:()=>{e.off("component:select",s),e.Blocks.remove(p),Ce.forEach(c=>l.removeType(c))}})})});
@@ -1 +1 @@
1
- "use strict";var g=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(g||{}),f=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",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))(f||{});const w="app.grapesjs.com",I="app-stage.grapesjs.com",G="app2.grapesjs.com",L="app-stage2.grapesjs.com",P=[w,G,I,L,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],U="license:check:start",D="license:check:end",O=()=>typeof window<"u",E=({isDev:e,isStage:o,isPlatform:i})=>`${e?"":`https://${o?I:w}`}/${i?"platform-api":"api"}`,$=()=>{const e=O()&&window.location.hostname;return!!e&&(P.includes(e)||P.some(o=>e.endsWith(o)))};async function M({path:e,baseApiUrl:o,method:i="GET",headers:a={},params:r,body:u}){const s=`${o||E({isDev:!1,isStage:!1})}${e}`,l={method:i,headers:{"Content-Type":"application/json",...a}};u&&(l.body=JSON.stringify(u));const c=r?new URLSearchParams(r).toString():"",n=c?`?${c}`:"",t=await fetch(`${s}${n}`,l);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const T={[g.free]:0,[g.startup]:10,[g.business]:20,[g.enterprise]:30};function k(e){const o=e;return o.init=i=>a=>e(a,i),o}const j=e=>k(e);async function B({editor:e,plan:o,pluginName:i,licenseKey:a,onLicenseCheckResponse:r,cleanup:u}){let p="",s=!1;const l=$(),c=t=>{console.warn("Cleanup plugin:",i,"Reason:",t),u()},n=(t={})=>{var v;const{error:y,sdkLicense:d}=t,b=(v=t.plan)==null?void 0:v.category;if(!(d||t.license)||y)c(y||"Invalid license");else if(b){const R=T[o],x=T[b];R>x&&c({pluginRequiredPlan:o,licensePlan:b})}};e.on(U,t=>{p=t==null?void 0:t.baseApiUrl,s=!0}),e.on(D,t=>{r==null||r(t),n(t)}),setTimeout(async()=>{if(!s){if(l)return;if(a){const t=await N({licenseKey:a,pluginName:i,baseApiUrl:p});r==null||r(t),t&&n(t)}else c("The `licenseKey` option not provided")}},2e3)}async function N(e){const{licenseKey:o,pluginName:i,baseApiUrl:a}=e;try{return(await M({baseApiUrl:a,path:`/sdk/${o||"na"}`,method:"POST",params:{d:window.location.hostname,pn:i}})).result||{}}catch(r){return console.error("Error during SDK license check:",r),!1}}const W=e=>{const o={};for(const i of Object.keys(e)){let a=e[i];a&&(Array.isArray(a)?a=a.map(r=>r.toString()).join(","):a=a.toString(),o[i]=a)}return new URLSearchParams(o)},A="youtube-video",Y=e=>{const{apiKey:o,searchParams:i,thumbnailQuality:a="high"}=e,r=(s={})=>{const c="https://www.googleapis.com/youtube/v3/search",n=W(s);return`${c}?${n}`},u=s=>{var l,c,n;return((l=s[a])==null?void 0:l.url)||((c=s.high)==null?void 0:c.url)||((n=s.medium)==null?void 0:n.url)||s.default.url},p=s=>{const l=u(s.snippet.thumbnails);return{id:s.id.videoId,src:`https://www.youtube.com/watch?v=${s.id.videoId}`,name:s.snippet.title,type:A,customData:{thumbnailUrl:l,videoItem:s}}};return{id:"youtube",types:[A],label:({editor:s})=>s.I18n.t("youtubeAssetProvider.providerLabel"),search:{reloadOnInput:!0,debounceMs:1e3},async onLoad({searchValue:s,pageCustomData:l}){var h;const c={maxResults:25,q:s,pageToken:l==null?void 0:l.token,type:["video"],key:o},n=i==null?void 0:i({searchValue:s}),t={...c,...n};t.part?t.part.includes("snippet")||t.part.push("snippet"):t.part=["snippet"];const d=await(await fetch(r(t))).json();return(h=d.items)!=null&&h.length?{items:d.items.map(p),nextPageCustomData:{token:d.nextPageToken},isLastPage:!d.nextPageToken}:{items:[],isLastPage:!0}},itemLayout:({assetProps:s,onSelect:l})=>({type:"column",onClick:()=>l(s),htmlAttrs:{title:s.name},style:{borderWidth:"1px",borderRadius:8,overflow:"hidden",cursor:"pointer"},children:[{type:"custom",render:()=>{var c;return`<img src="${(c=s.customData)==null?void 0:c.thumbnailUrl}" alt="${s.name}" style="width: 100%; height: 100px; object-fit: cover">`}},{type:"text",content:s.name,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",paddingLeft:8,paddingRight:8}}]})}},_={youtubeAssetProvider:{searchBtn:"Search on YouTube",modalTitle:"Select YouTube Video",providerLabel:"YouTube Videos"}},K="youtubeAssetProvider",F=g.startup,q=function(e,o){var c;const{skipVideoComponent:i,i18n:a={}}=o,r=Y(o);e.runCommand(f.assetProviderAdd,{provider:r});const u="search-on-youtube",p="video",s=(c=e.Components.getType(p))==null?void 0:c.model.prototype,l=n=>{e.Assets.open({modalTitle:e.I18n.t("youtubeAssetProvider.modalTitle"),providerId:r.id,typeId:r.types[0],providers:[],types:[],select:t=>{e.Assets.close(),n.set({videoId:t.attributes.id})},content:{header:{addUrl:!1,upload:!1}}})};!i&&s&&e.Components.addType(p,{model:{getYoutubeTraits(){const[n,...t]=s.getYoutubeTraits.apply(this);return[n,{id:u,type:"button",label:e.I18n.t("youtubeAssetProvider.searchBtn"),command:()=>l(this)},...t]}},view:{events:()=>({dblclick:"onActive"}),onActive(){const{model:n}=this,t=n.get("provider")||"";t!=null&&t.startsWith("yt")&&l(n)}}}),e.I18n.addMessages({en:_,...a}),B({editor:e,licenseKey:o.licenseKey,plan:F,pluginName:K,cleanup:()=>{e.runCommand(f.assetProviderRemove,{id:r.id}),!i&&s&&e.Components.addType(p,{model:{getYoutubeTraits(){return s.getYoutubeTraits.apply(this).filter(n=>n.id!==u)}}})}})},H=j(q);module.exports=H;
1
+ "use strict";var g=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(g||{}),f=(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))(f||{});const w="app.grapesjs.com",I="app-stage.grapesjs.com",G="app2.grapesjs.com",L="app-stage2.grapesjs.com",P=[w,G,I,L,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],U="license:check:start",D="license:check:end",O=()=>typeof window<"u",E=({isDev:e,isStage:o,isPlatform:i})=>`${e?"":`https://${o?I:w}`}/${i?"platform-api":"api"}`,$=()=>{const e=O()&&window.location.hostname;return!!e&&(P.includes(e)||P.some(o=>e.endsWith(o)))};async function M({path:e,baseApiUrl:o,method:i="GET",headers:a={},params:r,body:u}){const s=`${o||E({isDev:!1,isStage:!1})}${e}`,l={method:i,headers:{"Content-Type":"application/json",...a}};u&&(l.body=JSON.stringify(u));const c=r?new URLSearchParams(r).toString():"",n=c?`?${c}`:"",t=await fetch(`${s}${n}`,l);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const T={[g.free]:0,[g.startup]:10,[g.business]:20,[g.enterprise]:30};function k(e){const o=e;return o.init=i=>a=>e(a,i),o}const j=e=>k(e);async function B({editor:e,plan:o,pluginName:i,licenseKey:a,onLicenseCheckResponse:r,cleanup:u}){let p="",s=!1;const l=$(),c=t=>{console.warn("Cleanup plugin:",i,"Reason:",t),u()},n=(t={})=>{var v;const{error:y,sdkLicense:d}=t,b=(v=t.plan)==null?void 0:v.category;if(!(d||t.license)||y)c(y||"Invalid license");else if(b){const R=T[o],x=T[b];R>x&&c({pluginRequiredPlan:o,licensePlan:b})}};e.on(U,t=>{p=t==null?void 0:t.baseApiUrl,s=!0}),e.on(D,t=>{r==null||r(t),n(t)}),setTimeout(async()=>{if(!s){if(l)return;if(a){const t=await N({licenseKey:a,pluginName:i,baseApiUrl:p});r==null||r(t),t&&n(t)}else c("The `licenseKey` option not provided")}},2e3)}async function N(e){const{licenseKey:o,pluginName:i,baseApiUrl:a}=e;try{return(await M({baseApiUrl:a,path:`/sdk/${o||"na"}`,method:"POST",params:{d:window.location.hostname,pn:i}})).result||{}}catch(r){return console.error("Error during SDK license check:",r),!1}}const W=e=>{const o={};for(const i of Object.keys(e)){let a=e[i];a&&(Array.isArray(a)?a=a.map(r=>r.toString()).join(","):a=a.toString(),o[i]=a)}return new URLSearchParams(o)},A="youtube-video",Y=e=>{const{apiKey:o,searchParams:i,thumbnailQuality:a="high"}=e,r=(s={})=>{const c="https://www.googleapis.com/youtube/v3/search",n=W(s);return`${c}?${n}`},u=s=>{var l,c,n;return((l=s[a])==null?void 0:l.url)||((c=s.high)==null?void 0:c.url)||((n=s.medium)==null?void 0:n.url)||s.default.url},p=s=>{const l=u(s.snippet.thumbnails);return{id:s.id.videoId,src:`https://www.youtube.com/watch?v=${s.id.videoId}`,name:s.snippet.title,type:A,customData:{thumbnailUrl:l,videoItem:s}}};return{id:"youtube",types:[A],label:({editor:s})=>s.I18n.t("youtubeAssetProvider.providerLabel"),search:{reloadOnInput:!0,debounceMs:1e3},async onLoad({searchValue:s,pageCustomData:l}){var h;const c={maxResults:25,q:s,pageToken:l==null?void 0:l.token,type:["video"],key:o},n=i==null?void 0:i({searchValue:s}),t={...c,...n};t.part?t.part.includes("snippet")||t.part.push("snippet"):t.part=["snippet"];const d=await(await fetch(r(t))).json();return(h=d.items)!=null&&h.length?{items:d.items.map(p),nextPageCustomData:{token:d.nextPageToken},isLastPage:!d.nextPageToken}:{items:[],isLastPage:!0}},itemLayout:({assetProps:s,onSelect:l})=>({type:"column",onClick:()=>l(s),htmlAttrs:{title:s.name},style:{borderWidth:"1px",borderRadius:8,overflow:"hidden",cursor:"pointer"},children:[{type:"custom",render:()=>{var c;return`<img src="${(c=s.customData)==null?void 0:c.thumbnailUrl}" alt="${s.name}" style="width: 100%; height: 100px; object-fit: cover">`}},{type:"text",content:s.name,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",paddingLeft:8,paddingRight:8}}]})}},_={youtubeAssetProvider:{searchBtn:"Search on YouTube",modalTitle:"Select YouTube Video",providerLabel:"YouTube Videos"}},K="youtubeAssetProvider",F=g.startup,q=function(e,o){var c;const{skipVideoComponent:i,i18n:a={}}=o,r=Y(o);e.runCommand(f.assetProviderAdd,{provider:r});const u="search-on-youtube",p="video",s=(c=e.Components.getType(p))==null?void 0:c.model.prototype,l=n=>{e.Assets.open({modalTitle:e.I18n.t("youtubeAssetProvider.modalTitle"),providerId:r.id,typeId:r.types[0],providers:[],types:[],select:t=>{e.Assets.close(),n.set({videoId:t.attributes.id})},content:{header:{addUrl:!1,upload:!1}}})};!i&&s&&e.Components.addType(p,{model:{getYoutubeTraits(){const[n,...t]=s.getYoutubeTraits.apply(this);return[n,{id:u,type:"button",label:e.I18n.t("youtubeAssetProvider.searchBtn"),command:()=>l(this)},...t]}},view:{events:()=>({dblclick:"onActive"}),onActive(){const{model:n}=this,t=n.get("provider")||"";t!=null&&t.startsWith("yt")&&l(n)}}}),e.I18n.addMessages({en:_,...a}),B({editor:e,licenseKey:o.licenseKey,plan:F,pluginName:K,cleanup:()=>{e.runCommand(f.assetProviderRemove,{id:r.id}),!i&&s&&e.Components.addType(p,{model:{getYoutubeTraits(){return s.getYoutubeTraits.apply(this).filter(n=>n.id!==u)}}})}})},H=j(q);module.exports=H;