@vaadin/rich-text-editor 24.8.0-alpha9 → 25.0.0-alpha2
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/README.md +0 -23
- package/package.json +17 -20
- package/src/vaadin-rich-text-editor-content-styles.js +1 -4
- package/src/vaadin-rich-text-editor-icons.js +1 -4
- package/src/vaadin-rich-text-editor-popup.js +33 -19
- package/src/vaadin-rich-text-editor-toolbar-styles.js +1 -4
- package/src/vaadin-rich-text-editor.js +98 -63
- package/web-types.json +1 -5
- package/web-types.lit.json +1 -8
- package/src/vaadin-lit-rich-text-editor-popup.js +0 -91
- package/src/vaadin-lit-rich-text-editor.d.ts +0 -11
- package/src/vaadin-lit-rich-text-editor.js +0 -330
- package/theme/lumo/vaadin-lit-rich-text-editor.d.ts +0 -6
- package/theme/lumo/vaadin-lit-rich-text-editor.js +0 -6
- package/theme/material/vaadin-lit-rich-text-editor.d.ts +0 -6
- package/theme/material/vaadin-lit-rich-text-editor.js +0 -6
- package/theme/material/vaadin-rich-text-editor-styles.d.ts +0 -1
- package/theme/material/vaadin-rich-text-editor-styles.js +0 -143
- package/theme/material/vaadin-rich-text-editor.d.ts +0 -6
- package/theme/material/vaadin-rich-text-editor.js +0 -6
- package/vaadin-lit-rich-text-editor.d.ts +0 -1
- package/vaadin-lit-rich-text-editor.js +0 -2
package/README.md
CHANGED
|
@@ -28,29 +28,6 @@ Once installed, import the component in your application:
|
|
|
28
28
|
import '@vaadin/rich-text-editor';
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
## Themes
|
|
32
|
-
|
|
33
|
-
Vaadin components come with two built-in [themes](https://vaadin.com/docs/latest/styling), Lumo and Material.
|
|
34
|
-
The [main entrypoint](https://github.com/vaadin/web-components/blob/main/packages/rich-text-editor/vaadin-rich-text-editor.js) of the package uses the Lumo theme.
|
|
35
|
-
|
|
36
|
-
To use the Material theme, import the component from the `theme/material` folder:
|
|
37
|
-
|
|
38
|
-
```js
|
|
39
|
-
import '@vaadin/rich-text-editor/theme/material/vaadin-rich-text-editor.js';
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
You can also import the Lumo version of the component explicitly:
|
|
43
|
-
|
|
44
|
-
```js
|
|
45
|
-
import '@vaadin/rich-text-editor/theme/lumo/vaadin-rich-text-editor.js';
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Finally, you can import the un-themed component from the `src` folder to get a minimal starting point:
|
|
49
|
-
|
|
50
|
-
```js
|
|
51
|
-
import '@vaadin/rich-text-editor/src/vaadin-rich-text-editor.js';
|
|
52
|
-
```
|
|
53
|
-
|
|
54
31
|
## Contributing
|
|
55
32
|
|
|
56
33
|
Read the [contributing guide](https://vaadin.com/docs/latest/contributing) to learn about our development process, how to propose bugfixes and improvements, and how to test your changes to Vaadin components.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/rich-text-editor",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "25.0.0-alpha2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -35,30 +35,27 @@
|
|
|
35
35
|
"Vaadin",
|
|
36
36
|
"vaadin-rich-text-editor",
|
|
37
37
|
"web-components",
|
|
38
|
-
"web-component"
|
|
39
|
-
"polymer"
|
|
38
|
+
"web-component"
|
|
40
39
|
],
|
|
41
40
|
"dependencies": {
|
|
42
41
|
"@open-wc/dedupe-mixin": "^1.3.0",
|
|
43
|
-
"@
|
|
44
|
-
"@vaadin/
|
|
45
|
-
"@vaadin/
|
|
46
|
-
"@vaadin/
|
|
47
|
-
"@vaadin/
|
|
48
|
-
"@vaadin/
|
|
49
|
-
"@vaadin/
|
|
50
|
-
"@vaadin/vaadin-
|
|
51
|
-
"@vaadin/vaadin-material-styles": "24.8.0-alpha9",
|
|
52
|
-
"@vaadin/vaadin-themable-mixin": "24.8.0-alpha9",
|
|
42
|
+
"@vaadin/button": "25.0.0-alpha2",
|
|
43
|
+
"@vaadin/component-base": "25.0.0-alpha2",
|
|
44
|
+
"@vaadin/confirm-dialog": "25.0.0-alpha2",
|
|
45
|
+
"@vaadin/overlay": "25.0.0-alpha2",
|
|
46
|
+
"@vaadin/text-field": "25.0.0-alpha2",
|
|
47
|
+
"@vaadin/tooltip": "25.0.0-alpha2",
|
|
48
|
+
"@vaadin/vaadin-lumo-styles": "25.0.0-alpha2",
|
|
49
|
+
"@vaadin/vaadin-themable-mixin": "25.0.0-alpha2",
|
|
53
50
|
"lit": "^3.0.0"
|
|
54
51
|
},
|
|
55
52
|
"devDependencies": {
|
|
56
|
-
"@vaadin/a11y-base": "
|
|
57
|
-
"@vaadin/chai-plugins": "
|
|
58
|
-
"@vaadin/test-runner-commands": "
|
|
59
|
-
"@vaadin/testing-helpers": "^
|
|
60
|
-
"gulp": "^
|
|
61
|
-
"gulp-cli": "^
|
|
53
|
+
"@vaadin/a11y-base": "25.0.0-alpha2",
|
|
54
|
+
"@vaadin/chai-plugins": "25.0.0-alpha2",
|
|
55
|
+
"@vaadin/test-runner-commands": "25.0.0-alpha2",
|
|
56
|
+
"@vaadin/testing-helpers": "^2.0.0",
|
|
57
|
+
"gulp": "^5.0.0",
|
|
58
|
+
"gulp-cli": "^3.0.0",
|
|
62
59
|
"gulp-iconfont": "^11.0.0",
|
|
63
60
|
"sinon": "^18.0.0"
|
|
64
61
|
},
|
|
@@ -67,5 +64,5 @@
|
|
|
67
64
|
"web-types.json",
|
|
68
65
|
"web-types.lit.json"
|
|
69
66
|
],
|
|
70
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "67ffcd5355cf21ce1b5039c598525109fc4c164b"
|
|
71
68
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
9
|
* license.
|
|
10
10
|
*/
|
|
11
|
-
import { css
|
|
11
|
+
import { css } from 'lit';
|
|
12
12
|
|
|
13
13
|
export const contentStyles = css`
|
|
14
14
|
[part='content'] {
|
|
@@ -113,6 +113,3 @@ export const contentStyles = css`
|
|
|
113
113
|
text-align: right;
|
|
114
114
|
}
|
|
115
115
|
`;
|
|
116
|
-
|
|
117
|
-
// Register a module with ID for backwards compatibility.
|
|
118
|
-
registerStyles('', contentStyles, { moduleId: 'vaadin-rich-text-editor-content-styles' });
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
9
|
* license.
|
|
10
10
|
*/
|
|
11
|
-
import { css
|
|
11
|
+
import { css } from 'lit';
|
|
12
12
|
|
|
13
13
|
const template = document.createElement('template');
|
|
14
14
|
|
|
@@ -88,6 +88,3 @@ export const iconsStyles = css`
|
|
|
88
88
|
content: var(--vaadin-rte-icons-redo);
|
|
89
89
|
}
|
|
90
90
|
`;
|
|
91
|
-
|
|
92
|
-
// Register a module with ID for backwards compatibility.
|
|
93
|
-
registerStyles('', iconsStyles, { moduleId: 'vaadin-rich-text-editor-icons' });
|
|
@@ -8,19 +8,16 @@
|
|
|
8
8
|
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
9
|
* license.
|
|
10
10
|
*/
|
|
11
|
-
import { html,
|
|
11
|
+
import { css, html, LitElement } from 'lit';
|
|
12
12
|
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
13
13
|
import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
|
|
14
|
+
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
14
15
|
import { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';
|
|
15
16
|
import { PositionMixin } from '@vaadin/overlay/src/vaadin-overlay-position-mixin.js';
|
|
16
17
|
import { overlayStyles } from '@vaadin/overlay/src/vaadin-overlay-styles.js';
|
|
17
|
-
import {
|
|
18
|
+
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
18
19
|
import { RichTextEditorPopupMixin } from './vaadin-rich-text-editor-popup-mixin.js';
|
|
19
20
|
|
|
20
|
-
registerStyles('vaadin-rich-text-editor-popup-overlay', [overlayStyles], {
|
|
21
|
-
moduleId: 'vaadin-rich-text-editor-popup-overlay-styles',
|
|
22
|
-
});
|
|
23
|
-
|
|
24
21
|
/**
|
|
25
22
|
* An element used internally by `<vaadin-rich-text-editor>`. Not intended to be used separately.
|
|
26
23
|
*
|
|
@@ -29,30 +26,40 @@ registerStyles('vaadin-rich-text-editor-popup-overlay', [overlayStyles], {
|
|
|
29
26
|
* @mixes RichTextEditorPopupMixin
|
|
30
27
|
* @private
|
|
31
28
|
*/
|
|
32
|
-
class RichTextEditorPopup extends RichTextEditorPopupMixin(
|
|
29
|
+
class RichTextEditorPopup extends RichTextEditorPopupMixin(PolylitMixin(LitElement)) {
|
|
33
30
|
static get is() {
|
|
34
31
|
return 'vaadin-rich-text-editor-popup';
|
|
35
32
|
}
|
|
36
33
|
|
|
37
|
-
static get
|
|
34
|
+
static get styles() {
|
|
35
|
+
return css`
|
|
36
|
+
:host {
|
|
37
|
+
display: none;
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** @protected */
|
|
43
|
+
render() {
|
|
38
44
|
return html`
|
|
39
|
-
<style>
|
|
40
|
-
:host {
|
|
41
|
-
display: none;
|
|
42
|
-
}
|
|
43
|
-
</style>
|
|
44
45
|
<vaadin-rich-text-editor-popup-overlay
|
|
45
|
-
renderer="
|
|
46
|
-
opened="{
|
|
47
|
-
|
|
46
|
+
.renderer="${this.renderer}"
|
|
47
|
+
.opened="${this.opened}"
|
|
48
|
+
.positionTarget="${this.target}"
|
|
48
49
|
no-vertical-overlap
|
|
49
50
|
horizontal-align="start"
|
|
50
51
|
vertical-align="top"
|
|
51
|
-
on-vaadin-overlay-escape-press="_onOverlayEscapePress"
|
|
52
52
|
focus-trap
|
|
53
|
+
@opened-changed="${this._onOpenedChanged}"
|
|
54
|
+
@vaadin-overlay-escape-press="${this._onOverlayEscapePress}"
|
|
53
55
|
></vaadin-rich-text-editor-popup-overlay>
|
|
54
56
|
`;
|
|
55
57
|
}
|
|
58
|
+
|
|
59
|
+
/** @private */
|
|
60
|
+
_onOpenedChanged(event) {
|
|
61
|
+
this.opened = event.detail.value;
|
|
62
|
+
}
|
|
56
63
|
}
|
|
57
64
|
|
|
58
65
|
defineCustomElement(RichTextEditorPopup);
|
|
@@ -70,12 +77,19 @@ export { RichTextEditorPopup };
|
|
|
70
77
|
* @mixes PositionMixin
|
|
71
78
|
* @private
|
|
72
79
|
*/
|
|
73
|
-
class RichTextEditorPopupOverlay extends PositionMixin(
|
|
80
|
+
class RichTextEditorPopupOverlay extends PositionMixin(
|
|
81
|
+
OverlayMixin(DirMixin(ThemableMixin(PolylitMixin(LitElement)))),
|
|
82
|
+
) {
|
|
74
83
|
static get is() {
|
|
75
84
|
return 'vaadin-rich-text-editor-popup-overlay';
|
|
76
85
|
}
|
|
77
86
|
|
|
78
|
-
static get
|
|
87
|
+
static get styles() {
|
|
88
|
+
return overlayStyles;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/** @protected */
|
|
92
|
+
render() {
|
|
79
93
|
return html`
|
|
80
94
|
<div id="backdrop" part="backdrop" hidden></div>
|
|
81
95
|
<div part="overlay" id="overlay">
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
9
|
* license.
|
|
10
10
|
*/
|
|
11
|
-
import { css
|
|
11
|
+
import { css } from 'lit';
|
|
12
12
|
import { iconsStyles } from './vaadin-rich-text-editor-icons.js';
|
|
13
13
|
|
|
14
14
|
export const buttonsStyles = css`
|
|
@@ -178,6 +178,3 @@ export const buttonsStyles = css`
|
|
|
178
178
|
`;
|
|
179
179
|
|
|
180
180
|
export const toolbarStyles = [iconsStyles, buttonsStyles];
|
|
181
|
-
|
|
182
|
-
// Register a module with ID for backwards compatibility.
|
|
183
|
-
registerStyles('', toolbarStyles, { moduleId: 'vaadin-rich-text-editor-toolbar-styles' });
|
|
@@ -13,16 +13,14 @@ import '@vaadin/confirm-dialog/src/vaadin-confirm-dialog.js';
|
|
|
13
13
|
import '@vaadin/text-field/src/vaadin-text-field.js';
|
|
14
14
|
import '@vaadin/tooltip/src/vaadin-tooltip.js';
|
|
15
15
|
import './vaadin-rich-text-editor-popup.js';
|
|
16
|
-
import '
|
|
17
|
-
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
16
|
+
import { html, LitElement } from 'lit';
|
|
18
17
|
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
19
18
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
20
|
-
import {
|
|
19
|
+
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
20
|
+
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
21
21
|
import { RichTextEditorMixin } from './vaadin-rich-text-editor-mixin.js';
|
|
22
22
|
import { richTextEditorStyles } from './vaadin-rich-text-editor-styles.js';
|
|
23
23
|
|
|
24
|
-
registerStyles('vaadin-rich-text-editor', richTextEditorStyles, { moduleId: 'vaadin-rich-text-editor-styles' });
|
|
25
|
-
|
|
26
24
|
/**
|
|
27
25
|
* `<vaadin-rich-text-editor>` is a Web Component for rich text editing.
|
|
28
26
|
* It provides a set of toolbar controls to apply formatting on the content,
|
|
@@ -101,37 +99,60 @@ registerStyles('vaadin-rich-text-editor', richTextEditorStyles, { moduleId: 'vaa
|
|
|
101
99
|
* @mixes RichTextEditorMixin
|
|
102
100
|
* @mixes ThemableMixin
|
|
103
101
|
*/
|
|
104
|
-
class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(
|
|
105
|
-
static get
|
|
102
|
+
class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(PolylitMixin(LitElement)))) {
|
|
103
|
+
static get is() {
|
|
104
|
+
return 'vaadin-rich-text-editor';
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
static get cvdlName() {
|
|
108
|
+
return 'vaadin-rich-text-editor';
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
static get styles() {
|
|
112
|
+
return richTextEditorStyles;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/** @protected */
|
|
116
|
+
render() {
|
|
106
117
|
return html`
|
|
107
118
|
<div class="vaadin-rich-text-editor-container">
|
|
108
119
|
<!-- Create toolbar container -->
|
|
109
120
|
<div part="toolbar" role="toolbar">
|
|
110
121
|
<span part="toolbar-group toolbar-group-history">
|
|
111
122
|
<!-- Undo and Redo -->
|
|
112
|
-
<button
|
|
113
|
-
|
|
123
|
+
<button
|
|
124
|
+
id="btn-undo"
|
|
125
|
+
type="button"
|
|
126
|
+
part="toolbar-button toolbar-button-undo"
|
|
127
|
+
@click="${this._undo}"
|
|
128
|
+
></button>
|
|
129
|
+
<vaadin-tooltip for="btn-undo" .text="${this.__effectiveI18n.undo}"></vaadin-tooltip>
|
|
114
130
|
|
|
115
|
-
<button
|
|
116
|
-
|
|
131
|
+
<button
|
|
132
|
+
id="btn-redo"
|
|
133
|
+
type="button"
|
|
134
|
+
part="toolbar-button toolbar-button-redo"
|
|
135
|
+
@click="${this._redo}"
|
|
136
|
+
></button>
|
|
137
|
+
<vaadin-tooltip for="btn-redo" .text="${this.__effectiveI18n.redo}"></vaadin-tooltip>
|
|
117
138
|
</span>
|
|
118
139
|
|
|
119
140
|
<span part="toolbar-group toolbar-group-emphasis">
|
|
120
141
|
<!-- Bold -->
|
|
121
142
|
<button id="btn-bold" class="ql-bold" part="toolbar-button toolbar-button-bold"></button>
|
|
122
|
-
<vaadin-tooltip for="btn-bold" text="
|
|
143
|
+
<vaadin-tooltip for="btn-bold" .text="${this.__effectiveI18n.bold}"></vaadin-tooltip>
|
|
123
144
|
|
|
124
145
|
<!-- Italic -->
|
|
125
146
|
<button id="btn-italic" class="ql-italic" part="toolbar-button toolbar-button-italic"></button>
|
|
126
|
-
<vaadin-tooltip for="btn-italic" text="
|
|
147
|
+
<vaadin-tooltip for="btn-italic" .text="${this.__effectiveI18n.italic}"></vaadin-tooltip>
|
|
127
148
|
|
|
128
149
|
<!-- Underline -->
|
|
129
150
|
<button id="btn-underline" class="ql-underline" part="toolbar-button toolbar-button-underline"></button>
|
|
130
|
-
<vaadin-tooltip for="btn-underline" text="
|
|
151
|
+
<vaadin-tooltip for="btn-underline" .text="${this.__effectiveI18n.underline}"></vaadin-tooltip>
|
|
131
152
|
|
|
132
153
|
<!-- Strike -->
|
|
133
154
|
<button id="btn-strike" class="ql-strike" part="toolbar-button toolbar-button-strike"></button>
|
|
134
|
-
<vaadin-tooltip for="btn-strike" text="
|
|
155
|
+
<vaadin-tooltip for="btn-strike" .text="${this.__effectiveI18n.strike}"></vaadin-tooltip>
|
|
135
156
|
</span>
|
|
136
157
|
|
|
137
158
|
<span part="toolbar-group toolbar-group-style">
|
|
@@ -140,17 +161,17 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
140
161
|
id="btn-color"
|
|
141
162
|
type="button"
|
|
142
163
|
part="toolbar-button toolbar-button-color"
|
|
143
|
-
|
|
164
|
+
@click="${this.__onColorClick}"
|
|
144
165
|
></button>
|
|
145
|
-
<vaadin-tooltip for="btn-color" text="
|
|
166
|
+
<vaadin-tooltip for="btn-color" .text="${this.__effectiveI18n.color}"></vaadin-tooltip>
|
|
146
167
|
<!-- Background -->
|
|
147
168
|
<button
|
|
148
169
|
id="btn-background"
|
|
149
170
|
type="button"
|
|
150
171
|
part="toolbar-button toolbar-button-background"
|
|
151
|
-
|
|
172
|
+
@click="${this.__onBackgroundClick}"
|
|
152
173
|
></button>
|
|
153
|
-
<vaadin-tooltip for="btn-background" text="
|
|
174
|
+
<vaadin-tooltip for="btn-background" .text="${this.__effectiveI18n.background}"></vaadin-tooltip>
|
|
154
175
|
</span>
|
|
155
176
|
|
|
156
177
|
<span part="toolbar-group toolbar-group-heading">
|
|
@@ -162,7 +183,7 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
162
183
|
value="1"
|
|
163
184
|
part="toolbar-button toolbar-button-h1"
|
|
164
185
|
></button>
|
|
165
|
-
<vaadin-tooltip for="btn-h1" text="
|
|
186
|
+
<vaadin-tooltip for="btn-h1" .text="${this.__effectiveI18n.h1}"></vaadin-tooltip>
|
|
166
187
|
<button
|
|
167
188
|
id="btn-h2"
|
|
168
189
|
type="button"
|
|
@@ -170,7 +191,7 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
170
191
|
value="2"
|
|
171
192
|
part="toolbar-button toolbar-button-h2"
|
|
172
193
|
></button>
|
|
173
|
-
<vaadin-tooltip for="btn-h2" text="
|
|
194
|
+
<vaadin-tooltip for="btn-h2" .text="${this.__effectiveI18n.h2}"></vaadin-tooltip>
|
|
174
195
|
<button
|
|
175
196
|
id="btn-h3"
|
|
176
197
|
type="button"
|
|
@@ -178,7 +199,7 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
178
199
|
value="3"
|
|
179
200
|
part="toolbar-button toolbar-button-h3"
|
|
180
201
|
></button>
|
|
181
|
-
<vaadin-tooltip for="btn-h3" text="
|
|
202
|
+
<vaadin-tooltip for="btn-h3" .text="${this.__effectiveI18n.h3}"></vaadin-tooltip>
|
|
182
203
|
</span>
|
|
183
204
|
|
|
184
205
|
<span part="toolbar-group toolbar-group-glyph-transformation">
|
|
@@ -189,14 +210,14 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
189
210
|
value="sub"
|
|
190
211
|
part="toolbar-button toolbar-button-subscript"
|
|
191
212
|
></button>
|
|
192
|
-
<vaadin-tooltip for="btn-subscript" text="
|
|
213
|
+
<vaadin-tooltip for="btn-subscript" .text="${this.__effectiveI18n.subscript}"></vaadin-tooltip>
|
|
193
214
|
<button
|
|
194
215
|
id="btn-superscript"
|
|
195
216
|
class="ql-script"
|
|
196
217
|
value="super"
|
|
197
218
|
part="toolbar-button toolbar-button-superscript"
|
|
198
219
|
></button>
|
|
199
|
-
<vaadin-tooltip for="btn-superscript" text="
|
|
220
|
+
<vaadin-tooltip for="btn-superscript" text="${this.__effectiveI18n.superscript}"></vaadin-tooltip>
|
|
200
221
|
</span>
|
|
201
222
|
|
|
202
223
|
<span part="toolbar-group toolbar-group-list">
|
|
@@ -208,7 +229,7 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
208
229
|
value="ordered"
|
|
209
230
|
part="toolbar-button toolbar-button-list-ordered"
|
|
210
231
|
></button>
|
|
211
|
-
<vaadin-tooltip for="btn-ol" text="
|
|
232
|
+
<vaadin-tooltip for="btn-ol" text="${this.__effectiveI18n.listOrdered}"></vaadin-tooltip>
|
|
212
233
|
<button
|
|
213
234
|
id="btn-ul"
|
|
214
235
|
type="button"
|
|
@@ -216,7 +237,7 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
216
237
|
value="bullet"
|
|
217
238
|
part="toolbar-button toolbar-button-list-bullet"
|
|
218
239
|
></button>
|
|
219
|
-
<vaadin-tooltip for="btn-ul" text="
|
|
240
|
+
<vaadin-tooltip for="btn-ul" text="${this.__effectiveI18n.listBullet}"></vaadin-tooltip>
|
|
220
241
|
</span>
|
|
221
242
|
|
|
222
243
|
<span part="toolbar-group toolbar-group-alignment">
|
|
@@ -228,7 +249,7 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
228
249
|
value=""
|
|
229
250
|
part="toolbar-button toolbar-button-align-left"
|
|
230
251
|
></button>
|
|
231
|
-
<vaadin-tooltip for="btn-left" text="
|
|
252
|
+
<vaadin-tooltip for="btn-left" .text="${this.__effectiveI18n.alignLeft}"></vaadin-tooltip>
|
|
232
253
|
<button
|
|
233
254
|
id="btn-center"
|
|
234
255
|
type="button"
|
|
@@ -236,7 +257,7 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
236
257
|
value="center"
|
|
237
258
|
part="toolbar-button toolbar-button-align-center"
|
|
238
259
|
></button>
|
|
239
|
-
<vaadin-tooltip for="btn-center" text="
|
|
260
|
+
<vaadin-tooltip for="btn-center" .text="${this.__effectiveI18n.alignCenter}"></vaadin-tooltip>
|
|
240
261
|
<button
|
|
241
262
|
id="btn-right"
|
|
242
263
|
type="button"
|
|
@@ -244,7 +265,7 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
244
265
|
value="right"
|
|
245
266
|
part="toolbar-button toolbar-button-align-right"
|
|
246
267
|
></button>
|
|
247
|
-
<vaadin-tooltip for="btn-right" text="
|
|
268
|
+
<vaadin-tooltip for="btn-right" .text="${this.__effectiveI18n.alignRight}"></vaadin-tooltip>
|
|
248
269
|
</span>
|
|
249
270
|
|
|
250
271
|
<span part="toolbar-group toolbar-group-rich-text">
|
|
@@ -253,18 +274,18 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
253
274
|
id="btn-image"
|
|
254
275
|
type="button"
|
|
255
276
|
part="toolbar-button toolbar-button-image"
|
|
256
|
-
|
|
257
|
-
|
|
277
|
+
@touchend="${this._onImageTouchEnd}"
|
|
278
|
+
@click="${this._onImageClick}"
|
|
258
279
|
></button>
|
|
259
|
-
<vaadin-tooltip for="btn-image" text="
|
|
280
|
+
<vaadin-tooltip for="btn-image" .text="${this.__effectiveI18n.image}"></vaadin-tooltip>
|
|
260
281
|
<!-- Link -->
|
|
261
282
|
<button
|
|
262
283
|
id="btn-link"
|
|
263
284
|
type="button"
|
|
264
285
|
part="toolbar-button toolbar-button-link"
|
|
265
|
-
|
|
286
|
+
@click="${this._onLinkClick}"
|
|
266
287
|
></button>
|
|
267
|
-
<vaadin-tooltip for="btn-link" text="
|
|
288
|
+
<vaadin-tooltip for="btn-link" .text="${this.__effectiveI18n.link}"></vaadin-tooltip>
|
|
268
289
|
</span>
|
|
269
290
|
|
|
270
291
|
<span part="toolbar-group toolbar-group-block">
|
|
@@ -275,7 +296,7 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
275
296
|
class="ql-blockquote"
|
|
276
297
|
part="toolbar-button toolbar-button-blockquote"
|
|
277
298
|
></button>
|
|
278
|
-
<vaadin-tooltip for="btn-blockquote" text="
|
|
299
|
+
<vaadin-tooltip for="btn-blockquote" .text="${this.__effectiveI18n.blockquote}"></vaadin-tooltip>
|
|
279
300
|
<!-- Code block -->
|
|
280
301
|
<button
|
|
281
302
|
id="btn-code"
|
|
@@ -283,20 +304,20 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
283
304
|
class="ql-code-block"
|
|
284
305
|
part="toolbar-button toolbar-button-code-block"
|
|
285
306
|
></button>
|
|
286
|
-
<vaadin-tooltip for="btn-code" text="
|
|
307
|
+
<vaadin-tooltip for="btn-code" .text="${this.__effectiveI18n.codeBlock}"></vaadin-tooltip>
|
|
287
308
|
</span>
|
|
288
309
|
|
|
289
310
|
<span part="toolbar-group toolbar-group-format">
|
|
290
311
|
<!-- Clean -->
|
|
291
312
|
<button id="btn-clean" type="button" class="ql-clean" part="toolbar-button toolbar-button-clean"></button>
|
|
292
|
-
<vaadin-tooltip for="btn-clean" text="
|
|
313
|
+
<vaadin-tooltip for="btn-clean" .text="${this.__effectiveI18n.clean}"></vaadin-tooltip>
|
|
293
314
|
</span>
|
|
294
315
|
|
|
295
316
|
<input
|
|
296
317
|
id="fileInput"
|
|
297
318
|
type="file"
|
|
298
319
|
accept="image/png, image/gif, image/jpeg, image/bmp, image/x-icon"
|
|
299
|
-
|
|
320
|
+
@change="${this._uploadImage}"
|
|
300
321
|
/>
|
|
301
322
|
</div>
|
|
302
323
|
|
|
@@ -305,59 +326,73 @@ class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(Poly
|
|
|
305
326
|
<div class="announcer" aria-live="polite"></div>
|
|
306
327
|
</div>
|
|
307
328
|
|
|
308
|
-
<vaadin-confirm-dialog
|
|
329
|
+
<vaadin-confirm-dialog
|
|
330
|
+
id="linkDialog"
|
|
331
|
+
.opened="${this._linkEditing}"
|
|
332
|
+
.header="${this.__effectiveI18n.linkDialogTitle}"
|
|
333
|
+
@opened-changed="${this._onLinkEditingChanged}"
|
|
334
|
+
>
|
|
309
335
|
<vaadin-text-field
|
|
310
336
|
id="linkUrl"
|
|
311
|
-
value="{
|
|
337
|
+
.value="${this._linkUrl}"
|
|
312
338
|
style="width: 100%;"
|
|
313
|
-
|
|
339
|
+
@keydown="${this._onLinkKeydown}"
|
|
340
|
+
@value-changed="${this._onLinkUrlChanged}"
|
|
314
341
|
></vaadin-text-field>
|
|
315
|
-
<vaadin-button id="confirmLink" slot="confirm-button" theme="primary"
|
|
316
|
-
|
|
342
|
+
<vaadin-button id="confirmLink" slot="confirm-button" theme="primary" @click="${this._onLinkEditConfirm}">
|
|
343
|
+
${this.__effectiveI18n.ok}
|
|
317
344
|
</vaadin-button>
|
|
318
345
|
<vaadin-button
|
|
319
346
|
id="removeLink"
|
|
320
347
|
slot="reject-button"
|
|
321
348
|
theme="error"
|
|
322
|
-
|
|
323
|
-
hidden
|
|
349
|
+
@click="${this._onLinkEditRemove}"
|
|
350
|
+
?hidden="${!this._linkRange}"
|
|
324
351
|
>
|
|
325
|
-
|
|
352
|
+
${this.__effectiveI18n.remove}
|
|
326
353
|
</vaadin-button>
|
|
327
|
-
<vaadin-button id="cancelLink" slot="cancel-button"
|
|
328
|
-
|
|
354
|
+
<vaadin-button id="cancelLink" slot="cancel-button" @click="${this._onLinkEditCancel}">
|
|
355
|
+
${this.__effectiveI18n.cancel}
|
|
329
356
|
</vaadin-button>
|
|
330
357
|
</vaadin-confirm-dialog>
|
|
331
358
|
|
|
332
359
|
<vaadin-rich-text-editor-popup
|
|
333
360
|
id="colorPopup"
|
|
334
|
-
colors="
|
|
335
|
-
opened="{
|
|
336
|
-
|
|
361
|
+
.colors="${this.colorOptions}"
|
|
362
|
+
.opened="${this._colorEditing}"
|
|
363
|
+
@color-selected="${this.__onColorSelected}"
|
|
364
|
+
@opened-changed="${this.__onColorEditingChanged}"
|
|
337
365
|
></vaadin-rich-text-editor-popup>
|
|
338
366
|
|
|
339
367
|
<vaadin-rich-text-editor-popup
|
|
340
368
|
id="backgroundPopup"
|
|
341
|
-
colors="
|
|
342
|
-
opened="{
|
|
343
|
-
|
|
369
|
+
.colors="${this.colorOptions}"
|
|
370
|
+
.opened="${this._backgroundEditing}"
|
|
371
|
+
@color-selected="${this.__onBackgroundSelected}"
|
|
372
|
+
@opened-changed="${this.__onBackgroundEditingChanged}"
|
|
344
373
|
></vaadin-rich-text-editor-popup>
|
|
345
374
|
`;
|
|
346
375
|
}
|
|
347
376
|
|
|
348
|
-
|
|
349
|
-
|
|
377
|
+
/** @private */
|
|
378
|
+
__onBackgroundEditingChanged(event) {
|
|
379
|
+
this._backgroundEditing = event.detail.value;
|
|
350
380
|
}
|
|
351
381
|
|
|
352
|
-
|
|
353
|
-
|
|
382
|
+
/** @private */
|
|
383
|
+
__onColorEditingChanged(event) {
|
|
384
|
+
this._colorEditing = event.detail.value;
|
|
354
385
|
}
|
|
355
386
|
|
|
356
|
-
/**
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
387
|
+
/** @private */
|
|
388
|
+
_onLinkEditingChanged(event) {
|
|
389
|
+
this._linkEditing = event.detail.value;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/** @private */
|
|
393
|
+
_onLinkUrlChanged(event) {
|
|
394
|
+
this._linkUrl = event.detail.value;
|
|
395
|
+
}
|
|
361
396
|
}
|
|
362
397
|
|
|
363
398
|
defineCustomElement(RichTextEditor);
|
package/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/rich-text-editor",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "25.0.0-alpha2",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -100,10 +100,6 @@
|
|
|
100
100
|
}
|
|
101
101
|
],
|
|
102
102
|
"events": [
|
|
103
|
-
{
|
|
104
|
-
"name": "change",
|
|
105
|
-
"description": "Fired when the user commits a value change."
|
|
106
|
-
},
|
|
107
103
|
{
|
|
108
104
|
"name": "value-changed",
|
|
109
105
|
"description": "Fired when the `value` property changes."
|
package/web-types.lit.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/rich-text-editor",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "25.0.0-alpha2",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"framework": "lit",
|
|
7
7
|
"framework-config": {
|
|
@@ -54,13 +54,6 @@
|
|
|
54
54
|
"kind": "expression"
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
|
-
{
|
|
58
|
-
"name": "@change",
|
|
59
|
-
"description": "Fired when the user commits a value change.",
|
|
60
|
-
"value": {
|
|
61
|
-
"kind": "expression"
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
57
|
{
|
|
65
58
|
"name": "@value-changed",
|
|
66
59
|
"description": "Fired when the `value` property changes.",
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright (c) 2000 - 2025 Vaadin Ltd.
|
|
4
|
-
*
|
|
5
|
-
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
-
* license.
|
|
10
|
-
*/
|
|
11
|
-
import { css, html, LitElement } from 'lit';
|
|
12
|
-
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
13
|
-
import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
|
|
14
|
-
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
15
|
-
import { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';
|
|
16
|
-
import { PositionMixin } from '@vaadin/overlay/src/vaadin-overlay-position-mixin.js';
|
|
17
|
-
import { overlayStyles } from '@vaadin/overlay/src/vaadin-overlay-styles.js';
|
|
18
|
-
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
19
|
-
import { RichTextEditorPopupMixin } from './vaadin-rich-text-editor-popup-mixin.js';
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* An element used internally by `<vaadin-rich-text-editor>`. Not intended to be used separately.
|
|
23
|
-
* @private
|
|
24
|
-
*/
|
|
25
|
-
class RichTextEditorPopup extends RichTextEditorPopupMixin(PolylitMixin(LitElement)) {
|
|
26
|
-
static get is() {
|
|
27
|
-
return 'vaadin-rich-text-editor-popup';
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
static get styles() {
|
|
31
|
-
return css`
|
|
32
|
-
:host {
|
|
33
|
-
display: none;
|
|
34
|
-
}
|
|
35
|
-
`;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/** @protected */
|
|
39
|
-
render() {
|
|
40
|
-
return html`
|
|
41
|
-
<vaadin-rich-text-editor-popup-overlay
|
|
42
|
-
.renderer="${this.renderer}"
|
|
43
|
-
.opened="${this.opened}"
|
|
44
|
-
.positionTarget="${this.target}"
|
|
45
|
-
no-vertical-overlap
|
|
46
|
-
horizontal-align="start"
|
|
47
|
-
vertical-align="top"
|
|
48
|
-
focus-trap
|
|
49
|
-
@opened-changed="${this._onOpenedChanged}"
|
|
50
|
-
@vaadin-overlay-escape-press="${this._onOverlayEscapePress}"
|
|
51
|
-
></vaadin-rich-text-editor-popup-overlay>
|
|
52
|
-
`;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/** @private */
|
|
56
|
-
_onOpenedChanged(event) {
|
|
57
|
-
this.opened = event.detail.value;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
defineCustomElement(RichTextEditorPopup);
|
|
62
|
-
|
|
63
|
-
export { RichTextEditorPopup };
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* An element used internally by `<vaadin-rich-text-editor>`. Not intended to be used separately.
|
|
67
|
-
* @private
|
|
68
|
-
*/
|
|
69
|
-
class RichTextEditorPopupOverlay extends PositionMixin(
|
|
70
|
-
OverlayMixin(DirMixin(ThemableMixin(PolylitMixin(LitElement)))),
|
|
71
|
-
) {
|
|
72
|
-
static get is() {
|
|
73
|
-
return 'vaadin-rich-text-editor-popup-overlay';
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
static get styles() {
|
|
77
|
-
return overlayStyles;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/** @protected */
|
|
81
|
-
render() {
|
|
82
|
-
return html`
|
|
83
|
-
<div id="backdrop" part="backdrop" hidden></div>
|
|
84
|
-
<div part="overlay" id="overlay">
|
|
85
|
-
<div part="content" id="content"><slot></slot></div>
|
|
86
|
-
</div>
|
|
87
|
-
`;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
defineCustomElement(RichTextEditorPopupOverlay);
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright (c) 2000 - 2025 Vaadin Ltd.
|
|
4
|
-
*
|
|
5
|
-
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
-
* license.
|
|
10
|
-
*/
|
|
11
|
-
export * from './vaadin-rich-text-editor.js';
|
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright (c) 2000 - 2025 Vaadin Ltd.
|
|
4
|
-
*
|
|
5
|
-
* This program is available under Vaadin Commercial License and Service Terms.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* See https://vaadin.com/commercial-license-and-service-terms for the full
|
|
9
|
-
* license.
|
|
10
|
-
*/
|
|
11
|
-
import '@vaadin/button/src/vaadin-lit-button.js';
|
|
12
|
-
import '@vaadin/confirm-dialog/src/vaadin-lit-confirm-dialog.js';
|
|
13
|
-
import '@vaadin/text-field/src/vaadin-lit-text-field.js';
|
|
14
|
-
import '@vaadin/tooltip/src/vaadin-lit-tooltip.js';
|
|
15
|
-
import './vaadin-lit-rich-text-editor-popup.js';
|
|
16
|
-
import { html, LitElement } from 'lit';
|
|
17
|
-
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
18
|
-
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
19
|
-
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
20
|
-
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
21
|
-
import { RichTextEditorMixin } from './vaadin-rich-text-editor-mixin.js';
|
|
22
|
-
import { richTextEditorStyles } from './vaadin-rich-text-editor-styles.js';
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* LitElement based version of `<vaadin-rich-text-editor>` web component.
|
|
26
|
-
*
|
|
27
|
-
* ## Disclaimer
|
|
28
|
-
*
|
|
29
|
-
* This component is an experiment and not yet a part of Vaadin platform.
|
|
30
|
-
* There is no ETA regarding specific Vaadin version where it'll land.
|
|
31
|
-
*/
|
|
32
|
-
class RichTextEditor extends RichTextEditorMixin(ElementMixin(ThemableMixin(PolylitMixin(LitElement)))) {
|
|
33
|
-
static get is() {
|
|
34
|
-
return 'vaadin-rich-text-editor';
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
static get cvdlName() {
|
|
38
|
-
return 'vaadin-rich-text-editor';
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
static get styles() {
|
|
42
|
-
return richTextEditorStyles;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/** @protected */
|
|
46
|
-
render() {
|
|
47
|
-
return html`
|
|
48
|
-
<div class="vaadin-rich-text-editor-container">
|
|
49
|
-
<!-- Create toolbar container -->
|
|
50
|
-
<div part="toolbar" role="toolbar">
|
|
51
|
-
<span part="toolbar-group toolbar-group-history">
|
|
52
|
-
<!-- Undo and Redo -->
|
|
53
|
-
<button
|
|
54
|
-
id="btn-undo"
|
|
55
|
-
type="button"
|
|
56
|
-
part="toolbar-button toolbar-button-undo"
|
|
57
|
-
@click="${this._undo}"
|
|
58
|
-
></button>
|
|
59
|
-
<vaadin-tooltip for="btn-undo" .text="${this.__effectiveI18n.undo}"></vaadin-tooltip>
|
|
60
|
-
|
|
61
|
-
<button
|
|
62
|
-
id="btn-redo"
|
|
63
|
-
type="button"
|
|
64
|
-
part="toolbar-button toolbar-button-redo"
|
|
65
|
-
@click="${this._redo}"
|
|
66
|
-
></button>
|
|
67
|
-
<vaadin-tooltip for="btn-redo" .text="${this.__effectiveI18n.redo}"></vaadin-tooltip>
|
|
68
|
-
</span>
|
|
69
|
-
|
|
70
|
-
<span part="toolbar-group toolbar-group-emphasis">
|
|
71
|
-
<!-- Bold -->
|
|
72
|
-
<button id="btn-bold" class="ql-bold" part="toolbar-button toolbar-button-bold"></button>
|
|
73
|
-
<vaadin-tooltip for="btn-bold" .text="${this.__effectiveI18n.bold}"></vaadin-tooltip>
|
|
74
|
-
|
|
75
|
-
<!-- Italic -->
|
|
76
|
-
<button id="btn-italic" class="ql-italic" part="toolbar-button toolbar-button-italic"></button>
|
|
77
|
-
<vaadin-tooltip for="btn-italic" .text="${this.__effectiveI18n.italic}"></vaadin-tooltip>
|
|
78
|
-
|
|
79
|
-
<!-- Underline -->
|
|
80
|
-
<button id="btn-underline" class="ql-underline" part="toolbar-button toolbar-button-underline"></button>
|
|
81
|
-
<vaadin-tooltip for="btn-underline" .text="${this.__effectiveI18n.underline}"></vaadin-tooltip>
|
|
82
|
-
|
|
83
|
-
<!-- Strike -->
|
|
84
|
-
<button id="btn-strike" class="ql-strike" part="toolbar-button toolbar-button-strike"></button>
|
|
85
|
-
<vaadin-tooltip for="btn-strike" .text="${this.__effectiveI18n.strike}"></vaadin-tooltip>
|
|
86
|
-
</span>
|
|
87
|
-
|
|
88
|
-
<span part="toolbar-group toolbar-group-style">
|
|
89
|
-
<!-- Color -->
|
|
90
|
-
<button
|
|
91
|
-
id="btn-color"
|
|
92
|
-
type="button"
|
|
93
|
-
part="toolbar-button toolbar-button-color"
|
|
94
|
-
@click="${this.__onColorClick}"
|
|
95
|
-
></button>
|
|
96
|
-
<vaadin-tooltip for="btn-color" .text="${this.__effectiveI18n.color}"></vaadin-tooltip>
|
|
97
|
-
<!-- Background -->
|
|
98
|
-
<button
|
|
99
|
-
id="btn-background"
|
|
100
|
-
type="button"
|
|
101
|
-
part="toolbar-button toolbar-button-background"
|
|
102
|
-
@click="${this.__onBackgroundClick}"
|
|
103
|
-
></button>
|
|
104
|
-
<vaadin-tooltip for="btn-background" .text="${this.__effectiveI18n.background}"></vaadin-tooltip>
|
|
105
|
-
</span>
|
|
106
|
-
|
|
107
|
-
<span part="toolbar-group toolbar-group-heading">
|
|
108
|
-
<!-- Header buttons -->
|
|
109
|
-
<button
|
|
110
|
-
id="btn-h1"
|
|
111
|
-
type="button"
|
|
112
|
-
class="ql-header"
|
|
113
|
-
value="1"
|
|
114
|
-
part="toolbar-button toolbar-button-h1"
|
|
115
|
-
></button>
|
|
116
|
-
<vaadin-tooltip for="btn-h1" .text="${this.__effectiveI18n.h1}"></vaadin-tooltip>
|
|
117
|
-
<button
|
|
118
|
-
id="btn-h2"
|
|
119
|
-
type="button"
|
|
120
|
-
class="ql-header"
|
|
121
|
-
value="2"
|
|
122
|
-
part="toolbar-button toolbar-button-h2"
|
|
123
|
-
></button>
|
|
124
|
-
<vaadin-tooltip for="btn-h2" .text="${this.__effectiveI18n.h2}"></vaadin-tooltip>
|
|
125
|
-
<button
|
|
126
|
-
id="btn-h3"
|
|
127
|
-
type="button"
|
|
128
|
-
class="ql-header"
|
|
129
|
-
value="3"
|
|
130
|
-
part="toolbar-button toolbar-button-h3"
|
|
131
|
-
></button>
|
|
132
|
-
<vaadin-tooltip for="btn-h3" .text="${this.__effectiveI18n.h3}"></vaadin-tooltip>
|
|
133
|
-
</span>
|
|
134
|
-
|
|
135
|
-
<span part="toolbar-group toolbar-group-glyph-transformation">
|
|
136
|
-
<!-- Subscript and superscript -->
|
|
137
|
-
<button
|
|
138
|
-
id="btn-subscript"
|
|
139
|
-
class="ql-script"
|
|
140
|
-
value="sub"
|
|
141
|
-
part="toolbar-button toolbar-button-subscript"
|
|
142
|
-
></button>
|
|
143
|
-
<vaadin-tooltip for="btn-subscript" .text="${this.__effectiveI18n.subscript}"></vaadin-tooltip>
|
|
144
|
-
<button
|
|
145
|
-
id="btn-superscript"
|
|
146
|
-
class="ql-script"
|
|
147
|
-
value="super"
|
|
148
|
-
part="toolbar-button toolbar-button-superscript"
|
|
149
|
-
></button>
|
|
150
|
-
<vaadin-tooltip for="btn-superscript" text="${this.__effectiveI18n.superscript}"></vaadin-tooltip>
|
|
151
|
-
</span>
|
|
152
|
-
|
|
153
|
-
<span part="toolbar-group toolbar-group-list">
|
|
154
|
-
<!-- List buttons -->
|
|
155
|
-
<button
|
|
156
|
-
id="btn-ol"
|
|
157
|
-
type="button"
|
|
158
|
-
class="ql-list"
|
|
159
|
-
value="ordered"
|
|
160
|
-
part="toolbar-button toolbar-button-list-ordered"
|
|
161
|
-
></button>
|
|
162
|
-
<vaadin-tooltip for="btn-ol" text="${this.__effectiveI18n.listOrdered}"></vaadin-tooltip>
|
|
163
|
-
<button
|
|
164
|
-
id="btn-ul"
|
|
165
|
-
type="button"
|
|
166
|
-
class="ql-list"
|
|
167
|
-
value="bullet"
|
|
168
|
-
part="toolbar-button toolbar-button-list-bullet"
|
|
169
|
-
></button>
|
|
170
|
-
<vaadin-tooltip for="btn-ul" text="${this.__effectiveI18n.listBullet}"></vaadin-tooltip>
|
|
171
|
-
</span>
|
|
172
|
-
|
|
173
|
-
<span part="toolbar-group toolbar-group-alignment">
|
|
174
|
-
<!-- Align buttons -->
|
|
175
|
-
<button
|
|
176
|
-
id="btn-left"
|
|
177
|
-
type="button"
|
|
178
|
-
class="ql-align"
|
|
179
|
-
value=""
|
|
180
|
-
part="toolbar-button toolbar-button-align-left"
|
|
181
|
-
></button>
|
|
182
|
-
<vaadin-tooltip for="btn-left" .text="${this.__effectiveI18n.alignLeft}"></vaadin-tooltip>
|
|
183
|
-
<button
|
|
184
|
-
id="btn-center"
|
|
185
|
-
type="button"
|
|
186
|
-
class="ql-align"
|
|
187
|
-
value="center"
|
|
188
|
-
part="toolbar-button toolbar-button-align-center"
|
|
189
|
-
></button>
|
|
190
|
-
<vaadin-tooltip for="btn-center" .text="${this.__effectiveI18n.alignCenter}"></vaadin-tooltip>
|
|
191
|
-
<button
|
|
192
|
-
id="btn-right"
|
|
193
|
-
type="button"
|
|
194
|
-
class="ql-align"
|
|
195
|
-
value="right"
|
|
196
|
-
part="toolbar-button toolbar-button-align-right"
|
|
197
|
-
></button>
|
|
198
|
-
<vaadin-tooltip for="btn-right" .text="${this.__effectiveI18n.alignRight}"></vaadin-tooltip>
|
|
199
|
-
</span>
|
|
200
|
-
|
|
201
|
-
<span part="toolbar-group toolbar-group-rich-text">
|
|
202
|
-
<!-- Image -->
|
|
203
|
-
<button
|
|
204
|
-
id="btn-image"
|
|
205
|
-
type="button"
|
|
206
|
-
part="toolbar-button toolbar-button-image"
|
|
207
|
-
@touchend="${this._onImageTouchEnd}"
|
|
208
|
-
@click="${this._onImageClick}"
|
|
209
|
-
></button>
|
|
210
|
-
<vaadin-tooltip for="btn-image" .text="${this.__effectiveI18n.image}"></vaadin-tooltip>
|
|
211
|
-
<!-- Link -->
|
|
212
|
-
<button
|
|
213
|
-
id="btn-link"
|
|
214
|
-
type="button"
|
|
215
|
-
part="toolbar-button toolbar-button-link"
|
|
216
|
-
@click="${this._onLinkClick}"
|
|
217
|
-
></button>
|
|
218
|
-
<vaadin-tooltip for="btn-link" .text="${this.__effectiveI18n.link}"></vaadin-tooltip>
|
|
219
|
-
</span>
|
|
220
|
-
|
|
221
|
-
<span part="toolbar-group toolbar-group-block">
|
|
222
|
-
<!-- Blockquote -->
|
|
223
|
-
<button
|
|
224
|
-
id="btn-blockquote"
|
|
225
|
-
type="button"
|
|
226
|
-
class="ql-blockquote"
|
|
227
|
-
part="toolbar-button toolbar-button-blockquote"
|
|
228
|
-
></button>
|
|
229
|
-
<vaadin-tooltip for="btn-blockquote" .text="${this.__effectiveI18n.blockquote}"></vaadin-tooltip>
|
|
230
|
-
<!-- Code block -->
|
|
231
|
-
<button
|
|
232
|
-
id="btn-code"
|
|
233
|
-
type="button"
|
|
234
|
-
class="ql-code-block"
|
|
235
|
-
part="toolbar-button toolbar-button-code-block"
|
|
236
|
-
></button>
|
|
237
|
-
<vaadin-tooltip for="btn-code" .text="${this.__effectiveI18n.codeBlock}"></vaadin-tooltip>
|
|
238
|
-
</span>
|
|
239
|
-
|
|
240
|
-
<span part="toolbar-group toolbar-group-format">
|
|
241
|
-
<!-- Clean -->
|
|
242
|
-
<button id="btn-clean" type="button" class="ql-clean" part="toolbar-button toolbar-button-clean"></button>
|
|
243
|
-
<vaadin-tooltip for="btn-clean" .text="${this.__effectiveI18n.clean}"></vaadin-tooltip>
|
|
244
|
-
</span>
|
|
245
|
-
|
|
246
|
-
<input
|
|
247
|
-
id="fileInput"
|
|
248
|
-
type="file"
|
|
249
|
-
accept="image/png, image/gif, image/jpeg, image/bmp, image/x-icon"
|
|
250
|
-
@change="${this._uploadImage}"
|
|
251
|
-
/>
|
|
252
|
-
</div>
|
|
253
|
-
|
|
254
|
-
<div part="content"></div>
|
|
255
|
-
|
|
256
|
-
<div class="announcer" aria-live="polite"></div>
|
|
257
|
-
</div>
|
|
258
|
-
|
|
259
|
-
<vaadin-confirm-dialog
|
|
260
|
-
id="linkDialog"
|
|
261
|
-
.opened="${this._linkEditing}"
|
|
262
|
-
.header="${this.__effectiveI18n.linkDialogTitle}"
|
|
263
|
-
@opened-changed="${this._onLinkEditingChanged}"
|
|
264
|
-
>
|
|
265
|
-
<vaadin-text-field
|
|
266
|
-
id="linkUrl"
|
|
267
|
-
.value="${this._linkUrl}"
|
|
268
|
-
style="width: 100%;"
|
|
269
|
-
@keydown="${this._onLinkKeydown}"
|
|
270
|
-
@value-changed="${this._onLinkUrlChanged}"
|
|
271
|
-
></vaadin-text-field>
|
|
272
|
-
<vaadin-button id="confirmLink" slot="confirm-button" theme="primary" @click="${this._onLinkEditConfirm}">
|
|
273
|
-
${this.__effectiveI18n.ok}
|
|
274
|
-
</vaadin-button>
|
|
275
|
-
<vaadin-button
|
|
276
|
-
id="removeLink"
|
|
277
|
-
slot="reject-button"
|
|
278
|
-
theme="error"
|
|
279
|
-
@click="${this._onLinkEditRemove}"
|
|
280
|
-
?hidden="${!this._linkRange}"
|
|
281
|
-
>
|
|
282
|
-
${this.__effectiveI18n.remove}
|
|
283
|
-
</vaadin-button>
|
|
284
|
-
<vaadin-button id="cancelLink" slot="cancel-button" @click="${this._onLinkEditCancel}">
|
|
285
|
-
${this.__effectiveI18n.cancel}
|
|
286
|
-
</vaadin-button>
|
|
287
|
-
</vaadin-confirm-dialog>
|
|
288
|
-
|
|
289
|
-
<vaadin-rich-text-editor-popup
|
|
290
|
-
id="colorPopup"
|
|
291
|
-
.colors="${this.colorOptions}"
|
|
292
|
-
.opened="${this._colorEditing}"
|
|
293
|
-
@color-selected="${this.__onColorSelected}"
|
|
294
|
-
@opened-changed="${this.__onColorEditingChanged}"
|
|
295
|
-
></vaadin-rich-text-editor-popup>
|
|
296
|
-
|
|
297
|
-
<vaadin-rich-text-editor-popup
|
|
298
|
-
id="backgroundPopup"
|
|
299
|
-
.colors="${this.colorOptions}"
|
|
300
|
-
.opened="${this._backgroundEditing}"
|
|
301
|
-
@color-selected="${this.__onBackgroundSelected}"
|
|
302
|
-
@opened-changed="${this.__onBackgroundEditingChanged}"
|
|
303
|
-
></vaadin-rich-text-editor-popup>
|
|
304
|
-
`;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
/** @private */
|
|
308
|
-
__onBackgroundEditingChanged(event) {
|
|
309
|
-
this._backgroundEditing = event.detail.value;
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
/** @private */
|
|
313
|
-
__onColorEditingChanged(event) {
|
|
314
|
-
this._colorEditing = event.detail.value;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
/** @private */
|
|
318
|
-
_onLinkEditingChanged(event) {
|
|
319
|
-
this._linkEditing = event.detail.value;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
/** @private */
|
|
323
|
-
_onLinkUrlChanged(event) {
|
|
324
|
-
this._linkUrl = event.detail.value;
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
defineCustomElement(RichTextEditor);
|
|
329
|
-
|
|
330
|
-
export { RichTextEditor };
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import '@vaadin/button/theme/lumo/vaadin-button-styles.js';
|
|
2
|
-
import '@vaadin/confirm-dialog/theme/lumo/vaadin-confirm-dialog-styles.js';
|
|
3
|
-
import '@vaadin/text-field/theme/lumo/vaadin-text-field-styles.js';
|
|
4
|
-
import '@vaadin/tooltip/theme/lumo/vaadin-tooltip-styles.js';
|
|
5
|
-
import './vaadin-rich-text-editor-styles.js';
|
|
6
|
-
import '../../src/vaadin-lit-rich-text-editor.js';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import '@vaadin/button/theme/lumo/vaadin-button-styles.js';
|
|
2
|
-
import '@vaadin/confirm-dialog/theme/lumo/vaadin-confirm-dialog-styles.js';
|
|
3
|
-
import '@vaadin/text-field/theme/lumo/vaadin-text-field-styles.js';
|
|
4
|
-
import '@vaadin/tooltip/theme/lumo/vaadin-tooltip-styles.js';
|
|
5
|
-
import './vaadin-rich-text-editor-styles.js';
|
|
6
|
-
import '../../src/vaadin-lit-rich-text-editor.js';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import '@vaadin/button/theme/material/vaadin-button-styles.js';
|
|
2
|
-
import '@vaadin/confirm-dialog/theme/material/vaadin-confirm-dialog-styles.js';
|
|
3
|
-
import '@vaadin/text-field/theme/material/vaadin-text-field-styles.js';
|
|
4
|
-
import '@vaadin/tooltip/theme/material/vaadin-tooltip-styles.js';
|
|
5
|
-
import './vaadin-rich-text-editor-styles.js';
|
|
6
|
-
import '../../src/vaadin-lit-rich-text-editor.js';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import '@vaadin/button/theme/material/vaadin-button-styles.js';
|
|
2
|
-
import '@vaadin/confirm-dialog/theme/material/vaadin-confirm-dialog-styles.js';
|
|
3
|
-
import '@vaadin/text-field/theme/material/vaadin-text-field-styles.js';
|
|
4
|
-
import '@vaadin/tooltip/theme/material/vaadin-tooltip-styles.js';
|
|
5
|
-
import './vaadin-rich-text-editor-styles.js';
|
|
6
|
-
import '../../src/vaadin-lit-rich-text-editor.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import '@vaadin/vaadin-material-styles/color.js';
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import '@vaadin/vaadin-material-styles/color.js';
|
|
2
|
-
import { overlay } from '@vaadin/vaadin-material-styles/mixins/overlay.js';
|
|
3
|
-
import { typography } from '@vaadin/vaadin-material-styles/typography.js';
|
|
4
|
-
import { css, registerStyles } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
5
|
-
|
|
6
|
-
const popupOverlay = css`
|
|
7
|
-
[part='overlay'] {
|
|
8
|
-
margin: 0.25rem 0;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
[part='content'] {
|
|
12
|
-
padding: 0.25rem;
|
|
13
|
-
max-width: calc(7 * (var(--_button-size) + var(--_button-margin) * 2));
|
|
14
|
-
display: flex;
|
|
15
|
-
flex-wrap: wrap;
|
|
16
|
-
justify-content: center;
|
|
17
|
-
--_button-size: 1.25rem;
|
|
18
|
-
--_button-margin: 3px;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
[part='content'] ::slotted(button) {
|
|
22
|
-
border: none;
|
|
23
|
-
width: var(--_button-size);
|
|
24
|
-
height: var(--_button-size);
|
|
25
|
-
margin: var(--_button-margin);
|
|
26
|
-
}
|
|
27
|
-
`;
|
|
28
|
-
|
|
29
|
-
registerStyles('vaadin-rich-text-editor-popup-overlay', [overlay, popupOverlay], {
|
|
30
|
-
moduleId: 'material-rich-text-editor-popup-overlay',
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
const richTextEditor = css`
|
|
34
|
-
:host {
|
|
35
|
-
background-color: var(--material-background-color);
|
|
36
|
-
min-height: 288px;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
[part='toolbar'] {
|
|
40
|
-
background-color: var(--material-secondary-background-color);
|
|
41
|
-
padding: 0;
|
|
42
|
-
border: 0;
|
|
43
|
-
overflow: hidden;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
[part~='toolbar-group'] {
|
|
47
|
-
margin: 8px 0;
|
|
48
|
-
padding: 0 8px;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
[part~='toolbar-group'] + [part~='toolbar-group'] {
|
|
52
|
-
box-shadow: -1px 0 0 0 rgba(0, 0, 0, 0.1);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
[part~='toolbar-button'] {
|
|
56
|
-
border-radius: 3px;
|
|
57
|
-
color: var(--material-secondary-text-color);
|
|
58
|
-
font-family: 'vaadin-rte-icons', var(--material-font-family);
|
|
59
|
-
font-weight: 600;
|
|
60
|
-
margin: -4px 2px;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
[part~='toolbar-button']:hover {
|
|
64
|
-
background-color: transparent;
|
|
65
|
-
color: inherit;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
[part~='toolbar-button'][aria-expanded='true'] {
|
|
69
|
-
outline: -webkit-focus-ring-color auto 1px;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
[part~='toolbar-button'][on] {
|
|
73
|
-
background-color: rgba(0, 0, 0, 0.1);
|
|
74
|
-
color: inherit;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
@media (hover: none) {
|
|
78
|
-
[part~='toolbar-button']:hover {
|
|
79
|
-
color: var(--material-secondary-text-color);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/* SVG icons */
|
|
84
|
-
[part~='toolbar-button-undo']::before,
|
|
85
|
-
[part~='toolbar-button-redo']::before,
|
|
86
|
-
[part~='toolbar-button-list-ordered']::before,
|
|
87
|
-
[part~='toolbar-button-list-bullet']::before,
|
|
88
|
-
[part~='toolbar-button-align-left']::before,
|
|
89
|
-
[part~='toolbar-button-align-center']::before,
|
|
90
|
-
[part~='toolbar-button-align-right']::before,
|
|
91
|
-
[part~='toolbar-button-image']::before,
|
|
92
|
-
[part~='toolbar-button-link']::before,
|
|
93
|
-
[part~='toolbar-button-clean']::before {
|
|
94
|
-
font-size: 24px;
|
|
95
|
-
font-weight: 400;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/* Text icons */
|
|
99
|
-
[part~='toolbar-button-bold']::before,
|
|
100
|
-
[part~='toolbar-button-italic']::before,
|
|
101
|
-
[part~='toolbar-button-underline']::before,
|
|
102
|
-
[part~='toolbar-button-strike']::before {
|
|
103
|
-
font-size: 20px;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
[part~='toolbar-button-background']::before {
|
|
107
|
-
background-color: var(--material-secondary-background-color);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
[part~='toolbar-button-background']::after {
|
|
111
|
-
inset: 0.25rem;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/* TODO unsupported selector */
|
|
115
|
-
[part='content'] > .ql-editor {
|
|
116
|
-
padding: 0 16px;
|
|
117
|
-
line-height: inherit;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/* Theme variants */
|
|
121
|
-
:host(:not([theme~='no-border'])) {
|
|
122
|
-
border: 1px solid rgba(0, 0, 0, 0.12);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
:host(:not([theme~='no-border']):not([readonly])) [part='content'] {
|
|
126
|
-
border-top: 1px solid rgba(0, 0, 0, 0.12);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/* Content */
|
|
130
|
-
b,
|
|
131
|
-
strong {
|
|
132
|
-
font-weight: 600;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
code,
|
|
136
|
-
pre {
|
|
137
|
-
background-color: var(--material-secondary-background-color);
|
|
138
|
-
}
|
|
139
|
-
`;
|
|
140
|
-
|
|
141
|
-
registerStyles('vaadin-rich-text-editor', [typography, richTextEditor], {
|
|
142
|
-
moduleId: 'material-rich-text-editor',
|
|
143
|
-
});
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import '@vaadin/button/theme/material/vaadin-button.js';
|
|
2
|
-
import '@vaadin/confirm-dialog/theme/material/vaadin-confirm-dialog.js';
|
|
3
|
-
import '@vaadin/text-field/theme/material/vaadin-text-field.js';
|
|
4
|
-
import '@vaadin/tooltip/theme/material/vaadin-tooltip.js';
|
|
5
|
-
import './vaadin-rich-text-editor-styles.js';
|
|
6
|
-
import '../../src/vaadin-rich-text-editor.js';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import '@vaadin/button/theme/material/vaadin-button.js';
|
|
2
|
-
import '@vaadin/confirm-dialog/theme/material/vaadin-confirm-dialog.js';
|
|
3
|
-
import '@vaadin/text-field/theme/material/vaadin-text-field.js';
|
|
4
|
-
import '@vaadin/tooltip/theme/material/vaadin-tooltip.js';
|
|
5
|
-
import './vaadin-rich-text-editor-styles.js';
|
|
6
|
-
import '../../src/vaadin-rich-text-editor.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './src/vaadin-rich-text-editor.js';
|