@worktile/theia 2.3.3 → 2.4.2
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/bundles/worktile-theia.umd.js +1087 -997
- package/bundles/worktile-theia.umd.js.map +1 -1
- package/components/column-resize/column-resize.directive.d.ts +2 -2
- package/components/column-resize/column-resize.scss +6 -0
- package/components/column-resize/event-dispatcher.d.ts +7 -1
- package/components/column-resize/resize-ref.d.ts +3 -0
- package/constants/auto-format-rules.d.ts +1 -1
- package/constants/default.d.ts +0 -1
- package/custom-types.d.ts +2 -1
- package/editor.module.d.ts +45 -43
- package/esm2015/components/column-resize/column-resize.directive.js +26 -33
- package/esm2015/components/column-resize/event-dispatcher.js +8 -1
- package/esm2015/components/column-resize/overlay-handle.component.js +3 -3
- package/esm2015/components/column-resize/resize-ref.js +4 -1
- package/esm2015/constants/auto-format-rules.js +3 -2
- package/esm2015/constants/default.js +1 -1
- package/esm2015/custom-types.js +1 -1
- package/esm2015/editor.component.js +3 -2
- package/esm2015/editor.module.js +7 -6
- package/esm2015/interfaces/auto-format.js +1 -1
- package/esm2015/interfaces/editor.js +1 -1
- package/esm2015/plugins/autoformat/autoformat.plugin.js +23 -6
- package/esm2015/plugins/index.js +2 -3
- package/esm2015/plugins/inline-code/inline-code.component.js +7 -7
- package/esm2015/plugins/link/link.component.js +11 -24
- package/esm2015/plugins/link/link.plugin.js +3 -4
- package/esm2015/plugins/table/components/insert-mark/insert-mark.component.js +7 -2
- package/esm2015/plugins/table/components/table.component.js +10 -4
- package/esm2015/plugins/table/components/td/td.component.js +59 -37
- package/esm2015/plugins/table/components/toolbar/table-options.component.js +90 -0
- package/esm2015/plugins/table/components/toolbar/table-toolbar.component.js +26 -7
- package/esm2015/plugins/table/table.service.js +2 -2
- package/esm2015/plugins/table/table.store.js +13 -3
- package/esm2015/plugins/table/table.types.js +1 -1
- package/esm2015/plugins/todo-item/todo-item.component.js +3 -3
- package/esm2015/services/table-contextmenu.service.js +1 -1
- package/esm2015/utils/dom.js +2 -42
- package/fesm2015/worktile-theia.js +1039 -927
- package/fesm2015/worktile-theia.js.map +1 -1
- package/interfaces/auto-format.d.ts +1 -0
- package/interfaces/editor.d.ts +3 -0
- package/package.json +1 -1
- package/plugins/autoformat/autoformat.plugin.d.ts +1 -2
- package/plugins/link/link.component.d.ts +2 -8
- package/plugins/link/link.component.scss +0 -2
- package/plugins/table/components/table.component.scss +142 -105
- package/plugins/table/components/td/td.component.d.ts +3 -2
- package/plugins/table/components/toolbar/table-options.component.d.ts +20 -0
- package/plugins/table/components/toolbar/table-toolbar.component.d.ts +4 -2
- package/plugins/table/table.store.d.ts +3 -1
- package/plugins/table/table.types.d.ts +10 -0
- package/styles/editor.scss +6 -1
- package/utils/dom.d.ts +1 -5
|
@@ -31,6 +31,7 @@ export interface AutoFormatRule {
|
|
|
31
31
|
* - inline – insert mark between markups. Should be used with `between`.
|
|
32
32
|
*/
|
|
33
33
|
mode?: 'block' | 'inline';
|
|
34
|
+
key?: string;
|
|
34
35
|
/**
|
|
35
36
|
* When using `inline` mode – if false, do not format when the string can be trimmed.
|
|
36
37
|
*/
|
package/interfaces/editor.d.ts
CHANGED
|
@@ -5,12 +5,14 @@ import { ElementOptionsInfo } from './valid-children-types';
|
|
|
5
5
|
import { Predicate } from '../utils/match';
|
|
6
6
|
import { ToolbarOption } from './toolbar';
|
|
7
7
|
import { FontSizes } from '../constants/node-types';
|
|
8
|
+
import { AutoFormatRule } from './auto-format';
|
|
8
9
|
export interface TheEditor extends AngularEditor, HistoryEditor {
|
|
9
10
|
renderElement: (element: Element) => ViewType;
|
|
10
11
|
renderLeaf: (text: Text) => ViewType;
|
|
11
12
|
insertElement: (element: Element) => void;
|
|
12
13
|
isContainer: (element: Element) => boolean;
|
|
13
14
|
extraElementOptions: ElementOptionsInfo[];
|
|
15
|
+
extraAutoFormatRules: AutoFormatRule[];
|
|
14
16
|
disabled: boolean;
|
|
15
17
|
[key: string]: any;
|
|
16
18
|
}
|
|
@@ -81,6 +83,7 @@ export interface TheOptions {
|
|
|
81
83
|
toolbar?: ToolbarOption;
|
|
82
84
|
disablePlugins?: string[];
|
|
83
85
|
extraElementOptions?: ElementOptionsInfo[];
|
|
86
|
+
extraAutoFormatRules?: AutoFormatRule[];
|
|
84
87
|
}
|
|
85
88
|
export declare type NodeMatch<T = Node> = Predicate<T>;
|
|
86
89
|
export interface MatchOptions<T = Node> {
|
package/package.json
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const withAutoFormat: ({ rules }: WithAutoFormatOptions) => <T extends import("@worktile/theia").TheEditor>(editor: T) => T;
|
|
1
|
+
export declare const withAutoFormat: () => <T extends import("@worktile/theia").TheEditor>(editor: T) => T;
|
|
@@ -5,7 +5,6 @@ import { Editor } from 'slate';
|
|
|
5
5
|
import { LinkElement } from '../../custom-types';
|
|
6
6
|
import { TheBaseElementComponent } from '../../interfaces';
|
|
7
7
|
import { LinkTags } from './link.types';
|
|
8
|
-
import { ThyClickDispatcher } from 'ngx-tethys';
|
|
9
8
|
import { SlateElementContext } from 'slate-angular';
|
|
10
9
|
import * as i0 from "@angular/core";
|
|
11
10
|
export declare class TheBaseLinkComponent extends TheBaseElementComponent<LinkElement, Editor> implements OnInit, OnDestroy {
|
|
@@ -14,12 +13,11 @@ export declare class TheBaseLinkComponent extends TheBaseElementComponent<LinkEl
|
|
|
14
13
|
private thyPopover;
|
|
15
14
|
private overlay;
|
|
16
15
|
private viewContainerRef;
|
|
17
|
-
private thyClickDispatcher;
|
|
18
16
|
thyPopoverHoverRef: ThyPopoverRef<any>;
|
|
19
17
|
thyPopoverEditRef: ThyPopoverRef<any>;
|
|
20
18
|
get linkHoverOpened(): boolean;
|
|
21
19
|
get linkEditOpened(): boolean;
|
|
22
|
-
constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, thyPopover: ThyPopover, overlay: Overlay, viewContainerRef: ViewContainerRef
|
|
20
|
+
constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, thyPopover: ThyPopover, overlay: Overlay, viewContainerRef: ViewContainerRef);
|
|
23
21
|
ngOnInit(): void;
|
|
24
22
|
closeHoverPopover(): void;
|
|
25
23
|
beforeContextChange: (value: SlateElementContext) => void;
|
|
@@ -37,9 +35,5 @@ export declare class TheBaseLinkComponent extends TheBaseElementComponent<LinkEl
|
|
|
37
35
|
export declare class TheLinkComponent extends TheBaseLinkComponent {
|
|
38
36
|
inlineChromiumBugfix: string;
|
|
39
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<TheLinkComponent, never>;
|
|
40
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TheLinkComponent, "
|
|
41
|
-
}
|
|
42
|
-
export declare class TheReadonlyLinkComponent extends TheBaseLinkComponent {
|
|
43
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TheReadonlyLinkComponent, never>;
|
|
44
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TheReadonlyLinkComponent, "a[theLink]", never, {}, {}, never, never>;
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TheLinkComponent, "a[theLink]", never, {}, {}, never, never>;
|
|
45
39
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@use
|
|
1
|
+
@use 'sass:math';
|
|
2
2
|
|
|
3
3
|
$expand-size: 12px;
|
|
4
4
|
$controls-border: 1px solid $gray-300;
|
|
@@ -17,26 +17,23 @@ $control-corner-width: 12px;
|
|
|
17
17
|
border-spacing: 0;
|
|
18
18
|
word-wrap: break-word;
|
|
19
19
|
box-sizing: border-box;
|
|
20
|
-
border-collapse:
|
|
20
|
+
border-collapse: unset;
|
|
21
21
|
margin: 13px 8px 0 0;
|
|
22
|
-
border: $controls-border;
|
|
23
|
-
border-top: none;
|
|
22
|
+
border-bottom: $controls-border;
|
|
24
23
|
table-layout: fixed;
|
|
25
24
|
overflow: visible;
|
|
26
25
|
margin-left: 0;
|
|
27
26
|
margin-right: 0;
|
|
28
|
-
width: 100
|
|
27
|
+
width: calc(100% - 2px);
|
|
29
28
|
|
|
30
29
|
td {
|
|
31
30
|
word-wrap: break-word;
|
|
32
|
-
border: $controls-border;
|
|
33
|
-
border-
|
|
31
|
+
border-top: $controls-border;
|
|
32
|
+
border-right: $controls-border;
|
|
34
33
|
vertical-align: top;
|
|
35
34
|
padding: 8px;
|
|
36
35
|
position: relative;
|
|
37
36
|
cursor: text;
|
|
38
|
-
z-index: 12;
|
|
39
|
-
|
|
40
37
|
&::after {
|
|
41
38
|
display: block;
|
|
42
39
|
position: absolute;
|
|
@@ -77,22 +74,20 @@ $control-corner-width: 12px;
|
|
|
77
74
|
}
|
|
78
75
|
}
|
|
79
76
|
}
|
|
77
|
+
.focused-cell,.selected-cell{
|
|
78
|
+
z-index: 10;
|
|
79
|
+
}
|
|
80
80
|
tbody {
|
|
81
81
|
tr {
|
|
82
82
|
height: 41px;
|
|
83
|
+
td:first-child {
|
|
84
|
+
border-left: $controls-border;
|
|
85
|
+
}
|
|
83
86
|
}
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
89
|
}
|
|
87
90
|
|
|
88
|
-
// resolve borders not shown in Firefox
|
|
89
|
-
@-moz-document url-prefix() {
|
|
90
|
-
.slate-element-table .the-table {
|
|
91
|
-
td {
|
|
92
|
-
background-clip: padding-box;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
91
|
|
|
97
92
|
.the-table-container {
|
|
98
93
|
position: relative;
|
|
@@ -114,6 +109,7 @@ $control-corner-width: 12px;
|
|
|
114
109
|
left: -$control-width;
|
|
115
110
|
top: 23px;
|
|
116
111
|
user-select: none;
|
|
112
|
+
z-index: 1;
|
|
117
113
|
}
|
|
118
114
|
|
|
119
115
|
&.the-table-selection-hide ::selection {
|
|
@@ -122,59 +118,99 @@ $control-corner-width: 12px;
|
|
|
122
118
|
}
|
|
123
119
|
|
|
124
120
|
.the-table-with-controls {
|
|
125
|
-
|
|
126
|
-
.the-table-corner-controls,
|
|
127
121
|
.the-table-row-controls,
|
|
128
122
|
.the-table-controls-insert-wrapper {
|
|
129
123
|
display: block;
|
|
130
124
|
}
|
|
131
125
|
|
|
132
126
|
.the-table-col-controls-wrapper .the-table-col-controls {
|
|
127
|
+
background: $gray-100;
|
|
133
128
|
border-right: $controls-border;
|
|
134
129
|
border-top: $controls-border;
|
|
135
|
-
background:
|
|
136
|
-
|
|
137
|
-
&:first-child
|
|
130
|
+
background-clip: padding-box;
|
|
131
|
+
cursor: pointer;
|
|
132
|
+
&:first-child{
|
|
138
133
|
border-left: $controls-border;
|
|
139
134
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
@include controlSelected;
|
|
147
|
-
z-index: 11;
|
|
135
|
+
&:last-child {
|
|
136
|
+
.the-table-controls-insert-wrapper {
|
|
137
|
+
right: 0;
|
|
138
|
+
&:after {
|
|
139
|
+
left: 9px;
|
|
140
|
+
}
|
|
148
141
|
}
|
|
142
|
+
.the-table-controls-insert-wrapper:hover {
|
|
143
|
+
&:after {
|
|
144
|
+
left: 0;
|
|
145
|
+
}
|
|
146
|
+
.the-table-controls-insert-line[data-dot-type='column'] {
|
|
147
|
+
left: $dot-size;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
&.active, &.dangerous {
|
|
152
|
+
&::before, &::after{
|
|
153
|
+
content: '';
|
|
154
|
+
position: absolute;
|
|
155
|
+
width: 1px;
|
|
156
|
+
height: 12px;
|
|
157
|
+
background: $primary;
|
|
158
|
+
top: -1px;
|
|
159
|
+
}
|
|
160
|
+
&::before{
|
|
161
|
+
left: -1px;
|
|
162
|
+
}
|
|
163
|
+
&::after{
|
|
164
|
+
right: -1px;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
&.active {
|
|
168
|
+
@include controlSelected;
|
|
169
|
+
z-index: 11;
|
|
170
|
+
}
|
|
149
171
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
172
|
+
&.dangerous {
|
|
173
|
+
@include controlDangerous;
|
|
174
|
+
z-index: 11;
|
|
175
|
+
&::before, &::after{
|
|
176
|
+
background: $danger;
|
|
153
177
|
}
|
|
154
178
|
}
|
|
155
179
|
}
|
|
156
180
|
}
|
|
157
181
|
|
|
158
182
|
.the-table-corner-controls {
|
|
159
|
-
width:
|
|
183
|
+
width: 100%;
|
|
160
184
|
height: $control-corner-width;
|
|
161
|
-
|
|
162
|
-
|
|
185
|
+
position: relative;
|
|
186
|
+
visibility: hidden;
|
|
163
187
|
.the-table-corner-button {
|
|
164
188
|
position: absolute;
|
|
165
189
|
top: 0;
|
|
166
|
-
|
|
190
|
+
left: 0;
|
|
191
|
+
width: 100%;
|
|
167
192
|
height: $control-corner-width;
|
|
168
193
|
box-sizing: border-box;
|
|
169
194
|
border: $controls-border;
|
|
170
195
|
background: $gray-100;
|
|
171
196
|
padding: 0;
|
|
197
|
+
border-bottom: none;
|
|
198
|
+
border-right: none;
|
|
172
199
|
cursor: pointer;
|
|
173
200
|
}
|
|
174
201
|
|
|
202
|
+
.the-table-corner-controls-insert-row-marker .the-table-controls-insert-wrapper {
|
|
203
|
+
left: -$dot-size;
|
|
204
|
+
top: 2px;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.the-table-corner-controls-insert-column-marker .the-table-controls-insert-wrapper {
|
|
208
|
+
left: 2px;
|
|
209
|
+
top: -$dot-size;
|
|
210
|
+
}
|
|
211
|
+
|
|
175
212
|
&.active {
|
|
176
213
|
z-index: 1;
|
|
177
|
-
|
|
178
214
|
.the-table-corner-button {
|
|
179
215
|
@include controlSelected;
|
|
180
216
|
}
|
|
@@ -182,7 +218,6 @@ $control-corner-width: 12px;
|
|
|
182
218
|
|
|
183
219
|
&.dangerous {
|
|
184
220
|
z-index: 1;
|
|
185
|
-
|
|
186
221
|
.the-table-corner-button {
|
|
187
222
|
@include controlDangerous;
|
|
188
223
|
}
|
|
@@ -226,7 +261,6 @@ $control-corner-width: 12px;
|
|
|
226
261
|
}
|
|
227
262
|
|
|
228
263
|
&:not(.disabled) {
|
|
229
|
-
|
|
230
264
|
&:hover:after,
|
|
231
265
|
&:hover:before {
|
|
232
266
|
background-color: $white !important;
|
|
@@ -263,24 +297,11 @@ $control-corner-width: 12px;
|
|
|
263
297
|
}
|
|
264
298
|
}
|
|
265
299
|
|
|
266
|
-
.the-table-corner-controls {
|
|
267
|
-
position: relative;
|
|
268
|
-
|
|
269
|
-
.the-table-corner-controls-insert-row-marker .the-table-controls-insert-wrapper {
|
|
270
|
-
left: -$dot-size;
|
|
271
|
-
top: 2px;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
.the-table-corner-controls-insert-column-marker .the-table-controls-insert-wrapper {
|
|
275
|
-
left: 2px;
|
|
276
|
-
top: -$dot-size;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
|
|
280
300
|
.the-table-row-controls {
|
|
281
301
|
width: $control-width;
|
|
282
302
|
box-sizing: border-box;
|
|
283
303
|
display: none;
|
|
304
|
+
z-index: 11;
|
|
284
305
|
position: relative;
|
|
285
306
|
|
|
286
307
|
.the-table-row-controls-inner {
|
|
@@ -291,13 +312,12 @@ $control-corner-width: 12px;
|
|
|
291
312
|
.the-table-row-controls-button-wrap {
|
|
292
313
|
position: relative;
|
|
293
314
|
margin-top: -1px;
|
|
294
|
-
|
|
295
315
|
.the-table-controls-button {
|
|
296
316
|
display: block;
|
|
317
|
+
background-color: $gray-100;
|
|
297
318
|
box-sizing: border-box;
|
|
298
319
|
height: 42px;
|
|
299
320
|
width: $control-width;
|
|
300
|
-
background: $gray-100;
|
|
301
321
|
border: 1px solid $gray-300;
|
|
302
322
|
border-right: none;
|
|
303
323
|
padding: 0;
|
|
@@ -306,8 +326,8 @@ $control-corner-width: 12px;
|
|
|
306
326
|
|
|
307
327
|
&.active {
|
|
308
328
|
z-index: 1;
|
|
309
|
-
|
|
310
|
-
.the-table-controls-button {
|
|
329
|
+
.the-table-controls-button,
|
|
330
|
+
.the-table-numbered-controls-button {
|
|
311
331
|
@include controlSelected;
|
|
312
332
|
}
|
|
313
333
|
}
|
|
@@ -315,7 +335,8 @@ $control-corner-width: 12px;
|
|
|
315
335
|
&.dangerous {
|
|
316
336
|
z-index: 1;
|
|
317
337
|
|
|
318
|
-
.the-table-controls-button
|
|
338
|
+
.the-table-controls-button,
|
|
339
|
+
.the-table-numbered-controls-button {
|
|
319
340
|
@include controlDangerous;
|
|
320
341
|
}
|
|
321
342
|
}
|
|
@@ -361,57 +382,73 @@ $control-corner-width: 12px;
|
|
|
361
382
|
margin: 0;
|
|
362
383
|
border: 0;
|
|
363
384
|
position: relative;
|
|
385
|
+
border-top: 1px solid transparent;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
.table-options {
|
|
389
|
+
background: transparent;
|
|
390
|
+
margin-right: 5px;
|
|
391
|
+
color: $gray-600;
|
|
392
|
+
&:hover {
|
|
393
|
+
background: rgba($primary, 0.1);
|
|
394
|
+
color: $primary;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
.table-options-active {
|
|
398
|
+
background: rgba($primary, 0.1);
|
|
399
|
+
color: $primary;
|
|
400
|
+
}
|
|
401
|
+
.table-options-pannel {
|
|
402
|
+
.thy-popover-container {
|
|
403
|
+
min-width: 200px;
|
|
404
|
+
}
|
|
405
|
+
.action-menu {
|
|
406
|
+
width: 200px;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
364
409
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
content: '';
|
|
368
|
-
position: absolute;
|
|
369
|
-
top: -0.5px;
|
|
370
|
-
background: $white;
|
|
371
|
-
width: 1px;
|
|
372
|
-
height: 11px;
|
|
373
|
-
}
|
|
410
|
+
.the-numbered-column-container {
|
|
411
|
+
padding-left: 44px;
|
|
374
412
|
|
|
375
|
-
|
|
376
|
-
|
|
413
|
+
.the-table-row-controls {
|
|
414
|
+
display: block;
|
|
415
|
+
top: 0px;
|
|
416
|
+
width: 45px;
|
|
417
|
+
margin-left: 10px;
|
|
418
|
+
cursor: pointer;
|
|
419
|
+
.the-table-numbered-controls-button {
|
|
420
|
+
background-color: $gray-100;
|
|
421
|
+
border: $controls-border;
|
|
422
|
+
border-right: none;
|
|
377
423
|
}
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
.the-table-controls-insert-wrapper {
|
|
385
|
-
right: 0;
|
|
386
|
-
|
|
387
|
-
&:after {
|
|
388
|
-
left: 9px;
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
.the-table-controls-insert-wrapper:hover {
|
|
393
|
-
&:after {
|
|
394
|
-
left: 0;
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
.the-table-controls-insert-line[data-dot-type='column'] {
|
|
398
|
-
left: $dot-size;
|
|
399
|
-
}
|
|
400
|
-
}
|
|
424
|
+
}
|
|
425
|
+
.the-table-focus {
|
|
426
|
+
.the-table-row-controls {
|
|
427
|
+
width: 55px;
|
|
428
|
+
margin-left: 0;
|
|
401
429
|
}
|
|
430
|
+
.the-table-corner-controls-insert-column-marker .the-table-controls-insert-wrapper {
|
|
431
|
+
left: 46px;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
.row-number {
|
|
435
|
+
float: right;
|
|
436
|
+
width: 45px;
|
|
437
|
+
justify-content: center;
|
|
438
|
+
height: 100%;
|
|
439
|
+
margin: 0;
|
|
402
440
|
}
|
|
441
|
+
}
|
|
403
442
|
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
top: -1px;
|
|
408
|
-
right: -1px;
|
|
409
|
-
left: -1px;
|
|
410
|
-
bottom: -1px;
|
|
411
|
-
border: 1px solid $white;
|
|
412
|
-
z-index: 2;
|
|
413
|
-
cursor: pointer;
|
|
414
|
-
display: none;
|
|
415
|
-
outline: 0;
|
|
443
|
+
.safari{
|
|
444
|
+
.the-table-row-controls{
|
|
445
|
+
top: 1px;
|
|
416
446
|
}
|
|
417
447
|
}
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
.the-editor-readonly{
|
|
451
|
+
.the-table-row-controls, .the-table-col-controls{
|
|
452
|
+
cursor: default;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
@@ -4,7 +4,7 @@ import { TheTableComponent } from '../table.component';
|
|
|
4
4
|
import { TablePosition } from '../../utils/table-position';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
6
6
|
import { ColumnResizingStore } from '../../../../components/column-resize/resizing.store';
|
|
7
|
-
import { TableCellEventDispatcher } from '../../../../components/column-resize/event-dispatcher';
|
|
7
|
+
import { Position, TableCellEventDispatcher } from '../../../../components/column-resize/event-dispatcher';
|
|
8
8
|
import { ColumnResizeNotifierSource } from '../../../../components/column-resize/column-resize-notifier';
|
|
9
9
|
import { ConnectedPosition, Overlay, OverlayRef, ScrollDispatcher } from '@angular/cdk/overlay';
|
|
10
10
|
import { ResizeRef } from '../../../../components/column-resize/resize-ref';
|
|
@@ -29,7 +29,7 @@ export declare class TheTdComponent extends TheBaseElementComponent<TableCellEle
|
|
|
29
29
|
tablePosition: TablePosition;
|
|
30
30
|
tableComponent: TheTableComponent;
|
|
31
31
|
protected overlayRef?: OverlayRef;
|
|
32
|
-
hoverdDirection:
|
|
32
|
+
hoverdDirection: Position | null;
|
|
33
33
|
tableOptions: TableOptions;
|
|
34
34
|
cellInnerMinHeight: number;
|
|
35
35
|
get tableStore(): import("../../table.store").TableStore;
|
|
@@ -41,6 +41,7 @@ export declare class TheTdComponent extends TheBaseElementComponent<TableCellEle
|
|
|
41
41
|
get scrollableElementTop(): number;
|
|
42
42
|
get scrollableElementLeft(): any;
|
|
43
43
|
get isXAxisHover(): boolean;
|
|
44
|
+
get rowResizeClass(): string[];
|
|
44
45
|
dotWrapperHovered: boolean;
|
|
45
46
|
resizeRef: ResizeRef;
|
|
46
47
|
backgroundColor: string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { ThyPopoverRef } from 'ngx-tethys';
|
|
3
|
+
import { Editor } from 'slate';
|
|
4
|
+
import { TableStore } from '../../table.store';
|
|
5
|
+
import { TableDropdownOption } from '../../table.types';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class TheTableOptionsComponent implements OnInit {
|
|
8
|
+
private popoverRef;
|
|
9
|
+
tableStore: TableStore;
|
|
10
|
+
editor: Editor;
|
|
11
|
+
get table(): import("@worktile/theia").TableElement;
|
|
12
|
+
tableDropdownList: TableDropdownOption[];
|
|
13
|
+
handleDocumentMouseDown(event: MouseEvent): void;
|
|
14
|
+
constructor(popoverRef: ThyPopoverRef<TheTableOptionsComponent>);
|
|
15
|
+
ngOnInit(): void;
|
|
16
|
+
setColumnOptions(): void;
|
|
17
|
+
setTableOptions(event: MouseEvent, option: TableDropdownOption): void;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TheTableOptionsComponent, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TheTableOptionsComponent, "the-table-options", never, { "tableStore": "tableStore"; "editor": "editor"; }, {}, never, never>;
|
|
20
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OnInit, NgZone, OnDestroy } from '@angular/core';
|
|
2
|
-
import { ThyPopoverRef } from 'ngx-tethys/popover';
|
|
2
|
+
import { ThyPopover, ThyPopoverRef } from 'ngx-tethys/popover';
|
|
3
3
|
import { Editor } from 'slate';
|
|
4
4
|
import { TableStore } from '../../table.store';
|
|
5
5
|
import { TheColorSelectService } from '../../../../services/color-select.service';
|
|
@@ -8,6 +8,7 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
export declare class TheTableToolbarComponent implements OnInit, OnDestroy {
|
|
9
9
|
private ngZone;
|
|
10
10
|
private colorSelectService;
|
|
11
|
+
private thyPopover;
|
|
11
12
|
private popoverRef;
|
|
12
13
|
selectedColor: string;
|
|
13
14
|
deleteIcon: string;
|
|
@@ -17,7 +18,7 @@ export declare class TheTableToolbarComponent implements OnInit, OnDestroy {
|
|
|
17
18
|
get editor(): Editor;
|
|
18
19
|
cellMenuList: MenuEntity[];
|
|
19
20
|
get isShowSplitLine(): boolean;
|
|
20
|
-
constructor(ngZone: NgZone, colorSelectService: TheColorSelectService, popoverRef: ThyPopoverRef<TheTableToolbarComponent>);
|
|
21
|
+
constructor(ngZone: NgZone, colorSelectService: TheColorSelectService, thyPopover: ThyPopover, popoverRef: ThyPopoverRef<TheTableToolbarComponent>);
|
|
21
22
|
ngOnInit(): void;
|
|
22
23
|
ngOnDestroy(): void;
|
|
23
24
|
getIconName(key: string): void;
|
|
@@ -26,6 +27,7 @@ export declare class TheTableToolbarComponent implements OnInit, OnDestroy {
|
|
|
26
27
|
onEnterDelete(event: MouseEvent): void;
|
|
27
28
|
onLeaveDelete(event: MouseEvent): void;
|
|
28
29
|
openSelectColor(event: MouseEvent): void;
|
|
30
|
+
openTableOptionMenu(event: Event): void;
|
|
29
31
|
static ɵfac: i0.ɵɵFactoryDeclaration<TheTableToolbarComponent, never>;
|
|
30
32
|
static ɵcmp: i0.ɵɵComponentDeclaration<TheTableToolbarComponent, "the-table-toolbar", never, { "tableStore": "tableStore"; "isActiveSelect": "isActiveSelect"; }, {}, never, never>;
|
|
31
33
|
}
|
|
@@ -2,7 +2,7 @@ import { Observable } from 'rxjs';
|
|
|
2
2
|
import { Editor } from 'slate';
|
|
3
3
|
import { TablePosition } from './utils';
|
|
4
4
|
import { ColorType } from '../../constants/color-select';
|
|
5
|
-
import { SelectedCell } from './table.types';
|
|
5
|
+
import { SelectedCell, TheTableOptions } from './table.types';
|
|
6
6
|
import { TableElement } from '../../custom-types';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class TableStore {
|
|
@@ -27,6 +27,7 @@ export declare class TableStore {
|
|
|
27
27
|
get selectedCells(): SelectedCell[];
|
|
28
28
|
get dangerousCells(): SelectedCell[];
|
|
29
29
|
constructor();
|
|
30
|
+
getTableEntry(editor: Editor): import("slate").NodeEntry<TableElement>;
|
|
30
31
|
getTablePath(editor: Editor): import("slate").Path;
|
|
31
32
|
getTablePosition(editor: Editor): TablePosition;
|
|
32
33
|
setSelectedCells(cells: SelectedCell[], pos: TablePosition): void;
|
|
@@ -60,6 +61,7 @@ export declare class TableStore {
|
|
|
60
61
|
getSelectedCellBackgroundColor(): string;
|
|
61
62
|
clearSelectedCellsContent(): void;
|
|
62
63
|
mergeCell(editor: Editor): void;
|
|
64
|
+
setTableOptions(editor: Editor, options: TheTableOptions): void;
|
|
63
65
|
removeDangerousColumns(): void;
|
|
64
66
|
removeDangerousRows(): void;
|
|
65
67
|
createTablePosition(): TablePosition;
|
|
@@ -16,6 +16,11 @@ export declare const BASE_CELL_INNER_HEIGHT: number;
|
|
|
16
16
|
export interface TheTableColumn {
|
|
17
17
|
width: number;
|
|
18
18
|
}
|
|
19
|
+
export interface TheTableOptions {
|
|
20
|
+
headerRow?: boolean;
|
|
21
|
+
headerColumn?: boolean;
|
|
22
|
+
numberedColumn?: boolean;
|
|
23
|
+
}
|
|
19
24
|
export interface MenuEntity {
|
|
20
25
|
icon: string;
|
|
21
26
|
name: string;
|
|
@@ -32,6 +37,11 @@ export interface SelectedCell {
|
|
|
32
37
|
row: number;
|
|
33
38
|
col: number;
|
|
34
39
|
}
|
|
40
|
+
export interface TableDropdownOption {
|
|
41
|
+
name: string;
|
|
42
|
+
key: string;
|
|
43
|
+
isActive?: boolean;
|
|
44
|
+
}
|
|
35
45
|
export interface TableOptionsFormat {
|
|
36
46
|
typeTable?: ElementKinds.table;
|
|
37
47
|
typeRow?: ElementKinds.tableRow;
|
package/styles/editor.scss
CHANGED
|
@@ -147,6 +147,11 @@ $thy-icon-nav-link-margin-right: 5px;
|
|
|
147
147
|
white-space: nowrap;
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
+
.the-break-char {
|
|
151
|
+
font-size: 0;
|
|
152
|
+
line-height: 0;
|
|
153
|
+
}
|
|
154
|
+
|
|
150
155
|
// list: fontSize, li marginLeft, multiDigit li marginLeft
|
|
151
156
|
@each $size, $liMl, $liMultiDigitMl in (12, 13, 14, 15, 16, 18, 20, (24 null 35px), (28 null 42px), (32 33px 50px), (40 40px 62px), (48 50px 78px)) {
|
|
152
157
|
[the-font-size="#{$size}"] {
|
|
@@ -193,7 +198,7 @@ $thy-icon-nav-link-margin-right: 5px;
|
|
|
193
198
|
// list
|
|
194
199
|
ol[the-level="#{$i}"],
|
|
195
200
|
ul[the-level="#{$i}"] {
|
|
196
|
-
|
|
201
|
+
padding-left: $i * 2em;
|
|
197
202
|
}
|
|
198
203
|
.the-check-item[the-level="#{$i}"] {
|
|
199
204
|
padding-left: calc(#{$i * 2em} + 2em);
|
package/utils/dom.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { Element
|
|
1
|
+
import { Element } from 'slate';
|
|
2
2
|
import { DOMElement } from 'slate-angular';
|
|
3
|
-
import { TheEditor } from '../interfaces/editor';
|
|
4
|
-
import { NodeLevel } from '../constants';
|
|
5
3
|
/** Converts CSS pixel values to numbers, eg "123px" to 123. Returns NaN for non pixel values. */
|
|
6
4
|
export declare function coercePixelsFromCssValue(cssValue: string): number;
|
|
7
5
|
export declare function getElementWidth(element: HTMLElement): number;
|
|
@@ -10,5 +8,3 @@ export declare function getColsTotalWidth(cols: HTMLTableColElement[]): number;
|
|
|
10
8
|
export declare function getRowsTotalHeight(rows: HTMLTableRowElement[]): number;
|
|
11
9
|
export declare function useElementStyle(el: HTMLElement, element: Element): void;
|
|
12
10
|
export declare function getElementClassByPrefix(el: DOMElement, prefix: string): any;
|
|
13
|
-
export declare function findRelativeElementByPoint(editor: TheEditor, x: number, y: number, mode?: NodeLevel): DOMElement;
|
|
14
|
-
export declare function findNodeEntryByPoint(editor: TheEditor, x: number, y: number, mode?: NodeLevel): NodeEntry<Element> | null;
|