You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
imageSrcResolver Input: New input (also available as imageSrcResolver in AteEditorConfig) typed AteImageSrcResolver ((src: string) => string | Promise<string> | Observable<string>) that maps the src stored in the document to the URL the editor displays, for images a plain <img src> cannot load (e.g. behind an Authorization header: fetch the image and resolve to a blob: URL). The document, getHTML(), getJSON(), exports, copy and paste keep the original src. It is applied to initial content, uploaded, pasted and replaced images and re-applied when a src changes; an older resolution never overwrites a newer src, and the original src is displayed when the resolver throws, rejects or returns an empty value. "Download Image" and the "Original" size use the resolved URL. Setting or replacing the resolver after the editor is created re-resolves the images already displayed, each keeping its current URL until the new one is ready. The editor never revokes the URLs the resolver returns. (#82)
paste Input: New input (also available as paste in AteEditorConfig, typed AtePasteConfig) that controls what is kept from HTML pasted or dropped from other apps. colors: false removes text colors and highlights: false removes highlights and background colors, so hard-coded black text or white backgrounds from Google Docs, Word or web pages stay readable in dark themes; both default to true, so nothing changes unless you opt in. Each paste gets a source: editor (copied from an Angular Tiptap Editor, marked on copy, which always keeps its formatting), office (Word/Excel) or external (everything else, including other ProseMirror-based editors such as Confluence). transformHTML(html, { source }) runs last, after the Office cleanup and the format keys, and returns the HTML to insert. Settings are read at paste time. New public types: AtePasteConfig, AtePasteContext, AtePasteSource. (#80)
Fixed
Placeholder Not Following Runtime Changes: The placeholder was only read when the Tiptap editor was created, so changing the placeholder input, config.placeholder, the locale input / config.locale or the global locale (AteI18nService.setLocale()) left the old text visible until the editor was re-created. The placeholder now updates immediately without re-creating the editor (the document and undo history are untouched), and the source order (placeholder input, then config.placeholder, then the translated default) is unchanged. (#78)
Per-instance locale Now Applies to the Whole Editor: The locale input (and AteEditorConfig.locale) only reached the placeholder, the counters and part of the slash menu, while the toolbar, bubble menus (text, color, link, image, table, cell), block controls and image upload messages kept following the global locale. Every part of an editor instance now uses that instance's translations, so editors with different locales can share a page and AteI18nService.setLocale() is no longer needed as a workaround. Editors without locale keep following the global locale. (#76)