@ecodev/natural 40.1.0 → 41.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecodev/natural",
3
- "version": "40.1.0",
3
+ "version": "41.0.0",
4
4
  "license": "MIT",
5
5
  "repository": "github:Ecodev/natural",
6
6
  "sideEffects": false,
@@ -15,11 +15,6 @@
15
15
  "@angular/material": "^12.0.1",
16
16
  "apollo-angular": "^2.6.0",
17
17
  "lodash-es": "^4.17.21",
18
- "prosemirror-example-setup": "^1.1.2",
19
- "prosemirror-keymap": "^1.1.4",
20
- "prosemirror-schema-basic": "^1.1.2",
21
- "prosemirror-state": "^1.3.4",
22
- "prosemirror-view": "^1.20.2",
23
18
  "rxjs": "^7.4.0"
24
19
  },
25
20
  "main": "bundles/ecodev-natural.umd.js",
package/public-api.d.ts CHANGED
@@ -37,5 +37,4 @@ export * from './lib/modules/table-button/public-api';
37
37
  export * from './lib/modules/dialog-trigger/public-api';
38
38
  export * from './lib/modules/avatar/public-api';
39
39
  export * from './lib/modules/matomo/public-api';
40
- export * from './lib/modules/editor/public-api';
41
40
  export * from './lib/directives/http-prefix.directive';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  This is the single public entry point for the lib
3
- So it Natural styles can be imported into an application like so:
3
+ So Natural styles can be imported into an application like so:
4
4
 
5
5
  ```
6
6
  @use '~@ecodev/natural/theming/natural.theme';
@@ -1,108 +0,0 @@
1
- import { Component, ElementRef, EventEmitter, Inject, Optional, Output, Self, ViewChild, } from '@angular/core';
2
- import { NgControl } from '@angular/forms';
3
- import { EditorView } from 'prosemirror-view';
4
- import { EditorState } from 'prosemirror-state';
5
- // @ts-ignore
6
- import { exampleSetup } from 'prosemirror-example-setup';
7
- import { DOMParser, DOMSerializer } from 'prosemirror-model';
8
- import { schema } from './schema';
9
- import { DOCUMENT } from '@angular/common';
10
- /**
11
- * Prosemirror component
12
- * Usage :
13
- * <natural-editor [(ngModel)]="htmlString"></natural-editor>
14
- */
15
- // @dynamic
16
- export class NaturalEditorComponent {
17
- constructor(ngControl, document) {
18
- this.ngControl = ngControl;
19
- this.document = document;
20
- this.view = null;
21
- this.contentChange = new EventEmitter();
22
- /**
23
- * HTML string
24
- */
25
- this.content = '';
26
- if (this.ngControl !== null) {
27
- this.ngControl.valueAccessor = this;
28
- }
29
- }
30
- ngOnInit() {
31
- const serializer = DOMSerializer.fromSchema(schema);
32
- const state = this.createState();
33
- this.view = new EditorView(this.editor.nativeElement, {
34
- state: state,
35
- dispatchTransaction: (transaction) => {
36
- if (!this.view) {
37
- return;
38
- }
39
- const newState = this.view.state.apply(transaction);
40
- this.view.updateState(newState);
41
- // Transform doc into HTML string
42
- const dom = serializer.serializeFragment(this.view.state.doc);
43
- const el = this.document.createElement('_');
44
- el.appendChild(dom);
45
- const newContent = el.innerHTML;
46
- if (this.content === newContent) {
47
- return;
48
- }
49
- this.content = el.innerHTML;
50
- if (this.onChange) {
51
- this.onChange(this.content);
52
- }
53
- this.contentChange.emit(this.content);
54
- },
55
- });
56
- }
57
- writeValue(val) {
58
- if (typeof val === 'string' && val !== this.content) {
59
- this.content = val;
60
- }
61
- if (this.view !== null) {
62
- const state = this.createState();
63
- this.view.updateState(state);
64
- }
65
- }
66
- createState() {
67
- const template = this.document.createElement('_');
68
- template.innerHTML = '<div>' + this.content + '</div>';
69
- if (!template.firstChild) {
70
- throw new Error('child of template element could not be created');
71
- }
72
- const parser = DOMParser.fromSchema(schema);
73
- const doc = parser.parse(template.firstChild);
74
- return EditorState.create({
75
- doc: doc,
76
- plugins: exampleSetup({ schema }),
77
- });
78
- }
79
- registerOnChange(fn) {
80
- this.onChange = fn;
81
- }
82
- registerOnTouched(fn) { }
83
- setDisabledState(isDisabled) {
84
- // TODO disable editor ?
85
- }
86
- ngOnDestroy() {
87
- if (this.view) {
88
- this.view.destroy();
89
- this.view = null;
90
- }
91
- }
92
- }
93
- NaturalEditorComponent.decorators = [
94
- { type: Component, args: [{
95
- selector: 'natural-editor',
96
- template: ` <div #editor></div>`,
97
- styles: ["@charset \"UTF-8\";::ng-deep .ProseMirror{position:relative;background:rgba(0,0,0,.1)}::ng-deep .ProseMirror{word-wrap:break-word;white-space:pre-wrap;-webkit-font-variant-ligatures:none;font-feature-settings:none;font-variant-ligatures:none}::ng-deep .ProseMirror pre{white-space:pre-wrap}::ng-deep .ProseMirror li{position:relative}::ng-deep .ProseMirror-hideselection *::selection{background:transparent}::ng-deep .ProseMirror-hideselection *::-moz-selection{background:transparent}::ng-deep .ProseMirror-hideselection{caret-color:transparent}::ng-deep .ProseMirror-selectednode{outline:2px solid #8cf}::ng-deep li.ProseMirror-selectednode{outline:none}::ng-deep li.ProseMirror-selectednode:after{content:\"\";position:absolute;left:-32px;right:-2px;top:-2px;bottom:-2px;border:2px solid #8cf;pointer-events:none}::ng-deep .ProseMirror-textblock-dropdown{min-width:3em}::ng-deep .ProseMirror-menu{margin:20px;line-height:1}::ng-deep .ProseMirror-tooltip .ProseMirror-menu{width:-moz-fit-content;width:fit-content;white-space:pre}::ng-deep .ProseMirror-menuitem{margin-right:8px;display:inline-block}::ng-deep .ProseMirror-menuseparator{border-right:1px solid rgba(255,255,255,.3);margin-right:12px}::ng-deep .ProseMirror-menu-dropdown,::ng-deep .ProseMirror-menu-dropdown-menu{white-space:nowrap}::ng-deep .ProseMirror-menu-dropdown{vertical-align:1px;cursor:pointer;position:relative;padding-right:15px}::ng-deep .ProseMirror-menu-dropdown-wrap{padding:1px 0 1px 4px;display:inline-block;position:relative}::ng-deep .ProseMirror-menu-dropdown:after{content:\"\";border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid currentColor;opacity:.6;position:absolute;right:4px;top:calc(50% - 2px)}::ng-deep .ProseMirror-menu-dropdown-menu,::ng-deep .ProseMirror-menu-submenu{position:absolute;background:white;color:#666;padding:2px;border-radius:4px;box-shadow:0 5px 5px #00000080}::ng-deep .ProseMirror-menu-dropdown-menu{z-index:15;min-width:6em;padding:6px;top:40px}::ng-deep .ProseMirror-menu-dropdown-item{cursor:pointer;padding:12px}::ng-deep .ProseMirror-menu-dropdown-item:hover{background:#f2f2f2}::ng-deep .ProseMirror-menu-submenu{padding:6px}::ng-deep .ProseMirror-menu-submenu-wrap{position:relative;margin-right:-4px}::ng-deep .ProseMirror-menu-submenu-label:after{content:\"\";border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid currentColor;opacity:.6;position:absolute;right:4px;top:calc(50% - 4px)}::ng-deep .ProseMirror-menu-submenu{display:none;min-width:6em;left:100%;top:-17px}::ng-deep .ProseMirror-menu-active{background:white;color:#000}::ng-deep .ProseMirror-menu-disabled{opacity:.3}::ng-deep .ProseMirror-menu-submenu-wrap:hover .ProseMirror-menu-submenu,::ng-deep .ProseMirror-menu-submenu-wrap-active .ProseMirror-menu-submenu{display:block}::ng-deep .ProseMirror-menubar{border-top-left-radius:inherit;border-top-right-radius:inherit;position:relative;min-height:1em;color:#fffc;padding:10px 18px;top:0;left:0;right:0;background:rgba(0,0,0,.8);z-index:10;box-sizing:border-box;overflow:visible;font-size:18px}::ng-deep .ProseMirror-icon{display:inline-block;line-height:.8;vertical-align:-2px;padding:8px;cursor:pointer;border-radius:4px}::ng-deep .ProseMirror-menu-disabled.ProseMirror-icon{cursor:default}::ng-deep .ProseMirror-icon svg{fill:currentColor;height:1em}::ng-deep .ProseMirror-icon span{vertical-align:text-top}::ng-deep .ProseMirror-gapcursor{display:none;pointer-events:none;position:absolute}::ng-deep .ProseMirror-gapcursor:after{content:\"\";display:block;position:absolute;top:-2px;width:20px;border-top:1px solid black;animation:ProseMirror-cursor-blink 1.1s steps(2,start) infinite}@keyframes ProseMirror-cursor-blink{to{visibility:hidden}}::ng-deep .ProseMirror-focused .ProseMirror-gapcursor{display:block}::ng-deep .ProseMirror-example-setup-style hr{padding:2px 10px;border:none;margin:1em 0}::ng-deep .ProseMirror-example-setup-style hr:after{content:\"\";display:block;height:1px;background-color:silver;line-height:2px}::ng-deep .ProseMirror ul,::ng-deep .ProseMirror ol{padding-left:30px}::ng-deep .ProseMirror blockquote{padding-left:1em;border-left:3px solid #eee;margin-left:0;margin-right:0}::ng-deep .ProseMirror-example-setup-style img{cursor:default}::ng-deep .ProseMirror-prompt{background:white;padding:20px;position:fixed;border-radius:4px;z-index:11;box-shadow:-.5px 2px 15px #000c;font-size:16px;color:#000}::ng-deep .ProseMirror-prompt h5{margin:0;font-weight:normal;font-size:24px}::ng-deep .ProseMirror-prompt input[type=text],::ng-deep .ProseMirror-prompt textarea{background:rgba(0,0,0,.1);border:none;border-bottom:1px solid rgba(0,0,0,.8);outline:none;padding:10px 20px;margin:.4em 0;width:20em;border-top-left-radius:4px;border-top-right-radius:4px;font-size:16px;color:#000}::ng-deep .ProseMirror-prompt-close{position:absolute;left:2px;top:1px;color:#000;border:none;background:transparent;padding:0}::ng-deep .ProseMirror-prompt-close:after{content:\"\\e2\\153\\2022\";font-size:12px}::ng-deep .ProseMirror-invalid{background:#ffc;border:1px solid #cc7;border-radius:4px;padding:5px 10px;position:absolute;min-width:10em}::ng-deep .ProseMirror-prompt-buttons{margin-top:5px;display:none}::ng-deep #editor,::ng-deep .editor{background:white;color:#000;background-clip:padding-box;border-radius:4px;border:2px solid rgba(0,0,0,.2);padding:5px 0;margin-bottom:23px}::ng-deep .ProseMirror p:first-child,::ng-deep .ProseMirror h1:first-child,::ng-deep .ProseMirror h2:first-child,::ng-deep .ProseMirror h3:first-child,::ng-deep .ProseMirror h4:first-child,::ng-deep .ProseMirror h5:first-child,::ng-deep .ProseMirror h6:first-child{margin-top:10px}::ng-deep .ProseMirror{padding:4px 8px 4px 14px;line-height:1.2;outline:none}::ng-deep .ProseMirror p{margin-bottom:1em}\n"]
98
- },] }
99
- ];
100
- NaturalEditorComponent.ctorParameters = () => [
101
- { type: NgControl, decorators: [{ type: Optional }, { type: Self }] },
102
- { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
103
- ];
104
- NaturalEditorComponent.propDecorators = {
105
- editor: [{ type: ViewChild, args: ['editor', { read: ElementRef, static: true },] }],
106
- contentChange: [{ type: Output }]
107
- };
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBR04sUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxXQUFXLEVBQWMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRCxhQUFhO0FBQ2IsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxTQUFTLEVBQUUsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFekM7Ozs7R0FJRztBQUNILFdBQVc7QUFNWCxNQUFNLE9BQU8sc0JBQXNCO0lBa0IvQixZQUN3QyxTQUFvQixFQUNyQixRQUFrQjtRQURqQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFuQmpELFNBQUksR0FBc0IsSUFBSSxDQUFDO1FBSWIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBUXJFOztXQUVHO1FBQ0ssWUFBTyxHQUFHLEVBQUUsQ0FBQztRQU1qQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMs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LEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUFPLElBQVMsQ0FBQztJQUVuQyxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUN2Qyx3QkFBd0I7SUFDNUIsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQzs7O1lBNUdKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixRQUFRLEVBQUUsc0JBQXNCOzthQUVuQzs7O1lBbkI2QixTQUFTLHVCQXVDOUIsUUFBUSxZQUFJLElBQUk7WUFDNEIsUUFBUSx1QkFBcEQsTUFBTSxTQUFDLFFBQVE7OztxQkFqQm5CLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUM7NEJBRXBELE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0VkaXRvclZpZXd9IGZyb20gJ3Byb3NlbWlycm9yLXZpZXcnO1xuaW1wb3J0IHtFZGl0b3JTdGF0ZSwgVHJhbnNhY3Rpb259IGZyb20gJ3Byb3NlbWlycm9yLXN0YXRlJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7ZXhhbXBsZVNldHVwfSBmcm9tICdwcm9zZW1pcnJvci1leGFtcGxlLXNldHVwJztcbmltcG9ydCB7RE9NUGFyc2VyLCBET01TZXJpYWxpemVyfSBmcm9tICdwcm9zZW1pcnJvci1tb2RlbCc7XG5pbXBvcnQge3NjaGVtYX0gZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBQcm9zZW1pcnJvciBjb21wb25lbnRcbiAqIFVzYWdlIDpcbiAqIDxuYXR1cmFsLWVkaXRvciBbKG5nTW9kZWwpXT1cImh0bWxTdHJpbmdcIj48L25hdHVyYWwtZWRpdG9yPlxuICovXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYXR1cmFsLWVkaXRvcicsXG4gICAgdGVtcGxhdGU6IGAgPGRpdiAjZWRpdG9yPjwvZGl2PmAsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIHByaXZhdGUgdmlldzogRWRpdG9yVmlldyB8IG51bGwgPSBudWxsO1xuXG4gICAgQFZpZXdDaGlsZCgnZWRpdG9yJywge3JlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZX0pIHByaXZhdGUgZWRpdG9yITogRWxlbWVudFJlZjtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY29udGVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqXG4gICAgICogSW50ZXJmYWNlIHdpdGggQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgICAgKiBOb3RpZmllcyBwYXJlbnQgbW9kZWwgLyBmb3JtIGNvbnRyb2xsZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIG9uQ2hhbmdlPzogKHZhbHVlOiBzdHJpbmcgfCBudWxsKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSFRNTCBzdHJpbmdcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbnRlbnQgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgKSB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZXIgPSBET01TZXJpYWxpemVyLmZyb21TY2hlbWEoc2NoZW1hKTtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmNyZWF0ZVN0YXRlKCk7XG5cbiAgICAgICAgdGhpcy52aWV3ID0gbmV3IEVkaXRvclZpZXcodGhpcy5lZGl0b3IubmF0aXZlRWxlbWVudCwge1xuICAgICAgICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAgICAgICAgZGlzcGF0Y2hUcmFuc2FjdGlvbjogKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy52aWV3KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IHRoaXMudmlldy5zdGF0ZS5hcHBseSh0cmFuc2FjdGlvbik7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3LnVwZGF0ZVN0YXRlKG5ld1N0YXRlKTtcblxuICAgICAgICAgICAgICAgIC8vIFRyYW5zZm9ybSBkb2MgaW50byBIVE1MIHN0cmluZ1xuICAgICAgICAgICAgICAgIGNvbnN0IGRvbSA9IHNlcmlhbGl6ZXIuc2VyaWFsaXplRnJhZ21lbnQodGhpcy52aWV3LnN0YXRlLmRvYyBhcyBhbnkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdfJyk7XG4gICAgICAgICAgICAgICAgZWwuYXBwZW5kQ2hpbGQoZG9tKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0NvbnRlbnQgPSBlbC5pbm5lckhUTUw7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29udGVudCA9PT0gbmV3Q29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gZWwuaW5uZXJIVE1MO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmNvbnRlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRDaGFuZ2UuZW1pdCh0aGlzLmNvbnRlbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnICYmIHZhbCAhPT0gdGhpcy5jb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQgPSB2YWw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52aWV3ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY3JlYXRlU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMudmlldy51cGRhdGVTdGF0ZShzdGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVN0YXRlKCk6IEVkaXRvclN0YXRlIHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ18nKTtcbiAgICAgICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gJzxkaXY+JyArIHRoaXMuY29udGVudCArICc8L2Rpdj4nO1xuICAgICAgICBpZiAoIXRlbXBsYXRlLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignY2hpbGQgb2YgdGVtcGxhdGUgZWxlbWVudCBjb3VsZCBub3QgYmUgY3JlYXRlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VyID0gRE9NUGFyc2VyLmZyb21TY2hlbWEoc2NoZW1hKTtcbiAgICAgICAgY29uc3QgZG9jID0gcGFyc2VyLnBhcnNlKHRlbXBsYXRlLmZpcnN0Q2hpbGQpO1xuXG4gICAgICAgIHJldHVybiBFZGl0b3JTdGF0ZS5jcmVhdGUoe1xuICAgICAgICAgICAgZG9jOiBkb2MsXG4gICAgICAgICAgICBwbHVnaW5zOiBleGFtcGxlU2V0dXAoe3NjaGVtYX0pLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge31cblxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgLy8gVE9ETyBkaXNhYmxlIGVkaXRvciA/XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52aWV3KSB7XG4gICAgICAgICAgICB0aGlzLnZpZXcuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy52aWV3ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,13 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { NaturalEditorComponent } from './editor.component';
4
- export class NaturalEditorModule {
5
- }
6
- NaturalEditorModule.decorators = [
7
- { type: NgModule, args: [{
8
- declarations: [NaturalEditorComponent],
9
- imports: [CommonModule],
10
- exports: [NaturalEditorComponent],
11
- },] }
12
- ];
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2VkaXRvci9lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBTzFELE1BQU0sT0FBTyxtQkFBbUI7OztZQUwvQixRQUFRLFNBQUM7Z0JBQ04sWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3RDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXR1cmFsRWRpdG9yQ29tcG9uZW50fSBmcm9tICcuL2VkaXRvci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW05hdHVyYWxFZGl0b3JDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtOYXR1cmFsRWRpdG9yQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEVkaXRvck1vZHVsZSB7fVxuIl19
@@ -1,6 +0,0 @@
1
- /*
2
- * Public API Surface of natural
3
- */
4
- export * from './editor.component';
5
- export * from './editor.module';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2VkaXRvci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuYXR1cmFsXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yLm1vZHVsZSc7XG4iXX0=
@@ -1,21 +0,0 @@
1
- import { marks, nodes } from 'prosemirror-schema-basic';
2
- import { addListNodes } from 'prosemirror-schema-list';
3
- import { Schema } from 'prosemirror-model';
4
- const myNodes = {
5
- heading: nodes.heading,
6
- doc: nodes.doc,
7
- paragraph: nodes.paragraph,
8
- text: nodes.text,
9
- hard_break: nodes.hard_break,
10
- };
11
- const myMarks = {
12
- link: marks.link,
13
- em: marks.em,
14
- strong: marks.strong,
15
- };
16
- const basicSchema = new Schema({ nodes: myNodes, marks: myMarks });
17
- export const schema = new Schema({
18
- nodes: addListNodes(basicSchema.spec.nodes, 'paragraph block*', 'block'),
19
- marks: basicSchema.spec.marks,
20
- });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZWRpdG9yL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFJekMsTUFBTSxPQUFPLEdBQWU7SUFDeEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO0lBQ3RCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztJQUNkLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztJQUMxQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7SUFDaEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO0NBQy9CLENBQUM7QUFHRixNQUFNLE9BQU8sR0FBZTtJQUN4QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7SUFDaEIsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO0lBQ1osTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO0NBQ3ZCLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDO0lBQzdCLEtBQUssRUFBRSxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFZLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDO0lBQy9FLEtBQUssRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUs7Q0FDaEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHttYXJrcywgbm9kZXN9IGZyb20gJ3Byb3NlbWlycm9yLXNjaGVtYS1iYXNpYyc7XG5pbXBvcnQge2FkZExpc3ROb2Rlc30gZnJvbSAncHJvc2VtaXJyb3Itc2NoZW1hLWxpc3QnO1xuaW1wb3J0IHtTY2hlbWF9IGZyb20gJ3Byb3NlbWlycm9yLW1vZGVsJztcblxuLy8gS2VlcCBvbmx5IGJhc2ljIGVsZW1lbnRzXG50eXBlIEJhc2ljTm9kZXMgPSBPbWl0PHR5cGVvZiBub2RlcywgJ2ltYWdlJyB8ICdjb2RlX2Jsb2NrJyB8ICdibG9ja3F1b3RlJyB8ICdob3Jpem9udGFsX3J1bGUnPjtcbmNvbnN0IG15Tm9kZXM6IEJhc2ljTm9kZXMgPSB7XG4gICAgaGVhZGluZzogbm9kZXMuaGVhZGluZyxcbiAgICBkb2M6IG5vZGVzLmRvYyxcbiAgICBwYXJhZ3JhcGg6IG5vZGVzLnBhcmFncmFwaCxcbiAgICB0ZXh0OiBub2Rlcy50ZXh0LFxuICAgIGhhcmRfYnJlYWs6IG5vZGVzLmhhcmRfYnJlYWssXG59O1xuXG50eXBlIEJhc2ljTWFya3MgPSBPbWl0PHR5cGVvZiBtYXJrcywgJ2NvZGUnPjtcbmNvbnN0IG15TWFya3M6IEJhc2ljTWFya3MgPSB7XG4gICAgbGluazogbWFya3MubGluayxcbiAgICBlbTogbWFya3MuZW0sXG4gICAgc3Ryb25nOiBtYXJrcy5zdHJvbmcsXG59O1xuXG5jb25zdCBiYXNpY1NjaGVtYSA9IG5ldyBTY2hlbWEoe25vZGVzOiBteU5vZGVzLCBtYXJrczogbXlNYXJrc30pO1xuXG5leHBvcnQgY29uc3Qgc2NoZW1hID0gbmV3IFNjaGVtYSh7XG4gICAgbm9kZXM6IGFkZExpc3ROb2RlcyhiYXNpY1NjaGVtYS5zcGVjLm5vZGVzIGFzIGFueSwgJ3BhcmFncmFwaCBibG9jayonLCAnYmxvY2snKSxcbiAgICBtYXJrczogYmFzaWNTY2hlbWEuc3BlYy5tYXJrcyxcbn0pO1xuIl19
@@ -1,31 +0,0 @@
1
- import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
- import { ControlValueAccessor, NgControl } from '@angular/forms';
3
- /**
4
- * Prosemirror component
5
- * Usage :
6
- * <natural-editor [(ngModel)]="htmlString"></natural-editor>
7
- */
8
- export declare class NaturalEditorComponent implements OnInit, OnDestroy, ControlValueAccessor {
9
- readonly ngControl: NgControl;
10
- private readonly document;
11
- private view;
12
- private editor;
13
- readonly contentChange: EventEmitter<string>;
14
- /**
15
- * Interface with ControlValueAccessor
16
- * Notifies parent model / form controller
17
- */
18
- private onChange?;
19
- /**
20
- * HTML string
21
- */
22
- private content;
23
- constructor(ngControl: NgControl, document: Document);
24
- ngOnInit(): void;
25
- writeValue(val: string | undefined): void;
26
- private createState;
27
- registerOnChange(fn: any): void;
28
- registerOnTouched(fn: any): void;
29
- setDisabledState(isDisabled: boolean): void;
30
- ngOnDestroy(): void;
31
- }
@@ -1,2 +0,0 @@
1
- export declare class NaturalEditorModule {
2
- }
@@ -1,2 +0,0 @@
1
- export * from './editor.component';
2
- export * from './editor.module';
@@ -1,2 +0,0 @@
1
- import { Schema } from 'prosemirror-model';
2
- export declare const schema: Schema<any, "link" | "em" | "strong">;