@plait/angular-text 0.92.0-next.0 → 0.92.0-next.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.
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ElementRef, ViewChild, Component,
|
|
2
|
+
import { ElementRef, ViewChild, Component, Input, HostBinding } from '@angular/core';
|
|
3
3
|
import { isKeyHotkey } from 'is-hotkey';
|
|
4
4
|
import { Range, Editor, Transforms, Element, createEditor } from 'slate';
|
|
5
|
-
import { BaseElementComponent, hotkeys,
|
|
5
|
+
import { BaseElementComponent, hotkeys, BaseElementFlavour, DefaultTextFlavour, withAngular, SlateEditable } from 'slate-angular';
|
|
6
6
|
import { withHistory } from 'slate-history';
|
|
7
|
-
import { markShortcuts, withMark, CLIPBOARD_FORMAT_KEY,
|
|
7
|
+
import { markShortcuts, withMark, CLIPBOARD_FORMAT_KEY, getTextFromClipboard, isUrl, LinkEditor, withLink, MarkTypes } from '@plait/text-plugins';
|
|
8
8
|
import * as i1 from '@angular/forms';
|
|
9
9
|
import { FormsModule } from '@angular/forms';
|
|
10
10
|
import * as i2 from '@angular/common';
|
|
@@ -61,46 +61,6 @@ const withMarkHotkey = (editor) => {
|
|
|
61
61
|
return withMark(e);
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
-
class ParagraphElementComponent extends BaseElementComponent {
|
|
65
|
-
ngOnInit() {
|
|
66
|
-
super.ngOnInit();
|
|
67
|
-
this.applyAlign();
|
|
68
|
-
}
|
|
69
|
-
onContextChange() {
|
|
70
|
-
super.onContextChange();
|
|
71
|
-
if (this.initialized) {
|
|
72
|
-
this.applyAlign();
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
applyAlign() {
|
|
76
|
-
if (this.element.align) {
|
|
77
|
-
if (this.nativeElement.style.textAlign !== this.element.align) {
|
|
78
|
-
this.nativeElement.style.textAlign = this.element.align;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
else if (this.nativeElement.style.textAlign) {
|
|
82
|
-
this.nativeElement.style.removeProperty('text-align');
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
ngOnDestroy() {
|
|
86
|
-
super.ngOnDestroy();
|
|
87
|
-
}
|
|
88
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: ParagraphElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
89
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.12", type: ParagraphElementComponent, isStandalone: true, selector: "div[plaitTextParagraphElement]", host: { classAttribute: "plait-text-paragraph" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
90
|
-
}
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: ParagraphElementComponent, decorators: [{
|
|
92
|
-
type: Component,
|
|
93
|
-
args: [{
|
|
94
|
-
selector: 'div[plaitTextParagraphElement]',
|
|
95
|
-
template: ``,
|
|
96
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
97
|
-
standalone: true,
|
|
98
|
-
host: {
|
|
99
|
-
class: 'plait-text-paragraph'
|
|
100
|
-
}
|
|
101
|
-
}]
|
|
102
|
-
}] });
|
|
103
|
-
|
|
104
64
|
const withInlineMove = (editor) => {
|
|
105
65
|
const { onKeydown } = editor;
|
|
106
66
|
editor.onKeydown = (event) => {
|
|
@@ -179,72 +139,85 @@ const withText = (editor) => {
|
|
|
179
139
|
return e;
|
|
180
140
|
};
|
|
181
141
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
142
|
+
const withPasteLink = (editor) => {
|
|
143
|
+
const { insertData } = editor;
|
|
144
|
+
editor.insertData = data => {
|
|
145
|
+
const text = getTextFromClipboard(data);
|
|
146
|
+
if (typeof text === 'string' && text && isUrl(text)) {
|
|
147
|
+
LinkEditor.wrapLink(editor, text, text);
|
|
148
|
+
Transforms.move(editor, { distance: 1, unit: 'offset' });
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
insertData(data);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
return withLink(editor);
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
class ParagraphFlavour extends BaseElementFlavour {
|
|
158
|
+
render() {
|
|
159
|
+
const nativeElement = this.createNativeElement();
|
|
160
|
+
this.nativeElement = nativeElement;
|
|
161
|
+
this.nativeElement.classList.add(`plait-text-paragraph`);
|
|
162
|
+
this.applyAlign();
|
|
163
|
+
}
|
|
164
|
+
rerender() {
|
|
165
|
+
this.applyAlign();
|
|
166
|
+
}
|
|
167
|
+
applyAlign() {
|
|
168
|
+
if (this.element.align) {
|
|
169
|
+
if (this.nativeElement.style.textAlign !== this.element.align) {
|
|
170
|
+
this.nativeElement.style.textAlign = this.element.align;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else if (this.nativeElement.style.textAlign) {
|
|
174
|
+
this.nativeElement.style.removeProperty('text-align');
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
createNativeElement() {
|
|
178
|
+
return document.createElement('div');
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
class TextFlavour extends DefaultTextFlavour {
|
|
183
|
+
constructor() {
|
|
184
|
+
super(...arguments);
|
|
186
185
|
this.excludes = ['color', 'font-size', 'text'];
|
|
187
186
|
this.attributes = [];
|
|
188
187
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
188
|
+
render() {
|
|
189
|
+
super.render();
|
|
190
|
+
this.applyRichtext();
|
|
191
|
+
}
|
|
192
|
+
applyRichtext() {
|
|
193
|
+
const text = this.text;
|
|
194
|
+
this.attributes.forEach((attr) => {
|
|
195
|
+
this.nativeElement.removeAttribute(attr);
|
|
192
196
|
});
|
|
193
197
|
this.attributes = [];
|
|
194
|
-
for (const key in
|
|
195
|
-
if (Object.prototype.hasOwnProperty.call(
|
|
196
|
-
const attr = `
|
|
197
|
-
this.
|
|
198
|
+
for (const key in text) {
|
|
199
|
+
if (Object.prototype.hasOwnProperty.call(text, key) && !this.excludes.includes(key)) {
|
|
200
|
+
const attr = `plait-${key}`;
|
|
201
|
+
this.nativeElement.setAttribute(attr, 'true');
|
|
198
202
|
this.attributes.push(attr);
|
|
199
203
|
}
|
|
200
204
|
}
|
|
201
|
-
const fontSize =
|
|
202
|
-
|
|
203
|
-
|
|
205
|
+
const fontSize = text[MarkTypes.fontSize];
|
|
206
|
+
this.nativeElement.setAttribute(`plait-${MarkTypes.fontSize}`, fontSize ? fontSize : '');
|
|
207
|
+
if (text[MarkTypes.color]) {
|
|
208
|
+
this.nativeElement.style.color = text[MarkTypes.color];
|
|
204
209
|
}
|
|
205
210
|
else {
|
|
206
|
-
this.
|
|
207
|
-
}
|
|
208
|
-
if (this.text[MarkTypes.color]) {
|
|
209
|
-
this.renderer2.setStyle(this.elementRef.nativeElement, 'color', this.text[MarkTypes.color]);
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
this.renderer2.removeStyle(this.elementRef.nativeElement, 'color');
|
|
211
|
+
this.nativeElement.style.color = '';
|
|
213
212
|
}
|
|
214
213
|
}
|
|
215
214
|
onContextChange() {
|
|
216
215
|
super.onContextChange();
|
|
217
|
-
this.
|
|
216
|
+
if (this.initialized) {
|
|
217
|
+
this.applyRichtext();
|
|
218
|
+
}
|
|
218
219
|
}
|
|
219
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: PlaitTextNodeComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
220
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.12", type: PlaitTextNodeComponent, isStandalone: true, selector: "span[plaitText]", host: { attributes: { "data-slate-node": "text" } }, usesInheritance: true, ngImport: i0, template: ``, isInline: true }); }
|
|
221
220
|
}
|
|
222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: PlaitTextNodeComponent, decorators: [{
|
|
223
|
-
type: Component,
|
|
224
|
-
args: [{
|
|
225
|
-
selector: 'span[plaitText]',
|
|
226
|
-
template: ``,
|
|
227
|
-
host: {
|
|
228
|
-
'data-slate-node': 'text'
|
|
229
|
-
},
|
|
230
|
-
standalone: true
|
|
231
|
-
}]
|
|
232
|
-
}], ctorParameters: () => [{ type: i0.Renderer2 }] });
|
|
233
|
-
|
|
234
|
-
const withPasteLink = (editor) => {
|
|
235
|
-
const { insertData } = editor;
|
|
236
|
-
editor.insertData = data => {
|
|
237
|
-
const text = getTextFromClipboard(data);
|
|
238
|
-
if (typeof text === 'string' && text && isUrl(text)) {
|
|
239
|
-
LinkEditor.wrapLink(editor, text, text);
|
|
240
|
-
Transforms.move(editor, { distance: 1, unit: 'offset' });
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
insertData(data);
|
|
244
|
-
}
|
|
245
|
-
};
|
|
246
|
-
return withLink(editor);
|
|
247
|
-
};
|
|
248
221
|
|
|
249
222
|
class PlaitTextComponent {
|
|
250
223
|
set text(text) {
|
|
@@ -270,12 +243,12 @@ class PlaitTextComponent {
|
|
|
270
243
|
if (element.type === 'link') {
|
|
271
244
|
return PlaitLinkNodeComponent;
|
|
272
245
|
}
|
|
273
|
-
return
|
|
246
|
+
return ParagraphFlavour;
|
|
274
247
|
};
|
|
275
248
|
this.renderText = (text) => {
|
|
276
249
|
for (const key in MarkTypes) {
|
|
277
250
|
if (text[MarkTypes[key]]) {
|
|
278
|
-
return
|
|
251
|
+
return TextFlavour;
|
|
279
252
|
}
|
|
280
253
|
}
|
|
281
254
|
return null;
|
|
@@ -306,7 +279,7 @@ class PlaitTextComponent {
|
|
|
306
279
|
ngOnChanges(changes) { }
|
|
307
280
|
ngOnInit() {
|
|
308
281
|
if (this.textPlugins) {
|
|
309
|
-
this.textPlugins.forEach(plugin => {
|
|
282
|
+
this.textPlugins.forEach((plugin) => {
|
|
310
283
|
plugin(this.editor);
|
|
311
284
|
});
|
|
312
285
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plait-angular-text.mjs","sources":["../../../packages/angular-text/src/plugins/link/link.component.ts","../../../packages/angular-text/src/plugins/mark-hotkey/with-mark-hotkey.ts","../../../packages/angular-text/src/plugins/paragraph/paragraph.component.ts","../../../packages/angular-text/src/plugins/with-inline-move.ts","../../../packages/angular-text/src/plugins/with-text.ts","../../../packages/angular-text/src/text-node/text.component.ts","../../../packages/angular-text/src/plugins/link/with-link-insert.ts","../../../packages/angular-text/src/text/text.component.ts","../../../packages/angular-text/src/text/text.component.html","../../../packages/angular-text/src/public-api.ts","../../../packages/angular-text/src/plait-angular-text.ts"],"sourcesContent":["import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { LinkElement } from '@plait/common';\nimport { BaseElementComponent } from 'slate-angular';\n\n@Component({\n selector: 'a[plaitLink]',\n template: `\n <span contenteditable=\"false\" class=\"link-break-char\">{{ inlineChromiumBugfix }}</span>\n <span #outletParent></span>\n <span contenteditable=\"false\" class=\"link-break-char\">{{ inlineChromiumBugfix }}</span>\n `,\n host: {\n '[attr.href]': 'element.url',\n target: '_blank',\n class: 'plait-link-node'\n },\n standalone: true\n})\nexport class PlaitLinkNodeComponent extends BaseElementComponent<LinkElement> implements OnInit {\n // Put this at the start and end of an inline component to work around this Chromium bug:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1249405\n inlineChromiumBugfix = String.fromCodePoint(160);\n\n @ViewChild('outletParent', { read: ElementRef, static: true })\n outletParent!: ElementRef;\n\n getOutletParent = () => {\n return this.outletParent.nativeElement;\n };\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { AngularEditor } from 'slate-angular';\nimport { MarkEditor, markShortcuts, withMark } from '@plait/text-plugins';\n\nexport const withMarkHotkey = <T extends AngularEditor & MarkEditor>(editor: T): T => {\n const e = editor;\n\n const { onKeydown } = e;\n\n e.onKeydown = (event: KeyboardEvent) => {\n markShortcuts(editor, event);\n onKeydown(event);\n };\n\n return withMark(e);\n};\n","import { Component, ChangeDetectionStrategy, OnInit } from '@angular/core';\nimport { ParagraphElement } from '@plait/common';\nimport { BaseElementComponent } from 'slate-angular';\n\n@Component({\n selector: 'div[plaitTextParagraphElement]',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n host: {\n class: 'plait-text-paragraph'\n }\n})\nexport class ParagraphElementComponent extends BaseElementComponent<ParagraphElement> implements OnInit {\n ngOnInit(): void {\n super.ngOnInit();\n this.applyAlign();\n }\n\n onContextChange(): void {\n super.onContextChange();\n if (this.initialized) {\n this.applyAlign();\n }\n }\n\n applyAlign() {\n if (this.element.align) {\n if (this.nativeElement.style.textAlign !== this.element.align) {\n this.nativeElement.style.textAlign = this.element.align;\n }\n } else if (this.nativeElement.style.textAlign) {\n this.nativeElement.style.removeProperty('text-align');\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Editor, Element, Transforms, Range, Path } from 'slate';\nimport { AngularEditor, hotkeys } from 'slate-angular';\n\nexport const withInlineMove = <T extends AngularEditor>(editor: T): T => {\n const { onKeydown } = editor;\n\n editor.onKeydown = (event: KeyboardEvent) => {\n const { selection } = editor;\n if (!selection || !selection.anchor || !selection.focus) {\n onKeydown(event);\n return;\n }\n const isMoveBackward = hotkeys.isMoveBackward(event);\n const isMoveForward = hotkeys.isMoveForward(event);\n const isCollapsed = selection && Range.isCollapsed(selection);\n const isInlineNode = isInline(editor);\n if (isCollapsed && isMoveForward) {\n let isInlineCodeBefore = false;\n if (!isInlineNode) {\n try {\n const { path } = Editor.after(editor, selection)!;\n if (path) {\n isInlineCodeBefore = isInline(editor, path);\n }\n } catch (error) {}\n }\n if (isInlineNode || isInlineCodeBefore) {\n event.preventDefault();\n Transforms.move(editor, { unit: 'offset' });\n return;\n }\n }\n if (isCollapsed && isMoveBackward) {\n let isInlineCodeAfter = false;\n if (!isInlineNode) {\n try {\n const { path } = Editor.before(editor, selection)!;\n isInlineCodeAfter = isInline(editor, path);\n } catch (error) {}\n }\n if (isInlineNode || isInlineCodeAfter) {\n event.preventDefault();\n Transforms.move(editor, { unit: 'offset', reverse: true });\n return;\n }\n }\n onKeydown(event);\n };\n\n return editor;\n};\n\nexport const isInline = (editor: Editor, path?: Path): boolean => {\n const [inlineNode] = Editor.nodes(editor, {\n at: path ? path : editor.selection?.anchor.path,\n match: n => Element.isElement(n) && Editor.isInline(editor, n) && !Editor.isVoid(editor, n)\n });\n return !!inlineNode;\n};\n","import { CLIPBOARD_FORMAT_KEY } from '@plait/text-plugins';\nimport { AngularEditor } from 'slate-angular';\nimport { PlaitTextEditor } from './text.editor';\n\nexport const withText = <T extends AngularEditor>(editor: T) => {\n const e = editor as T & PlaitTextEditor;\n const { insertData } = e;\n\n e.insertBreak = () => {\n editor.insertText('\\n');\n };\n\n e.insertData = (data: DataTransfer) => {\n let text = data.getData('text/plain');\n let plaitData = data.getData(`application/${CLIPBOARD_FORMAT_KEY}`);\n if (!plaitData && text) {\n if (text.endsWith('\\n')) {\n text = text.substring(0, text.length - 1);\n }\n text = text.trim().replace(/\\t+/g, ' ');\n e.insertText(text);\n return;\n }\n insertData(data);\n };\n\n return e;\n};\n","import { ChangeDetectorRef, Component, ElementRef, Renderer2 } from '@angular/core';\nimport { CustomText } from '@plait/common';\nimport { MarkTypes } from '@plait/text-plugins';\nimport { BaseTextComponent } from 'slate-angular';\n\n@Component({\n selector: 'span[plaitText]',\n template: ``,\n host: {\n 'data-slate-node': 'text'\n },\n standalone: true\n})\nexport class PlaitTextNodeComponent extends BaseTextComponent<CustomText> {\n constructor(public renderer2: Renderer2) {\n super();\n }\n\n excludes = ['color', 'font-size', 'text'];\n attributes: string[] = [];\n\n applyTextMark() {\n this.attributes.forEach(attr => {\n this.renderer2.removeAttribute(this.elementRef.nativeElement, attr);\n });\n this.attributes = [];\n for (const key in this.text) {\n if (Object.prototype.hasOwnProperty.call(this.text, key) && !this.excludes.includes(key)) {\n const attr = `the-${key}`;\n this.renderer2.setAttribute(this.elementRef.nativeElement, attr, 'true');\n this.attributes.push(attr);\n }\n }\n\n const fontSize = this.text[MarkTypes.fontSize];\n if (fontSize) {\n this.renderer2.setAttribute(this.elementRef.nativeElement, `plait-${MarkTypes.fontSize}`, fontSize);\n } else {\n this.renderer2.removeAttribute(this.elementRef.nativeElement, `plait-${MarkTypes.fontSize}`);\n }\n\n if (this.text[MarkTypes.color]) {\n this.renderer2.setStyle(this.elementRef.nativeElement, 'color', this.text[MarkTypes.color]);\n } else {\n this.renderer2.removeStyle(this.elementRef.nativeElement, 'color');\n }\n }\n\n onContextChange() {\n super.onContextChange();\n this.applyTextMark();\n }\n}\n","import { Transforms } from 'slate';\nimport { AngularEditor } from 'slate-angular';\nimport { LinkEditor, getTextFromClipboard, isUrl, withLink } from '@plait/text-plugins';\n\nexport const withPasteLink = <T extends AngularEditor>(editor: T): T => {\n const { insertData } = editor;\n editor.insertData = data => {\n const text = getTextFromClipboard(data);\n if (typeof text === 'string' && text && isUrl(text)) {\n LinkEditor.wrapLink(editor, text, text);\n Transforms.move(editor, { distance: 1, unit: 'offset' });\n } else {\n insertData(data);\n }\n };\n\n return withLink(editor);\n};\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { isKeyHotkey } from 'is-hotkey';\nimport { Editor, Element, Text, Transforms, createEditor } from 'slate';\nimport { SlateEditable, withAngular } from 'slate-angular';\nimport { withHistory } from 'slate-history';\nimport { PlaitLinkNodeComponent } from '../plugins/link/link.component';\nimport { withMarkHotkey } from '../plugins/mark-hotkey/with-mark-hotkey';\nimport { ParagraphElementComponent } from '../plugins/paragraph/paragraph.component';\nimport { withInlineMove } from '../plugins/with-inline-move';\nimport { withText } from '../plugins/with-text';\nimport { PlaitTextNodeComponent } from '../text-node/text.component';\nimport { FormsModule } from '@angular/forms';\nimport { LinkElement, TextChangeData, TextPlugin } from '@plait/common';\nimport { CLIPBOARD_FORMAT_KEY, MarkTypes } from '@plait/text-plugins';\nimport { withPasteLink } from '../plugins/link/with-link-insert';\nimport { CommonModule } from '@angular/common';\nimport { PlaitBoard } from '@plait/core';\n\n@Component({\n selector: 'plait-text',\n templateUrl: './text.component.html',\n imports: [SlateEditable, FormsModule, CommonModule]\n})\nexport class PlaitTextComponent implements OnInit, AfterViewInit, OnChanges {\n @HostBinding('class') hostClass = 'plait-text-container';\n\n children: Element[] = [];\n\n @Input() textPlugins?: TextPlugin[];\n\n @Input() set text(text: Element) {\n this.children = [text];\n this.cdr.markForCheck();\n }\n\n @Input() readonly = true;\n\n @ViewChild('slateEditable')\n slateEditable!: SlateEditable;\n\n @Input()\n onChange!: (data: TextChangeData) => void;\n\n @Input()\n afterInit?: (editor: Editor) => void;\n\n @Input()\n onComposition!: (event: CompositionEvent) => void;\n\n @Input()\n board!: PlaitBoard;\n\n editor = withInlineMove(withPasteLink(withMarkHotkey(withText(withHistory(withAngular(createEditor(), CLIPBOARD_FORMAT_KEY))))));\n\n nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n constructor(public renderer2: Renderer2, private cdr: ChangeDetectorRef, public elementRef: ElementRef<HTMLElement>) {}\n\n valueChange() {\n this.onChange({ newText: this.editor.children[0] as Element, operations: this.editor.operations });\n }\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnInit(): void {\n if (this.textPlugins) {\n this.textPlugins.forEach(plugin => {\n plugin(this.editor);\n });\n }\n this.editor.board = this.board;\n }\n\n ngAfterViewInit(): void {\n this.afterInit && this.afterInit(this.editor);\n }\n\n renderElement = (element: Element) => {\n const render = this.editor.renderElement;\n if (render && render(element)) {\n return render(element);\n }\n\n if ((element as LinkElement).type === 'link') {\n return PlaitLinkNodeComponent;\n }\n\n return ParagraphElementComponent;\n };\n\n renderText: any = (text: Text): PlaitTextNodeComponent | null => {\n for (const key in MarkTypes) {\n if ((text as any)[(MarkTypes as any)[key]]) {\n return PlaitTextNodeComponent as any;\n }\n }\n return null;\n };\n\n compositionStart = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n compositionUpdate = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n compositionEnd = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n onKeydown = (event: KeyboardEvent) => {\n if (isKeyHotkey('mod+a', event)) {\n Transforms.select(this.editor, [0]);\n event.preventDefault();\n }\n this.editor.onKeydown(event);\n };\n\n scrollSelectionIntoView = () => {\n // prevent auto scroll\n };\n}\n","<slate-editable\n #slateEditable\n [editor]=\"editor\"\n [readonly]=\"readonly\"\n [(ngModel)]=\"children\"\n (ngModelChange)=\"valueChange()\"\n [keydown]=\"onKeydown\"\n [renderElement]=\"renderElement\"\n [compositionStart]=\"compositionStart\"\n [compositionUpdate]=\"compositionUpdate\"\n [compositionEnd]=\"compositionEnd\"\n [renderText]=\"renderText\"\n [ngClass]=\"{'editing': !readonly}\"\n [scrollSelectionIntoView]=\"scrollSelectionIntoView\"\n></slate-editable>\n","/*\n * Public API Surface of richtext\n */\nexport * from './text/text.component';\nexport * from './plugins/text.editor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plait-angular-text.mjs","sources":["../../../packages/angular-text/src/plugins/link/link.component.ts","../../../packages/angular-text/src/plugins/mark-hotkey/with-mark-hotkey.ts","../../../packages/angular-text/src/plugins/with-inline-move.ts","../../../packages/angular-text/src/plugins/with-text.ts","../../../packages/angular-text/src/plugins/link/with-link-insert.ts","../../../packages/angular-text/src/plugins/paragraph/paragraph.flavour.ts","../../../packages/angular-text/src/text-node/text.flavour.ts","../../../packages/angular-text/src/text/text.component.ts","../../../packages/angular-text/src/text/text.component.html","../../../packages/angular-text/src/public-api.ts","../../../packages/angular-text/src/plait-angular-text.ts"],"sourcesContent":["import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { LinkElement } from '@plait/common';\nimport { BaseElementComponent } from 'slate-angular';\n\n@Component({\n selector: 'a[plaitLink]',\n template: `\n <span contenteditable=\"false\" class=\"link-break-char\">{{ inlineChromiumBugfix }}</span>\n <span #outletParent></span>\n <span contenteditable=\"false\" class=\"link-break-char\">{{ inlineChromiumBugfix }}</span>\n `,\n host: {\n '[attr.href]': 'element.url',\n target: '_blank',\n class: 'plait-link-node'\n },\n standalone: true\n})\nexport class PlaitLinkNodeComponent extends BaseElementComponent<LinkElement> implements OnInit {\n // Put this at the start and end of an inline component to work around this Chromium bug:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1249405\n inlineChromiumBugfix = String.fromCodePoint(160);\n\n @ViewChild('outletParent', { read: ElementRef, static: true })\n outletParent!: ElementRef;\n\n getOutletParent = () => {\n return this.outletParent.nativeElement;\n };\n\n ngOnInit() {\n super.ngOnInit();\n }\n}\n","import { AngularEditor } from 'slate-angular';\nimport { MarkEditor, markShortcuts, withMark } from '@plait/text-plugins';\n\nexport const withMarkHotkey = <T extends AngularEditor & MarkEditor>(editor: T): T => {\n const e = editor;\n\n const { onKeydown } = e;\n\n e.onKeydown = (event: KeyboardEvent) => {\n markShortcuts(editor, event);\n onKeydown(event);\n };\n\n return withMark(e);\n};\n","import { Editor, Element, Transforms, Range, Path } from 'slate';\nimport { AngularEditor, hotkeys } from 'slate-angular';\n\nexport const withInlineMove = <T extends AngularEditor>(editor: T): T => {\n const { onKeydown } = editor;\n\n editor.onKeydown = (event: KeyboardEvent) => {\n const { selection } = editor;\n if (!selection || !selection.anchor || !selection.focus) {\n onKeydown(event);\n return;\n }\n const isMoveBackward = hotkeys.isMoveBackward(event);\n const isMoveForward = hotkeys.isMoveForward(event);\n const isCollapsed = selection && Range.isCollapsed(selection);\n const isInlineNode = isInline(editor);\n if (isCollapsed && isMoveForward) {\n let isInlineCodeBefore = false;\n if (!isInlineNode) {\n try {\n const { path } = Editor.after(editor, selection)!;\n if (path) {\n isInlineCodeBefore = isInline(editor, path);\n }\n } catch (error) {}\n }\n if (isInlineNode || isInlineCodeBefore) {\n event.preventDefault();\n Transforms.move(editor, { unit: 'offset' });\n return;\n }\n }\n if (isCollapsed && isMoveBackward) {\n let isInlineCodeAfter = false;\n if (!isInlineNode) {\n try {\n const { path } = Editor.before(editor, selection)!;\n isInlineCodeAfter = isInline(editor, path);\n } catch (error) {}\n }\n if (isInlineNode || isInlineCodeAfter) {\n event.preventDefault();\n Transforms.move(editor, { unit: 'offset', reverse: true });\n return;\n }\n }\n onKeydown(event);\n };\n\n return editor;\n};\n\nexport const isInline = (editor: Editor, path?: Path): boolean => {\n const [inlineNode] = Editor.nodes(editor, {\n at: path ? path : editor.selection?.anchor.path,\n match: n => Element.isElement(n) && Editor.isInline(editor, n) && !Editor.isVoid(editor, n)\n });\n return !!inlineNode;\n};\n","import { CLIPBOARD_FORMAT_KEY } from '@plait/text-plugins';\nimport { AngularEditor } from 'slate-angular';\nimport { PlaitTextEditor } from './text.editor';\n\nexport const withText = <T extends AngularEditor>(editor: T) => {\n const e = editor as T & PlaitTextEditor;\n const { insertData } = e;\n\n e.insertBreak = () => {\n editor.insertText('\\n');\n };\n\n e.insertData = (data: DataTransfer) => {\n let text = data.getData('text/plain');\n let plaitData = data.getData(`application/${CLIPBOARD_FORMAT_KEY}`);\n if (!plaitData && text) {\n if (text.endsWith('\\n')) {\n text = text.substring(0, text.length - 1);\n }\n text = text.trim().replace(/\\t+/g, ' ');\n e.insertText(text);\n return;\n }\n insertData(data);\n };\n\n return e;\n};\n","import { Transforms } from 'slate';\nimport { AngularEditor } from 'slate-angular';\nimport { LinkEditor, getTextFromClipboard, isUrl, withLink } from '@plait/text-plugins';\n\nexport const withPasteLink = <T extends AngularEditor>(editor: T): T => {\n const { insertData } = editor;\n editor.insertData = data => {\n const text = getTextFromClipboard(data);\n if (typeof text === 'string' && text && isUrl(text)) {\n LinkEditor.wrapLink(editor, text, text);\n Transforms.move(editor, { distance: 1, unit: 'offset' });\n } else {\n insertData(data);\n }\n };\n\n return withLink(editor);\n};\n","import { ParagraphElement } from '@plait/common';\nimport { AngularEditor, BaseElementFlavour } from 'slate-angular';\n\nexport class ParagraphFlavour<\n T extends ParagraphElement = ParagraphElement,\n K extends AngularEditor = AngularEditor\n> extends BaseElementFlavour<T, K> {\n render() {\n const nativeElement = this.createNativeElement();\n this.nativeElement = nativeElement;\n this.nativeElement.classList.add(`plait-text-paragraph`);\n this.applyAlign();\n }\n\n rerender() {\n this.applyAlign();\n }\n\n applyAlign() {\n if (this.element.align) {\n if (this.nativeElement.style.textAlign !== this.element.align) {\n this.nativeElement.style.textAlign = this.element.align;\n }\n } else if (this.nativeElement.style.textAlign) {\n this.nativeElement.style.removeProperty('text-align');\n }\n }\n\n createNativeElement(): HTMLElement {\n return document.createElement('div');\n }\n}\n","import { CustomText } from '@plait/common';\nimport { MarkTypes } from '@plait/text-plugins';\nimport { DefaultTextFlavour } from 'slate-angular';\n\nexport class TextFlavour extends DefaultTextFlavour {\n excludes = ['color', 'font-size', 'text'];\n\n attributes: string[] = [];\n\n render() {\n super.render();\n this.applyRichtext();\n }\n\n applyRichtext() {\n const text = this.text as CustomText;\n this.attributes.forEach((attr) => {\n this.nativeElement.removeAttribute(attr);\n });\n this.attributes = [];\n for (const key in text) {\n if (Object.prototype.hasOwnProperty.call(text, key) && !this.excludes.includes(key)) {\n const attr = `plait-${key}`;\n this.nativeElement.setAttribute(attr, 'true');\n this.attributes.push(attr);\n }\n }\n\n const fontSize = text[MarkTypes.fontSize];\n this.nativeElement.setAttribute(`plait-${MarkTypes.fontSize}`, fontSize ? fontSize : '');\n if (text[MarkTypes.color]) {\n this.nativeElement.style.color = text[MarkTypes.color];\n } else {\n this.nativeElement.style.color = '';\n }\n }\n\n onContextChange() {\n super.onContextChange();\n if (this.initialized) {\n this.applyRichtext();\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { isKeyHotkey } from 'is-hotkey';\nimport { Editor, Element, Text, Transforms, createEditor } from 'slate';\nimport { SlateEditable, withAngular } from 'slate-angular';\nimport { withHistory } from 'slate-history';\nimport { PlaitLinkNodeComponent } from '../plugins/link/link.component';\nimport { withMarkHotkey } from '../plugins/mark-hotkey/with-mark-hotkey';\nimport { withInlineMove } from '../plugins/with-inline-move';\nimport { withText } from '../plugins/with-text';\nimport { FormsModule } from '@angular/forms';\nimport { LinkElement, TextChangeData, TextPlugin } from '@plait/common';\nimport { CLIPBOARD_FORMAT_KEY, MarkTypes } from '@plait/text-plugins';\nimport { withPasteLink } from '../plugins/link/with-link-insert';\nimport { CommonModule } from '@angular/common';\nimport { PlaitBoard } from '@plait/core';\nimport { ParagraphFlavour } from '../plugins/paragraph/paragraph.flavour';\nimport { TextFlavour } from '../text-node/text.flavour';\n\n@Component({\n selector: 'plait-text',\n templateUrl: './text.component.html',\n imports: [SlateEditable, FormsModule, CommonModule]\n})\nexport class PlaitTextComponent implements OnInit, AfterViewInit, OnChanges {\n @HostBinding('class') hostClass = 'plait-text-container';\n\n children: Element[] = [];\n\n @Input() textPlugins?: TextPlugin[];\n\n @Input() set text(text: Element) {\n this.children = [text];\n this.cdr.markForCheck();\n }\n\n @Input() readonly = true;\n\n @ViewChild('slateEditable')\n slateEditable!: SlateEditable;\n\n @Input()\n onChange!: (data: TextChangeData) => void;\n\n @Input()\n afterInit?: (editor: Editor) => void;\n\n @Input()\n onComposition!: (event: CompositionEvent) => void;\n\n @Input()\n board!: PlaitBoard;\n\n editor = withInlineMove(withPasteLink(withMarkHotkey(withText(withHistory(withAngular(createEditor(), CLIPBOARD_FORMAT_KEY))))));\n\n nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n constructor(public renderer2: Renderer2, private cdr: ChangeDetectorRef, public elementRef: ElementRef<HTMLElement>) {}\n\n valueChange() {\n this.onChange({ newText: this.editor.children[0] as Element, operations: this.editor.operations });\n }\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnInit(): void {\n if (this.textPlugins) {\n this.textPlugins.forEach((plugin) => {\n plugin(this.editor);\n });\n }\n this.editor.board = this.board;\n }\n\n ngAfterViewInit(): void {\n this.afterInit && this.afterInit(this.editor);\n }\n\n renderElement = (element: Element) => {\n const render = this.editor.renderElement;\n if (render && render(element)) {\n return render(element);\n }\n\n if ((element as LinkElement).type === 'link') {\n return PlaitLinkNodeComponent;\n }\n\n return ParagraphFlavour;\n };\n\n renderText: any = (text: Text) => {\n for (const key in MarkTypes) {\n if ((text as any)[(MarkTypes as any)[key]]) {\n return TextFlavour;\n }\n }\n return null;\n };\n\n compositionStart = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n compositionUpdate = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n compositionEnd = (event: CompositionEvent) => {\n this.onComposition(event);\n };\n\n onKeydown = (event: KeyboardEvent) => {\n if (isKeyHotkey('mod+a', event)) {\n Transforms.select(this.editor, [0]);\n event.preventDefault();\n }\n this.editor.onKeydown(event);\n };\n\n scrollSelectionIntoView = () => {\n // prevent auto scroll\n };\n}\n","<slate-editable\n #slateEditable\n [editor]=\"editor\"\n [readonly]=\"readonly\"\n [(ngModel)]=\"children\"\n (ngModelChange)=\"valueChange()\"\n [keydown]=\"onKeydown\"\n [renderElement]=\"renderElement\"\n [compositionStart]=\"compositionStart\"\n [compositionUpdate]=\"compositionUpdate\"\n [compositionEnd]=\"compositionEnd\"\n [renderText]=\"renderText\"\n [ngClass]=\"{'editing': !readonly}\"\n [scrollSelectionIntoView]=\"scrollSelectionIntoView\"\n></slate-editable>\n","/*\n * Public API Surface of richtext\n */\nexport * from './text/text.component';\nexport * from './plugins/text.editor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/styles/styles.scss
CHANGED
|
@@ -36,23 +36,23 @@
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
[
|
|
39
|
+
[plait-underlined][plait-strike] {
|
|
40
40
|
text-decoration: underline line-through;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
[
|
|
43
|
+
[plait-strike] {
|
|
44
44
|
text-decoration: line-through;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
[
|
|
47
|
+
[plait-underlined] {
|
|
48
48
|
text-decoration: underline;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
[
|
|
51
|
+
[plait-italic] {
|
|
52
52
|
font-style: italic;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
[
|
|
55
|
+
[plait-bold] {
|
|
56
56
|
font-weight: bold;
|
|
57
57
|
}
|
|
58
58
|
@each $size, $liMl,
|