diff --git a/.prettierignore b/.prettierignore index 50a52184..a385062b 100644 --- a/.prettierignore +++ b/.prettierignore @@ -5,7 +5,8 @@ coverage .next out AdminPanel/client/src/pages/AiIntegration/ai/** -AdminPanel/client/src/pages/AiIntegration/js/** +AdminPanel/client/src/pages/AiIntegration/js/plugins.js +AdminPanel/client/src/pages/AiIntegration/js/plugins-ui.js *.min.js *.min.css package-lock.json diff --git a/AdminPanel/client/src/pages/AiIntegration/js/plugins-sdk.js b/AdminPanel/client/src/pages/AiIntegration/js/plugins-sdk.js index d9b3719e..f9e21bfc 100644 --- a/AdminPanel/client/src/pages/AiIntegration/js/plugins-sdk.js +++ b/AdminPanel/client/src/pages/AiIntegration/js/plugins-sdk.js @@ -1,8 +1,6 @@ - - 'use strict'; -const pluginGuid = "asc.{9DC93CDB-B576-4F0C-B55E-FCC9C48DD007}"; +const pluginGuid = 'asc.{9DC93CDB-B576-4F0C-B55E-FCC9C48DD007}'; let iframeMain = ''; let sdkVersion = 'develop'; // Dynamic version, defaults to 'develop' const mainButtonId = 'settings.html'; @@ -20,10 +18,10 @@ let settingsButton = null; * @param {Object} data - The data to send */ function sendMessageToFrame(iframeId, data) { - const frame = document.getElementById(iframeId); - if (frame) { - frame.contentWindow.postMessage(JSON.stringify(data), "*"); - } + const frame = document.getElementById(iframeId); + if (frame) { + frame.contentWindow.postMessage(JSON.stringify(data), '*'); + } } /** @@ -31,24 +29,24 @@ function sendMessageToFrame(iframeId, data) { * @param {MessageEvent} event - The message event */ function receiveMessage(event) { - if (typeof event.data !== 'string') { - return; - } - - try { - const data = JSON.parse(event.data); - if (data.type === 'initialize') { - initialize(data); - } else if (data.type === 'initialize_internal') { - initialize_internal(data); - } else if (data.type === 'method') { - handleMethod(data); - } else if (data.type === 'messageToPlugin') { - sendMessageToPlugin(data); - } - } catch (error) { - console.error('Failed to parse message data:', error); + if (typeof event.data !== 'string') { + return; + } + + try { + const data = JSON.parse(event.data); + if (data.type === 'initialize') { + initialize(data); + } else if (data.type === 'initialize_internal') { + initialize_internal(data); + } else if (data.type === 'method') { + handleMethod(data); + } else if (data.type === 'messageToPlugin') { + sendMessageToPlugin(data); } + } catch (error) { + console.error('Failed to parse message data:', error); + } } /** @@ -56,307 +54,307 @@ function receiveMessage(event) { * @param {Object} data - Initialization data containing windowID */ function initialize(data) { - const iframeId = data.windowID || iframeMain; - const msg = { - guid: pluginGuid, - type: "plugin_init", - data: /**/"(function(a,n){var f=[1,1.25,1.5,1.75,2,2.25,2.5,2.75,3,3.5,4,4.5,5];a.AscDesktopEditor&&a.AscDesktopEditor.GetSupportedScaleValues&&(f=a.AscDesktopEditor.GetSupportedScaleValues());var h=function(){if(0===f.length)return!1;var c=navigator.userAgent.toLowerCase(),e=-1e-1E-4);g++)k=Math.abs(f[g]-e),kMath.abs(c.zoom-b)||(b=c.zoom,document.firstElementChild.style.zoom=.001>Math.abs(b-1)?\"normal\":1/b)}})(window);(function(a,n){function f(b){this.plugin=b;this.ps;this.items=[];this.isCurrentVisible=this.isVisible=!1}function h(){this.id=a.Asc.generateGuid();this.id=this.id.replace(/-/g,\"\");this._events={};this._register()}f.prototype.createWindow=function(){var b=document.body,c=document.getElementsByTagName(\"head\")[0];b&&c&&(b=document.createElement(\"style\"),b.type=\"text/css\",b.innerHTML='.ih_main { margin: 0px; padding: 0px; width: 100%; height: 100%; display: inline-block; overflow: hidden; box-sizing: border-box; user-select: none; position: fixed; border: 1px solid #cfcfcf; } ul { margin: 0px; padding: 0px; width: 100%; height: 100%; list-style-type: none; outline:none; } li { padding: 5px; font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 400; color: #373737; } li:hover { background-color: #D8DADC; } .li_selected { background-color: #D8DADC; color: #373737; }.li_selected:hover { background-color: #D8DADC; color: #373737; }',c.appendChild(b),document.body.style.background=\"#FFFFFF\",document.body.style.width=\"100%\",document.body.style.height=\"100%\",document.body.style.margin=\"0\",document.body.style.padding=\"0\",document.body.innerHTML='
    ',this.ps=new PerfectScrollbar(document.getElementById(\"ih_area\"),{minScrollbarLength:20}),this.updateScrolls(),this.createDefaultEvents())};f.prototype.setItems=function(b){this.items=b;for(var c=\"\",e=b.length,d=0;d',c+=b[d].text,c+=\"\";document.getElementById(\"ih_elements_id\").innerHTML=c;this.updateScrolls();this.scrollToSelected()};f.prototype.createDefaultEvents=function(){this.plugin.onExternalMouseUp=function(){var c=document.createEvent(\"MouseEvents\");c.initMouseEvent(\"mouseup\",!0,!0,a,1,0,0,0,0,!1,!1,!1,!1,0,null);document.dispatchEvent(c)};var b=this;a.onkeydown=function(c){switch(c.keyCode){case 27:b.isVisible&&(b.isVisible=!1,b.plugin.executeMethod(\"UnShowInputHelper\",[b.plugin.info.guid,!0]));break;case 38:case 40:case 9:case 36:case 35:case 33:case 34:for(var e=document.getElementsByTagName(\"li\"),d=-1,l=0;ld&&(d=0);break;case 40:d++;d>=e.length&&(d=e.length-1);break;case 9:d++;d>=e.length&&(d=0);break;case 36:d=0;break;case 35:d=e.length-1;break;case 33:case 34:l=1;var k=document.getElementById(\"ih_area\").clientHeight/24>>0;1d&&(d=0)):(d+=l,d>=e.length&&(d=d=e.length-1))}d .ps__thumb-y\":{\"border-color\":\"canvas-scroll-thumb-hover\",\"background-color\":\"canvas-scroll-thumb-hover !important\"},\".ps .ps__rail-x:hover\":{\"background-color\":\"background-toolbar\"},\".ps .ps__rail-x.ps--clicking\":{\"background-color\":\"background-toolbar\"},\".ps__thumb-x\":{\"background-color\":\"background-normal\",\"border-color\":\"Border !important\"},\".ps__rail-x:hover > .ps__thumb-x\":{\"border-color\":\"canvas-scroll-thumb-hover\"},a:{color:\"text-link !important\"},\"a:hover\":{color:\"text-link-hover !important\"},\"a:active\":{color:\"text-link-active !important\"},\"a:visited\":{color:\"text-link-visited !important\"},\"*::-webkit-scrollbar-track\":{background:\"background-normal\"},\"*::-webkit-scrollbar-track:hover\":{background:\"background-toolbar-additional\"},\"*::-webkit-scrollbar-thumb\":{\"background-color\":\"background-toolbar\",\"border-color\":\"border-regular-control\"},\"*::-webkit-scrollbar-thumb:hover\":{\"background-color\":\"canvas-scroll-thumb-hover\"},\".asc-plugin-loader\":{color:\"text-normal\"}},e=!1,d=\"\";a.plugin_sendMessage=function(k){a.Asc.plugin.ie_channel?a.Asc.plugin.ie_channel.postMessage(k):a.parent.postMessage(k,\"*\")};a.plugin_onMessage=function(k){if(a.Asc.plugin&&\"string\"==typeof k.data){var g={};try{g=JSON.parse(k.data)}catch(m){g={}}k=g.type;if(g.guid!=a.Asc.plugin.guid){if(n!==g.guid)return;switch(k){case \"onExternalPluginMessage\":break;default:return}}\"init\"===k&&(a.Asc.plugin.info=g);\"updateOptions\"===k&&g.options&&(a.Asc.plugin.info.options=g.options);if(n!==g.theme&&(!a.Asc.plugin.theme||\"onThemeChanged\"===k))if(a.Asc.plugin.theme=g.theme,a.Asc.plugin.onThemeChangedBase||(a.Asc.plugin.onThemeChangedBase=function(m){var q=\"\",t;for(t in c){q+=t+\" {\";var w=c[t],r;for(r in w){var u=w[r],y=u.indexOf(\" !important\");-1*/ - } - sendMessageToFrame(iframeId, msg); + const iframeId = data.windowID || iframeMain; + const msg = { + guid: pluginGuid, + type: 'plugin_init', + data: /**/ '(function(a,n){var f=[1,1.25,1.5,1.75,2,2.25,2.5,2.75,3,3.5,4,4.5,5];a.AscDesktopEditor&&a.AscDesktopEditor.GetSupportedScaleValues&&(f=a.AscDesktopEditor.GetSupportedScaleValues());var h=function(){if(0===f.length)return!1;var c=navigator.userAgent.toLowerCase(),e=-1e-1E-4);g++)k=Math.abs(f[g]-e),kMath.abs(c.zoom-b)||(b=c.zoom,document.firstElementChild.style.zoom=.001>Math.abs(b-1)?"normal":1/b)}})(window);(function(a,n){function f(b){this.plugin=b;this.ps;this.items=[];this.isCurrentVisible=this.isVisible=!1}function h(){this.id=a.Asc.generateGuid();this.id=this.id.replace(/-/g,"");this._events={};this._register()}f.prototype.createWindow=function(){var b=document.body,c=document.getElementsByTagName("head")[0];b&&c&&(b=document.createElement("style"),b.type="text/css",b.innerHTML=\'.ih_main { margin: 0px; padding: 0px; width: 100%; height: 100%; display: inline-block; overflow: hidden; box-sizing: border-box; user-select: none; position: fixed; border: 1px solid #cfcfcf; } ul { margin: 0px; padding: 0px; width: 100%; height: 100%; list-style-type: none; outline:none; } li { padding: 5px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 400; color: #373737; } li:hover { background-color: #D8DADC; } .li_selected { background-color: #D8DADC; color: #373737; }.li_selected:hover { background-color: #D8DADC; color: #373737; }\',c.appendChild(b),document.body.style.background="#FFFFFF",document.body.style.width="100%",document.body.style.height="100%",document.body.style.margin="0",document.body.style.padding="0",document.body.innerHTML=\'
      \',this.ps=new PerfectScrollbar(document.getElementById("ih_area"),{minScrollbarLength:20}),this.updateScrolls(),this.createDefaultEvents())};f.prototype.setItems=function(b){this.items=b;for(var c="",e=b.length,d=0;d\',c+=b[d].text,c+="";document.getElementById("ih_elements_id").innerHTML=c;this.updateScrolls();this.scrollToSelected()};f.prototype.createDefaultEvents=function(){this.plugin.onExternalMouseUp=function(){var c=document.createEvent("MouseEvents");c.initMouseEvent("mouseup",!0,!0,a,1,0,0,0,0,!1,!1,!1,!1,0,null);document.dispatchEvent(c)};var b=this;a.onkeydown=function(c){switch(c.keyCode){case 27:b.isVisible&&(b.isVisible=!1,b.plugin.executeMethod("UnShowInputHelper",[b.plugin.info.guid,!0]));break;case 38:case 40:case 9:case 36:case 35:case 33:case 34:for(var e=document.getElementsByTagName("li"),d=-1,l=0;ld&&(d=0);break;case 40:d++;d>=e.length&&(d=e.length-1);break;case 9:d++;d>=e.length&&(d=0);break;case 36:d=0;break;case 35:d=e.length-1;break;case 33:case 34:l=1;var k=document.getElementById("ih_area").clientHeight/24>>0;1d&&(d=0)):(d+=l,d>=e.length&&(d=d=e.length-1))}d .ps__thumb-y":{"border-color":"canvas-scroll-thumb-hover","background-color":"canvas-scroll-thumb-hover !important"},".ps .ps__rail-x:hover":{"background-color":"background-toolbar"},".ps .ps__rail-x.ps--clicking":{"background-color":"background-toolbar"},".ps__thumb-x":{"background-color":"background-normal","border-color":"Border !important"},".ps__rail-x:hover > .ps__thumb-x":{"border-color":"canvas-scroll-thumb-hover"},a:{color:"text-link !important"},"a:hover":{color:"text-link-hover !important"},"a:active":{color:"text-link-active !important"},"a:visited":{color:"text-link-visited !important"},"*::-webkit-scrollbar-track":{background:"background-normal"},"*::-webkit-scrollbar-track:hover":{background:"background-toolbar-additional"},"*::-webkit-scrollbar-thumb":{"background-color":"background-toolbar","border-color":"border-regular-control"},"*::-webkit-scrollbar-thumb:hover":{"background-color":"canvas-scroll-thumb-hover"},".asc-plugin-loader":{color:"text-normal"}},e=!1,d="";a.plugin_sendMessage=function(k){a.Asc.plugin.ie_channel?a.Asc.plugin.ie_channel.postMessage(k):a.parent.postMessage(k,"*")};a.plugin_onMessage=function(k){if(a.Asc.plugin&&"string"==typeof k.data){var g={};try{g=JSON.parse(k.data)}catch(m){g={}}k=g.type;if(g.guid!=a.Asc.plugin.guid){if(n!==g.guid)return;switch(k){case "onExternalPluginMessage":break;default:return}}"init"===k&&(a.Asc.plugin.info=g);"updateOptions"===k&&g.options&&(a.Asc.plugin.info.options=g.options);if(n!==g.theme&&(!a.Asc.plugin.theme||"onThemeChanged"===k))if(a.Asc.plugin.theme=g.theme,a.Asc.plugin.onThemeChangedBase||(a.Asc.plugin.onThemeChangedBase=function(m){var q="",t;for(t in c){q+=t+" {";var w=c[t],r;for(r in w){var u=w[r],y=u.indexOf(" !important");-1*/ + }; + sendMessageToFrame(iframeId, msg); } /** * Initializes internal plugin settings with mock editor data * @param {Object} data - Initialization data containing windowID */ function initialize_internal(data) { - const iframeId = data.windowID || iframeMain; - const msg = { - "guid": pluginGuid, - "editorType": "word", - "mmToPx": 3.7795275590551185, - "restrictions": 0, - "data": "", - "isViewMode": false, - "isMobileMode": false, - "isEmbedMode": false, - "lang": "en-EN", - "documentId": "documentId", - "documentTitle": "documentTitle", - "documentCallbackUrl": "", - "userId": "userId", - "userName": "userName", - "jwt": "", - "theme": { - "Name": "theme-white", - "Type": "light", - "RulersButton": false, - "NavigationButtons": false, - "BackgroundColor": "#f3f3f3", - "PageOutline": "#cccccc", - "RulerDark": "#d9d9d9", - "RulerLight": "#ffffff", - "RulerOutline": "#cbcbcb", - "RulerMarkersOutlineColor": "#555555", - "RulerMarkersOutlineColorOld": "#aaaaaa", - "RulerMarkersFillColor": "#ffffff", - "RulerMarkersFillColorOld": "#ffffff", - "RulerTextColor": "#555555", - "RulerTabsColor": "#000000", - "RulerTabsColorOld": "#666666", - "RulerTableColor1": "#ffffff", - "RulerTableColor2": "#555555", - "ScrollBackgroundColor": "#f3f3f3", - "ScrollOutlineColor": "#cbcbcb", - "ScrollOutlineHoverColor": "#cbcbcb", - "ScrollOutlineActiveColor": "#adadad", - "ScrollerColor": "#f7f7f7", - "ScrollerHoverColor": "#c0c0c0", - "ScrollerActiveColor": "#adadad", - "ScrollArrowColor": "#adadad", - "ScrollArrowHoverColor": "#f7f7f7", - "ScrollArrowActiveColor": "#f7f7f7", - "ScrollerTargetColor": "#c0c0c0", - "ScrollerTargetHoverColor": "#f7f7f7", - "ScrollerTargetActiveColor": "#f7f7f7", - "STYLE_THUMBNAIL_WIDTH": 104, - "STYLE_THUMBNAIL_HEIGHT": 40, - "isNeedInvertOnActive": false, - "ContentControlsBack": "#F1F1F1", - "ContentControlsHover": "#D8DADC", - "ContentControlsActive": "#7C838A", - "ContentControlsText": "#444444", - "ContentControlsTextActive": "#FFFFFF", - "ContentControlsAnchorActive": "#CFCFCF", - "FormsContentControlsOutlineHover": "rgba(0, 0, 0, 0.3)", - "FormsContentControlsOutlineActive": "rgba(0, 0, 0, 0.3)", - "FormsContentControlsOutlineBorderRadiusHover": 0, - "FormsContentControlsOutlineBorderRadiusActive": 2, - "FormsContentControlsMarkersBackground": "#FFFFFF", - "FormsContentControlsMarkersBackgroundHover": "#E1E1E1", - "FormsContentControlsMarkersBackgroundActive": "#CCCCCC", - "FormsContentControlsOutlineMoverHover": "#444444", - "FormsContentControlsOutlineMoverActive": "#444444", - "BackgroundColorThumbnails": "#FFFFFF", - "BackgroundColorThumbnailsActive": "#FFFFFF", - "BackgroundColorThumbnailsHover": "#FFFFFF", - "ThumbnailsPageOutlineActive": "#4A87E7", - "ThumbnailsPageOutlineHover": "#92B7F0", - "ThumbnailsPageNumberText": "#000000", - "ThumbnailsPageNumberTextActive": "#000000", - "ThumbnailsPageNumberTextHover": "#000000", - "ThumbnailsLockColor": "#D34F4F", - "BackgroundColorNotes": "#f3f3f3", - "THEMES_THUMBNAIL_WIDTH": 88, - "THEMES_THUMBNAIL_HEIGHT": 40, - "THEMES_LAYOUT_THUMBNAIL_HEIGHT": 68, - "BorderSplitterColor": "#cbcbcb", - "SupportNotes": true, - "SplitterWidthMM": 1, - "ThumbnailScrollWidthNullIfNoScrolling": false, - "AnimPaneBackground": "#f7f7f7", - "AnimPaneItemFillSelected": "#cbcbcb", - "AnimPaneItemFillHovered": "#e0e0e0", - "AnimPaneButtonFill": "#e0e0e0", - "AnimPaneButtonFillHovered": "#e0e0e0", - "AnimPaneButtonFillDisabled": "#e0e0e0", - "AnimPanePlayButtonFill": "#ffffff", - "AnimPanePlayButtonOutline": "#c0c0c0", - "AnimPaneEffectBarFillEntrance": "#77b583", - "AnimPaneEffectBarOutlineEntrance": "#0e8a26", - "AnimPaneEffectBarFillEmphasis": "#fbc37c", - "AnimPaneEffectBarOutlineEmphasis": "#ff8e00", - "AnimPaneEffectBarFillExit": "#f59a9a", - "AnimPaneEffectBarOutlineExit": "#f23d3d", - "AnimPaneEffectBarFillPath": "#a1cee3", - "AnimPaneEffectBarOutlinePath": "#254662", - "AnimPaneTimelineRulerOutline": "#cbcbcb", - "AnimPaneTimelineRulerTick": "#cbcbcb", - "AnimPaneTimelineScrollerFill": "#cbcbcb", - "AnimPaneTimelineScrollerOutline": "#444444", - "AnimPaneTimelineScrollerOpacity": 0, - "AnimPaneTimelineScrollerOpacityHovered": 0.4, - "AnimPaneTimelineScrollerOpacityActive": 1, - "AnimPaneText": "#000000", - "AnimPaneTextActive": "#000000", - "AnimPaneTextHover": "#000000", - "DemBackgroundColor": "#FFFFFF", - "DemButtonBackgroundColor": "#ffffff", - "DemButtonBackgroundColorHover": "#EAEAEA", - "DemButtonBackgroundColorActive": "#E1E1E1", - "DemButtonBorderColor": "#E1E1E1", - "DemButtonTextColor": "#000000", - "DemButtonTextColorActive": "#000000", - "DemSplitterColor": "#EAEAEA", - "DemTextColor": "#000000", - "Background": "#f7f7f7", - "BackgroundActive": "#cfcfcf", - "BackgroundHighlighted": "#dfdfdf", - "Border": "#d8d8d8", - "BorderActive": "#bbbbbb", - "BorderHighlighted": "#c9c9c9", - "Color": "#444444", - "ColorActive": "#444444", - "ColorHighlighted": "#444444", - "ColorFiltering": "#008636", - "SheetViewCellBackground": "#73bf91", - "SheetViewCellBackgroundPressed": "#aaffcc", - "SheetViewCellBackgroundHover": "#97e3b6", - "SheetViewCellTitleLabel": "#121212", - "ColorDark": "#ffffff", - "ColorDarkActive": "#ffffff", - "ColorDarkHighlighted": "#c1c1c1", - "ColorDarkFiltering": "#7AFFAF", - "GroupDataBorder": "#000000", - "EditorBorder": "#cbcbcb", - "SelectAllIcon": "#999999", - "SheetViewSelectAllIcon": "#3D664E", - "toolbar-header-document": "#f3f3f3", - "toolbar-header-spreadsheet": "#f3f3f3", - "toolbar-header-presentation": "#f3f3f3", - "toolbar-header-pdf": "#f3f3f3", - "toolbar-header-visio": "#f3f3f3", - "text-toolbar-header-on-background-document": "#FFFFFF", - "text-toolbar-header-on-background-spreadsheet": "#FFFFFF", - "text-toolbar-header-on-background-presentation": "#FFFFFF", - "text-toolbar-header-on-background-pdf": "#FFFFFF", - "text-toolbar-header-on-background-visio": "#FFFFFF", - "background-normal": "#fff", - "background-toolbar": "#FFFFFF", - "background-toolbar-additional": "#efefef", - "background-primary-dialog-button": "#4A87E7", - "background-notification-popover": "#fcfed7", - "background-notification-badge": "#ffd112", - "background-scrim": "rgba(0, 0, 0, 0.2)", - "background-loader": "rgba(24, 24, 24, 0.9)", - "background-accent-button": "#4A87E7", - "background-contrast-popover": "#fff", - "shadow-contrast-popover": "rgba(0, 0, 0, 0.3)", - "highlight-button-hover": "#EAEAEA", - "highlight-button-pressed": "#E1E1E1", - "highlight-button-pressed-hover": "#bababa", - "highlight-primary-dialog-button-hover": "#2566D5", - "highlight-header-button-hover": "#eaeaea", - "highlight-header-button-pressed": "#e1e1e1", - "highlight-text-select": "#3494fb", - "highlight-accent-button-hover": "#375478", - "highlight-accent-button-pressed": "#293f59", - "highlight-toolbar-tab-underline-document": "#446995", - "highlight-toolbar-tab-underline-spreadsheet": "#3A8056", - "highlight-toolbar-tab-underline-presentation": "#B75B44", - "highlight-toolbar-tab-underline-pdf": "#AA5252", - "highlight-toolbar-tab-underline-visio": "#444796", - "highlight-header-tab-underline-document": "#446995", - "highlight-header-tab-underline-spreadsheet": "#3A8056", - "highlight-header-tab-underline-presentation": "#B75B44", - "highlight-header-tab-underline-pdf": "#AA5252", - "highlight-header-tab-underline-visio": "#444796", - "border-toolbar": "#cbcbcb", - "border-divider": "#EAEAEA", - "border-regular-control": "#E1E1E1", - "border-toolbar-button-hover": "#eaeaea", - "border-preview-hover": "#92B7F0", - "border-preview-select": "#4A87E7", - "border-control-focus": "#4A87E7", - "border-color-shading": "rgba(0, 0, 0, 0.15)", - "border-error": "#f62211", - "border-contrast-popover": "#fff", - "text-normal": "rgba(0, 0, 0, 0.8)", - "text-normal-pressed": "rgba(0, 0, 0, 0.8)", - "text-secondary": "rgba(0, 0, 0, 0.6)", - "text-tertiary": "rgba(0, 0, 0, 0.4)", - "text-link": "#445799", - "text-link-hover": "#445799", - "text-link-active": "#445799", - "text-link-visited": "#445799", - "text-inverse": "#fff", - "text-toolbar-header": "rgba(0, 0, 0, 0.8)", - "text-contrast-background": "#fff", - "text-alt-key-hint": "rgba(0, 0, 0, 0.8)", - "icon-normal": "#444", - "icon-normal-pressed": "#444", - "icon-inverse": "#444", - "icon-toolbar-header": "#444", - "icon-notification-badge": "#000", - "icon-contrast-popover": "#fff", - "icon-success": "#2e8b57", - "canvas-background": "#f3f3f3", - "canvas-content-background": "#fff", - "canvas-page-border": "#ccc", - "canvas-ruler-background": "#fff", - "canvas-ruler-border": "#cbcbcb", - "canvas-ruler-margins-background": "#d9d9d9", - "canvas-ruler-mark": "#555", - "canvas-ruler-handle-border": "#555", - "canvas-ruler-handle-border-disabled": "#aaa", - "canvas-high-contrast": "#000", - "canvas-high-contrast-disabled": "#666", - "canvas-cell-border": "rgba(0, 0, 0, 0.1)", - "canvas-cell-title-background": "#f7f7f7", - "canvas-cell-title-background-hover": "#dfdfdf", - "canvas-cell-title-background-selected": "#cfcfcf", - "canvas-cell-title-border": "#d8d8d8", - "canvas-cell-title-border-hover": "#c9c9c9", - "canvas-cell-title-border-selected": "#bbb", - "canvas-cell-title-text": "#444", - "canvas-dark-cell-title": "#666666", - "canvas-dark-cell-title-hover": "#999", - "canvas-dark-cell-title-selected": "#333", - "canvas-dark-cell-title-border": "#3d3d3d", - "canvas-dark-cell-title-border-hover": "#5c5c5c", - "canvas-dark-cell-title-border-selected": "#0f0f0f", - "canvas-dark-content-background": "#3a3a3a", - "canvas-dark-page-border": "#2a2a2a", - "canvas-scroll-thumb": "#f7f7f7", - "canvas-scroll-thumb-hover": "#c0c0c0", - "canvas-scroll-thumb-pressed": "#adadad", - "canvas-scroll-thumb-border": "#cbcbcb", - "canvas-scroll-thumb-border-hover": "#cbcbcb", - "canvas-scroll-thumb-border-pressed": "#adadad", - "canvas-scroll-arrow": "#adadad", - "canvas-scroll-arrow-hover": "#f7f7f7", - "canvas-scroll-arrow-pressed": "#f7f7f7", - "canvas-scroll-thumb-target": "#c0c0c0", - "canvas-scroll-thumb-target-hover": "#f7f7f7", - "canvas-scroll-thumb-target-pressed": "#f7f7f7", - "canvas-sheet-view-cell-background": "#73bf91", - "canvas-sheet-view-cell-background-hover": "#97e3b6", - "canvas-sheet-view-cell-background-pressed": "#aaffcc", - "canvas-sheet-view-cell-title-label": "#121212", - "canvas-freeze-line-1px": "#818182", - "canvas-freeze-line-2px": "#aaaaaa", - "canvas-select-all-icon": "#999", - "canvas-anim-pane-background": "#f7f7f7", - "canvas-anim-pane-item-fill-selected": "#cbcbcb", - "canvas-anim-pane-item-fill-hovered": "#e0e0e0", - "canvas-anim-pane-button-fill": "#e0e0e0", - "canvas-anim-pane-button-fill-hovered": "#e0e0e0", - "canvas-anim-pane-button-fill-disabled": "rgba(224, 224, 224, 0.4)", - "canvas-anim-pane-play-button-fill": "#fff", - "canvas-anim-pane-play-button-outline": "#c0c0c0", - "canvas-anim-pane-effect-bar-entrance-fill": "#77b583", - "canvas-anim-pane-effect-bar-entrance-outline": "#0e8a26", - "canvas-anim-pane-effect-bar-emphasis-fill": "#fbc37c", - "canvas-anim-pane-effect-bar-emphasis-outline": "#ff8e00", - "canvas-anim-pane-effect-bar-exit-fill": "#f59a9a", - "canvas-anim-pane-effect-bar-exit-outline": "#f23d3d", - "canvas-anim-pane-effect-bar-path-fill": "#a1cee3", - "canvas-anim-pane-effect-bar-path-outline": "#254662", - "canvas-anim-pane-timeline-ruler-outline": "#cbcbcb", - "canvas-anim-pane-timeline-ruler-tick": "#cbcbcb", - "canvas-anim-pane-timeline-scroller-fill": "#cbcbcb", - "canvas-anim-pane-timeline-scroller-outline": "#444", - "canvas-anim-pane-timeline-scroller-opacity": "0", - "canvas-anim-pane-timeline-scroller-opacity-hovered": "0.4", - "canvas-anim-pane-timeline-scroller-opacity-active": "1", - "toolbar-height-controls": "84px", - "sprite-button-icons-uid": "mod25", - "type": "light", - "name": "theme-white" - }, - "type": "init", - "options": {} - }; - sendMessageToFrame(iframeId, msg); + const iframeId = data.windowID || iframeMain; + const msg = { + guid: pluginGuid, + editorType: 'word', + mmToPx: 3.7795275590551185, + restrictions: 0, + data: '', + isViewMode: false, + isMobileMode: false, + isEmbedMode: false, + lang: 'en-EN', + documentId: 'documentId', + documentTitle: 'documentTitle', + documentCallbackUrl: '', + userId: 'userId', + userName: 'userName', + jwt: '', + theme: { + Name: 'theme-white', + Type: 'light', + RulersButton: false, + NavigationButtons: false, + BackgroundColor: '#f3f3f3', + PageOutline: '#cccccc', + RulerDark: '#d9d9d9', + RulerLight: '#ffffff', + RulerOutline: '#cbcbcb', + RulerMarkersOutlineColor: '#555555', + RulerMarkersOutlineColorOld: '#aaaaaa', + RulerMarkersFillColor: '#ffffff', + RulerMarkersFillColorOld: '#ffffff', + RulerTextColor: '#555555', + RulerTabsColor: '#000000', + RulerTabsColorOld: '#666666', + RulerTableColor1: '#ffffff', + RulerTableColor2: '#555555', + ScrollBackgroundColor: '#f3f3f3', + ScrollOutlineColor: '#cbcbcb', + ScrollOutlineHoverColor: '#cbcbcb', + ScrollOutlineActiveColor: '#adadad', + ScrollerColor: '#f7f7f7', + ScrollerHoverColor: '#c0c0c0', + ScrollerActiveColor: '#adadad', + ScrollArrowColor: '#adadad', + ScrollArrowHoverColor: '#f7f7f7', + ScrollArrowActiveColor: '#f7f7f7', + ScrollerTargetColor: '#c0c0c0', + ScrollerTargetHoverColor: '#f7f7f7', + ScrollerTargetActiveColor: '#f7f7f7', + STYLE_THUMBNAIL_WIDTH: 104, + STYLE_THUMBNAIL_HEIGHT: 40, + isNeedInvertOnActive: false, + ContentControlsBack: '#F1F1F1', + ContentControlsHover: '#D8DADC', + ContentControlsActive: '#7C838A', + ContentControlsText: '#444444', + ContentControlsTextActive: '#FFFFFF', + ContentControlsAnchorActive: '#CFCFCF', + FormsContentControlsOutlineHover: 'rgba(0, 0, 0, 0.3)', + FormsContentControlsOutlineActive: 'rgba(0, 0, 0, 0.3)', + FormsContentControlsOutlineBorderRadiusHover: 0, + FormsContentControlsOutlineBorderRadiusActive: 2, + FormsContentControlsMarkersBackground: '#FFFFFF', + FormsContentControlsMarkersBackgroundHover: '#E1E1E1', + FormsContentControlsMarkersBackgroundActive: '#CCCCCC', + FormsContentControlsOutlineMoverHover: '#444444', + FormsContentControlsOutlineMoverActive: '#444444', + BackgroundColorThumbnails: '#FFFFFF', + BackgroundColorThumbnailsActive: '#FFFFFF', + BackgroundColorThumbnailsHover: '#FFFFFF', + ThumbnailsPageOutlineActive: '#4A87E7', + ThumbnailsPageOutlineHover: '#92B7F0', + ThumbnailsPageNumberText: '#000000', + ThumbnailsPageNumberTextActive: '#000000', + ThumbnailsPageNumberTextHover: '#000000', + ThumbnailsLockColor: '#D34F4F', + BackgroundColorNotes: '#f3f3f3', + THEMES_THUMBNAIL_WIDTH: 88, + THEMES_THUMBNAIL_HEIGHT: 40, + THEMES_LAYOUT_THUMBNAIL_HEIGHT: 68, + BorderSplitterColor: '#cbcbcb', + SupportNotes: true, + SplitterWidthMM: 1, + ThumbnailScrollWidthNullIfNoScrolling: false, + AnimPaneBackground: '#f7f7f7', + AnimPaneItemFillSelected: '#cbcbcb', + AnimPaneItemFillHovered: '#e0e0e0', + AnimPaneButtonFill: '#e0e0e0', + AnimPaneButtonFillHovered: '#e0e0e0', + AnimPaneButtonFillDisabled: '#e0e0e0', + AnimPanePlayButtonFill: '#ffffff', + AnimPanePlayButtonOutline: '#c0c0c0', + AnimPaneEffectBarFillEntrance: '#77b583', + AnimPaneEffectBarOutlineEntrance: '#0e8a26', + AnimPaneEffectBarFillEmphasis: '#fbc37c', + AnimPaneEffectBarOutlineEmphasis: '#ff8e00', + AnimPaneEffectBarFillExit: '#f59a9a', + AnimPaneEffectBarOutlineExit: '#f23d3d', + AnimPaneEffectBarFillPath: '#a1cee3', + AnimPaneEffectBarOutlinePath: '#254662', + AnimPaneTimelineRulerOutline: '#cbcbcb', + AnimPaneTimelineRulerTick: '#cbcbcb', + AnimPaneTimelineScrollerFill: '#cbcbcb', + AnimPaneTimelineScrollerOutline: '#444444', + AnimPaneTimelineScrollerOpacity: 0, + AnimPaneTimelineScrollerOpacityHovered: 0.4, + AnimPaneTimelineScrollerOpacityActive: 1, + AnimPaneText: '#000000', + AnimPaneTextActive: '#000000', + AnimPaneTextHover: '#000000', + DemBackgroundColor: '#FFFFFF', + DemButtonBackgroundColor: '#ffffff', + DemButtonBackgroundColorHover: '#EAEAEA', + DemButtonBackgroundColorActive: '#E1E1E1', + DemButtonBorderColor: '#E1E1E1', + DemButtonTextColor: '#000000', + DemButtonTextColorActive: '#000000', + DemSplitterColor: '#EAEAEA', + DemTextColor: '#000000', + Background: '#f7f7f7', + BackgroundActive: '#cfcfcf', + BackgroundHighlighted: '#dfdfdf', + Border: '#d8d8d8', + BorderActive: '#bbbbbb', + BorderHighlighted: '#c9c9c9', + Color: '#444444', + ColorActive: '#444444', + ColorHighlighted: '#444444', + ColorFiltering: '#008636', + SheetViewCellBackground: '#73bf91', + SheetViewCellBackgroundPressed: '#aaffcc', + SheetViewCellBackgroundHover: '#97e3b6', + SheetViewCellTitleLabel: '#121212', + ColorDark: '#ffffff', + ColorDarkActive: '#ffffff', + ColorDarkHighlighted: '#c1c1c1', + ColorDarkFiltering: '#7AFFAF', + GroupDataBorder: '#000000', + EditorBorder: '#cbcbcb', + SelectAllIcon: '#999999', + SheetViewSelectAllIcon: '#3D664E', + 'toolbar-header-document': '#f3f3f3', + 'toolbar-header-spreadsheet': '#f3f3f3', + 'toolbar-header-presentation': '#f3f3f3', + 'toolbar-header-pdf': '#f3f3f3', + 'toolbar-header-visio': '#f3f3f3', + 'text-toolbar-header-on-background-document': '#FFFFFF', + 'text-toolbar-header-on-background-spreadsheet': '#FFFFFF', + 'text-toolbar-header-on-background-presentation': '#FFFFFF', + 'text-toolbar-header-on-background-pdf': '#FFFFFF', + 'text-toolbar-header-on-background-visio': '#FFFFFF', + 'background-normal': '#fff', + 'background-toolbar': '#FFFFFF', + 'background-toolbar-additional': '#efefef', + 'background-primary-dialog-button': '#4A87E7', + 'background-notification-popover': '#fcfed7', + 'background-notification-badge': '#ffd112', + 'background-scrim': 'rgba(0, 0, 0, 0.2)', + 'background-loader': 'rgba(24, 24, 24, 0.9)', + 'background-accent-button': '#4A87E7', + 'background-contrast-popover': '#fff', + 'shadow-contrast-popover': 'rgba(0, 0, 0, 0.3)', + 'highlight-button-hover': '#EAEAEA', + 'highlight-button-pressed': '#E1E1E1', + 'highlight-button-pressed-hover': '#bababa', + 'highlight-primary-dialog-button-hover': '#2566D5', + 'highlight-header-button-hover': '#eaeaea', + 'highlight-header-button-pressed': '#e1e1e1', + 'highlight-text-select': '#3494fb', + 'highlight-accent-button-hover': '#375478', + 'highlight-accent-button-pressed': '#293f59', + 'highlight-toolbar-tab-underline-document': '#446995', + 'highlight-toolbar-tab-underline-spreadsheet': '#3A8056', + 'highlight-toolbar-tab-underline-presentation': '#B75B44', + 'highlight-toolbar-tab-underline-pdf': '#AA5252', + 'highlight-toolbar-tab-underline-visio': '#444796', + 'highlight-header-tab-underline-document': '#446995', + 'highlight-header-tab-underline-spreadsheet': '#3A8056', + 'highlight-header-tab-underline-presentation': '#B75B44', + 'highlight-header-tab-underline-pdf': '#AA5252', + 'highlight-header-tab-underline-visio': '#444796', + 'border-toolbar': '#cbcbcb', + 'border-divider': '#EAEAEA', + 'border-regular-control': '#E1E1E1', + 'border-toolbar-button-hover': '#eaeaea', + 'border-preview-hover': '#92B7F0', + 'border-preview-select': '#4A87E7', + 'border-control-focus': '#4A87E7', + 'border-color-shading': 'rgba(0, 0, 0, 0.15)', + 'border-error': '#f62211', + 'border-contrast-popover': '#fff', + 'text-normal': 'rgba(0, 0, 0, 0.8)', + 'text-normal-pressed': 'rgba(0, 0, 0, 0.8)', + 'text-secondary': 'rgba(0, 0, 0, 0.6)', + 'text-tertiary': 'rgba(0, 0, 0, 0.4)', + 'text-link': '#445799', + 'text-link-hover': '#445799', + 'text-link-active': '#445799', + 'text-link-visited': '#445799', + 'text-inverse': '#fff', + 'text-toolbar-header': 'rgba(0, 0, 0, 0.8)', + 'text-contrast-background': '#fff', + 'text-alt-key-hint': 'rgba(0, 0, 0, 0.8)', + 'icon-normal': '#444', + 'icon-normal-pressed': '#444', + 'icon-inverse': '#444', + 'icon-toolbar-header': '#444', + 'icon-notification-badge': '#000', + 'icon-contrast-popover': '#fff', + 'icon-success': '#2e8b57', + 'canvas-background': '#f3f3f3', + 'canvas-content-background': '#fff', + 'canvas-page-border': '#ccc', + 'canvas-ruler-background': '#fff', + 'canvas-ruler-border': '#cbcbcb', + 'canvas-ruler-margins-background': '#d9d9d9', + 'canvas-ruler-mark': '#555', + 'canvas-ruler-handle-border': '#555', + 'canvas-ruler-handle-border-disabled': '#aaa', + 'canvas-high-contrast': '#000', + 'canvas-high-contrast-disabled': '#666', + 'canvas-cell-border': 'rgba(0, 0, 0, 0.1)', + 'canvas-cell-title-background': '#f7f7f7', + 'canvas-cell-title-background-hover': '#dfdfdf', + 'canvas-cell-title-background-selected': '#cfcfcf', + 'canvas-cell-title-border': '#d8d8d8', + 'canvas-cell-title-border-hover': '#c9c9c9', + 'canvas-cell-title-border-selected': '#bbb', + 'canvas-cell-title-text': '#444', + 'canvas-dark-cell-title': '#666666', + 'canvas-dark-cell-title-hover': '#999', + 'canvas-dark-cell-title-selected': '#333', + 'canvas-dark-cell-title-border': '#3d3d3d', + 'canvas-dark-cell-title-border-hover': '#5c5c5c', + 'canvas-dark-cell-title-border-selected': '#0f0f0f', + 'canvas-dark-content-background': '#3a3a3a', + 'canvas-dark-page-border': '#2a2a2a', + 'canvas-scroll-thumb': '#f7f7f7', + 'canvas-scroll-thumb-hover': '#c0c0c0', + 'canvas-scroll-thumb-pressed': '#adadad', + 'canvas-scroll-thumb-border': '#cbcbcb', + 'canvas-scroll-thumb-border-hover': '#cbcbcb', + 'canvas-scroll-thumb-border-pressed': '#adadad', + 'canvas-scroll-arrow': '#adadad', + 'canvas-scroll-arrow-hover': '#f7f7f7', + 'canvas-scroll-arrow-pressed': '#f7f7f7', + 'canvas-scroll-thumb-target': '#c0c0c0', + 'canvas-scroll-thumb-target-hover': '#f7f7f7', + 'canvas-scroll-thumb-target-pressed': '#f7f7f7', + 'canvas-sheet-view-cell-background': '#73bf91', + 'canvas-sheet-view-cell-background-hover': '#97e3b6', + 'canvas-sheet-view-cell-background-pressed': '#aaffcc', + 'canvas-sheet-view-cell-title-label': '#121212', + 'canvas-freeze-line-1px': '#818182', + 'canvas-freeze-line-2px': '#aaaaaa', + 'canvas-select-all-icon': '#999', + 'canvas-anim-pane-background': '#f7f7f7', + 'canvas-anim-pane-item-fill-selected': '#cbcbcb', + 'canvas-anim-pane-item-fill-hovered': '#e0e0e0', + 'canvas-anim-pane-button-fill': '#e0e0e0', + 'canvas-anim-pane-button-fill-hovered': '#e0e0e0', + 'canvas-anim-pane-button-fill-disabled': 'rgba(224, 224, 224, 0.4)', + 'canvas-anim-pane-play-button-fill': '#fff', + 'canvas-anim-pane-play-button-outline': '#c0c0c0', + 'canvas-anim-pane-effect-bar-entrance-fill': '#77b583', + 'canvas-anim-pane-effect-bar-entrance-outline': '#0e8a26', + 'canvas-anim-pane-effect-bar-emphasis-fill': '#fbc37c', + 'canvas-anim-pane-effect-bar-emphasis-outline': '#ff8e00', + 'canvas-anim-pane-effect-bar-exit-fill': '#f59a9a', + 'canvas-anim-pane-effect-bar-exit-outline': '#f23d3d', + 'canvas-anim-pane-effect-bar-path-fill': '#a1cee3', + 'canvas-anim-pane-effect-bar-path-outline': '#254662', + 'canvas-anim-pane-timeline-ruler-outline': '#cbcbcb', + 'canvas-anim-pane-timeline-ruler-tick': '#cbcbcb', + 'canvas-anim-pane-timeline-scroller-fill': '#cbcbcb', + 'canvas-anim-pane-timeline-scroller-outline': '#444', + 'canvas-anim-pane-timeline-scroller-opacity': '0', + 'canvas-anim-pane-timeline-scroller-opacity-hovered': '0.4', + 'canvas-anim-pane-timeline-scroller-opacity-active': '1', + 'toolbar-height-controls': '84px', + 'sprite-button-icons-uid': 'mod25', + type: 'light', + name: 'theme-white' + }, + type: 'init', + options: {} + }; + sendMessageToFrame(iframeId, msg); } /** @@ -364,12 +362,12 @@ function initialize_internal(data) { * @param {*} data - The data to return */ function handleMethodReturn(data) { - const dataReturn = { - guid: pluginGuid, - methodReturnData: data, - type: "onMethodReturn" - }; - sendMessageToFrame(iframeMain, dataReturn); + const dataReturn = { + guid: pluginGuid, + methodReturnData: data, + type: 'onMethodReturn' + }; + sendMessageToFrame(iframeMain, dataReturn); } /** @@ -377,24 +375,24 @@ function handleMethodReturn(data) { * @param {Object} data - Method call data containing methodName and data */ function handleMethod(data) { - if (data.methodName === 'AddToolbarMenuItem') { - handleMethodReturn(undefined); - settingsButton = data.data; - AddToolbarMenuItem(settingsButton); - } else if (data.methodName === 'GetVersion') { - handleMethodReturn(sdkVersion); - } else if (data.methodName === 'ShowWindow') { - ShowWindow(data.data); - handleMethodReturn(undefined); - } else if (data.methodName === 'SendToWindow') { - SendToWindow(data.data); - handleMethodReturn(undefined); - } else if (data.methodName === 'CloseWindow') { - CloseWindow(data.data); - handleMethodReturn(undefined); - } else { - handleMethodReturn(undefined); - } + if (data.methodName === 'AddToolbarMenuItem') { + handleMethodReturn(undefined); + settingsButton = data.data; + AddToolbarMenuItem(settingsButton); + } else if (data.methodName === 'GetVersion') { + handleMethodReturn(sdkVersion); + } else if (data.methodName === 'ShowWindow') { + ShowWindow(data.data); + handleMethodReturn(undefined); + } else if (data.methodName === 'SendToWindow') { + SendToWindow(data.data); + handleMethodReturn(undefined); + } else if (data.methodName === 'CloseWindow') { + CloseWindow(data.data); + handleMethodReturn(undefined); + } else { + handleMethodReturn(undefined); + } } /** @@ -402,14 +400,14 @@ function handleMethod(data) { * @param {Object} data - Event data with windowID, eventName, and data */ function sendMessageToPlugin(data) { - const pluginData = { - guid: pluginGuid, - type: "onWindowEvent", - windowID: data.windowID, - eventName: data.eventName, - eventData: data.data - }; - sendMessageToFrame(iframeMain, pluginData); + const pluginData = { + guid: pluginGuid, + type: 'onWindowEvent', + windowID: data.windowID, + eventName: data.eventName, + eventData: data.data + }; + sendMessageToFrame(iframeMain, pluginData); } /** @@ -417,16 +415,16 @@ function sendMessageToPlugin(data) { * @param {Array} data - [iframeId, eventName, eventData] */ function SendToWindow(data) { - const iframeId = data[0]; - const eventName = data[1]; - const eventData = data[2]; - const pluginData = { - guid: pluginGuid, - type: "onEvent", - eventName: eventName, - eventData: eventData - }; - sendMessageToFrame(iframeId, pluginData); + const iframeId = data[0]; + const eventName = data[1]; + const eventData = data[2]; + const pluginData = { + guid: pluginGuid, + type: 'onEvent', + eventName, + eventData + }; + sendMessageToFrame(iframeId, pluginData); } /** @@ -434,14 +432,14 @@ function SendToWindow(data) { * @param {Array} val - Menu item configuration */ function AddToolbarMenuItem(val) { - const id = val[0].tabs[0].items[0].id; - const data = { - guid: pluginGuid, - type: "onEvent", - eventName: "onToolbarMenuClick", - eventData: id - }; - sendMessageToFrame(iframeMain, data); + const id = val[0].tabs[0].items[0].id; + const data = { + guid: pluginGuid, + type: 'onEvent', + eventName: 'onToolbarMenuClick', + eventData: id + }; + sendMessageToFrame(iframeMain, data); } /** @@ -450,15 +448,15 @@ function AddToolbarMenuItem(val) { * @param {string} [windowId] - Optional window ID */ function onButtonClick(id, windowId) { - const pluginData = { - guid: pluginGuid, - type: "button", - button: "" + id - }; - if (windowId) { - pluginData.buttonWindowId = "" + windowId; - } - sendMessageToFrame(iframeMain, pluginData); + const pluginData = { + guid: pluginGuid, + type: 'button', + button: '' + id + }; + if (windowId) { + pluginData.buttonWindowId = '' + windowId; + } + sendMessageToFrame(iframeMain, pluginData); } /** @@ -466,35 +464,35 @@ function onButtonClick(id, windowId) { * @param {Array} val - [windowId, config] where config contains url, buttons, etc. */ function ShowWindow(val) { - const [iframeId, config] = val; - const isMain = config.url.includes(mainButtonId); - - if (isMain) { - config.buttons = config.buttons.map((button, index) => ({ - text: 'Save Changes', - onClick: () => { - onButtonClick(index, iframeId); - if (saveCallback) { - saveCallback(); - } - AddToolbarMenuItem(settingsButton); - }, - disabled: false - })); - } else { - config.buttons = config.buttons.map((button, index) => ({ - text: button.text, - onClick: () => { - onButtonClick(index, iframeId); - }, - disabled: false - })); - } - - // Use callback if registered - if (showPluginWindowCallback) { - showPluginWindowCallback(iframeId, config); - } + const [iframeId, config] = val; + const isMain = config.url.includes(mainButtonId); + + if (isMain) { + config.buttons = config.buttons.map((button, index) => ({ + text: 'Save Changes', + onClick: () => { + onButtonClick(index, iframeId); + if (saveCallback) { + saveCallback(); + } + AddToolbarMenuItem(settingsButton); + }, + disabled: false + })); + } else { + config.buttons = config.buttons.map((button, index) => ({ + text: button.text, + onClick: () => { + onButtonClick(index, iframeId); + }, + disabled: false + })); + } + + // Use callback if registered + if (showPluginWindowCallback) { + showPluginWindowCallback(iframeId, config); + } } /** @@ -502,12 +500,12 @@ function ShowWindow(val) { * @param {Array} val - [windowId] */ function CloseWindow(val) { - const id = val[0]; - - // Use callback if registered - if (closePluginWindowCallback) { - closePluginWindowCallback(id); - } + const id = val[0]; + + // Use callback if registered + if (closePluginWindowCallback) { + closePluginWindowCallback(id); + } } /** @@ -516,9 +514,9 @@ function CloseWindow(val) { * @param {string} version - The SDK version from statistics data or 'develop' for development */ function initAISettings(iframeId, version = 'develop') { - iframeMain = iframeId; - sdkVersion = version; - window.addEventListener('message', receiveMessage); + iframeMain = iframeId; + sdkVersion = version; + window.addEventListener('message', receiveMessage); } /** @@ -526,7 +524,7 @@ function initAISettings(iframeId, version = 'develop') { * @param {function} callback - Function to call when showing a window (iframeId, config) => void */ function registerShowWindowCallback(callback) { - showPluginWindowCallback = callback; + showPluginWindowCallback = callback; } /** @@ -534,7 +532,7 @@ function registerShowWindowCallback(callback) { * @param {function} callback - Function to call when closing a window (id) => void */ function registerCloseWindowCallback(callback) { - closePluginWindowCallback = callback; + closePluginWindowCallback = callback; } /** @@ -542,7 +540,7 @@ function registerCloseWindowCallback(callback) { * @param {function} callback - Function to call when save button is clicked () => void */ function registerSaveCallback(callback) { - saveCallback = callback; + saveCallback = callback; } -export { initAISettings, registerShowWindowCallback, registerCloseWindowCallback, registerSaveCallback }; \ No newline at end of file +export {initAISettings, registerShowWindowCallback, registerCloseWindowCallback, registerSaveCallback}; diff --git a/AdminPanel/server/sources/jwtSecret.js b/AdminPanel/server/sources/jwtSecret.js index 9cf09be2..aa3e4db6 100644 --- a/AdminPanel/server/sources/jwtSecret.js +++ b/AdminPanel/server/sources/jwtSecret.js @@ -1,12 +1,9 @@ 'use strict'; const crypto = require('crypto'); +const config = require('config'); //todo Need common secret in case of cluster deployment -// const config = require('config'); -// const adminPanelJwtSecret = config.get('adminPanel.secret'); - -// Generate random JWT secret once for cluster deployment -const adminPanelJwtSecret = crypto.randomBytes(64).toString('hex'); +const adminPanelJwtSecret = config.has('adminPanel.secret') ? config.get('adminPanel.secret') : crypto.randomBytes(64).toString('hex'); module.exports = adminPanelJwtSecret; diff --git a/eslint.config.js b/eslint.config.js index 67024b92..574b3bf4 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -19,7 +19,8 @@ module.exports = [ '.next/', 'out/', 'AdminPanel/client/src/pages/AiIntegration/ai/**', - 'AdminPanel/client/src/pages/AiIntegration/js/**', + 'AdminPanel/client/src/pages/AiIntegration/js/plugins.js', + 'AdminPanel/client/src/pages/AiIntegration/js/plugins-ui.js', '*.min.js', 'package-lock.json', 'npm-shrinkwrap.json',