@ecodev/natural-editor 42.0.0 → 42.3.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 (51) hide show
  1. package/esm2020/lib/class-dialog/class-dialog.component.mjs +37 -0
  2. package/esm2020/lib/color-dialog/color-dialog.component.mjs +184 -0
  3. package/esm2020/lib/custom-css/custom-css.directive.mjs +78 -0
  4. package/esm2020/lib/editor/editor.component.mjs +8 -8
  5. package/esm2020/lib/editor.module.mjs +24 -16
  6. package/esm2020/lib/link-dialog/link-dialog.component.mjs +3 -3
  7. package/esm2020/lib/utils/image.mjs +3 -3
  8. package/esm2020/lib/utils/items/cell-background-color-item.mjs +55 -0
  9. package/esm2020/lib/utils/items/class-item.mjs +86 -0
  10. package/esm2020/lib/utils/items/horizontal-rule-item.mjs +24 -0
  11. package/esm2020/lib/utils/items/item.mjs +39 -0
  12. package/esm2020/lib/utils/items/link-item.mjs +40 -0
  13. package/esm2020/lib/utils/items/table-item.mjs +43 -0
  14. package/esm2020/lib/utils/items/text-align-item.mjs +78 -0
  15. package/esm2020/lib/utils/items/utils.mjs +41 -0
  16. package/esm2020/lib/utils/items/wrap-list-item.mjs +6 -0
  17. package/esm2020/lib/utils/menu.mjs +45 -128
  18. package/esm2020/lib/utils/schema/paragraph-with-alignment.mjs +50 -0
  19. package/esm2020/lib/utils/schema/schema.mjs +51 -0
  20. package/esm2020/lib/utils/schema/table.mjs +113 -0
  21. package/esm2020/public-api.mjs +2 -1
  22. package/fesm2015/ecodev-natural-editor.mjs +754 -194
  23. package/fesm2015/ecodev-natural-editor.mjs.map +1 -1
  24. package/fesm2020/ecodev-natural-editor.mjs +748 -196
  25. package/fesm2020/ecodev-natural-editor.mjs.map +1 -1
  26. package/lib/class-dialog/class-dialog.component.d.ts +24 -0
  27. package/lib/color-dialog/color-dialog.component.d.ts +26 -0
  28. package/lib/custom-css/custom-css.directive.d.ts +29 -0
  29. package/lib/editor.module.d.ts +19 -16
  30. package/lib/utils/items/cell-background-color-item.d.ts +5 -0
  31. package/lib/utils/items/class-item.d.ts +6 -0
  32. package/lib/utils/items/horizontal-rule-item.d.ts +5 -0
  33. package/lib/utils/{item.d.ts → items/item.d.ts} +0 -0
  34. package/lib/utils/items/link-item.d.ts +6 -0
  35. package/lib/utils/items/table-item.d.ts +4 -0
  36. package/lib/utils/{text-align-item.d.ts → items/text-align-item.d.ts} +0 -0
  37. package/lib/utils/items/utils.d.ts +18 -0
  38. package/lib/utils/items/wrap-list-item.d.ts +3 -0
  39. package/lib/utils/menu.d.ts +2 -2
  40. package/lib/utils/schema/paragraph-with-alignment.d.ts +8 -0
  41. package/lib/utils/{schema.d.ts → schema/schema.d.ts} +0 -0
  42. package/lib/utils/schema/table.d.ts +9 -0
  43. package/package.json +1 -1
  44. package/public-api.d.ts +1 -0
  45. package/esm2020/lib/utils/item.mjs +0 -39
  46. package/esm2020/lib/utils/paragraph-with-alignment.mjs +0 -43
  47. package/esm2020/lib/utils/schema.mjs +0 -51
  48. package/esm2020/lib/utils/table.mjs +0 -37
  49. package/esm2020/lib/utils/text-align-item.mjs +0 -81
  50. package/lib/utils/paragraph-with-alignment.d.ts +0 -2
  51. package/lib/utils/table.d.ts +0 -8
@@ -0,0 +1,29 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Prefix all CSS selectors with the given selector
5
+ *
6
+ * This is meant to be relatively simple and might not cover advanced CSS syntax
7
+ */
8
+ export declare function prefixCss(prefix: string, css: string): string;
9
+ /**
10
+ * Inject custom CSS into component and scope the CSS only to this component
11
+ *
12
+ * Usage :
13
+ *
14
+ * ```html
15
+ * <div [naturalCustomCss]=".my-class {background: red}">
16
+ * <p class="my-class">foo bar</p>
17
+ * </div>
18
+ * ```
19
+ */
20
+ export declare class NaturalCustomCssDirective implements OnDestroy {
21
+ private readonly document;
22
+ private style;
23
+ private readonly id;
24
+ set naturalCustomCss(value: string | undefined);
25
+ constructor(document: Document);
26
+ ngOnDestroy(): void;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<NaturalCustomCssDirective, never>;
28
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NaturalCustomCssDirective, "[naturalCustomCss]", never, { "naturalCustomCss": "naturalCustomCss"; }, {}, never>;
29
+ }
@@ -1,21 +1,24 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./editor/editor.component";
3
- import * as i2 from "./link-dialog/link-dialog.component";
4
- import * as i3 from "@angular/common";
5
- import * as i4 from "@angular/material/button";
6
- import * as i5 from "@angular/material/button-toggle";
7
- import * as i6 from "@angular/material/dialog";
8
- import * as i7 from "@angular/material/form-field";
9
- import * as i8 from "@angular/material/icon";
10
- import * as i9 from "@angular/material/input";
11
- import * as i10 from "@angular/material/menu";
12
- import * as i11 from "@angular/material/toolbar";
13
- import * as i12 from "@angular/material/tooltip";
14
- import * as i13 from "@angular/forms";
15
- import * as i14 from "@ecodev/natural";
16
- import * as i15 from "@angular/material/divider";
2
+ import * as i1 from "./class-dialog/class-dialog.component";
3
+ import * as i2 from "./color-dialog/color-dialog.component";
4
+ import * as i3 from "./link-dialog/link-dialog.component";
5
+ import * as i4 from "./editor/editor.component";
6
+ import * as i5 from "./custom-css/custom-css.directive";
7
+ import * as i6 from "@angular/common";
8
+ import * as i7 from "@angular/material/button";
9
+ import * as i8 from "@angular/material/button-toggle";
10
+ import * as i9 from "@angular/material/dialog";
11
+ import * as i10 from "@angular/material/divider";
12
+ import * as i11 from "@angular/material/form-field";
13
+ import * as i12 from "@angular/material/icon";
14
+ import * as i13 from "@angular/material/input";
15
+ import * as i14 from "@angular/material/menu";
16
+ import * as i15 from "@angular/material/toolbar";
17
+ import * as i16 from "@angular/material/tooltip";
18
+ import * as i17 from "@ecodev/natural";
19
+ import * as i18 from "@angular/forms";
17
20
  export declare class NaturalEditorModule {
18
21
  static ɵfac: i0.ɵɵFactoryDeclaration<NaturalEditorModule, never>;
19
- static ɵmod: i0.ɵɵNgModuleDeclaration<NaturalEditorModule, [typeof i1.NaturalEditorComponent, typeof i2.LinkDialogComponent], [typeof i3.CommonModule, typeof i4.MatButtonModule, typeof i5.MatButtonToggleModule, typeof i6.MatDialogModule, typeof i7.MatFormFieldModule, typeof i8.MatIconModule, typeof i9.MatInputModule, typeof i10.MatMenuModule, typeof i11.MatToolbarModule, typeof i12.MatTooltipModule, typeof i13.ReactiveFormsModule, typeof i14.NaturalFileModule, typeof i15.MatDividerModule], [typeof i3.CommonModule, typeof i4.MatButtonModule, typeof i5.MatButtonToggleModule, typeof i6.MatDialogModule, typeof i7.MatFormFieldModule, typeof i8.MatIconModule, typeof i9.MatInputModule, typeof i10.MatMenuModule, typeof i11.MatToolbarModule, typeof i12.MatTooltipModule, typeof i13.ReactiveFormsModule, typeof i14.NaturalFileModule, typeof i15.MatDividerModule, typeof i1.NaturalEditorComponent]>;
22
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NaturalEditorModule, [typeof i1.ClassDialogComponent, typeof i2.ColorDialogComponent, typeof i3.LinkDialogComponent, typeof i4.NaturalEditorComponent, typeof i5.NaturalCustomCssDirective], [typeof i6.CommonModule, typeof i7.MatButtonModule, typeof i8.MatButtonToggleModule, typeof i9.MatDialogModule, typeof i10.MatDividerModule, typeof i11.MatFormFieldModule, typeof i12.MatIconModule, typeof i13.MatInputModule, typeof i14.MatMenuModule, typeof i15.MatToolbarModule, typeof i16.MatTooltipModule, typeof i17.NaturalFileModule, typeof i17.NaturalIconModule, typeof i18.ReactiveFormsModule], [typeof i6.CommonModule, typeof i7.MatButtonModule, typeof i8.MatButtonToggleModule, typeof i9.MatDialogModule, typeof i10.MatDividerModule, typeof i11.MatFormFieldModule, typeof i12.MatIconModule, typeof i13.MatInputModule, typeof i14.MatMenuModule, typeof i15.MatToolbarModule, typeof i16.MatTooltipModule, typeof i17.NaturalFileModule, typeof i17.NaturalIconModule, typeof i18.ReactiveFormsModule, typeof i4.NaturalEditorComponent, typeof i5.NaturalCustomCssDirective]>;
20
23
  static ɵinj: i0.ɵɵInjectorDeclaration<NaturalEditorModule>;
21
24
  }
@@ -0,0 +1,5 @@
1
+ import { Item } from './item';
2
+ import { MatDialog } from '@angular/material/dialog';
3
+ export declare class CellBackgroundColorItem extends Item {
4
+ constructor(dialog: MatDialog);
5
+ }
@@ -0,0 +1,6 @@
1
+ import { NodeType } from 'prosemirror-model';
2
+ import { Item } from './item';
3
+ import { MatDialog } from '@angular/material/dialog';
4
+ export declare class ClassItem extends Item {
5
+ constructor(dialog: MatDialog, nodeType: NodeType);
6
+ }
@@ -0,0 +1,5 @@
1
+ import { Item } from './item';
2
+ import { NodeType } from 'prosemirror-model';
3
+ export declare class HorizontalRuleItem extends Item {
4
+ constructor(hr: NodeType);
5
+ }
File without changes
@@ -0,0 +1,6 @@
1
+ import { Item } from './item';
2
+ import { MarkType } from 'prosemirror-model';
3
+ import { MatDialog } from '@angular/material/dialog';
4
+ export declare class LinkItem extends Item {
5
+ constructor(markType: MarkType, dialog: MatDialog);
6
+ }
@@ -0,0 +1,4 @@
1
+ import { Item } from './item';
2
+ export declare class AddTableItem extends Item {
3
+ constructor();
4
+ }
@@ -0,0 +1,18 @@
1
+ import { EditorState } from 'prosemirror-state';
2
+ import { MarkType } from 'prosemirror-model';
3
+ import { MenuItem, MenuItemSpec } from 'prosemirror-menu';
4
+ import { Item } from './item';
5
+ import { Command } from 'prosemirror-commands';
6
+ export declare function markActive(state: EditorState, type: MarkType): boolean;
7
+ /**
8
+ * Convert built-in `MenuItem` into our Angular specific `Item`
9
+ */
10
+ export declare function menuItemToItem(item: MenuItem): Item;
11
+ /**
12
+ * From a `Command`, creates a new `Item` that will have an automatic `enable` spec
13
+ */
14
+ export declare function cmdToItem(cmd: Command, options?: Partial<MenuItemSpec>): Item;
15
+ /**
16
+ * From a `MarkType`, creates a new `Item` that will have an automatic `active` and `enable` spec
17
+ */
18
+ export declare function markTypeToItem(markType: MarkType): Item;
@@ -0,0 +1,3 @@
1
+ import { NodeType } from 'prosemirror-model';
2
+ import { Item } from './item';
3
+ export declare function wrapListItem(nodeType: NodeType): Item;
@@ -1,7 +1,7 @@
1
1
  import { Schema } from 'prosemirror-model';
2
2
  import { MatDialog } from '@angular/material/dialog';
3
- import { Item } from './item';
4
- export declare type Key = 'toggleStrong' | 'toggleEm' | 'toggleCode' | 'toggleLink' | 'wrapBulletList' | 'wrapOrderedList' | 'wrapBlockQuote' | 'makeParagraph' | 'makeCodeBlock' | 'makeHead1' | 'makeHead2' | 'makeHead3' | 'makeHead4' | 'makeHead5' | 'makeHead6' | 'alignLeft' | 'alignRight' | 'alignCenter' | 'alignJustify' | 'insertHorizontalRule' | 'joinUp' | 'lift' | 'selectParentNode' | 'undo' | 'redo' | 'insertTable' | 'addColumnBefore' | 'addColumnAfter' | 'deleteColumn' | 'addRowBefore' | 'addRowAfter' | 'deleteRow' | 'deleteTable' | 'mergeCells' | 'splitCell' | 'toggleHeaderColumn' | 'toggleHeaderRow' | 'toggleHeaderCell';
3
+ import { Item } from './items/item';
4
+ export declare type Key = 'toggleStrong' | 'toggleEm' | 'toggleCode' | 'toggleLink' | 'wrapBulletList' | 'wrapOrderedList' | 'wrapBlockQuote' | 'makeParagraph' | 'makeCodeBlock' | 'makeHead1' | 'makeHead2' | 'makeHead3' | 'makeHead4' | 'makeHead5' | 'makeHead6' | 'alignLeft' | 'alignRight' | 'alignCenter' | 'alignJustify' | 'insertHorizontalRule' | 'joinUp' | 'lift' | 'selectParentNode' | 'undo' | 'redo' | 'insertTable' | 'addColumnBefore' | 'addColumnAfter' | 'deleteColumn' | 'addRowBefore' | 'addRowAfter' | 'deleteRow' | 'deleteTable' | 'mergeCells' | 'splitCell' | 'toggleHeaderColumn' | 'toggleHeaderRow' | 'toggleHeaderCell' | 'cellBackgroundColor' | 'tableClass' | 'paragraphClass';
5
5
  export declare type MenuItems = Partial<Record<Key, Item>>;
6
6
  /**
7
7
  * Given a schema, look for default mark and node types in it and
@@ -0,0 +1,8 @@
1
+ import { NodeSpec } from 'prosemirror-model';
2
+ /**
3
+ * A plain paragraph textblock. Represented in the DOM
4
+ * as a `<p>` element.
5
+ *
6
+ * https://github.com/ProseMirror/prosemirror-schema-basic/blob/master/src/schema-basic.js
7
+ */
8
+ export declare const paragraphWithAlignment: NodeSpec;
File without changes
@@ -0,0 +1,9 @@
1
+ import { TableNodes, TableNodesOptions } from 'prosemirror-tables';
2
+ /**
3
+ * This function creates a set of [node
4
+ * specs](http://prosemirror.net/docs/ref/#model.SchemaSpec.nodes) for
5
+ * `table`, `table_row`, and `table_cell` nodes types.
6
+ *
7
+ * It is very directly inspired by prosemirror-table
8
+ */
9
+ export declare function tableNodes(options: TableNodesOptions): TableNodes;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecodev/natural-editor",
3
- "version": "42.0.0",
3
+ "version": "42.3.0",
4
4
  "license": "MIT",
5
5
  "repository": "github:Ecodev/natural",
6
6
  "sideEffects": false,
package/public-api.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import '@angular/localize/init';
2
+ export { NaturalCustomCssDirective } from './lib/custom-css/custom-css.directive';
2
3
  export { NaturalEditorComponent } from './lib/editor/editor.component';
3
4
  export { NaturalEditorModule } from './lib/editor.module';
@@ -1,39 +0,0 @@
1
- /**
2
- * One item of the menu.
3
- *
4
- * This is the equivalent of `MenuItem` but without all the rendering logic since we use Angular
5
- * templates for rendering. Also it caches the state of the item everytime the editor state changes,
6
- * so Angular can query the state as often as needed without performance hit.
7
- */
8
- export class Item {
9
- constructor(spec) {
10
- this.spec = spec;
11
- /**
12
- * Whether the item is 'active' (for example, the item for toggling the strong mark might be active when the cursor is in strong text).
13
- */
14
- this.active = false;
15
- /**
16
- * Button is shown but disabled, because the item cannot be (un-)applied
17
- */
18
- this.disabled = false;
19
- /**
20
- * Whether the item is shown at the moment
21
- */
22
- this.show = true;
23
- }
24
- /**
25
- * Update the item state according to the editor state
26
- */
27
- update(view, state) {
28
- if (this.spec.active) {
29
- this.active = this.spec.active(state);
30
- }
31
- if (this.spec.enable) {
32
- this.disabled = !this.spec.enable(state);
33
- }
34
- if (this.spec.select) {
35
- this.show = this.spec.select(state);
36
- }
37
- }
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwtZWRpdG9yL3NyYy9saWIvdXRpbHMvaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sSUFBSTtJQWdCYixZQUFtQyxJQUFrQjtRQUFsQixTQUFJLEdBQUosSUFBSSxDQUFjO1FBZnJEOztXQUVHO1FBQ0ksV0FBTSxHQUFHLEtBQUssQ0FBQztRQUV0Qjs7V0FFRztRQUNJLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFeEI7O1dBRUc7UUFDSSxTQUFJLEdBQUcsSUFBSSxDQUFDO0lBRXFDLENBQUM7SUFFekQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBZ0IsRUFBRSxLQUFrQjtRQUM5QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QztRQUVELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TWVudUl0ZW1TcGVjfSBmcm9tICdwcm9zZW1pcnJvci1tZW51JztcbmltcG9ydCB7RWRpdG9yU3RhdGV9IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcbmltcG9ydCB7RWRpdG9yVmlld30gZnJvbSAncHJvc2VtaXJyb3Itdmlldyc7XG5cbi8qKlxuICogT25lIGl0ZW0gb2YgdGhlIG1lbnUuXG4gKlxuICogVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBgTWVudUl0ZW1gIGJ1dCB3aXRob3V0IGFsbCB0aGUgcmVuZGVyaW5nIGxvZ2ljIHNpbmNlIHdlIHVzZSBBbmd1bGFyXG4gKiB0ZW1wbGF0ZXMgZm9yIHJlbmRlcmluZy4gQWxzbyBpdCBjYWNoZXMgdGhlIHN0YXRlIG9mIHRoZSBpdGVtIGV2ZXJ5dGltZSB0aGUgZWRpdG9yIHN0YXRlIGNoYW5nZXMsXG4gKiBzbyBBbmd1bGFyIGNhbiBxdWVyeSB0aGUgc3RhdGUgYXMgb2Z0ZW4gYXMgbmVlZGVkIHdpdGhvdXQgcGVyZm9ybWFuY2UgaGl0LlxuICovXG5leHBvcnQgY2xhc3MgSXRlbSB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgaXRlbSBpcyAnYWN0aXZlJyAoZm9yIGV4YW1wbGUsIHRoZSBpdGVtIGZvciB0b2dnbGluZyB0aGUgc3Ryb25nIG1hcmsgbWlnaHQgYmUgYWN0aXZlIHdoZW4gdGhlIGN1cnNvciBpcyBpbiBzdHJvbmcgdGV4dCkuXG4gICAgICovXG4gICAgcHVibGljIGFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQnV0dG9uIGlzIHNob3duIGJ1dCBkaXNhYmxlZCwgYmVjYXVzZSB0aGUgaXRlbSBjYW5ub3QgYmUgKHVuLSlhcHBsaWVkXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBpdGVtIGlzIHNob3duIGF0IHRoZSBtb21lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvdyA9IHRydWU7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHNwZWM6IE1lbnVJdGVtU3BlYykge31cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgaXRlbSBzdGF0ZSBhY2NvcmRpbmcgdG8gdGhlIGVkaXRvciBzdGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGUodmlldzogRWRpdG9yVmlldywgc3RhdGU6IEVkaXRvclN0YXRlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNwZWMuYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IHRoaXMuc3BlYy5hY3RpdmUoc3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc3BlYy5lbmFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgPSAhdGhpcy5zcGVjLmVuYWJsZShzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zcGVjLnNlbGVjdCkge1xuICAgICAgICAgICAgdGhpcy5zaG93ID0gdGhpcy5zcGVjLnNlbGVjdChzdGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,43 +0,0 @@
1
- const ALIGN_PATTERN = /(left|right|center|justify)/;
2
- // https://github.com/ProseMirror/prosemirror-schema-basic/blob/master/src/schema-basic.js
3
- // :: NodeSpec A plain paragraph textblock. Represented in the DOM
4
- // as a `<p>` element.
5
- export const paragraphWithAlignment = {
6
- attrs: {
7
- align: { default: null },
8
- id: { default: null },
9
- },
10
- content: 'inline*',
11
- group: 'block',
12
- parseDOM: [
13
- {
14
- tag: 'p',
15
- getAttrs: (dom) => {
16
- if (!(dom instanceof HTMLElement)) {
17
- return;
18
- }
19
- const { textAlign } = dom.style;
20
- let align = dom.getAttribute('align') || textAlign || '';
21
- align = ALIGN_PATTERN.test(align) ? align : null;
22
- const id = dom.getAttribute('id') || '';
23
- return { align, id };
24
- },
25
- },
26
- ],
27
- toDOM: node => {
28
- const { align, id } = node.attrs;
29
- const attrs = {};
30
- let style = '';
31
- if (align && align !== 'left') {
32
- style += `text-align: ${align};`;
33
- }
34
- if (style) {
35
- attrs.style = style;
36
- }
37
- if (id) {
38
- attrs.id = id;
39
- }
40
- return ['p', attrs, 0];
41
- },
42
- };
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWdyYXBoLXdpdGgtYWxpZ25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC1lZGl0b3Ivc3JjL2xpYi91dGlscy9wYXJhZ3JhcGgtd2l0aC1hbGlnbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxhQUFhLEdBQUcsNkJBQTZCLENBQUM7QUFFcEQsMEZBQTBGO0FBQzFGLGtFQUFrRTtBQUNsRSxzQkFBc0I7QUFDdEIsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQWE7SUFDNUMsS0FBSyxFQUFFO1FBQ0gsS0FBSyxFQUFFLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQztRQUN0QixFQUFFLEVBQUUsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDO0tBQ3RCO0lBQ0QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsS0FBSyxFQUFFLE9BQU87SUFDZCxRQUFRLEVBQUU7UUFDTjtZQUNJLEdBQUcsRUFBRSxHQUFHO1lBQ1IsUUFBUSxFQUFFLENBQUMsR0FBa0IsRUFBa0QsRUFBRTtnQkFDN0UsSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLFdBQVcsQ0FBQyxFQUFFO29CQUMvQixPQUFPO2lCQUNWO2dCQUVELE1BQU0sRUFBQyxTQUFTLEVBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUU5QixJQUFJLEtBQUssR0FBa0IsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTLElBQUksRUFBRSxDQUFDO2dCQUN4RSxLQUFLLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBRWpELE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUV4QyxPQUFPLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO1lBQ3ZCLENBQUM7U0FDSjtLQUNKO0lBQ0QsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQ1YsTUFBTSxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQy9CLE1BQU0sS0FBSyxHQUF5QixFQUFFLENBQUM7UUFFdkMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtZQUMzQixLQUFLLElBQUksZUFBZSxLQUFLLEdBQUcsQ0FBQztTQUNwQztRQUVELElBQUksS0FBSyxFQUFFO1lBQ1AsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDdkI7UUFFRCxJQUFJLEVBQUUsRUFBRTtZQUNKLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1NBQ2pCO1FBRUQsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05vZGVTcGVjfSBmcm9tICdwcm9zZW1pcnJvci1tb2RlbCc7XG5cbmNvbnN0IEFMSUdOX1BBVFRFUk4gPSAvKGxlZnR8cmlnaHR8Y2VudGVyfGp1c3RpZnkpLztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL1Byb3NlTWlycm9yL3Byb3NlbWlycm9yLXNjaGVtYS1iYXNpYy9ibG9iL21hc3Rlci9zcmMvc2NoZW1hLWJhc2ljLmpzXG4vLyA6OiBOb2RlU3BlYyBBIHBsYWluIHBhcmFncmFwaCB0ZXh0YmxvY2suIFJlcHJlc2VudGVkIGluIHRoZSBET01cbi8vIGFzIGEgYDxwPmAgZWxlbWVudC5cbmV4cG9ydCBjb25zdCBwYXJhZ3JhcGhXaXRoQWxpZ25tZW50OiBOb2RlU3BlYyA9IHtcbiAgICBhdHRyczoge1xuICAgICAgICBhbGlnbjoge2RlZmF1bHQ6IG51bGx9LFxuICAgICAgICBpZDoge2RlZmF1bHQ6IG51bGx9LFxuICAgIH0sXG4gICAgY29udGVudDogJ2lubGluZSonLFxuICAgIGdyb3VwOiAnYmxvY2snLFxuICAgIHBhcnNlRE9NOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRhZzogJ3AnLFxuICAgICAgICAgICAgZ2V0QXR0cnM6IChkb206IE5vZGUgfCBzdHJpbmcpOiB1bmRlZmluZWQgfCB7YWxpZ246IG51bGwgfCBzdHJpbmc7IGlkOiBzdHJpbmd9ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIShkb20gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHt0ZXh0QWxpZ259ID0gZG9tLnN0eWxlO1xuXG4gICAgICAgICAgICAgICAgbGV0IGFsaWduOiBzdHJpbmcgfCBudWxsID0gZG9tLmdldEF0dHJpYnV0ZSgnYWxpZ24nKSB8fCB0ZXh0QWxpZ24gfHwgJyc7XG4gICAgICAgICAgICAgICAgYWxpZ24gPSBBTElHTl9QQVRURVJOLnRlc3QoYWxpZ24pID8gYWxpZ24gOiBudWxsO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaWQgPSBkb20uZ2V0QXR0cmlidXRlKCdpZCcpIHx8ICcnO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHthbGlnbiwgaWR9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIHRvRE9NOiBub2RlID0+IHtcbiAgICAgICAgY29uc3Qge2FsaWduLCBpZH0gPSBub2RlLmF0dHJzO1xuICAgICAgICBjb25zdCBhdHRyczoge1trZXk6IHN0cmluZ106IGFueX0gPSB7fTtcblxuICAgICAgICBsZXQgc3R5bGUgPSAnJztcbiAgICAgICAgaWYgKGFsaWduICYmIGFsaWduICE9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIHN0eWxlICs9IGB0ZXh0LWFsaWduOiAke2FsaWdufTtgO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0eWxlKSB7XG4gICAgICAgICAgICBhdHRycy5zdHlsZSA9IHN0eWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICBhdHRycy5pZCA9IGlkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFsncCcsIGF0dHJzLCAwXTtcbiAgICB9LFxufTtcbiJdfQ==
@@ -1,51 +0,0 @@
1
- import { marks, nodes } from 'prosemirror-schema-basic';
2
- import { addListNodes } from 'prosemirror-schema-list';
3
- import { Schema } from 'prosemirror-model';
4
- import { tableNodes } from 'prosemirror-tables';
5
- import { paragraphWithAlignment } from './paragraph-with-alignment';
6
- const basicNodes = {
7
- heading: nodes.heading,
8
- doc: nodes.doc,
9
- paragraph: nodes.paragraph,
10
- text: nodes.text,
11
- hard_break: nodes.hard_break,
12
- };
13
- const basicMarks = {
14
- link: marks.link,
15
- em: marks.em,
16
- strong: marks.strong,
17
- };
18
- const tmpSchema = new Schema({ nodes: basicNodes, marks: basicMarks });
19
- export const basicSchema = new Schema({
20
- nodes: addListNodes(tmpSchema.spec.nodes, 'paragraph block*', 'block'),
21
- marks: tmpSchema.spec.marks,
22
- });
23
- const tmpSchema2 = new Schema({
24
- nodes: {
25
- ...nodes,
26
- ...tableNodes({
27
- tableGroup: 'block',
28
- cellContent: 'block+',
29
- cellAttributes: {
30
- background: {
31
- default: null,
32
- getFromDOM(dom) {
33
- return dom.style.backgroundColor || null;
34
- },
35
- setDOMAttr(value, attrs) {
36
- if (value) {
37
- attrs.style = (attrs.style || '') + `background-color: ${value};`;
38
- }
39
- },
40
- },
41
- },
42
- }),
43
- paragraph: paragraphWithAlignment,
44
- },
45
- marks: basicMarks,
46
- });
47
- export const advancedSchema = new Schema({
48
- nodes: addListNodes(tmpSchema2.spec.nodes, 'paragraph block*', 'block'),
49
- marks: basicMarks,
50
- });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC1lZGl0b3Ivc3JjL2xpYi91dGlscy9zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUlsRSxNQUFNLFVBQVUsR0FBZTtJQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87SUFDdEIsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO0lBQ2QsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO0lBQzFCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtJQUNoQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7Q0FDL0IsQ0FBQztBQUdGLE1BQU0sVUFBVSxHQUFlO0lBQzNCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtJQUNoQixFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUU7SUFDWixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Q0FDdkIsQ0FBQztBQUVGLE1BQU0sU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztBQUVyRSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxNQUFNLENBQUM7SUFDbEMsS0FBSyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxPQUFPLENBQUM7SUFDdEUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSztDQUM5QixDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FBQztJQUMxQixLQUFLLEVBQUU7UUFDSCxHQUFHLEtBQUs7UUFDUixHQUFHLFVBQVUsQ0FBQztZQUNWLFVBQVUsRUFBRSxPQUFPO1lBQ25CLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLGNBQWMsRUFBRTtnQkFDWixVQUFVLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLElBQUk7b0JBQ2IsVUFBVSxDQUFDLEdBQVk7d0JBQ25CLE9BQVEsR0FBbUIsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQztvQkFDOUQsQ0FBQztvQkFDRCxVQUFVLENBQUMsS0FBVSxFQUFFLEtBQVU7d0JBQzdCLElBQUksS0FBSyxFQUFFOzRCQUNQLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLHFCQUFxQixLQUFLLEdBQUcsQ0FBQzt5QkFDckU7b0JBQ0wsQ0FBQztpQkFDSjthQUNKO1NBQ0osQ0FBQztRQUNGLFNBQVMsRUFBRSxzQkFBc0I7S0FDcEM7SUFDRCxLQUFLLEVBQUUsVUFBVTtDQUNwQixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxNQUFNLENBQUM7SUFDckMsS0FBSyxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxPQUFPLENBQUM7SUFDdkUsS0FBSyxFQUFFLFVBQVU7Q0FDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHttYXJrcywgbm9kZXN9IGZyb20gJ3Byb3NlbWlycm9yLXNjaGVtYS1iYXNpYyc7XG5pbXBvcnQge2FkZExpc3ROb2Rlc30gZnJvbSAncHJvc2VtaXJyb3Itc2NoZW1hLWxpc3QnO1xuaW1wb3J0IHtTY2hlbWF9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcbmltcG9ydCB7dGFibGVOb2Rlc30gZnJvbSAncHJvc2VtaXJyb3ItdGFibGVzJztcbmltcG9ydCB7cGFyYWdyYXBoV2l0aEFsaWdubWVudH0gZnJvbSAnLi9wYXJhZ3JhcGgtd2l0aC1hbGlnbm1lbnQnO1xuXG4vLyBLZWVwIG9ubHkgYmFzaWMgZWxlbWVudHNcbnR5cGUgQmFzaWNOb2RlcyA9IE9taXQ8dHlwZW9mIG5vZGVzLCAnaW1hZ2UnIHwgJ2NvZGVfYmxvY2snIHwgJ2Jsb2NrcXVvdGUnIHwgJ2hvcml6b250YWxfcnVsZSc+O1xuY29uc3QgYmFzaWNOb2RlczogQmFzaWNOb2RlcyA9IHtcbiAgICBoZWFkaW5nOiBub2Rlcy5oZWFkaW5nLFxuICAgIGRvYzogbm9kZXMuZG9jLFxuICAgIHBhcmFncmFwaDogbm9kZXMucGFyYWdyYXBoLFxuICAgIHRleHQ6IG5vZGVzLnRleHQsXG4gICAgaGFyZF9icmVhazogbm9kZXMuaGFyZF9icmVhayxcbn07XG5cbnR5cGUgQmFzaWNNYXJrcyA9IE9taXQ8dHlwZW9mIG1hcmtzLCAnY29kZSc+O1xuY29uc3QgYmFzaWNNYXJrczogQmFzaWNNYXJrcyA9IHtcbiAgICBsaW5rOiBtYXJrcy5saW5rLFxuICAgIGVtOiBtYXJrcy5lbSxcbiAgICBzdHJvbmc6IG1hcmtzLnN0cm9uZyxcbn07XG5cbmNvbnN0IHRtcFNjaGVtYSA9IG5ldyBTY2hlbWEoe25vZGVzOiBiYXNpY05vZGVzLCBtYXJrczogYmFzaWNNYXJrc30pO1xuXG5leHBvcnQgY29uc3QgYmFzaWNTY2hlbWEgPSBuZXcgU2NoZW1hKHtcbiAgICBub2RlczogYWRkTGlzdE5vZGVzKHRtcFNjaGVtYS5zcGVjLm5vZGVzLCAncGFyYWdyYXBoIGJsb2NrKicsICdibG9jaycpLFxuICAgIG1hcmtzOiB0bXBTY2hlbWEuc3BlYy5tYXJrcyxcbn0pO1xuXG5jb25zdCB0bXBTY2hlbWEyID0gbmV3IFNjaGVtYSh7XG4gICAgbm9kZXM6IHtcbiAgICAgICAgLi4ubm9kZXMsXG4gICAgICAgIC4uLnRhYmxlTm9kZXMoe1xuICAgICAgICAgICAgdGFibGVHcm91cDogJ2Jsb2NrJyxcbiAgICAgICAgICAgIGNlbGxDb250ZW50OiAnYmxvY2srJyxcbiAgICAgICAgICAgIGNlbGxBdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDoge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBnZXRGcm9tRE9NKGRvbTogRWxlbWVudCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChkb20gYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmJhY2tncm91bmRDb2xvciB8fCBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzZXRET01BdHRyKHZhbHVlOiBhbnksIGF0dHJzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzLnN0eWxlID0gKGF0dHJzLnN0eWxlIHx8ICcnKSArIGBiYWNrZ3JvdW5kLWNvbG9yOiAke3ZhbHVlfTtgO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgcGFyYWdyYXBoOiBwYXJhZ3JhcGhXaXRoQWxpZ25tZW50LFxuICAgIH0sXG4gICAgbWFya3M6IGJhc2ljTWFya3MsXG59KTtcblxuZXhwb3J0IGNvbnN0IGFkdmFuY2VkU2NoZW1hID0gbmV3IFNjaGVtYSh7XG4gICAgbm9kZXM6IGFkZExpc3ROb2Rlcyh0bXBTY2hlbWEyLnNwZWMubm9kZXMsICdwYXJhZ3JhcGggYmxvY2sqJywgJ2Jsb2NrJyksXG4gICAgbWFya3M6IGJhc2ljTWFya3MsXG59KTtcbiJdfQ==
@@ -1,37 +0,0 @@
1
- import { TextSelection } from 'prosemirror-state';
2
- import { tableNodeTypes } from 'prosemirror-tables';
3
- function createCell(cellType, cellContent) {
4
- return cellContent ? cellType.createChecked(null, cellContent) : cellType.createAndFill();
5
- }
6
- function createTable(state, rowsCount, colsCount, withHeaderRow, cellContent) {
7
- const types = tableNodeTypes(state.schema);
8
- const headerCells = [];
9
- const cells = [];
10
- for (let index = 0; index < colsCount; index += 1) {
11
- const cell = createCell(types.cell, cellContent);
12
- if (cell) {
13
- cells.push(cell);
14
- }
15
- if (withHeaderRow) {
16
- const headerCell = createCell(types.header_cell, cellContent);
17
- if (headerCell) {
18
- headerCells.push(headerCell);
19
- }
20
- }
21
- }
22
- const rows = [];
23
- for (let index = 0; index < rowsCount; index += 1) {
24
- rows.push(types.row.createChecked(null, withHeaderRow && index === 0 ? headerCells : cells));
25
- }
26
- return types.table.createChecked(null, rows);
27
- }
28
- export function addTable(state, dispatch, { rowsCount = 3, colsCount = 3, withHeaderRow = true, cellContent, } = {}) {
29
- const offset = state.tr.selection.anchor + 1;
30
- const nodes = createTable(state, rowsCount, colsCount, withHeaderRow, cellContent);
31
- const tr = state.tr.replaceSelectionWith(nodes).scrollIntoView();
32
- const resolvedPos = tr.doc.resolve(offset);
33
- // move cursor into table
34
- tr.setSelection(TextSelection.near(resolvedPos));
35
- dispatch?.(tr);
36
- }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsLWVkaXRvci9zcmMvbGliL3V0aWxzL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxhQUFhLEVBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsU0FBUyxVQUFVLENBQ2YsUUFBa0IsRUFDbEIsV0FBaUU7SUFFakUsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7QUFDOUYsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUNoQixLQUFrQixFQUNsQixTQUFpQixFQUNqQixTQUFpQixFQUNqQixhQUFzQixFQUN0QixXQUFpRTtJQUVqRSxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN2QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFakIsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFO1FBQy9DLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRWpELElBQUksSUFBSSxFQUFFO1lBQ04sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNwQjtRQUVELElBQUksYUFBYSxFQUFFO1lBQ2YsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFFOUQsSUFBSSxVQUFVLEVBQUU7Z0JBQ1osV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQztTQUNKO0tBQ0o7SUFFRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7SUFFaEIsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLGFBQWEsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDaEc7SUFFRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDcEIsS0FBa0IsRUFDbEIsUUFBb0MsRUFDcEMsRUFDSSxTQUFTLEdBQUcsQ0FBQyxFQUNiLFNBQVMsR0FBRyxDQUFDLEVBQ2IsYUFBYSxHQUFHLElBQUksRUFDcEIsV0FBVyxNQU1YLEVBQUU7SUFFTixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRTdDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbkYsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNqRSxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUzQyx5QkFBeUI7SUFDekIsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFakQsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RWRpdG9yU3RhdGUsIFRleHRTZWxlY3Rpb24sIFRyYW5zYWN0aW9ufSBmcm9tICdwcm9zZW1pcnJvci1zdGF0ZSc7XG5pbXBvcnQge0ZyYWdtZW50LCBOb2RlIGFzIFByb3NlbWlycm9yTm9kZSwgTm9kZVR5cGV9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcbmltcG9ydCB7dGFibGVOb2RlVHlwZXN9IGZyb20gJ3Byb3NlbWlycm9yLXRhYmxlcyc7XG5cbmZ1bmN0aW9uIGNyZWF0ZUNlbGwoXG4gICAgY2VsbFR5cGU6IE5vZGVUeXBlLFxuICAgIGNlbGxDb250ZW50PzogRnJhZ21lbnQgfCBQcm9zZW1pcnJvck5vZGUgfCBBcnJheTxQcm9zZW1pcnJvck5vZGU+LFxuKTogUHJvc2VtaXJyb3JOb2RlPGFueT4gfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gY2VsbENvbnRlbnQgPyBjZWxsVHlwZS5jcmVhdGVDaGVja2VkKG51bGwsIGNlbGxDb250ZW50KSA6IGNlbGxUeXBlLmNyZWF0ZUFuZEZpbGwoKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlVGFibGUoXG4gICAgc3RhdGU6IEVkaXRvclN0YXRlLFxuICAgIHJvd3NDb3VudDogbnVtYmVyLFxuICAgIGNvbHNDb3VudDogbnVtYmVyLFxuICAgIHdpdGhIZWFkZXJSb3c6IGJvb2xlYW4sXG4gICAgY2VsbENvbnRlbnQ/OiBGcmFnbWVudCB8IFByb3NlbWlycm9yTm9kZSB8IEFycmF5PFByb3NlbWlycm9yTm9kZT4sXG4pOiBQcm9zZW1pcnJvck5vZGUge1xuICAgIGNvbnN0IHR5cGVzID0gdGFibGVOb2RlVHlwZXMoc3RhdGUuc2NoZW1hKTtcbiAgICBjb25zdCBoZWFkZXJDZWxscyA9IFtdO1xuICAgIGNvbnN0IGNlbGxzID0gW107XG5cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY29sc0NvdW50OyBpbmRleCArPSAxKSB7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBjcmVhdGVDZWxsKHR5cGVzLmNlbGwsIGNlbGxDb250ZW50KTtcblxuICAgICAgICBpZiAoY2VsbCkge1xuICAgICAgICAgICAgY2VsbHMucHVzaChjZWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh3aXRoSGVhZGVyUm93KSB7XG4gICAgICAgICAgICBjb25zdCBoZWFkZXJDZWxsID0gY3JlYXRlQ2VsbCh0eXBlcy5oZWFkZXJfY2VsbCwgY2VsbENvbnRlbnQpO1xuXG4gICAgICAgICAgICBpZiAoaGVhZGVyQ2VsbCkge1xuICAgICAgICAgICAgICAgIGhlYWRlckNlbGxzLnB1c2goaGVhZGVyQ2VsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByb3dzID0gW107XG5cbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcm93c0NvdW50OyBpbmRleCArPSAxKSB7XG4gICAgICAgIHJvd3MucHVzaCh0eXBlcy5yb3cuY3JlYXRlQ2hlY2tlZChudWxsLCB3aXRoSGVhZGVyUm93ICYmIGluZGV4ID09PSAwID8gaGVhZGVyQ2VsbHMgOiBjZWxscykpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlcy50YWJsZS5jcmVhdGVDaGVja2VkKG51bGwsIHJvd3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkVGFibGUoXG4gICAgc3RhdGU6IEVkaXRvclN0YXRlLFxuICAgIGRpc3BhdGNoPzogKHRyOiBUcmFuc2FjdGlvbikgPT4gdm9pZCxcbiAgICB7XG4gICAgICAgIHJvd3NDb3VudCA9IDMsXG4gICAgICAgIGNvbHNDb3VudCA9IDMsXG4gICAgICAgIHdpdGhIZWFkZXJSb3cgPSB0cnVlLFxuICAgICAgICBjZWxsQ29udGVudCxcbiAgICB9OiB7XG4gICAgICAgIHJvd3NDb3VudD86IG51bWJlcjtcbiAgICAgICAgY29sc0NvdW50PzogbnVtYmVyO1xuICAgICAgICB3aXRoSGVhZGVyUm93PzogYm9vbGVhbjtcbiAgICAgICAgY2VsbENvbnRlbnQ/OiBGcmFnbWVudCB8IFByb3NlbWlycm9yTm9kZSB8IEFycmF5PFByb3NlbWlycm9yTm9kZT47XG4gICAgfSA9IHt9LFxuKTogdm9pZCB7XG4gICAgY29uc3Qgb2Zmc2V0ID0gc3RhdGUudHIuc2VsZWN0aW9uLmFuY2hvciArIDE7XG5cbiAgICBjb25zdCBub2RlcyA9IGNyZWF0ZVRhYmxlKHN0YXRlLCByb3dzQ291bnQsIGNvbHNDb3VudCwgd2l0aEhlYWRlclJvdywgY2VsbENvbnRlbnQpO1xuICAgIGNvbnN0IHRyID0gc3RhdGUudHIucmVwbGFjZVNlbGVjdGlvbldpdGgobm9kZXMpLnNjcm9sbEludG9WaWV3KCk7XG4gICAgY29uc3QgcmVzb2x2ZWRQb3MgPSB0ci5kb2MucmVzb2x2ZShvZmZzZXQpO1xuXG4gICAgLy8gbW92ZSBjdXJzb3IgaW50byB0YWJsZVxuICAgIHRyLnNldFNlbGVjdGlvbihUZXh0U2VsZWN0aW9uLm5lYXIocmVzb2x2ZWRQb3MpKTtcblxuICAgIGRpc3BhdGNoPy4odHIpO1xufVxuIl19
@@ -1,81 +0,0 @@
1
- import { AllSelection, TextSelection } from 'prosemirror-state';
2
- import { Item } from './item';
3
- function setTextAlign(tr, schema, alignment) {
4
- console.log('setTextAlign', alignment);
5
- const { selection, doc } = tr;
6
- if (!selection || !doc) {
7
- return tr;
8
- }
9
- const { from, to } = selection;
10
- const { nodes } = schema;
11
- const tasks = [];
12
- alignment = alignment || null;
13
- const allowedNodeTypes = new Set([
14
- nodes.paragraph,
15
- // nodes['blockquote'],
16
- // nodes['listItem'],
17
- // nodes['heading'],
18
- ]);
19
- doc.nodesBetween(from, to, (node, pos) => {
20
- const nodeType = node.type;
21
- const align = node.attrs.align || null;
22
- if (align !== alignment && allowedNodeTypes.has(nodeType)) {
23
- tasks.push({
24
- node,
25
- pos,
26
- nodeType,
27
- });
28
- }
29
- return true;
30
- });
31
- if (!tasks.length) {
32
- return tr;
33
- }
34
- tasks.forEach(job => {
35
- const { node, pos, nodeType } = job;
36
- const newAttrs = {
37
- ...node.attrs,
38
- align: alignment ? alignment : null,
39
- };
40
- console.log('newAttrs', newAttrs);
41
- tr = tr.setNodeMarkup(pos, nodeType, newAttrs, node.marks);
42
- });
43
- return tr;
44
- }
45
- export class TextAlignItem extends Item {
46
- constructor(alignment) {
47
- super({
48
- active: state => {
49
- const { selection, doc } = state;
50
- const { from, to } = selection;
51
- let keepLooking = true;
52
- let active = false;
53
- doc.nodesBetween(from, to, node => {
54
- if (keepLooking && node.attrs.align === alignment) {
55
- keepLooking = false;
56
- active = true;
57
- }
58
- return keepLooking;
59
- });
60
- return active;
61
- },
62
- enable: state => {
63
- const { selection } = state;
64
- return selection instanceof TextSelection || selection instanceof AllSelection;
65
- },
66
- run: (state, dispatch) => {
67
- const { schema, selection } = state;
68
- console.log(this);
69
- const tr = setTextAlign(state.tr.setSelection(selection), schema, this.active ? null : alignment);
70
- if (tr.docChanged) {
71
- dispatch?.(tr);
72
- return true;
73
- }
74
- else {
75
- return false;
76
- }
77
- },
78
- });
79
- }
80
- }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1hbGlnbi1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC1lZGl0b3Ivc3JjL2xpYi91dGlscy90ZXh0LWFsaWduLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFlBQVksRUFBRSxhQUFhLEVBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBSTVCLFNBQVMsWUFBWSxDQUFDLEVBQWUsRUFBRSxNQUFjLEVBQUUsU0FBMkI7SUFDOUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkMsTUFBTSxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUMsR0FBRyxFQUFFLENBQUM7SUFDNUIsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNwQixPQUFPLEVBQUUsQ0FBQztLQUNiO0lBQ0QsTUFBTSxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUMsR0FBRyxTQUFTLENBQUM7SUFDN0IsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLE1BQU0sQ0FBQztJQUV2QixNQUFNLEtBQUssR0FJTCxFQUFFLENBQUM7SUFFVCxTQUFTLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQztJQUU5QixNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDO1FBQzdCLEtBQUssQ0FBQyxTQUFTO1FBQ2YsdUJBQXVCO1FBQ3ZCLHFCQUFxQjtRQUNyQixvQkFBb0I7S0FDdkIsQ0FBQyxDQUFDO0lBRUgsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FB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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOb2RlLCBOb2RlVHlwZSwgU2NoZW1hfSBmcm9tICdwcm9zZW1pcnJvci1tb2RlbCc7XG5pbXBvcnQge0FsbFNlbGVjdGlvbiwgVGV4dFNlbGVjdGlvbiwgVHJhbnNhY3Rpb259IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcbmltcG9ydCB7SXRlbX0gZnJvbSAnLi9pdGVtJztcblxudHlwZSBBbGlnbm1lbnQgPSAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcicgfCAnanVzdGlmeSc7XG5cbmZ1bmN0aW9uIHNldFRleHRBbGlnbih0cjogVHJhbnNhY3Rpb24sIHNjaGVtYTogU2NoZW1hLCBhbGlnbm1lbnQ6IG51bGwgfCBBbGlnbm1lbnQpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc29sZS5sb2coJ3NldFRleHRBbGlnbicsIGFsaWdubWVudCk7XG4gICAgY29uc3Qge3NlbGVjdGlvbiwgZG9jfSA9IHRyO1xuICAgIGlmICghc2VsZWN0aW9uIHx8ICFkb2MpIHtcbiAgICAgICAgcmV0dXJuIHRyO1xuICAgIH1cbiAgICBjb25zdCB7ZnJvbSwgdG99ID0gc2VsZWN0aW9uO1xuICAgIGNvbnN0IHtub2Rlc30gPSBzY2hlbWE7XG5cbiAgICBjb25zdCB0YXNrczoge1xuICAgICAgICBub2RlOiBOb2RlO1xuICAgICAgICBwb3M6IG51bWJlcjtcbiAgICAgICAgbm9kZVR5cGU6IE5vZGVUeXBlO1xuICAgIH1bXSA9IFtdO1xuXG4gICAgYWxpZ25tZW50ID0gYWxpZ25tZW50IHx8IG51bGw7XG5cbiAgICBjb25zdCBhbGxvd2VkTm9kZVR5cGVzID0gbmV3IFNldChbXG4gICAgICAgIG5vZGVzLnBhcmFncmFwaCxcbiAgICAgICAgLy8gbm9kZXNbJ2Jsb2NrcXVvdGUnXSxcbiAgICAgICAgLy8gbm9kZXNbJ2xpc3RJdGVtJ10sXG4gICAgICAgIC8vIG5vZGVzWydoZWFkaW5nJ10sXG4gICAgXSk7XG5cbiAgICBkb2Mubm9kZXNCZXR3ZWVuKGZyb20sIHRvLCAobm9kZSwgcG9zKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vZGVUeXBlID0gbm9kZS50eXBlO1xuICAgICAgICBjb25zdCBhbGlnbiA9IG5vZGUuYXR0cnMuYWxpZ24gfHwgbnVsbDtcbiAgICAgICAgaWYgKGFsaWduICE9PSBhbGlnbm1lbnQgJiYgYWxsb3dlZE5vZGVUeXBlcy5oYXMobm9kZVR5cGUpKSB7XG4gICAgICAgICAgICB0YXNrcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIHBvcyxcbiAgICAgICAgICAgICAgICBub2RlVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuXG4gICAgaWYgKCF0YXNrcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRyO1xuICAgIH1cblxuICAgIHRhc2tzLmZvckVhY2goam9iID0+IHtcbiAgICAgICAgY29uc3Qge25vZGUsIHBvcywgbm9kZVR5cGV9ID0gam9iO1xuICAgICAgICBjb25zdCBuZXdBdHRycyA9IHtcbiAgICAgICAgICAgIC4uLm5vZGUuYXR0cnMsXG4gICAgICAgICAgICBhbGlnbjogYWxpZ25tZW50ID8gYWxpZ25tZW50IDogbnVsbCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc29sZS5sb2coJ25ld0F0dHJzJywgbmV3QXR0cnMpO1xuICAgICAgICB0ciA9IHRyLnNldE5vZGVNYXJrdXAocG9zLCBub2RlVHlwZSwgbmV3QXR0cnMsIG5vZGUubWFya3MpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyO1xufVxuXG5leHBvcnQgY2xhc3MgVGV4dEFsaWduSXRlbSBleHRlbmRzIEl0ZW0ge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihhbGlnbm1lbnQ6IEFsaWdubWVudCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBhY3RpdmU6IHN0YXRlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7c2VsZWN0aW9uLCBkb2N9ID0gc3RhdGU7XG4gICAgICAgICAgICAgICAgY29uc3Qge2Zyb20sIHRvfSA9IHNlbGVjdGlvbjtcbiAgICAgICAgICAgICAgICBsZXQga2VlcExvb2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGxldCBhY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBkb2Mubm9kZXNCZXR3ZWVuKGZyb20sIHRvLCBub2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGtlZXBMb29raW5nICYmIG5vZGUuYXR0cnMuYWxpZ24gPT09IGFsaWdubWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAga2VlcExvb2tpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtlZXBMb29raW5nO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjdGl2ZTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGVuYWJsZTogc3RhdGUgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtzZWxlY3Rpb259ID0gc3RhdGU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbiBpbnN0YW5jZW9mIFRleHRTZWxlY3Rpb24gfHwgc2VsZWN0aW9uIGluc3RhbmNlb2YgQWxsU2VsZWN0aW9uO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcnVuOiAoc3RhdGUsIGRpc3BhdGNoKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qge3NjaGVtYSwgc2VsZWN0aW9ufSA9IHN0YXRlO1xuXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2codGhpcyk7XG4gICAgICAgICAgICAgICAgY29uc3QgdHIgPSBzZXRUZXh0QWxpZ24oc3RhdGUudHIuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbiksIHNjaGVtYSwgdGhpcy5hY3RpdmUgPyBudWxsIDogYWxpZ25tZW50KTtcbiAgICAgICAgICAgICAgICBpZiAodHIuZG9jQ2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaD8uKHRyKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- import { NodeSpec } from 'prosemirror-model';
2
- export declare const paragraphWithAlignment: NodeSpec;
@@ -1,8 +0,0 @@
1
- import { EditorState, Transaction } from 'prosemirror-state';
2
- import { Fragment, Node as ProsemirrorNode } from 'prosemirror-model';
3
- export declare function addTable(state: EditorState, dispatch?: (tr: Transaction) => void, { rowsCount, colsCount, withHeaderRow, cellContent, }?: {
4
- rowsCount?: number;
5
- colsCount?: number;
6
- withHeaderRow?: boolean;
7
- cellContent?: Fragment | ProsemirrorNode | Array<ProsemirrorNode>;
8
- }): void;