@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.
- package/dist/aiChat/clientTools.d.ts +3 -3
- package/dist/aiChat/clientToolsProcessors.d.ts +5 -2
- package/dist/aiChat/components/AiChatHeader.d.ts +22 -2
- package/dist/aiChat/components/AiChatToolGenerateImage.d.ts +7 -0
- package/dist/aiChat/components/utils.d.ts +2 -0
- package/dist/aiChat/index.cjs.js +88 -99
- package/dist/aiChat/index.es.js +12677 -11001
- package/dist/aiChat/index.js +88 -99
- package/dist/aiChat/index.umd.js +97 -108
- package/dist/aiChat/locales/en.d.ts +38 -0
- package/dist/aiChat/server/index.cjs.js +91 -237
- package/dist/aiChat/server/index.es.js +721 -631
- package/dist/aiChat/server/index.js +91 -237
- package/dist/aiChat/server/index.umd.js +91 -237
- package/dist/aiChat/server/prompts.d.ts +15 -11
- package/dist/aiChat/server/tools.d.ts +74 -122
- package/dist/aiChat/server/types.d.ts +61 -3
- package/dist/aiChat/types.d.ts +69 -11
- package/dist/aiChat/typesSchema.d.ts +27 -0
- package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
- package/dist/googleFontsAssetProvider/index.es.js +11 -11
- package/dist/googleFontsAssetProvider/index.umd.js +1 -1
- package/dist/iconifyComponent/index.cjs.js +2 -2
- package/dist/iconifyComponent/index.es.js +11 -11
- package/dist/iconifyComponent/index.umd.js +2 -2
- package/dist/index.cjs.js +20 -20
- package/dist/index.es.js +208 -208
- package/dist/index.umd.js +1 -1
- package/dist/layoutSidebarButtons/index.cjs.js +1 -1
- package/dist/layoutSidebarButtons/index.es.js +7 -7
- package/dist/layoutSidebarButtons/index.umd.js +1 -1
- package/dist/presetPrintable/index.cjs.js +2 -2
- package/dist/presetPrintable/index.es.js +5 -5
- package/dist/presetPrintable/index.umd.js +3 -3
- package/dist/prosemirror/index.cjs.js +1 -1
- package/dist/prosemirror/index.es.js +1 -1
- package/dist/prosemirror/index.umd.js +1 -1
- package/dist/rteTinyMce/index.cjs.js +2 -2
- package/dist/rteTinyMce/index.es.js +12 -12
- package/dist/rteTinyMce/index.umd.js +2 -2
- package/dist/tableComponent/index.cjs.js +1 -1
- package/dist/tableComponent/index.es.js +83 -83
- package/dist/tableComponent/index.umd.js +1 -1
- package/dist/youtubeAssetProvider/index.cjs.js +1 -1
- package/dist/youtubeAssetProvider/index.es.js +15 -15
- package/dist/youtubeAssetProvider/index.umd.js +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
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.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))(h || {});
|
|
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.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))(h || {});
|
|
2
2
|
const w = "app.grapesjs.com", I = "app-stage.grapesjs.com", G = "app2.grapesjs.com", L = "app-stage2.grapesjs.com", P = [
|
|
3
3
|
w,
|
|
4
4
|
G,
|
|
@@ -60,13 +60,13 @@ async function B({
|
|
|
60
60
|
onLicenseCheckResponse: r,
|
|
61
61
|
cleanup: u
|
|
62
62
|
}) {
|
|
63
|
-
let
|
|
63
|
+
let d = "", s = !1;
|
|
64
64
|
const l = $(), c = (t) => {
|
|
65
65
|
console.warn("Cleanup plugin:", i, "Reason:", t), u();
|
|
66
66
|
}, n = (t = {}) => {
|
|
67
67
|
var v;
|
|
68
|
-
const { error: y, sdkLicense:
|
|
69
|
-
if (!(
|
|
68
|
+
const { error: y, sdkLicense: p } = t, b = (v = t.plan) == null ? void 0 : v.category;
|
|
69
|
+
if (!(p || t.license) || y)
|
|
70
70
|
c(y || "Invalid license");
|
|
71
71
|
else if (b) {
|
|
72
72
|
const R = T[o], x = T[b];
|
|
@@ -74,14 +74,14 @@ async function B({
|
|
|
74
74
|
}
|
|
75
75
|
};
|
|
76
76
|
e.on(U, (t) => {
|
|
77
|
-
|
|
77
|
+
d = t == null ? void 0 : t.baseApiUrl, s = !0;
|
|
78
78
|
}), e.on(D, (t) => {
|
|
79
79
|
r == null || r(t), n(t);
|
|
80
80
|
}), setTimeout(async () => {
|
|
81
81
|
if (!s) {
|
|
82
82
|
if (l) return;
|
|
83
83
|
if (a) {
|
|
84
|
-
const t = await N({ licenseKey: a, pluginName: i, baseApiUrl:
|
|
84
|
+
const t = await N({ licenseKey: a, pluginName: i, baseApiUrl: d });
|
|
85
85
|
r == null || r(t), t && n(t);
|
|
86
86
|
} else
|
|
87
87
|
c("The `licenseKey` option not provided");
|
|
@@ -118,7 +118,7 @@ const W = (e) => {
|
|
|
118
118
|
}, u = (s) => {
|
|
119
119
|
var l, c, n;
|
|
120
120
|
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;
|
|
121
|
-
},
|
|
121
|
+
}, d = (s) => {
|
|
122
122
|
const l = u(s.snippet.thumbnails);
|
|
123
123
|
return {
|
|
124
124
|
id: s.id.videoId,
|
|
@@ -146,11 +146,11 @@ const W = (e) => {
|
|
|
146
146
|
...n
|
|
147
147
|
};
|
|
148
148
|
t.part ? t.part.includes("snippet") || t.part.push("snippet") : t.part = ["snippet"];
|
|
149
|
-
const
|
|
150
|
-
return (f =
|
|
151
|
-
items:
|
|
152
|
-
nextPageCustomData: { token:
|
|
153
|
-
isLastPage: !
|
|
149
|
+
const p = await (await fetch(r(t))).json();
|
|
150
|
+
return (f = p.items) != null && f.length ? {
|
|
151
|
+
items: p.items.map(d),
|
|
152
|
+
nextPageCustomData: { token: p.nextPageToken },
|
|
153
|
+
isLastPage: !p.nextPageToken
|
|
154
154
|
} : { items: [], isLastPage: !0 };
|
|
155
155
|
},
|
|
156
156
|
itemLayout: ({ assetProps: s, onSelect: l }) => ({
|
|
@@ -197,7 +197,7 @@ const W = (e) => {
|
|
|
197
197
|
var c;
|
|
198
198
|
const { skipVideoComponent: i, i18n: a = {} } = o, r = Y(o);
|
|
199
199
|
e.runCommand(h.assetProviderAdd, { provider: r });
|
|
200
|
-
const u = "search-on-youtube",
|
|
200
|
+
const u = "search-on-youtube", d = "video", s = (c = e.Components.getType(d)) == null ? void 0 : c.model.prototype, l = (n) => {
|
|
201
201
|
e.Assets.open({
|
|
202
202
|
modalTitle: e.I18n.t("youtubeAssetProvider.modalTitle"),
|
|
203
203
|
providerId: r.id,
|
|
@@ -215,7 +215,7 @@ const W = (e) => {
|
|
|
215
215
|
}
|
|
216
216
|
});
|
|
217
217
|
};
|
|
218
|
-
!i && s && e.Components.addType(
|
|
218
|
+
!i && s && e.Components.addType(d, {
|
|
219
219
|
model: {
|
|
220
220
|
getYoutubeTraits() {
|
|
221
221
|
const [n, ...t] = s.getYoutubeTraits.apply(this);
|
|
@@ -249,7 +249,7 @@ const W = (e) => {
|
|
|
249
249
|
plan: F,
|
|
250
250
|
pluginName: K,
|
|
251
251
|
cleanup: () => {
|
|
252
|
-
e.runCommand(h.assetProviderRemove, { id: r.id }), !i && s && e.Components.addType(
|
|
252
|
+
e.runCommand(h.assetProviderRemove, { id: r.id }), !i && s && e.Components.addType(d, {
|
|
253
253
|
model: {
|
|
254
254
|
getYoutubeTraits() {
|
|
255
255
|
return s.getYoutubeTraits.apply(this).filter((n) => n.id !== u);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(u,g){typeof exports=="object"&&typeof module<"u"?module.exports=g():typeof define=="function"&&define.amd?define(g):(u=typeof globalThis<"u"?globalThis:u||self,u.StudioSdkPlugins_youtubeAssetProvider=g())})(this,function(){"use strict";var u=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(u||{}),g=(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))(g||{});const v="app.grapesjs.com",P="app-stage.grapesjs.com",T=[v,"app2.grapesjs.com",P,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],x="license:check:start",D="license:check:end",R=()=>typeof window<"u",G=({isDev:e,isStage:o,isPlatform:n})=>`${e?"":`https://${o?P:v}`}/${n?"platform-api":"api"}`,O=()=>{const e=R()&&window.location.hostname;return!!e&&(T.includes(e)||T.some(o=>e.endsWith(o)))};async function L({path:e,baseApiUrl:o,method:n="GET",headers:r={},params:i,body:d}){const s=`${o||G({isDev:!1,isStage:!1})}${e}`,l={method:n,headers:{"Content-Type":"application/json",...r}};d&&(l.body=JSON.stringify(d));const c=i?new URLSearchParams(i).toString():"",a=c?`?${c}`:"",t=await fetch(`${s}${a}`,l);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const A={[u.free]:0,[u.startup]:10,[u.business]:20,[u.enterprise]:30};function U(e){const o=e;return o.init=n=>r=>e(r,n),o}const E=e=>U(e);async function M({editor:e,plan:o,pluginName:n,licenseKey:r,onLicenseCheckResponse:i,cleanup:d}){let p="",s=!1;const l=O(),c=t=>{console.warn("Cleanup plugin:",n,"Reason:",t),d()},a=(t={})=>{var I;const{error:f,sdkLicense:b}=t,y=(I=t.plan)==null?void 0:I.category;if(!(b||t.license)||f)c(f||"Invalid license");else if(y){const W=A[o],Y=A[y];W>Y&&c({pluginRequiredPlan:o,licensePlan:y})}};e.on(x,t=>{p=t==null?void 0:t.baseApiUrl,s=!0}),e.on(D,t=>{i==null||i(t),a(t)}),setTimeout(async()=>{if(!s){if(l)return;if(r){const t=await $({licenseKey:r,pluginName:n,baseApiUrl:p});i==null||i(t),t&&a(t)}else c("The `licenseKey` option not provided")}},2e3)}async function $(e){const{licenseKey:o,pluginName:n,baseApiUrl:r}=e;try{return(await L({baseApiUrl:r,path:`/sdk/${o||"na"}`,method:"POST",params:{d:window.location.hostname,pn:n}})).result||{}}catch(i){return console.error("Error during SDK license check:",i),!1}}const k=e=>{const o={};for(const n of Object.keys(e)){let r=e[n];r&&(Array.isArray(r)?r=r.map(i=>i.toString()).join(","):r=r.toString(),o[n]=r)}return new URLSearchParams(o)},w="youtube-video",N=e=>{const{apiKey:o,searchParams:n,thumbnailQuality:r="high"}=e,i=(s={})=>{const c="https://www.googleapis.com/youtube/v3/search",a=k(s);return`${c}?${a}`},d=s=>{var l,c,a;return((l=s[r])==null?void 0:l.url)||((c=s.high)==null?void 0:c.url)||((a=s.medium)==null?void 0:a.url)||s.default.url},p=s=>{const l=d(s.snippet.thumbnails);return{id:s.id.videoId,src:`https://www.youtube.com/watch?v=${s.id.videoId}`,name:s.snippet.title,type:w,customData:{thumbnailUrl:l,videoItem:s}}};return{id:"youtube",types:[w],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},a=n==null?void 0:n({searchValue:s}),t={...c,...a};t.part?t.part.includes("snippet")||t.part.push("snippet"):t.part=["snippet"];const b=await(await fetch(i(t))).json();return(h=b.items)!=null&&h.length?{items:b.items.map(p),nextPageCustomData:{token:b.nextPageToken},isLastPage:!b.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}}]})}},j={youtubeAssetProvider:{searchBtn:"Search on YouTube",modalTitle:"Select YouTube Video",providerLabel:"YouTube Videos"}},B="youtubeAssetProvider",_=u.startup;return E(function(e,o){var c;const{skipVideoComponent:n,i18n:r={}}=o,i=N(o);e.runCommand(g.assetProviderAdd,{provider:i});const d="search-on-youtube",p="video",s=(c=e.Components.getType(p))==null?void 0:c.model.prototype,l=a=>{e.Assets.open({modalTitle:e.I18n.t("youtubeAssetProvider.modalTitle"),providerId:i.id,typeId:i.types[0],providers:[],types:[],select:t=>{e.Assets.close(),a.set({videoId:t.attributes.id})},content:{header:{addUrl:!1,upload:!1}}})};!n&&s&&e.Components.addType(p,{model:{getYoutubeTraits(){const[a,...t]=s.getYoutubeTraits.apply(this);return[a,{id:d,type:"button",label:e.I18n.t("youtubeAssetProvider.searchBtn"),command:()=>l(this)},...t]}},view:{events:()=>({dblclick:"onActive"}),onActive(){const{model:a}=this,t=a.get("provider")||"";t!=null&&t.startsWith("yt")&&l(a)}}}),e.I18n.addMessages({en:j,...r}),M({editor:e,licenseKey:o.licenseKey,plan:_,pluginName:B,cleanup:()=>{e.runCommand(g.assetProviderRemove,{id:i.id}),!n&&s&&e.Components.addType(p,{model:{getYoutubeTraits(){return s.getYoutubeTraits.apply(this).filter(a=>a.id!==d)}}})}})})});
|
|
1
|
+
(function(u,g){typeof exports=="object"&&typeof module<"u"?module.exports=g():typeof define=="function"&&define.amd?define(g):(u=typeof globalThis<"u"?globalThis:u||self,u.StudioSdkPlugins_youtubeAssetProvider=g())})(this,function(){"use strict";var u=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(u||{}),g=(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))(g||{});const v="app.grapesjs.com",P="app-stage.grapesjs.com",T=[v,"app2.grapesjs.com",P,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],x="license:check:start",D="license:check:end",R=()=>typeof window<"u",G=({isDev:e,isStage:o,isPlatform:n})=>`${e?"":`https://${o?P:v}`}/${n?"platform-api":"api"}`,O=()=>{const e=R()&&window.location.hostname;return!!e&&(T.includes(e)||T.some(o=>e.endsWith(o)))};async function L({path:e,baseApiUrl:o,method:n="GET",headers:r={},params:i,body:d}){const s=`${o||G({isDev:!1,isStage:!1})}${e}`,l={method:n,headers:{"Content-Type":"application/json",...r}};d&&(l.body=JSON.stringify(d));const c=i?new URLSearchParams(i).toString():"",a=c?`?${c}`:"",t=await fetch(`${s}${a}`,l);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const A={[u.free]:0,[u.startup]:10,[u.business]:20,[u.enterprise]:30};function U(e){const o=e;return o.init=n=>r=>e(r,n),o}const E=e=>U(e);async function M({editor:e,plan:o,pluginName:n,licenseKey:r,onLicenseCheckResponse:i,cleanup:d}){let p="",s=!1;const l=O(),c=t=>{console.warn("Cleanup plugin:",n,"Reason:",t),d()},a=(t={})=>{var I;const{error:f,sdkLicense:b}=t,y=(I=t.plan)==null?void 0:I.category;if(!(b||t.license)||f)c(f||"Invalid license");else if(y){const W=A[o],Y=A[y];W>Y&&c({pluginRequiredPlan:o,licensePlan:y})}};e.on(x,t=>{p=t==null?void 0:t.baseApiUrl,s=!0}),e.on(D,t=>{i==null||i(t),a(t)}),setTimeout(async()=>{if(!s){if(l)return;if(r){const t=await $({licenseKey:r,pluginName:n,baseApiUrl:p});i==null||i(t),t&&a(t)}else c("The `licenseKey` option not provided")}},2e3)}async function $(e){const{licenseKey:o,pluginName:n,baseApiUrl:r}=e;try{return(await L({baseApiUrl:r,path:`/sdk/${o||"na"}`,method:"POST",params:{d:window.location.hostname,pn:n}})).result||{}}catch(i){return console.error("Error during SDK license check:",i),!1}}const k=e=>{const o={};for(const n of Object.keys(e)){let r=e[n];r&&(Array.isArray(r)?r=r.map(i=>i.toString()).join(","):r=r.toString(),o[n]=r)}return new URLSearchParams(o)},w="youtube-video",N=e=>{const{apiKey:o,searchParams:n,thumbnailQuality:r="high"}=e,i=(s={})=>{const c="https://www.googleapis.com/youtube/v3/search",a=k(s);return`${c}?${a}`},d=s=>{var l,c,a;return((l=s[r])==null?void 0:l.url)||((c=s.high)==null?void 0:c.url)||((a=s.medium)==null?void 0:a.url)||s.default.url},p=s=>{const l=d(s.snippet.thumbnails);return{id:s.id.videoId,src:`https://www.youtube.com/watch?v=${s.id.videoId}`,name:s.snippet.title,type:w,customData:{thumbnailUrl:l,videoItem:s}}};return{id:"youtube",types:[w],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},a=n==null?void 0:n({searchValue:s}),t={...c,...a};t.part?t.part.includes("snippet")||t.part.push("snippet"):t.part=["snippet"];const b=await(await fetch(i(t))).json();return(h=b.items)!=null&&h.length?{items:b.items.map(p),nextPageCustomData:{token:b.nextPageToken},isLastPage:!b.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}}]})}},j={youtubeAssetProvider:{searchBtn:"Search on YouTube",modalTitle:"Select YouTube Video",providerLabel:"YouTube Videos"}},B="youtubeAssetProvider",_=u.startup;return E(function(e,o){var c;const{skipVideoComponent:n,i18n:r={}}=o,i=N(o);e.runCommand(g.assetProviderAdd,{provider:i});const d="search-on-youtube",p="video",s=(c=e.Components.getType(p))==null?void 0:c.model.prototype,l=a=>{e.Assets.open({modalTitle:e.I18n.t("youtubeAssetProvider.modalTitle"),providerId:i.id,typeId:i.types[0],providers:[],types:[],select:t=>{e.Assets.close(),a.set({videoId:t.attributes.id})},content:{header:{addUrl:!1,upload:!1}}})};!n&&s&&e.Components.addType(p,{model:{getYoutubeTraits(){const[a,...t]=s.getYoutubeTraits.apply(this);return[a,{id:d,type:"button",label:e.I18n.t("youtubeAssetProvider.searchBtn"),command:()=>l(this)},...t]}},view:{events:()=>({dblclick:"onActive"}),onActive(){const{model:a}=this,t=a.get("provider")||"";t!=null&&t.startsWith("yt")&&l(a)}}}),e.I18n.addMessages({en:j,...r}),M({editor:e,licenseKey:o.licenseKey,plan:_,pluginName:B,cleanup:()=>{e.runCommand(g.assetProviderRemove,{id:i.id}),!n&&s&&e.Components.addType(p,{model:{getYoutubeTraits(){return s.getYoutubeTraits.apply(this).filter(a=>a.id!==d)}}})}})})});
|