Notable changes to Draft.js will be documented in this file.
Changes to src are live in production on facebook.com at the time of release.
- Expose
onRightArrowandonLeftArrowprops to allow handling keyboard events when right or left arrow is pressed. (@eessex in #1384) - Expose Draft.css as default CSS export in package.json for use by CSS preprocessors. (@darobin in #566)
- Fix bug where editors inside draggable parent were broken for Safari. (@mattkrick in #1326)
- Stop pulling in Enzyme as production dependency. D'oh. (@flarnie in #1415)
- Fix
TypeError: Cannot read property 'nodeType' of undefinederror whereanchorNodewasundefined. (@tleunen in #1407) - Fix error thrown when callback tries to
focuson editor after it has been unmounted. (@mattkrick in #1409) - Fix bug where selecting a single character then typing it doesn't replace it. (@karanjthakkar in #719)
- Clear the block type when backspacing at the start of the first block with rich text utils. (@jvaill in #748)
- Fixed bug where using a custom block type without overriding the default block map threw an error. (@southerncross in #1302)
- Update dependency on
fbjsto get fix for bug wherefocus()caused unexpected scroll (@flarnie in #1401)
- Added support for
aria-controlsin draft.js (@jessebeach in 7f0cab28)
- Change
aria-ownstoaria-controlsin draft.js. (@jessebeach in 7f0cab28)- Deprecates support of
ariaOwnsandariaOwneeIDprops.
- Deprecates support of
- Deprecate use of
ariaHasPopupprop in draft.js.ariaExpandedshould be used instead if an input is showing a dropdown with options.(@jessebeach in 744e9b4e) - Pasting an
imgno longer inserts thesrcby default; now inserts image emoji if no decorator is used. (@aadsm in 0b22d713 and @flarnie in 1378)
- Fix issue where selection state was not cleared on blur and refocus of the editor. (@sophiebits in 19b9b1c5)
- Fix issue where pasting code into code block defaulted to plain text, and styles were dropped from pasted blocks in general. (@bumbu in e8d10112)
- Fix issue where Flow was not running with some 'import' statements (@flarnie & @yuku-t in #1263)
- Fix bug where Draft threw when two keys were pressed at same time in React 16 async mode (@sophiebits in 1c6a49b8)
- Fix recent Chrome bug where tab causes error (@sophiebits in 5863399a)
- Fix "Refs must have owner" error when multiple copies of React are used (@mks11 in #925)
- Fix issue where AT could treat 'return' as submit in Draft (@jessebeach in #1295)
- Don't allow
aria-expandedto be true unless the aria role is combobox (@jessebeach in 3494d45d) - Fix pesky "This Selection object doesn't have any Ranges" bug (@sophiebits in 96688e10 and 036e3a84)
- Fix bug where pasting
imgwith large data URL source could crash editor (@aadsm in 0b22d713)
- Support UMD in dist output format (#1090)
- Expose textDirectionality prop
- Expose props disabling auto-correct, auto-complete, auto-capitalize
- Add
editorKeyprop for SSR - Pass
blocktocustomStyleFncallback - Added
moveAtomicBlocktoAtomicBlockUtils
- Fix some cases of "Failed to execute 'setStart' on 'Range" bug (#1162)
- Fix Chrome text deletion bug (#1155)
- Pass fresh editorState to edit handlers (#1112 and #1113)
- Fix for text insertion bugs in Android 5.1
- Correctly delete immutable and segmented entity content when at the edge of a
selection
- Fix bug where all text except first letter was dropped in IE11
- Fix bug where starting new line incorrectly toggled inline style
- Fix 'getRangeClientRects' to work around webkit selection bounding rect bug
- Add improved API for entity manipulation to contentState
- Add deprecation warnings to old Entity module API
- Add image support to convertFromHTML
- Add option of 'aliasedElements' in block render map
- This version supports both the old and new Entity API; we are deprecating the Entity module in favor of using contentState. See the migration guide.
- Fix bug where block data was not removed when deleting atomic block
- Fix bug preventing pasting from clipboard
- Fix dead key deletion and deletion in 2-Set Korean
- Fix ContentState.createFromBlockArray to allow taking an empty array
- Improve typing in Korean on Windows
customStyleFnfor more control over inline style ranges
- Update Flow version
- Fix flow error in DraftEditorDragHandler
- Return 'handled' or 'not-handled' from cancellable handlers callback
- Boolean return value is deprecated
- Expand and update documentation
- Fix selection of atomic block when it is the last block
- Preserve the depth of custom block types when converting to raw
- Stop mutating component children when creating blocks with wrapper elements
- Include
object-assignin npm dependencies - Include
babel-corein npm dependencies of tex example
customStyleFnfor more control over inline style ranges- Uses
internalClipboardfor Safari - Metadata for
ContentBlockobjects convertFromHTMLToContentBlocks:- Support for
mailtoprotocol for links - Support "unset" inline styles
- Support for
- Run ESLint on examples
- Removed redundant ESLint module in TeX example
- Update Travis CI config for readability, Node v4 requirements, and pruning/updating npm dependencies
- Use
immutable~3.7.4 to avoid Flow errors in updated versions - Modify
getSelectionOffsetKeyForNodeto search for nested offset-annotated nodes - Upgrade eslint to 3.0.1, use fbjs config
- Update to Flow 0.28
- Jest
- Update to 12.1.1
- Replaced
jest.fn().mockReturnValue(x)withjest.fn(() => x)
- Remove extra spaces from the text decoration style
- No longer using
nullthrowsforblockRenderMap convertFromHTMLToContentBlocks:- Improved variable names in
joinChunks - Additional whitelisted entities such as
className,rel,target,title
- Improved variable names in
- Fix bug where placeholder text was not being erased in Chrome
- Fix bug where double click link in Firefox broke selection
- Kill iOS tooltips
- removed unnecessary
undefinedchecks onDraftEditorLeaf convertFromHTMLToContentBlocks:- Preserve pasted block type on paste
- Strip XML carriage returns and zero-width spaces
getBlockMapSupportedTags()will always return a valid array of tags
- Documentation fixes
blockRenderMap: A map that allows configuration for the DOM elements and wrapper components to render, keyed by block type- Includes configurability of element-to-block-type paste processing
- Update to Jest 11.0.2
- Change deletion behavior around
atomicblocks to avoid DOM selection errors - Properly apply entities across multiple blocks in
- Improve placeholder behavior for a11y
- Properly remove and modify entity ranges during spellcheck changes
- Match Chrome
<textarea>behavior during cmd+backspace command at visual line-start
ContentState.getFirstBlock()convenience method
- return key handling now goes through command flow to enable easier
custom
'split-block'handling. convertFromRawnow returns aContentStateobject instead of anArray<ContentBlock>
- option+spacebar no longer incorrectly scrolls browser in Chrome OSX
- Cursor behavior when adding soft newlines
AtomicBlockUtils, a utility module to simplify addingatomicblocks to anEditorState
- The
mediablock type is nowatomic, to better represent that this type is not just intended for photos and videos
- Avoid clearing inline style override when setting block type or depth
editablefield for custom block component configuration- Default key binding support for Ctrl+M (
split-block)
- Always wrap custom block components, based on block type
- Includes
data-editor,data-offset-key,data-blockin block props
- Includes
- Replace
onPasteRawTextprop withhandlePastedText
- Properly extract custom inline styles for
convertToRaw - Fix internal paste behavior to better handle copied custom blocks
- Export
getVisibleSelectionRect - Export
convertFromHTML - Export
DraftEditorBlock
- Build before publish to get the warning suppression in place correctly
- React 15 RC as peer/dev dependency, provide
suppressContentEditableWarning
- Move
white-space: pre-wrapinto inline style to resolve insertion issues handleDropprop method forEditorto allow manual drop managementdecoratedTextprop for decorator componentsgetVisibleSelectionRect, to provide Rect for DOM selection- Export
KeyBindingUtilandgetDefaultKeyBinding
- Triple-clicks followed by block type changes now only affect first block
DraftEditorLeafnow re-renders correctly when its styles change- Backspace behavior within empty code blocks
- Initial public release