@silexlabs/silex 3.0.0-alpha.97 → 3.0.0
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/.env.default +2 -1
- package/README.md +31 -9
- package/dist/client/client/api.d.ts +5 -0
- package/dist/client/client/assetUrl.d.ts +3 -0
- package/dist/client/client/config.d.ts +31 -0
- package/dist/client/client/events.d.ts +7 -1
- package/dist/client/client/grapesjs/PublicationManager.d.ts +2 -1
- package/dist/client/client/grapesjs/css-props.d.ts +6 -0
- package/dist/client/client/grapesjs/img.d.ts +6 -0
- package/dist/client/client/grapesjs/index.d.ts +2 -2
- package/dist/client/client/grapesjs/new-page-dialog.d.ts +1 -1
- package/dist/client/client/grapesjs/page-panel.d.ts +1 -1
- package/dist/client/client/grapesjs/project-bar.d.ts +16 -0
- package/dist/client/client/grapesjs/resize-panel.d.ts +1 -0
- package/dist/client/client/grapesjs/rich-text.d.ts +4 -1
- package/dist/client/client/grapesjs/semantic.d.ts +1 -1
- package/dist/client/client/grapesjs/settings-sections.d.ts +15 -0
- package/dist/client/client/grapesjs/settings.d.ts +3 -1
- package/dist/client/client/grapesjs/symbolDialogs.d.ts +1 -1
- package/dist/client/client/grapesjs/view-buttons.d.ts +1 -0
- package/dist/client/client/index.d.ts +10 -0
- package/dist/client/client/publication-transformers.d.ts +4 -3
- package/dist/client/client/publish-custom-code-block.d.ts +4 -0
- package/dist/client/client/publish-fonts.d.ts +4 -0
- package/dist/client/client/utils.d.ts +4 -0
- package/dist/client/constants.d.ts +1 -0
- package/dist/client/css/admin.css +273 -32
- package/dist/client/index.html +2 -1
- package/dist/client/js/main.js +164 -123
- package/dist/client/js/main.js.LICENSE.txt +15 -1
- package/dist/client/types.d.ts +12 -7
- package/dist/plugins/client/client/events.d.ts +7 -1
- package/dist/plugins/client/client/events.js +7 -1
- package/dist/plugins/client/client/events.js.map +1 -1
- package/dist/plugins/client/plugins/client/template.js +108 -58
- package/dist/plugins/client/plugins/client/template.js.map +1 -1
- package/dist/plugins/client/types.d.ts +12 -7
- package/dist/plugins/client/types.js +6 -0
- package/dist/plugins/client/types.js.map +1 -1
- package/dist/plugins/server/constants.d.ts +1 -0
- package/dist/plugins/server/constants.js +2 -1
- package/dist/plugins/server/constants.js.map +1 -1
- package/dist/plugins/server/plugins/server/FtpConnector.d.ts +1 -0
- package/dist/plugins/server/plugins/server/FtpConnector.js +12 -1
- package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -1
- package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +3 -0
- package/dist/plugins/server/plugins/server/GitlabConnector.js +72 -35
- package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -1
- package/dist/plugins/server/server/config.js +3 -3
- package/dist/plugins/server/server/config.js.map +1 -1
- package/dist/plugins/server/server/connectors/FsHosting.d.ts +1 -0
- package/dist/plugins/server/server/connectors/FsHosting.js +13 -1
- package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -1
- package/dist/plugins/server/server/connectors/FsStorage.d.ts +2 -1
- package/dist/plugins/server/server/connectors/FsStorage.js +29 -25
- package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -1
- package/dist/plugins/server/server/connectors/connectors.d.ts +1 -0
- package/dist/plugins/server/server/jobs.js +4 -2
- package/dist/plugins/server/server/jobs.js.map +1 -1
- package/dist/plugins/server/types.d.ts +12 -7
- package/dist/plugins/server/types.js +7 -1
- package/dist/plugins/server/types.js.map +1 -1
- package/dist/server/constants.js +2 -1
- package/dist/server/server/api/publicationApi.js +3 -5
- package/dist/server/server/api/websiteApi.js +22 -3
- package/dist/server/server/cli.js +9 -6
- package/dist/server/server/config.js +3 -3
- package/dist/server/server/connectors/FsHosting.js +13 -1
- package/dist/server/server/connectors/FsStorage.js +28 -25
- package/dist/server/server/jobs.js +4 -2
- package/dist/server/types.js +7 -1
- package/package.json +34 -30
- package/public/assets/favicon.ico +0 -0
- package/public/assets/favicon.png +0 -0
- package/public/assets/logo-silex-small.png +0 -0
- package/src/css/_variables.scss +5 -3
- package/src/css/dialog.scss +22 -1
- package/src/css/fonts.scss +31 -0
- package/src/css/footer.scss +1 -1
- package/src/css/grapesjs-plugins.scss +34 -0
- package/src/css/grapesjs.scss +26 -11
- package/src/css/index.scss +1 -0
- package/src/css/project-bar.scss +11 -7
- package/src/css/silex.scss +58 -5
- package/src/html/index.pug +2 -2
- package/src/ts/client/api.ts +14 -9
- package/src/ts/client/assetUrl.test.ts +39 -0
- package/src/ts/client/assetUrl.ts +24 -5
- package/src/ts/client/config.ts +85 -4
- package/src/ts/client/events.ts +15 -9
- package/src/ts/client/grapesjs/PublicationManager.ts +71 -38
- package/src/ts/client/grapesjs/PublicationUi.ts +13 -11
- package/src/ts/client/grapesjs/css-props.ts +544 -0
- package/src/ts/client/grapesjs/eleventy.ts +2 -5
- package/src/ts/client/grapesjs/footer.ts +24 -9
- package/src/ts/client/grapesjs/img.ts +147 -0
- package/src/ts/client/grapesjs/index.ts +63 -25
- package/src/ts/client/grapesjs/internal-links.test.ts +2 -1
- package/src/ts/client/grapesjs/internal-links.ts +0 -1
- package/src/ts/client/grapesjs/new-page-dialog.ts +2 -3
- package/src/ts/client/grapesjs/page-panel.ts +28 -3
- package/src/ts/client/grapesjs/project-bar.ts +83 -64
- package/src/ts/client/grapesjs/resize-panel.ts +20 -0
- package/src/ts/client/grapesjs/rich-text.ts +21 -13
- package/src/ts/client/grapesjs/semantic.ts +3 -3
- package/src/ts/client/grapesjs/settings-sections.ts +117 -0
- package/src/ts/client/grapesjs/settings.ts +120 -77
- package/src/ts/client/grapesjs/symbolDialogs.ts +2 -3
- package/src/ts/client/grapesjs/view-buttons.ts +42 -0
- package/src/ts/client/index.ts +13 -6
- package/src/ts/client/publication-transformers.test.ts +13 -5
- package/src/ts/client/publication-transformers.ts +60 -47
- package/{dist/plugins/client/client/utils.js → src/ts/client/publish-custom-code-block.ts} +14 -8
- package/{dist/plugins/client/page.js → src/ts/client/publish-fonts.ts} +19 -14
- package/src/ts/client/utils.ts +18 -0
- package/src/ts/constants.ts +1 -0
- package/src/ts/plugins/client/template.ts +112 -60
- package/src/ts/plugins/server/FtpConnector.ts +14 -2
- package/src/ts/plugins/server/GitlabConnector.ts +71 -32
- package/src/ts/server/api/publicationApi.ts +5 -5
- package/src/ts/server/api/websiteApi.ts +39 -9
- package/src/ts/server/cli.ts +7 -5
- package/src/ts/server/config.ts +4 -4
- package/src/ts/server/connectors/FsHosting.ts +11 -5
- package/src/ts/server/connectors/FsStorage.ts +33 -4
- package/src/ts/server/connectors/connectors.ts +1 -1
- package/src/ts/server/jobs.ts +4 -2
- package/src/ts/types.ts +10 -7
- package/dist/plugins/client/client/api.d.ts +0 -85
- package/dist/plugins/client/client/api.js +0 -114
- package/dist/plugins/client/client/api.js.map +0 -1
- package/dist/plugins/client/client/assetUrl.d.ts +0 -51
- package/dist/plugins/client/client/assetUrl.js +0 -224
- package/dist/plugins/client/client/assetUrl.js.map +0 -1
- package/dist/plugins/client/client/config.d.ts +0 -58
- package/dist/plugins/client/client/config.js +0 -90
- package/dist/plugins/client/client/config.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/LoginDialog.d.ts +0 -15
- package/dist/plugins/client/client/grapesjs/LoginDialog.js +0 -195
- package/dist/plugins/client/client/grapesjs/LoginDialog.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/PublicationManager.d.ts +0 -72
- package/dist/plugins/client/client/grapesjs/PublicationManager.js +0 -356
- package/dist/plugins/client/client/grapesjs/PublicationManager.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/PublicationUi.d.ts +0 -62
- package/dist/plugins/client/client/grapesjs/PublicationUi.js +0 -336
- package/dist/plugins/client/client/grapesjs/PublicationUi.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/blocks.d.ts +0 -1
- package/dist/plugins/client/client/grapesjs/blocks.js +0 -37
- package/dist/plugins/client/client/grapesjs/blocks.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/breadcrumbs.d.ts +0 -1
- package/dist/plugins/client/client/grapesjs/breadcrumbs.js +0 -75
- package/dist/plugins/client/client/grapesjs/breadcrumbs.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/footer.d.ts +0 -2
- package/dist/plugins/client/client/grapesjs/footer.js +0 -28
- package/dist/plugins/client/client/grapesjs/footer.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/index.d.ts +0 -5
- package/dist/plugins/client/client/grapesjs/index.js +0 -313
- package/dist/plugins/client/client/grapesjs/index.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/internal-links.d.ts +0 -1
- package/dist/plugins/client/client/grapesjs/internal-links.js +0 -219
- package/dist/plugins/client/client/grapesjs/internal-links.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/new-page-dialog.d.ts +0 -2
- package/dist/plugins/client/client/grapesjs/new-page-dialog.js +0 -83
- package/dist/plugins/client/client/grapesjs/new-page-dialog.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/openImport.d.ts +0 -9
- package/dist/plugins/client/client/grapesjs/openImport.js +0 -74
- package/dist/plugins/client/client/grapesjs/openImport.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/page-panel.d.ts +0 -3
- package/dist/plugins/client/client/grapesjs/page-panel.js +0 -113
- package/dist/plugins/client/client/grapesjs/page-panel.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/project-bar.d.ts +0 -1
- package/dist/plugins/client/client/grapesjs/project-bar.js +0 -104
- package/dist/plugins/client/client/grapesjs/project-bar.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/rich-text.d.ts +0 -1
- package/dist/plugins/client/client/grapesjs/rich-text.js +0 -31
- package/dist/plugins/client/client/grapesjs/rich-text.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/semantic.d.ts +0 -1
- package/dist/plugins/client/client/grapesjs/semantic.js +0 -110
- package/dist/plugins/client/client/grapesjs/semantic.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/settings.d.ts +0 -2
- package/dist/plugins/client/client/grapesjs/settings.js +0 -198
- package/dist/plugins/client/client/grapesjs/settings.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/storage.d.ts +0 -1
- package/dist/plugins/client/client/grapesjs/storage.js +0 -126
- package/dist/plugins/client/client/grapesjs/storage.js.map +0 -1
- package/dist/plugins/client/client/grapesjs/symbolDialogs.d.ts +0 -3
- package/dist/plugins/client/client/grapesjs/symbolDialogs.js +0 -36
- package/dist/plugins/client/client/grapesjs/symbolDialogs.js.map +0 -1
- package/dist/plugins/client/client/publication-transformers.d.ts +0 -41
- package/dist/plugins/client/client/publication-transformers.js +0 -238
- package/dist/plugins/client/client/publication-transformers.js.map +0 -1
- package/dist/plugins/client/client/utils.d.ts +0 -2
- package/dist/plugins/client/client/utils.js.map +0 -1
- package/dist/plugins/client/constants.d.ts +0 -29
- package/dist/plugins/client/constants.js +0 -46
- package/dist/plugins/client/constants.js.map +0 -1
- package/dist/plugins/client/page.d.ts +0 -2
- package/dist/plugins/client/page.js.map +0 -1
- package/dist/plugins/client/plugins/client/11ty.d.ts +0 -17
- package/dist/plugins/client/plugins/client/11ty.js +0 -86
- package/dist/plugins/client/plugins/client/11ty.js.map +0 -1
- package/dist/plugins/client/plugins/client/publicationRenderer.d.ts +0 -2
- package/dist/plugins/client/plugins/client/publicationRenderer.js +0 -170
- package/dist/plugins/client/plugins/client/publicationRenderer.js.map +0 -1
- package/src/ts/plugins/client/11ty.ts +0 -104
- package/src/ts/plugins/client/publicationRenderer.ts +0 -174
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { TemplateResult } from 'lit-html';
|
|
2
|
-
import { PublicationStatus, PublishableEditor } from './PublicationManager';
|
|
3
|
-
import { PublicationJobData, PublicationSettings } from '../../types';
|
|
4
|
-
/**
|
|
5
|
-
* @fileoverview define the publication dialog
|
|
6
|
-
* This is the UI of the publication feature
|
|
7
|
-
* It is a dialog which allows the user to login to a connector and publish the website
|
|
8
|
-
* It also displays the publication status and logs during the publication process
|
|
9
|
-
* This class is used by the PublicationManager
|
|
10
|
-
* This is optional, you can use the PublicationManager without this UI
|
|
11
|
-
* @TODO Use publication events instead of calls from the PublicationManager
|
|
12
|
-
*/
|
|
13
|
-
export declare const cmdPublish = "publish-open-dialog";
|
|
14
|
-
export type PublicationDialogOptions = {
|
|
15
|
-
appendTo: string;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Class to manage the publication dialog
|
|
19
|
-
*/
|
|
20
|
-
export declare class PublicationUi {
|
|
21
|
-
private editor;
|
|
22
|
-
private options;
|
|
23
|
-
/**
|
|
24
|
-
* Dialog state
|
|
25
|
-
*/
|
|
26
|
-
isOpen: boolean;
|
|
27
|
-
/**
|
|
28
|
-
* Dialog content
|
|
29
|
-
*/
|
|
30
|
-
private errorMessage;
|
|
31
|
-
/**
|
|
32
|
-
* Dialog element
|
|
33
|
-
* This is the DOM element of the dialog
|
|
34
|
-
*/
|
|
35
|
-
private el;
|
|
36
|
-
settings: PublicationSettings;
|
|
37
|
-
private sender;
|
|
38
|
-
/**
|
|
39
|
-
* Initialize the dialog and the publish button
|
|
40
|
-
*/
|
|
41
|
-
constructor(editor: PublishableEditor, options: PublicationDialogOptions);
|
|
42
|
-
isSuccess(status: PublicationStatus): boolean;
|
|
43
|
-
isPending(status: PublicationStatus): boolean;
|
|
44
|
-
isError(status: PublicationStatus): boolean;
|
|
45
|
-
isLoggedOut(status: PublicationStatus): boolean;
|
|
46
|
-
isReady(status: PublicationStatus): boolean;
|
|
47
|
-
getDialogElements(): {
|
|
48
|
-
el: HTMLElement;
|
|
49
|
-
primary: HTMLElement;
|
|
50
|
-
secondary: HTMLElement;
|
|
51
|
-
};
|
|
52
|
-
createDialogElements(): HTMLElement;
|
|
53
|
-
move(rect: any): void;
|
|
54
|
-
private renderDialog;
|
|
55
|
-
renderOpenDialog(job: PublicationJobData, status: PublicationStatus): Promise<TemplateResult>;
|
|
56
|
-
renderLoginDialog(status: PublicationStatus): Promise<TemplateResult>;
|
|
57
|
-
displayPending(job: PublicationJobData, status: PublicationStatus): void;
|
|
58
|
-
displayError(message: string, job: PublicationJobData, status: PublicationStatus): void;
|
|
59
|
-
closeDialog(): Promise<void>;
|
|
60
|
-
toggleDialog(): Promise<void>;
|
|
61
|
-
openDialog(): Promise<void>;
|
|
62
|
-
}
|
|
@@ -1,336 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Silex website builder, free/libre no-code tool for makers.
|
|
3
|
-
* Copyright (c) 2023 lexoyo and Silex Labs foundation
|
|
4
|
-
*
|
|
5
|
-
* This program is free software: you can redistribute it and/or modify
|
|
6
|
-
* it under the terms of the GNU Affero General Public License as published by
|
|
7
|
-
* the Free Software Foundation, either version 3 of the License, or any later version.
|
|
8
|
-
*
|
|
9
|
-
* This program is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU Affero General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU Affero General Public License
|
|
15
|
-
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
16
|
-
*/
|
|
17
|
-
import { html, render } from 'lit-html';
|
|
18
|
-
import { unsafeHTML } from 'lit-html/directives/unsafe-html.js';
|
|
19
|
-
//import { map } from 'lit-html/directives/map.js'
|
|
20
|
-
import { cmdPublicationLogin, cmdPublicationLogout, cmdPublicationStart, PublicationStatus } from './PublicationManager';
|
|
21
|
-
import { ConnectorType } from '../../types';
|
|
22
|
-
import { connectorList } from '../api';
|
|
23
|
-
/**
|
|
24
|
-
* @fileoverview define the publication dialog
|
|
25
|
-
* This is the UI of the publication feature
|
|
26
|
-
* It is a dialog which allows the user to login to a connector and publish the website
|
|
27
|
-
* It also displays the publication status and logs during the publication process
|
|
28
|
-
* This class is used by the PublicationManager
|
|
29
|
-
* This is optional, you can use the PublicationManager without this UI
|
|
30
|
-
* @TODO Use publication events instead of calls from the PublicationManager
|
|
31
|
-
*/
|
|
32
|
-
// **
|
|
33
|
-
// Constants
|
|
34
|
-
export const cmdPublish = 'publish-open-dialog';
|
|
35
|
-
// **
|
|
36
|
-
// Utils
|
|
37
|
-
function cleanupLogEntry(arr) {
|
|
38
|
-
return arr[arr.length - 1]
|
|
39
|
-
?.map(str => str.replace(/\[.*\]/g, '').trim())
|
|
40
|
-
?.filter(str => !!str)
|
|
41
|
-
?.join('\n');
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Class to manage the publication dialog
|
|
45
|
-
*/
|
|
46
|
-
export class PublicationUi {
|
|
47
|
-
editor;
|
|
48
|
-
options;
|
|
49
|
-
/**
|
|
50
|
-
* Dialog state
|
|
51
|
-
*/
|
|
52
|
-
isOpen = false;
|
|
53
|
-
/**
|
|
54
|
-
* Dialog content
|
|
55
|
-
*/
|
|
56
|
-
errorMessage = '';
|
|
57
|
-
/**
|
|
58
|
-
* Dialog element
|
|
59
|
-
* This is the DOM element of the dialog
|
|
60
|
-
*/
|
|
61
|
-
el;
|
|
62
|
-
settings;
|
|
63
|
-
sender = null;
|
|
64
|
-
/**
|
|
65
|
-
* Initialize the dialog and the publish button
|
|
66
|
-
*/
|
|
67
|
-
constructor(editor, options) {
|
|
68
|
-
this.editor = editor;
|
|
69
|
-
this.options = options;
|
|
70
|
-
// Reference to the dialog element
|
|
71
|
-
this.el = this.createDialogElements();
|
|
72
|
-
// Add the publish command to the editor
|
|
73
|
-
const openDialog = () => this.openDialog();
|
|
74
|
-
const closeDialog = () => this.closeDialog();
|
|
75
|
-
const setSender = sender => this.sender = sender;
|
|
76
|
-
editor.Commands.add(cmdPublish, {
|
|
77
|
-
run(editor, sender) {
|
|
78
|
-
setSender(sender);
|
|
79
|
-
openDialog();
|
|
80
|
-
},
|
|
81
|
-
stop(editor) { closeDialog(); },
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
// **
|
|
85
|
-
// Convenient state checkers
|
|
86
|
-
isSuccess(status) {
|
|
87
|
-
return status === PublicationStatus.STATUS_SUCCESS;
|
|
88
|
-
}
|
|
89
|
-
isPending(status) {
|
|
90
|
-
return status === PublicationStatus.STATUS_PENDING;
|
|
91
|
-
}
|
|
92
|
-
isError(status) {
|
|
93
|
-
return status === PublicationStatus.STATUS_ERROR;
|
|
94
|
-
}
|
|
95
|
-
isLoggedOut(status) {
|
|
96
|
-
return status === PublicationStatus.STATUS_LOGGED_OUT;
|
|
97
|
-
}
|
|
98
|
-
isReady(status) {
|
|
99
|
-
return status === PublicationStatus.STATUS_NONE;
|
|
100
|
-
}
|
|
101
|
-
// **
|
|
102
|
-
// Functions to open and close the dialog
|
|
103
|
-
getDialogElements() {
|
|
104
|
-
const el = document.querySelector('#publish-dialog');
|
|
105
|
-
const primary = el?.querySelector('#publish-button--primary');
|
|
106
|
-
const secondary = el?.querySelector('#publish-button--secondary');
|
|
107
|
-
if (!el || !primary || !secondary)
|
|
108
|
-
throw new Error('Publication dialog elements not found');
|
|
109
|
-
return { el, primary, secondary };
|
|
110
|
-
}
|
|
111
|
-
createDialogElements() {
|
|
112
|
-
// Create the dialog element
|
|
113
|
-
const el = document.createElement('div');
|
|
114
|
-
el.id = 'publish-dialog';
|
|
115
|
-
el.className = 'silex-dialog-inline silex-dialog gjs-two-color';
|
|
116
|
-
document.body.append(el);
|
|
117
|
-
// Create the publish button
|
|
118
|
-
this.editor.Panels.addButton(this.options.appendTo, {
|
|
119
|
-
id: 'publish-button',
|
|
120
|
-
className: 'silex-button--size publish-button',
|
|
121
|
-
command: cmdPublish,
|
|
122
|
-
attributes: { title: 'Publish' },
|
|
123
|
-
label: '<span class="fa-solid fa-upload"></span><span class="silex-button--small">Publish</span>',
|
|
124
|
-
});
|
|
125
|
-
return el;
|
|
126
|
-
}
|
|
127
|
-
move(rect) {
|
|
128
|
-
Object.keys(rect).forEach(key => this.el.style[key] = rect[key] + 'px');
|
|
129
|
-
}
|
|
130
|
-
// **
|
|
131
|
-
// Functions to render the dialog
|
|
132
|
-
async renderDialog(job, status) {
|
|
133
|
-
try {
|
|
134
|
-
if (this.isOpen && (!status || !this.settings))
|
|
135
|
-
throw new Error('PublicationUi: open but no status or settings');
|
|
136
|
-
render(html `
|
|
137
|
-
${!this.isOpen ? '' : this.settings.connector ? await this.renderOpenDialog(job, status) : await this.renderLoginDialog(status)}
|
|
138
|
-
`, this.el);
|
|
139
|
-
if (this.isOpen) {
|
|
140
|
-
this.el.classList.remove('silex-dialog-hide');
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
this.el.classList.add('silex-dialog-hide');
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
catch (err) {
|
|
147
|
-
console.error('Error while rendering the dialog', err);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
async renderOpenDialog(job, status) {
|
|
151
|
-
return html `
|
|
152
|
-
<main>
|
|
153
|
-
${this.isPending(status) ? html `
|
|
154
|
-
<p>Publication in progress</p>
|
|
155
|
-
` : ''}
|
|
156
|
-
${this.isReady(status) ? html `
|
|
157
|
-
<p>You are connected to ${this.settings.connector.displayName}</p><p>Click on the publish button to publish your website</p>
|
|
158
|
-
${this.settings.options && Object.entries(this.settings.options).length && html `<p>Publication options: <ul>${Object.entries(this.settings.options).map(([key, value]) => html `<li>${key}: ${value}</li>`)}</ul></p>`}
|
|
159
|
-
` : ''}
|
|
160
|
-
${this.isSuccess(status) ? html `
|
|
161
|
-
<p>Publication success</p>
|
|
162
|
-
${this.settings.options?.websiteUrl ? html `<p><a href="${this.settings.options.websiteUrl}" target="_blank">Click here to view the published website</a></p>` : ''}
|
|
163
|
-
` : ''}
|
|
164
|
-
${this.isError(status) || this.isLoggedOut(status) ? html `
|
|
165
|
-
<p>Publication error</p>
|
|
166
|
-
<div>${unsafeHTML(this.errorMessage)}</div>
|
|
167
|
-
` : ''}
|
|
168
|
-
${job?.message ? html `
|
|
169
|
-
<p>${unsafeHTML(job.message)}</p>
|
|
170
|
-
` : ''}
|
|
171
|
-
${this.isPending(status) ? html `
|
|
172
|
-
<progress
|
|
173
|
-
value=""
|
|
174
|
-
style="width: 100%;"
|
|
175
|
-
></progress>
|
|
176
|
-
` : ''}
|
|
177
|
-
${job?.logs?.length && job.logs[0].length ? html `
|
|
178
|
-
<br><details>
|
|
179
|
-
<summary>Logs</summary>
|
|
180
|
-
<pre style="
|
|
181
|
-
max-width: 100%;
|
|
182
|
-
max-height: 50vh;
|
|
183
|
-
overflow: auto;
|
|
184
|
-
font-size: x-small;
|
|
185
|
-
" >${unsafeHTML(cleanupLogEntry(job.logs))}
|
|
186
|
-
</pre>
|
|
187
|
-
</details>
|
|
188
|
-
` : ''}
|
|
189
|
-
${job?.errors?.length && job.errors[0].length ? html `
|
|
190
|
-
<br><details>
|
|
191
|
-
<summary>Errors</summary>
|
|
192
|
-
<pre style="
|
|
193
|
-
max-width: 100%;
|
|
194
|
-
max-height: 50vh;
|
|
195
|
-
overflow: auto;
|
|
196
|
-
font-size: x-small;
|
|
197
|
-
"
|
|
198
|
-
>${unsafeHTML(cleanupLogEntry(job.errors))}
|
|
199
|
-
</pre>
|
|
200
|
-
</details>
|
|
201
|
-
` : ''}
|
|
202
|
-
</main>
|
|
203
|
-
<footer>
|
|
204
|
-
${this.isPending(status) || this.isLoggedOut(status) ? '' : html `
|
|
205
|
-
<button
|
|
206
|
-
class="silex-button silex-button--primary"
|
|
207
|
-
id="publish-button--primary"
|
|
208
|
-
@click=${() => this.editor.Commands.run(cmdPublicationStart)}
|
|
209
|
-
>Publish</button>
|
|
210
|
-
`}
|
|
211
|
-
${this.isLoggedOut(status) ? html `
|
|
212
|
-
<button
|
|
213
|
-
class="silex-button silex-button--primary"
|
|
214
|
-
id="publish-button--primary"
|
|
215
|
-
@click=${() => this.editor.Commands.run(cmdPublicationLogin, this.settings.connector)}
|
|
216
|
-
>Connect</button>
|
|
217
|
-
` : this.settings.connector.disableLogout ? '' : html `
|
|
218
|
-
<button
|
|
219
|
-
class="silex-button silex-button--secondary"
|
|
220
|
-
id="publish-button--secondary"
|
|
221
|
-
@click=${() => this.editor.Commands.run(cmdPublicationLogout)}
|
|
222
|
-
>Disconnect</button>
|
|
223
|
-
`}
|
|
224
|
-
<button
|
|
225
|
-
class="silex-button silex-button--secondary"
|
|
226
|
-
id="publish-button--secondary"
|
|
227
|
-
@click=${() => this.editor.Commands.stop(cmdPublish)}
|
|
228
|
-
>Close</button>
|
|
229
|
-
</footer>
|
|
230
|
-
`;
|
|
231
|
-
}
|
|
232
|
-
async renderLoginDialog(status) {
|
|
233
|
-
try {
|
|
234
|
-
render(html `<main><p>Loading</p></main>`, this.el);
|
|
235
|
-
const hostingConnectors = await connectorList({ type: ConnectorType.HOSTING });
|
|
236
|
-
const loggedConnectors = hostingConnectors.filter(connector => connector.isLoggedIn);
|
|
237
|
-
if (hostingConnectors.length === 1 && loggedConnectors.length === 1) {
|
|
238
|
-
this.settings.connector = loggedConnectors[0];
|
|
239
|
-
return this.renderOpenDialog(null, PublicationStatus.STATUS_NONE);
|
|
240
|
-
}
|
|
241
|
-
//const loggedConnector: ConnectorData = hostingConnectors.find(connector => connector.isLoggedIn)
|
|
242
|
-
//if (loggedConnector) {
|
|
243
|
-
// this.settings.connector = loggedConnector
|
|
244
|
-
// return this.renderOpenDialog(null, PublicationStatus.STATUS_NONE)
|
|
245
|
-
//}
|
|
246
|
-
return html `
|
|
247
|
-
<main>
|
|
248
|
-
<p>You need to connect a hosting connector to publish your website</p>
|
|
249
|
-
${this.isError(status) || this.isLoggedOut(status) ? html `
|
|
250
|
-
<p>Login error</p>
|
|
251
|
-
<div>${unsafeHTML(this.errorMessage)}</div>
|
|
252
|
-
` : ''}
|
|
253
|
-
${hostingConnectors.map(connector => html `
|
|
254
|
-
<button
|
|
255
|
-
class="silex-button silex-button--primary"
|
|
256
|
-
id="publish-button--primary"
|
|
257
|
-
@click=${() => this.editor.Commands.run(cmdPublicationLogin, connector)}
|
|
258
|
-
>${connector.displayName}</button>
|
|
259
|
-
`)}
|
|
260
|
-
</main>
|
|
261
|
-
<footer>
|
|
262
|
-
<button
|
|
263
|
-
class="silex-button silex-button--secondary"
|
|
264
|
-
id="publish-button--secondary"
|
|
265
|
-
@click=${() => this.editor.Commands.stop(cmdPublish)}
|
|
266
|
-
>Close</button>
|
|
267
|
-
</footer>
|
|
268
|
-
`;
|
|
269
|
-
}
|
|
270
|
-
catch (err) {
|
|
271
|
-
console.error(err);
|
|
272
|
-
return html `
|
|
273
|
-
<header>
|
|
274
|
-
<h3>Oops</h3>
|
|
275
|
-
</header>
|
|
276
|
-
<main>
|
|
277
|
-
<p>Unable to load hosting connectors</p>
|
|
278
|
-
<p>Something went wrong: ${err.message}</p>
|
|
279
|
-
</main>
|
|
280
|
-
<footer>
|
|
281
|
-
<button
|
|
282
|
-
class="silex-button silex-button--secondary"
|
|
283
|
-
id="publish-button--secondary"
|
|
284
|
-
@click=${() => this.editor.Commands.stop(cmdPublish)}
|
|
285
|
-
>Close</button>
|
|
286
|
-
</footer>
|
|
287
|
-
`;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
displayPending(job, status) {
|
|
291
|
-
this.errorMessage = null;
|
|
292
|
-
this.renderDialog(job, status);
|
|
293
|
-
}
|
|
294
|
-
displayError(message, job, status) {
|
|
295
|
-
console.info(message);
|
|
296
|
-
this.errorMessage = message;
|
|
297
|
-
this.renderDialog(job, status);
|
|
298
|
-
}
|
|
299
|
-
async closeDialog() {
|
|
300
|
-
this.isOpen = false;
|
|
301
|
-
this.renderDialog(null, null);
|
|
302
|
-
if (this.sender)
|
|
303
|
-
this.sender.set('active', 0); // Deactivate the button to make it ready to be clicked again
|
|
304
|
-
this.sender = null;
|
|
305
|
-
}
|
|
306
|
-
async toggleDialog() {
|
|
307
|
-
if (this.isOpen)
|
|
308
|
-
this.closeDialog();
|
|
309
|
-
else
|
|
310
|
-
this.openDialog();
|
|
311
|
-
}
|
|
312
|
-
async openDialog() {
|
|
313
|
-
this.isOpen = true;
|
|
314
|
-
// Position
|
|
315
|
-
const buttonEl = this.editor.Panels.getPanel('options')?.view.el.querySelector('.publish-button');
|
|
316
|
-
if (buttonEl) {
|
|
317
|
-
const rect = buttonEl.getBoundingClientRect();
|
|
318
|
-
const width = 450;
|
|
319
|
-
const padding = 10 * 2;
|
|
320
|
-
const minHeight = 50;
|
|
321
|
-
this.move({
|
|
322
|
-
left: rect.right - width - padding,
|
|
323
|
-
top: rect.bottom + 10,
|
|
324
|
-
width,
|
|
325
|
-
minHeight,
|
|
326
|
-
});
|
|
327
|
-
}
|
|
328
|
-
else {
|
|
329
|
-
console.error('Unable to find publish button');
|
|
330
|
-
}
|
|
331
|
-
// Publication
|
|
332
|
-
//this.editor.Commands.run(cmdPublicationStart)
|
|
333
|
-
this.renderDialog(null, PublicationStatus.STATUS_NONE);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
//# sourceMappingURL=PublicationUi.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PublicationUi.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/PublicationUi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const blocksPlugin: (editor: any, opts: any) => void;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Silex website builder, free/libre no-code tool for makers.
|
|
3
|
-
* Copyright (c) 2023 lexoyo and Silex Labs foundation
|
|
4
|
-
*
|
|
5
|
-
* This program is free software: you can redistribute it and/or modify
|
|
6
|
-
* it under the terms of the GNU Affero General Public License as published by
|
|
7
|
-
* the Free Software Foundation, either version 3 of the License, or any later version.
|
|
8
|
-
*
|
|
9
|
-
* This program is distributed in the hope that it will be useful,
|
|
10
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
-
* GNU Affero General Public License for more details.
|
|
13
|
-
*
|
|
14
|
-
* You should have received a copy of the GNU Affero General Public License
|
|
15
|
-
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
16
|
-
*/
|
|
17
|
-
export const blocksPlugin = (editor, opts) => {
|
|
18
|
-
// Defaults
|
|
19
|
-
const options = {
|
|
20
|
-
...opts,
|
|
21
|
-
};
|
|
22
|
-
// Container block
|
|
23
|
-
const containerId = 'container';
|
|
24
|
-
editor.BlockManager.add(containerId, {
|
|
25
|
-
label: 'Container',
|
|
26
|
-
category: 'Basics',
|
|
27
|
-
attributes: { class: 'container-png' },
|
|
28
|
-
content: {
|
|
29
|
-
type: containerId,
|
|
30
|
-
style: {
|
|
31
|
-
'min-height': '100px',
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
editor.DomComponents.addType(containerId, {});
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=blocks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;IAC3C,WAAW;IACX,MAAM,OAAO,GAAG;QACd,GAAG,IAAI;KACR,CAAA;IACD,kBAAkB;IAClB,MAAM,WAAW,GAAG,WAAW,CAAA;IAC/B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;QACtC,OAAO,EAAE;YACP,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE;gBACL,YAAY,EAAE,OAAO;aACtB;SACF;KACF,CAAC,CAAA;IACF,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AAC/C,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function (editor: any, options: any): void;
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { onFooter } from './footer';
|
|
2
|
-
export default function (editor, options) {
|
|
3
|
-
let breadcrumbsContainer;
|
|
4
|
-
onFooter(footer => {
|
|
5
|
-
// Initialize the breadcrumbs container
|
|
6
|
-
breadcrumbsContainer = document.createElement('div');
|
|
7
|
-
breadcrumbsContainer.id = 'breadcrumbs-container';
|
|
8
|
-
footer.prepend(breadcrumbsContainer);
|
|
9
|
-
// Add breadcrumbs styles
|
|
10
|
-
const breadcrumbsStyles = document.createElement('style');
|
|
11
|
-
breadcrumbsStyles.innerHTML = `
|
|
12
|
-
#breadcrumbs-container {
|
|
13
|
-
display: flex;
|
|
14
|
-
align-items: center;
|
|
15
|
-
height: 100%;
|
|
16
|
-
padding: 0 10px;
|
|
17
|
-
font-size: 12px;
|
|
18
|
-
color: #999;
|
|
19
|
-
overflow-x: auto;
|
|
20
|
-
overflow-y: hidden;
|
|
21
|
-
}
|
|
22
|
-
#breadcrumbs-container h3 {
|
|
23
|
-
font-size: inherit;
|
|
24
|
-
margin: 0;
|
|
25
|
-
}
|
|
26
|
-
#breadcrumbs-container .breadcrumb {
|
|
27
|
-
margin: 0 5px;
|
|
28
|
-
font-size: 14px;
|
|
29
|
-
line-height: 1;
|
|
30
|
-
cursor: pointer;
|
|
31
|
-
white-space: nowrap;
|
|
32
|
-
}
|
|
33
|
-
#breadcrumbs-container .breadcrumb::after {
|
|
34
|
-
content: "➔";
|
|
35
|
-
margin-left: 10px;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
#breadcrumbs-container .breadcrumb:last-child::after {
|
|
39
|
-
content: "";
|
|
40
|
-
}
|
|
41
|
-
`;
|
|
42
|
-
footer.prepend(breadcrumbsStyles);
|
|
43
|
-
renderBreadcrumbs();
|
|
44
|
-
});
|
|
45
|
-
// Append the breadcrumbs container to the editor's container
|
|
46
|
-
editor.on('component:selected style:target component:drag:end', () => renderBreadcrumbs());
|
|
47
|
-
function renderBreadcrumbs() {
|
|
48
|
-
let component = editor.getSelected() ?? editor.Pages.getSelected().getMainComponent();
|
|
49
|
-
if (!breadcrumbsContainer)
|
|
50
|
-
return;
|
|
51
|
-
// Clear the breadcrumbs container
|
|
52
|
-
breadcrumbsContainer.innerHTML = '';
|
|
53
|
-
// Traverse up the tree of components, prepending each to the breadcrumbs
|
|
54
|
-
while (component) {
|
|
55
|
-
const breadcrumb = createBreadcrumb(component);
|
|
56
|
-
breadcrumbsContainer.prepend(breadcrumb);
|
|
57
|
-
component = component.parent();
|
|
58
|
-
}
|
|
59
|
-
// Label
|
|
60
|
-
const label = document.createElement('span');
|
|
61
|
-
label.innerHTML = '<h3>Selection: </h3>';
|
|
62
|
-
breadcrumbsContainer.prepend(label);
|
|
63
|
-
}
|
|
64
|
-
function createBreadcrumb(component) {
|
|
65
|
-
const breadcrumb = document.createElement('span');
|
|
66
|
-
const model = component.model;
|
|
67
|
-
breadcrumb.onclick = () => {
|
|
68
|
-
editor.select(component);
|
|
69
|
-
};
|
|
70
|
-
breadcrumb.classList.add('breadcrumb');
|
|
71
|
-
breadcrumb.innerHTML = `<span>${component.getName() ?? component.get('tagName')}</span>`;
|
|
72
|
-
return breadcrumb;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=breadcrumbs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/breadcrumbs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,OAAO;IACtC,IAAI,oBAAoB,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,uCAAuC;QACvC,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACpD,oBAAoB,CAAC,EAAE,GAAG,uBAAuB,CAAA;QACjD,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;QACpC,yBAAyB;QACzB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACzD,iBAAiB,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8B7B,CAAA;QACD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QACjC,iBAAiB,EAAE,CAAA;IACrB,CAAC,CAAC,CAAA;IACF,6DAA6D;IAE7D,MAAM,CAAC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAC1F,SAAS,iBAAiB;QACxB,IAAI,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,CAAA;QAErF,IAAG,CAAC,oBAAoB;YAAE,OAAM;QAEhC,kCAAkC;QAClC,oBAAoB,CAAC,SAAS,GAAG,EAAE,CAAA;QAEnC,yEAAyE;QACzE,OAAO,SAAS,EAAE;YAChB,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;YAC9C,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YACxC,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAA;SAC/B;QAED,QAAQ;QACR,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC5C,KAAK,CAAC,SAAS,GAAG,2BAA2B,CAAA;QAC7C,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IACD,SAAS,gBAAgB,CAAC,SAAS;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;QAC7B,UAAU,CAAC,OAAO,GAAG,GAAG,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC1B,CAAC,CAAA;QACD,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACtC,UAAU,CAAC,SAAS,GAAG,SAAS,SAAS,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAA;QACxF,OAAO,UAAU,CAAA;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// Styles are in: src/scss/footer.scss
|
|
2
|
-
let _onFooter = [];
|
|
3
|
-
let footer;
|
|
4
|
-
export default function (editor, options) {
|
|
5
|
-
const panel = editor.Panels.addPanel({
|
|
6
|
-
id: 'footer',
|
|
7
|
-
visible: true,
|
|
8
|
-
buttons: [{
|
|
9
|
-
id: 'myNewButton',
|
|
10
|
-
className: 'someClass',
|
|
11
|
-
command: 'someCommand',
|
|
12
|
-
attributes: { title: 'Some title' },
|
|
13
|
-
active: false,
|
|
14
|
-
}],
|
|
15
|
-
});
|
|
16
|
-
setTimeout(() => {
|
|
17
|
-
footer = panel.view?.el;
|
|
18
|
-
_onFooter.forEach(cbk => cbk(footer));
|
|
19
|
-
_onFooter = [];
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
export function onFooter(fn) {
|
|
23
|
-
if (footer)
|
|
24
|
-
fn(footer);
|
|
25
|
-
else
|
|
26
|
-
_onFooter.push(fn);
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=footer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/footer.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,IAAI,SAAS,GAAG,EAAE,CAAA;AAClB,IAAI,MAAM,CAAA;AACV,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,OAAO;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACnC,EAAE,EAAE,QAAQ;QACZ,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC;gBACR,EAAE,EAAE,aAAa;gBACjB,SAAS,EAAE,WAAW;gBACtB,OAAO,EAAE,aAAa;gBACtB,UAAU,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;gBACnC,MAAM,EAAE,KAAK;aAEd,CAAC;KACH,CAAC,CAAA;IACF,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAA;QACvB,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QACrC,SAAS,GAAG,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAE;IACzB,IAAG,MAAM;QAAE,EAAE,CAAC,MAAM,CAAC,CAAA;;QAChB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACzB,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { Editor, EditorConfig } from 'grapesjs';
|
|
2
|
-
import { ConnectorId, WebsiteId } from '../../types';
|
|
3
|
-
export declare function getEditorConfig(id: WebsiteId, connectorId: ConnectorId, rootUrl: string): EditorConfig;
|
|
4
|
-
export declare function initEditor(config: EditorConfig): Promise<Editor>;
|
|
5
|
-
export declare function getEditor(): Editor;
|