@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.
Files changed (206) hide show
  1. package/.env.default +2 -1
  2. package/README.md +31 -9
  3. package/dist/client/client/api.d.ts +5 -0
  4. package/dist/client/client/assetUrl.d.ts +3 -0
  5. package/dist/client/client/config.d.ts +31 -0
  6. package/dist/client/client/events.d.ts +7 -1
  7. package/dist/client/client/grapesjs/PublicationManager.d.ts +2 -1
  8. package/dist/client/client/grapesjs/css-props.d.ts +6 -0
  9. package/dist/client/client/grapesjs/img.d.ts +6 -0
  10. package/dist/client/client/grapesjs/index.d.ts +2 -2
  11. package/dist/client/client/grapesjs/new-page-dialog.d.ts +1 -1
  12. package/dist/client/client/grapesjs/page-panel.d.ts +1 -1
  13. package/dist/client/client/grapesjs/project-bar.d.ts +16 -0
  14. package/dist/client/client/grapesjs/resize-panel.d.ts +1 -0
  15. package/dist/client/client/grapesjs/rich-text.d.ts +4 -1
  16. package/dist/client/client/grapesjs/semantic.d.ts +1 -1
  17. package/dist/client/client/grapesjs/settings-sections.d.ts +15 -0
  18. package/dist/client/client/grapesjs/settings.d.ts +3 -1
  19. package/dist/client/client/grapesjs/symbolDialogs.d.ts +1 -1
  20. package/dist/client/client/grapesjs/view-buttons.d.ts +1 -0
  21. package/dist/client/client/index.d.ts +10 -0
  22. package/dist/client/client/publication-transformers.d.ts +4 -3
  23. package/dist/client/client/publish-custom-code-block.d.ts +4 -0
  24. package/dist/client/client/publish-fonts.d.ts +4 -0
  25. package/dist/client/client/utils.d.ts +4 -0
  26. package/dist/client/constants.d.ts +1 -0
  27. package/dist/client/css/admin.css +273 -32
  28. package/dist/client/index.html +2 -1
  29. package/dist/client/js/main.js +164 -123
  30. package/dist/client/js/main.js.LICENSE.txt +15 -1
  31. package/dist/client/types.d.ts +12 -7
  32. package/dist/plugins/client/client/events.d.ts +7 -1
  33. package/dist/plugins/client/client/events.js +7 -1
  34. package/dist/plugins/client/client/events.js.map +1 -1
  35. package/dist/plugins/client/plugins/client/template.js +108 -58
  36. package/dist/plugins/client/plugins/client/template.js.map +1 -1
  37. package/dist/plugins/client/types.d.ts +12 -7
  38. package/dist/plugins/client/types.js +6 -0
  39. package/dist/plugins/client/types.js.map +1 -1
  40. package/dist/plugins/server/constants.d.ts +1 -0
  41. package/dist/plugins/server/constants.js +2 -1
  42. package/dist/plugins/server/constants.js.map +1 -1
  43. package/dist/plugins/server/plugins/server/FtpConnector.d.ts +1 -0
  44. package/dist/plugins/server/plugins/server/FtpConnector.js +12 -1
  45. package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -1
  46. package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +3 -0
  47. package/dist/plugins/server/plugins/server/GitlabConnector.js +72 -35
  48. package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -1
  49. package/dist/plugins/server/server/config.js +3 -3
  50. package/dist/plugins/server/server/config.js.map +1 -1
  51. package/dist/plugins/server/server/connectors/FsHosting.d.ts +1 -0
  52. package/dist/plugins/server/server/connectors/FsHosting.js +13 -1
  53. package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -1
  54. package/dist/plugins/server/server/connectors/FsStorage.d.ts +2 -1
  55. package/dist/plugins/server/server/connectors/FsStorage.js +29 -25
  56. package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -1
  57. package/dist/plugins/server/server/connectors/connectors.d.ts +1 -0
  58. package/dist/plugins/server/server/jobs.js +4 -2
  59. package/dist/plugins/server/server/jobs.js.map +1 -1
  60. package/dist/plugins/server/types.d.ts +12 -7
  61. package/dist/plugins/server/types.js +7 -1
  62. package/dist/plugins/server/types.js.map +1 -1
  63. package/dist/server/constants.js +2 -1
  64. package/dist/server/server/api/publicationApi.js +3 -5
  65. package/dist/server/server/api/websiteApi.js +22 -3
  66. package/dist/server/server/cli.js +9 -6
  67. package/dist/server/server/config.js +3 -3
  68. package/dist/server/server/connectors/FsHosting.js +13 -1
  69. package/dist/server/server/connectors/FsStorage.js +28 -25
  70. package/dist/server/server/jobs.js +4 -2
  71. package/dist/server/types.js +7 -1
  72. package/package.json +34 -30
  73. package/public/assets/favicon.ico +0 -0
  74. package/public/assets/favicon.png +0 -0
  75. package/public/assets/logo-silex-small.png +0 -0
  76. package/src/css/_variables.scss +5 -3
  77. package/src/css/dialog.scss +22 -1
  78. package/src/css/fonts.scss +31 -0
  79. package/src/css/footer.scss +1 -1
  80. package/src/css/grapesjs-plugins.scss +34 -0
  81. package/src/css/grapesjs.scss +26 -11
  82. package/src/css/index.scss +1 -0
  83. package/src/css/project-bar.scss +11 -7
  84. package/src/css/silex.scss +58 -5
  85. package/src/html/index.pug +2 -2
  86. package/src/ts/client/api.ts +14 -9
  87. package/src/ts/client/assetUrl.test.ts +39 -0
  88. package/src/ts/client/assetUrl.ts +24 -5
  89. package/src/ts/client/config.ts +85 -4
  90. package/src/ts/client/events.ts +15 -9
  91. package/src/ts/client/grapesjs/PublicationManager.ts +71 -38
  92. package/src/ts/client/grapesjs/PublicationUi.ts +13 -11
  93. package/src/ts/client/grapesjs/css-props.ts +544 -0
  94. package/src/ts/client/grapesjs/eleventy.ts +2 -5
  95. package/src/ts/client/grapesjs/footer.ts +24 -9
  96. package/src/ts/client/grapesjs/img.ts +147 -0
  97. package/src/ts/client/grapesjs/index.ts +63 -25
  98. package/src/ts/client/grapesjs/internal-links.test.ts +2 -1
  99. package/src/ts/client/grapesjs/internal-links.ts +0 -1
  100. package/src/ts/client/grapesjs/new-page-dialog.ts +2 -3
  101. package/src/ts/client/grapesjs/page-panel.ts +28 -3
  102. package/src/ts/client/grapesjs/project-bar.ts +83 -64
  103. package/src/ts/client/grapesjs/resize-panel.ts +20 -0
  104. package/src/ts/client/grapesjs/rich-text.ts +21 -13
  105. package/src/ts/client/grapesjs/semantic.ts +3 -3
  106. package/src/ts/client/grapesjs/settings-sections.ts +117 -0
  107. package/src/ts/client/grapesjs/settings.ts +120 -77
  108. package/src/ts/client/grapesjs/symbolDialogs.ts +2 -3
  109. package/src/ts/client/grapesjs/view-buttons.ts +42 -0
  110. package/src/ts/client/index.ts +13 -6
  111. package/src/ts/client/publication-transformers.test.ts +13 -5
  112. package/src/ts/client/publication-transformers.ts +60 -47
  113. package/{dist/plugins/client/client/utils.js → src/ts/client/publish-custom-code-block.ts} +14 -8
  114. package/{dist/plugins/client/page.js → src/ts/client/publish-fonts.ts} +19 -14
  115. package/src/ts/client/utils.ts +18 -0
  116. package/src/ts/constants.ts +1 -0
  117. package/src/ts/plugins/client/template.ts +112 -60
  118. package/src/ts/plugins/server/FtpConnector.ts +14 -2
  119. package/src/ts/plugins/server/GitlabConnector.ts +71 -32
  120. package/src/ts/server/api/publicationApi.ts +5 -5
  121. package/src/ts/server/api/websiteApi.ts +39 -9
  122. package/src/ts/server/cli.ts +7 -5
  123. package/src/ts/server/config.ts +4 -4
  124. package/src/ts/server/connectors/FsHosting.ts +11 -5
  125. package/src/ts/server/connectors/FsStorage.ts +33 -4
  126. package/src/ts/server/connectors/connectors.ts +1 -1
  127. package/src/ts/server/jobs.ts +4 -2
  128. package/src/ts/types.ts +10 -7
  129. package/dist/plugins/client/client/api.d.ts +0 -85
  130. package/dist/plugins/client/client/api.js +0 -114
  131. package/dist/plugins/client/client/api.js.map +0 -1
  132. package/dist/plugins/client/client/assetUrl.d.ts +0 -51
  133. package/dist/plugins/client/client/assetUrl.js +0 -224
  134. package/dist/plugins/client/client/assetUrl.js.map +0 -1
  135. package/dist/plugins/client/client/config.d.ts +0 -58
  136. package/dist/plugins/client/client/config.js +0 -90
  137. package/dist/plugins/client/client/config.js.map +0 -1
  138. package/dist/plugins/client/client/grapesjs/LoginDialog.d.ts +0 -15
  139. package/dist/plugins/client/client/grapesjs/LoginDialog.js +0 -195
  140. package/dist/plugins/client/client/grapesjs/LoginDialog.js.map +0 -1
  141. package/dist/plugins/client/client/grapesjs/PublicationManager.d.ts +0 -72
  142. package/dist/plugins/client/client/grapesjs/PublicationManager.js +0 -356
  143. package/dist/plugins/client/client/grapesjs/PublicationManager.js.map +0 -1
  144. package/dist/plugins/client/client/grapesjs/PublicationUi.d.ts +0 -62
  145. package/dist/plugins/client/client/grapesjs/PublicationUi.js +0 -336
  146. package/dist/plugins/client/client/grapesjs/PublicationUi.js.map +0 -1
  147. package/dist/plugins/client/client/grapesjs/blocks.d.ts +0 -1
  148. package/dist/plugins/client/client/grapesjs/blocks.js +0 -37
  149. package/dist/plugins/client/client/grapesjs/blocks.js.map +0 -1
  150. package/dist/plugins/client/client/grapesjs/breadcrumbs.d.ts +0 -1
  151. package/dist/plugins/client/client/grapesjs/breadcrumbs.js +0 -75
  152. package/dist/plugins/client/client/grapesjs/breadcrumbs.js.map +0 -1
  153. package/dist/plugins/client/client/grapesjs/footer.d.ts +0 -2
  154. package/dist/plugins/client/client/grapesjs/footer.js +0 -28
  155. package/dist/plugins/client/client/grapesjs/footer.js.map +0 -1
  156. package/dist/plugins/client/client/grapesjs/index.d.ts +0 -5
  157. package/dist/plugins/client/client/grapesjs/index.js +0 -313
  158. package/dist/plugins/client/client/grapesjs/index.js.map +0 -1
  159. package/dist/plugins/client/client/grapesjs/internal-links.d.ts +0 -1
  160. package/dist/plugins/client/client/grapesjs/internal-links.js +0 -219
  161. package/dist/plugins/client/client/grapesjs/internal-links.js.map +0 -1
  162. package/dist/plugins/client/client/grapesjs/new-page-dialog.d.ts +0 -2
  163. package/dist/plugins/client/client/grapesjs/new-page-dialog.js +0 -83
  164. package/dist/plugins/client/client/grapesjs/new-page-dialog.js.map +0 -1
  165. package/dist/plugins/client/client/grapesjs/openImport.d.ts +0 -9
  166. package/dist/plugins/client/client/grapesjs/openImport.js +0 -74
  167. package/dist/plugins/client/client/grapesjs/openImport.js.map +0 -1
  168. package/dist/plugins/client/client/grapesjs/page-panel.d.ts +0 -3
  169. package/dist/plugins/client/client/grapesjs/page-panel.js +0 -113
  170. package/dist/plugins/client/client/grapesjs/page-panel.js.map +0 -1
  171. package/dist/plugins/client/client/grapesjs/project-bar.d.ts +0 -1
  172. package/dist/plugins/client/client/grapesjs/project-bar.js +0 -104
  173. package/dist/plugins/client/client/grapesjs/project-bar.js.map +0 -1
  174. package/dist/plugins/client/client/grapesjs/rich-text.d.ts +0 -1
  175. package/dist/plugins/client/client/grapesjs/rich-text.js +0 -31
  176. package/dist/plugins/client/client/grapesjs/rich-text.js.map +0 -1
  177. package/dist/plugins/client/client/grapesjs/semantic.d.ts +0 -1
  178. package/dist/plugins/client/client/grapesjs/semantic.js +0 -110
  179. package/dist/plugins/client/client/grapesjs/semantic.js.map +0 -1
  180. package/dist/plugins/client/client/grapesjs/settings.d.ts +0 -2
  181. package/dist/plugins/client/client/grapesjs/settings.js +0 -198
  182. package/dist/plugins/client/client/grapesjs/settings.js.map +0 -1
  183. package/dist/plugins/client/client/grapesjs/storage.d.ts +0 -1
  184. package/dist/plugins/client/client/grapesjs/storage.js +0 -126
  185. package/dist/plugins/client/client/grapesjs/storage.js.map +0 -1
  186. package/dist/plugins/client/client/grapesjs/symbolDialogs.d.ts +0 -3
  187. package/dist/plugins/client/client/grapesjs/symbolDialogs.js +0 -36
  188. package/dist/plugins/client/client/grapesjs/symbolDialogs.js.map +0 -1
  189. package/dist/plugins/client/client/publication-transformers.d.ts +0 -41
  190. package/dist/plugins/client/client/publication-transformers.js +0 -238
  191. package/dist/plugins/client/client/publication-transformers.js.map +0 -1
  192. package/dist/plugins/client/client/utils.d.ts +0 -2
  193. package/dist/plugins/client/client/utils.js.map +0 -1
  194. package/dist/plugins/client/constants.d.ts +0 -29
  195. package/dist/plugins/client/constants.js +0 -46
  196. package/dist/plugins/client/constants.js.map +0 -1
  197. package/dist/plugins/client/page.d.ts +0 -2
  198. package/dist/plugins/client/page.js.map +0 -1
  199. package/dist/plugins/client/plugins/client/11ty.d.ts +0 -17
  200. package/dist/plugins/client/plugins/client/11ty.js +0 -86
  201. package/dist/plugins/client/plugins/client/11ty.js.map +0 -1
  202. package/dist/plugins/client/plugins/client/publicationRenderer.d.ts +0 -2
  203. package/dist/plugins/client/plugins/client/publicationRenderer.js +0 -170
  204. package/dist/plugins/client/plugins/client/publicationRenderer.js.map +0 -1
  205. package/src/ts/plugins/client/11ty.ts +0 -104
  206. 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:&nbsp;</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,2 +0,0 @@
1
- export default function (editor: any, options: any): void;
2
- export declare function onFooter(fn: any): void;
@@ -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;