## [2.5.0] - 2022-06-04 * Support Flutter 3.0 (remove warnings) (@Cteq3132) * [BREAKING] Support modifying `foreColorSelected` and `backColorSelected` when using a custom dialog for font coloring * If you are using a custom `updateStatus` function for the font coloring, that function is now defined as `updateStatus(Color)` * Added `disabled` parameter to automatically disable editor on initial load * Fixed white background color appearing sometimes when pressing backspace on text * Added `useHybridComposition` parameter in case devs want to disable this behavior (improves animations of app) * [WEB] Fixed editor height being 0 when `initialText` is `null` (@dab246) * Migrated example to Android embedding V2 * Removed woff fonts to allow iOS App Store submissions ## [2.4.0] - 2021-10-30 * Improved color picker * Added scrollable support to picker * Fixed issue where keyboard would disappear and prevent users from selecting a new color * Added support for getting selected text in Flutter Web (`controller.getSelectedTextWeb()`) * Added support for spellcheck * Added support for custom options in summernote initialization * Added support for a hard stop on character limit (will not allow user to type further) * Fixed bug where focusing editor would scroll it back to the top and not show the caret position * Fixed height not updating in Flutter Web when `callbacks` was `null` * Updated dependencies and fixed flutter_colorpicker dependency error (@eliudio) ## [2.3.0] - 2021-09-09 * Potentially fixed bad state error for `stream.first` * Fixed Summernote-@-Mention not inserting text after selecting the dropdown item * Fixed whitespace after @ sign when inserting a mention * Add support for overriding URL loading on mobile with `onNavigationRequestMobile` callback * Hide keyboard when opening color picker dialog * Use try/catch on `SystemChannel` call on web to prevent exception * Added a character counter for text in the editor - access via `controller.characterCount` * Fixed auto adjust height not working in some cases * Fixed editor height not updating when focused after a TextField was previously focused * Updated dependencies (@JEuler) NOTE: If you are on Flutter Beta+, you must use `dependency_overrides` in `pubspec.yaml`!! ```yaml dependency_overrides: flutter_colorpicker: ^0.5.0 ``` ## [2.2.0+1] - 2021-06-15 (BETA) * Updated `flutter_colorpicker` to the latest version to fix deprecations on Flutter beta+ * [NOTE] Do not use this version on Flutter stable! ## [2.2.0] - 2021-06-14 * Fixed null safety warnings due to latest `file_picker` version * Potentially fixed editor controller creating a new instance on widget rebuild * Fixed issue where custom HTML files would have custom JS replaced with built-in JS * Fixed darkMode not applying when `filePath` is used on Android * Fixed "null" text showing as the hint when no hint is given * Added new `onChangeSelection` callback that passes the editor settings whenever the user changes their current selection (e.g. tap on a different word, create a new node, select text, etc) * Added support for custom JS injection on Flutter Web * Fixed minor bug with automatic height adjustment on mobile * Added new `ToolbarType.nativeExpandable` which allows the user to switch between the scrollview or gridview toolbar on the fly * Support setting the `inputmode` for the editor, which changes the virtual keyboard display on mobile devices (e.g. number pad, email keyboard, etc) * [BREAKING] renamed `onChange` callback to `onChangeContent` * [BREAKING] disabled a lot of the buttons by default, now only around half of the editor buttons are enabled to improve the UX. You can still re-enable the rest if you want. * [BREAKING] min Flutter version requirement bumped to 2.2.0 ## [2.1.1] - 2021-05-22 * Fixed bottom overflow error on `AlertDialog`s if the screen size is small * Fixed `StyleButtons(style: false)` would not remove the style dropdown * Fixed JS/Dart communication hiccup on Web (make sure `postMessage` data is not null) * Code cleanup ## [2.1.0+1] - 2021-05-11 * Hotfix for `copyWith` not defined for `ScrollBehavior` in v2.1.0 ## [2.1.0] - 2021-05-10 * Fixed `setState` and `Stream.first` error on page dispose * Fixed height adjustment not working * Fixed `getText` on Web * Improved dropdown UX when `ToolbarPosition.belowEditor` by opening upwards and making it scrollable after a certain height ## [2.0.1] - 2021-04-28 * Added support for setting custom `UserScript`s on the webview (mobile only) * Added support for customizing the context menu (menu when user selects text) for the webview (mobile only) * Added `LongPressGestureRecognizer` to the webview to allow users to select text via a long press (mobile only) * You can set the duration before the long press is recognized via `HtmlEditorOptions > mobileLongPressDuration` * Added support for placing the toolbar wherever using `HtmlToolbarOptions > toolbarPosition: ToolbarPosition.custom` * See the README if you'd like to use any of these new features. `UserScript` and the context menu customization have external documentation via flutter_inappwebview - the docs are linked in the README. ## [2.0.0+1] - 2021-04-22 * Transitioned to fully native controls! These are extremely customizable and have much better UX than the previous controls. * [BREAKING] refactored a lot of options into separate constructors * [BREAKING] refactored toolbar classes, so toolbar customizations will need updating * Added a bunch of interceptors and callbacks for button presses * Added the ability to make custom buttons and set their positions * Added native support for numerous Summernote plugins * [BREAKING] removed all Summernote plugins except Summernote @ Mention. The package now supports the majority of plugins out of the box. * Reduced package size by removing the Summernote plugin files * Reduced size further by using a stripped-down version of Summernote @ Mention libs * Added `execCommand` to controller to help you create custom toolbar buttons * Improved automatic height adjustment * Bumped dependencies * [BREAKING] Require Flutter 2.0.0+ * As always, see the README for full documentation on these changes * See the [Migration Guide](https://github.com/tneotia/html-editor-enhanced/wiki/v2.0.0-Migration-Guide) for help migrating your v1.x.x widget code ## [1.8.0] - 2021-04-07 * Add support for `getSuggestionsMobile` (Summernote @ Mentions Plugin) - allows you to programatically return the list of mentions. * Only supported on mobile. * [BREAKING] renamed `mentions` to `mentionsWeb` as a result of this change * Added support for the remainder of Summernote callbacks: * `onBeforeCommand` * `onChangeCodeview` * `onDialogShown` * `onImageUploadError` * `onMouseDown` * `onMouseUp` * `onScroll` * See the README for how these work. * Added a few new functions: * recalculateHeight(): recalculates the editor height and applies it * addNotification(): adds a notification bar to the bottom of the editor in a specified style with specified text * removeNotification(): removes the current notification from the bottom of the editor * Fixed blank space at the bottom of the editor when `showBottomToolbar: false` * Fixed 'Android resource linking failed' (bumped flutter_inappwebview to 5.3.1+1) ## [1.7.1] - 2021-03-26 * Fixed bug where initial text would not be inserted and default toolbar would be shown regardless of editor options * Significantly improved keyboard height detection (detect when keyboard comes up and goes down) * Adjusted HTML processing algorithm to fix issues where `"` and `'` would not be properly escaped on HTML insertion * Added `processNewLineAsBr` - this will replace any `\n` in the input string to `
` rather than the default `""` * Applied processing to `setHint()` and `insertHtml()` functions * Added support for returning the file's base64 data in `onImageUpload` and `onFileUpload` * Now you can use `MultipartFile.fromBytes()` to upload to server - [example](https://github.com/tneotia/html-editor-enhanced#example-for-onimageupload-and-onimagelinkinsert) * Added support for `onFileUploadError` and `onFileLinkInsert` (Summernote File plugin) * Added support for `maximumFileSize` (Summernote File plugin) * See the README for more details on these changes ## [1.7.0+1] - 2021-03-22 * Fixed `type 'double' is not a subtype of type 'int?' in type cast` on iOS * By extension this fixes the `adjustHeightForKeyboard` not working on iOS * Fixed `Bad state: Cannot add new events after calling close` exception when disposing the page containing the editor * Fixed web page not found when inserting a video URL (see [here](https://github.com/summernote/summernote/issues/3252)) ## [1.7.0] - 2021-03-17 * [BREAKING]: * Refactored `height`, `autoAdjustHeight`, `decoration`, `showBottomToolbar`, and `darkMode` into new `HtmlEditorOptions` class - see README for how to migrate * Removed 'Summernote Classes' plugin * Sorry for all the breaking changes lately - I think I've finally figured out how I want to do the API design so there should be far less in future releases * Added `onImageUpload` callback that fires when an image is inserted via `` * Added `onImageLinkInsert` callback that fires when an image is inserted via URL * Added `shouldEnsureVisible` that scrolls the editor into view when it is focused or text is typed, kind of like `TextField`s * Added `adjustHeightForKeyboard` (default true) that adjusts the editor's height when the keyboard is active to ensure no content is cut off by the keyboard * Added `filePath` which allows you to provide a completely custom HTML file to load * If you plan on using any of the above, it is highly recommend looking at the README for more details and examples. * Removed disabled scroll feature since it prevented the editor from scrolling even when the editor content was larger than the height * Code cleanup ## [1.6.0] - 2021-03-13 * [BREAKING] removed `dispose()` method on controller * The editor no longer uses a `Stream` to get text and therefore nothing needs to be disposed * Added `onInit` callback that fires once the editor is ready to function and accept JS * Added a few new parameters: * `autoAdjustHeight` - for `HtmlEditor`: default true, automatically adjusts the height of the editor to make sure scrolling is not necessary * `processInputHtml` - for `HtmlEditorController`: processes input HTML (e.g. new lines become `
`) * `processOutputHtml` - for `HtmlEditorController`: processes output HTML (e.g. `


` becomes `""`) * Added more plugins: * Summernote Case Converter * Summernote List Styles * Summernote RTL * Summernote @ Mention * Summernote Codewrapper * Summernote File * See the README for more details. * Added shim for dart:ui to remove the `ui.PlatformViewRegistry not found` error * Added the summernote-no-plugins.html file to load a de-bloated HTML file when no plugins are active * Fixed bug where two editors would be initialized in the same webview in some cases * Reduced the size of assets to ~650kb - ~300kb summernote libs, ~350kb plugin libs * Code cleanup ## [1.5.0+1] - 2021-03-10 * Fixed getText() returning null on mobile for any device ## [1.5.0] - 2021-03-01 * Nullsafety preview * Added Flutter's Hybrid Composition to the HTML Editor. This significantly improves the keyboard experience on Android. ## [1.4.0] - 2021-03-01 * [BREAKING] removed `HtmlParser` for calling methods, instead you now must pass an `HtmlEditorController` to the plugin (like a `TextField`). All methods are accessible from that controller. See the usage section in the README for an example. * This allows you to have multiple independent editors on a page, whereas earlier the package would not know which editor the method should be called on. * Add support for certain Summernote plugins from [Summernote Awesome](https://github.com/summernote/awesome-summernote). See the README for details on the API and the currently supported plugins. * Nullsafety pre-release coming soon. ## [1.3.0] - 2021-02-23 * Add official support for Flutter Web * Add support for modifying the toolbar options. See the README for details on the API. * Add support for a native dark mode * Removed image_picker plugin and image button in toolbar because users can insert images via the image button in Summernote * [BREAKING] Removed the `imageWidth` and `useBottomSheet` params due to the above change ## [1.2.0+1] - 2021-02-20 * Add support for accessing `InAppWebViewController` via a getter * Add support for inserting files via the editor dialog itself * Add methods: * toggle code view * enable/disable editor * undo/redo * inserting plaintext/HTML/images/links * Add callbacks: * onChange * onEnter * onFocus/onBlur/onBlurCodeview * onKeyUp/onKeyDown * onPaste * Downgraded dependencies to non-nullsafety to prevent errors * Updated docs and example app to showcase new features, refer to those for info on the above changes ## [1.1.1] - 2021-02-19 * Minor update to add documentation to code and completely refactor/reorganize code ## [1.1.0] - 2021-02-19 * Switch webview dependency to `flutter_inappwebview` * Remove localserver, instead get Summernote HTML directly from assets (improves performance and loading speeds) * [BREAKING] Switch to `StatelessWidget` * You no longer need a `GlobalKey` for the `HtmlEditorState`. All of the methods are static and can be called like so: ```dart HtmlEditor.setEmpty(); ``` * Fix deprecations and update dependencies ## Flutter HTML Editor changes by xrb21 ## [1.0.1] - 2020-05-07 * Update Readme usage for iOS ## [1.0.0] - 2020-05-07 * fixing iOS blank screen * fixing text hint ## [0.0.2+1] - 2020-05-02 * fixing path packages ## [0.0.2] - 2020-05-02 * Change link repo ## [0.0.1] - 2020-05-02 * Initial Release