@grapesjs/studio-sdk-plugins 1.0.28-rc.2 → 1.0.28

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 (77) hide show
  1. package/dist/accordionComponent/index.cjs.js +8 -8
  2. package/dist/accordionComponent/index.es.js +71 -69
  3. package/dist/accordionComponent/index.umd.js +6 -6
  4. package/dist/animationComponent/index.cjs.js +3 -3
  5. package/dist/animationComponent/index.es.js +48 -46
  6. package/dist/animationComponent/index.umd.js +3 -3
  7. package/dist/canvasAbsoluteMode/index.cjs.js +1 -1
  8. package/dist/canvasAbsoluteMode/index.es.js +86 -84
  9. package/dist/canvasAbsoluteMode/index.umd.js +1 -1
  10. package/dist/canvasEmptyState/index.cjs.js +1 -1
  11. package/dist/canvasEmptyState/index.es.js +68 -66
  12. package/dist/canvasEmptyState/index.umd.js +1 -1
  13. package/dist/canvasFullSize/index.cjs.js +3 -3
  14. package/dist/canvasFullSize/index.es.js +52 -50
  15. package/dist/canvasFullSize/index.umd.js +7 -7
  16. package/dist/canvasGridMode/index.cjs.js +5 -5
  17. package/dist/canvasGridMode/index.es.js +191 -189
  18. package/dist/canvasGridMode/index.umd.js +2 -2
  19. package/dist/dataSourceEjs/index.cjs.js +3 -3
  20. package/dist/dataSourceEjs/index.es.js +32 -30
  21. package/dist/dataSourceEjs/index.umd.js +3 -3
  22. package/dist/dataSourceHandlebars/index.cjs.js +4 -4
  23. package/dist/dataSourceHandlebars/index.es.js +31 -29
  24. package/dist/dataSourceHandlebars/index.umd.js +2 -2
  25. package/dist/dialogComponent/index.cjs.js +3 -3
  26. package/dist/dialogComponent/index.es.js +32 -30
  27. package/dist/dialogComponent/index.umd.js +4 -4
  28. package/dist/flexComponent/index.cjs.js +6 -6
  29. package/dist/flexComponent/index.es.js +74 -72
  30. package/dist/flexComponent/index.umd.js +7 -7
  31. package/dist/fsLightboxComponent/index.cjs.js +2 -2
  32. package/dist/fsLightboxComponent/index.es.js +40 -38
  33. package/dist/fsLightboxComponent/index.umd.js +2 -2
  34. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  35. package/dist/googleFontsAssetProvider/index.es.js +70 -68
  36. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  37. package/dist/iconifyComponent/index.cjs.js +2 -2
  38. package/dist/iconifyComponent/index.es.js +56 -54
  39. package/dist/iconifyComponent/index.umd.js +2 -2
  40. package/dist/index.cjs.js +43 -43
  41. package/dist/index.es.js +1442 -1440
  42. package/dist/index.umd.js +43 -43
  43. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  44. package/dist/layoutSidebarButtons/index.es.js +29 -27
  45. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  46. package/dist/lightGalleryComponent/index.cjs.js +1 -1
  47. package/dist/lightGalleryComponent/index.es.js +90 -88
  48. package/dist/lightGalleryComponent/index.umd.js +1 -1
  49. package/dist/linkImageComponent/index.cjs.js +2 -2
  50. package/dist/linkImageComponent/index.es.js +20 -18
  51. package/dist/linkImageComponent/index.umd.js +2 -2
  52. package/dist/listPagesComponent/index.cjs.js +4 -4
  53. package/dist/listPagesComponent/index.es.js +42 -40
  54. package/dist/listPagesComponent/index.umd.js +4 -4
  55. package/dist/presetPrintable/index.cjs.js +3 -3
  56. package/dist/presetPrintable/index.es.js +156 -154
  57. package/dist/presetPrintable/index.umd.js +3 -3
  58. package/dist/prosemirror/index.cjs.js +7 -7
  59. package/dist/prosemirror/index.es.js +165 -163
  60. package/dist/prosemirror/index.umd.js +7 -7
  61. package/dist/rendererReact/index.cjs.js +1 -1
  62. package/dist/rendererReact/index.es.js +101 -99
  63. package/dist/rendererReact/index.js +1 -1
  64. package/dist/rendererReact/index.umd.js +1 -1
  65. package/dist/rteTinyMce/index.cjs.js +2 -2
  66. package/dist/rteTinyMce/index.es.js +54 -52
  67. package/dist/rteTinyMce/index.umd.js +2 -2
  68. package/dist/swiperComponent/index.cjs.js +7 -7
  69. package/dist/swiperComponent/index.es.js +60 -58
  70. package/dist/swiperComponent/index.umd.js +9 -9
  71. package/dist/tableComponent/index.cjs.js +1 -1
  72. package/dist/tableComponent/index.es.js +80 -78
  73. package/dist/tableComponent/index.umd.js +1 -1
  74. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  75. package/dist/youtubeAssetProvider/index.es.js +66 -64
  76. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  77. package/package.json +1 -1
@@ -1,7 +1,9 @@
1
1
  var g = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(g || {}), h = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", e.dialogOpen = "studio:dialogOpen", e.dialogClose = "studio:dialogClose", e.sidebarLeftSet = "studio:sidebarLeft:set", e.sidebarLeftGet = "studio:sidebarLeft:get", e.sidebarLeftToggle = "studio:sidebarLeft:toggle", e.sidebarRightSet = "studio:sidebarRight:set", e.sidebarRightGet = "studio:sidebarRight:get", e.sidebarRightToggle = "studio:sidebarRight:toggle", e.sidebarTopSet = "studio:sidebarTop:set", e.sidebarTopGet = "studio:sidebarTop:get", e.sidebarTopToggle = "studio:sidebarTop:toggle", e.sidebarBottomSet = "studio:sidebarBottom:set", e.sidebarBottomGet = "studio:sidebarBottom:get", e.sidebarBottomToggle = "studio:sidebarBottom:toggle", e.symbolAdd = "studio:symbolAdd", e.symbolDetach = "studio:symbolDetach", e.symbolOverride = "studio:symbolOverride", e.symbolPropagateStyles = "studio:propagateStyles", e.getPagesConfig = "studio:getPagesConfig", e.setPagesConfig = "studio:setPagesConfig", e.getPageSettings = "studio:getPageSettings", e.setPageSettings = "studio:setPageSettings", e.projectFiles = "studio:projectFiles", e.canvasReload = "studio:canvasReload", e.getBlocksPanel = "studio:getBlocksPanel", e.setBlocksPanel = "studio:setBlocksPanel", e.getStateContextMenu = "studio:getStateContextMenu", e.setStateContextMenu = "studio:setStateContextMenu", e.contextMenuComponent = "studio:contextMenuComponent", e.layoutAdd = "studio:layoutAdd", e.layoutRemove = "studio:layoutRemove", e.layoutToggle = "studio:layoutToggle", e.layoutUpdate = "studio:layoutUpdate", e.layoutGet = "studio:layoutGet", e.layoutConfigGet = "studio:layoutConfigGet", e.layoutConfigSet = "studio:layoutConfigSet", e.getStateTheme = "studio:getStateTheme", e.setStateTheme = "studio:setStateTheme", e.assetProviderGet = "studio:assetProviderGet", e.assetProviderAdd = "studio:assetProviderAdd", e.assetProviderRemove = "studio:assetProviderRemove", e.fontGet = "studio:fontGet", e.fontAdd = "studio:fontAdd", e.fontRemove = "studio:fontRemove", e.fontManagerOpen = "studio:fontManagerOpen", e.menuFontLoad = "studio:menuFontLoad", e.toggleStateDataSource = "studio:toggleStateDataSource", e.getStateDataSource = "studio:getStateDataSource", e.dataSourceSetGlobalData = "studio:dataSourceSetGlobalData", e.dataSourceSetImporter = "studio:dataSourceSetImporter", e.dataSourceSetExporter = "studio:dataSourceSetExporter", e.setDragAbsolute = "studio:setDragAbsolute", e))(h || {});
2
- const P = "app.grapesjs.com", A = "app-stage.grapesjs.com", f = [
2
+ const P = "app.grapesjs.com", A = "app-stage.grapesjs.com", I = "app2.grapesjs.com", k = "app-stage2.grapesjs.com", f = [
3
3
  P,
4
+ I,
4
5
  A,
6
+ k,
5
7
  "localhost",
6
8
  "127.0.0.1",
7
9
  ".local-credentialless.webcontainer.io",
@@ -10,19 +12,19 @@ const P = "app.grapesjs.com", A = "app-stage.grapesjs.com", f = [
10
12
  // For stackblitz.com demos
11
13
  "-sandpack.codesandbox.io"
12
14
  // For Sandpack demos
13
- ], k = "license:check:start", I = "license:check:end", U = () => typeof window < "u", x = ({ isDev: e, isStage: o }) => `${e ? "" : `https://${o ? A : P}`}/api`, G = () => {
14
- const e = U() && window.location.hostname;
15
+ ], U = "license:check:start", D = "license:check:end", x = () => typeof window < "u", G = ({ isDev: e, isStage: o }) => `${e ? "" : `https://${o ? A : P}`}/api`, O = () => {
16
+ const e = x() && window.location.hostname;
15
17
  return !!e && (f.includes(e) || f.some((o) => e.endsWith(o)));
16
18
  };
17
- async function D({
19
+ async function M({
18
20
  path: e,
19
21
  baseApiUrl: o,
20
22
  method: a = "GET",
21
23
  headers: n = {},
22
- params: c,
24
+ params: l,
23
25
  body: u
24
26
  }) {
25
- const t = `${o || x({ isDev: !1, isStage: !1 })}${e}`, i = {
27
+ const t = `${o || G({ isDev: !1, isStage: !1 })}${e}`, i = {
26
28
  method: a,
27
29
  headers: {
28
30
  "Content-Type": "application/json",
@@ -30,7 +32,7 @@ async function D({
30
32
  }
31
33
  };
32
34
  u && (i.body = JSON.stringify(u));
33
- const l = c ? new URLSearchParams(c).toString() : "", s = l ? `?${l}` : "", r = await fetch(`${t}${s}`, i);
35
+ const c = l ? new URLSearchParams(l).toString() : "", s = c ? `?${c}` : "", r = await fetch(`${t}${s}`, i);
34
36
  if (!r.ok)
35
37
  throw new Error(`HTTP error! status: ${r.status}`);
36
38
  return r.json();
@@ -41,50 +43,50 @@ const v = {
41
43
  [g.business]: 20,
42
44
  [g.enterprise]: 30
43
45
  };
44
- function O(e) {
46
+ function $(e) {
45
47
  const o = e;
46
48
  return o.init = (a) => (n) => e(n, a), o;
47
49
  }
48
- const $ = (e) => /* @__PURE__ */ O(e);
49
- async function E({
50
+ const E = (e) => /* @__PURE__ */ $(e);
51
+ async function j({
50
52
  editor: e,
51
53
  plan: o,
52
54
  pluginName: a,
53
55
  licenseKey: n,
54
- cleanup: c
56
+ cleanup: l
55
57
  }) {
56
- let u = "", d = !1;
57
- const t = G(), i = (s) => {
58
- console.warn("Cleanup plugin:", a, "Reason:", s), c();
59
- }, l = (s = {}) => {
58
+ let u = "", p = !1;
59
+ const t = O(), i = (s) => {
60
+ console.warn("Cleanup plugin:", a, "Reason:", s), l();
61
+ }, c = (s = {}) => {
60
62
  var b;
61
- const { error: r, sdkLicense: y } = s, p = (b = s.plan) == null ? void 0 : b.category;
63
+ const { error: r, sdkLicense: y } = s, d = (b = s.plan) == null ? void 0 : b.category;
62
64
  if (!(y || s.license) || r)
63
65
  i(r || "Invalid license");
64
- else if (p) {
65
- const L = v[o], R = v[p];
66
- L > R && i({ pluginRequiredPlan: o, licensePlan: p });
66
+ else if (d) {
67
+ const L = v[o], R = v[d];
68
+ L > R && i({ pluginRequiredPlan: o, licensePlan: d });
67
69
  }
68
70
  };
69
- e.on(k, (s) => {
70
- u = s == null ? void 0 : s.baseApiUrl, d = !0;
71
- }), e.on(I, (s) => {
72
- l(s);
71
+ e.on(U, (s) => {
72
+ u = s == null ? void 0 : s.baseApiUrl, p = !0;
73
+ }), e.on(D, (s) => {
74
+ c(s);
73
75
  }), setTimeout(async () => {
74
- if (!d) {
76
+ if (!p) {
75
77
  if (t) return;
76
78
  if (n) {
77
- const s = await M({ licenseKey: n, pluginName: a, baseApiUrl: u });
78
- s && l(s);
79
+ const s = await B({ licenseKey: n, pluginName: a, baseApiUrl: u });
80
+ s && c(s);
79
81
  } else
80
82
  i("The `licenseKey` option not provided");
81
83
  }
82
84
  }, 2e3);
83
85
  }
84
- async function M(e) {
86
+ async function B(e) {
85
87
  const { licenseKey: o, pluginName: a, baseApiUrl: n } = e;
86
88
  try {
87
- return (await D({
89
+ return (await M({
88
90
  baseApiUrl: n,
89
91
  path: `/sdk/${o || "na"}`,
90
92
  method: "POST",
@@ -93,25 +95,25 @@ async function M(e) {
93
95
  pn: a
94
96
  }
95
97
  })).result || {};
96
- } catch (c) {
97
- return console.error("Error during SDK license check:", c), !1;
98
+ } catch (l) {
99
+ return console.error("Error during SDK license check:", l), !1;
98
100
  }
99
101
  }
100
- const B = (e) => {
102
+ const N = (e) => {
101
103
  const o = {};
102
104
  for (const a of Object.keys(e)) {
103
105
  let n = e[a];
104
- n && (Array.isArray(n) ? n = n.map((c) => c.toString()).join(",") : n = n.toString(), o[a] = n);
106
+ n && (Array.isArray(n) ? n = n.map((l) => l.toString()).join(",") : n = n.toString(), o[a] = n);
105
107
  }
106
108
  return new URLSearchParams(o);
107
- }, T = "youtube-video", j = (e) => {
108
- const { apiKey: o, searchParams: a, thumbnailQuality: n = "high" } = e, c = (t = {}) => {
109
- const l = "https://www.googleapis.com/youtube/v3/search", s = B(t);
110
- return `${l}?${s}`;
109
+ }, T = "youtube-video", W = (e) => {
110
+ const { apiKey: o, searchParams: a, thumbnailQuality: n = "high" } = e, l = (t = {}) => {
111
+ const c = "https://www.googleapis.com/youtube/v3/search", s = N(t);
112
+ return `${c}?${s}`;
111
113
  }, u = (t) => {
112
- var i, l, s;
113
- return ((i = t[n]) == null ? void 0 : i.url) || ((l = t.high) == null ? void 0 : l.url) || ((s = t.medium) == null ? void 0 : s.url) || t.default.url;
114
- }, d = (t) => {
114
+ var i, c, s;
115
+ return ((i = t[n]) == null ? void 0 : i.url) || ((c = t.high) == null ? void 0 : c.url) || ((s = t.medium) == null ? void 0 : s.url) || t.default.url;
116
+ }, p = (t) => {
115
117
  const i = u(t.snippet.thumbnails);
116
118
  return {
117
119
  id: t.id.videoId,
@@ -128,22 +130,22 @@ const B = (e) => {
128
130
  search: { reloadOnInput: !0, debounceMs: 1e3 },
129
131
  async onLoad({ searchValue: t, pageCustomData: i }) {
130
132
  var b;
131
- const l = {
133
+ const c = {
132
134
  maxResults: 25,
133
135
  q: t,
134
136
  pageToken: i == null ? void 0 : i.token,
135
137
  type: ["video"],
136
138
  key: o
137
139
  }, s = a == null ? void 0 : a({ searchValue: t }), r = {
138
- ...l,
140
+ ...c,
139
141
  ...s
140
142
  };
141
143
  r.part ? r.part.includes("snippet") || r.part.push("snippet") : r.part = ["snippet"];
142
- const p = await (await fetch(c(r))).json();
143
- return (b = p.items) != null && b.length ? {
144
- items: p.items.map(d),
145
- nextPageCustomData: { token: p.nextPageToken },
146
- isLastPage: !p.nextPageToken
144
+ const d = await (await fetch(l(r))).json();
145
+ return (b = d.items) != null && b.length ? {
146
+ items: d.items.map(p),
147
+ nextPageCustomData: { token: d.nextPageToken },
148
+ isLastPage: !d.nextPageToken
147
149
  } : { items: [], isLastPage: !0 };
148
150
  },
149
151
  itemLayout: ({ assetProps: t, onSelect: i }) => ({
@@ -162,8 +164,8 @@ const B = (e) => {
162
164
  {
163
165
  type: "custom",
164
166
  render: () => {
165
- var l;
166
- return `<img src="${(l = t.customData) == null ? void 0 : l.thumbnailUrl}" alt="${t.name}" style="width: 100%; height: 100px; object-fit: cover">`;
167
+ var c;
168
+ return `<img src="${(c = t.customData) == null ? void 0 : c.thumbnailUrl}" alt="${t.name}" style="width: 100%; height: 100px; object-fit: cover">`;
167
169
  }
168
170
  },
169
171
  {
@@ -180,21 +182,21 @@ const B = (e) => {
180
182
  ]
181
183
  })
182
184
  };
183
- }, N = {
185
+ }, Y = {
184
186
  youtubeAssetProvider: {
185
187
  searchBtn: "Search on YouTube",
186
188
  modalTitle: "Select YouTube Video",
187
189
  providerLabel: "YouTube Videos"
188
190
  }
189
- }, W = "youtubeAssetProvider", Y = g.startup, _ = function(e, o) {
190
- var l;
191
- const { skipVideoComponent: a, i18n: n = {} } = o, c = j(o);
192
- e.runCommand(h.assetProviderAdd, { provider: c });
193
- const u = "search-on-youtube", d = "video", t = (l = e.Components.getType(d)) == null ? void 0 : l.model.prototype, i = (s) => {
191
+ }, _ = "youtubeAssetProvider", K = g.startup, F = function(e, o) {
192
+ var c;
193
+ const { skipVideoComponent: a, i18n: n = {} } = o, l = W(o);
194
+ e.runCommand(h.assetProviderAdd, { provider: l });
195
+ const u = "search-on-youtube", p = "video", t = (c = e.Components.getType(p)) == null ? void 0 : c.model.prototype, i = (s) => {
194
196
  e.Assets.open({
195
197
  modalTitle: e.I18n.t("youtubeAssetProvider.modalTitle"),
196
- providerId: c.id,
197
- typeId: c.types[0],
198
+ providerId: l.id,
199
+ typeId: l.types[0],
198
200
  providers: [],
199
201
  types: [],
200
202
  select: (r) => {
@@ -208,7 +210,7 @@ const B = (e) => {
208
210
  }
209
211
  });
210
212
  };
211
- !a && t && e.Components.addType(d, {
213
+ !a && t && e.Components.addType(p, {
212
214
  model: {
213
215
  getYoutubeTraits() {
214
216
  const [s, ...r] = t.getYoutubeTraits.apply(this);
@@ -234,15 +236,15 @@ const B = (e) => {
234
236
  }
235
237
  }
236
238
  }), e.I18n.addMessages({
237
- en: N,
239
+ en: Y,
238
240
  ...n
239
- }), E({
241
+ }), j({
240
242
  editor: e,
241
243
  licenseKey: o.licenseKey,
242
- plan: Y,
243
- pluginName: W,
244
+ plan: K,
245
+ pluginName: _,
244
246
  cleanup: () => {
245
- e.runCommand(h.assetProviderRemove, { id: c.id }), !a && t && e.Components.addType(d, {
247
+ e.runCommand(h.assetProviderRemove, { id: l.id }), !a && t && e.Components.addType(p, {
246
248
  model: {
247
249
  getYoutubeTraits() {
248
250
  return t.getYoutubeTraits.apply(this).filter((s) => s.id !== u);
@@ -251,7 +253,7 @@ const B = (e) => {
251
253
  });
252
254
  }
253
255
  });
254
- }, K = $(_);
256
+ }, q = E(F);
255
257
  export {
256
- K as default
258
+ q as default
257
259
  };
@@ -1 +1 @@
1
- (function(u,b){typeof exports=="object"&&typeof module<"u"?module.exports=b():typeof define=="function"&&define.amd?define(b):(u=typeof globalThis<"u"?globalThis:u||self,u.StudioSdkPlugins_youtubeAssetProvider=b())})(this,function(){"use strict";var u=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(u||{}),b=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.projectFiles="studio:projectFiles",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(b||{});const y="app.grapesjs.com",f="app-stage.grapesjs.com",v=[y,f,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],w="license:check:start",L="license:check:end",R=()=>typeof window<"u",k=({isDev:e,isStage:o})=>`${e?"":`https://${o?f:y}`}/api`,I=()=>{const e=R()&&window.location.hostname;return!!e&&(v.includes(e)||v.some(o=>e.endsWith(o)))};async function x({path:e,baseApiUrl:o,method:a="GET",headers:n={},params:c,body:d}){const t=`${o||k({isDev:!1,isStage:!1})}${e}`,i={method:a,headers:{"Content-Type":"application/json",...n}};d&&(i.body=JSON.stringify(d));const l=c?new URLSearchParams(c).toString():"",s=l?`?${l}`:"",r=await fetch(`${t}${s}`,i);if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);return r.json()}const T={[u.free]:0,[u.startup]:10,[u.business]:20,[u.enterprise]:30};function U(e){const o=e;return o.init=a=>n=>e(n,a),o}const G=e=>U(e);async function D({editor:e,plan:o,pluginName:a,licenseKey:n,cleanup:c}){let d="",p=!1;const t=I(),i=s=>{console.warn("Cleanup plugin:",a,"Reason:",s),c()},l=(s={})=>{var h;const{error:r,sdkLicense:A}=s,g=(h=s.plan)==null?void 0:h.category;if(!(A||s.license)||r)i(r||"Invalid license");else if(g){const W=T[o],Y=T[g];W>Y&&i({pluginRequiredPlan:o,licensePlan:g})}};e.on(w,s=>{d=s==null?void 0:s.baseApiUrl,p=!0}),e.on(L,s=>{l(s)}),setTimeout(async()=>{if(!p){if(t)return;if(n){const s=await O({licenseKey:n,pluginName:a,baseApiUrl:d});s&&l(s)}else i("The `licenseKey` option not provided")}},2e3)}async function O(e){const{licenseKey:o,pluginName:a,baseApiUrl:n}=e;try{return(await x({baseApiUrl:n,path:`/sdk/${o||"na"}`,method:"POST",params:{d:window.location.hostname,pn:a}})).result||{}}catch(c){return console.error("Error during SDK license check:",c),!1}}const $=e=>{const o={};for(const a of Object.keys(e)){let n=e[a];n&&(Array.isArray(n)?n=n.map(c=>c.toString()).join(","):n=n.toString(),o[a]=n)}return new URLSearchParams(o)},P="youtube-video",E=e=>{const{apiKey:o,searchParams:a,thumbnailQuality:n="high"}=e,c=(t={})=>{const l="https://www.googleapis.com/youtube/v3/search",s=$(t);return`${l}?${s}`},d=t=>{var i,l,s;return((i=t[n])==null?void 0:i.url)||((l=t.high)==null?void 0:l.url)||((s=t.medium)==null?void 0:s.url)||t.default.url},p=t=>{const i=d(t.snippet.thumbnails);return{id:t.id.videoId,src:`https://www.youtube.com/watch?v=${t.id.videoId}`,name:t.snippet.title,type:P,customData:{thumbnailUrl:i,videoItem:t}}};return{id:"youtube",types:[P],label:({editor:t})=>t.I18n.t("youtubeAssetProvider.providerLabel"),search:{reloadOnInput:!0,debounceMs:1e3},async onLoad({searchValue:t,pageCustomData:i}){var h;const l={maxResults:25,q:t,pageToken:i==null?void 0:i.token,type:["video"],key:o},s=a==null?void 0:a({searchValue:t}),r={...l,...s};r.part?r.part.includes("snippet")||r.part.push("snippet"):r.part=["snippet"];const g=await(await fetch(c(r))).json();return(h=g.items)!=null&&h.length?{items:g.items.map(p),nextPageCustomData:{token:g.nextPageToken},isLastPage:!g.nextPageToken}:{items:[],isLastPage:!0}},itemLayout:({assetProps:t,onSelect:i})=>({type:"column",onClick:()=>i(t),htmlAttrs:{title:t.name},style:{borderWidth:"1px",borderRadius:8,overflow:"hidden",cursor:"pointer"},children:[{type:"custom",render:()=>{var l;return`<img src="${(l=t.customData)==null?void 0:l.thumbnailUrl}" alt="${t.name}" style="width: 100%; height: 100px; object-fit: cover">`}},{type:"text",content:t.name,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",paddingLeft:8,paddingRight:8}}]})}},M={youtubeAssetProvider:{searchBtn:"Search on YouTube",modalTitle:"Select YouTube Video",providerLabel:"YouTube Videos"}},B="youtubeAssetProvider",j=u.startup;return G(function(e,o){var l;const{skipVideoComponent:a,i18n:n={}}=o,c=E(o);e.runCommand(b.assetProviderAdd,{provider:c});const d="search-on-youtube",p="video",t=(l=e.Components.getType(p))==null?void 0:l.model.prototype,i=s=>{e.Assets.open({modalTitle:e.I18n.t("youtubeAssetProvider.modalTitle"),providerId:c.id,typeId:c.types[0],providers:[],types:[],select:r=>{e.Assets.close(),s.set({videoId:r.attributes.id})},content:{header:{addUrl:!1,upload:!1}}})};!a&&t&&e.Components.addType(p,{model:{getYoutubeTraits(){const[s,...r]=t.getYoutubeTraits.apply(this);return[s,{id:d,type:"button",label:e.I18n.t("youtubeAssetProvider.searchBtn"),command:()=>i(this)},...r]}},view:{events:()=>({dblclick:"onActive"}),onActive(){const{model:s}=this,r=s.get("provider")||"";r!=null&&r.startsWith("yt")&&i(s)}}}),e.I18n.addMessages({en:M,...n}),D({editor:e,licenseKey:o.licenseKey,plan:j,pluginName:B,cleanup:()=>{e.runCommand(b.assetProviderRemove,{id:c.id}),!a&&t&&e.Components.addType(p,{model:{getYoutubeTraits(){return t.getYoutubeTraits.apply(this).filter(s=>s.id!==d)}}})}})})});
1
+ (function(u,b){typeof exports=="object"&&typeof module<"u"?module.exports=b():typeof define=="function"&&define.amd?define(b):(u=typeof globalThis<"u"?globalThis:u||self,u.StudioSdkPlugins_youtubeAssetProvider=b())})(this,function(){"use strict";var u=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(u||{}),b=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.projectFiles="studio:projectFiles",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(b||{});const y="app.grapesjs.com",f="app-stage.grapesjs.com",v=[y,"app2.grapesjs.com",f,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],w="license:check:start",L="license:check:end",I=()=>typeof window<"u",R=({isDev:e,isStage:o})=>`${e?"":`https://${o?f:y}`}/api`,k=()=>{const e=I()&&window.location.hostname;return!!e&&(v.includes(e)||v.some(o=>e.endsWith(o)))};async function D({path:e,baseApiUrl:o,method:a="GET",headers:n={},params:c,body:d}){const t=`${o||R({isDev:!1,isStage:!1})}${e}`,i={method:a,headers:{"Content-Type":"application/json",...n}};d&&(i.body=JSON.stringify(d));const l=c?new URLSearchParams(c).toString():"",s=l?`?${l}`:"",r=await fetch(`${t}${s}`,i);if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);return r.json()}const T={[u.free]:0,[u.startup]:10,[u.business]:20,[u.enterprise]:30};function O(e){const o=e;return o.init=a=>n=>e(n,a),o}const x=e=>O(e);async function U({editor:e,plan:o,pluginName:a,licenseKey:n,cleanup:c}){let d="",p=!1;const t=k(),i=s=>{console.warn("Cleanup plugin:",a,"Reason:",s),c()},l=(s={})=>{var h;const{error:r,sdkLicense:A}=s,g=(h=s.plan)==null?void 0:h.category;if(!(A||s.license)||r)i(r||"Invalid license");else if(g){const _=T[o],W=T[g];_>W&&i({pluginRequiredPlan:o,licensePlan:g})}};e.on(w,s=>{d=s==null?void 0:s.baseApiUrl,p=!0}),e.on(L,s=>{l(s)}),setTimeout(async()=>{if(!p){if(t)return;if(n){const s=await G({licenseKey:n,pluginName:a,baseApiUrl:d});s&&l(s)}else i("The `licenseKey` option not provided")}},2e3)}async function G(e){const{licenseKey:o,pluginName:a,baseApiUrl:n}=e;try{return(await D({baseApiUrl:n,path:`/sdk/${o||"na"}`,method:"POST",params:{d:window.location.hostname,pn:a}})).result||{}}catch(c){return console.error("Error during SDK license check:",c),!1}}const M=e=>{const o={};for(const a of Object.keys(e)){let n=e[a];n&&(Array.isArray(n)?n=n.map(c=>c.toString()).join(","):n=n.toString(),o[a]=n)}return new URLSearchParams(o)},P="youtube-video",E=e=>{const{apiKey:o,searchParams:a,thumbnailQuality:n="high"}=e,c=(t={})=>{const l="https://www.googleapis.com/youtube/v3/search",s=M(t);return`${l}?${s}`},d=t=>{var i,l,s;return((i=t[n])==null?void 0:i.url)||((l=t.high)==null?void 0:l.url)||((s=t.medium)==null?void 0:s.url)||t.default.url},p=t=>{const i=d(t.snippet.thumbnails);return{id:t.id.videoId,src:`https://www.youtube.com/watch?v=${t.id.videoId}`,name:t.snippet.title,type:P,customData:{thumbnailUrl:i,videoItem:t}}};return{id:"youtube",types:[P],label:({editor:t})=>t.I18n.t("youtubeAssetProvider.providerLabel"),search:{reloadOnInput:!0,debounceMs:1e3},async onLoad({searchValue:t,pageCustomData:i}){var h;const l={maxResults:25,q:t,pageToken:i==null?void 0:i.token,type:["video"],key:o},s=a==null?void 0:a({searchValue:t}),r={...l,...s};r.part?r.part.includes("snippet")||r.part.push("snippet"):r.part=["snippet"];const g=await(await fetch(c(r))).json();return(h=g.items)!=null&&h.length?{items:g.items.map(p),nextPageCustomData:{token:g.nextPageToken},isLastPage:!g.nextPageToken}:{items:[],isLastPage:!0}},itemLayout:({assetProps:t,onSelect:i})=>({type:"column",onClick:()=>i(t),htmlAttrs:{title:t.name},style:{borderWidth:"1px",borderRadius:8,overflow:"hidden",cursor:"pointer"},children:[{type:"custom",render:()=>{var l;return`<img src="${(l=t.customData)==null?void 0:l.thumbnailUrl}" alt="${t.name}" style="width: 100%; height: 100px; object-fit: cover">`}},{type:"text",content:t.name,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",paddingLeft:8,paddingRight:8}}]})}},$={youtubeAssetProvider:{searchBtn:"Search on YouTube",modalTitle:"Select YouTube Video",providerLabel:"YouTube Videos"}},N="youtubeAssetProvider",j=u.startup;return x(function(e,o){var l;const{skipVideoComponent:a,i18n:n={}}=o,c=E(o);e.runCommand(b.assetProviderAdd,{provider:c});const d="search-on-youtube",p="video",t=(l=e.Components.getType(p))==null?void 0:l.model.prototype,i=s=>{e.Assets.open({modalTitle:e.I18n.t("youtubeAssetProvider.modalTitle"),providerId:c.id,typeId:c.types[0],providers:[],types:[],select:r=>{e.Assets.close(),s.set({videoId:r.attributes.id})},content:{header:{addUrl:!1,upload:!1}}})};!a&&t&&e.Components.addType(p,{model:{getYoutubeTraits(){const[s,...r]=t.getYoutubeTraits.apply(this);return[s,{id:d,type:"button",label:e.I18n.t("youtubeAssetProvider.searchBtn"),command:()=>i(this)},...r]}},view:{events:()=>({dblclick:"onActive"}),onActive(){const{model:s}=this,r=s.get("provider")||"";r!=null&&r.startsWith("yt")&&i(s)}}}),e.I18n.addMessages({en:$,...n}),U({editor:e,licenseKey:o.licenseKey,plan:j,pluginName:N,cleanup:()=>{e.runCommand(b.assetProviderRemove,{id:c.id}),!a&&t&&e.Components.addType(p,{model:{getYoutubeTraits(){return t.getYoutubeTraits.apply(this).filter(s=>s.id!==d)}}})}})})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grapesjs/studio-sdk-plugins",
3
- "version": "1.0.28-rc.2",
3
+ "version": "1.0.28",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org"
6
6
  },