@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,313 +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 grapesjs from 'grapesjs';
18
- import openImport from './openImport';
19
- /**
20
- * @fileoverview This is where grapes config gets created
21
- * Handle plugins, options and initialization of the editor
22
- */
23
- // ////////////////////
24
- // Plugins
25
- // ////////////////////
26
- import blocksBasicPlugin from 'grapesjs-blocks-basic';
27
- import styleFilterPlugin from 'grapesjs-style-filter';
28
- import formPlugin from 'grapesjs-plugin-forms';
29
- import codePlugin from 'grapesjs-custom-code';
30
- import uiSuggestClasses from '@silexlabs/grapesjs-ui-suggest-classes';
31
- import symbolsPlugin from '@silexlabs/grapesjs-symbols';
32
- import loadingPlugin from '@silexlabs/grapesjs-loading';
33
- import fontsDialogPlugin, { cmdOpenFonts } from '@silexlabs/grapesjs-fonts';
34
- import symbolDialogsPlugin, { cmdPromptAddSymbol } from './symbolDialogs';
35
- import loginDialogPlugin, { cmdLogout } from './LoginDialog';
36
- import footerPlugin from './footer';
37
- import breadcrumbsPlugin from './breadcrumbs';
38
- import rateLimitPlugin from '@silexlabs/grapesjs-storage-rate-limit';
39
- import { pagePanelPlugin, cmdTogglePages, cmdAddPage } from './page-panel';
40
- import { newPageDialog, cmdOpenNewPageDialog } from './new-page-dialog';
41
- import { projectBarPlugin } from './project-bar';
42
- import { settingsDialog, cmdOpenSettings } from './settings';
43
- import { blocksPlugin } from './blocks';
44
- import { semanticPlugin } from './semantic';
45
- import { richTextPlugin } from './rich-text';
46
- import { internalLinksPlugin } from './internal-links';
47
- import publicationManagerPlugin from './PublicationManager';
48
- import { storagePlugin } from './storage';
49
- import { API_PATH, API_WEBSITE_ASSETS_WRITE, API_WEBSITE_PATH } from '../../constants';
50
- const plugins = [
51
- { name: './project-bar', value: projectBarPlugin },
52
- { name: './settings', value: settingsDialog },
53
- { name: '@silexlabs/grapesjs-fonts', value: fontsDialogPlugin },
54
- { name: './new-page-dialog', value: newPageDialog },
55
- { name: './page-panel', value: pagePanelPlugin },
56
- { name: 'grapesjs-blocks-basic', value: blocksBasicPlugin },
57
- { name: './blocks', value: blocksPlugin },
58
- { name: './semantic', value: semanticPlugin },
59
- { name: './rich-text', value: richTextPlugin },
60
- { name: 'grapesjs-style-filter', value: styleFilterPlugin },
61
- { name: 'grapesjs-plugin-forms', value: formPlugin },
62
- { name: 'grapesjs-custom-code', value: codePlugin },
63
- { name: './internal-links', value: internalLinksPlugin },
64
- { name: '@silexlabs/grapesjs-ui-suggest-classes', value: uiSuggestClasses },
65
- { name: './symbolDialogs', value: symbolDialogsPlugin },
66
- { name: '@silexlabs/grapesjs-symbols', value: symbolsPlugin },
67
- { name: './PublicationManager', value: publicationManagerPlugin },
68
- { name: './storage', value: storagePlugin },
69
- { name: './LoginDialog', value: loginDialogPlugin },
70
- { name: '@silexlabs/grapesjs-loading', value: loadingPlugin },
71
- { name: './breadcrumbs', value: breadcrumbsPlugin },
72
- { name: './footer', value: footerPlugin },
73
- { name: '@silexlabs/grapesjs-storage-rate-limit', value: rateLimitPlugin },
74
- ];
75
- // Check that all plugins are loaded correctly
76
- plugins
77
- .filter(p => typeof p.value !== 'function')
78
- .forEach(p => {
79
- throw new Error(`Plugin ${p.name} could not be loaded correctly (${p.value})`);
80
- });
81
- // Constants
82
- const PRIMARY_COLOR = '#333333';
83
- const SECONDARY_COLOR = '#ddd';
84
- const TERTIARY_COLOR = '#8873FE';
85
- const QUATERNARY_COLOR = '#A291FF';
86
- const DARKER_PRIMARY_COLOR = '#363636';
87
- const LIGHTER_PRIMARY_COLOR = '#575757';
88
- // ////////////////////
89
- // Config
90
- // ////////////////////
91
- const catBasic = 'Containers';
92
- const catComponents = 'Components';
93
- export function getEditorConfig(id, connectorId, rootUrl) {
94
- return {
95
- container: '#gjs',
96
- height: '100%',
97
- showOffsets: true,
98
- showDevices: true,
99
- //pageManager: {},
100
- layerManager: {
101
- appendTo: '.layer-manager-container',
102
- },
103
- blockManager: {
104
- appendTo: '.block-manager-container',
105
- },
106
- assetManager: {
107
- upload: `${rootUrl}${API_PATH}${API_WEBSITE_PATH}${API_WEBSITE_ASSETS_WRITE}/?websiteId=${id}${connectorId ? `&connectorId=${connectorId}` : ''}`,
108
- },
109
- storageManager: {
110
- autoload: false,
111
- type: 'connector',
112
- options: {
113
- connector: {
114
- id,
115
- connectorId,
116
- },
117
- },
118
- },
119
- cssIcons: './css/all.min.css',
120
- canvasCss: `
121
- :root {
122
- --primaryColor: ${PRIMARY_COLOR};
123
- --secondaryColor: ${SECONDARY_COLOR};
124
- --tertiaryColor: ${TERTIARY_COLOR};
125
- --quaternaryColor: ${QUATERNARY_COLOR};
126
- --darkerPrimaryColor: ${DARKER_PRIMARY_COLOR};
127
- --lighterPrimaryColor: ${LIGHTER_PRIMARY_COLOR};
128
- }
129
- .gjs-frame-selected {
130
- box-shadow: 0 0 0 2px rgba(255, 0, 0, 0.5) !important; // Change to red border
131
- }
132
- .gjs-selected {
133
- outline: 2px solid var(--tertiaryColor) !important;
134
- outline-offset: -2px;
135
- }
136
- `,
137
- plugins: plugins.map(p => p.value),
138
- pluginsOpts: {
139
- [blocksBasicPlugin]: {
140
- blocks: ['text', 'image', 'video', 'map'],
141
- category: catBasic,
142
- //flexGrid: true,
143
- },
144
- [projectBarPlugin]: {
145
- panels: [
146
- {
147
- id: 'dash',
148
- className: 'logo',
149
- attributes: { title: 'Dashboard' },
150
- command: () => {
151
- window.location.href = '/';
152
- },
153
- }, {
154
- id: 'block-manager-btn',
155
- className: 'block-manager-btn fa fa-fw fa-plus',
156
- attributes: { title: 'Blocks', containerClassName: 'block-manager-container', },
157
- command: 'open-blocks',
158
- }, {
159
- id: 'symbols-btn',
160
- className: 'symbols-btn fa-regular fa-gem',
161
- attributes: { title: 'Symbols', containerClassName: 'symbols-list-container', },
162
- command: 'open-symbols',
163
- buttons: [
164
- {
165
- id: 'symbol-create-button',
166
- className: 'pages__add-page fa-solid fa-plus',
167
- label: 'Create symbol from selection',
168
- command: cmdPromptAddSymbol,
169
- },
170
- ],
171
- }, {
172
- id: 'page-panel-btn',
173
- className: 'page-panel-btn fa fa-fw fa-file',
174
- attributes: { title: 'Pages', containerClassName: 'page-panel-container', },
175
- command: cmdTogglePages,
176
- buttons: [{
177
- className: 'pages__add-page fa fa-file',
178
- command: cmdAddPage,
179
- text: '+',
180
- }],
181
- }, {
182
- id: 'layer-manager-btn',
183
- className: 'layer-manager-btn fa-solid fa-layer-group',
184
- attributes: { title: 'Layers', containerClassName: 'layer-manager-container', },
185
- command: 'open-layers',
186
- }, {
187
- id: 'font-dialog-btn',
188
- className: 'font-manager-btn fa-solid fa-font',
189
- attributes: { title: 'Fonts' },
190
- command: () => {
191
- editor.runCommand(cmdOpenFonts);
192
- },
193
- }, {
194
- id: 'settings-dialog-btn',
195
- className: 'page-panel-btn fa-solid fa-gears',
196
- attributes: { title: 'Settings' },
197
- command: cmdOpenSettings,
198
- }, {
199
- id: 'spacer',
200
- attributes: {},
201
- className: 'project-bar-spacer',
202
- }, {
203
- id: 'dash2',
204
- className: 'fa-solid fa-house',
205
- attributes: { title: 'Dashboard' },
206
- command: () => {
207
- window.location.href = '/';
208
- },
209
- }, {
210
- id: 'help',
211
- className: 'fa fa-fw fa-question-circle',
212
- attributes: { title: 'Documentation' },
213
- command: () => {
214
- window.open('https://docs.silex.me/', '_blank');
215
- },
216
- }, {
217
- id: 'logout-button',
218
- className: 'page-panel-btn fa fa-fw fa-sign-out',
219
- attributes: { title: 'Sign out' },
220
- command: cmdLogout,
221
- },
222
- ],
223
- },
224
- [publicationManagerPlugin]: {
225
- appendTo: 'options',
226
- websiteId: id,
227
- },
228
- [pagePanelPlugin]: {
229
- cmdOpenNewPageDialog,
230
- cmdOpenSettings,
231
- appendTo: '.page-panel-container',
232
- },
233
- [uiSuggestClasses]: {
234
- enableCount: false,
235
- enablePerformance: false,
236
- },
237
- [internalLinksPlugin]: {
238
- // FIXME: warn the user about links in error
239
- onError: (errors) => console.warn('Links errors:', errors),
240
- },
241
- [codePlugin]: {
242
- blockLabel: 'HTML',
243
- blockCustomCode: {
244
- category: catComponents,
245
- }
246
- },
247
- [symbolsPlugin]: {
248
- appendTo: '.symbols-list-container',
249
- emptyText: 'No symbol yet.',
250
- primaryColor: PRIMARY_COLOR,
251
- secondaryColor: SECONDARY_COLOR,
252
- highlightColor: TERTIARY_COLOR,
253
- },
254
- [fontsDialogPlugin]: {
255
- api_key: 'AIzaSyAdJTYSLPlKz4w5Iqyy-JAF2o8uQKd1FKc',
256
- },
257
- [loginDialogPlugin]: {
258
- id,
259
- },
260
- [rateLimitPlugin]: {
261
- time: 5000,
262
- },
263
- },
264
- };
265
- }
266
- // ////////////////////
267
- // Initialize editor
268
- // ////////////////////
269
- // Keep a ref to the editor singleton
270
- let editor;
271
- export async function initEditor(config) {
272
- if (editor)
273
- throw new Error('Grapesjs editor already created');
274
- return new Promise((resolve, reject) => {
275
- try {
276
- editor = grapesjs.init(config);
277
- }
278
- catch (e) {
279
- console.error('Error initializing GrapesJs with plugins:', plugins, e);
280
- reject(e);
281
- }
282
- // customize the editor
283
- ['text']
284
- .forEach(id => editor.Blocks.get(id)?.set('category', 'Basics'));
285
- ['image', 'video']
286
- .forEach(id => editor.Blocks.get(id)?.set('category', 'Media'));
287
- ['map']
288
- .forEach(id => editor.Blocks.get(id)?.set('category', 'Components'));
289
- editor.Blocks.render([]);
290
- editor.Commands.add('gjs-open-import-webpage', openImport(editor, {
291
- modalImportLabel: '',
292
- modalImportContent: 'Paste a web page HTML code here.',
293
- modalImportButton: 'Import',
294
- modalImportTitle: 'Import from website',
295
- }));
296
- editor.on('load', () => {
297
- // remove blocks and layers buttons from the properties
298
- editor.Panels.getPanel('views').buttons.remove('open-blocks');
299
- editor.Panels.getPanel('views').buttons.remove('open-layers');
300
- editor.Panels.getPanel('views').view.el.firstChild.style.justifyContent = 'initial'; // align left
301
- editor.Panels.getPanel('options').buttons.remove('export-template');
302
- editor.BlockManager.render(null);
303
- // use the style filter plugin
304
- editor.StyleManager.addProperty('extra', { extend: 'filter' });
305
- // GrapesJs editor is ready
306
- resolve(editor);
307
- });
308
- });
309
- }
310
- export function getEditor() {
311
- return editor;
312
- }
313
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare const internalLinksPlugin: (editor: any, opts: any) => void;
@@ -1,219 +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 { map } from 'lit-html/directives/map.js';
19
- import { getPageLink } from '../../page';
20
- // constants
21
- const pluginName = 'internal-links';
22
- const options = [
23
- { id: '', name: '-' },
24
- { id: 'url', name: 'URL' },
25
- { id: 'email', name: 'Email' },
26
- { id: 'page', name: 'Page' },
27
- ];
28
- // plugin code
29
- export const internalLinksPlugin = (editor, opts) => {
30
- // update links when a page link changes
31
- function onAll(cbk) {
32
- editor.Pages.getAll()
33
- .forEach(page => {
34
- page.getMainComponent()
35
- .onAll(cbk);
36
- });
37
- }
38
- editor.on('page', ({ event, page }) => {
39
- if (!page)
40
- return; // fixes UT
41
- switch (event) {
42
- case 'change:name':
43
- // update all links to this page
44
- onAll(component => {
45
- if (component.getAttributes().href === getPageLink(page.previous('name'))) {
46
- component.setAttributes({
47
- href: getPageLink(page.get('name')),
48
- });
49
- }
50
- });
51
- break;
52
- case 'remove':
53
- // mark all links as issues
54
- const issues = [];
55
- onAll(component => {
56
- console.log(component.getAttributes().href, getPageLink(page.previous('name')), page.previous('name'));
57
- if (component.getAttributes().href === getPageLink(page.previous('name'))) {
58
- issues.push(component);
59
- }
60
- });
61
- opts?.onError(issues);
62
- break;
63
- }
64
- });
65
- // utility functions to render the UI
66
- function getUi(type, href) {
67
- switch (type) {
68
- case 'email':
69
- const mailTo = href.replace('mailto:', '').split('?');
70
- const email = mailTo[0];
71
- const params = (mailTo[1] || '').split('&').reduce((acc, item) => {
72
- const items = item.split('=');
73
- acc[items[0]] = items[1];
74
- return acc;
75
- }, {});
76
- return html `<div class="href-next__email-inputs">
77
- <label for="href-next__email" class="gjs-one-bg silex-label">Email address</label>
78
- <input class="href-next__email" placeholder="Insert email" type="email" value=${email || ''}/>
79
- <label for="href-next__email-subject" class="gjs-one-bg silex-label">Subject</label>
80
- <input class="href-next__email-subject" placeholder="Insert subject" value=${params.subject || ''}/>
81
- </div>`;
82
- case 'page':
83
- return html `<div class="href-next__page-inputs">
84
- <label for="href-next__page" class="gjs-one-bg silex-label">Page name</label>
85
- <select id="href-next__page" class="href-next__page">
86
- ${map(editor.Pages.getAll(), page => html `<option
87
- ?selected=${getPageLink(page.getName()) === href}
88
- value=${getPageLink(page.getName())}>
89
- ${page.getName() || 'Main'}
90
- </option>`)}
91
- </select>
92
- </div>`;
93
- case 'url':
94
- return html `<div class="href-next__url-inputs">
95
- <label for="href-next__url" class="gjs-one-bg silex-label">URL</label>
96
- <input class="href-next__url" placeholder="Insert URL" type="url" value=${href}/>
97
- </div>`;
98
- default:
99
- return '';
100
- }
101
- }
102
- function getDefaultHref(type) {
103
- switch (type) {
104
- case 'email': return 'mailto:';
105
- case 'page': return getPageLink(null);
106
- case 'url': return 'https://';
107
- }
108
- }
109
- function doRender(el, href = '') {
110
- const type = getType(href);
111
- const ui = getUi(type, href);
112
- render(html `
113
- <label for="href-next__type" class="gjs-one-bg silex-label">Type</label>
114
- <select id="href-next__type" class="href-next__type" @change=${event => doRender(el, getDefaultHref(event.target.value))}>
115
- ${map(options, opt => html `
116
- <option value="${opt.id}" ?selected=${type === opt.id}>${opt.name}</option>
117
- `)}
118
- </select>
119
- ${ui}
120
- `, el);
121
- }
122
- function getType(href) {
123
- if (href.indexOf('mailto:') === 0) {
124
- return 'email';
125
- }
126
- else if (href.indexOf('./') === 0) {
127
- return 'page';
128
- }
129
- else if (href) {
130
- return 'url';
131
- }
132
- return '';
133
- }
134
- function doRenderCurrent(el) {
135
- doRender(el, editor.getSelected()?.getAttributes().href || '');
136
- }
137
- // Add the new trait to all component types
138
- editor.DomComponents.getTypes().map(type => {
139
- editor.DomComponents.addType(type.id, {
140
- model: {
141
- defaults: {
142
- traits: [
143
- // Keep the type original traits
144
- ...editor.DomComponents.getType(type.id).model.prototype.defaults.traits
145
- // Filter original href trait
146
- .filter(trait => trait.name ? trait.name !== 'href' : trait !== 'href'),
147
- // Add the new trait
148
- {
149
- label: 'Link',
150
- type: 'href-next',
151
- name: 'href',
152
- },
153
- ]
154
- }
155
- }
156
- });
157
- });
158
- editor.TraitManager.addType('href-next', {
159
- createInput({ trait }) {
160
- // Create a new element container and add some content
161
- const el = document.createElement('div');
162
- // update the UI when a page is added/renamed/removed
163
- editor.on('page', () => doRenderCurrent(el));
164
- doRenderCurrent(el);
165
- // this will be the element passed to onEvent and onUpdate
166
- return el;
167
- },
168
- // Update the component based on UI changes
169
- // `elInput` is the result HTMLElement you get from `createInput`
170
- onEvent({ elInput, component, event }) {
171
- const inputType = elInput.querySelector('.href-next__type');
172
- let href = '';
173
- // Compute the new HREF value
174
- switch (inputType.value) {
175
- case 'page':
176
- const valPage = elInput.querySelector('.href-next__page')?.value;
177
- href = valPage || getDefaultHref('page');
178
- break;
179
- case 'url':
180
- const valUrl = elInput.querySelector('.href-next__url')?.value;
181
- href = valUrl || getDefaultHref('url');
182
- break;
183
- case 'email':
184
- const valEmail = elInput.querySelector('.href-next__email')?.value;
185
- const valSubj = elInput.querySelector('.href-next__email-subject')?.value;
186
- href = valEmail ? `mailto:${valEmail}${valSubj ? `?subject=${valSubj}` : ''}` : getDefaultHref('email');
187
- break;
188
- default:
189
- href = '';
190
- }
191
- // Store the new HREF value
192
- component.addAttributes({ href });
193
- // Handle the tag name
194
- if (href === '') {
195
- // Not a link
196
- if (component.get('tagName').toUpperCase() === 'A') {
197
- // Retrieve the original stored value
198
- const original = component.get('originalTagName') ?? 'DIV';
199
- // Case of the inline A tags inserted by the text bar
200
- const value = original.toUpperCase() === 'A' ? 'SPAN' : original;
201
- component.set('tagName', value);
202
- }
203
- }
204
- else {
205
- // Link
206
- if (component.get('tagName').toUpperCase() !== 'A') {
207
- component.set('originalTagName', component.get('tagName'));
208
- component.set('tagName', 'A');
209
- }
210
- }
211
- },
212
- // Update UI on the component change
213
- onUpdate({ elInput, component }) {
214
- const href = component.getAttributes().href || '';
215
- doRender(elInput, href);
216
- },
217
- });
218
- };
219
- //# sourceMappingURL=internal-links.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal-links.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/internal-links.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const cmdOpenNewPageDialog = "new-page-dialog";
2
- export declare const newPageDialog: any;
@@ -1,83 +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 * as grapesjs from 'grapesjs/dist/grapes.min.js';
18
- import { html, render } from 'lit-html';
19
- import { live } from 'lit-html/directives/live.js';
20
- const name = 'new-page-dialog';
21
- const el = document.createElement('div');
22
- let modal;
23
- export const cmdOpenNewPageDialog = 'new-page-dialog';
24
- export const newPageDialog = grapesjs.plugins.add(name, (editor, opts) => {
25
- editor.Commands.add(cmdOpenNewPageDialog, {
26
- run: (_, sender, { page }) => {
27
- modal = editor.Modal.open({
28
- title: 'New Page',
29
- content: '',
30
- attributes: { class: 'new-page-dialog' },
31
- })
32
- .onceClose(() => {
33
- editor.stopCommand(cmdOpenNewPageDialog); // apparently this is needed to be able to run the command several times
34
- });
35
- displayDialog(editor, opts, page);
36
- modal.setContent(el);
37
- const form = el.querySelector('form');
38
- form.onsubmit = event => {
39
- event.preventDefault();
40
- saveDialog(editor, opts, page);
41
- editor.stopCommand(cmdOpenNewPageDialog);
42
- };
43
- form.querySelector('input')?.focus();
44
- return modal;
45
- },
46
- stop: () => {
47
- modal.close();
48
- // el.innerHTML = ''
49
- },
50
- });
51
- });
52
- function onImport(editor, page) {
53
- editor.Pages.select(page);
54
- editor.runCommand('gjs-open-import-webpage');
55
- }
56
- function displayDialog(editor, config, page) {
57
- render(html `
58
- <form class="silex-form">
59
- <label class="silex-form__element">
60
- <h3>Name</h3>
61
- <input type="text" name="name" .value=${live(page.getName() || '')}/>
62
- </label>
63
- <footer>
64
- <input class="silex-button" type="button" @click=${e => onImport(editor, page)} value="Import from website">
65
- <input class="silex-button" type="button" @click=${e => editor.stopCommand(cmdOpenNewPageDialog)} value="Cancel">
66
- <input class="silex-button" type="submit" value="Ok">
67
- </footer>
68
- </form>
69
- `, el);
70
- }
71
- function saveDialog(editor, config, page) {
72
- const form = el.querySelector('form');
73
- const formData = new FormData(form);
74
- const data = Array.from(formData)
75
- .reduce((aggregate, [key, value]) => {
76
- aggregate[key] = value;
77
- return aggregate;
78
- }, {});
79
- page.set(data);
80
- // save if auto save is on
81
- editor.getModel().set('changesCount', editor.getDirtyCount() + 1);
82
- }
83
- //# sourceMappingURL=new-page-dialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"new-page-dialog.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/new-page-dialog.ts"],"names":[],"mappings":"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"}