@plait/angular-text 0.92.3 → 0.93.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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { ElementRef, ViewChild, Component, Input, HostBinding } from '@angular/core';
2
+ import { ElementRef, ViewChild, Component, inject, Renderer2, ChangeDetectorRef, Input, HostBinding } from '@angular/core';
3
3
  import { isKeyHotkey } from 'is-hotkey';
4
4
  import { Range, Editor, Transforms, Element, createEditor } from 'slate';
5
5
  import { BaseElementComponent, hotkeys, BaseElementFlavour, DefaultTextFlavour, withAngular, SlateEditable } from 'slate-angular';
@@ -10,6 +10,7 @@ import { FormsModule } from '@angular/forms';
10
10
  import * as i2 from '@angular/common';
11
11
  import { CommonModule } from '@angular/common';
12
12
 
13
+ /* eslint-disable @angular-eslint/component-selector */
13
14
  class PlaitLinkNodeComponent extends BaseElementComponent {
14
15
  constructor() {
15
16
  super(...arguments);
@@ -23,14 +24,14 @@ class PlaitLinkNodeComponent extends BaseElementComponent {
23
24
  ngOnInit() {
24
25
  super.ngOnInit();
25
26
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: PlaitLinkNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.12", type: PlaitLinkNodeComponent, isStandalone: true, selector: "a[plaitLink]", host: { attributes: { "target": "_blank" }, properties: { "attr.href": "element.url" }, classAttribute: "plait-link-node" }, viewQueries: [{ propertyName: "outletParent", first: true, predicate: ["outletParent"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: `
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PlaitLinkNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.6", type: PlaitLinkNodeComponent, isStandalone: true, selector: "a[plaitLink]", host: { attributes: { "target": "_blank" }, properties: { "attr.href": "element.url" }, classAttribute: "plait-link-node" }, viewQueries: [{ propertyName: "outletParent", first: true, predicate: ["outletParent"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: `
28
29
  <span contenteditable="false" class="link-break-char">{{ inlineChromiumBugfix }}</span>
29
30
  <span #outletParent></span>
30
31
  <span contenteditable="false" class="link-break-char">{{ inlineChromiumBugfix }}</span>
31
32
  `, isInline: true }); }
32
33
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: PlaitLinkNodeComponent, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PlaitLinkNodeComponent, decorators: [{
34
35
  type: Component,
35
36
  args: [{
36
37
  selector: 'a[plaitLink]',
@@ -112,7 +113,7 @@ const withInlineMove = (editor) => {
112
113
  const isInline = (editor, path) => {
113
114
  const [inlineNode] = Editor.nodes(editor, {
114
115
  at: path ? path : editor.selection?.anchor.path,
115
- match: n => Element.isElement(n) && Editor.isInline(editor, n) && !Editor.isVoid(editor, n)
116
+ match: (n) => Element.isElement(n) && Editor.isInline(editor, n) && !Editor.isVoid(editor, n)
116
117
  });
117
118
  return !!inlineNode;
118
119
  };
@@ -141,7 +142,7 @@ const withText = (editor) => {
141
142
 
142
143
  const withPasteLink = (editor) => {
143
144
  const { insertData } = editor;
144
- editor.insertData = data => {
145
+ editor.insertData = (data) => {
145
146
  const text = getTextFromClipboard(data);
146
147
  if (typeof text === 'string' && text && isUrl(text)) {
147
148
  LinkEditor.wrapLink(editor, text, text);
@@ -227,10 +228,10 @@ class PlaitTextComponent {
227
228
  nativeElement() {
228
229
  return this.elementRef.nativeElement;
229
230
  }
230
- constructor(renderer2, cdr, elementRef) {
231
- this.renderer2 = renderer2;
232
- this.cdr = cdr;
233
- this.elementRef = elementRef;
231
+ constructor() {
232
+ this.renderer2 = inject(Renderer2);
233
+ this.cdr = inject(ChangeDetectorRef);
234
+ this.elementRef = inject(ElementRef);
234
235
  this.hostClass = 'plait-text-container';
235
236
  this.children = [];
236
237
  this.readonly = true;
@@ -276,7 +277,6 @@ class PlaitTextComponent {
276
277
  valueChange() {
277
278
  this.onChange({ newText: this.editor.children[0], operations: this.editor.operations });
278
279
  }
279
- ngOnChanges(changes) { }
280
280
  ngOnInit() {
281
281
  if (this.textPlugins) {
282
282
  this.textPlugins.forEach((plugin) => {
@@ -288,13 +288,13 @@ class PlaitTextComponent {
288
288
  ngAfterViewInit() {
289
289
  this.afterInit && this.afterInit(this.editor);
290
290
  }
291
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: PlaitTextComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
292
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.12", type: PlaitTextComponent, isStandalone: true, selector: "plait-text", inputs: { textPlugins: "textPlugins", text: "text", readonly: "readonly", onChange: "onChange", afterInit: "afterInit", onComposition: "onComposition", board: "board" }, host: { properties: { "class": "this.hostClass" } }, viewQueries: [{ propertyName: "slateEditable", first: true, predicate: ["slateEditable"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: SlateEditable, selector: "slate-editable", inputs: ["editor", "renderElement", "renderLeaf", "renderText", "decorate", "placeholderDecorate", "scrollSelectionIntoView", "isStrictDecorate", "trackBy", "readonly", "placeholder", "virtualScroll", "beforeInput", "blur", "click", "compositionEnd", "compositionUpdate", "compositionStart", "copy", "cut", "dragOver", "dragStart", "dragEnd", "drop", "focus", "keydown", "paste", "spellCheck", "autoCorrect", "autoCapitalize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
291
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PlaitTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
292
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.6", type: PlaitTextComponent, isStandalone: true, selector: "plait-text", inputs: { textPlugins: "textPlugins", text: "text", readonly: "readonly", onChange: "onChange", afterInit: "afterInit", onComposition: "onComposition", board: "board" }, host: { properties: { "class": "this.hostClass" } }, viewQueries: [{ propertyName: "slateEditable", first: true, predicate: ["slateEditable"], descendants: true }], ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: SlateEditable, selector: "slate-editable", inputs: ["editor", "renderElement", "renderLeaf", "renderText", "decorate", "placeholderDecorate", "scrollSelectionIntoView", "isStrictDecorate", "trackBy", "readonly", "placeholder", "virtualScroll", "beforeInput", "blur", "click", "compositionEnd", "compositionUpdate", "compositionStart", "copy", "cut", "dragOver", "dragStart", "dragEnd", "drop", "focus", "keydown", "paste", "spellCheck", "autoCorrect", "autoCapitalize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
293
293
  }
294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: PlaitTextComponent, decorators: [{
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: PlaitTextComponent, decorators: [{
295
295
  type: Component,
296
296
  args: [{ selector: 'plait-text', imports: [SlateEditable, FormsModule, CommonModule], template: "<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" }]
297
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { hostClass: [{
297
+ }], ctorParameters: () => [], propDecorators: { hostClass: [{
298
298
  type: HostBinding,
299
299
  args: ['class']
300
300
  }], textPlugins: [{
@@ -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/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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"}
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/* eslint-disable @angular-eslint/component-selector */\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 inject\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 {\n renderer2 = inject(Renderer2);\n private cdr = inject(ChangeDetectorRef);\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\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() {}\n\n valueChange() {\n this.onChange({ newText: this.editor.children[0] as Element, operations: this.editor.operations });\n }\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
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@plait/angular-text",
3
- "version": "0.92.3",
3
+ "version": "0.93.0",
4
4
  "peerDependencies": {
5
- "@angular/common": "^20.0.0",
6
- "@angular/core": "^20.0.0",
7
- "slate-angular": "^20.2.21",
5
+ "@angular/common": "^21.0.0",
6
+ "@angular/core": "^21.0.0",
7
+ "slate-angular": "^21.0.0-next.1",
8
8
  "slate": "^0.117.2",
9
9
  "slate-dom": "^0.116.0",
10
10
  "slate-history": "^0.115.0"
@@ -23,7 +23,7 @@
23
23
  "default": "./package.json"
24
24
  },
25
25
  ".": {
26
- "types": "./index.d.ts",
26
+ "types": "./types/plait-angular-text.d.ts",
27
27
  "default": "./fesm2022/plait-angular-text.mjs"
28
28
  }
29
29
  },
@@ -37,6 +37,7 @@
37
37
  "plait"
38
38
  ],
39
39
  "module": "fesm2022/plait-angular-text.mjs",
40
- "typings": "index.d.ts",
41
- "sideEffects": false
40
+ "typings": "types/plait-angular-text.d.ts",
41
+ "sideEffects": false,
42
+ "type": "module"
42
43
  }
@@ -5,11 +5,11 @@ import { SlateEditable, AngularEditor, ViewType } from 'slate-angular';
5
5
  import * as slate from 'slate';
6
6
  import { Element, Editor } from 'slate';
7
7
  import * as i0 from '@angular/core';
8
- import { OnInit, AfterViewInit, OnChanges, Renderer2, ElementRef, ChangeDetectorRef, SimpleChanges } from '@angular/core';
8
+ import { OnInit, AfterViewInit, Renderer2, ElementRef } from '@angular/core';
9
9
  import { TextPlugin, TextChangeData } from '@plait/common';
10
10
  import { PlaitBoard } from '@plait/core';
11
11
 
12
- declare class PlaitTextComponent implements OnInit, AfterViewInit, OnChanges {
12
+ declare class PlaitTextComponent implements OnInit, AfterViewInit {
13
13
  renderer2: Renderer2;
14
14
  private cdr;
15
15
  elementRef: ElementRef<HTMLElement>;
@@ -25,9 +25,8 @@ declare class PlaitTextComponent implements OnInit, AfterViewInit, OnChanges {
25
25
  board: PlaitBoard;
26
26
  editor: slate.BaseEditor & slate_angular.AngularEditor & slate_history.HistoryEditor & _plait_angular_text.PlaitTextEditor;
27
27
  nativeElement(): HTMLElement;
28
- constructor(renderer2: Renderer2, cdr: ChangeDetectorRef, elementRef: ElementRef<HTMLElement>);
28
+ constructor();
29
29
  valueChange(): void;
30
- ngOnChanges(changes: SimpleChanges): void;
31
30
  ngOnInit(): void;
32
31
  ngAfterViewInit(): void;
33
32
  renderElement: (element: Element) => slate_angular.ViewType;