3.0.5 (2026-01-30)
- custom-class: Preserve HTML structure in multiline selections (#594) (#595)
- Fixed
createCustomClass()stripping HTML when applying custom classes to multiline content - Added
modeoption toCustomClass:'inline','block','auto'(default) - Smart detection: inline mode for single blocks, block mode for multiple paragraphs
- Block mode applies class to each block element (P, DIV, H1-H6, LI, etc.)
- Uses DOM Range API with
extractContents()+insertNode()instead ofsel.toString()
- Fixed
- config: Add
textDirectionoption for RTL/LTR support (#520) (#592)- New config property:
textDirection?: 'ltr' | 'rtl' | 'auto' - Binds to HTML
dirattribute on editor element - Thanks to @jamesey2001 for the contribution
- New config property:
3.0.4 (2025-12-18) - Security Hotfix
- CRITICAL: Fixed XSS vulnerability in
toggleEditorMode()method (#580) (#587)- XSS could execute when switching from HTML source mode back to WYSIWYG
- User-entered HTML was set via innerHTML without sanitization
- Sanitization now properly applied in both code paths
- Thanks to @MarioTesoro for finding the root cause and submitting the fix
v3.0.3 fix was incomplete - it only covered refreshView() but not toggleEditorMode(). This release provides complete XSS protection.
IMMEDIATE UPGRADE RECOMMENDED for all users. This release completes the security fix started in v3.0.3.
3.0.3 (2025-01-22) - Security Hotfix
- CRITICAL: Fixed XSS vulnerability in
refreshView()method (#580) (774a97d)- XSS could bypass sanitizer when setting editor value via ngModel/formControl
- Sanitization now properly applied to all innerHTML assignments
- Thanks to @MarioTesoro for responsible disclosure with PoC
- links: Preserve relative URLs when editing existing links (#359) (c691d30)
- Use
getAttribute('href')instead of.hrefproperty - Prevents adding hostname to relative paths
- Use
- debug: Remove debug
console.logstatement from focus() method (#324) (c691d30)
IMMEDIATE UPGRADE RECOMMENDED for all users. This release fixes a critical security vulnerability.
3.0.2 (2025-01-22)
- toolbar: toolbarHiddenButtons option now works without Bootstrap (#544) (3563552)
- image: allow re-uploading same image after deletion (#543, #568, #503) (7d21718)
- video: support YouTube short URLs (youtu.be format) (#557, #554) (4aa8397)
- issues: Systematic triage completed - 61 issues closed, 249 remain open
- documentation: Added issue triage session record
3.0.1 (2025-11-22)
- Icons: Fixed list icons (unordered/ordered) display consistency in toolbar
- GitHub Actions: Added automated npm publishing workflow
- npm Publishing: Configured Granular Access Token authentication
- GitHub Releases: Automated release creation with changelog
3.0.0 (2025-11-22) Major Angular 20 Upgrade
🎉 Stable Release - Production Ready!
- Angular Version: Minimum required version is now Angular 20.0.0
- RxJS: Requires RxJS 7.8.0 or higher (upgraded from 6.5.5)
- TypeScript: Requires TypeScript 5.4 or higher
- zone.js: Updated to 0.15.1
- Angular 20 Support: Full compatibility with Angular 20.3.13 (v20-lts)
- Angular 21 Ready: Forward compatible with Angular 21.x
- Modern Build System: Updated to latest ng-packagr 20.3.2
- Enhanced Type Safety: Improved TypeScript strict mode compliance
- Font Awesome Removed: No external icon dependencies - using pure SVG icons (27 icons)
- Zero External Icon Dependencies: Fully self-contained icon system
- Migrated through: Angular 13 → 18 → 19 → 20
- All Angular CLI migrations applied successfully
- Updated DOCUMENT import from @angular/core (Angular 20 requirement)
- Modernized test infrastructure (waitForAsync)
- ESLint: Updated to @angular-eslint 20.x
- Linting: All files pass linting (0 errors)
- Build: Both development and production builds verified
- Tests: 13/13 tests passing (100% success rate)
- Tests: Fixed AeSelectComponent tests for mousedown event handling
- Demo: Updated demo app for Angular 20 compatibility
- Removed deprecated
asynctest helper (usewaitForAsync) - Fixed TypeScript strict type checking for event handlers
- Disabled new strict rules for backward compatibility (prefer-standalone, prefer-inject)
- Updated moduleResolution to 'bundler' (Angular 20 standard)
{
"@angular/common": "^20.0.0 || ^21.0.0",
"@angular/core": "^20.0.0 || ^21.0.0",
"@angular/forms": "^20.0.0 || ^21.0.0",
"rxjs": "^7.8.0"
}3.0.0-beta.2 (2025-01-10)
- Refactor ae-select component (button → span)
2.0.0 (2022-01-06) Major release
- Update to Angular v.13 and new Ivy compatible package format
1.0.2 (2019-11-28) Technical release
- Readme update for npmjs.com
1.0.1 (2019-11-27) Technical release
- Fix logo at npmjs.com readme