From a79e5a3cb5fe2a8eb55746d138d35e6ac143be25 Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Mon, 9 Dec 2024 22:03:08 -0800 Subject: [PATCH 1/6] [SuperEditor][SuperReader] - Added support for inline widgets (Resolves #2442) --- .../quill/lib/editor/code_component.dart | 4 + .../example_editor/_example_document.dart | 1 + .../lib/demos/example_editor/_toolbar.dart | 7 +- .../demos/mobile_chat/demo_mobile_chat.dart | 88 +++++---- .../mobile_chat/giphy_keyboard_panel.dart | 103 +++++++++++ .../supertextfield/_interactive_demo.dart | 4 +- .../lib/demos/supertextfield/_robot.dart | 13 +- .../example/lib/main_inline_images.dart | 97 ++++++++++ .../increment_decrement_field.dart | 6 +- super_editor/example_docs/lib/toolbar.dart | 7 +- super_editor/lib/src/core/styles.dart | 11 ++ .../lib/src/default_editor/blockquote.dart | 11 +- .../lib/src/default_editor/box_component.dart | 2 +- .../common_editor_operations.dart | 22 +-- .../composer/composer_reactions.dart | 2 +- .../default_document_editor_reactions.dart | 32 ++-- .../document_gestures_touch_ios.dart | 4 +- .../document_ime/document_delta_editing.dart | 8 +- .../document_ime_communication.dart | 4 + .../document_ime/document_serialization.dart | 6 +- .../document_ime/ime_keyboard_control.dart | 3 + .../document_ime/mobile_toolbar.dart | 9 +- .../_styler_shylesheet.dart | 3 +- .../lib/src/default_editor/list_items.dart | 11 ++ .../default_editor/multi_node_editing.dart | 2 +- .../lib/src/default_editor/paragraph.dart | 21 ++- .../lib/src/default_editor/super_editor.dart | 1 + .../lib/src/default_editor/tasks.dart | 7 +- super_editor/lib/src/default_editor/text.dart | 147 ++++++++++++--- .../text_tokenizing/stable_tags.dart | 2 +- .../default_editor/text_tokenizing/tags.dart | 4 +- .../attributed_text_styles.dart | 134 ++++++++++++++ .../keyboard_panel_scaffold.dart | 32 +++- .../lib/src/super_reader/super_reader.dart | 1 + .../android/_editing_controls.dart | 2 +- .../android/_user_interaction.dart | 2 +- .../android/android_textfield.dart | 8 +- .../desktop/desktop_textfield.dart | 8 +- .../attributed_text_editing_controller.dart | 32 ++-- .../infrastructure/text_scrollview.dart | 8 +- .../_ime_text_editing_controller.dart | 2 +- .../super_textfield/ios/editing_controls.dart | 2 +- .../super_textfield/ios/ios_textfield.dart | 8 +- .../super_textfield/ios/user_interaction.dart | 6 +- .../super_editor_test/supereditor_robot.dart | 2 +- .../super_reader_inspector.dart | 12 +- super_editor/pubspec.yaml | 10 +- .../components/horizontal_rule_test.dart | 4 +- .../components/list_items_test.dart | 48 ++--- .../super_editor/components/task_test.dart | 44 ++--- ...add_paragraph_at_end_tap_handler_test.dart | 4 +- .../infrastructure/editor_test.dart | 14 +- .../super_editor_undo_redo_test.dart | 48 ++--- .../supereditor_attributions_test.dart | 20 ++- .../supereditor_content_insertion_test.dart | 38 ++-- .../supereditor_copy_and_paste_test.dart | 14 +- .../supereditor_input_ime_test.dart | 38 ++-- ...pereditor_input_keyboard_actions_test.dart | 38 ++-- .../supereditor_keyboard_test.dart | 6 +- .../supereditor_multi_editor_test.dart | 4 +- .../super_editor/supereditor_robot_test.dart | 12 +- .../supereditor_scrolling_test.dart | 2 +- .../supereditor_selection_test.dart | 4 +- ...editor_software_keyboard_toolbar_test.dart | 2 +- .../supereditor_undeletable_content_test.dart | 46 ++--- .../text_entry/dash_conversion_test.dart | 90 +++++----- .../super_editor/text_entry/links_test.dart | 170 +++++++++--------- .../paragraph_conversions_test.dart | 40 ++--- .../text_entry/tagging/action_tags_test.dart | 26 +-- .../text_entry/tagging/pattern_tags_test.dart | 22 +-- .../text_entry/tagging/stable_tags_test.dart | 44 ++--- .../super_editor/text_entry/text_test.dart | 4 +- .../superreader_attributions_test.dart | 8 +- ...uper_textfield_android_selection_test.dart | 24 +-- ...tributed_text_editing_controller_test.dart | 86 ++++----- ...tributed_text_editing_controller_test.dart | 16 +- ...super_desktop_textfield_keyboard_test.dart | 78 ++++---- .../super_textfield_emoji_test.dart | 4 +- ...uper_textfield_gesture_scrolling_test.dart | 7 +- .../super_textfield_ime_test.dart | 45 ++--- .../type_into_super_textfield_test.dart | 6 +- .../editor/components/list_items_test.dart | 10 +- 82 files changed, 1273 insertions(+), 704 deletions(-) create mode 100644 super_editor/example/lib/demos/mobile_chat/giphy_keyboard_panel.dart create mode 100644 super_editor/example/lib/main_inline_images.dart diff --git a/super_editor/clones/quill/lib/editor/code_component.dart b/super_editor/clones/quill/lib/editor/code_component.dart index cf2bb2b3de..b7c73835c4 100644 --- a/super_editor/clones/quill/lib/editor/code_component.dart +++ b/super_editor/clones/quill/lib/editor/code_component.dart @@ -73,6 +73,7 @@ class CodeBlockComponentViewModel extends SingleColumnLayoutComponentViewModel w super.padding = EdgeInsets.zero, required this.text, required this.textStyleBuilder, + this.inlineWidgetBuilderChain = const [], this.textDirection = TextDirection.ltr, this.textAlignment = TextAlign.left, required this.backgroundColor, @@ -97,6 +98,8 @@ class CodeBlockComponentViewModel extends SingleColumnLayoutComponentViewModel w @override AttributionStyleBuilder textStyleBuilder; @override + InlineWidgetBuilderChain inlineWidgetBuilderChain; + @override TextDirection textDirection; @override TextAlign textAlignment; @@ -125,6 +128,7 @@ class CodeBlockComponentViewModel extends SingleColumnLayoutComponentViewModel w padding: padding, text: text, textStyleBuilder: textStyleBuilder, + inlineWidgetBuilderChain: inlineWidgetBuilderChain, textDirection: textDirection, textAlignment: textAlignment, backgroundColor: backgroundColor, diff --git a/super_editor/example/lib/demos/example_editor/_example_document.dart b/super_editor/example/lib/demos/example_editor/_example_document.dart index ca60f9b887..4e0ca9eda2 100644 --- a/super_editor/example/lib/demos/example_editor/_example_document.dart +++ b/super_editor/example/lib/demos/example_editor/_example_document.dart @@ -1,5 +1,6 @@ import 'package:flutter/rendering.dart'; import 'package:super_editor/super_editor.dart'; +import 'package:super_text_layout/super_text_layout.dart'; MutableDocument createInitialDocument() { return MutableDocument( diff --git a/super_editor/example/lib/demos/example_editor/_toolbar.dart b/super_editor/example/lib/demos/example_editor/_toolbar.dart index 6d6fbba5e5..78499bad08 100644 --- a/super_editor/example/lib/demos/example_editor/_toolbar.dart +++ b/super_editor/example/lib/demos/example_editor/_toolbar.dart @@ -390,7 +390,7 @@ class _EditorToolbarState extends State { /// Takes the text from the [urlController] and applies it as a link /// attribution to the currently selected text. void _applyLink() { - final url = _urlController!.text.text; + final url = _urlController!.text.toPlainText(includePlaceholders: false); final selection = widget.composer.selection!; final baseOffset = (selection.base.nodePosition as TextPosition).offset; @@ -438,10 +438,11 @@ class _EditorToolbarState extends State { int startOffset = range.start; int endOffset = range.end; - while (startOffset < range.end && text.text[startOffset] == ' ') { + final plainText = text.toPlainText(); + while (startOffset < range.end && plainText[startOffset] == ' ') { startOffset += 1; } - while (endOffset > startOffset && text.text[endOffset] == ' ') { + while (endOffset > startOffset && plainText[endOffset] == ' ') { endOffset -= 1; } diff --git a/super_editor/example/lib/demos/mobile_chat/demo_mobile_chat.dart b/super_editor/example/lib/demos/mobile_chat/demo_mobile_chat.dart index 5ad714033b..4842132f6d 100644 --- a/super_editor/example/lib/demos/mobile_chat/demo_mobile_chat.dart +++ b/super_editor/example/lib/demos/mobile_chat/demo_mobile_chat.dart @@ -1,3 +1,4 @@ +import 'package:example/demos/mobile_chat/giphy_keyboard_panel.dart'; import 'package:flutter/material.dart'; import 'package:super_editor/super_editor.dart'; @@ -64,6 +65,7 @@ class _MobileChatDemoState extends State { } void _togglePanel(_Panel panel) { + print("_togglePanel(): $panel"); setState(() { if (_visiblePanel == panel) { _visiblePanel = null; @@ -157,7 +159,7 @@ class _MobileChatDemoState extends State { Widget _buildCommentEditor() { return Opacity( - opacity: 0.75, + opacity: 1.0, // ^ opacity is for testing, so we can see the chat behind it. child: KeyboardPanelScaffold( controller: _keyboardPanelController, @@ -176,6 +178,10 @@ class _MobileChatDemoState extends State { color: Colors.red, height: double.infinity, ); + case _Panel.giphy: + return GiphyKeyboardPanel( + editor: _editor, + ); default: return const SizedBox(); } @@ -267,6 +273,11 @@ class _MobileChatDemoState extends State { icon: Icons.account_circle, onPressed: () => _showBottomSheetWithOptions(context), ), + const SizedBox(width: 16), + _PanelButton( + icon: Icons.gif_box_outlined, + onPressed: () => _togglePanel(_Panel.giphy), + ), const Spacer(), GestureDetector( onTap: _keyboardPanelController.closeKeyboardAndPanel, @@ -293,7 +304,8 @@ class _MobileChatDemoState extends State { enum _Panel { panel1, - panel2; + panel2, + giphy; } class _PanelButton extends StatelessWidget { @@ -325,37 +337,47 @@ class _PanelButton extends StatelessWidget { } } -final _chatStylesheet = defaultStylesheet.copyWith( - addRulesBefore: [ - StyleRule( - BlockSelector.all, - (doc, docNode) { - return { - Styles.maxWidth: double.infinity, - Styles.padding: const CascadingPadding.symmetric(horizontal: 24), - }; - }, - ), - ], - addRulesAfter: [ - StyleRule( - BlockSelector.all.first(), - (doc, docNode) { - return { - Styles.padding: const CascadingPadding.only(top: 12), - }; - }, - ), - StyleRule( - BlockSelector.all.last(), - (doc, docNode) { - return { - Styles.padding: const CascadingPadding.only(bottom: 12), - }; - }, - ), - ], -); +Stylesheet get _chatStylesheet => defaultStylesheet.copyWith( + addRulesBefore: [ + StyleRule( + BlockSelector.all, + (doc, docNode) { + return { + Styles.maxWidth: double.infinity, + Styles.padding: const CascadingPadding.symmetric(horizontal: 24), + }; + }, + ), + ], + addRulesAfter: [ + StyleRule( + BlockSelector.all, + (doc, docNode) { + return { + Styles.textStyle: TextStyle( + fontSize: 18, + ), + }; + }, + ), + StyleRule( + BlockSelector.all.first(), + (doc, docNode) { + return { + Styles.padding: const CascadingPadding.only(top: 12), + }; + }, + ), + StyleRule( + BlockSelector.all.last(), + (doc, docNode) { + return { + Styles.padding: const CascadingPadding.only(bottom: 12), + }; + }, + ), + ], + ); Future _showBottomSheetWithOptions(BuildContext context) async { return showModalBottomSheet( diff --git a/super_editor/example/lib/demos/mobile_chat/giphy_keyboard_panel.dart b/super_editor/example/lib/demos/mobile_chat/giphy_keyboard_panel.dart new file mode 100644 index 0000000000..dd05e5abb3 --- /dev/null +++ b/super_editor/example/lib/demos/mobile_chat/giphy_keyboard_panel.dart @@ -0,0 +1,103 @@ +import 'package:flutter/material.dart'; +import 'package:super_editor/super_editor.dart'; +import 'package:super_text_layout/super_text_layout.dart'; + +class GiphyKeyboardPanel extends StatefulWidget { + const GiphyKeyboardPanel({ + super.key, + required this.editor, + }); + + final Editor editor; + + @override + State createState() => _GiphyKeyboardPanelState(); +} + +class _GiphyKeyboardPanelState extends State { + void _onGifPressed(String url) { + final selection = widget.editor.context.composer.selection; + if (selection == null) { + return; + } + if (selection.base.nodePosition is! TextNodePosition) { + return; + } + + // TODO: Replace this series of requests with a single TypeAttributedTextRequest + widget.editor.execute([ + if (!selection.isCollapsed) // + DeleteContentRequest( + documentRange: selection.normalize(widget.editor.context.document), + ), + InsertAttributedTextRequest( + selection.base, + AttributedText("", null, { + 0: InlineNetworkImagePlaceholder(url), + }), + ), + ChangeSelectionRequest( + DocumentSelection.collapsed( + position: selection.base.copyWith( + nodePosition: TextNodePosition(offset: (selection.base.nodePosition as TextNodePosition).offset + 1), + ), + ), + SelectionChangeType.alteredContent, + SelectionReason.userInteraction, + ), + ]); + } + + @override + Widget build(BuildContext context) { + return GridView( + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 5, + ), + children: _giphyEmojis.map(_buildEmoji).toList(), + ); + } + + Widget _buildEmoji(String url) { + return GestureDetector( + onTap: () => _onGifPressed(url), + child: Image.network(url), + ); + } +} + +const _giphyEmojis = [ + // Thumbs up. + "https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExZHBwdGgwYXYydTJiYmV1aGZ6dWZraGZsZzIzNmNkZGdiMGJyYW40dSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9ZQ/ehz3LfVj7NvpY8jYUY/giphy.webp", + // Fire. + "https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExcHpjemk5eGVza29iOHNlaHJkbWJjamxpZW82MzEwM2F4bDV1NTJkaiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9ZQ/J2awouDsf23R2vo2p5/giphy.webp", + // Flexing muscle. + "https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExY3NxOWFuanlvOXk3Y2V5bmFjaGQ2Z3c4aHQ5aDI5dXlwdzRpd25uMyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9ZQ/SvLQ270MWY0GpztVjo/giphy.webp", + // Clapping hands. + "https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExMjhncWRqbHBmNDVvZ3Q2ZHYzN2VkbXdoZGt0Z2d4eTI2ZTV5aTR2dyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9ZQ/ZdNlmHHr7czumQPvNE/giphy.webp", + // Prayer hands. + "https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExeGszYXh0djNieXJhZW1zbjJ5NjExd3RqcHppYjB0dHgxemk0d2loMSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9ZQ/WqR7WfQVrpXNcmrm81/giphy.webp", + // Heart. + "https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExZGI5bTEwcTg4dXd2a29sc3BxdTFlMHEwOHI2b3ozYWgxNHAycnBmaSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xUA7aWi4gtOdAaX9q8/giphy.webp", + // OMG face. + "https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExYXJyOGhudTBiNm4wZnR6bTdrNGwwOWtpYWtnbXlxYml0N3ZrMDl0NSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9ZQ/j2NFnjcXwni0E9KcdI/giphy.webp", + // Popping hearts. + "https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExeXd4bHEwaWRxYm41dWhhc21neDFxZ2p6YXAxY2ZnM20wcDZwaG5wcCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9cw/QUGf8x31iMVSdbNn00/giphy.webp", + // Awkward face. + "https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExMWd5dDh1djVlbWhnMmV3dzR2emtqNDdxZHZqeGNrem9zZnE5MjI3aSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9ZQ/XHdW0gCDj6KiFmKFCZ/giphy.webp", + // Fuming face. + "https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExa2ZsbmZib2hleno0dTV4dzMyMmtoZ3JocThlZHFkdnYxeHJ1b21idiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9ZQ/kyQfR7MlQQ9Gb8URKG/giphy.webp", + // Angry face. + "https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExcGFrd2ZqaGM2ZmVveHU1bWZ5b25ocDV5M2J1MG9nbGplampsOGdibSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9ZQ/QU3wZZG8x351iQAbfm/giphy.webp", + // Deflate face. + "https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExNnJxeHR3MmJiNmhiYmdtaWt3bDVmcHJlbXBibzNyazluZmE4dTBnZSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9ZQ/H4cBu6XqKJtGujEXll/giphy.webp", + // Dumpster fire. + "https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExOHJ1dWFtazNoeTVrcGthMHE2ZWI1aDlyOWpkZHY4MzZyMXJsZDFwbiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9ZQ/jOsoGmmWGSloPU8fMH/giphy.webp", + + // Disappointed baby. + "https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExcWo4cnV2dW1sem9hMzk5cWd5cW4zcW80ejU3YnJuZjF5amdpMGF5ZyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9cw/tr4TTyG4BjxfDioymO/giphy.webp", + // Chihuahua face. + "https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExdXR2ZGoxZDBkemJpZzdtOXBpc292OXp0d2cyMzdqemlpZnJocjdiaSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9cw/3oKIPfZAisBaUuybcs/giphy.webp", + // South Park - Randy crying. + "https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExa3EybmZxazIwaXgzY3lpcmpjdTMwcXh0c3Fsd28wbW5xZTBhNGZ3NCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9cw/PaVz5Z1dot5FIPS50w/giphy.webp", +]; diff --git a/super_editor/example/lib/demos/supertextfield/_interactive_demo.dart b/super_editor/example/lib/demos/supertextfield/_interactive_demo.dart index 4545c20eba..409eb9d5de 100644 --- a/super_editor/example/lib/demos/supertextfield/_interactive_demo.dart +++ b/super_editor/example/lib/demos/supertextfield/_interactive_demo.dart @@ -150,7 +150,9 @@ class _InteractiveTextFieldDemoState extends State { TextButton( onPressed: () { Clipboard.setData(ClipboardData( - text: _textFieldController.selection.textInside(_textFieldController.text.text), + text: _textFieldController.selection.textInside( + _textFieldController.text.toPlainText(includePlaceholders: false), + ), )); _closePopup(); }, diff --git a/super_editor/example/lib/demos/supertextfield/_robot.dart b/super_editor/example/lib/demos/supertextfield/_robot.dart index 9256a27ffe..5e5d58607a 100644 --- a/super_editor/example/lib/demos/supertextfield/_robot.dart +++ b/super_editor/example/lib/demos/supertextfield/_robot.dart @@ -138,8 +138,9 @@ class TypeTextCommand implements RobotCommand { focusNode!.requestFocus(); - for (int i = 0; i < textToType.text.length; ++i) { - _typeCharacter(textController, i); + final plainText = textToType.toPlainText(); + for (int i = 0; i < plainText.length; ++i) { + _typeCharacter(textController, i, plainText[i]); await _waitForCharacterDelay(); @@ -149,9 +150,9 @@ class TypeTextCommand implements RobotCommand { } } - void _typeCharacter(AttributedTextEditingController textController, int offset) { + void _typeCharacter(AttributedTextEditingController textController, int offset, String character) { textController.text = textController.text.insertString( - textToInsert: textToType.text[offset], // TODO: support insertion of attributed text + textToInsert: character, startOffset: textController.selection.extentOffset, ); @@ -246,12 +247,12 @@ class DeleteCharactersCommand implements RobotCommand { if (direction == TextAffinity.downstream) { // Delete the character after the offset deleteStartIndex = offset; - deleteEndIndex = getCharacterEndBounds(textController.text.text, offset); + deleteEndIndex = getCharacterEndBounds(textController.text.toPlainText(), offset); deletedCodePointCount = deleteEndIndex - deleteStartIndex; newSelectionIndex = deleteStartIndex; } else { // Delete the character before the offset - deleteStartIndex = getCharacterStartBounds(textController.text.text, offset); + deleteStartIndex = getCharacterStartBounds(textController.text.toPlainText(), offset); deleteEndIndex = offset + 1; deletedCodePointCount = offset - deleteStartIndex; newSelectionIndex = deleteStartIndex; diff --git a/super_editor/example/lib/main_inline_images.dart b/super_editor/example/lib/main_inline_images.dart new file mode 100644 index 0000000000..2b70d2dabe --- /dev/null +++ b/super_editor/example/lib/main_inline_images.dart @@ -0,0 +1,97 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:super_editor/super_editor.dart'; +import 'package:super_text_layout/super_text_layout.dart'; + +void main() { + runApp( + MaterialApp( + home: Scaffold( + body: _InlineImagePage(), + ), + ), + ); +} + +class _InlineImagePage extends StatefulWidget { + const _InlineImagePage(); + + @override + State<_InlineImagePage> createState() => _InlineImagePageState(); +} + +class _InlineImagePageState extends State<_InlineImagePage> { + late final InlineSpan _richText; + + @override + void initState() { + super.initState(); + _styleText(); + } + + void _styleText() { + final text = AttributedText( + "Hello, World!", + null, + { + 5: InlineNetworkImagePlaceholder( + "https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExb2gwd2J6bXp1dTRnbGg2MGcyMnF2c3lmNzBiNmo1eHV0MnkzMGZjbSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/F8rZBFylC2W1G/giphy.webp"), + 14: InlineNetworkImagePlaceholder( + "https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExbDdwM2gwcjNnbGVycXVic2VnamNia2swem1seHNiODk0aXdoenZmcCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/cKKXtt4bzsWuon0EJJ/giphy.webp"), + }, + ); + + _richText = text.computeInlineSpan( + context, + (attributions) { + return TextStyle( + color: Colors.black, + fontSize: 18, + ); + }, + [ + (context, textStyle, placeholder) { + if (placeholder is InlineNetworkImagePlaceholder) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 4.0), + child: Container( + width: 24, + height: 24, + color: Colors.black, + child: Image.network(placeholder.url), + ), + ); + } + + return const SizedBox(); + }, + ], + ); + } + + @override + Widget build(BuildContext context) { + return Center( + child: ConstrainedBox( + constraints: BoxConstraints( + maxWidth: 800, + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + for (int i = 0; i <= 15; i += 1) // + Padding( + padding: const EdgeInsets.only(bottom: 4.0), + child: SuperTextWithSelection.single( + richText: _richText, + userSelection: UserSelection( + selection: TextSelection(baseOffset: 0, extentOffset: i), + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/super_editor/example_docs/lib/infrastructure/increment_decrement_field.dart b/super_editor/example_docs/lib/infrastructure/increment_decrement_field.dart index 769d808ada..5fe990996a 100644 --- a/super_editor/example_docs/lib/infrastructure/increment_decrement_field.dart +++ b/super_editor/example_docs/lib/infrastructure/increment_decrement_field.dart @@ -62,7 +62,7 @@ class _IncrementDecrementFieldState extends State { void _onPerformAction(TextInputAction action) { if (action == TextInputAction.done) { - final value = int.tryParse(_controller.text.text.trim()); + final value = int.tryParse(_controller.text.toPlainText(includePlaceholders: false).trim()); if (value != null) { widget.onChange(value); } @@ -72,7 +72,7 @@ class _IncrementDecrementFieldState extends State { } void _onIncrement() { - final value = int.tryParse(_controller.text.text.trim()); + final value = int.tryParse(_controller.text.toPlainText(includePlaceholders: false).trim()); if (value == null) { return; } @@ -81,7 +81,7 @@ class _IncrementDecrementFieldState extends State { } void _onDecrement() { - final value = int.tryParse(_controller.text.text.trim()); + final value = int.tryParse(_controller.text.toPlainText(includePlaceholders: false).trim()); if (value == null) { return; } diff --git a/super_editor/example_docs/lib/toolbar.dart b/super_editor/example_docs/lib/toolbar.dart index d7faed25f1..176b4ffa9c 100644 --- a/super_editor/example_docs/lib/toolbar.dart +++ b/super_editor/example_docs/lib/toolbar.dart @@ -248,7 +248,7 @@ class _DocsEditorToolbarState extends State { /// Applies the link entered on the URL textfield to the current /// selected range. void _applyLink() { - final url = _urlController!.text.text; + final url = _urlController!.text.toPlainText(includePlaceholders: false); final selection = widget.composer.selection!; final baseOffset = (selection.base.nodePosition as TextPosition).offset; @@ -440,10 +440,11 @@ class _DocsEditorToolbarState extends State { int startOffset = range.start; int endOffset = range.end; - while (startOffset < range.end && text.text[startOffset] == ' ') { + final plainText = text.toPlainText(); + while (startOffset < range.end && plainText[startOffset] == ' ') { startOffset += 1; } - while (endOffset > startOffset && text.text[endOffset] == ' ') { + while (endOffset > startOffset && plainText[endOffset] == ' ') { endOffset -= 1; } diff --git a/super_editor/lib/src/core/styles.dart b/super_editor/lib/src/core/styles.dart index 8fd4408993..27b168e271 100644 --- a/super_editor/lib/src/core/styles.dart +++ b/super_editor/lib/src/core/styles.dart @@ -1,5 +1,6 @@ import 'package:attributed_text/attributed_text.dart'; import 'package:flutter/painting.dart'; +import 'package:super_editor/src/infrastructure/attributed_text_styles.dart'; import 'document.dart'; @@ -13,6 +14,7 @@ class Stylesheet { this.documentPadding, required this.rules, required this.inlineTextStyler, + this.inlineWidgetBuilderChain = const [], this.selectedTextColorStrategy, }); @@ -26,6 +28,10 @@ class Stylesheet { /// Styles all in-line text in the document. final AttributionStyleAdjuster inlineTextStyler; + /// Chain of inline widget builders, used to map [AttributedText] placeholders + /// to inline widgets. + final InlineWidgetBuilderChain inlineWidgetBuilderChain; + /// The strategy that chooses the color for selected text. final SelectedTextColorStrategy? selectedTextColorStrategy; @@ -35,6 +41,7 @@ class Stylesheet { Stylesheet copyWith({ EdgeInsets? documentPadding, AttributionStyleAdjuster? inlineTextStyler, + InlineWidgetBuilderChain? inlineWidgetBuilderChain, SelectedTextColorStrategy? selectedTextColorStrategy, List addRulesBefore = const [], List? rules, @@ -43,6 +50,7 @@ class Stylesheet { return Stylesheet( documentPadding: documentPadding ?? this.documentPadding, inlineTextStyler: inlineTextStyler ?? this.inlineTextStyler, + inlineWidgetBuilderChain: inlineWidgetBuilderChain ?? this.inlineWidgetBuilderChain, selectedTextColorStrategy: selectedTextColorStrategy ?? this.selectedTextColorStrategy, rules: [ ...addRulesBefore, @@ -360,6 +368,9 @@ class Styles { /// Applies a [AttributionStyleAdjuster] to a text node. static const String inlineTextStyler = 'inlineTextStyler'; + /// Applies a [InlineWidgetBuilderChain] to text-based components. + static const String inlineWidgetBuilderChain = 'inlineWidgetBuilderChain'; + /// Applies a [Color] to the dot of an unordered list item. static const String dotColor = 'dotColor'; diff --git a/super_editor/lib/src/default_editor/blockquote.dart b/super_editor/lib/src/default_editor/blockquote.dart index 9ead899c72..8e04d456ee 100644 --- a/super_editor/lib/src/default_editor/blockquote.dart +++ b/super_editor/lib/src/default_editor/blockquote.dart @@ -33,7 +33,7 @@ class BlockquoteComponentBuilder implements ComponentBuilder { return null; } - final textDirection = getParagraphDirection(node.text.text); + final textDirection = getParagraphDirection(node.text.toPlainText()); TextAlign textAlign = (textDirection == TextDirection.ltr) ? TextAlign.left : TextAlign.right; final textAlignName = node.getMetadataValue('textAlign'); @@ -95,6 +95,7 @@ class BlockquoteComponentViewModel extends SingleColumnLayoutComponentViewModel EdgeInsetsGeometry padding = EdgeInsets.zero, required this.text, required this.textStyleBuilder, + this.inlineWidgetBuilderChain = const [], this.textDirection = TextDirection.ltr, this.textAlignment = TextAlign.left, this.indent = 0, @@ -126,6 +127,8 @@ class BlockquoteComponentViewModel extends SingleColumnLayoutComponentViewModel @override AttributionStyleBuilder textStyleBuilder; @override + InlineWidgetBuilderChain inlineWidgetBuilderChain; + @override TextDirection textDirection; @override TextAlign textAlignment; @@ -158,6 +161,7 @@ class BlockquoteComponentViewModel extends SingleColumnLayoutComponentViewModel padding: padding, text: text, textStyleBuilder: textStyleBuilder, + inlineWidgetBuilderChain: inlineWidgetBuilderChain, textDirection: textDirection, textAlignment: textAlignment, indent: indent, @@ -227,6 +231,7 @@ class BlockquoteComponent extends StatelessWidget { required this.textKey, required this.text, required this.styleBuilder, + this.inlineWidgetBuilderChain = const [], this.textSelection, this.indent = 0, this.indentCalculator = defaultParagraphIndentCalculator, @@ -241,6 +246,7 @@ class BlockquoteComponent extends StatelessWidget { final GlobalKey textKey; final AttributedText text; final AttributionStyleBuilder styleBuilder; + final InlineWidgetBuilderChain inlineWidgetBuilderChain; final TextSelection? textSelection; final int indent; final TextBlockIndentCalculator indentCalculator; @@ -275,6 +281,7 @@ class BlockquoteComponent extends StatelessWidget { key: textKey, text: text, textStyleBuilder: styleBuilder, + inlineWidgetBuilderChain: inlineWidgetBuilderChain, textSelection: textSelection, selectionColor: selectionColor, highlightWhenEmpty: highlightWhenEmpty, @@ -408,7 +415,7 @@ class SplitBlockquoteCommand extends EditCommand { // Create a new node that will follow the current node. Set its text // to the text that was removed from the current node. - final isNewNodeABlockquote = endText.text.isNotEmpty; + final isNewNodeABlockquote = endText.isNotEmpty; final newNode = ParagraphNode( id: newNodeId, text: endText, diff --git a/super_editor/lib/src/default_editor/box_component.dart b/super_editor/lib/src/default_editor/box_component.dart index d6e1cde4ad..633ef4ee49 100644 --- a/super_editor/lib/src/default_editor/box_component.dart +++ b/super_editor/lib/src/default_editor/box_component.dart @@ -353,7 +353,7 @@ class DeleteUpstreamAtBeginningOfBlockNodeCommand extends EditCommand { return; } - if (nodeBefore is TextNode && nodeBefore.text.text.isEmpty) { + if (nodeBefore is TextNode && nodeBefore.text.isEmpty) { executor.executeCommand( DeleteNodeCommand(nodeId: nodeBefore.id), ); diff --git a/super_editor/lib/src/default_editor/common_editor_operations.dart b/super_editor/lib/src/default_editor/common_editor_operations.dart index 2f8fe2777b..cf2c97eb5f 100644 --- a/super_editor/lib/src/default_editor/common_editor_operations.dart +++ b/super_editor/lib/src/default_editor/common_editor_operations.dart @@ -179,7 +179,7 @@ class CommonEditorOperations { baseOffset: (docSelection.base.nodePosition as TextNodePosition).offset, extentOffset: (docSelection.extent.nodePosition as TextNodePosition).offset, ); - final selectedText = currentSelection.textInside(selectedNode.text.text); + final selectedText = currentSelection.textInside(selectedNode.text.toPlainText()); if (selectedText.contains(' ')) { // The selection already spans multiple paragraphs. Nothing to do. @@ -187,7 +187,7 @@ class CommonEditorOperations { } final wordTextSelection = expandPositionToWord( - text: selectedNode.text.text, + text: selectedNode.text.toPlainText(), textPosition: TextPosition(offset: (docSelection.extent.nodePosition as TextNodePosition).offset), ); final wordNodeSelection = TextNodeSelection.fromTextSelection(wordTextSelection); @@ -908,7 +908,7 @@ class CommonEditorOperations { if (composer.selection!.extent.nodePosition is TextNodePosition) { final textPosition = composer.selection!.extent.nodePosition as TextNodePosition; - final text = (document.getNodeById(composer.selection!.extent.nodeId) as TextNode).text.text; + final text = (document.getNodeById(composer.selection!.extent.nodeId) as TextNode).text; if (textPosition.offset == text.length) { final node = document.getNodeById(composer.selection!.extent.nodeId)!; final nodeAfter = document.getNodeAfter(node); @@ -1037,7 +1037,7 @@ class CommonEditorOperations { return false; } - final nextCharacterOffset = getCharacterEndBounds(text.text, currentTextOffset); + final nextCharacterOffset = getCharacterEndBounds(text.toPlainText(), currentTextOffset); // Delete the selected content. editor.execute([ @@ -1111,7 +1111,7 @@ class CommonEditorOperations { final componentBefore = documentLayoutResolver().getComponentByNodeId(nodeBefore.id)!; - if (nodeBefore is TextNode && nodeBefore.text.text.isEmpty) { + if (nodeBefore is TextNode && nodeBefore.text.isEmpty) { editor.execute([ DeleteNodeRequest(nodeId: nodeBefore.id), ]); @@ -1148,7 +1148,7 @@ class CommonEditorOperations { // The node/component above is not selectable. Delete it. deleteNonSelectedNode(nodeBefore); return true; - } else if ((node as TextNode).text.text.isEmpty) { + } else if ((node as TextNode).text.isEmpty) { // The caret is at the beginning of an empty TextNode and the preceding // node is not a TextNode. Delete the current TextNode and move the // selection up to the preceding node if exist. @@ -1312,7 +1312,7 @@ class CommonEditorOperations { final textNode = document.getNode(composer.selection!.extent) as TextNode; final currentTextOffset = (composer.selection!.extent.nodePosition as TextNodePosition).offset; - final previousCharacterOffset = getCharacterStartBounds(textNode.text.text, currentTextOffset); + final previousCharacterOffset = getCharacterStartBounds(textNode.text.toPlainText(), currentTextOffset); final newSelectionPosition = DocumentPosition( nodeId: textNode.id, @@ -1797,7 +1797,7 @@ class CommonEditorOperations { final newNodeId = Editor.createNodeId(); if (extentNode is ListItemNode) { - if (extentNode.text.text.isEmpty) { + if (extentNode.text.isEmpty) { // The list item is empty. Convert it to a paragraph. editorOpsLog.finer( "The current node is an empty list item. Converting it to a paragraph instead of inserting block-level newline."); @@ -1902,7 +1902,7 @@ class CommonEditorOperations { ]); } } else if (extentNode is TaskNode) { - if (extentNode.text.text.isEmpty) { + if (extentNode.text.isEmpty) { // The task is empty. Convert it to a paragraph. return convertToParagraph(); } @@ -2595,7 +2595,7 @@ class DeleteUpstreamCharacterCommand extends EditCommand { final textNode = document.getNode(selection.extent) as TextNode; final currentTextOffset = (selection.extent.nodePosition as TextNodePosition).offset; - final previousCharacterOffset = getCharacterStartBounds(textNode.text.text, currentTextOffset); + final previousCharacterOffset = getCharacterStartBounds(textNode.text.toPlainText(), currentTextOffset); // Delete the selected content. executor @@ -2650,7 +2650,7 @@ class DeleteDownstreamCharacterCommand extends EditCommand { throw Exception("Tried to delete downstream character but the caret is sitting at the end of the text."); } - final nextCharacterOffset = getCharacterEndBounds(text.text, currentTextPositionOffset); + final nextCharacterOffset = getCharacterEndBounds(text.toPlainText(), currentTextPositionOffset); // Delete the selected content. executor.executeCommand( diff --git a/super_editor/lib/src/default_editor/composer/composer_reactions.dart b/super_editor/lib/src/default_editor/composer/composer_reactions.dart index c18226648b..8cdf5d0cc6 100644 --- a/super_editor/lib/src/default_editor/composer/composer_reactions.dart +++ b/super_editor/lib/src/default_editor/composer/composer_reactions.dart @@ -135,7 +135,7 @@ class UpdateComposerTextStylesReaction extends EditReaction { final textPosition = composer.selection!.extent.nodePosition as TextPosition; - if (textPosition.offset == 0 && node.text.text.isEmpty) { + if (textPosition.offset == 0 && node.text.isEmpty) { return; } diff --git a/super_editor/lib/src/default_editor/default_document_editor_reactions.dart b/super_editor/lib/src/default_editor/default_document_editor_reactions.dart index d0e940552e..6b3cd176d9 100644 --- a/super_editor/lib/src/default_editor/default_document_editor_reactions.dart +++ b/super_editor/lib/src/default_editor/default_document_editor_reactions.dart @@ -81,7 +81,7 @@ class HeaderConversionReaction extends ParagraphPrefixConversionReaction { ), extent: DocumentPosition( nodeId: paragraph.id, - nodePosition: TextNodePosition(offset: paragraph.text.text.indexOf(" ") + 1), + nodePosition: TextNodePosition(offset: paragraph.text.toPlainText().indexOf(" ") + 1), ), ); @@ -316,7 +316,7 @@ class HorizontalRuleConversionReaction extends EditReaction { final textInsertionEvent = edit.change as TextInsertionEvent; final paragraph = document.getNodeById(textInsertionEvent.nodeId) as TextNode; - final match = _hrPattern.firstMatch(paragraph.text.text)?.group(0); + final match = _hrPattern.firstMatch(paragraph.text.toPlainText())?.group(0); if (match == null) { return; } @@ -377,7 +377,7 @@ abstract class ParagraphPrefixConversionReaction extends EditReaction { if (typedText == null) { return; } - if (_requireSpaceInsertion && !typedText.text.text.endsWith(" ")) { + if (_requireSpaceInsertion && !typedText.text.toPlainText().endsWith(" ")) { return; } @@ -386,7 +386,7 @@ abstract class ParagraphPrefixConversionReaction extends EditReaction { return; } - final match = pattern.firstMatch(paragraph.text.text)?.group(0); + final match = pattern.firstMatch(paragraph.text.toPlainText())?.group(0); if (match == null) { return; } @@ -447,7 +447,7 @@ class ImageUrlConversionReaction extends EditReaction { // Check if the submitted paragraph is comprised of a single URL. final extractedLinks = linkify( - previousNode.text.text, + previousNode.text.toPlainText(), options: const LinkifyOptions( humanize: false, ), @@ -461,7 +461,7 @@ class ImageUrlConversionReaction extends EditReaction { } final url = extractedLinks.firstWhere((element) => element is UrlElement).text; - if (url != previousNode.text.text.trim()) { + if (url != previousNode.text.toPlainText().trim()) { // There's more in the paragraph than just a URL. This reaction // doesn't apply. editorOpsLog.finer("Paragraph had more than just a URL"); @@ -472,7 +472,7 @@ class ImageUrlConversionReaction extends EditReaction { // URL is an image. If it is, replace the submitted paragraph with // an image. // TODO: move the URL lookup into a behavior within the node. We don't want async reaction behaviors. - final originalText = previousNode.text.text; + final originalText = previousNode.text.toPlainText(); _isImageUrl(url).then((isImage) { if (!isImage) { editorOpsLog.finer("Checked URL, but it's not an image"); @@ -486,7 +486,7 @@ class ImageUrlConversionReaction extends EditReaction { editorOpsLog.finer('The node has become something other than a ParagraphNode ($node). Can\'t convert node.'); return; } - final currentText = node.text.text; + final currentText = node.text.toPlainText(); if (currentText.trim() != originalText.trim()) { editorOpsLog.finer('The node content changed in a non-trivial way. Aborting node conversion.'); return; @@ -574,7 +574,7 @@ class LinkifyReaction extends EditReaction { final edit = edits[i]; if (edit is DocumentEdit) { final change = edit.change; - if (change is TextInsertionEvent && change.text.text == " ") { + if (change is TextInsertionEvent && change.text.toPlainText() == " ") { // Every space insertion might appear after a URL. linkifyCandidate = change; didInsertSpace = true; @@ -648,7 +648,7 @@ class LinkifyReaction extends EditReaction { /// Extracts a word ending at [endOffset] tries to linkify it. void _extractUpstreamWordAndLinkify(AttributedText text, int endOffset) { - final wordStartOffset = _moveOffsetByWord(text.text, endOffset, true) ?? 0; + final wordStartOffset = _moveOffsetByWord(text.toPlainText(), endOffset, true) ?? 0; final word = text.substring(wordStartOffset, endOffset); // Ensure that the preceding word doesn't already contain a full or partial @@ -865,7 +865,7 @@ class LinkifyReaction extends EditReaction { documentRange: linkRange, attributions: { LinkAttribution.fromUri( - parseLink(changedNodeText.text.substring(rangeToUpdate.start, rangeToUpdate.end + 1)), + parseLink(changedNodeText.toPlainText().substring(rangeToUpdate.start, rangeToUpdate.end + 1)), ) }, ), @@ -943,7 +943,7 @@ class DashConversionReaction extends EditReaction { if (change is! TextInsertionEvent) { continue; } - if (change.text.text != "-") { + if (change.text.toPlainText() != "-") { continue; } @@ -962,7 +962,7 @@ class DashConversionReaction extends EditReaction { } final insertionNode = document.getNodeById(dashInsertionEvent.nodeId) as TextNode; - final upstreamCharacter = insertionNode.text.text[dashInsertionEvent.offset - 1]; + final upstreamCharacter = insertionNode.text.toPlainText()[dashInsertionEvent.offset - 1]; if (upstreamCharacter != '-') { return; } @@ -1039,7 +1039,7 @@ class EditInspector { if (textInsertionEvent is! TextInsertionEvent) { return false; } - if (textInsertionEvent.text.text != " ") { + if (textInsertionEvent.text.toPlainText() != " ") { return false; } @@ -1059,8 +1059,8 @@ class EditInspector { /// Finds and returns the last text the user typed within the given [edit]s, or `null` if /// no text was typed. static UserTypedText? findLastTextUserTyped(Document document, List edits) { - final lastSpaceInsertion = edits.whereType().lastWhereOrNull( - (edit) => edit.change is TextInsertionEvent && (edit.change as TextInsertionEvent).text.text.endsWith(" ")); + final lastSpaceInsertion = edits.whereType().lastWhereOrNull((edit) => + edit.change is TextInsertionEvent && (edit.change as TextInsertionEvent).text.toPlainText().endsWith(" ")); if (lastSpaceInsertion == null) { // The user didn't insert any text segment that ended with a space. return null; diff --git a/super_editor/lib/src/default_editor/document_gestures_touch_ios.dart b/super_editor/lib/src/default_editor/document_gestures_touch_ios.dart index 068ef1b6f8..8d00977240 100644 --- a/super_editor/lib/src/default_editor/document_gestures_touch_ios.dart +++ b/super_editor/lib/src/default_editor/document_gestures_touch_ios.dart @@ -692,12 +692,12 @@ class _IosDocumentTouchInteractorState extends State return docPosition; } - final text = (widget.document.getNodeById(docPosition.nodeId) as TextNode).text.text; + final text = (widget.document.getNodeById(docPosition.nodeId) as TextNode).text; final tapOffset = (docPosition.nodePosition as TextNodePosition).offset; if (tapOffset == text.length) { return docPosition; } - final adjustedSelectionOffset = IosHeuristics.adjustTapOffset(text, tapOffset); + final adjustedSelectionOffset = IosHeuristics.adjustTapOffset(text.toPlainText(), tapOffset); return DocumentPosition( nodeId: docPosition.nodeId, diff --git a/super_editor/lib/src/default_editor/document_ime/document_delta_editing.dart b/super_editor/lib/src/default_editor/document_ime/document_delta_editing.dart index 738692ad53..73bbc5a263 100644 --- a/super_editor/lib/src/default_editor/document_ime/document_delta_editing.dart +++ b/super_editor/lib/src/default_editor/document_ime/document_delta_editing.dart @@ -331,7 +331,7 @@ class TextDeltasDocumentEditor { } editorOpsLog.fine("Executing text insertion command."); - editorOpsLog.finer("Text before insertion: '${insertionNode.text.text}'"); + editorOpsLog.finer("Text before insertion: '${insertionNode.text.toPlainText()}'"); editor.execute([ if (selection.value != DocumentSelection.collapsed(position: insertionPosition)) ChangeSelectionRequest( @@ -345,7 +345,7 @@ class TextDeltasDocumentEditor { attributions: composerPreferences.currentAttributions, ), ]); - editorOpsLog.finer("Text after insertion: '${insertionNode.text.text}'"); + editorOpsLog.finer("Text after insertion: '${insertionNode.text.toPlainText()}'"); return true; } @@ -431,7 +431,7 @@ class TextDeltasDocumentEditor { final newNodeId = Editor.createNodeId(); if (extentNode is ListItemNode) { - if (extentNode.text.text.isEmpty) { + if (extentNode.text.isEmpty) { // The list item is empty. Convert it to a paragraph. editorOpsLog.finer( "The current node is an empty list item. Converting it to a paragraph instead of inserting block-level newline."); @@ -534,7 +534,7 @@ class TextDeltasDocumentEditor { ]); } } else if (extentNode is TaskNode) { - if (extentNode.text.text.isEmpty) { + if (extentNode.text.isEmpty) { // The task is empty. Convert it to a paragraph. editor.execute([ ConvertTextNodeToParagraphRequest(nodeId: extentNode.id), diff --git a/super_editor/lib/src/default_editor/document_ime/document_ime_communication.dart b/super_editor/lib/src/default_editor/document_ime/document_ime_communication.dart index d3572a7da9..dd99c21f8f 100644 --- a/super_editor/lib/src/default_editor/document_ime/document_ime_communication.dart +++ b/super_editor/lib/src/default_editor/document_ime/document_ime_communication.dart @@ -258,6 +258,7 @@ class DocumentImeInputClient extends TextInputConnectionDecorator with TextInput return; } + print("Sending document to IME..."); _isSendingToIme = true; editorImeLog.fine("[DocumentImeInputClient] - Serializing and sending document and selection to IME"); editorImeLog.fine("[DocumentImeInputClient] - Selection: ${textDeltasDocumentEditor.selection.value}"); @@ -271,6 +272,8 @@ class DocumentImeInputClient extends TextInputConnectionDecorator with TextInput editorImeLog .fine("[DocumentImeInputClient] - Adding invisible characters?: ${imeSerialization.didPrependPlaceholder}"); TextEditingValue textEditingValue = imeSerialization.toTextEditingValue(); + print("IME text: '${textEditingValue.text}'"); + print("IME composing: ${textEditingValue.composing}"); editorImeLog.fine("[DocumentImeInputClient] - Sending IME serialization:"); editorImeLog.fine("[DocumentImeInputClient] - $textEditingValue"); @@ -278,6 +281,7 @@ class DocumentImeInputClient extends TextInputConnectionDecorator with TextInput editorImeLog.fine("[DocumentImeInputClient] - Done sending document to IME"); _isSendingToIme = false; + print("----- DONE SENDING TO IME -----"); } @override diff --git a/super_editor/lib/src/default_editor/document_ime/document_serialization.dart b/super_editor/lib/src/default_editor/document_ime/document_serialization.dart index 0a500e9d30..b7824a7baa 100644 --- a/super_editor/lib/src/default_editor/document_ime/document_serialization.dart +++ b/super_editor/lib/src/default_editor/document_ime/document_serialization.dart @@ -93,12 +93,12 @@ class DocumentImeSerializer { // Cache mappings between the IME text range and the document position // so that we can easily convert between the two, when requested. final imeRange = TextRange(start: characterCount, end: characterCount + node.text.length); - editorImeLog.finer("IME range $imeRange -> text node content '${node.text.text}'"); + editorImeLog.finer("IME range $imeRange -> text node content '${node.text.toPlainText()}'"); imeRangesToDocTextNodes[imeRange] = node.id; docTextNodesToImeRanges[node.id] = imeRange; // Concatenate this node's text with the previous nodes. - buffer.write(node.text.text); + buffer.write(node.text.toPlainText()); characterCount += node.text.length; } @@ -303,7 +303,7 @@ class DocumentImeSerializer { editorImeLog.shout("IME Ranges to text nodes:"); for (final entry in imeRangesToDocTextNodes.entries) { editorImeLog.shout(" - IME range: ${entry.key} -> Text node: ${entry.value}"); - editorImeLog.shout(" ^ node content: '${(_doc.getNodeById(entry.value) as TextNode).text.text}'"); + editorImeLog.shout(" ^ node content: '${(_doc.getNodeById(entry.value) as TextNode).text.toPlainText()}'"); } editorImeLog.shout("-----------------------------------------------------------"); throw Exception( diff --git a/super_editor/lib/src/default_editor/document_ime/ime_keyboard_control.dart b/super_editor/lib/src/default_editor/document_ime/ime_keyboard_control.dart index eefed0c623..5e883bf701 100644 --- a/super_editor/lib/src/default_editor/document_ime/ime_keyboard_control.dart +++ b/super_editor/lib/src/default_editor/document_ime/ime_keyboard_control.dart @@ -127,17 +127,20 @@ class SoftwareKeyboardController { /// Opens the software keyboard. void open() { assert(hasDelegate); + print("SoftwareKeyboardController: open()"); _delegate?.open(); } void hide() { assert(hasDelegate); + print("SoftwareKeyboardController: hide()"); _delegate?.hide(); } /// Closes the software keyboard. void close() { assert(hasDelegate); + print("SoftwareKeyboardController: close()"); _delegate?.close(); } } diff --git a/super_editor/lib/src/default_editor/document_ime/mobile_toolbar.dart b/super_editor/lib/src/default_editor/document_ime/mobile_toolbar.dart index 8a2465ec5f..009ea07fce 100644 --- a/super_editor/lib/src/default_editor/document_ime/mobile_toolbar.dart +++ b/super_editor/lib/src/default_editor/document_ime/mobile_toolbar.dart @@ -266,11 +266,10 @@ class _KeyboardEditingToolbarState extends State with Wi icon: const Icon(Icons.format_quote), ), IconButton( - onPressed: isSingleNodeSelected && - selectedNode is ParagraphNode && - selectedNode.text.text.isEmpty - ? _toolbarOps.convertToHr - : null, + onPressed: + isSingleNodeSelected && selectedNode is ParagraphNode && selectedNode.text.isEmpty + ? _toolbarOps.convertToHr + : null, icon: const Icon(Icons.horizontal_rule), ), ], diff --git a/super_editor/lib/src/default_editor/layout_single_column/_styler_shylesheet.dart b/super_editor/lib/src/default_editor/layout_single_column/_styler_shylesheet.dart index 11714a7498..42b0374c22 100644 --- a/super_editor/lib/src/default_editor/layout_single_column/_styler_shylesheet.dart +++ b/super_editor/lib/src/default_editor/layout_single_column/_styler_shylesheet.dart @@ -53,7 +53,8 @@ class SingleColumnStylesheetStyler extends SingleColumnLayoutStylePhase { // Combine all applicable style rules into a single set of styles // for this component. final aggregateStyles = { - "inlineTextStyler": _stylesheet.inlineTextStyler, + Styles.inlineTextStyler: _stylesheet.inlineTextStyler, + Styles.inlineWidgetBuilderChain: _stylesheet.inlineWidgetBuilderChain, }; for (final rule in _stylesheet.rules) { if (rule.selector.matches(document, node)) { diff --git a/super_editor/lib/src/default_editor/list_items.dart b/super_editor/lib/src/default_editor/list_items.dart index 116dc6324a..623f3382e0 100644 --- a/super_editor/lib/src/default_editor/list_items.dart +++ b/super_editor/lib/src/default_editor/list_items.dart @@ -198,6 +198,7 @@ abstract class ListItemComponentViewModel extends SingleColumnLayoutComponentVie required this.indent, required this.text, required this.textStyleBuilder, + this.inlineWidgetBuilderChain = const [], this.textDirection = TextDirection.ltr, this.textAlignment = TextAlign.left, this.selection, @@ -227,6 +228,8 @@ abstract class ListItemComponentViewModel extends SingleColumnLayoutComponentVie @override AttributionStyleBuilder textStyleBuilder; @override + InlineWidgetBuilderChain inlineWidgetBuilderChain; + @override TextDirection textDirection; @override TextAlign textAlignment; @@ -283,6 +286,7 @@ class UnorderedListItemComponentViewModel extends ListItemComponentViewModel { required super.indent, required super.text, required super.textStyleBuilder, + super.inlineWidgetBuilderChain = const [], this.dotStyle = const ListItemDotStyle(), super.textDirection = TextDirection.ltr, super.textAlignment = TextAlign.left, @@ -353,6 +357,7 @@ class OrderedListItemComponentViewModel extends ListItemComponentViewModel { this.numeralStyle = OrderedListNumeralStyle.arabic, required super.text, required super.textStyleBuilder, + super.inlineWidgetBuilderChain = const [], super.textDirection = TextDirection.ltr, super.textAlignment = TextAlign.left, super.selection, @@ -458,6 +463,7 @@ class UnorderedListItemComponent extends StatefulWidget { required this.componentKey, required this.text, required this.styleBuilder, + this.inlineWidgetBuilderChain = const [], this.dotBuilder = _defaultUnorderedListItemDotBuilder, this.dotStyle, this.indent = 0, @@ -474,6 +480,7 @@ class UnorderedListItemComponent extends StatefulWidget { final GlobalKey componentKey; final AttributedText text; final AttributionStyleBuilder styleBuilder; + final InlineWidgetBuilderChain inlineWidgetBuilderChain; final UnorderedListItemDotBuilder dotBuilder; final ListItemDotStyle? dotStyle; final int indent; @@ -538,6 +545,7 @@ class _UnorderedListItemComponentState extends State key: _innerTextComponentKey, text: widget.text, textStyleBuilder: widget.styleBuilder, + inlineWidgetBuilderChain: widget.inlineWidgetBuilderChain, textSelection: widget.textSelection, textScaler: textScaler, selectionColor: widget.selectionColor, @@ -621,6 +629,7 @@ class OrderedListItemComponent extends StatefulWidget { required this.listIndex, required this.text, required this.styleBuilder, + this.inlineWidgetBuilderChain = const [], this.numeralBuilder = _defaultOrderedListItemNumeralBuilder, this.numeralStyle = OrderedListNumeralStyle.arabic, this.indent = 0, @@ -638,6 +647,7 @@ class OrderedListItemComponent extends StatefulWidget { final int listIndex; final AttributedText text; final AttributionStyleBuilder styleBuilder; + final InlineWidgetBuilderChain inlineWidgetBuilderChain; final OrderedListItemNumeralBuilder numeralBuilder; final OrderedListNumeralStyle numeralStyle; final int indent; @@ -703,6 +713,7 @@ class _OrderedListItemComponentState extends State { key: _innerTextComponentKey, text: widget.text, textStyleBuilder: widget.styleBuilder, + inlineWidgetBuilderChain: widget.inlineWidgetBuilderChain, textSelection: widget.textSelection, textScaler: textScaler, selectionColor: widget.selectionColor, diff --git a/super_editor/lib/src/default_editor/multi_node_editing.dart b/super_editor/lib/src/default_editor/multi_node_editing.dart index 5abda1cf71..c90cdd3c73 100644 --- a/super_editor/lib/src/default_editor/multi_node_editing.dart +++ b/super_editor/lib/src/default_editor/multi_node_editing.dart @@ -418,7 +418,7 @@ class InsertNodeAtCaretCommand extends EditCommand { final endOfParagraph = selectedNode.endPosition; DocumentSelection newSelection; - if (selectedNode.text.text.isEmpty) { + if (selectedNode.text.isEmpty) { // Insert new block node above selected paragraph. document.insertNodeBefore(existingNode: selectedNode, newNode: newNode); executor.logChanges([ diff --git a/super_editor/lib/src/default_editor/paragraph.dart b/super_editor/lib/src/default_editor/paragraph.dart index cefc707ad8..2ddb8fd72c 100644 --- a/super_editor/lib/src/default_editor/paragraph.dart +++ b/super_editor/lib/src/default_editor/paragraph.dart @@ -77,7 +77,7 @@ class ParagraphComponentBuilder implements ComponentBuilder { return null; } - final textDirection = getParagraphDirection(node.text.text); + final textDirection = getParagraphDirection(node.text.toPlainText()); TextAlign textAlign = (textDirection == TextDirection.ltr) ? TextAlign.left : TextAlign.right; final textAlignName = node.getMetadataValue('textAlign'); @@ -143,6 +143,7 @@ class ParagraphComponentViewModel extends SingleColumnLayoutComponentViewModel w this.indentCalculator = defaultParagraphIndentCalculator, required this.text, required this.textStyleBuilder, + this.inlineWidgetBuilderChain = const [], this.textDirection = TextDirection.ltr, this.textAlignment = TextAlign.left, this.textScaler, @@ -176,6 +177,8 @@ class ParagraphComponentViewModel extends SingleColumnLayoutComponentViewModel w @override AttributionStyleBuilder textStyleBuilder; @override + InlineWidgetBuilderChain inlineWidgetBuilderChain; + @override TextDirection textDirection; @override TextAlign textAlignment; @@ -203,6 +206,7 @@ class ParagraphComponentViewModel extends SingleColumnLayoutComponentViewModel w indentCalculator: indentCalculator, text: text, textStyleBuilder: textStyleBuilder, + inlineWidgetBuilderChain: inlineWidgetBuilderChain, textDirection: textDirection, textAlignment: textAlignment, textScaler: textScaler, @@ -312,6 +316,7 @@ class _ParagraphComponentState extends State textAlign: widget.viewModel.textAlignment, textScaler: widget.viewModel.textScaler, textStyleBuilder: widget.viewModel.textStyleBuilder, + inlineWidgetBuilderChain: widget.viewModel.inlineWidgetBuilderChain, metadata: widget.viewModel.blockType != null ? { 'blockType': widget.viewModel.blockType, @@ -517,7 +522,7 @@ class CombineParagraphsCommand extends EditCommand { } // Combine the text and delete the currently selected node. - final isTopNodeEmpty = nodeAbove.text.text.isEmpty; + final isTopNodeEmpty = nodeAbove.text.isEmpty; nodeAbove.text = nodeAbove.text.copyAndAppend(secondNode.text); // Avoid overriding the metadata when the nodeAbove isn't a ParagraphNode. @@ -619,8 +624,8 @@ class SplitParagraphCommand extends EditCommand { final startText = text.copyText(0, splitPosition.offset); final endText = text.copyText(splitPosition.offset); editorDocLog.info('Splitting paragraph:'); - editorDocLog.info(' - start text: "${startText.text}"'); - editorDocLog.info(' - end text: "${endText.text}"'); + editorDocLog.info(' - start text: "${startText.toPlainText()}"'); + editorDocLog.info(' - end text: "${endText.toPlainText()}"'); if (splitPosition.offset == text.length) { // The paragraph was split at the very end, the user is creating a new, @@ -701,7 +706,7 @@ class SplitParagraphCommand extends EditCommand { ), ]; - if (newNode.text.text.isEmpty) { + if (newNode.text.isEmpty) { executor.logChanges([ SubmitParagraphIntention.start(), ...documentChanges, @@ -778,7 +783,7 @@ class DeleteUpstreamAtBeginningOfParagraphCommand extends EditCommand { moveSelectionToEndOfPrecedingNode(executor, document, composer); - if ((node as TextNode).text.text.isEmpty) { + if ((node as TextNode).text.isEmpty) { // The caret is at the beginning of an empty TextNode and the preceding // node is not a TextNode. Delete the current TextNode and move the // selection up to the preceding node if exist. @@ -1040,7 +1045,7 @@ ExecutionInstruction enterToUnIndentParagraph({ // Nothing to un-indent. return ExecutionInstruction.continueExecution; } - if (paragraph.text.text.isNotEmpty) { + if (paragraph.text.isNotEmpty) { // We only un-indent when the user presses Enter in an empty paragraph. return ExecutionInstruction.continueExecution; } @@ -1327,7 +1332,7 @@ ExecutionInstruction moveParagraphSelectionUpWhenBackspaceIsPressed({ return ExecutionInstruction.continueExecution; } - if (node.text.text.isEmpty) { + if (node.text.isEmpty) { return ExecutionInstruction.continueExecution; } diff --git a/super_editor/lib/src/default_editor/super_editor.dart b/super_editor/lib/src/default_editor/super_editor.dart index 1b3c8ebff1..eeb1ff065e 100644 --- a/super_editor/lib/src/default_editor/super_editor.dart +++ b/super_editor/lib/src/default_editor/super_editor.dart @@ -1604,6 +1604,7 @@ final defaultStylesheet = Stylesheet( ), ], inlineTextStyler: defaultInlineTextStyler, + inlineWidgetBuilderChain: defaultInlineWidgetBuilderChain, ); TextStyle defaultInlineTextStyler(Set attributions, TextStyle existingStyle) { diff --git a/super_editor/lib/src/default_editor/tasks.dart b/super_editor/lib/src/default_editor/tasks.dart index 685f669130..4389c6413d 100644 --- a/super_editor/lib/src/default_editor/tasks.dart +++ b/super_editor/lib/src/default_editor/tasks.dart @@ -182,6 +182,7 @@ class TaskComponentViewModel extends SingleColumnLayoutComponentViewModel with T required this.setComplete, required this.text, required this.textStyleBuilder, + this.inlineWidgetBuilderChain = const [], this.textDirection = TextDirection.ltr, this.textAlignment = TextAlign.left, this.selection, @@ -215,6 +216,8 @@ class TaskComponentViewModel extends SingleColumnLayoutComponentViewModel with T @override AttributionStyleBuilder textStyleBuilder; @override + InlineWidgetBuilderChain inlineWidgetBuilderChain; + @override TextDirection textDirection; @override TextAlign textAlignment; @@ -237,6 +240,7 @@ class TaskComponentViewModel extends SingleColumnLayoutComponentViewModel with T setComplete: setComplete, text: text, textStyleBuilder: textStyleBuilder, + inlineWidgetBuilderChain: inlineWidgetBuilderChain, textDirection: textDirection, selection: selection, selectionColor: selectionColor, @@ -364,6 +368,7 @@ class _TaskComponentState extends State with ProxyDocumentCompone key: _textKey, text: widget.viewModel.text, textStyleBuilder: _computeStyles, + inlineWidgetBuilderChain: widget.viewModel.inlineWidgetBuilderChain, textSelection: widget.viewModel.selection, selectionColor: widget.viewModel.selectionColor, highlightWhenEmpty: widget.viewModel.highlightWhenEmpty, @@ -401,7 +406,7 @@ ExecutionInstruction enterToInsertNewTask({ return ExecutionInstruction.continueExecution; } - if (node.text.text.isEmpty) { + if (node.text.isEmpty) { // The task is empty. Convert it to a paragraph. editContext.editor.execute([ ConvertTextNodeToParagraphRequest(nodeId: node.id), diff --git a/super_editor/lib/src/default_editor/text.dart b/super_editor/lib/src/default_editor/text.dart index 3c9ef4ad2f..9485598c08 100644 --- a/super_editor/lib/src/default_editor/text.dart +++ b/super_editor/lib/src/default_editor/text.dart @@ -170,7 +170,7 @@ class TextNode extends DocumentNode with ChangeNotifier { String copyContent(dynamic selection) { assert(selection is TextSelection); - return (selection as TextSelection).textInside(text.text); + return (selection as TextSelection).textInside(text.toPlainText()); } @override @@ -292,7 +292,7 @@ extension DocumentSelectionWithText on Document { } else if (textNode == nodes.first) { // Handle partial node selection in first node. startOffset = (nodeRange.start.nodePosition as TextPosition).offset; - endOffset = max(textNode.text.text.length - 1, 0); + endOffset = max(textNode.text.length - 1, 0); } else if (textNode == nodes.last) { // Handle partial node selection in last node. startOffset = 0; @@ -303,7 +303,7 @@ extension DocumentSelectionWithText on Document { } else { // Handle full node selection. startOffset = 0; - endOffset = max(textNode.text.text.length - 1, 0); + endOffset = max(textNode.text.length - 1, 0); } final selectionRange = SpanRange(startOffset, endOffset); @@ -351,7 +351,7 @@ extension DocumentSelectionWithText on Document { } else if (textNode == nodes.first) { // Handle partial node selection in first node. startOffset = (nodeRange.start.nodePosition as TextPosition).offset; - endOffset = max(textNode.text.text.length - 1, 0); + endOffset = max(textNode.text.length - 1, 0); } else if (textNode == nodes.last) { // Handle partial node selection in last node. startOffset = 0; @@ -362,7 +362,7 @@ extension DocumentSelectionWithText on Document { } else { // Handle full node selection. startOffset = 0; - endOffset = max(textNode.text.text.length - 1, 0); + endOffset = max(textNode.text.length - 1, 0); } final selectionRange = SpanRange(startOffset, endOffset); @@ -497,6 +497,9 @@ mixin TextComponentViewModel on SingleColumnLayoutComponentViewModel { AttributionStyleBuilder get textStyleBuilder; set textStyleBuilder(AttributionStyleBuilder styleBuilder); + InlineWidgetBuilderChain get inlineWidgetBuilderChain; + set inlineWidgetBuilderChain(InlineWidgetBuilderChain inlineWidgetBuildChain); + TextDirection get textDirection; set textDirection(TextDirection direction); @@ -562,6 +565,8 @@ mixin TextComponentViewModel on SingleColumnLayoutComponentViewModel { return inlineTextStyler(attributions, baseStyle); }; + inlineWidgetBuilderChain = styles[Styles.inlineWidgetBuilderChain] ?? []; + composingRegionUnderlineStyle = styles[Styles.composingRegionUnderlineStyle] ?? composingRegionUnderlineStyle; showComposingRegionUnderline = styles[Styles.showComposingRegionUnderline] ?? showComposingRegionUnderline; @@ -635,7 +640,7 @@ class _TextWithHintComponentState extends State Widget build(BuildContext context) { return Stack( children: [ - if (widget.text.text.isEmpty) + if (widget.text.isEmpty) IgnorePointer( child: Text.rich( widget.hintText?.computeTextSpan(_styleBuilder) ?? const TextSpan(text: ''), @@ -670,6 +675,7 @@ class TextComponent extends StatefulWidget { this.textDirection, this.textScaler, required this.textStyleBuilder, + this.inlineWidgetBuilderChain = const [], this.metadata = const {}, this.textSelection, this.selectionColor = Colors.lightBlueAccent, @@ -691,6 +697,12 @@ class TextComponent extends StatefulWidget { final AttributionStyleBuilder textStyleBuilder; + /// A Chain of Responsibility that's used to build inline widgets. + /// + /// The first builder in the chain to return a non-null `Widget` will be + /// used for a given inline placeholder. + final InlineWidgetBuilderChain inlineWidgetBuilderChain; + final Map metadata; final TextSelection? textSelection; @@ -890,7 +902,8 @@ class TextComponentState extends State with DocumentComponent imp final TextPosition endPosition = getEndPosition(); // Note: we compare offset values because we don't care if the affinitys are equal - final isAutoWrapLine = endOfLine.offset != endPosition.offset && (widget.text.text[endOfLine.offset] != '\n'); + final isAutoWrapLine = + endOfLine.offset != endPosition.offset && (widget.text.toPlainText()[endOfLine.offset] != '\n'); // Note: For lines that auto-wrap, moving the cursor to `offset` causes the // cursor to jump to the next line because the cursor is placed after @@ -1018,12 +1031,12 @@ class TextComponentState extends State with DocumentComponent imp @override String getAllText() { - return widget.text.text; + return widget.text.toPlainText(); } @override String getContiguousTextAt(TextNodePosition textPosition) { - return getContiguousTextSelectionAt(textPosition).textInside(widget.text.text); + return getContiguousTextSelectionAt(textPosition).textInside(widget.text.toPlainText()); } @override @@ -1035,7 +1048,7 @@ class TextComponentState extends State with DocumentComponent imp @override TextNodeSelection getContiguousTextSelectionAt(TextNodePosition textPosition) { - final text = widget.text.text; + final text = widget.text.toPlainText(); if (text.isEmpty) { return const TextNodeSelection.collapsed(offset: -1); } @@ -1123,7 +1136,11 @@ class TextComponentState extends State with DocumentComponent imp return IgnorePointer( child: SuperText( key: _textKey, - richText: widget.text.computeTextSpan(_textStyleWithBlockType), + richText: widget.text.computeInlineSpan( + context, + _textStyleWithBlockType, + widget.inlineWidgetBuilderChain, + ), textAlign: widget.textAlign ?? TextAlign.left, textDirection: widget.textDirection ?? TextDirection.ltr, textScaler: widget.textScaler ?? MediaQuery.textScalerOf(context), @@ -1175,6 +1192,89 @@ class TextComponentState extends State with DocumentComponent imp } } +/// The default priority list of inline widget builders, which map [AttributedText] +/// placeholders to widgets. +const defaultInlineWidgetBuilderChain = [ + inlineNetworkImageBuilder, + inlineAssetImageBuilder, +]; + +/// An inline widget builder that displays an image from the network. +Widget? inlineNetworkImageBuilder(BuildContext context, TextStyle textStyle, Object placeholder) { + if (placeholder is! InlineNetworkImagePlaceholder) { + return null; + } + + return LineHeight( + style: textStyle, + child: Image.network(placeholder.url), + ); +} + +/// An inline widget builder that displays an image from local assets. +Widget? inlineAssetImageBuilder(BuildContext context, TextStyle textStyle, Object placeholder) { + if (placeholder is! InlineAssetImagePlaceholder) { + return null; + } + + return LineHeight( + style: textStyle, + child: Image.asset(placeholder.assetPath), + ); +} + +/// A widget that sets its [child]'s height to the line-height of a given text [style]. +class LineHeight extends StatelessWidget { + const LineHeight({ + super.key, + required this.style, + required this.child, + }); + + final TextStyle style; + final Widget child; + + @override + Widget build(BuildContext context) { + final textPainter = TextPainter( + text: TextSpan(text: "a", style: style), + textDirection: TextDirection.ltr, + )..layout(); + + return SizedBox( + height: textPainter.height, + child: child, + ); + } +} + +/// A widget that sets its [child]'s width and height to the line-height of a +/// given text [style]. +class LineHeightSquare extends StatelessWidget { + const LineHeightSquare({ + super.key, + required this.style, + required this.child, + }); + + final TextStyle style; + final Widget child; + + @override + Widget build(BuildContext context) { + final textPainter = TextPainter( + text: TextSpan(text: "a", style: style), + textDirection: TextDirection.ltr, + )..layout(); + + return SizedBox( + width: textPainter.height, + height: textPainter.height, + child: child, + ); + } +} + /// A [ProxyDocumentComponent] that adds [TextComposable] capabilities so /// that simple text-based proxy components can meet their expected contract /// without going through the work of defining a stateful widget that mixes in @@ -1327,7 +1427,7 @@ class AddTextAttributionsCommand extends EditCommand { // Create a new AttributedText with updated attribution spans, so that the presentation system can // see that we made a change, and re-renders the text in the document. node.text = AttributedText( - node.text.text, + node.text.toPlainText(), node.text.spans.copy() ..addAttribution( newAttribution: attribution, @@ -1335,6 +1435,7 @@ class AddTextAttributionsCommand extends EditCommand { end: range.end, autoMerge: autoMerge, ), + Map.from(node.text.placeholders), ); executor.logChanges([ @@ -1446,8 +1547,7 @@ class RemoveTextAttributionsCommand extends EditCommand { // Create a new AttributedText with updated attribution spans, so that the presentation system can // see that we made a change, and re-renders the text in the document. - node.text = AttributedText( - node.text.text, + node.text = node.text.replaceAttributions( node.text.spans.copy() ..removeAttribution( attributionToRemove: attribution, @@ -1601,10 +1701,8 @@ class ToggleTextAttributionsCommand extends EditCommand { // Create a new AttributedText with updated attribution spans, so that the presentation system can // see that we made a change, and re-renders the text in the document. - node.text = AttributedText( - node.text.text, - node.text.spans.copy(), - )..removeAttribution( + node.text = node.text.copy() + ..removeAttribution( attribution, range, ); @@ -1615,8 +1713,7 @@ class ToggleTextAttributionsCommand extends EditCommand { // Create a new AttributedText with updated attribution spans, so that the presentation system can // see that we made a change, and re-renders the text in the document. - node.text = AttributedText( - node.text.text, + node.text = node.text.replaceAttributions( node.text.spans.copy() ..addAttribution( newAttribution: attribution, @@ -1810,10 +1907,10 @@ class TextInsertionEvent extends NodeChangeEvent { final AttributedText text; @override - String describe() => "Inserted text ($nodeId) @ $offset: '${text.text}'"; + String describe() => "Inserted text ($nodeId) @ $offset: '${text.toPlainText()}'"; @override - String toString() => "TextInsertionEvent ('$nodeId' - $offset -> '${text.text}')"; + String toString() => "TextInsertionEvent ('$nodeId' - $offset -> '${text.toPlainText()}')"; @override bool operator ==(Object other) => @@ -1839,10 +1936,10 @@ class TextDeletedEvent extends NodeChangeEvent { final AttributedText deletedText; @override - String describe() => "Deleted text ($nodeId) @ $offset: ${deletedText.text}"; + String describe() => "Deleted text ($nodeId) @ $offset: ${deletedText.toPlainText()}"; @override - String toString() => "TextDeletedEvent ('$nodeId' - $offset -> '${deletedText.text}')"; + String toString() => "TextDeletedEvent ('$nodeId' - $offset -> '${deletedText.toPlainText()}')"; @override bool operator ==(Object other) => @@ -2223,7 +2320,7 @@ void _insertBlockLevelNewline({ final newNodeId = Editor.createNodeId(); if (extentNode is ListItemNode) { - if (extentNode.text.text.isEmpty) { + if (extentNode.text.isEmpty) { // The list item is empty. Convert it to a paragraph. _convertToParagraph( context: context, diff --git a/super_editor/lib/src/default_editor/text_tokenizing/stable_tags.dart b/super_editor/lib/src/default_editor/text_tokenizing/stable_tags.dart index 7c34cad292..777b8c5a61 100644 --- a/super_editor/lib/src/default_editor/text_tokenizing/stable_tags.dart +++ b/super_editor/lib/src/default_editor/text_tokenizing/stable_tags.dart @@ -615,7 +615,7 @@ class TagUserReaction extends EditReaction { for (final tag in allStableTags) { final tagText = textNode.text.substring(tag.start, tag.end + 1); final attribution = tag.attribution as CommittedStableTagAttribution; - final containsTrigger = textNode.text.text[tag.start] == _tagRule.trigger; + final containsTrigger = textNode.text.toPlainText()[tag.start] == _tagRule.trigger; if (tagText != "${_tagRule.trigger}${attribution.tagValue}" || !containsTrigger) { // The tag was partially deleted it. Delete the whole thing. diff --git a/super_editor/lib/src/default_editor/text_tokenizing/tags.dart b/super_editor/lib/src/default_editor/text_tokenizing/tags.dart index 7122ce72fe..f4559039c2 100644 --- a/super_editor/lib/src/default_editor/text_tokenizing/tags.dart +++ b/super_editor/lib/src/default_editor/text_tokenizing/tags.dart @@ -17,7 +17,7 @@ class TagFinder { required TextNodePosition expansionPosition, required bool Function(Set tokenAttributions) isTokenCandidate, }) { - final rawText = text.text; + final rawText = text.toPlainText(); if (rawText.isEmpty) { return null; } @@ -90,7 +90,7 @@ class TagFinder { /// Finds and returns all tags in the given [textNode], which meet the given [rule]. static Set findAllTagsInTextNode(TextNode textNode, TagRule rule) { - final plainText = textNode.text.text; + final plainText = textNode.text.toPlainText(); final tags = {}; int characterIndex = 0; diff --git a/super_editor/lib/src/infrastructure/attributed_text_styles.dart b/super_editor/lib/src/infrastructure/attributed_text_styles.dart index a6bee88ed4..b98b06347b 100644 --- a/super_editor/lib/src/infrastructure/attributed_text_styles.dart +++ b/super_editor/lib/src/infrastructure/attributed_text_styles.dart @@ -1,5 +1,8 @@ +import 'dart:math'; + import 'package:attributed_text/attributed_text.dart'; import 'package:flutter/painting.dart'; +import 'package:flutter/widgets.dart'; import 'package:super_editor/src/infrastructure/_logging.dart'; /// Creates the desired [TextStyle] given the [attributions] associated @@ -13,11 +16,128 @@ extension ToSpanRange on TextRange { } extension ComputeTextSpan on AttributedText { + /// Returns a Flutter [InlineSpan] comprised of styled text and widgets + /// based on an [AttributedText]. + /// + /// The given [styleBuilder] interprets the meaning of every attribution + /// and constructs [TextStyle]s accordingly. + /// + /// The given [inlineWidgetBuilder] interprets every placeholder `Object` + /// and builds a corresponding inline widget. + InlineSpan computeInlineSpan( + BuildContext context, + AttributionStyleBuilder styleBuilder, + InlineWidgetBuilderChain inlineWidgetBuilderChain, + ) { + // print(""); + // print(""); + // print("computeInlineSpan()"); + if (isEmpty) { + // There is no text and therefore no attributions. + return TextSpan(text: '', style: styleBuilder({})); + } + + final inlineSpans = []; + + final collapsedSpans = spans.collapseSpans(contentLength: length); + var spanIndex = 0; + var span = collapsedSpans.first; + + int start = 0; + + // print("Text: '${toPlainText()}'"); + // print("Length: $length"); + // print("Span - start: ${span.start}, end: ${span.end}"); + while (start < length) { + // print("Span count: ${collapsedSpans.length}"); + // print("Content start: $start"); + // print("Current span attributions: ${span.attributions}"); + late int contentEnd; + if (placeholders[start] != null) { + // This section is a placeholder. + contentEnd = start + 1; + + final textStyle = styleBuilder({}); + Widget? inlineWidget; + for (final builder in inlineWidgetBuilderChain) { + inlineWidget = builder(context, textStyle, placeholders[start]!); + if (inlineWidget != null) { + break; + } + } + + if (inlineWidget != null) { + inlineSpans.add( + WidgetSpan( + alignment: PlaceholderAlignment.middle, + child: inlineWidget, + ), + ); + // print("Adding placeholder: ${placeholders[start]} (at $start)"); + } + } else { + // This section is text. The end of this text is either the + // end of the AttributedText, or the index of the next placeholder. + contentEnd = span.end + 1; + for (final entry in placeholders.entries) { + if (entry.key > start) { + contentEnd = entry.key; + break; + } + } + + // print("Adding text span: '${substring(start, contentEnd)}'"); + inlineSpans.add( + TextSpan( + text: substring(start, contentEnd), + style: styleBuilder(span.attributions), + ), + ); + } + + // print("Content end: $contentEnd, span end: ${span.end + 1}"); + if (contentEnd == span.end + 1) { + // print("Content and span end at same place"); + // The content and span end at the same place. + start = contentEnd; + } else if (contentEnd < span.end + 1) { + // print("Content ends before the span"); + // The content ends before the span. + start = contentEnd; + } else { + // print("Span ends before the content"); + // The span ends before the content. + start = span.end + 1; + } + // print("New start value: $start"); + + if (start > span.end && start < length) { + spanIndex += 1; + span = collapsedSpans[spanIndex]; + } + // print("-------"); + // print(""); + } + + // print("Returning inline spans:"); + // for (final span in inlineSpans) { + // print(" - $span"); + // } + // print(""); + // print(""); + return TextSpan( + text: "", + children: inlineSpans, + style: styleBuilder({}), + ); + } + /// Returns a Flutter [TextSpan] that is styled based on the /// attributions within this [AttributedText]. /// /// The given [styleBuilder] interprets the meaning of every /// attribution and constructs [TextStyle]s accordingly. + @Deprecated("Use computeInlineSpan() instead, which adds support for inline widgets.") TextSpan computeTextSpan(AttributionStyleBuilder styleBuilder) { attributionsLog.fine('text length: ${text.length}'); attributionsLog.fine('attributions used to compute spans:'); @@ -45,3 +165,17 @@ extension ComputeTextSpan on AttributedText { ); } } + +/// A Chain of Responsibility that builds widgets for text inline placeholders. +/// +/// The first [InlineWidgetBuilder] that returns a non-null [Widget] is used by +/// the client. +typedef InlineWidgetBuilderChain = List; + +/// Builder that returns a [Widget] for a given [placeholder], or `null` +/// if this builder doesn't know how to build the given [placeholder]. +typedef InlineWidgetBuilder = Widget? Function( + BuildContext context, + TextStyle textStyle, + Object placeholder, +); diff --git a/super_editor/lib/src/infrastructure/keyboard_panel_scaffold.dart b/super_editor/lib/src/infrastructure/keyboard_panel_scaffold.dart index 441e53f128..e305279c16 100644 --- a/super_editor/lib/src/infrastructure/keyboard_panel_scaffold.dart +++ b/super_editor/lib/src/infrastructure/keyboard_panel_scaffold.dart @@ -381,6 +381,7 @@ class _KeyboardPanelScaffoldState extends State /// Updates our local cache of the current bottom window insets, which we assume reflects /// the current software keyboard height. void _updateKeyboardHeightForCurrentViewInsets() { + print("_updateKeyboardHeightForCurrentViewInsets()"); final newInsets = MediaQuery.viewInsetsOf(context); final newBottomInset = newInsets.bottom; final isKeyboardOpening = newBottomInset > _latestViewInsets.bottom; @@ -391,6 +392,7 @@ class _KeyboardPanelScaffoldState extends State _isKeyboardOpen = false; } else if (!_isKeyboardOpen && isKeyboardOpening) { // The keyboard went from closed to open. If there's an open panel, close it. + print("Keyboard went from closed to open :("); _isKeyboardOpen = true; widget.controller.hideKeyboardPanel(); } @@ -584,24 +586,42 @@ class KeyboardPanelController { /// Opens the keyboard panel if the keyboard is open, or opens the keyboard /// if the keyboard panel is open. - void toggleSoftwareKeyboardWithPanel() => _delegate?.toggleSoftwareKeyboardWithPanel(); + void toggleSoftwareKeyboardWithPanel() { + print("toggleSoftwareKeyboardWithPanel()"); + _delegate?.toggleSoftwareKeyboardWithPanel(); + } /// Shows the software keyboard, if it's hidden. - void showSoftwareKeyboard() => _delegate?.showSoftwareKeyboard(); + void showSoftwareKeyboard() { + print("showSoftwareKeyboard()"); + _delegate?.showSoftwareKeyboard(); + } /// Hides (doesn't close) the software keyboard, if it's open. - void hideSoftwareKeyboard() => _delegate?.hideSoftwareKeyboard(); + void hideSoftwareKeyboard() { + print("hideSoftwareKeyboard()"); + _delegate?.hideSoftwareKeyboard(); + } /// Shows the keyboard panel, if it's closed, and hides (doesn't close) the /// software keyboard, if it's open. - void showKeyboardPanel() => _delegate?.showKeyboardPanel(); + void showKeyboardPanel() { + print("showKeyboardPanel"); + _delegate?.showKeyboardPanel(); + } /// Hides the keyboard panel, if it's open. - void hideKeyboardPanel() => _delegate?.hideKeyboardPanel(); + void hideKeyboardPanel() { + print("hideKeyboardPanel"); + _delegate?.hideKeyboardPanel(); + } /// Closes the software keyboard if it's open, or closes the keyboard panel if /// it's open, and fully closes the keyboard (IME) connection. - void closeKeyboardAndPanel() => _delegate?.closeKeyboardAndPanel(); + void closeKeyboardAndPanel() { + print("closeKeyboardAndPanel()"); + _delegate?.closeKeyboardAndPanel(); + } } abstract interface class KeyboardPanelScaffoldDelegate { diff --git a/super_editor/lib/src/super_reader/super_reader.dart b/super_editor/lib/src/super_reader/super_reader.dart index ad288cf160..1237c4d797 100644 --- a/super_editor/lib/src/super_reader/super_reader.dart +++ b/super_editor/lib/src/super_reader/super_reader.dart @@ -866,6 +866,7 @@ final readOnlyDefaultStylesheet = Stylesheet( ), ], inlineTextStyler: readOnlyDefaultInlineTextStyler, + inlineWidgetBuilderChain: defaultInlineWidgetBuilderChain, ); TextStyle readOnlyDefaultInlineTextStyler(Set attributions, TextStyle existingStyle) { diff --git a/super_editor/lib/src/super_textfield/android/_editing_controls.dart b/super_editor/lib/src/super_textfield/android/_editing_controls.dart index 26a08385b9..99e11b44ac 100644 --- a/super_editor/lib/src/super_textfield/android/_editing_controls.dart +++ b/super_editor/lib/src/super_textfield/android/_editing_controls.dart @@ -481,7 +481,7 @@ class _AndroidEditingOverlayControlsState extends State } Widget _buildSelectableText() { - final textSpan = _textEditingController.text.text.isNotEmpty + final textSpan = _textEditingController.text.isNotEmpty ? _textEditingController.text.computeTextSpan(widget.textStyleBuilder) : TextSpan(text: "", style: widget.textStyleBuilder({})); @@ -608,7 +608,7 @@ class SuperAndroidTextFieldState extends State textAlign: widget.textAlign, textScaler: MediaQuery.textScalerOf(context), layerBeneathBuilder: (context, textLayout) { - final isTextEmpty = _textEditingController.text.text.isEmpty; + final isTextEmpty = _textEditingController.text.isEmpty; final showHint = widget.hintBuilder != null && ((isTextEmpty && widget.hintBehavior == HintBehavior.displayHintUntilTextEntered) || (isTextEmpty && !_focusNode.hasFocus && widget.hintBehavior == HintBehavior.displayHintUntilFocus)); @@ -708,7 +708,7 @@ void _onToolbarCutPressed(AndroidEditingOverlayController controller) { return; } - final selectedText = selection.textInside(textController.text.text); + final selectedText = selection.textInside(textController.text.toPlainText()); textController.deleteSelectedText(); @@ -718,7 +718,7 @@ void _onToolbarCutPressed(AndroidEditingOverlayController controller) { void _onToolbarCopyPressed(AndroidEditingOverlayController controller) { final textController = controller.textController; final selection = textController.selection; - final selectedText = selection.textInside(textController.text.text); + final selectedText = selection.textInside(textController.text.toPlainText()); Clipboard.setData(ClipboardData(text: selectedText)); } diff --git a/super_editor/lib/src/super_textfield/desktop/desktop_textfield.dart b/super_editor/lib/src/super_textfield/desktop/desktop_textfield.dart index 4a09b1f566..2953ef0eec 100644 --- a/super_editor/lib/src/super_textfield/desktop/desktop_textfield.dart +++ b/super_editor/lib/src/super_textfield/desktop/desktop_textfield.dart @@ -337,7 +337,7 @@ class SuperDesktopTextFieldState extends State implements } int _getEstimatedLinesOfText() { - if (_controller.text.text.isEmpty) { + if (_controller.text.isEmpty) { return 0; } @@ -348,7 +348,7 @@ class SuperDesktopTextFieldState extends State implements final offsetAtEndOfText = textLayout.getOffsetAtPosition(TextPosition(offset: _controller.text.length)); int lineCount = (offsetAtEndOfText.dy / _getEstimatedLineHeight()).ceil(); - if (_controller.text.text.endsWith('\n')) { + if (_controller.text.toPlainText().endsWith('\n')) { lineCount += 1; } @@ -364,7 +364,7 @@ class SuperDesktopTextFieldState extends State implements // We don't expect getHeightForCaret to ever return null, but since its return type is nullable, // we use getLineHeightAtPosition as a backup. // More information in https://github.com/flutter/flutter/issues/145507. - final lineHeight = _controller.text.text.isEmpty || textLayout == null + final lineHeight = _controller.text.isEmpty || textLayout == null ? 0.0 : textLayout.getHeightForCaret(const TextPosition(offset: 0)) ?? textLayout.getLineHeightAtPosition(const TextPosition(offset: 0)); @@ -492,7 +492,7 @@ class SuperDesktopTextFieldState extends State implements textAlign: widget.textAlign, textScaler: _textScaler, layerBeneathBuilder: (context, textLayout) { - final isTextEmpty = _controller.text.text.isEmpty; + final isTextEmpty = _controller.text.isEmpty; final showHint = widget.hintBuilder != null && ((isTextEmpty && widget.hintBehavior == HintBehavior.displayHintUntilTextEntered) || (isTextEmpty && !_focusNode.hasFocus && widget.hintBehavior == HintBehavior.displayHintUntilFocus)); diff --git a/super_editor/lib/src/super_textfield/infrastructure/attributed_text_editing_controller.dart b/super_editor/lib/src/super_textfield/infrastructure/attributed_text_editing_controller.dart index b8c283b07e..b027a6ba69 100644 --- a/super_editor/lib/src/super_textfield/infrastructure/attributed_text_editing_controller.dart +++ b/super_editor/lib/src/super_textfield/infrastructure/attributed_text_editing_controller.dart @@ -172,10 +172,10 @@ class AttributedTextEditingController with ChangeNotifier { // Ensure that the existing selection does not overshoot // the end of the new text value - if (_selection.end > _text.text.length) { + if (_selection.end > _text.length) { _selection = _selection.copyWith( - baseOffset: _selection.affinity == TextAffinity.downstream ? _selection.baseOffset : _text.text.length, - extentOffset: _selection.affinity == TextAffinity.downstream ? _text.text.length : _selection.extentOffset, + baseOffset: _selection.affinity == TextAffinity.downstream ? _selection.baseOffset : _text.length, + extentOffset: _selection.affinity == TextAffinity.downstream ? _text.length : _selection.extentOffset, ); } @@ -345,7 +345,7 @@ class AttributedTextEditingController with ChangeNotifier { _moveSelectionForInsertion( selection: _selection, insertIndex: insertIndex, - newTextLength: newText.text.length, + newTextLength: newText.length, ); update( @@ -429,7 +429,7 @@ class AttributedTextEditingController with ChangeNotifier { startOffset: selection.baseOffset, ); final updatedSelection = TextSelection.collapsed( - offset: selection.baseOffset + attributedReplacementText.text.length, + offset: selection.baseOffset + attributedReplacementText.length, ); update( @@ -491,7 +491,7 @@ class AttributedTextEditingController with ChangeNotifier { newSelection ?? _moveSelectionForDeletion(selection: selection, deleteFrom: from, deleteTo: to); updatedText = updatedText.insert(textToInsert: newText, startOffset: from); updatedSelection = newSelection ?? - _moveSelectionForInsertion(selection: updatedSelection, insertIndex: from, newTextLength: newText.text.length); + _moveSelectionForInsertion(selection: updatedSelection, insertIndex: from, newTextLength: newText.length); text = updatedText; selection = updatedSelection; @@ -515,7 +515,7 @@ class AttributedTextEditingController with ChangeNotifier { return; } - final previousCharacterOffset = getCharacterStartBounds(_text.text, selection.extentOffset); + final previousCharacterOffset = getCharacterStartBounds(_text.toPlainText(), selection.extentOffset); delete( from: previousCharacterOffset, @@ -539,7 +539,7 @@ class AttributedTextEditingController with ChangeNotifier { return; } - final nextCharacterOffset = getCharacterEndBounds(_text.text, selection.extentOffset); + final nextCharacterOffset = getCharacterEndBounds(_text.toPlainText(), selection.extentOffset); delete( from: selection.extentOffset, @@ -694,7 +694,7 @@ class AttributedTextEditingController with ChangeNotifier { } Clipboard.setData(ClipboardData( - text: selection.textInside(text.text), + text: selection.textInside(text.toPlainText()), )); } @@ -772,7 +772,7 @@ class AttributedTextEditingController with ChangeNotifier { } if (movementModifier == MovementModifier.word) { - final plainText = text.text; + final plainText = text.toPlainText(); int newExtent = selection.extentOffset; newExtent -= 1; // we always want to jump at least 1 character. @@ -787,7 +787,7 @@ class AttributedTextEditingController with ChangeNotifier { return; } - final newExtent = text.text.moveOffsetUpstreamByCharacter(selection.extentOffset) ?? 0; + final newExtent = text.toPlainText().moveOffsetUpstreamByCharacter(selection.extentOffset) ?? 0; selection = TextSelection( baseOffset: expandSelection ? selection.baseOffset : newExtent, extentOffset: newExtent, @@ -816,7 +816,7 @@ class AttributedTextEditingController with ChangeNotifier { final endOfLine = textLayout.getPositionAtEndOfLine(TextPosition(offset: selection.extentOffset)); final endPosition = TextPosition(offset: text.length); - final plainText = text.text; + final plainText = text.toPlainText(); // Note: we compare offset values because we don't care if the affinitys are equal final isAutoWrapLine = endOfLine.offset != endPosition.offset && (plainText[endOfLine.offset] != '\n'); @@ -844,7 +844,7 @@ class AttributedTextEditingController with ChangeNotifier { if (movementModifier == MovementModifier.word) { final extentPosition = selection.extent; - final plainText = text.text; + final plainText = text.toPlainText(); int newExtent = extentPosition.offset; newExtent += 1; // we always want to jump at least 1 character. @@ -859,7 +859,7 @@ class AttributedTextEditingController with ChangeNotifier { return; } - final newExtent = text.text.moveOffsetDownstreamByCharacter(selection.extentOffset) ?? text.length; + final newExtent = text.toPlainText().moveOffsetDownstreamByCharacter(selection.extentOffset) ?? text.length; selection = TextSelection( baseOffset: expandSelection ? selection.baseOffset : newExtent, extentOffset: newExtent, @@ -921,11 +921,11 @@ class AttributedTextEditingController with ChangeNotifier { if (direction == TextAffinity.upstream) { // Delete the character before the caret deleteEndIndex = selection.extentOffset; - deleteStartIndex = getCharacterStartBounds(text.text, deleteEndIndex); + deleteStartIndex = getCharacterStartBounds(text.toPlainText(), deleteEndIndex); } else { // Delete the character after the caret deleteStartIndex = selection.extentOffset; - deleteEndIndex = getCharacterEndBounds(text.text, deleteStartIndex); + deleteEndIndex = getCharacterEndBounds(text.toPlainText(), deleteStartIndex); } delete( diff --git a/super_editor/lib/src/super_textfield/infrastructure/text_scrollview.dart b/super_editor/lib/src/super_textfield/infrastructure/text_scrollview.dart index dcf6846adb..e94c8ddc26 100644 --- a/super_editor/lib/src/super_textfield/infrastructure/text_scrollview.dart +++ b/super_editor/lib/src/super_textfield/infrastructure/text_scrollview.dart @@ -326,7 +326,7 @@ class _TextScrollViewState extends State final textPositionAtRightEnd = _textLayout.getPositionNearestToOffset( Offset(viewportWidth + _scrollController.offset + textOffsetInViewport.dx, 5), ); - final nextPosition = textPositionAtRightEnd.offset >= widget.textEditingController.text.text.length - 1 + final nextPosition = textPositionAtRightEnd.offset >= widget.textEditingController.text.length - 1 ? textPositionAtRightEnd : TextPosition(offset: textPositionAtRightEnd.offset + 1); return _textLayout.getOffsetAtPosition(nextPosition).dx + textOffsetInViewport.dx; @@ -856,7 +856,7 @@ class TextScrollController with ChangeNotifier { return; } - if (_textController.text.text.isEmpty) { + if (_textController.text.isEmpty) { // There is no text to make visible. return; } @@ -880,7 +880,7 @@ class TextScrollController with ChangeNotifier { return; } - if (_textController.text.text.isEmpty) { + if (_textController.text.isEmpty) { // There is no text to make visible. return; } @@ -915,7 +915,7 @@ class TextScrollController with ChangeNotifier { final extraSpacingAboveTop = (isAtFirstLine ? rectInContentSpace.height / 2 : 0); final lastCharRect = - _delegate!.getViewportCharacterRectAtPosition(TextPosition(offset: _textController.text.text.length - 1)); + _delegate!.getViewportCharacterRectAtPosition(TextPosition(offset: _textController.text.length - 1)); final isAtLastLine = rectInContentSpace.top == lastCharRect.top; final extraSpacingBelowBottom = (isAtLastLine ? rectInContentSpace.height / 2 : 0); if (rectInContentSpace.top - extraSpacingAboveTop - _scrollOffset < 0) { diff --git a/super_editor/lib/src/super_textfield/input_method_engine/_ime_text_editing_controller.dart b/super_editor/lib/src/super_textfield/input_method_engine/_ime_text_editing_controller.dart index 16bda65b0a..49b52d5d65 100644 --- a/super_editor/lib/src/super_textfield/input_method_engine/_ime_text_editing_controller.dart +++ b/super_editor/lib/src/super_textfield/input_method_engine/_ime_text_editing_controller.dart @@ -281,7 +281,7 @@ class ImeAttributedTextEditingController extends AttributedTextEditingController @override TextEditingValue? get currentTextEditingValue => TextEditingValue( - text: text.text, + text: text.toPlainText(), selection: selection, composing: composingRegion, ); diff --git a/super_editor/lib/src/super_textfield/ios/editing_controls.dart b/super_editor/lib/src/super_textfield/ios/editing_controls.dart index 8709b3cd90..411f70a9ab 100644 --- a/super_editor/lib/src/super_textfield/ios/editing_controls.dart +++ b/super_editor/lib/src/super_textfield/ios/editing_controls.dart @@ -507,7 +507,7 @@ class _IOSEditingControlsState extends State required Color debugColor, required void Function(DragStartDetails) onPanStart, }) { - final ballRadius = defaultIosHandleBallDiameter / 2; + const ballRadius = defaultIosHandleBallDiameter / 2; return CompositedTransformFollower( key: handleKey, diff --git a/super_editor/lib/src/super_textfield/ios/ios_textfield.dart b/super_editor/lib/src/super_textfield/ios/ios_textfield.dart index 60b43fdbe0..4eddc90b60 100644 --- a/super_editor/lib/src/super_textfield/ios/ios_textfield.dart +++ b/super_editor/lib/src/super_textfield/ios/ios_textfield.dart @@ -598,7 +598,7 @@ class SuperIOSTextFieldState extends State } Widget _buildSelectableText() { - final textSpan = _textEditingController.text.text.isNotEmpty + final textSpan = _textEditingController.text.isNotEmpty ? _textEditingController.text.computeTextSpan(widget.textStyleBuilder) : AttributedText().computeTextSpan(widget.textStyleBuilder); @@ -615,7 +615,7 @@ class SuperIOSTextFieldState extends State textAlign: widget.textAlign, textScaler: MediaQuery.textScalerOf(context), layerBeneathBuilder: (context, textLayout) { - final isTextEmpty = _textEditingController.text.text.isEmpty; + final isTextEmpty = _textEditingController.text.isEmpty; final showHint = widget.hintBuilder != null && ((isTextEmpty && widget.hintBehavior == HintBehavior.displayHintUntilTextEntered) || (isTextEmpty && !_focusNode.hasFocus && widget.hintBehavior == HintBehavior.displayHintUntilFocus)); @@ -723,7 +723,7 @@ Widget defaultIosPopoverToolbarBuilder(BuildContext context, IOSEditingOverlayCo return; } - final selectedText = selection.textInside(textController.text.text); + final selectedText = selection.textInside(textController.text.toPlainText()); textController.deleteSelectedText(); @@ -732,7 +732,7 @@ Widget defaultIosPopoverToolbarBuilder(BuildContext context, IOSEditingOverlayCo onCopyPressed: () { final textController = controller.textController; final selection = textController.selection; - final selectedText = selection.textInside(textController.text.text); + final selectedText = selection.textInside(textController.text.toPlainText()); Clipboard.setData(ClipboardData(text: selectedText)); }, diff --git a/super_editor/lib/src/super_textfield/ios/user_interaction.dart b/super_editor/lib/src/super_textfield/ios/user_interaction.dart index e5963bed46..4ab439213f 100644 --- a/super_editor/lib/src/super_textfield/ios/user_interaction.dart +++ b/super_editor/lib/src/super_textfield/ios/user_interaction.dart @@ -244,7 +244,7 @@ class IOSTextFieldTouchInteractorState extends State()); - expect((insertedNode as ParagraphNode).text.text, 'new paragraph'); + expect((insertedNode as ParagraphNode).text.toPlainText(), 'new paragraph'); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( @@ -75,7 +75,7 @@ Paragraph 2 expect(document.nodeCount, 4); final insertedNode = document.getNodeAt(1)!; expect(insertedNode, isA()); - expect((insertedNode as ParagraphNode).text.text, 'new paragraph'); + expect((insertedNode as ParagraphNode).text.toPlainText(), 'new paragraph'); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( diff --git a/super_editor/test/super_editor/components/list_items_test.dart b/super_editor/test/super_editor/components/list_items_test.dart index 9e62affbd2..d1306a6e81 100644 --- a/super_editor/test/super_editor/components/list_items_test.dart +++ b/super_editor/test/super_editor/components/list_items_test.dart @@ -243,11 +243,11 @@ void main() { // Ensure the existing item remains the same. expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "Item 12"); + expect((document.first as ListItemNode).text.toPlainText(), "Item 12"); // Ensure the new item has the correct list item type and indentation. expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, ""); + expect((document.last as ListItemNode).text.toPlainText(), ""); expect((document.last as ListItemNode).type, ListItemType.unordered); expect((document.last as ListItemNode).indent, 0); expect( @@ -291,11 +291,11 @@ void main() { // Ensure the existing item remains the same. expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "Item 12"); + expect((document.first as ListItemNode).text.toPlainText(), "Item 12"); // Ensure the new item has the correct list item type and indentation. expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, ""); + expect((document.last as ListItemNode).text.toPlainText(), ""); expect((document.last as ListItemNode).type, ListItemType.unordered); expect((document.last as ListItemNode).indent, 0); expect( @@ -339,11 +339,11 @@ void main() { // Ensure the existing item remains the same. expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "Item 12"); + expect((document.first as ListItemNode).text.toPlainText(), "Item 12"); // Ensure the new item has the correct list item type and indentation. expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, ""); + expect((document.last as ListItemNode).text.toPlainText(), ""); expect((document.last as ListItemNode).type, ListItemType.unordered); expect((document.last as ListItemNode).indent, 0); expect( @@ -374,9 +374,9 @@ void main() { // Ensure that a new item was created with part of the previous item. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "List "); + expect((document.first as ListItemNode).text.toPlainText(), "List "); expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, "Item"); + expect((document.last as ListItemNode).text.toPlainText(), "Item"); expect((document.last as ListItemNode).type, ListItemType.unordered); expect((document.last as ListItemNode).indent, 0); expect( @@ -408,9 +408,9 @@ void main() { // Ensure that a new item was created with part of the previous item. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "List "); + expect((document.first as ListItemNode).text.toPlainText(), "List "); expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, "Item"); + expect((document.last as ListItemNode).text.toPlainText(), "Item"); expect((document.last as ListItemNode).type, ListItemType.unordered); expect((document.last as ListItemNode).indent, 0); expect( @@ -442,9 +442,9 @@ void main() { // Ensure that a new item was created with part of the previous item. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "List "); + expect((document.first as ListItemNode).text.toPlainText(), "List "); expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, "Item"); + expect((document.last as ListItemNode).text.toPlainText(), "Item"); expect((document.last as ListItemNode).type, ListItemType.unordered); expect((document.last as ListItemNode).indent, 0); expect( @@ -753,11 +753,11 @@ A paragraph // Ensure the existing item remains the same. expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "Item 1"); + expect((document.first as ListItemNode).text.toPlainText(), "Item 1"); // Ensure the new item has the correct list item type and indentation. expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, ""); + expect((document.last as ListItemNode).text.toPlainText(), ""); expect((document.last as ListItemNode).type, ListItemType.ordered); expect((document.last as ListItemNode).indent, 0); expect( @@ -790,11 +790,11 @@ A paragraph // Ensure the existing item remains the same. expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "Item 1"); + expect((document.first as ListItemNode).text.toPlainText(), "Item 1"); // Ensure the new item has the correct list item type and indentation. expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, ""); + expect((document.last as ListItemNode).text.toPlainText(), ""); expect((document.last as ListItemNode).type, ListItemType.ordered); expect((document.last as ListItemNode).indent, 0); expect( @@ -827,11 +827,11 @@ A paragraph // Ensure the existing item remains the same. expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "Item 1"); + expect((document.first as ListItemNode).text.toPlainText(), "Item 1"); // Ensure the new item has the correct list item type and indentation. expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, ""); + expect((document.last as ListItemNode).text.toPlainText(), ""); expect((document.last as ListItemNode).type, ListItemType.ordered); expect((document.last as ListItemNode).indent, 0); expect( @@ -862,9 +862,9 @@ A paragraph // Ensure that a new item was created with part of the previous item. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "List "); + expect((document.first as ListItemNode).text.toPlainText(), "List "); expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, "Item"); + expect((document.last as ListItemNode).text.toPlainText(), "Item"); expect((document.last as ListItemNode).type, ListItemType.ordered); expect((document.last as ListItemNode).indent, 0); expect( @@ -896,9 +896,9 @@ A paragraph // Ensure that a new item was created with part of the previous item. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "List "); + expect((document.first as ListItemNode).text.toPlainText(), "List "); expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, "Item"); + expect((document.last as ListItemNode).text.toPlainText(), "Item"); expect((document.last as ListItemNode).type, ListItemType.ordered); expect((document.last as ListItemNode).indent, 0); expect( @@ -930,9 +930,9 @@ A paragraph // Ensure that a new item was created with part of the previous item. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as ListItemNode).text.text, "List "); + expect((document.first as ListItemNode).text.toPlainText(), "List "); expect(document.last, isA()); - expect((document.last as ListItemNode).text.text, "Item"); + expect((document.last as ListItemNode).text.toPlainText(), "Item"); expect((document.last as ListItemNode).type, ListItemType.ordered); expect((document.last as ListItemNode).indent, 0); expect( diff --git a/super_editor/test/super_editor/components/task_test.dart b/super_editor/test/super_editor/components/task_test.dart index 3aacc0d61f..755bf31385 100644 --- a/super_editor/test/super_editor/components/task_test.dart +++ b/super_editor/test/super_editor/components/task_test.dart @@ -54,7 +54,7 @@ void main() { // Ensure the node is now a task. expect(document.nodeCount, 1); expect(document.first, isA()); - expect((document.first as TaskNode).text.text, "This will be a task"); + expect((document.first as TaskNode).text.toPlainText(), "This will be a task"); }); group("inserts", () { @@ -76,9 +76,9 @@ void main() { // Ensure that a new, empty task was created. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as TaskNode).text.text, "This is a task"); + expect((document.first as TaskNode).text.toPlainText(), "This is a task"); expect(document.last, isA()); - expect((document.last as TaskNode).text.text, ""); + expect((document.last as TaskNode).text.toPlainText(), ""); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( @@ -111,9 +111,9 @@ void main() { // Ensure that a new, empty task was created. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as TaskNode).text.text, "This is a task"); + expect((document.first as TaskNode).text.toPlainText(), "This is a task"); expect(document.last, isA()); - expect((document.last as TaskNode).text.text, ""); + expect((document.last as TaskNode).text.toPlainText(), ""); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( @@ -143,9 +143,9 @@ void main() { // Ensure that a new, empty task was created. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as TaskNode).text.text, "This is a task"); + expect((document.first as TaskNode).text.toPlainText(), "This is a task"); expect(document.last, isA()); - expect((document.last as TaskNode).text.text, ""); + expect((document.last as TaskNode).text.toPlainText(), ""); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( @@ -175,9 +175,9 @@ void main() { // Ensure that a new, empty task was created. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as TaskNode).text.text, "This is a task"); + expect((document.first as TaskNode).text.toPlainText(), "This is a task"); expect(document.last, isA()); - expect((document.last as TaskNode).text.text, ""); + expect((document.last as TaskNode).text.toPlainText(), ""); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( @@ -208,9 +208,9 @@ void main() { // Ensure that a new task was created with part of the previous task. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as TaskNode).text.text, "This is "); + expect((document.first as TaskNode).text.toPlainText(), "This is "); expect(document.last, isA()); - expect((document.last as TaskNode).text.text, "a task"); + expect((document.last as TaskNode).text.toPlainText(), "a task"); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( @@ -239,9 +239,9 @@ void main() { // Ensure that a new task was created with part of the previous task. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as TaskNode).text.text, "This is "); + expect((document.first as TaskNode).text.toPlainText(), "This is "); expect(document.last, isA()); - expect((document.last as TaskNode).text.text, "a task"); + expect((document.last as TaskNode).text.toPlainText(), "a task"); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( @@ -270,9 +270,9 @@ void main() { // Ensure that a new task was created with part of the previous task. expect(document.nodeCount, 2); expect(document.first, isA()); - expect((document.first as TaskNode).text.text, "This is "); + expect((document.first as TaskNode).text.toPlainText(), "This is "); expect(document.last, isA()); - expect((document.last as TaskNode).text.text, "a task"); + expect((document.last as TaskNode).text.toPlainText(), "a task"); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( @@ -303,7 +303,7 @@ void main() { // Ensure the task converted to a paragraph. expect(document.nodeCount, 1); expect(document.first, isA()); - expect((document.first as ParagraphNode).text.text, "This is a task"); + expect((document.first as ParagraphNode).text.toPlainText(), "This is a task"); }); testWidgetsOnAllPlatforms( @@ -336,7 +336,7 @@ void main() { // Ensure the task converted to a paragraph. expect(document.nodeCount, 1); expect(document.first, isA()); - expect((document.first as ParagraphNode).text.text, "This is a task"); + expect((document.first as ParagraphNode).text.toPlainText(), "This is a task"); }); testWidgetsOnAllPlatforms("task to paragraph when the user presses ENTER on an empty task", (tester) async { @@ -353,7 +353,7 @@ void main() { // Ensure the task was converted to a paragraph. expect(document.nodeCount, 1); expect(document.first, isA()); - expect((document.first as ParagraphNode).text.text, ""); + expect((document.first as ParagraphNode).text.toPlainText(), ""); }); testWidgetsOnAndroid("task to paragraph upon new line insertion on an empty task", (tester) async { @@ -371,7 +371,7 @@ void main() { // Ensure the task was converted to a paragraph. expect(document.nodeCount, 1); expect(document.first, isA()); - expect((document.first as ParagraphNode).text.text, ""); + expect((document.first as ParagraphNode).text.toPlainText(), ""); }); testWidgetsOnIos("task to paragraph new line input action on an empty task", (tester) async { @@ -389,7 +389,7 @@ void main() { // Ensure the task was converted to a paragraph. expect(document.nodeCount, 1); expect(document.first, isA()); - expect((document.first as ParagraphNode).text.text, ""); + expect((document.first as ParagraphNode).text.toPlainText(), ""); }); testWidgetsOnWebDesktop("task to paragraph when the user presses ENTER on an empty task", (tester) async { @@ -409,7 +409,7 @@ void main() { // Ensure the task was converted to a paragraph. expect(document.nodeCount, 1); expect(document.first, isA()); - expect((document.first as ParagraphNode).text.text, ""); + expect((document.first as ParagraphNode).text.toPlainText(), ""); }); testWidgets("paragraph to task for incomplete task", (tester) async { @@ -513,7 +513,7 @@ void main() { // Ensure that the Backspace deleted a character, instead of un-indenting. expect(SuperEditorInspector.findTaskIndent("2"), 1); - expect(SuperEditorInspector.findTextInComponent("2").text, "tw"); + expect(SuperEditorInspector.findTextInComponent("2").toPlainText(), "tw"); // Place caret at start of task. await tester.placeCaretInParagraph("2", 0); diff --git a/super_editor/test/super_editor/custom_tap_handlers/add_paragraph_at_end_tap_handler_test.dart b/super_editor/test/super_editor/custom_tap_handlers/add_paragraph_at_end_tap_handler_test.dart index 35c62c974c..99fc04c74f 100644 --- a/super_editor/test/super_editor/custom_tap_handlers/add_paragraph_at_end_tap_handler_test.dart +++ b/super_editor/test/super_editor/custom_tap_handlers/add_paragraph_at_end_tap_handler_test.dart @@ -39,7 +39,7 @@ void main() { // Ensure a new empty paragraph was added. expect(document.nodeCount, equals(3)); expect(document.last, isA()); - expect((document.last as ParagraphNode).text.text, isEmpty); + expect((document.last as ParagraphNode).text.toPlainText(), isEmpty); // Ensure the selection was placed in the newly added paragraph. expect( @@ -83,7 +83,7 @@ void main() { // Ensure the existing paragraph was kept. expect(document.nodeCount, equals(2)); expect(document.last, isA()); - expect((document.last as ParagraphNode).text.text, 'First paragraph'); + expect((document.last as ParagraphNode).text.toPlainText(), 'First paragraph'); // Ensure the selection was placed at the end of the paragraph. expect( diff --git a/super_editor/test/super_editor/infrastructure/editor_test.dart b/super_editor/test/super_editor/infrastructure/editor_test.dart index 341cb502d3..f507328941 100644 --- a/super_editor/test/super_editor/infrastructure/editor_test.dart +++ b/super_editor/test/super_editor/infrastructure/editor_test.dart @@ -71,7 +71,7 @@ void main() { expect(changeLogCount, 5); expect(changeEventCount, 10); // 2 events per character insertion - expect((editorPieces.document.getNodeAt(0) as ParagraphNode).text.text, "Hello"); + expect((editorPieces.document.getNodeAt(0) as ParagraphNode).text.toPlainText(), "Hello"); }); test('executes multiple expanding commands', () { @@ -121,7 +121,7 @@ void main() { // traversal. final paragraph = document.getNodeAt(0) as ParagraphNode; expect( - paragraph.text.text, + paragraph.text.toPlainText(), '''(0.0) (1.0) (2.0) @@ -214,7 +214,7 @@ void main() { continue; } - insertEEvent = change.text.text.endsWith("e") ? change : null; + insertEEvent = change.text.toPlainText().endsWith("e") ? change : null; } if (insertEEvent == null) { @@ -269,7 +269,7 @@ void main() { ]); // Ensure that our reaction ran in the middle of the requests. - expect((document.first as TextNode).text.text, "Hello"); + expect((document.first as TextNode).text.toPlainText(), "Hello"); }); test('reactions receive a change list with events from earlier reactions', () { @@ -303,7 +303,7 @@ void main() { continue; } - insertHEvent = change.text.text == "H" ? change : null; + insertHEvent = change.text.toPlainText() == "H" ? change : null; } if (insertHEvent == null) { @@ -334,7 +334,7 @@ void main() { continue; } - insertEEvent = change.text.text == "e" ? change : null; + insertEEvent = change.text.toPlainText() == "e" ? change : null; } expect(insertEEvent, isNotNull, reason: "Reaction 2 didn't receive the change from reaction 1"); @@ -457,7 +457,7 @@ void main() { ]); // Ensure the character was inserted, and the caret moved forward. - expect((editorPieces.document.getNodeAt(0) as TextNode).text.text, "H"); + expect((editorPieces.document.getNodeAt(0) as TextNode).text.toPlainText(), "H"); expect(editorPieces.composer.selection, isNotNull); expect( editorPieces.composer.selection, diff --git a/super_editor/test/super_editor/super_editor_undo_redo_test.dart b/super_editor/test/super_editor/super_editor_undo_redo_test.dart index 561b41be8d..4ed38a6051 100644 --- a/super_editor/test/super_editor/super_editor_undo_redo_test.dart +++ b/super_editor/test/super_editor/super_editor_undo_redo_test.dart @@ -26,13 +26,13 @@ void main() { await tester.typeImeText("a"); // Ensure we entered the "a". - expect(SuperEditorInspector.findTextInComponent("1").text, "a"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "a"); // Try to run undo. await tester.pressCmdZ(tester); // Ensure that the text was unchanged. - expect(SuperEditorInspector.findTextInComponent("1").text, "a"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "a"); }); group("text insertion >", () { @@ -118,7 +118,7 @@ void main() { // Type characters. await tester.typeImeText("Hello"); - expect(SuperEditorInspector.findTextInComponent("1").text, "Hello"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Hello"); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -204,14 +204,14 @@ void main() { await tester.pressKey(LogicalKeyboardKey.keyB); // Ensure we inserted the text. - expect((testContext.document.getNodeAt(1) as TextNode).text.text, "ab"); + expect((testContext.document.getNodeAt(1) as TextNode).text.toPlainText(), "ab"); // Undo the text insertion. // TODO: remove `tester` reference after updating flutter_test_robots await tester.pressCmdZ(tester); // Ensure that the paragraph removed the last entered character. - expect((testContext.document.getNodeAt(1) as TextNode).text.text, "a"); + expect((testContext.document.getNodeAt(1) as TextNode).text.toPlainText(), "a"); }); }); @@ -232,7 +232,7 @@ void main() { final document = editContext.document; var paragraph = document.first as ParagraphNode; expect(paragraph.metadata['blockType'], header1Attribution); - expect(SuperEditorInspector.findTextInComponent(document.first.id).text, ""); + expect(SuperEditorInspector.findTextInComponent(document.first.id).toPlainText(), ""); await tester.pressCmdZ(tester); await tester.pump(); @@ -240,7 +240,7 @@ void main() { // Ensure that the header attribution is gone. paragraph = document.first as ParagraphNode; expect(paragraph.metadata['blockType'], paragraphAttribution); - expect(SuperEditorInspector.findTextInComponent(document.first.id).text, "# "); + expect(SuperEditorInspector.findTextInComponent(document.first.id).toPlainText(), "# "); }); testWidgetsOnMac("dashes to em dash", (tester) async { @@ -256,19 +256,19 @@ void main() { await tester.typeImeText("--"); // Ensure that the double dashes are now an "em" dash. - expect(SuperEditorInspector.findTextInComponent("1").text, "—"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "—"); await tester.pressCmdZ(tester); await tester.pump(); // Ensure that the em dash was reverted to the regular dashes. - expect(SuperEditorInspector.findTextInComponent("1").text, "--"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "--"); // Continue typing. await tester.typeImeText(" "); // Ensure that the dashes weren't reconverted into an em dash. - expect(SuperEditorInspector.findTextInComponent("1").text, "-- "); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "-- "); }); testWidgetsOnMac("paragraph to list item", (tester) async { @@ -287,7 +287,7 @@ void main() { final document = editContext.document; var node = document.first as TextNode; expect(node, isA()); - expect(SuperEditorInspector.findTextInComponent(document.first.id).text, ""); + expect(SuperEditorInspector.findTextInComponent(document.first.id).toPlainText(), ""); await tester.pressCmdZ(tester); await tester.pump(); @@ -295,7 +295,7 @@ void main() { // Ensure that the node is back to a paragraph. node = document.first as TextNode; expect(node, isA()); - expect(SuperEditorInspector.findTextInComponent(document.first.id).text, "1. "); + expect(SuperEditorInspector.findTextInComponent(document.first.id).toPlainText(), "1. "); }); testWidgetsOnMac("url to a link", (tester) async { @@ -348,7 +348,7 @@ void main() { await tester.pump(); expect(editContext.document.first, isA()); - expect(SuperEditorInspector.findTextInComponent(editContext.document.first.id).text, "—- "); + expect(SuperEditorInspector.findTextInComponent(editContext.document.first.id).toPlainText(), "—- "); }); }); @@ -372,9 +372,9 @@ This is paragraph 3'''); // Ensure the pasted content was applied as expected. final document = editContext.document; expect(document.nodeCount, 3); - expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(0)!.id).text, "This is paragraph 1"); - expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(1)!.id).text, "This is paragraph 2"); - expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(2)!.id).text, "This is paragraph 3"); + expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(0)!.id).toPlainText(), "This is paragraph 1"); + expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(1)!.id).toPlainText(), "This is paragraph 2"); + expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(2)!.id).toPlainText(), "This is paragraph 3"); // Undo the paste. await tester.pressCmdZ(tester); @@ -382,7 +382,7 @@ This is paragraph 3'''); // Ensure we're back to a single empty paragraph. expect(document.nodeCount, 1); - expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(0)!.id).text, ""); + expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(0)!.id).toPlainText(), ""); // Redo the paste // TODO: remove WidgetTester as required argument to this robot method @@ -391,9 +391,9 @@ This is paragraph 3'''); // Ensure the pasted content was applied as expected. expect(document.nodeCount, 3); - expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(0)!.id).text, "This is paragraph 1"); - expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(1)!.id).text, "This is paragraph 2"); - expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(2)!.id).text, "This is paragraph 3"); + expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(0)!.id).toPlainText(), "This is paragraph 1"); + expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(1)!.id).toPlainText(), "This is paragraph 2"); + expect(SuperEditorInspector.findTextInComponent(document.getNodeAt(2)!.id).toPlainText(), "This is paragraph 3"); }); group("transaction grouping >", () { @@ -412,14 +412,14 @@ This is paragraph 3'''); await tester.typeImeText("Hello"); // Ensure our typed text exists. - expect(SuperEditorInspector.findTextInComponent("1").text, "Hello"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Hello"); // Undo the typing. await tester.pressCmdZ(tester); await tester.pump(); // Ensure that the whole word was undone. - expect(SuperEditorInspector.findTextInComponent("1").text, ""); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), ""); }); testWidgetsOnMac("separates text typed later", (tester) async { @@ -450,7 +450,7 @@ This is paragraph 3'''); }); // Ensure our typed text exists. - expect(SuperEditorInspector.findTextInComponent("1").text, "Hello World!"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Hello World!"); // Undo the typing. await tester.pressCmdZ(tester); @@ -458,7 +458,7 @@ This is paragraph 3'''); // Ensure that the text typed later was removed, but the text typed earlier // remains. - expect(SuperEditorInspector.findTextInComponent("1").text, "Hello "); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Hello "); }); }); diff --git a/super_editor/test/super_editor/supereditor_attributions_test.dart b/super_editor/test/super_editor/supereditor_attributions_test.dart index fdde43ca15..a678787111 100644 --- a/super_editor/test/super_editor/supereditor_attributions_test.dart +++ b/super_editor/test/super_editor/supereditor_attributions_test.dart @@ -78,7 +78,7 @@ void main() { // Ensure the color attribution was applied to the inserted text. final text = SuperEditorInspector.findTextInComponent(document.first.id); - expect(text.text, "Colors text"); + expect(text.toPlainText(), "Colors text"); expect( text.spans, AttributedSpans(attributions: [ @@ -176,7 +176,7 @@ void main() { // Ensure the color attribution was applied to the inserted text. final text = SuperEditorInspector.findTextInComponent(document.first.id); - expect(text.text, "Colors"); + expect(text.toPlainText(), "Colors"); expect( text.spans, AttributedSpans(attributions: [ @@ -1328,7 +1328,21 @@ void main() { // Ensure the text is colored orange. expect( - SuperEditorInspector.findRichTextInParagraph("1").style?.color, + SuperEditorInspector.findRichTextInParagraph("1") + .getSpanForPosition( + const TextPosition(offset: 0), + ) + ?.style + ?.color, + Colors.orange, + ); + expect( + SuperEditorInspector.findRichTextInParagraph("1") + .getSpanForPosition( + TextPosition(offset: SuperEditorInspector.findTextInComponent("1").length - 1), + ) + ?.style + ?.color, Colors.orange, ); }); diff --git a/super_editor/test/super_editor/supereditor_content_insertion_test.dart b/super_editor/test/super_editor/supereditor_content_insertion_test.dart index bab52df70b..70675dbcdb 100644 --- a/super_editor/test/super_editor/supereditor_content_insertion_test.dart +++ b/super_editor/test/super_editor/supereditor_content_insertion_test.dart @@ -38,7 +38,7 @@ void main() { // Ensure that the paragraph node content remains unchanged, but is moved down. expect(doc.getNodeAt(1)!, isA()); - expect((doc.getNodeAt(1)! as ParagraphNode).text.text, 'First paragraph'); + expect((doc.getNodeAt(1)! as ParagraphNode).text.toPlainText(), 'First paragraph'); // Ensure the selection was placed at the beginning of the paragraph. expect( @@ -74,14 +74,14 @@ void main() { // Ensure that the first node has the text from before the caret. expect(doc.getNodeAt(0)!, isA()); - expect((doc.getNodeAt(0)! as ParagraphNode).text.text, 'Before the image'); + expect((doc.getNodeAt(0)! as ParagraphNode).text.toPlainText(), 'Before the image'); // Ensure that the image was added. expect(doc.getNodeAt(1)!, isA()); // Ensure that the last node has the text from after the caret. expect(doc.getNodeAt(2)!, isA()); - expect((doc.getNodeAt(2)! as ParagraphNode).text.text, ' after the image'); + expect((doc.getNodeAt(2)! as ParagraphNode).text.toPlainText(), ' after the image'); // Ensure the selection was placed at the beginning of the last paragraph. expect( @@ -118,14 +118,14 @@ void main() { // Ensure that the first node remains unchanged. expect(doc.getNodeAt(0)!, isA()); - expect((doc.getNodeAt(0)! as ParagraphNode).text.text, 'First paragraph'); + expect((doc.getNodeAt(0)! as ParagraphNode).text.toPlainText(), 'First paragraph'); // Ensure that the image was added. expect(doc.getNodeAt(1)!, isA()); // Ensure that an empty node was added after the image. expect(doc.getNodeAt(2)!, isA()); - expect((doc.getNodeAt(2)! as ParagraphNode).text.text, ''); + expect((doc.getNodeAt(2)! as ParagraphNode).text.toPlainText(), ''); // Ensure the selection was placed at the beginning of the last paragraph. expect( @@ -167,14 +167,14 @@ Second paragraph"""). // // Ensure that the first node remains unchanged. expect(doc.getNodeAt(0)!, isA()); - expect((doc.getNodeAt(0)! as ParagraphNode).text.text, 'First paragraph'); + expect((doc.getNodeAt(0)! as ParagraphNode).text.toPlainText(), 'First paragraph'); // Ensure that the image was added. expect(doc.getNodeAt(1)!, isA()); // Ensure that an empty node was added after the image. expect(doc.getNodeAt(2)!, isA()); - expect((doc.getNodeAt(2)! as ParagraphNode).text.text, ''); + expect((doc.getNodeAt(2)! as ParagraphNode).text.toPlainText(), ''); // Ensure the selection was placed at the beginning of the newly created paragraph. expect( @@ -214,7 +214,7 @@ Second paragraph"""). // // Ensure that an empty node was added after the image. expect(doc.getNodeAt(1)!, isA()); - expect((doc.getNodeAt(1)! as ParagraphNode).text.text, ''); + expect((doc.getNodeAt(1)! as ParagraphNode).text.toPlainText(), ''); // Ensure the selection was placed at the empty paragraph. expect( @@ -253,7 +253,7 @@ Second paragraph"""). // // Ensure that the paragraph node content remains unchanged, but is moved down. expect(doc.getNodeAt(1)!, isA()); - expect((doc.getNodeAt(1)! as ParagraphNode).text.text, 'First paragraph'); + expect((doc.getNodeAt(1)! as ParagraphNode).text.toPlainText(), 'First paragraph'); // Ensure the selection was placed at the beginning of the paragraph. expect( @@ -286,14 +286,14 @@ Second paragraph"""). // // Ensure that the first node has the text from before the caret. expect(doc.getNodeAt(0)!, isA()); - expect((doc.getNodeAt(0)! as ParagraphNode).text.text, 'Before the hr'); + expect((doc.getNodeAt(0)! as ParagraphNode).text.toPlainText(), 'Before the hr'); // Ensure that the horizontal rule was added. expect(doc.getNodeAt(1)!, isA()); // Ensure that the last node has the text from after the caret. expect(doc.getNodeAt(2)!, isA()); - expect((doc.getNodeAt(2)! as ParagraphNode).text.text, ' after the hr'); + expect((doc.getNodeAt(2)! as ParagraphNode).text.toPlainText(), ' after the hr'); // Ensure the selection was placed at the beginning of the last paragraph. expect( @@ -327,14 +327,14 @@ Second paragraph"""). // // Ensure that the first node remains unchanged. expect(doc.getNodeAt(0)!, isA()); - expect((doc.getNodeAt(0)! as ParagraphNode).text.text, 'First paragraph'); + expect((doc.getNodeAt(0)! as ParagraphNode).text.toPlainText(), 'First paragraph'); // Ensure that the horizontal rule was added. expect(doc.getNodeAt(1)!, isA()); // Ensure that an empty node was added at the end. expect(doc.getNodeAt(2)!, isA()); - expect((doc.getNodeAt(2)! as ParagraphNode).text.text, ''); + expect((doc.getNodeAt(2)! as ParagraphNode).text.toPlainText(), ''); // Ensure the selection was placed at the beginning of the last paragraph. expect( @@ -373,14 +373,14 @@ Second paragraph"""). // // Ensure that the first node remains unchanged. expect(doc.getNodeAt(0)!, isA()); - expect((doc.getNodeAt(0)! as ParagraphNode).text.text, 'First paragraph'); + expect((doc.getNodeAt(0)! as ParagraphNode).text.toPlainText(), 'First paragraph'); // Ensure that the horizontal rule was added. expect(doc.getNodeAt(1)!, isA()); // Ensure that an empty node was added at the end. expect(doc.getNodeAt(2)!, isA()); - expect((doc.getNodeAt(2)! as ParagraphNode).text.text, ''); + expect((doc.getNodeAt(2)! as ParagraphNode).text.toPlainText(), ''); // Ensure the selection was placed at the beginning of the newly created paragraph. expect( @@ -417,7 +417,7 @@ Second paragraph"""). // // Ensure that an empty node was added after the horizontal rule. expect(doc.getNodeAt(1)!, isA()); - expect((doc.getNodeAt(1)! as ParagraphNode).text.text, ''); + expect((doc.getNodeAt(1)! as ParagraphNode).text.toPlainText(), ''); // Ensure that the selection was placed at the empty paragraph. expect( @@ -479,7 +479,7 @@ Second paragraph"""). // final doc = testContext.findEditContext().document; expect(doc.nodeCount, 3); expect(doc.getNodeAt(1)!, isA()); - expect((doc.getNodeAt(1)! as ParagraphNode).text.text, ''); + expect((doc.getNodeAt(1)! as ParagraphNode).text.toPlainText(), ''); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( @@ -538,7 +538,7 @@ Second paragraph"""). // final doc = testContext.findEditContext().document; expect(doc.nodeCount, 3); expect(doc.getNodeAt(1)!, isA()); - expect((doc.getNodeAt(1)! as ParagraphNode).text.text, ''); + expect((doc.getNodeAt(1)! as ParagraphNode).text.toPlainText(), ''); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( @@ -597,7 +597,7 @@ Second paragraph"""). // final doc = testContext.findEditContext().document; expect(doc.nodeCount, 3); expect(doc.getNodeAt(1)!, isA()); - expect((doc.getNodeAt(1)! as ParagraphNode).text.text, ''); + expect((doc.getNodeAt(1)! as ParagraphNode).text.toPlainText(), ''); expect( SuperEditorInspector.findDocumentSelection(), DocumentSelection.collapsed( diff --git a/super_editor/test/super_editor/supereditor_copy_and_paste_test.dart b/super_editor/test/super_editor/supereditor_copy_and_paste_test.dart index 0e694265a1..00e2366d7c 100644 --- a/super_editor/test/super_editor/supereditor_copy_and_paste_test.dart +++ b/super_editor/test/super_editor/supereditor_copy_and_paste_test.dart @@ -33,7 +33,7 @@ void main() { // Ensure that the text was pasted into the paragraph. final nodeId = doc.first.id; - expect(SuperEditorInspector.findTextInComponent(nodeId).text, "Pasted text: This was pasted here"); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), "Pasted text: This was pasted here"); }); testWidgetsOnApple('pastes within a list item', (tester) async { @@ -57,7 +57,7 @@ void main() { // Ensure that the text was pasted into the paragraph. final nodeId = doc.first.id; - expect(SuperEditorInspector.findTextInComponent(nodeId).text, "Pasted text: This was pasted here"); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), "Pasted text: This was pasted here"); }); testAllInputsOnDesktop('pastes multiple paragraphs', ( @@ -88,9 +88,9 @@ This is the third paragraph'''); // Ensure three paragraphs were created. final doc = testContext.document; expect(doc.nodeCount, 3); - expect((doc.getNodeAt(0)! as ParagraphNode).text.text, 'This is a paragraph'); - expect((doc.getNodeAt(1)! as ParagraphNode).text.text, 'This is a second paragraph'); - expect((doc.getNodeAt(2)! as ParagraphNode).text.text, 'This is the third paragraph'); + expect((doc.getNodeAt(0)! as ParagraphNode).text.toPlainText(), 'This is a paragraph'); + expect((doc.getNodeAt(1)! as ParagraphNode).text.toPlainText(), 'This is a second paragraph'); + expect((doc.getNodeAt(2)! as ParagraphNode).text.toPlainText(), 'This is the third paragraph'); }); testAllInputsOnAllPlatforms("paste retains node IDs when replayed during undo", ( @@ -169,7 +169,7 @@ This is the third paragraph'''); // Ensure that the "a" was inserted at the end of the final pasted paragraph. expect( - (testContext.document.last as TextNode).text.text, + (testContext.document.last as TextNode).text.toPlainText(), "This is the third paragrapha", ); @@ -183,7 +183,7 @@ This is the third paragraph'''); // that the paste command's internal content wasn't mutated when we inserted the "a" // into the document. Such mutation was part of bug https://github.com/superlistapp/super_editor/issues/2173 expect( - (testContext.document.last as TextNode).text.text, + (testContext.document.last as TextNode).text.toPlainText(), "This is the third paragraph", ); }); diff --git a/super_editor/test/super_editor/supereditor_input_ime_test.dart b/super_editor/test/super_editor/supereditor_input_ime_test.dart index a6228d2ad4..336a39b58c 100644 --- a/super_editor/test/super_editor/supereditor_input_ime_test.dart +++ b/super_editor/test/super_editor/supereditor_input_ime_test.dart @@ -35,7 +35,7 @@ void main() { await tester.typeImeText("Hello"); // Ensure the text was typed. - expect((document.first as ParagraphNode).text.text, "Hello<- text here"); + expect((document.first as ParagraphNode).text.toPlainText(), "Hello<- text here"); }); testWidgetsOnAllPlatforms('in the middle of existing text', (tester) async { @@ -58,7 +58,7 @@ void main() { await tester.typeImeText("Hello"); // Ensure the text was typed. - expect((document.first as ParagraphNode).text.text, "text here ->Hello<---"); + expect((document.first as ParagraphNode).text.toPlainText(), "text here ->Hello<---"); }); testWidgetsOnAllPlatforms('at the end of existing text', (tester) async { @@ -81,7 +81,7 @@ void main() { await tester.typeImeText("Hello"); // Ensure the text was typed. - expect((document.first as ParagraphNode).text.text, "text here ->Hello"); + expect((document.first as ParagraphNode).text.toPlainText(), "text here ->Hello"); }); }); @@ -279,7 +279,7 @@ void main() { // Ensure the text was inserted. expect( - SuperEditorInspector.findTextInComponent('1').text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), 'Going.', ); }); @@ -353,7 +353,7 @@ void main() { ), ]); - expect((document.first as ParagraphNode).text.text, "This is a sentence. "); + expect((document.first as ParagraphNode).text.toPlainText(), "This is a sentence. "); }); testWidgets('can type compound character in an empty paragraph', (tester) async { @@ -395,7 +395,7 @@ void main() { await tester.pumpAndSettle(); // Ensure that the empty paragraph now reads "¨". - expect((editContext.document.getNodeAt(1)! as ParagraphNode).text.text, "¨"); + expect((editContext.document.getNodeAt(1)! as ParagraphNode).text.toPlainText(), "¨"); // Ensure that the IME still has the invisible characters. expect(deltaClient.currentTextEditingValue!.text, ". ¨"); @@ -420,7 +420,7 @@ void main() { await tester.pumpAndSettle(); // Ensure that the empty paragraph now reads "ü". - expect((editContext.document.getNodeAt(1)! as ParagraphNode).text.text, "ü"); + expect((editContext.document.getNodeAt(1)! as ParagraphNode).text.toPlainText(), "ü"); }); }); @@ -494,13 +494,13 @@ void main() { // Ensure the paragraph was split. expect( - (doc.getNodeAt(0)! as ParagraphNode).text.text, + (doc.getNodeAt(0)! as ParagraphNode).text.toPlainText(), 'Before the line break ', ); // Ensure the paragraph was split. expect( - (doc.getNodeAt(1)! as ParagraphNode).text.text, + (doc.getNodeAt(1)! as ParagraphNode).text.toPlainText(), 'new line', ); @@ -559,7 +559,7 @@ Paragraph two // Ensure the paragraph was merged. expect( - (doc.getNodeAt(0)! as ParagraphNode).text.text, + (doc.getNodeAt(0)! as ParagraphNode).text.toPlainText(), 'Paragraph oneParagraph two', ); @@ -621,7 +621,7 @@ Paragraph two ], getter: imeClientGetter); expect( - SuperEditorInspector.findTextInComponent('1').text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), 'Anonymous ', ); }); @@ -666,7 +666,7 @@ Paragraph two ], getter: imeClientGetter); expect( - SuperEditorInspector.findTextInComponent('1').text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), 'Anonymous ', ); }); @@ -890,7 +890,7 @@ Paragraph two ], getter: imeClientGetter); // Ensure text and selection were updated. - expect(SuperEditorInspector.findTextInComponent('1').text, '쇼'); + expect(SuperEditorInspector.findTextInComponent('1').toPlainText(), '쇼'); expect( SuperEditorInspector.findDocumentSelection(), selectionEquivalentTo( @@ -953,8 +953,8 @@ Paragraph two // Ensure the replacement was ignored and a new empty node was added. expect(document.nodeCount, 2); - expect((document.getNodeAt(0)! as TextNode).text.text, 'run tom'); - expect((document.getNodeAt(1)! as TextNode).text.text, ''); + expect((document.getNodeAt(0)! as TextNode).text.toPlainText(), 'run tom'); + expect((document.getNodeAt(1)! as TextNode).text.toPlainText(), ''); }); }); @@ -1030,7 +1030,7 @@ Paragraph two await _typeSpaceAdaptive(tester); // Ensure the space character was inserted. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, ' '); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), ' '); }); testWidgetsOnWebDesktop('deletes a character with backspace', (tester) async { @@ -1062,7 +1062,7 @@ Paragraph two ); // Ensure the last character was deleted. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, 'This is a paragrap'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), 'This is a paragrap'); }); testWidgetsOnWebDesktop('merges paragraphs backspace at the beginning of a paragraph', (tester) async { @@ -1102,7 +1102,7 @@ Paragraph two // Ensure the paragraph was merged. expect( - (doc.getNodeAt(0)! as ParagraphNode).text.text, + (doc.getNodeAt(0)! as ParagraphNode).text.toPlainText(), 'Paragraph oneParagraph two', ); }); @@ -1565,7 +1565,7 @@ Paragraph two // Simulate an insertion containing a composing region. await tester.ime.sendDeltas( [ - TextEditingDeltaNonTextUpdate( + const TextEditingDeltaNonTextUpdate( oldText: '. ', selection: TextSelection.collapsed(offset: 2), composing: TextRange(start: 2, end: 2), diff --git a/super_editor/test/super_editor/supereditor_input_keyboard_actions_test.dart b/super_editor/test/super_editor/supereditor_input_keyboard_actions_test.dart index f199d48f47..07526d5a64 100644 --- a/super_editor/test/super_editor/supereditor_input_keyboard_actions_test.dart +++ b/super_editor/test/super_editor/supereditor_input_keyboard_actions_test.dart @@ -317,7 +317,7 @@ void main() { // Ensure that the whole word was deleted. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text.startsWith("Lorem dolor sit amet"), isTrue); + expect(paragraphNode.text.toPlainText().startsWith("Lorem dolor sit amet"), isTrue); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -346,7 +346,7 @@ void main() { // Ensure that the whole word was deleted. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text.startsWith("Lorem dolor sit amet"), isTrue); + expect(paragraphNode.text.toPlainText().startsWith("Lorem dolor sit amet"), isTrue); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -375,7 +375,7 @@ void main() { // Ensure that the whole word was deleted. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text, startsWith("Lorem ipsum sit amet")); + expect(paragraphNode.text.toPlainText(), startsWith("Lorem ipsum sit amet")); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -404,7 +404,7 @@ void main() { // Ensure that the whole word was deleted. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text.startsWith("Lorem ipsum sit amet"), isTrue); + expect(paragraphNode.text.toPlainText().startsWith("Lorem ipsum sit amet"), isTrue); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -431,7 +431,7 @@ void main() { // Ensure that a character was deleted. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text, startsWith("Lorem ipsu dolor sit amet")); + expect(paragraphNode.text.toPlainText(), startsWith("Lorem ipsu dolor sit amet")); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -460,7 +460,7 @@ void main() { // Ensure that a character was deleted. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text.startsWith("Lorem ipsumdolor sit amet"), isTrue); + expect(paragraphNode.text.toPlainText().startsWith("Lorem ipsumdolor sit amet"), isTrue); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -793,7 +793,7 @@ void main() { // Ensure that the whole word was deleted. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text.startsWith("Lorem dolor sit amet"), isTrue); + expect(paragraphNode.text.toPlainText().startsWith("Lorem dolor sit amet"), isTrue); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -820,7 +820,7 @@ void main() { // Ensure that the whole word was deleted. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text.startsWith("Lorem dolor sit amet"), isTrue); + expect(paragraphNode.text.toPlainText().startsWith("Lorem dolor sit amet"), isTrue); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -849,7 +849,7 @@ void main() { // Ensure that the whole word was deleted. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text, startsWith("Lorem ipsum sit amet")); + expect(paragraphNode.text.toPlainText(), startsWith("Lorem ipsum sit amet")); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -878,7 +878,7 @@ void main() { // Ensure that the whole word was deleted. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text.startsWith("Lorem ipsum sit amet"), isTrue); + expect(paragraphNode.text.toPlainText().startsWith("Lorem ipsum sit amet"), isTrue); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -905,7 +905,7 @@ void main() { // Ensure that nothing changed. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text, startsWith("Lorem ipsu dolor sit amet")); + expect(paragraphNode.text.toPlainText(), startsWith("Lorem ipsu dolor sit amet")); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -934,7 +934,7 @@ void main() { // Ensure that nothing changed. final paragraphNode = testContext.findEditContext().document.first as ParagraphNode; - expect(paragraphNode.text.text, startsWith("Lorem ipsumdolor sit amet")); + expect(paragraphNode.text.toPlainText(), startsWith("Lorem ipsumdolor sit amet")); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -965,7 +965,7 @@ void main() { await tester.pressBackspace(); // Ensure the first character was deleted. - expect((node as TextNode).text.text, ' header'); + expect((node as TextNode).text.toPlainText(), ' header'); // Ensure the node is still a header. expect(node.getMetadataValue("blockType"), header1Attribution); @@ -991,7 +991,7 @@ void main() { await tester.pressBackspace(); // Ensure the text remains the same. - expect((node as TextNode).text.text, 'A header'); + expect((node as TextNode).text.toPlainText(), 'A header'); // Ensure the header was converted to a paragraph. expect(node.getMetadataValue("blockType"), paragraphAttribution); @@ -2131,7 +2131,7 @@ This is a paragraph await tester.pressBackspace(); // Ensure the selected content was deleted. - expect(SuperEditorInspector.findTextInComponent("1").text, "Text with [] selection"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Text with [] selection"); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -2179,7 +2179,7 @@ This is a paragraph await tester.pressDelete(); // Ensure the selected content was deleted. - expect(SuperEditorInspector.findTextInComponent("1").text, "Text with [] selection"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Text with [] selection"); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -2228,7 +2228,7 @@ This is a paragraph await tester.typeKeyboardText("a"); // Ensure the selected content was deleted. - expect(SuperEditorInspector.findTextInComponent("1").text, "Text with [a] selection"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Text with [a] selection"); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -2276,7 +2276,7 @@ This is a paragraph await tester.pressEscape(); // Ensure the selected content was deleted. - expect(SuperEditorInspector.findTextInComponent("1").text, "Text with [SELECTME] selection"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Text with [SELECTME] selection"); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -2310,7 +2310,7 @@ This is a paragraph await tester.pressEscape(); // Ensure that nothing changed. - expect(SuperEditorInspector.findTextInComponent("1").text, "This is some text"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "This is some text"); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( diff --git a/super_editor/test/super_editor/supereditor_keyboard_test.dart b/super_editor/test/super_editor/supereditor_keyboard_test.dart index c8685a098c..dfb19c897a 100644 --- a/super_editor/test/super_editor/supereditor_keyboard_test.dart +++ b/super_editor/test/super_editor/supereditor_keyboard_test.dart @@ -393,8 +393,8 @@ void main() { // Ensure the document doesn't change. expect( - SuperEditorInspector.findTextInComponent('1').text, - (singleParagraphDoc().first as TextNode).text.text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), + (singleParagraphDoc().first as TextNode).text.toPlainText(), ); expect( SuperEditorInspector.findDocumentSelection(), @@ -838,7 +838,7 @@ void main() { ); // Ensure the content of the list item didn't change. - expect(node.text.text, 'list item 1'); + expect(node.text.toPlainText(), 'list item 1'); }); }); diff --git a/super_editor/test/super_editor/supereditor_multi_editor_test.dart b/super_editor/test/super_editor/supereditor_multi_editor_test.dart index 99ac6b21e1..c0f74d6d6d 100644 --- a/super_editor/test/super_editor/supereditor_multi_editor_test.dart +++ b/super_editor/test/super_editor/supereditor_multi_editor_test.dart @@ -172,7 +172,7 @@ void main() { // Ensure that the text was edited upon pressing backspace. expect( - SuperEditorInspector.findTextInComponent("Editor2_Header").text, + SuperEditorInspector.findTextInComponent("Editor2_Header").toPlainText(), "Document #", ); @@ -180,7 +180,7 @@ void main() { // Ensure that the text was inserted into the paragraph. expect( - SuperEditorInspector.findTextInComponent("Editor2_Header").text, + SuperEditorInspector.findTextInComponent("Editor2_Header").toPlainText(), "Document #Edit", ); }); diff --git a/super_editor/test/super_editor/supereditor_robot_test.dart b/super_editor/test/super_editor/supereditor_robot_test.dart index 72dc517554..b4e32ac521 100644 --- a/super_editor/test/super_editor/supereditor_robot_test.dart +++ b/super_editor/test/super_editor/supereditor_robot_test.dart @@ -178,7 +178,7 @@ void main() { await tester.typeKeyboardText("Hello, world!"); // Verify that SuperEditor displays the text we typed. - expect(SuperEditorInspector.findTextInComponent("1").text, "Hello, world!"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Hello, world!"); }); testWidgetsOnDesktop("enters text with hardware keyboard with multiple taps", (tester) async { @@ -201,7 +201,7 @@ void main() { await tester.typeKeyboardText("ABC"); // Ensure that the text is inserted. - expect(SuperEditorInspector.findTextInComponent("1").text, "Hello, world!ABC"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Hello, world!ABC"); }); testWidgetsOnDesktop("enters text with IME keyboard", (tester) async { @@ -221,7 +221,7 @@ void main() { await tester.typeImeText("Hello, world!"); // Verify that SuperEditor displays the text we typed. - expect(SuperEditorInspector.findTextInComponent("1").text, "Hello, world!"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Hello, world!"); }); testWidgetsOnDesktop("enters text with IME keyboard with multiple taps", (tester) async { @@ -244,7 +244,7 @@ void main() { await tester.typeImeText("ABC"); // Ensure that the text is inserted. - expect(SuperEditorInspector.findTextInComponent("1").text, "Hello, world!ABC"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "Hello, world!ABC"); }); testWidgetsOnAllPlatforms("performs back to back taps with hardware keyboard", (tester) async { @@ -266,7 +266,7 @@ void main() { await tester.typeKeyboardText("new "); // Ensure that the text is inserted. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, "Hello, new world!"); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), "Hello, new world!"); }); testWidgetsOnAllPlatforms("performs back to back taps with software keyboard", (tester) async { @@ -288,7 +288,7 @@ void main() { await tester.typeImeText("new "); // Ensure that the text is inserted. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, "Hello, new world!"); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), "Hello, new world!"); }); }); } diff --git a/super_editor/test/super_editor/supereditor_scrolling_test.dart b/super_editor/test/super_editor/supereditor_scrolling_test.dart index 7892f52a2f..190aa3e6bf 100644 --- a/super_editor/test/super_editor/supereditor_scrolling_test.dart +++ b/super_editor/test/super_editor/supereditor_scrolling_test.dart @@ -306,7 +306,7 @@ void main() { // Place the caret at the beginning of the document. await tester.placeCaretInParagraph('1', 0); - final paragraphImeText = '. ${SuperEditorInspector.findTextInComponent('1').text}'; + final paragraphImeText = '. ${SuperEditorInspector.findTextInComponent('1').toPlainText()}'; // Simulate the user dragging the spacebar to move the caret to // "In aliquet convallis efficitur|.". This position was chosen arbitrarily, we diff --git a/super_editor/test/super_editor/supereditor_selection_test.dart b/super_editor/test/super_editor/supereditor_selection_test.dart index 9437ea9d41..8910d8b6a2 100644 --- a/super_editor/test/super_editor/supereditor_selection_test.dart +++ b/super_editor/test/super_editor/supereditor_selection_test.dart @@ -850,7 +850,7 @@ Second Paragraph await tester.typeImeText("Hello, world", find.byType(SuperTextField)); // Ensure the text field received the text. - expect(textFieldController.text.text, "Hello, world"); + expect(textFieldController.text.toPlainText(), "Hello, world"); // Ensure that SuperEditor has the same selection as before. expect(SuperEditorInspector.findDocumentSelection(), initialEditorSelection); @@ -1126,7 +1126,7 @@ Second Paragraph // Place the caret at the middle of the first word. await tester.placeCaretInParagraph('1', 2); - final text = SuperEditorInspector.findTextInComponent('1').text; + final text = SuperEditorInspector.findTextInComponent('1').toPlainText(); await tester.ime.sendDeltas( [ diff --git a/super_editor/test/super_editor/supereditor_software_keyboard_toolbar_test.dart b/super_editor/test/super_editor/supereditor_software_keyboard_toolbar_test.dart index 64f0d64a15..4c9e73212e 100644 --- a/super_editor/test/super_editor/supereditor_software_keyboard_toolbar_test.dart +++ b/super_editor/test/super_editor/supereditor_software_keyboard_toolbar_test.dart @@ -40,7 +40,7 @@ void main() { final secondNode = document.getNodeAt(1)!; expect(secondNode, isA()); - expect((secondNode as ParagraphNode).text.text, isEmpty); + expect((secondNode as ParagraphNode).text.toPlainText(), isEmpty); // Ensure the caret sits in the new paragraph node. final selection = SuperEditorInspector.findDocumentSelection()!; diff --git a/super_editor/test/super_editor/supereditor_undeletable_content_test.dart b/super_editor/test/super_editor/supereditor_undeletable_content_test.dart index 9bf274a8d8..122befc497 100644 --- a/super_editor/test/super_editor/supereditor_undeletable_content_test.dart +++ b/super_editor/test/super_editor/supereditor_undeletable_content_test.dart @@ -71,7 +71,7 @@ void main() { // Ensure the two paragraphs were merged. expect( - SuperEditorInspector.findTextInComponent('1').text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), 'Paragraph 1Paragraph 2', ); @@ -145,7 +145,7 @@ void main() { // Ensure the two paragraphs were merged. expect( - SuperEditorInspector.findTextInComponent('1').text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), 'Paragraph 1Paragraph 2', ); @@ -378,7 +378,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the beginning // of the selected paragraph. expect( - SuperEditorInspector.findTextInComponent('1').text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), 'graph 1', ); expect( @@ -425,7 +425,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the upstream edge // of the selection expect( - SuperEditorInspector.findTextInComponent('1').text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), 'Para', ); expect( @@ -471,7 +471,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the beginning // of the selected paragraph. - expect(SuperEditorInspector.findTextInComponent('1').text, 'Para'); + expect(SuperEditorInspector.findTextInComponent('1').toPlainText(), 'Para'); expect( SuperEditorInspector.findDocumentSelection(), selectionEquivalentTo( @@ -515,7 +515,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the beginning // of the selected paragraph. - expect(SuperEditorInspector.findTextInComponent('1').text, 'graph 1'); + expect(SuperEditorInspector.findTextInComponent('1').toPlainText(), 'graph 1'); expect( SuperEditorInspector.findDocumentSelection(), selectionEquivalentTo( @@ -751,7 +751,7 @@ void main() { expect(document.nodeCount, equals(2)); expect(document.first, isA()); expect(document.last, isA()); - expect((document.last as TextNode).text.text, equals('')); + expect((document.last as TextNode).text.toPlainText(), equals('')); // Ensure the caret was placed at the beginning of the newly inserted paragraph. expect( @@ -817,7 +817,7 @@ void main() { expect(document.nodeCount, equals(2)); expect(document.first, isA()); expect(document.last, isA()); - expect((document.last as TextNode).text.text, equals('')); + expect((document.last as TextNode).text.toPlainText(), equals('')); // Ensure the caret was placed at the beginning of the newly inserted paragraph. expect( @@ -888,7 +888,7 @@ void main() { expect(document.getNodeAt(0), isA()); expect(document.getNodeAt(1), isA()); expect(document.getNodeAt(2), isA()); - expect((document.last as TextNode).text.text, equals('')); + expect((document.last as TextNode).text.toPlainText(), equals('')); // Ensure the caret was placed at the beginning of the newly inserted paragraph. expect( @@ -1207,7 +1207,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the beginning // of the selected paragraph. expect( - SuperEditorInspector.findTextInComponent('1').text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), 'graph 1', ); expect( @@ -1254,7 +1254,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the upstream edge // of the selection expect( - SuperEditorInspector.findTextInComponent('1').text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), 'Para', ); expect( @@ -1300,7 +1300,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the beginning // of the selected paragraph. - expect(SuperEditorInspector.findTextInComponent('1').text, 'Para'); + expect(SuperEditorInspector.findTextInComponent('1').toPlainText(), 'Para'); expect( SuperEditorInspector.findDocumentSelection(), selectionEquivalentTo( @@ -1344,7 +1344,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the beginning // of the selected paragraph. - expect(SuperEditorInspector.findTextInComponent('1').text, 'graph 1'); + expect(SuperEditorInspector.findTextInComponent('1').toPlainText(), 'graph 1'); expect( SuperEditorInspector.findDocumentSelection(), selectionEquivalentTo( @@ -1579,7 +1579,7 @@ void main() { expect(document.nodeCount, equals(2)); expect(document.first, isA()); expect(document.last, isA()); - expect((document.last as TextNode).text.text, equals('')); + expect((document.last as TextNode).text.toPlainText(), equals('')); // Ensure the caret was placed at the beginning of the newly inserted paragraph. expect( @@ -1645,7 +1645,7 @@ void main() { expect(document.nodeCount, equals(2)); expect(document.first, isA()); expect(document.last, isA()); - expect((document.last as TextNode).text.text, equals('')); + expect((document.last as TextNode).text.toPlainText(), equals('')); // Ensure the caret was placed at the beginning of the newly inserted paragraph. expect( @@ -1716,7 +1716,7 @@ void main() { expect(document.getNodeAt(0), isA()); expect(document.getNodeAt(1), isA()); expect(document.getNodeAt(2), isA()); - expect((document.last as TextNode).text.text, equals('')); + expect((document.last as TextNode).text.toPlainText(), equals('')); // Ensure the caret was placed at the beginning of the newly inserted paragraph. expect( @@ -2139,7 +2139,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the beginning // of the selected paragraph. expect( - SuperEditorInspector.findTextInComponent('1').text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), 'graph 1', ); expect( @@ -2200,7 +2200,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the upstream edge // of the selection expect( - SuperEditorInspector.findTextInComponent('1').text, + SuperEditorInspector.findTextInComponent('1').toPlainText(), 'Para', ); expect( @@ -2260,7 +2260,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the beginning // of the selected paragraph. - expect(SuperEditorInspector.findTextInComponent('1').text, 'Para'); + expect(SuperEditorInspector.findTextInComponent('1').toPlainText(), 'Para'); expect( SuperEditorInspector.findDocumentSelection(), selectionEquivalentTo( @@ -2318,7 +2318,7 @@ void main() { // Ensure that the deletable content was deleted and selection moved to the beginning // of the selected paragraph. - expect(SuperEditorInspector.findTextInComponent('1').text, 'graph 1'); + expect(SuperEditorInspector.findTextInComponent('1').toPlainText(), 'graph 1'); expect( SuperEditorInspector.findDocumentSelection(), selectionEquivalentTo( @@ -2386,7 +2386,7 @@ void main() { expect(document.nodeCount, equals(2)); expect(document.first, isA()); expect(document.last, isA()); - expect((document.last as TextNode).text.text, equals('')); + expect((document.last as TextNode).text.toPlainText(), equals('')); // Ensure the caret was placed at the beginning of the newly inserted paragraph. expect( @@ -2453,7 +2453,7 @@ void main() { expect(document.nodeCount, equals(2)); expect(document.first, isA()); expect(document.last, isA()); - expect((document.last as TextNode).text.text, equals('')); + expect((document.last as TextNode).text.toPlainText(), equals('')); // Ensure the caret was placed at the beginning of the newly inserted paragraph. expect( @@ -2538,7 +2538,7 @@ void main() { expect(document.getNodeAt(0), isA()); expect(document.getNodeAt(1), isA()); expect(document.getNodeAt(2), isA()); - expect((document.last as TextNode).text.text, equals('')); + expect((document.last as TextNode).text.toPlainText(), equals('')); // Ensure the caret was placed at the beginning of the newly inserted paragraph. expect( diff --git a/super_editor/test/super_editor/text_entry/dash_conversion_test.dart b/super_editor/test/super_editor/text_entry/dash_conversion_test.dart index 77c5e7c790..63e54ed146 100644 --- a/super_editor/test/super_editor/text_entry/dash_conversion_test.dart +++ b/super_editor/test/super_editor/text_entry/dash_conversion_test.dart @@ -34,20 +34,20 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect(SuperEditorInspector.findTextInComponent('1').text, '-'); + expect(SuperEditorInspector.findTextInComponent('1').toPlainText(), '-'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(context.document.nodeCount, 1); - expect(SuperEditorInspector.findTextInComponent('1').text, SpecialCharacters.emDash); + expect(SuperEditorInspector.findTextInComponent('1').toPlainText(), SpecialCharacters.emDash); // Type some arbitrary text. await tester.typeTextAdaptive(' is an em-dash'); // Ensure the text was inserted. - expect(SuperEditorInspector.findTextInComponent('1').text, '— is an em-dash'); + expect(SuperEditorInspector.findTextInComponent('1').toPlainText(), '— is an em-dash'); }); testAllInputsOnAllPlatforms('at the beginning of a non-empty paragraph', ( @@ -69,20 +69,20 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, '-was inserted'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), '-was inserted'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(context.document.nodeCount, 1); - expect(SuperEditorInspector.findTextInComponent(nodeId).text, '—was inserted'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), '—was inserted'); // Type some arbitrary text. await tester.typeTextAdaptive('(em-dash) '); // Ensure the text was inserted. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, '—(em-dash) was inserted'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), '—(em-dash) was inserted'); }); testAllInputsOnAllPlatforms('at the middle of a paragraph', ( @@ -104,14 +104,14 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting -with a reaction'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), 'Inserting -with a reaction'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(context.document.nodeCount, 1); - expect(SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting —with a reaction'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), 'Inserting —with a reaction'); // Type some arbitrary text. await tester.typeTextAdaptive(' typing two dashes '); @@ -119,14 +119,14 @@ void main() { // Type three dashes. The first two should be converted to an em-dash // and the second should be inserted as is. await tester.typeTextAdaptive('---'); - expect( - SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting — typing two dashes —-with a reaction'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), + 'Inserting — typing two dashes —-with a reaction'); // Type another dash. The previously inserted dash and the current one // should be converted to an em-dash. await tester.typeTextAdaptive('-'); - expect( - SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting — typing two dashes ——with a reaction'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), + 'Inserting — typing two dashes ——with a reaction'); }); testAllInputsOnAllPlatforms('at the end of a paragraph', ( @@ -151,20 +151,20 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting -'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), 'Inserting -'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(context.document.nodeCount, 1); - expect(SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting —'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), 'Inserting —'); // Type some arbitrary text. await tester.typeTextAdaptive(' by typing two dashes'); // Ensure the text was inserted. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting — by typing two dashes'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), 'Inserting — by typing two dashes'); }); testAllInputsOnAllPlatforms('at the beginning of an empty list item', ( @@ -186,20 +186,20 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, '-'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), '-'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(context.document.nodeCount, 1); - expect(SuperEditorInspector.findTextInComponent(nodeId).text, '—'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), '—'); // Type some arbitrary text. await tester.typeTextAdaptive(' is an em-dash'); // Ensure the text was inserted. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, '— is an em-dash'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), '— is an em-dash'); }); testAllInputsOnAllPlatforms('at the beginning of a non-empty list item', ( @@ -221,27 +221,27 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, '-was inserted'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), '-was inserted'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(context.document.nodeCount, 1); - expect(SuperEditorInspector.findTextInComponent(nodeId).text, '—was inserted'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), '—was inserted'); // Type a third dash. await tester.typeTextAdaptive('-'); // Ensure a dash was inserted and no other nodes were added. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, '—-was inserted'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), '—-was inserted'); expect(context.document.nodeCount, 1); // Type some arbitrary text. await tester.typeTextAdaptive('(em-dash) '); // Ensure the text was inserted. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, '—-(em-dash) was inserted'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), '—-(em-dash) was inserted'); }); testAllInputsOnAllPlatforms('at the middle of a list item', ( @@ -263,14 +263,14 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting -with a reaction'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), 'Inserting -with a reaction'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(context.document.nodeCount, 1); - expect(SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting —with a reaction'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), 'Inserting —with a reaction'); // Type some arbitrary text. await tester.typeTextAdaptive(' typing two dashes '); @@ -278,14 +278,14 @@ void main() { // Type three dashes. The first two should be converted to an em-dash // and the second should be inserted as is. await tester.typeTextAdaptive('---'); - expect( - SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting — typing two dashes —-with a reaction'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), + 'Inserting — typing two dashes —-with a reaction'); // Type another dash. The previously inserted dash and the current one // should be converted to an em-dash. await tester.typeTextAdaptive('-'); - expect( - SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting — typing two dashes ——with a reaction'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), + 'Inserting — typing two dashes ——with a reaction'); }); testAllInputsOnAllPlatforms('at the end of a list item', ( @@ -310,20 +310,20 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting -'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), 'Inserting -'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(context.document.nodeCount, 1); - expect(SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting —'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), 'Inserting —'); // Type some arbitrary text. await tester.typeTextAdaptive(' by typing two dashes'); // Ensure the text was inserted. - expect(SuperEditorInspector.findTextInComponent(nodeId).text, 'Inserting — by typing two dashes'); + expect(SuperEditorInspector.findTextInComponent(nodeId).toPlainText(), 'Inserting — by typing two dashes'); }); testAllInputsOnAllPlatforms('at the beginning of an empty task', ( @@ -361,20 +361,20 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect((document.first as TaskNode).text.text, '-'); + expect((document.first as TaskNode).text.toPlainText(), '-'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(document.nodeCount, 1); - expect((document.first as TaskNode).text.text, '—'); + expect((document.first as TaskNode).text.toPlainText(), '—'); // Type some arbitrary text. await tester.typeTextAdaptive(' is an em-dash'); // Ensure the text was inserted. - expect((document.first as TaskNode).text.text, '— is an em-dash'); + expect((document.first as TaskNode).text.toPlainText(), '— is an em-dash'); }); testAllInputsOnAllPlatforms('at the beginning of a non-empty task', ( @@ -410,27 +410,27 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect((document.first as TaskNode).text.text, '-was inserted'); + expect((document.first as TaskNode).text.toPlainText(), '-was inserted'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(document.nodeCount, 1); - expect((document.first as TaskNode).text.text, '—was inserted'); + expect((document.first as TaskNode).text.toPlainText(), '—was inserted'); // Type a third dash. await tester.typeTextAdaptive('-'); // Ensure a dash was inserted and no other nodes were added. - expect((document.first as TaskNode).text.text, '—-was inserted'); + expect((document.first as TaskNode).text.toPlainText(), '—-was inserted'); expect(document.nodeCount, 1); // Type some arbitrary text. await tester.typeTextAdaptive('(em-dash) '); // Ensure the text was inserted. - expect((document.first as TaskNode).text.text, '—-(em-dash) was inserted'); + expect((document.first as TaskNode).text.toPlainText(), '—-(em-dash) was inserted'); }); testAllInputsOnAllPlatforms('at the middle of a task', ( @@ -466,14 +466,14 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect((document.first as TaskNode).text.text, 'Inserting -with a reaction'); + expect((document.first as TaskNode).text.toPlainText(), 'Inserting -with a reaction'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(document.nodeCount, 1); - expect((document.first as TaskNode).text.text, 'Inserting —with a reaction'); + expect((document.first as TaskNode).text.toPlainText(), 'Inserting —with a reaction'); // Type some arbitrary text. await tester.typeTextAdaptive(' typing two dashes '); @@ -481,12 +481,12 @@ void main() { // Type three dashes. The first two should be converted to an em-dash // and the second should be inserted as is. await tester.typeTextAdaptive('---'); - expect((document.first as TaskNode).text.text, 'Inserting — typing two dashes —-with a reaction'); + expect((document.first as TaskNode).text.toPlainText(), 'Inserting — typing two dashes —-with a reaction'); // Type another dash. The previously inserted dash and the current one // should be converted to an em-dash. await tester.typeTextAdaptive('-'); - expect((document.first as TaskNode).text.text, 'Inserting — typing two dashes ——with a reaction'); + expect((document.first as TaskNode).text.toPlainText(), 'Inserting — typing two dashes ——with a reaction'); }); testAllInputsOnAllPlatforms('at the end of a task', ( @@ -525,20 +525,20 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion happened. - expect((document.first as TaskNode).text.text, 'Inserting -'); + expect((document.first as TaskNode).text.toPlainText(), 'Inserting -'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. expect(document.nodeCount, 1); - expect((document.first as TaskNode).text.text, 'Inserting —'); + expect((document.first as TaskNode).text.toPlainText(), 'Inserting —'); // Type some arbitrary text. await tester.typeTextAdaptive(' by typing two dashes'); // Ensure the text was inserted. - expect((document.first as TaskNode).text.text, 'Inserting — by typing two dashes'); + expect((document.first as TaskNode).text.toPlainText(), 'Inserting — by typing two dashes'); }); }); }); diff --git a/super_editor/test/super_editor/text_entry/links_test.dart b/super_editor/test/super_editor/text_entry/links_test.dart index 2aa44f0672..d32a07734d 100644 --- a/super_editor/test/super_editor/text_entry/links_test.dart +++ b/super_editor/test/super_editor/text_entry/links_test.dart @@ -27,7 +27,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "https://www.google.com"); + expect(text.toPlainText(), "https://www.google.com"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -42,7 +42,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "https://www.google.com "); + expect(text.toPlainText(), "https://www.google.com "); expect( text.hasAttributionsThroughout( attributions: { @@ -70,7 +70,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "https://www.google.com"); + expect(text.toPlainText(), "https://www.google.com"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -85,7 +85,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "https://www.google.com"); + expect(text.toPlainText(), "https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -99,7 +99,7 @@ void main() { // Ensure we added a new empty paragraph. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.text, ""); + expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.toPlainText(), ""); }); testWidgetsOnAllPlatforms('when pressing ENTER at the middle of a paragraph', (tester) async { @@ -120,7 +120,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.comafter link"); + expect(text.toPlainText(), "Before link https://www.google.comafter link"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -135,7 +135,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.com"); + expect(text.toPlainText(), "Before link https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -149,7 +149,7 @@ void main() { // Ensure we split the paragraph. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.text, "after link"); + expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.toPlainText(), "after link"); }); testWidgetsOnAndroid( @@ -170,7 +170,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "https://www.google.com"); + expect(text.toPlainText(), "https://www.google.com"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -186,7 +186,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "https://www.google.com"); + expect(text.toPlainText(), "https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -200,7 +200,7 @@ void main() { // Ensure we added a new empty paragraph. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.text, ""); + expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.toPlainText(), ""); }); testWidgetsOnAndroid( @@ -223,7 +223,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.comafter link"); + expect(text.toPlainText(), "Before link https://www.google.comafter link"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -239,7 +239,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.com"); + expect(text.toPlainText(), "Before link https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -253,7 +253,7 @@ void main() { // Ensure we split the paragraph. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.text, "after link"); + expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.toPlainText(), "after link"); }); testWidgetsOnIos('when pressing the newline button on the software keyboard at the end of a paragraph (on iOS)', @@ -273,7 +273,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "https://www.google.com"); + expect(text.toPlainText(), "https://www.google.com"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -290,7 +290,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "https://www.google.com"); + expect(text.toPlainText(), "https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -304,7 +304,7 @@ void main() { // Ensure we added a new empty line. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.text, ""); + expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.toPlainText(), ""); }); testWidgetsOnIos( @@ -327,7 +327,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.comafter link"); + expect(text.toPlainText(), "Before link https://www.google.comafter link"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -344,7 +344,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.com"); + expect(text.toPlainText(), "Before link https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -358,7 +358,7 @@ void main() { // Ensure we split the paragraph. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.text, "after link"); + expect((textContext.document.getNodeAt(1)! as ParagraphNode).text.toPlainText(), "after link"); }); testWidgetsOnAllPlatforms('when pressing ENTER at the end of a list item', (tester) async { @@ -379,7 +379,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Item https://www.google.com"); + expect(text.toPlainText(), "Item https://www.google.com"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -394,7 +394,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Item https://www.google.com"); + expect(text.toPlainText(), "Item https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -408,7 +408,7 @@ void main() { // Ensure we added a new empty list item. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ListItemNode).text.text, ""); + expect((textContext.document.getNodeAt(1)! as ListItemNode).text.toPlainText(), ""); }); testWidgetsOnAllPlatforms('when pressing ENTER at the middle of a list item', (tester) async { @@ -429,7 +429,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.comafter link"); + expect(text.toPlainText(), "Before link https://www.google.comafter link"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -444,7 +444,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.com"); + expect(text.toPlainText(), "Before link https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -458,7 +458,7 @@ void main() { // Ensure we split the list item. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ListItemNode).text.text, "after link"); + expect((textContext.document.getNodeAt(1)! as ListItemNode).text.toPlainText(), "after link"); }); testWidgetsOnAndroid( @@ -481,7 +481,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Item https://www.google.com"); + expect(text.toPlainText(), "Item https://www.google.com"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -497,7 +497,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Item https://www.google.com"); + expect(text.toPlainText(), "Item https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -511,7 +511,7 @@ void main() { // Ensure we added a new empty list item. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ListItemNode).text.text, ""); + expect((textContext.document.getNodeAt(1)! as ListItemNode).text.toPlainText(), ""); }); testWidgetsOnAndroid( @@ -534,7 +534,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.comafter link"); + expect(text.toPlainText(), "Before link https://www.google.comafter link"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -550,7 +550,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.com"); + expect(text.toPlainText(), "Before link https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -564,7 +564,7 @@ void main() { // Ensure we split the list item. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ListItemNode).text.text, "after link"); + expect((textContext.document.getNodeAt(1)! as ListItemNode).text.toPlainText(), "after link"); }); testWidgetsOnIos('when pressing the newline button on the software keyboard at the end of a list item (on iOS)', @@ -586,7 +586,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Item https://www.google.com"); + expect(text.toPlainText(), "Item https://www.google.com"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -603,7 +603,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Item https://www.google.com"); + expect(text.toPlainText(), "Item https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -617,7 +617,7 @@ void main() { // Ensure we added a new empty list item. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ListItemNode).text.text, ""); + expect((textContext.document.getNodeAt(1)! as ListItemNode).text.toPlainText(), ""); }); testWidgetsOnIos( @@ -640,7 +640,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.comafter link"); + expect(text.toPlainText(), "Before link https://www.google.comafter link"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -657,7 +657,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "Before link https://www.google.com"); + expect(text.toPlainText(), "Before link https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -671,7 +671,7 @@ void main() { // Ensure we split the list item. expect(textContext.document.nodeCount, 2); expect(textContext.document.getNodeAt(1)!, isA()); - expect((textContext.document.getNodeAt(1)! as ListItemNode).text.text, "after link"); + expect((textContext.document.getNodeAt(1)! as ListItemNode).text.toPlainText(), "after link"); }); testWidgetsOnAllPlatforms('when pressing ENTER at the end of a task', (tester) async { @@ -706,7 +706,7 @@ void main() { // Ensure it's not linkified yet. var text = task.text; - expect(text.text, "This is a task https://www.google.com"); + expect(text.toPlainText(), "This is a task https://www.google.com"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -721,7 +721,7 @@ void main() { // Ensure it's linkified. text = task.text; - expect(text.text, "This is a task https://www.google.com"); + expect(text.toPlainText(), "This is a task https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -735,7 +735,7 @@ void main() { // Ensure we added a new empty task. expect(document.nodeCount, 2); expect(document.getNodeAt(1)!, isA()); - expect((document.getNodeAt(1)! as TaskNode).text.text, ""); + expect((document.getNodeAt(1)! as TaskNode).text.toPlainText(), ""); }); testWidgetsOnAllPlatforms('when pressing ENTER at the middle of a task', (tester) async { @@ -770,7 +770,7 @@ void main() { // Ensure it's not linkified yet. var text = task.text; - expect(text.text, "Before link https://www.google.comafter link"); + expect(text.toPlainText(), "Before link https://www.google.comafter link"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -785,7 +785,7 @@ void main() { // Ensure it's linkified. text = task.text; - expect(text.text, "Before link https://www.google.com"); + expect(text.toPlainText(), "Before link https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -799,7 +799,7 @@ void main() { // Ensure we split the task expect(document.nodeCount, 2); expect(document.getNodeAt(1)!, isA()); - expect((document.getNodeAt(1)! as TaskNode).text.text, "after link"); + expect((document.getNodeAt(1)! as TaskNode).text.toPlainText(), "after link"); }); testWidgetsOnAndroid( @@ -836,7 +836,7 @@ void main() { // Ensure it's not linkified yet. var text = task.text; - expect(text.text, "This is a task https://www.google.com"); + expect(text.toPlainText(), "This is a task https://www.google.com"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -852,7 +852,7 @@ void main() { // Ensure it's linkified. text = task.text; - expect(text.text, "This is a task https://www.google.com"); + expect(text.toPlainText(), "This is a task https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -866,7 +866,7 @@ void main() { // Ensure we added a new empty task. expect(document.nodeCount, 2); expect(document.getNodeAt(1)!, isA()); - expect((document.getNodeAt(1)! as TaskNode).text.text, ""); + expect((document.getNodeAt(1)! as TaskNode).text.toPlainText(), ""); }); testWidgetsOnAndroid( @@ -903,7 +903,7 @@ void main() { // Ensure it's not linkified yet. var text = task.text; - expect(text.text, "Before link https://www.google.comafter link"); + expect(text.toPlainText(), "Before link https://www.google.comafter link"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -919,7 +919,7 @@ void main() { // Ensure it's linkified. text = task.text; - expect(text.text, "Before link https://www.google.com"); + expect(text.toPlainText(), "Before link https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -933,7 +933,7 @@ void main() { // Ensure we split the task. expect(document.nodeCount, 2); expect(document.getNodeAt(1)!, isA()); - expect((document.getNodeAt(1)! as TaskNode).text.text, "after link"); + expect((document.getNodeAt(1)! as TaskNode).text.toPlainText(), "after link"); }); testWidgetsOnIos('when pressing the newline button on the software keyboard at the end of a task (on iOS)', @@ -969,7 +969,7 @@ void main() { // Ensure it's not linkified yet. var text = task.text; - expect(text.text, "This is a task https://www.google.com"); + expect(text.toPlainText(), "This is a task https://www.google.com"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -986,7 +986,7 @@ void main() { // Ensure it's linkified. text = task.text; - expect(text.text, "This is a task https://www.google.com"); + expect(text.toPlainText(), "This is a task https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -1000,7 +1000,7 @@ void main() { // Ensure we added a new empty task. expect(document.nodeCount, 2); expect(document.getNodeAt(1)!, isA()); - expect((document.getNodeAt(1)! as TaskNode).text.text, ""); + expect((document.getNodeAt(1)! as TaskNode).text.toPlainText(), ""); }); testWidgetsOnIos('when pressing the newline button on the software keyboard at the middle of a task (on iOS)', @@ -1036,7 +1036,7 @@ void main() { // Ensure it's not linkified yet. var text = task.text; - expect(text.text, "Before link https://www.google.comafter link"); + expect(text.toPlainText(), "Before link https://www.google.comafter link"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -1053,7 +1053,7 @@ void main() { // Ensure it's linkified. text = task.text; - expect(text.text, "Before link https://www.google.com"); + expect(text.toPlainText(), "Before link https://www.google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -1067,7 +1067,7 @@ void main() { // Ensure we split the task. expect(document.nodeCount, 2); expect(document.getNodeAt(1)!, isA()); - expect((document.getNodeAt(1)! as TaskNode).text.text, "after link"); + expect((document.getNodeAt(1)! as TaskNode).text.toPlainText(), "after link"); }); }); @@ -1091,7 +1091,7 @@ void main() { var text = SuperEditorInspector.findTextInComponent("1"); text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "www.google.com "); + expect(text.toPlainText(), "www.google.com "); expect( text.getAttributionSpansByFilter((a) => a is LinkAttribution), { @@ -1120,7 +1120,7 @@ void main() { // Ensure it's not linkified yet. var text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "google.com"); + expect(text.toPlainText(), "google.com"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => true, @@ -1135,7 +1135,7 @@ void main() { // Ensure it's linkified. text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "google.com "); + expect(text.toPlainText(), "google.com "); expect( text.getAttributionSpansByFilter((a) => a is LinkAttribution), { @@ -1164,7 +1164,7 @@ void main() { // Ensure both URLs are linkified with the correct URLs. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "https://www.google.com and https://flutter.dev "); + expect(text.toPlainText(), "https://www.google.com and https://flutter.dev "); expect( text.getAttributionSpansByFilter((a) => a is LinkAttribution), { @@ -1204,7 +1204,7 @@ void main() { // Ensure the URL is linkified. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "Hello https://www.google.com world"); + expect(text.toPlainText(), "Hello https://www.google.com world"); expect( text.getAttributionSpansByFilter((a) => a is LinkAttribution), { @@ -1241,7 +1241,7 @@ void main() { var text = SuperEditorInspector.findTextInComponent("1"); text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "Hello www.google.com world"); + expect(text.toPlainText(), "Hello www.google.com world"); expect( text.getAttributionSpansByFilter((a) => a is LinkAttribution), { @@ -1276,7 +1276,7 @@ void main() { // Ensure the URL is linkified. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "Hello google.com world"); + expect(text.toPlainText(), "Hello google.com world"); expect( text.getAttributionSpansByFilter((a) => a is LinkAttribution), { @@ -1449,7 +1449,7 @@ void main() { final nodeId = doc.first.id; var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "www.googoooole.com"); + expect(text.toPlainText(), "www.googoooole.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -1479,7 +1479,7 @@ void main() { // Ensure the characters were inserted and the link was updated. final text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "www.googoooole.com"); + expect(text.toPlainText(), "www.googoooole.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -1509,7 +1509,7 @@ void main() { // Ensure the characters were inserted and the attribution was removed. final text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "www.googoooole.com"); + expect(text.toPlainText(), "www.googoooole.com"); expect(text.spans.markers, isEmpty); }); }); @@ -1537,7 +1537,7 @@ void main() { final nodeId = doc.first.id; var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "google.com"); + expect(text.toPlainText(), "google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -1570,7 +1570,7 @@ void main() { // Ensure the characters were delete and link attribution was updated. final text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "google.com"); + expect(text.toPlainText(), "google.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -1594,7 +1594,7 @@ void main() { // Ensure the attribution was updated. final textAfter = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(textAfter.text, "m"); + expect(textAfter.toPlainText(), "m"); expect( (textAfter.getAllAttributionsAt(0).first as LinkAttribution).url.toString(), "https://m", @@ -1604,7 +1604,7 @@ void main() { await tester.pressDelete(); // Ensure the text was deleted. - expect(SuperEditorInspector.findTextInComponent(doc.first.id).text, isEmpty); + expect(SuperEditorInspector.findTextInComponent(doc.first.id).toPlainText(), isEmpty); }); testWidgetsOnAllPlatforms('removing the attribution', (tester) async { @@ -1628,7 +1628,7 @@ void main() { // Ensure the characters were delete and link attribution was removed. final text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "google.com"); + expect(text.toPlainText(), "google.com"); expect(text.spans.markers, isEmpty); }); }); @@ -1655,7 +1655,7 @@ void main() { // Ensure the characters were deleted and the whole link is still attributed. final text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "www.g.com"); + expect(text.toPlainText(), "www.g.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -1693,7 +1693,7 @@ void main() { // Ensure the text and the link were updated. var text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "www.duckduckgo.com"); + expect(text.toPlainText(), "www.duckduckgo.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -1723,7 +1723,7 @@ void main() { // Ensure the text was updated and the attribution was removed. final text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "www.googl.com"); + expect(text.toPlainText(), "www.googl.com"); expect(text.spans.markers, isEmpty); }); }); @@ -1751,7 +1751,7 @@ void main() { final nodeId = doc.first.id; var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "www.google"); + expect(text.toPlainText(), "www.google"); expect( text.hasAttributionsThroughout( attributions: { @@ -1782,7 +1782,7 @@ void main() { // Ensure the characters were deleted and the link was updated. final text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "www.google.c"); + expect(text.toPlainText(), "www.google.c"); expect( text.hasAttributionsThroughout( attributions: { @@ -1812,7 +1812,7 @@ void main() { // Ensure the character was deleted and the link was removed. final text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "www.google.co"); + expect(text.toPlainText(), "www.google.co"); expect(text.spans.markers, isEmpty); }); }); @@ -1835,7 +1835,7 @@ void main() { // Ensure the text and the link were updated. final text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "www.duckduckgo.com"); + expect(text.toPlainText(), "www.duckduckgo.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -1865,7 +1865,7 @@ void main() { // Ensure the text and the link were updated. final text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "www.duckduckgo.com"); + expect(text.toPlainText(), "www.duckduckgo.com"); expect( text.hasAttributionsThroughout( attributions: { @@ -1895,7 +1895,7 @@ void main() { // Ensure the text and the link were updated. final text = SuperEditorInspector.findTextInComponent(doc.first.id); - expect(text.text, "www.duckduckgo.com"); + expect(text.toPlainText(), "www.duckduckgo.com"); expect(text.spans.markers, isEmpty); }); }); @@ -1922,7 +1922,7 @@ void main() { final nodeId = doc.first.id; var text = SuperEditorInspector.findTextInComponent(nodeId); - expect(text.text, "www.google.co hello"); + expect(text.toPlainText(), "www.google.co hello"); expect( text.hasAttributionsThroughout( attributions: { @@ -1971,7 +1971,7 @@ void main() { // Ensure the text we typed didn't re-introduce a link attribution. newParagraphText = SuperEditorInspector.findTextInComponent(newParagraphId); - expect(newParagraphText.text, "New paragraph"); + expect(newParagraphText.toPlainText(), "New paragraph"); expect( newParagraphText.getAttributionSpansInRange( attributionFilter: (a) => a is LinkAttribution, @@ -2013,7 +2013,7 @@ void main() { // Ensure the text we typed didn't re-introduce a link attribution. newListItemText = SuperEditorInspector.findTextInComponent(newListItemId); - expect(newListItemText.text, "New list item"); + expect(newListItemText.toPlainText(), "New list item"); expect( newListItemText.getAttributionSpansInRange( attributionFilter: (a) => a is LinkAttribution, @@ -2037,7 +2037,7 @@ void main() { // Ensure that the Markdown was ignored and nothing was linkified. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "[google](www.google.com) "); + expect(text.toPlainText(), "[google](www.google.com) "); expect(text.getAttributionSpansByFilter((a) => true), isEmpty); }); @@ -2060,7 +2060,7 @@ void main() { // Ensure that the Markdown was ignored and nothing was linkified. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "Hello [google](www.google.com) "); + expect(text.toPlainText(), "Hello [google](www.google.com) "); expect(text.getAttributionSpansByFilter((a) => true), isEmpty); expect( SuperEditorInspector.findDocumentSelection(), diff --git a/super_editor/test/super_editor/text_entry/paragraph_conversions_test.dart b/super_editor/test/super_editor/text_entry/paragraph_conversions_test.dart index fc7bd2b348..cf69df9985 100644 --- a/super_editor/test/super_editor/text_entry/paragraph_conversions_test.dart +++ b/super_editor/test/super_editor/text_entry/paragraph_conversions_test.dart @@ -31,7 +31,7 @@ void main() { final paragraph = document.first as ParagraphNode; expect(paragraph.metadata['blockType'], headerVariant.$2); - expect(paragraph.text.text.isEmpty, isTrue); + expect(paragraph.text.toPlainText().isEmpty, isTrue); }, variant: _headerVariant, ); @@ -52,7 +52,7 @@ void main() { final paragraph = document.first as ParagraphNode; expect(paragraph.metadata['blockType'], paragraphAttribution); - expect(paragraph.text.text, "####### "); + expect(paragraph.text.toPlainText(), "####### "); }); }); @@ -71,7 +71,7 @@ void main() { final listItemNode = context.findEditContext().document.first; expect(listItemNode, isA()); expect((listItemNode as ListItemNode).type, ListItemType.unordered); - expect(listItemNode.text.text.isEmpty, isTrue); + expect(listItemNode.text.toPlainText().isEmpty, isTrue); }, variant: _unorderedListVariant); testWidgetsOnAllPlatforms('does not convert "1 "', (tester) async { @@ -86,7 +86,7 @@ void main() { final paragraphNode = context.findEditContext().document.first; expect(paragraphNode, isA()); - expect((paragraphNode as ParagraphNode).text.text, "1 "); + expect((paragraphNode as ParagraphNode).text.toPlainText(), "1 "); }); testWidgetsOnAllPlatforms('does not convert " 1 "', (tester) async { @@ -101,7 +101,7 @@ void main() { final paragraphNode = context.findEditContext().document.first; expect(paragraphNode, isA()); - expect((paragraphNode as ParagraphNode).text.text, " 1 "); + expect((paragraphNode as ParagraphNode).text.toPlainText(), " 1 "); }); }); @@ -120,7 +120,7 @@ void main() { final listItemNode = context.findEditContext().document.first; expect(listItemNode, isA()); expect((listItemNode as ListItemNode).type, ListItemType.ordered); - expect(listItemNode.text.text.isEmpty, isTrue); + expect(listItemNode.text.toPlainText().isEmpty, isTrue); }, variant: _orderedListVariant); testWidgetsOnAllPlatforms('with a number that continues the sequence', (tester) async { @@ -147,7 +147,7 @@ void main() { final listItemNode = context.findEditContext().document.getNodeAt(3)!; expect(listItemNode, isA()); expect((listItemNode as ListItemNode).type, ListItemType.ordered); - expect(listItemNode.text.text.isEmpty, isTrue); + expect(listItemNode.text.toPlainText().isEmpty, isTrue); }, variant: _orderedListNumberVariant); testWidgetsOnAllPlatforms('does not convert with a number that does not continues the sequence', (tester) async { @@ -174,7 +174,7 @@ void main() { // Ensure the paragraph was not converted and the typed text was kept. final editingNode = context.findEditContext().document.getNodeAt(3)!; expect(editingNode, isA()); - expect((editingNode as ParagraphNode).text.text, orderedListItemPattern); + expect((editingNode as ParagraphNode).text.toPlainText(), orderedListItemPattern); }, variant: _orderedListNumberVariant); testWidgetsOnAllPlatforms('does not start a list with a number bigger than one', (tester) async { @@ -195,7 +195,7 @@ void main() { // Ensure the paragraph was not converted and the typed text was kept. final editingNode = document.first; expect(editingNode, isA()); - expect((editingNode as ParagraphNode).text.text, orderedListItemPattern); + expect((editingNode as ParagraphNode).text.toPlainText(), orderedListItemPattern); }, variant: _orderedListNumberVariant); testWidgetsOnAllPlatforms('does not convert "1 "', (tester) async { @@ -210,7 +210,7 @@ void main() { final paragraphNode = context.findEditContext().document.first; expect(paragraphNode, isA()); - expect((paragraphNode as ParagraphNode).text.text, "1 "); + expect((paragraphNode as ParagraphNode).text.toPlainText(), "1 "); }); testWidgetsOnAllPlatforms('does not convert " 1 "', (tester) async { @@ -225,7 +225,7 @@ void main() { final paragraphNode = context.findEditContext().document.first; expect(paragraphNode, isA()); - expect((paragraphNode as ParagraphNode).text.text, " 1 "); + expect((paragraphNode as ParagraphNode).text.toPlainText(), " 1 "); }); }); @@ -249,7 +249,7 @@ void main() { expect(document.first, isA()); expect(document.last, isA()); - expect((document.last as ParagraphNode).text.text.isEmpty, isTrue); + expect((document.last as ParagraphNode).text.toPlainText().isEmpty, isTrue); }); testAllInputsOnAllPlatforms('with --- at the beginning of an non-empty paragraph', ( @@ -269,13 +269,13 @@ void main() { await tester.typeTextAdaptive('-'); // Ensure no conversion was performed. - expect((context.document.first as ParagraphNode).text.text, '-Existing paragraph'); + expect((context.document.first as ParagraphNode).text.toPlainText(), '-Existing paragraph'); // Type the second dash. await tester.typeTextAdaptive('-'); // Ensure the two dashes were converted to an em-dash. - expect((context.document.first as ParagraphNode).text.text, '—Existing paragraph'); + expect((context.document.first as ParagraphNode).text.toPlainText(), '—Existing paragraph'); // Type the third dash. await tester.typeTextAdaptive('- '); @@ -284,7 +284,7 @@ void main() { expect(context.document.nodeCount, 2); expect(context.document.first, isA()); expect(context.document.last, isA()); - expect((context.document.last as ParagraphNode).text.text, 'Existing paragraph'); + expect((context.document.last as ParagraphNode).text.toPlainText(), 'Existing paragraph'); }); testWidgetsOnAllPlatforms('does not convert non-HR dashes', (tester) async { @@ -303,7 +303,7 @@ void main() { final paragraphNode = context.findEditContext().document.first; expect(paragraphNode, isA()); - expect((paragraphNode as ParagraphNode).text.text, expectedResult); + expect((paragraphNode as ParagraphNode).text.toPlainText(), expectedResult); }, variant: _nonHrVariant); }); @@ -323,7 +323,7 @@ void main() { final paragraph = document.first as ParagraphNode; expect(paragraph.metadata['blockType'], blockquoteAttribution); - expect(paragraph.text.text.isEmpty, isTrue); + expect(paragraph.text.toPlainText().isEmpty, isTrue); }); }); @@ -361,7 +361,7 @@ void main() { // Ensure that the header became a paragraph. expect(headerNode.metadata["blockType"], paragraphAttribution); - expect(SuperEditorInspector.findTextInComponent(headerNode.id).text, "My Header"); + expect(SuperEditorInspector.findTextInComponent(headerNode.id).toPlainText(), "My Header"); }); testWidgetsOnAllPlatforms("blockquotes", (tester) async { @@ -397,7 +397,7 @@ void main() { // Ensure that the blockquote became a paragraph. expect(blockquoteNode.metadata["blockType"], paragraphAttribution); - expect(SuperEditorInspector.findTextInComponent(blockquoteNode.id).text, "My Blockquote"); + expect(SuperEditorInspector.findTextInComponent(blockquoteNode.id).toPlainText(), "My Blockquote"); }); testWidgetsOnAllPlatforms("ordered list items", (tester) async { @@ -435,7 +435,7 @@ void main() { final newNode = context.findEditContext().document.first; expect(newNode, isA()); expect(newNode.metadata["blockType"], paragraphAttribution); - expect(SuperEditorInspector.findTextInComponent(listItemNode.id).text, "My list item"); + expect(SuperEditorInspector.findTextInComponent(listItemNode.id).toPlainText(), "My list item"); }); }); }); diff --git a/super_editor/test/super_editor/text_entry/tagging/action_tags_test.dart b/super_editor/test/super_editor/text_entry/tagging/action_tags_test.dart index 756ad02f4e..ac731c267d 100644 --- a/super_editor/test/super_editor/text_entry/tagging/action_tags_test.dart +++ b/super_editor/test/super_editor/text_entry/tagging/action_tags_test.dart @@ -23,7 +23,7 @@ void main() { // Ensure that the tag has a composing attribution. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "/header"); + expect(text.toPlainText(), "/header"); expect( text.getAttributedRange({actionTagComposingAttribution}, 0), const SpanRange(0, 6), @@ -51,7 +51,7 @@ void main() { // Ensure that the tag has a composing attribution. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before /header after"); + expect(text.toPlainText(), "before /header after"); expect( text.getAttributedRange({actionTagComposingAttribution}, 7), const SpanRange(7, 13), @@ -80,7 +80,7 @@ void main() { // Ensure that there's no more composing attribution because the tag // should have been submitted. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before /header after"); + expect(text.toPlainText(), "before /header after"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => attribution == actionTagComposingAttribution, @@ -116,7 +116,7 @@ void main() { // Ensure that we started a composing tag before adding a space. var text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before /header"); + expect(text.toPlainText(), "before /header"); expect( text.getAttributedRange({actionTagComposingAttribution}, 7), const SpanRange(7, 13), @@ -126,7 +126,7 @@ void main() { // Ensure that the composing attribution continues after the space. text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before /header after"); + expect(text.toPlainText(), "before /header after"); expect( text.getAttributedRange({actionTagComposingAttribution}, 7), const SpanRange(7, 19), @@ -155,7 +155,7 @@ void main() { // Ensure that we're composing an action tag. var text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before @john"); + expect(text.toPlainText(), "before @john"); expect( text.getAttributedRange({actionTagComposingAttribution}, 7), const SpanRange(7, 11), @@ -332,7 +332,7 @@ void main() { // Ensure that the tag was submitted. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before /header"); + expect(text.toPlainText(), "before /header"); expect( text.getAttributedRange({actionTagCancelledAttribution}, 7), const SpanRange(7, 7), @@ -378,7 +378,7 @@ void main() { // Ensure that the action tag was cancelled. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before /header"); + expect(text.toPlainText(), "before /header"); expect( text.getAttributedRange({actionTagCancelledAttribution}, 7), const SpanRange(7, 7), @@ -431,7 +431,7 @@ void main() { // Ensure that the action tag was cancelled. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before /header after"); + expect(text.toPlainText(), "before /header after"); expect( text.getAttributedRange({actionTagCancelledAttribution}, 7), const SpanRange(7, 7), @@ -486,7 +486,7 @@ void main() { // Ensure that we didn't start composing again. text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before /stuff "); + expect(text.toPlainText(), "before /stuff "); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => attribution == actionTagComposingAttribution, @@ -561,7 +561,7 @@ void main() { // Ensure that the action tag was removed after submission. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, ""); + expect(text.toPlainText(), ""); }); testWidgetsOnAllPlatforms("after existing text", (tester) async { @@ -588,7 +588,7 @@ void main() { // Ensure that the action tag was removed. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before "); + expect(text.toPlainText(), "before "); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => attribution == actionTagComposingAttribution, @@ -622,7 +622,7 @@ void main() { // Ensure that the action tag was removed. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before after"); + expect(text.toPlainText(), "before after"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => attribution == actionTagComposingAttribution, diff --git a/super_editor/test/super_editor/text_entry/tagging/pattern_tags_test.dart b/super_editor/test/super_editor/text_entry/tagging/pattern_tags_test.dart index c1071fa4c3..b2980dbcf5 100644 --- a/super_editor/test/super_editor/text_entry/tagging/pattern_tags_test.dart +++ b/super_editor/test/super_editor/text_entry/tagging/pattern_tags_test.dart @@ -22,7 +22,7 @@ void main() { // Ensure that no hash tag was created. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "#"); + expect(text.toPlainText(), "#"); expect( text.hasAttributionAt(0, attribution: const PatternTagAttribution()), isFalse, @@ -41,7 +41,7 @@ void main() { // Ensure that the tag has a composing attribution. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "#flutter"); + expect(text.toPlainText(), "#flutter"); expect( text.getAttributedRange({const PatternTagAttribution()}, 0), const SpanRange(0, 7), @@ -69,7 +69,7 @@ void main() { // Ensure that the tag has a composing attribution. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before #flutter after"); + expect(text.toPlainText(), "before #flutter after"); expect( text.getAttributedRange({const PatternTagAttribution()}, 7), const SpanRange(7, 14), @@ -97,7 +97,7 @@ void main() { // Ensure that the tag doesn't have a composing attribution. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "#"); + expect(text.toPlainText(), "#"); expect( text.hasAttributionAt(0, attribution: const PatternTagAttribution()), isFalse, @@ -126,7 +126,7 @@ void main() { // Ensure that there's no more composing attribution because the tag // should have been committed. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before #flutter after"); + expect(text.toPlainText(), "before #flutter after"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => attribution is PatternTagAttribution, @@ -163,7 +163,7 @@ void main() { // Ensure that the hash tag doesn't include the period. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before #flutter. after"); + expect(text.toPlainText(), "before #flutter. after"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => attribution is PatternTagAttribution, @@ -204,7 +204,7 @@ void main() { // Ensure that the hash tag shrunk to where the period was inserted. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before #flutter.dart"); + expect(text.toPlainText(), "before #flutter.dart"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => attribution is PatternTagAttribution, @@ -231,7 +231,7 @@ void main() { await tester.typeImeText("hello #flutter#d"); var text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "hello #flutter#d"); + expect(text.toPlainText(), "hello #flutter#d"); expect( text.getAttributedRange({const PatternTagAttribution()}, 6), const SpanRange(6, 13), @@ -246,7 +246,7 @@ void main() { // Ensure that the tag has a composing attribution. text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "hello #flutter#dart"); + expect(text.toPlainText(), "hello #flutter#dart"); expect( text.getAttributedRange({const PatternTagAttribution()}, 6), const SpanRange(6, 13), @@ -269,7 +269,7 @@ void main() { // Ensure that the tag has a composing attribution. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "hello #flutter #dart"); + expect(text.toPlainText(), "hello #flutter #dart"); expect( text.getAttributedRange({const PatternTagAttribution()}, 6), const SpanRange(6, 13), @@ -476,7 +476,7 @@ void main() { // Ensure that the tag is still marked as a hash tag. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "#bcdfghi "); + expect(text.toPlainText(), "#bcdfghi "); expect( text.getAttributedRange({const PatternTagAttribution()}, 0), const SpanRange(0, 7), diff --git a/super_editor/test/super_editor/text_entry/tagging/stable_tags_test.dart b/super_editor/test/super_editor/text_entry/tagging/stable_tags_test.dart index 73f69c9ffa..6de2e6a098 100644 --- a/super_editor/test/super_editor/text_entry/tagging/stable_tags_test.dart +++ b/super_editor/test/super_editor/text_entry/tagging/stable_tags_test.dart @@ -22,7 +22,7 @@ void main() { // Ensure that the tag has a composing attribution. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "@"); + expect(text.toPlainText(), "@"); expect( text.getAttributedRange({stableTagComposingAttribution}, 0), const SpanRange(0, 0), @@ -41,7 +41,7 @@ void main() { // Ensure that the tag has a composing attribution. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "@john"); + expect(text.toPlainText(), "@john"); expect( text.getAttributedRange({stableTagComposingAttribution}, 0), const SpanRange(0, 4), @@ -69,7 +69,7 @@ void main() { // Ensure that the tag has a composing attribution. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before @john after"); + expect(text.toPlainText(), "before @john after"); expect( text.getAttributedRange({stableTagComposingAttribution}, 7), const SpanRange(7, 11), @@ -98,7 +98,7 @@ void main() { // Ensure that there's no more composing attribution because the tag // should have been committed. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before @john after"); + expect(text.toPlainText(), "before @john after"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => attribution == stableTagComposingAttribution, @@ -129,7 +129,7 @@ void main() { // Ensure that we started composing a tag before adding a space. var text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before @john"); + expect(text.toPlainText(), "before @john"); expect( text.getAttributedRange({stableTagComposingAttribution}, 7), const SpanRange(7, 11), @@ -139,7 +139,7 @@ void main() { // Ensure that the composing attribution continues after the space. text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before @john after"); + expect(text.toPlainText(), "before @john after"); expect( text.getAttributionSpansByFilter((a) => a == stableTagComposingAttribution), { @@ -329,7 +329,7 @@ void main() { // Ensure that we didn't start composing again. text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before @j"); + expect(text.toPlainText(), "before @j"); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => attribution == stableTagComposingAttribution, @@ -347,7 +347,7 @@ void main() { // Ensure that the cancelled tag wasn't committed, and didn't start composing again. text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before @j "); + expect(text.toPlainText(), "before @j "); expect( text.getAttributionSpansInRange( attributionFilter: (attribution) => attribution == stableTagComposingAttribution, @@ -432,7 +432,7 @@ void main() { // Ensure that only the stable tag is attributed as a stable tag. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "@john after"); + expect(text.toPlainText(), "@john after"); expect( text.getAttributedRange({const CommittedStableTagAttribution("john")}, 0), const SpanRange(0, 4), @@ -460,7 +460,7 @@ void main() { // Ensure that only the stable tag is attributed as a stable tag. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before @john after"); + expect(text.toPlainText(), "before @john after"); expect( text.getAttributedRange({const CommittedStableTagAttribution("john")}, 7), const SpanRange(7, 11), @@ -502,7 +502,7 @@ void main() { // Ensure that the tag was submitted. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before @john"); + expect(text.toPlainText(), "before @john"); expect( text.getAttributedRange({const CommittedStableTagAttribution("john")}, 7), const SpanRange(7, 11), @@ -546,7 +546,7 @@ void main() { // Ensure that the stable tag was submitted. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before @john"); + expect(text.toPlainText(), "before @john"); expect( text.getAttributedRange({const CommittedStableTagAttribution("john")}, 7), const SpanRange(7, 11), @@ -595,7 +595,7 @@ void main() { // Ensure that the stable tag was submitted. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "before @john after"); + expect(text.toPlainText(), "before @john after"); expect( text.getAttributedRange({const CommittedStableTagAttribution("john")}, 7), const SpanRange(7, 11), @@ -880,7 +880,7 @@ void main() { await tester.pressBackspace(); // Ensure that the entire user tag was deleted. - expect(SuperEditorInspector.findTextInComponent("1").text, "before after"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "before after"); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -918,7 +918,7 @@ void main() { await tester.pressDelete(); // Ensure that the entire user tag was deleted. - expect(SuperEditorInspector.findTextInComponent("1").text, "before after"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "before after"); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -948,7 +948,7 @@ void main() { await tester.pressBackspace(); // Ensure the 2nd tag was deleted, and the 1st tag remains. - expect(SuperEditorInspector.findTextInComponent("1").text, "one @john two three"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "one @john two three"); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -998,7 +998,7 @@ void main() { await tester.pressBackspace(); // Ensure that both user tags were completely deleted. - expect(SuperEditorInspector.findTextInComponent("1").text, "one three"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "one three"); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -1054,7 +1054,7 @@ void main() { await tester.pressBackspace(); // Ensure that both user tags were completely deleted. - expect(SuperEditorInspector.findTextInComponent("1").text, "one four"); + expect(SuperEditorInspector.findTextInComponent("1").toPlainText(), "one four"); expect( SuperEditorInspector.findDocumentSelection(), const DocumentSelection.collapsed( @@ -1094,7 +1094,7 @@ void main() { ); final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "💙"); + expect(text.toPlainText(), "💙"); }); testWidgetsOnAllPlatforms("caret can move around emoji without breaking editor", (tester) async { @@ -1142,7 +1142,7 @@ void main() { // Ensure the paragraph string is well formed: 💙 final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "💙"); + expect(text.toPlainText(), "💙"); }); testWidgetsOnAllPlatforms("can be captured with trigger", (tester) async { @@ -1159,7 +1159,7 @@ void main() { // Ensure the emoji is in the tag, and nothing went wrong with string formation. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "@💙"); + expect(text.toPlainText(), "@💙"); // Ensure the composing tag includes the emoji. expect( @@ -1212,7 +1212,7 @@ void main() { // Ensure nothing went wrong with the string construction. final text = SuperEditorInspector.findTextInComponent("1"); - expect(text.text, "💙@"); + expect(text.toPlainText(), "💙@"); // Ensure the tag was committed with the emoji. expect( diff --git a/super_editor/test/super_editor/text_entry/text_test.dart b/super_editor/test/super_editor/text_entry/text_test.dart index a89ec6b5de..90a713ee2c 100644 --- a/super_editor/test/super_editor/text_entry/text_test.dart +++ b/super_editor/test/super_editor/text_entry/text_test.dart @@ -289,7 +289,7 @@ Future main() async { // The handler should insert a character expect(result, ExecutionInstruction.haltExecution); expect( - (editContext.document.first as TextNode).text.text, + (editContext.document.first as TextNode).text.toPlainText(), 'aThis is some text', ); }); @@ -333,7 +333,7 @@ Future main() async { // The handler should insert a character expect(result, ExecutionInstruction.haltExecution); expect( - (editContext.document.first as TextNode).text.text, + (editContext.document.first as TextNode).text.toPlainText(), 'ßThis is some text', ); }); diff --git a/super_editor/test/super_reader/superreader_attributions_test.dart b/super_editor/test/super_reader/superreader_attributions_test.dart index df2de7e77b..89f8191934 100644 --- a/super_editor/test/super_reader/superreader_attributions_test.dart +++ b/super_editor/test/super_reader/superreader_attributions_test.dart @@ -18,8 +18,14 @@ void main() { .pump(); // Ensure the text is colored orange. + final text = SuperReaderInspector.findTextInParagraph("1"); + final richText = SuperReaderInspector.findRichTextInParagraph("1"); expect( - SuperReaderInspector.findRichTextInParagraph("1").style!.color, + richText.getSpanForPosition(const TextPosition(offset: 1))!.style!.color, + Colors.orange, + ); + expect( + richText.getSpanForPosition(TextPosition(offset: text.length - 1))!.style!.color, Colors.orange, ); }); diff --git a/super_editor/test/super_textfield/android/super_textfield_android_selection_test.dart b/super_editor/test/super_textfield/android/super_textfield_android_selection_test.dart index eea8e96d8c..fc1a7d55ed 100644 --- a/super_editor/test/super_textfield/android/super_textfield_android_selection_test.dart +++ b/super_editor/test/super_textfield/android/super_textfield_android_selection_test.dart @@ -194,15 +194,15 @@ void main() { // Ensure the word was selected. expect( SuperTextFieldInspector.findSelection(), - TextSelection(baseOffset: 12, extentOffset: 17), + const TextSelection(baseOffset: 12, extentOffset: 17), ); // Drag the downstream handle to the beginning of the downstream word. // "Lorem ipsum [dolor sit a]met" // ^ position 23 final textLayout = SuperTextFieldInspector.findProseTextLayout(); - final downstreamPositionBox = textLayout.getCharacterBox(TextPosition(offset: 17)); - final desiredPositionBox = textLayout.getCharacterBox(TextPosition(offset: 23)); + final downstreamPositionBox = textLayout.getCharacterBox(const TextPosition(offset: 17)); + final desiredPositionBox = textLayout.getCharacterBox(const TextPosition(offset: 23)); final gesture = await tester.dragDownstreamMobileHandleByDistanceInSuperTextField( Offset(desiredPositionBox!.right - downstreamPositionBox!.right, 0.0), ); @@ -251,15 +251,15 @@ void main() { // Ensure the word was selected. expect( SuperTextFieldInspector.findSelection(), - TextSelection(baseOffset: 27, extentOffset: 38), + const TextSelection(baseOffset: 27, extentOffset: 38), ); // Drag the downstream handle towards the beginning of the selected word. // "Lorem ipsum dolor sit amet [con]sectetur" // ^ position 30 final textLayout = SuperTextFieldInspector.findProseTextLayout(); - final downstreamPositionBox = textLayout.getCharacterBox(TextPosition(offset: 38)); - final desiredPositionBox = textLayout.getCharacterBox(TextPosition(offset: 30)); + final downstreamPositionBox = textLayout.getCharacterBox(const TextPosition(offset: 38)); + final desiredPositionBox = textLayout.getCharacterBox(const TextPosition(offset: 30)); final gesture = await tester.dragDownstreamMobileHandleByDistanceInSuperTextField( Offset(desiredPositionBox!.left - downstreamPositionBox!.right, 0.0), ); @@ -310,15 +310,15 @@ void main() { // Ensure the word was selected. expect( SuperTextFieldInspector.findSelection(), - TextSelection(baseOffset: 12, extentOffset: 17), + const TextSelection(baseOffset: 12, extentOffset: 17), ); // Drag the upstream handle to the end of the upstream word. // "Lorem ipsu[m dolor] sit amet" // ^ position 10 final textLayout = SuperTextFieldInspector.findProseTextLayout(); - final upstreamPositionBox = textLayout.getCharacterBox(TextPosition(offset: 12)); - final desiredPositionBox = textLayout.getCharacterBox(TextPosition(offset: 10)); + final upstreamPositionBox = textLayout.getCharacterBox(const TextPosition(offset: 12)); + final desiredPositionBox = textLayout.getCharacterBox(const TextPosition(offset: 10)); final gesture = await tester.dragUpstreamMobileHandleByDistanceInSuperTextField( Offset(desiredPositionBox!.left - upstreamPositionBox!.left, 0.0), ); @@ -367,15 +367,15 @@ void main() { // Ensure the word was selected. expect( SuperTextFieldInspector.findSelection(), - TextSelection(baseOffset: 27, extentOffset: 38), + const TextSelection(baseOffset: 27, extentOffset: 38), ); // Drag the upstream handle towards the end of the selected word. // "Lorem ipsum dolor sit amet consect[etur]" // ^ position 34 final textLayout = SuperTextFieldInspector.findProseTextLayout(); - final upstreamPositionBox = textLayout.getCharacterBox(TextPosition(offset: 27)); - final desiredPositionBox = textLayout.getCharacterBox(TextPosition(offset: 34)); + final upstreamPositionBox = textLayout.getCharacterBox(const TextPosition(offset: 27)); + final desiredPositionBox = textLayout.getCharacterBox(const TextPosition(offset: 34)); final gesture = await tester.dragUpstreamMobileHandleByDistanceInSuperTextField( Offset(desiredPositionBox!.left - upstreamPositionBox!.left, 0.0), ); diff --git a/super_editor/test/super_textfield/attributed_text_editing_controller_test.dart b/super_editor/test/super_textfield/attributed_text_editing_controller_test.dart index f9b2209888..c97094e197 100644 --- a/super_editor/test/super_textfield/attributed_text_editing_controller_test.dart +++ b/super_editor/test/super_textfield/attributed_text_editing_controller_test.dart @@ -144,7 +144,7 @@ void main() { ..insertAtCaret(text: 'l') ..insertAtCaret(text: 'd'); - expect(controller.text.text, equals('Hello World')); + expect(controller.text.toPlainText(), equals('Hello World')); ExpectedSpans([ '______bbbbb', ]).expectSpans(controller.text.spans); @@ -165,7 +165,7 @@ void main() { ..selection = const TextSelection.collapsed(offset: 8) ..insertAtCaret(text: 'b'); - expect(controller.text.text, equals('before [b] after')); + expect(controller.text.toPlainText(), equals('before [b] after')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 9))); ExpectedSpans([ '_______bbb______', @@ -187,7 +187,7 @@ void main() { ..selection = const TextSelection.collapsed(offset: 8) ..insertAtCaret(text: 'hello'); - expect(controller.text.text, equals('before [hello] after')); + expect(controller.text.toPlainText(), equals('before [hello] after')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 13))); ExpectedSpans([ '_______bbbbbbb______', @@ -210,7 +210,7 @@ void main() { ..clearComposingAttributions() ..insertAtCaret(text: 'b'); - expect(controller.text.text, equals('before [b] after')); + expect(controller.text.toPlainText(), equals('before [b] after')); ExpectedSpans([ '_______b_b______', ]).expectSpans(controller.text.spans); @@ -246,7 +246,7 @@ void main() { ..selection = const TextSelection.collapsed(offset: 0) ..deletePreviousCharacter(); - expect(controller.text.text, equals('some text')); + expect(controller.text.toPlainText(), equals('some text')); }); test('deletes first character in text', () { @@ -258,7 +258,7 @@ void main() { ..selection = const TextSelection.collapsed(offset: 1) ..deletePreviousCharacter(); - expect(controller.text.text, equals('ome text')); + expect(controller.text.toPlainText(), equals('ome text')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 0))); }); @@ -271,7 +271,7 @@ void main() { ..selection = const TextSelection.collapsed(offset: 9) ..deleteNextCharacter(); - expect(controller.text.text, equals('some text')); + expect(controller.text.toPlainText(), equals('some text')); }); test('deletes last character in text', () { @@ -283,7 +283,7 @@ void main() { ..selection = const TextSelection.collapsed(offset: 8) ..deleteNextCharacter(); - expect(controller.text.text, equals('some tex')); + expect(controller.text.toPlainText(), equals('some tex')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 8))); }); }); @@ -294,7 +294,7 @@ void main() { selection: const TextSelection.collapsed(offset: 0), )..insertAtCaret(text: 'newtext'); - expect(controller.text.text, equals('newtext')); + expect(controller.text.toPlainText(), equals('newtext')); }); test('into empty text with caret', () { @@ -303,7 +303,7 @@ void main() { ); controller.insertAtCaret(text: 'newtext'); - expect(controller.text.text, equals('newtext')); + expect(controller.text.toPlainText(), equals('newtext')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 7))); }); @@ -314,7 +314,7 @@ void main() { ); controller.insertAtCaret(text: 'newtext'); - expect(controller.text.text, equals('newtext:existing text')); + expect(controller.text.toPlainText(), equals('newtext:existing text')); }); test('into start of existing text and pushes caret back', () { @@ -324,7 +324,7 @@ void main() { ); controller.insertAtCaret(text: 'newtext'); - expect(controller.text.text, equals('newtext:existing text')); + expect(controller.text.toPlainText(), equals('newtext:existing text')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 7))); }); @@ -338,7 +338,7 @@ void main() { ); controller.insert(newText: AttributedText('newtext'), insertIndex: 0); - expect(controller.text.text, equals('newtext:existing text')); + expect(controller.text.toPlainText(), equals('newtext:existing text')); expect( controller.selection, equals( @@ -360,7 +360,7 @@ void main() { ); controller.insert(newText: AttributedText('newtext'), insertIndex: 0); - expect(controller.text.text, equals('newtext:existing text')); + expect(controller.text.toPlainText(), equals('newtext:existing text')); expect( controller.selection, equals( @@ -379,7 +379,7 @@ void main() { ); controller.insertAtCaret(text: 'newtext'); - expect(controller.text.text, equals('existing text:newtext')); + expect(controller.text.toPlainText(), equals('existing text:newtext')); }); test('into end of existing text with caret before inserted text', () { @@ -389,7 +389,7 @@ void main() { ); controller.insertAtCaret(text: 'newtext'); - expect(controller.text.text, equals('existing text:newtext')); + expect(controller.text.toPlainText(), equals('existing text:newtext')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 21))); }); @@ -400,7 +400,7 @@ void main() { ); controller.insert(newText: AttributedText('newtext'), insertIndex: 14); - expect(controller.text.text, equals('existing text:newtext')); + expect(controller.text.toPlainText(), equals('existing text:newtext')); expect( controller.selection, equals( @@ -421,7 +421,7 @@ void main() { ); controller.insertAtCaret(text: 'newtext'); - expect(controller.text.text, equals('[newtext]:existing text')); + expect(controller.text.toPlainText(), equals('[newtext]:existing text')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 8))); }); @@ -437,7 +437,7 @@ void main() { ); controller.insert(newText: AttributedText('newtext'), insertIndex: 1); - expect(controller.text.text, equals('[newtext]:existing text')); + expect(controller.text.toPlainText(), equals('[newtext]:existing text')); expect( controller.selection, equals( @@ -461,7 +461,7 @@ void main() { ); controller.insert(newText: AttributedText('newtext'), insertIndex: 1); - expect(controller.text.text, equals('[newtext]:existing text')); + expect(controller.text.toPlainText(), equals('[newtext]:existing text')); expect( controller.selection, equals( @@ -488,7 +488,7 @@ void main() { ); controller.insertAtCaret(text: 'newtext'); - expect(controller.text.text, equals('newtext[]:unstyled text')); + expect(controller.text.toPlainText(), equals('newtext[]:unstyled text')); ExpectedSpans([ '_______bb______________', ]).expectSpans(controller.text.spans); @@ -509,7 +509,7 @@ void main() { ); controller.insertAtCaret(text: 'newtext'); - expect(controller.text.text, equals('[newtext]:unstyled text')); + expect(controller.text.toPlainText(), equals('[newtext]:unstyled text')); ExpectedSpans([ 'bbbbbbbbb______________', ]).expectSpans(controller.text.spans); @@ -530,7 +530,7 @@ void main() { ); controller.insertAtCaret(text: 'newtext'); - expect(controller.text.text, equals('[newtext]:unstyled text')); + expect(controller.text.toPlainText(), equals('[newtext]:unstyled text')); ExpectedSpans([ 'bbbbbbbb_______________', ]).expectSpans(controller.text.spans); @@ -545,7 +545,7 @@ void main() { ); controller.replace(newText: AttributedText('newtext'), from: 0, to: 0); - expect(controller.text.text, equals('newtext:existing text')); + expect(controller.text.toPlainText(), equals('newtext:existing text')); }); test('empty text with new text at beginning with selection', () { @@ -558,7 +558,7 @@ void main() { ); controller.replace(newText: AttributedText('newtext'), from: 0, to: 0); - expect(controller.text.text, equals('newtext:existing text')); + expect(controller.text.toPlainText(), equals('newtext:existing text')); expect( controller.selection, const TextSelection( @@ -575,7 +575,7 @@ void main() { ); controller.replace(newText: AttributedText(''), from: 0, to: 8); - expect(controller.text.text, equals(':existing text')); + expect(controller.text.toPlainText(), equals(':existing text')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 0))); }); @@ -586,7 +586,7 @@ void main() { ); controller.replace(newText: AttributedText('newtext'), from: 0, to: 9); - expect(controller.text.text, equals('newtext:existing text')); + expect(controller.text.toPlainText(), equals('newtext:existing text')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 7))); }); @@ -597,7 +597,7 @@ void main() { ); controller.replace(newText: AttributedText('newtext'), from: 14, to: 23); - expect(controller.text.text, equals('existing text:newtext')); + expect(controller.text.toPlainText(), equals('existing text:newtext')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 21))); }); @@ -608,7 +608,7 @@ void main() { ); controller.replace(newText: AttributedText('newtext'), from: 1, to: 10); - expect(controller.text.text, equals('[newtext]')); + expect(controller.text.toPlainText(), equals('[newtext]')); }); test('in middle of styled text with new styled text', () { @@ -634,7 +634,7 @@ void main() { ); controller.replace(newText: newText, from: 1, to: 10); - expect(controller.text.text, equals('[newtext]')); + expect(controller.text.toPlainText(), equals('[newtext]')); ExpectedSpans([ 'biiiiiiib', @@ -649,7 +649,7 @@ void main() { ); controller.delete(from: 0, to: 8); - expect(controller.text.text, equals(':existing text')); + expect(controller.text.toPlainText(), equals(':existing text')); }); test('from beginning with caret', () { @@ -659,7 +659,7 @@ void main() { ); controller.delete(from: 0, to: 8); - expect(controller.text.text, equals(':existing text')); + expect(controller.text.toPlainText(), equals(':existing text')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 0))); }); @@ -673,7 +673,7 @@ void main() { ); controller.delete(from: 0, to: 8); - expect(controller.text.text, equals(':existing text')); + expect(controller.text.toPlainText(), equals(':existing text')); expect( controller.selection, equals( @@ -691,7 +691,7 @@ void main() { ); controller.delete(from: 14, to: 22); - expect(controller.text.text, equals('existing text:')); + expect(controller.text.toPlainText(), equals('existing text:')); }); test('from end with caret', () { @@ -702,7 +702,7 @@ void main() { ); controller.delete(from: 14, to: 22); - expect(controller.text.text, equals('existing text:')); + expect(controller.text.toPlainText(), equals('existing text:')); expect( controller.selection, equals( @@ -720,7 +720,7 @@ void main() { ); controller.delete(from: 14, to: 22); - expect(controller.text.text, equals('existing text:')); + expect(controller.text.toPlainText(), equals('existing text:')); expect( controller.selection, equals( @@ -738,7 +738,7 @@ void main() { ); controller.delete(from: 1, to: 9); - expect(controller.text.text, equals('[]')); + expect(controller.text.toPlainText(), equals('[]')); }); test('from middle with crosscutting selection at beginning', () { @@ -751,7 +751,7 @@ void main() { ); controller.delete(from: 1, to: 9); - expect(controller.text.text, equals('[]')); + expect(controller.text.toPlainText(), equals('[]')); expect( controller.selection, equals( @@ -773,7 +773,7 @@ void main() { ); controller.delete(from: 1, to: 9); - expect(controller.text.text, equals('[]')); + expect(controller.text.toPlainText(), equals('[]')); expect( controller.selection, equals(const TextSelection.collapsed(offset: 1)), @@ -790,7 +790,7 @@ void main() { ); controller.delete(from: 1, to: 9); - expect(controller.text.text, equals('[]')); + expect(controller.text.toPlainText(), equals('[]')); expect( controller.selection, equals( @@ -820,7 +820,7 @@ void main() { controller.clearTextAndSelection(); - expect(controller.text.text, isEmpty); + expect(controller.text.toPlainText(), isEmpty); expect( controller.selection, const TextSelection.collapsed(offset: -1), @@ -845,7 +845,7 @@ void main() { // ignore: deprecated_member_use_from_same_package controller.clear(); - expect(controller.text.text, isEmpty); + expect(controller.text.toPlainText(), isEmpty); expect( controller.selection, const TextSelection.collapsed(offset: -1), @@ -871,7 +871,7 @@ void main() { controller.clearText(); - expect(controller.text.text, isEmpty); + expect(controller.text.toPlainText(), isEmpty); expect( controller.selection, const TextSelection.collapsed(offset: 0), diff --git a/super_editor/test/super_textfield/ime_attributed_text_editing_controller_test.dart b/super_editor/test/super_textfield/ime_attributed_text_editing_controller_test.dart index f911ca65ae..cd8c1c6706 100644 --- a/super_editor/test/super_textfield/ime_attributed_text_editing_controller_test.dart +++ b/super_editor/test/super_textfield/ime_attributed_text_editing_controller_test.dart @@ -116,7 +116,7 @@ void main() { ) ]); - expect(controller.text.text, equals('Hello World')); + expect(controller.text.toPlainText(), equals('Hello World')); ExpectedSpans([ '______bbbbb', ]).expectSpans(controller.text.spans); @@ -203,7 +203,7 @@ void main() { ) ]); - expect(controller.text.text, equals('before [b] after')); + expect(controller.text.toPlainText(), equals('before [b] after')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 9))); ExpectedSpans([ '_______bbb______', @@ -235,7 +235,7 @@ void main() { ) ]); - expect(controller.text.text, equals('before [hello] after')); + expect(controller.text.toPlainText(), equals('before [hello] after')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 13))); ExpectedSpans([ '_______bbbbbbb______', @@ -268,7 +268,7 @@ void main() { ) ]); - expect(controller.text.text, equals('before [b] after')); + expect(controller.text.toPlainText(), equals('before [b] after')); ExpectedSpans([ '_______b_b______', ]).expectSpans(controller.text.spans); @@ -330,7 +330,7 @@ void main() { ), ]); - expect(controller.text.text, equals('[b]')); + expect(controller.text.toPlainText(), equals('[b]')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 2))); }); @@ -353,7 +353,7 @@ void main() { ), ]); - expect(controller.text.text, equals('[new]')); + expect(controller.text.toPlainText(), equals('[new]')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 4))); }); @@ -375,7 +375,7 @@ void main() { ) ]); - expect(controller.text.text, equals('ome text')); + expect(controller.text.toPlainText(), equals('ome text')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 0))); }); @@ -397,7 +397,7 @@ void main() { ) ]); - expect(controller.text.text, equals('some tex')); + expect(controller.text.toPlainText(), equals('some tex')); expect(controller.selection, equals(const TextSelection.collapsed(offset: 8))); }); }); diff --git a/super_editor/test/super_textfield/super_desktop_textfield_keyboard_test.dart b/super_editor/test/super_textfield/super_desktop_textfield_keyboard_test.dart index d6f993aae1..3e1c5f02e6 100644 --- a/super_editor/test/super_textfield/super_desktop_textfield_keyboard_test.dart +++ b/super_editor/test/super_textfield/super_desktop_textfield_keyboard_test.dart @@ -18,7 +18,7 @@ void main() { await tester.typeKeyboardText("f"); - expect(SuperTextFieldInspector.findText().text, "f"); + expect(SuperTextFieldInspector.findText().toPlainText(), "f"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 1)); }); @@ -33,7 +33,7 @@ void main() { await tester.typeKeyboardText("f"); - expect(SuperTextFieldInspector.findText().text, "-->f<--"); + expect(SuperTextFieldInspector.findText().toPlainText(), "-->f<--"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 4)); }); @@ -48,7 +48,7 @@ void main() { await tester.typeKeyboardText("f"); - expect(SuperTextFieldInspector.findText().text, "-->f"); + expect(SuperTextFieldInspector.findText().toPlainText(), "-->f"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 4)); }); @@ -63,7 +63,7 @@ void main() { await tester.typeKeyboardText("f"); - expect(SuperTextFieldInspector.findText().text, "-->f<--"); + expect(SuperTextFieldInspector.findText().toPlainText(), "-->f<--"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 4)); }); }); @@ -80,7 +80,7 @@ void main() { await tester.pressEnter(); - expect(SuperTextFieldInspector.findText().text, "this is \nsome text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this is \nsome text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 9)); }); @@ -95,7 +95,7 @@ void main() { await tester.pressEnter(); - expect(SuperTextFieldInspector.findText().text, "\nthis is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "\nthis is some text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 1)); }); @@ -110,7 +110,7 @@ void main() { await tester.pressEnter(); - expect(SuperTextFieldInspector.findText().text, "this is some text\n"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this is some text\n"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 18)); }); }); @@ -503,7 +503,7 @@ void main() { await tester.pressBackspace(); - expect(SuperTextFieldInspector.findText().text, ""); + expect(SuperTextFieldInspector.findText().toPlainText(), ""); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 0)); }); @@ -518,7 +518,7 @@ void main() { await tester.pressBackspace(); - expect(SuperTextFieldInspector.findText().text, "tis is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "tis is some text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 1)); }); @@ -540,7 +540,8 @@ void main() { await tester.pressBackspace(); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 0)); - expect(SuperTextFieldInspector.findText().text, "is long enough to be multiline in the available space"); + expect(SuperTextFieldInspector.findText().toPlainText(), + "is long enough to be multiline in the available space"); }); testWidgetsOnDesktop('DELETE does nothing when text is empty', (tester) async { @@ -554,7 +555,7 @@ void main() { await tester.pressDelete(); - expect(SuperTextFieldInspector.findText().text, ""); + expect(SuperTextFieldInspector.findText().toPlainText(), ""); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 0)); }); @@ -569,7 +570,7 @@ void main() { await tester.pressDelete(); - expect(SuperTextFieldInspector.findText().text, "this is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this is some text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 17)); }); @@ -584,7 +585,7 @@ void main() { await tester.pressDelete(); - expect(SuperTextFieldInspector.findText().text, "ths is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "ths is some text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 2)); }); @@ -601,7 +602,7 @@ void main() { await tester.pressDelete(); - expect(SuperTextFieldInspector.findText().text, "this is text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this is text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 8)); }); }); @@ -699,7 +700,7 @@ void main() { await tester.pressCmdV(); // Ensure that the clipboard text was pasted into the SuperTextField - expect(SuperTextFieldInspector.findText().text, 'Pasted content: this is clipboard text'); + expect(SuperTextFieldInspector.findText().toPlainText(), 'Pasted content: this is clipboard text'); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 38)); }); @@ -715,7 +716,7 @@ void main() { await tester.pressCtlV(); // Ensure that the clipboard text was NOT pasted into the SuperTextField. - expect(SuperTextFieldInspector.findText().text, 'Pasted content: '); + expect(SuperTextFieldInspector.findText().toPlainText(), 'Pasted content: '); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 16)); }); @@ -731,7 +732,7 @@ void main() { await tester.sendKeyEvent(LogicalKeyboardKey.keyV); // Ensure that the clipboard text was NOT pasted into the SuperTextField. - expect(SuperTextFieldInspector.findText().text, 'Pasted content: v'); + expect(SuperTextFieldInspector.findText().toPlainText(), 'Pasted content: v'); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 17)); }); @@ -747,7 +748,7 @@ void main() { await tester.sendKeyEvent(LogicalKeyboardKey.metaLeft); // Ensure that the clipboard text was NOT pasted into the SuperTextField. - expect(SuperTextFieldInspector.findText().text, 'Pasted content: '); + expect(SuperTextFieldInspector.findText().toPlainText(), 'Pasted content: '); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 16)); }); }); @@ -1041,7 +1042,7 @@ void main() { await tester.pressAltBackspace(); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 0)); - expect(SuperTextFieldInspector.findText().text, " is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), " is some text"); }); testWidgetsOnMac('ALT + BACKSPACE deletes until beginning of word', (tester) async { @@ -1056,7 +1057,7 @@ void main() { await tester.pressAltBackspace(); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 0)); - expect(SuperTextFieldInspector.findText().text, "is is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "is is some text"); }); testWidgetsOnMac('ALT + BACKSPACE deletes previous word with caret after whitespace', (tester) async { @@ -1071,7 +1072,7 @@ void main() { await tester.pressAltBackspace(); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 5)); - expect(SuperTextFieldInspector.findText().text, "this some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this some text"); }); testWidgetsOnMac('ALT + BACKSPACE deletes expanded selection', (tester) async { @@ -1088,7 +1089,8 @@ void main() { // TODO: When #549 is fixed, I expect this offset to change to 0, and the first // character of the expected text to be deleted. expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 1)); - expect(SuperTextFieldInspector.findText().text, "tis long enough to be multiline in the available space"); + expect(SuperTextFieldInspector.findText().toPlainText(), + "tis long enough to be multiline in the available space"); }); testWidgetsOnMac('CMD + BACKSPACE deletes partial line before caret (flowed multiline)', (tester) async { @@ -1103,7 +1105,8 @@ void main() { await tester.pressCmdBackspace(); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 18)); - expect(SuperTextFieldInspector.findText().text, "this text is long be multiline in the available space"); + expect(SuperTextFieldInspector.findText().toPlainText(), + "this text is long be multiline in the available space"); }); // TODO: When #549 is fixed, un-skip this test. The problem is that we need @@ -1121,7 +1124,8 @@ void main() { await tester.pressCmdBackspace(); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 18)); - expect(SuperTextFieldInspector.findText().text, "this text is long multiline in the available space"); + expect( + SuperTextFieldInspector.findText().toPlainText(), "this text is long multiline in the available space"); }, skip: true); testWidgetsOnMac('CMD + BACKSPACE deletes partial line before caret (explicit newlines)', (tester) async { @@ -1135,7 +1139,7 @@ void main() { await tester.pressCmdBackspace(); - expect(SuperTextFieldInspector.findText().text, "This is line 1\nline 2\nThis is line 3"); + expect(SuperTextFieldInspector.findText().toPlainText(), "This is line 1\nline 2\nThis is line 3"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 15)); }); @@ -1150,7 +1154,7 @@ void main() { await tester.pressCmdBackspace(); - expect(SuperTextFieldInspector.findText().text, "This is line 1\n\nThis is line 3"); + expect(SuperTextFieldInspector.findText().toPlainText(), "This is line 1\n\nThis is line 3"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 15)); }); @@ -1172,7 +1176,8 @@ void main() { await tester.pressCmdBackspace(); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 0)); - expect(SuperTextFieldInspector.findText().text, "is long enough to be multiline in the available space"); + expect(SuperTextFieldInspector.findText().toPlainText(), + "is long enough to be multiline in the available space"); }); testWidgetsOnMac('CMD + BACKSPACE does nothing when selection is at start of line', (tester) async { @@ -1187,7 +1192,7 @@ void main() { await tester.pressCmdBackspace(); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 18)); - expect(SuperTextFieldInspector.findText().text, _multilineLayoutText); + expect(SuperTextFieldInspector.findText().toPlainText(), _multilineLayoutText); }); }); @@ -1414,7 +1419,7 @@ void main() { await tester.pressCtlV(); // Ensure that the clipboard text was pasted into the SuperTextField - expect(SuperTextFieldInspector.findText().text, 'Pasted content: this is clipboard text'); + expect(SuperTextFieldInspector.findText().toPlainText(), 'Pasted content: this is clipboard text'); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 38)); }); @@ -1430,7 +1435,7 @@ void main() { await tester.pressCmdV(); // Ensure that the clipboard text was NOT pasted into the SuperTextField. - expect(SuperTextFieldInspector.findText().text, 'Pasted content: '); + expect(SuperTextFieldInspector.findText().toPlainText(), 'Pasted content: '); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 16)); }); @@ -1446,7 +1451,7 @@ void main() { await tester.sendKeyEvent(LogicalKeyboardKey.keyV); // Ensure that the clipboard text was NOT pasted into the SuperTextField. - expect(SuperTextFieldInspector.findText().text, 'Pasted content: v'); + expect(SuperTextFieldInspector.findText().toPlainText(), 'Pasted content: v'); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 17)); }); @@ -1462,7 +1467,7 @@ void main() { await tester.sendKeyEvent(LogicalKeyboardKey.controlLeft); // Ensure that the clipboard text was NOT pasted into the SuperTextField. - expect(SuperTextFieldInspector.findText().text, 'Pasted content: '); + expect(SuperTextFieldInspector.findText().toPlainText(), 'Pasted content: '); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 16)); }); }); @@ -1689,7 +1694,7 @@ void main() { await tester.pressCtlBackspace(); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 0)); - expect(SuperTextFieldInspector.findText().text, " is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), " is some text"); }); testWidgetsOnWindowsAndLinux('CTL + BACKSPACE deletes until beginning of word', (tester) async { @@ -1704,7 +1709,7 @@ void main() { await tester.pressCtlBackspace(); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 0)); - expect(SuperTextFieldInspector.findText().text, "is is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "is is some text"); }); testWidgetsOnWindowsAndLinux('CTL + BACKSPACE deletes previous word with caret after whitespace', @@ -1720,7 +1725,7 @@ void main() { await tester.pressCtlBackspace(); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 5)); - expect(SuperTextFieldInspector.findText().text, "this some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this some text"); }); testWidgetsOnWindowsAndLinux('CTL + BACKSPACE deletes expanded selection', (tester) async { @@ -1737,7 +1742,8 @@ void main() { // TODO: When #549 is fixed, I expect the selection offset to change to 0, and the // first letter of the final text to be deleted. expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 1)); - expect(SuperTextFieldInspector.findText().text, "tis long enough to be multiline in the available space"); + expect(SuperTextFieldInspector.findText().toPlainText(), + "tis long enough to be multiline in the available space"); }); }); diff --git a/super_editor/test/super_textfield/super_textfield_emoji_test.dart b/super_editor/test/super_textfield/super_textfield_emoji_test.dart index d5cf709dce..9a4cd3e4ac 100644 --- a/super_editor/test/super_textfield/super_textfield_emoji_test.dart +++ b/super_editor/test/super_textfield/super_textfield_emoji_test.dart @@ -453,13 +453,13 @@ void main() { ); // Place the caret at the end of the text field. - await tester.placeCaretInSuperTextField(SuperTextFieldInspector.findText().text.length); + await tester.placeCaretInSuperTextField(SuperTextFieldInspector.findText().length); // Press backspace to delete the previous character. await tester.pressBackspace(); // Ensure the emoji is deleted. - expect(SuperTextFieldInspector.findText().text, 'This is a text with an emoji '); + expect(SuperTextFieldInspector.findText().toPlainText(), 'This is a text with an emoji '); }); }); }); diff --git a/super_editor/test/super_textfield/super_textfield_gesture_scrolling_test.dart b/super_editor/test/super_textfield/super_textfield_gesture_scrolling_test.dart index b6fdd598a3..265cdc8110 100644 --- a/super_editor/test/super_textfield/super_textfield_gesture_scrolling_test.dart +++ b/super_editor/test/super_textfield/super_textfield_gesture_scrolling_test.dart @@ -251,7 +251,7 @@ void main() { }); testWidgetsOnMobile("multi-line is vertically scrollable when text spans more lines than maxLines", (tester) async { - final initialText = "The first line of text in the field\n" + const initialText = "The first line of text in the field\n" "The second line of text in the field\n" "The third line of text in the field"; final controller = AttributedTextEditingController( @@ -292,8 +292,9 @@ void main() { expect(textTop, moreOrLessEquals(viewportTop)); }); - testWidgetsOnDesktop("multi-line is vertically scrollable when text spans more lines than maxLines", (tester) async { - final initialText = "The first line of text in the field\n" + testWidgetsOnDesktop("multi-line is vertically scrollable when text spans more lines than maxLines", + (tester) async { + const initialText = "The first line of text in the field\n" "The second line of text in the field\n" "The third line of text in the field"; final controller = AttributedTextEditingController( diff --git a/super_editor/test/super_textfield/super_textfield_ime_test.dart b/super_editor/test/super_textfield/super_textfield_ime_test.dart index 71a0f0721d..9b3191bb45 100644 --- a/super_editor/test/super_textfield/super_textfield_ime_test.dart +++ b/super_editor/test/super_textfield/super_textfield_ime_test.dart @@ -19,7 +19,7 @@ void main() { await tester.ime.typeText("f", getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "f"); + expect(SuperTextFieldInspector.findText().toPlainText(), "f"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 1)); }); @@ -34,7 +34,7 @@ void main() { await tester.ime.typeText("f", getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "-->f<--"); + expect(SuperTextFieldInspector.findText().toPlainText(), "-->f<--"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 4)); }); @@ -49,7 +49,7 @@ void main() { await tester.ime.typeText("f", getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "-->f"); + expect(SuperTextFieldInspector.findText().toPlainText(), "-->f"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 4)); }); @@ -69,7 +69,7 @@ void main() { await tester.ime.typeText("f", getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "-->f<--"); + expect(SuperTextFieldInspector.findText().toPlainText(), "-->f<--"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 4)); }); @@ -137,7 +137,7 @@ void main() { await tester.ime.typeText('a', getter: imeClientGetter); // Ensure that after the insertion our value is also "a". - expect(SuperTextFieldInspector.findText().text, 'a'); + expect(SuperTextFieldInspector.findText().toPlainText(), 'a'); // Ensure we don't send the value back to the OS. // @@ -241,7 +241,7 @@ void main() { await tester.pressEnterAdaptive(getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "this is \nsome text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this is \nsome text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 9)); }); @@ -256,7 +256,7 @@ void main() { await tester.pressEnterAdaptive(getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "\nthis is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "\nthis is some text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 1)); }); @@ -271,7 +271,7 @@ void main() { await tester.pressEnterAdaptive(getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "this is some text\n"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this is some text\n"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 18)); }); @@ -287,7 +287,7 @@ void main() { await tester.pressNumpadEnterAdaptive(getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "this is \nsome text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this is \nsome text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 9)); }); @@ -302,7 +302,7 @@ void main() { await tester.pressNumpadEnterAdaptive(getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "this is \nsome text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this is \nsome text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 9)); }); @@ -318,7 +318,7 @@ void main() { await tester.pressNumpadEnterAdaptive(getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "\nthis is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "\nthis is some text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 1)); }); @@ -333,7 +333,7 @@ void main() { await tester.pressNumpadEnterAdaptive(getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "\nthis is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "\nthis is some text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 1)); }); @@ -349,7 +349,7 @@ void main() { await tester.pressNumpadEnterAdaptive(getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "this is some text\n"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this is some text\n"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 18)); }); @@ -364,7 +364,7 @@ void main() { await tester.pressNumpadEnterAdaptive(getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "this is some text\n"); + expect(SuperTextFieldInspector.findText().toPlainText(), "this is some text\n"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 18)); }); }); @@ -381,7 +381,7 @@ void main() { await tester.ime.backspace(getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, ""); + expect(SuperTextFieldInspector.findText().toPlainText(), ""); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 0)); }); @@ -396,7 +396,7 @@ void main() { await tester.ime.backspace(getter: imeClientGetter); - expect(SuperTextFieldInspector.findText().text, "tis is some text"); + expect(SuperTextFieldInspector.findText().toPlainText(), "tis is some text"); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 1)); }); @@ -417,7 +417,8 @@ void main() { await tester.ime.backspace(getter: imeClientGetter); expect(SuperTextFieldInspector.findSelection(), const TextSelection.collapsed(offset: 0)); - expect(SuperTextFieldInspector.findText().text, "is long enough to be multiline in the available space"); + expect(SuperTextFieldInspector.findText().toPlainText(), + "is long enough to be multiline in the available space"); }); }); @@ -654,7 +655,7 @@ void main() { await tester.pump(); // Ensure the correction was ignored. - expect(SuperTextFieldInspector.findText().text, 'run tom'); + expect(SuperTextFieldInspector.findText().toPlainText(), 'run tom'); }); }); }); @@ -831,7 +832,7 @@ void main() { await tester.pressBackspace(); // Ensure text is deleted - expect(controller.text.text, 'Thi is a text'); + expect(controller.text.toPlainText(), 'Thi is a text'); }); testWidgetsOnAndroid('handles BACKSPACE key event instead of deletion for a expanded selection (on Android)', @@ -856,7 +857,7 @@ void main() { await tester.pressBackspace(); // Ensure text is deleted - expect(controller.text.text, 'This is a'); + expect(controller.text.toPlainText(), 'This is a'); }); }); } @@ -977,8 +978,8 @@ class _ObscuringTextController extends AttributedTextEditingController { ); // Replace everything but the last char with *. - final updatedText = (''.padLeft(textAfterInsertion.text.length - 1, '*')) + - textAfterInsertion.text.substring(textAfterInsertion.text.length - 1); + final updatedText = (''.padLeft(textAfterInsertion.length - 1, '*')) + + textAfterInsertion.toPlainText().substring(textAfterInsertion.length - 1); final updatedSelection = _moveSelectionForInsertion( selection: selection, diff --git a/super_editor/test/super_textfield/type_into_super_textfield_test.dart b/super_editor/test/super_textfield/type_into_super_textfield_test.dart index d222aa30df..fac40ee433 100644 --- a/super_editor/test/super_textfield/type_into_super_textfield_test.dart +++ b/super_editor/test/super_textfield/type_into_super_textfield_test.dart @@ -17,7 +17,7 @@ void main() { await tester.pumpAndSettle(); await tester.typeKeyboardText("Hello, World!"); - expect(SuperTextFieldInspector.findText().text, "Hello, World!"); + expect(SuperTextFieldInspector.findText().toPlainText(), "Hello, World!"); }); testWidgets("symbol characters", (tester) async { @@ -27,7 +27,7 @@ void main() { await tester.pumpAndSettle(); await tester.typeKeyboardText("@"); - expect(SuperTextFieldInspector.findText().text, "@"); + expect(SuperTextFieldInspector.findText().toPlainText(), "@"); }); testWidgets("in middle of existing text", (tester) async { @@ -41,7 +41,7 @@ void main() { await tester.pumpAndSettle(); await tester.typeKeyboardText("new "); - expect(SuperTextFieldInspector.findText().text, "hello new world"); + expect(SuperTextFieldInspector.findText().toPlainText(), "hello new world"); }); testWidgets("doesn't support Android", (tester) async { diff --git a/super_editor/test_goldens/editor/components/list_items_test.dart b/super_editor/test_goldens/editor/components/list_items_test.dart index 9c22c4df42..37915dd415 100644 --- a/super_editor/test_goldens/editor/components/list_items_test.dart +++ b/super_editor/test_goldens/editor/components/list_items_test.dart @@ -86,9 +86,9 @@ Future main() async { .useStylesheet(_createStylesheet()) .withAddedComponents( [ - _ListItemWithCustomStyleBuilder( + const _ListItemWithCustomStyleBuilder( dotStyle: ListItemDotStyle( - size: const Size(14, 14), + size: Size(14, 14), ), ), ], @@ -125,7 +125,7 @@ Future main() async { .useStylesheet(_createStylesheet()) .withAddedComponents( [ - _ListItemWithCustomStyleBuilder( + const _ListItemWithCustomStyleBuilder( dotStyle: ListItemDotStyle( shape: BoxShape.rectangle, ), @@ -164,7 +164,7 @@ Future main() async { .useStylesheet(_createStylesheet()) .withAddedComponents( [ - _ListItemWithCustomStyleBuilder( + const _ListItemWithCustomStyleBuilder( dotStyle: ListItemDotStyle( color: Colors.red, ), @@ -404,7 +404,7 @@ class _ListItemWithCustomStyleBuilder implements ComponentBuilder { // Use the default component builder to create the view model, because we only want // to customize the style. - final viewModel = ListItemComponentBuilder().createViewModel(document, node); + final viewModel = const ListItemComponentBuilder().createViewModel(document, node); if (viewModel is UnorderedListItemComponentViewModel && dotStyle != null) { viewModel.dotStyle = dotStyle!; From b941855bc2c1dd199f2f08cca21fd00661b5f229 Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Mon, 9 Dec 2024 22:17:46 -0800 Subject: [PATCH 2/6] Reverted a file that didn't need to change --- .../example/lib/demos/example_editor/_example_document.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/super_editor/example/lib/demos/example_editor/_example_document.dart b/super_editor/example/lib/demos/example_editor/_example_document.dart index 4e0ca9eda2..ca60f9b887 100644 --- a/super_editor/example/lib/demos/example_editor/_example_document.dart +++ b/super_editor/example/lib/demos/example_editor/_example_document.dart @@ -1,6 +1,5 @@ import 'package:flutter/rendering.dart'; import 'package:super_editor/super_editor.dart'; -import 'package:super_text_layout/super_text_layout.dart'; MutableDocument createInitialDocument() { return MutableDocument( From 2bbe6ee3856faa7f82824d0a80820ad4881700f3 Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Mon, 9 Dec 2024 23:02:45 -0800 Subject: [PATCH 3/6] PR cleanup --- .../demos/mobile_chat/demo_mobile_chat.dart | 1 - .../mobile_chat/giphy_keyboard_panel.dart | 1 - .../example/lib/main_inline_images.dart | 97 ------------------- .../document_ime_communication.dart | 4 - .../document_ime/ime_keyboard_control.dart | 3 - .../attributed_text_styles.dart | 31 +----- .../keyboard_panel_scaffold.dart | 8 -- 7 files changed, 3 insertions(+), 142 deletions(-) delete mode 100644 super_editor/example/lib/main_inline_images.dart diff --git a/super_editor/example/lib/demos/mobile_chat/demo_mobile_chat.dart b/super_editor/example/lib/demos/mobile_chat/demo_mobile_chat.dart index 4842132f6d..92c39c815d 100644 --- a/super_editor/example/lib/demos/mobile_chat/demo_mobile_chat.dart +++ b/super_editor/example/lib/demos/mobile_chat/demo_mobile_chat.dart @@ -65,7 +65,6 @@ class _MobileChatDemoState extends State { } void _togglePanel(_Panel panel) { - print("_togglePanel(): $panel"); setState(() { if (_visiblePanel == panel) { _visiblePanel = null; diff --git a/super_editor/example/lib/demos/mobile_chat/giphy_keyboard_panel.dart b/super_editor/example/lib/demos/mobile_chat/giphy_keyboard_panel.dart index dd05e5abb3..232f755f17 100644 --- a/super_editor/example/lib/demos/mobile_chat/giphy_keyboard_panel.dart +++ b/super_editor/example/lib/demos/mobile_chat/giphy_keyboard_panel.dart @@ -24,7 +24,6 @@ class _GiphyKeyboardPanelState extends State { return; } - // TODO: Replace this series of requests with a single TypeAttributedTextRequest widget.editor.execute([ if (!selection.isCollapsed) // DeleteContentRequest( diff --git a/super_editor/example/lib/main_inline_images.dart b/super_editor/example/lib/main_inline_images.dart deleted file mode 100644 index 2b70d2dabe..0000000000 --- a/super_editor/example/lib/main_inline_images.dart +++ /dev/null @@ -1,97 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:super_editor/super_editor.dart'; -import 'package:super_text_layout/super_text_layout.dart'; - -void main() { - runApp( - MaterialApp( - home: Scaffold( - body: _InlineImagePage(), - ), - ), - ); -} - -class _InlineImagePage extends StatefulWidget { - const _InlineImagePage(); - - @override - State<_InlineImagePage> createState() => _InlineImagePageState(); -} - -class _InlineImagePageState extends State<_InlineImagePage> { - late final InlineSpan _richText; - - @override - void initState() { - super.initState(); - _styleText(); - } - - void _styleText() { - final text = AttributedText( - "Hello, World!", - null, - { - 5: InlineNetworkImagePlaceholder( - "https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExb2gwd2J6bXp1dTRnbGg2MGcyMnF2c3lmNzBiNmo1eHV0MnkzMGZjbSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/F8rZBFylC2W1G/giphy.webp"), - 14: InlineNetworkImagePlaceholder( - "https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExbDdwM2gwcjNnbGVycXVic2VnamNia2swem1seHNiODk0aXdoenZmcCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/cKKXtt4bzsWuon0EJJ/giphy.webp"), - }, - ); - - _richText = text.computeInlineSpan( - context, - (attributions) { - return TextStyle( - color: Colors.black, - fontSize: 18, - ); - }, - [ - (context, textStyle, placeholder) { - if (placeholder is InlineNetworkImagePlaceholder) { - return Padding( - padding: const EdgeInsets.symmetric(horizontal: 4.0), - child: Container( - width: 24, - height: 24, - color: Colors.black, - child: Image.network(placeholder.url), - ), - ); - } - - return const SizedBox(); - }, - ], - ); - } - - @override - Widget build(BuildContext context) { - return Center( - child: ConstrainedBox( - constraints: BoxConstraints( - maxWidth: 800, - ), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - for (int i = 0; i <= 15; i += 1) // - Padding( - padding: const EdgeInsets.only(bottom: 4.0), - child: SuperTextWithSelection.single( - richText: _richText, - userSelection: UserSelection( - selection: TextSelection(baseOffset: 0, extentOffset: i), - ), - ), - ), - ], - ), - ), - ); - } -} diff --git a/super_editor/lib/src/default_editor/document_ime/document_ime_communication.dart b/super_editor/lib/src/default_editor/document_ime/document_ime_communication.dart index dd99c21f8f..d3572a7da9 100644 --- a/super_editor/lib/src/default_editor/document_ime/document_ime_communication.dart +++ b/super_editor/lib/src/default_editor/document_ime/document_ime_communication.dart @@ -258,7 +258,6 @@ class DocumentImeInputClient extends TextInputConnectionDecorator with TextInput return; } - print("Sending document to IME..."); _isSendingToIme = true; editorImeLog.fine("[DocumentImeInputClient] - Serializing and sending document and selection to IME"); editorImeLog.fine("[DocumentImeInputClient] - Selection: ${textDeltasDocumentEditor.selection.value}"); @@ -272,8 +271,6 @@ class DocumentImeInputClient extends TextInputConnectionDecorator with TextInput editorImeLog .fine("[DocumentImeInputClient] - Adding invisible characters?: ${imeSerialization.didPrependPlaceholder}"); TextEditingValue textEditingValue = imeSerialization.toTextEditingValue(); - print("IME text: '${textEditingValue.text}'"); - print("IME composing: ${textEditingValue.composing}"); editorImeLog.fine("[DocumentImeInputClient] - Sending IME serialization:"); editorImeLog.fine("[DocumentImeInputClient] - $textEditingValue"); @@ -281,7 +278,6 @@ class DocumentImeInputClient extends TextInputConnectionDecorator with TextInput editorImeLog.fine("[DocumentImeInputClient] - Done sending document to IME"); _isSendingToIme = false; - print("----- DONE SENDING TO IME -----"); } @override diff --git a/super_editor/lib/src/default_editor/document_ime/ime_keyboard_control.dart b/super_editor/lib/src/default_editor/document_ime/ime_keyboard_control.dart index 5e883bf701..eefed0c623 100644 --- a/super_editor/lib/src/default_editor/document_ime/ime_keyboard_control.dart +++ b/super_editor/lib/src/default_editor/document_ime/ime_keyboard_control.dart @@ -127,20 +127,17 @@ class SoftwareKeyboardController { /// Opens the software keyboard. void open() { assert(hasDelegate); - print("SoftwareKeyboardController: open()"); _delegate?.open(); } void hide() { assert(hasDelegate); - print("SoftwareKeyboardController: hide()"); _delegate?.hide(); } /// Closes the software keyboard. void close() { assert(hasDelegate); - print("SoftwareKeyboardController: close()"); _delegate?.close(); } } diff --git a/super_editor/lib/src/infrastructure/attributed_text_styles.dart b/super_editor/lib/src/infrastructure/attributed_text_styles.dart index b98b06347b..84241e5996 100644 --- a/super_editor/lib/src/infrastructure/attributed_text_styles.dart +++ b/super_editor/lib/src/infrastructure/attributed_text_styles.dart @@ -1,7 +1,4 @@ -import 'dart:math'; - import 'package:attributed_text/attributed_text.dart'; -import 'package:flutter/painting.dart'; import 'package:flutter/widgets.dart'; import 'package:super_editor/src/infrastructure/_logging.dart'; @@ -29,9 +26,6 @@ extension ComputeTextSpan on AttributedText { AttributionStyleBuilder styleBuilder, InlineWidgetBuilderChain inlineWidgetBuilderChain, ) { - // print(""); - // print(""); - // print("computeInlineSpan()"); if (isEmpty) { // There is no text and therefore no attributions. return TextSpan(text: '', style: styleBuilder({})); @@ -44,14 +38,7 @@ extension ComputeTextSpan on AttributedText { var span = collapsedSpans.first; int start = 0; - - // print("Text: '${toPlainText()}'"); - // print("Length: $length"); - // print("Span - start: ${span.start}, end: ${span.end}"); while (start < length) { - // print("Span count: ${collapsedSpans.length}"); - // print("Content start: $start"); - // print("Current span attributions: ${span.attributions}"); late int contentEnd; if (placeholders[start] != null) { // This section is a placeholder. @@ -73,7 +60,6 @@ extension ComputeTextSpan on AttributedText { child: inlineWidget, ), ); - // print("Adding placeholder: ${placeholders[start]} (at $start)"); } } else { // This section is text. The end of this text is either the @@ -86,7 +72,6 @@ extension ComputeTextSpan on AttributedText { } } - // print("Adding text span: '${substring(start, contentEnd)}'"); inlineSpans.add( TextSpan( text: substring(start, contentEnd), @@ -95,36 +80,23 @@ extension ComputeTextSpan on AttributedText { ); } - // print("Content end: $contentEnd, span end: ${span.end + 1}"); if (contentEnd == span.end + 1) { - // print("Content and span end at same place"); // The content and span end at the same place. start = contentEnd; } else if (contentEnd < span.end + 1) { - // print("Content ends before the span"); // The content ends before the span. start = contentEnd; } else { - // print("Span ends before the content"); // The span ends before the content. start = span.end + 1; } - // print("New start value: $start"); if (start > span.end && start < length) { spanIndex += 1; span = collapsedSpans[spanIndex]; } - // print("-------"); - // print(""); } - // print("Returning inline spans:"); - // for (final span in inlineSpans) { - // print(" - $span"); - // } - // print(""); - // print(""); return TextSpan( text: "", children: inlineSpans, @@ -174,6 +146,9 @@ typedef InlineWidgetBuilderChain = List; /// Builder that returns a [Widget] for a given [placeholder], or `null` /// if this builder doesn't know how to build the given [placeholder]. +/// +/// The given [textStyle] is the style applied to the text in the vicinity +/// of the placeholder. typedef InlineWidgetBuilder = Widget? Function( BuildContext context, TextStyle textStyle, diff --git a/super_editor/lib/src/infrastructure/keyboard_panel_scaffold.dart b/super_editor/lib/src/infrastructure/keyboard_panel_scaffold.dart index e305279c16..8c6479312f 100644 --- a/super_editor/lib/src/infrastructure/keyboard_panel_scaffold.dart +++ b/super_editor/lib/src/infrastructure/keyboard_panel_scaffold.dart @@ -381,7 +381,6 @@ class _KeyboardPanelScaffoldState extends State /// Updates our local cache of the current bottom window insets, which we assume reflects /// the current software keyboard height. void _updateKeyboardHeightForCurrentViewInsets() { - print("_updateKeyboardHeightForCurrentViewInsets()"); final newInsets = MediaQuery.viewInsetsOf(context); final newBottomInset = newInsets.bottom; final isKeyboardOpening = newBottomInset > _latestViewInsets.bottom; @@ -392,7 +391,6 @@ class _KeyboardPanelScaffoldState extends State _isKeyboardOpen = false; } else if (!_isKeyboardOpen && isKeyboardOpening) { // The keyboard went from closed to open. If there's an open panel, close it. - print("Keyboard went from closed to open :("); _isKeyboardOpen = true; widget.controller.hideKeyboardPanel(); } @@ -587,39 +585,33 @@ class KeyboardPanelController { /// Opens the keyboard panel if the keyboard is open, or opens the keyboard /// if the keyboard panel is open. void toggleSoftwareKeyboardWithPanel() { - print("toggleSoftwareKeyboardWithPanel()"); _delegate?.toggleSoftwareKeyboardWithPanel(); } /// Shows the software keyboard, if it's hidden. void showSoftwareKeyboard() { - print("showSoftwareKeyboard()"); _delegate?.showSoftwareKeyboard(); } /// Hides (doesn't close) the software keyboard, if it's open. void hideSoftwareKeyboard() { - print("hideSoftwareKeyboard()"); _delegate?.hideSoftwareKeyboard(); } /// Shows the keyboard panel, if it's closed, and hides (doesn't close) the /// software keyboard, if it's open. void showKeyboardPanel() { - print("showKeyboardPanel"); _delegate?.showKeyboardPanel(); } /// Hides the keyboard panel, if it's open. void hideKeyboardPanel() { - print("hideKeyboardPanel"); _delegate?.hideKeyboardPanel(); } /// Closes the software keyboard if it's open, or closes the keyboard panel if /// it's open, and fully closes the keyboard (IME) connection. void closeKeyboardAndPanel() { - print("closeKeyboardAndPanel()"); _delegate?.closeKeyboardAndPanel(); } } From f2d8d1e1e340d755ec7d29361c8ebbe2512e6c3c Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Mon, 9 Dec 2024 23:19:15 -0800 Subject: [PATCH 4/6] Update goldens because the height of selection boxes increased --- ...editor-ios-custom-handle-ball-diameter.png | Bin 31779 -> 31815 bytes .../super-editor-ios-custom-handle-width.png | Bin 31775 -> 31817 bytes .../super-editor_selection-color_custom.png | Bin 22723 -> 22350 bytes .../super-editor_selection-color_default.png | Bin 22700 -> 22317 bytes .../goldens/text-scaling-blockquote.png | Bin 55014 -> 55027 bytes .../editor/goldens/text-scaling-header.png | Bin 72485 -> 72465 bytes ...t-scaling-paragraph-expanded-selection.png | Bin 52111 -> 52106 bytes ...bile-selection_android_double-tap-text.png | Bin 22144 -> 22140 bytes ...e-selection_android_drag-base-upstream.png | Bin 23043 -> 23039 bytes ...lection_android_drag-extent-downstream.png | Bin 23157 -> 23157 bytes ...selection_android_drag-extent-upstream.png | Bin 21830 -> 21827 bytes ...mobile-selection_android_trip-tap-text.png | Bin 21848 -> 21828 bytes .../mobile-selection_ios_double-tap-text.png | Bin 22371 -> 22376 bytes ...obile-selection_ios_drag-base-upstream.png | Bin 23435 -> 23458 bytes ...e-selection_ios_drag-extent-downstream.png | Bin 23363 -> 23374 bytes ...ile-selection_ios_drag-extent-upstream.png | Bin 22501 -> 22502 bytes .../mobile-selection_ios_trip-tap-text.png | Bin 21915 -> 21946 bytes ...ereditor_android_expanded_handle_color.png | Bin 22773 -> 22773 bytes .../supereditor_ios_expanded_handle_color.png | Bin 23686 -> 23738 bytes ...region-showing-nothing_paragraph_linux.png | Bin 15750 -> 15737 bytes ...gion-showing-nothing_paragraph_windows.png | Bin 15750 -> 15737 bytes ...g-region-shows-nothing_list-item_linux.png | Bin 15454 -> 15440 bytes ...region-shows-nothing_list-item_windows.png | Bin 15454 -> 15440 bytes ...posing-region-shows-nothing_task_linux.png | Bin 16253 -> 16235 bytes ...sing-region-shows-nothing_task_windows.png | Bin 16253 -> 16235 bytes ...on-shows-underline_list-item_android_1.png | Bin 15708 -> 15680 bytes ...on-shows-underline_list-item_android_2.png | Bin 15667 -> 15654 bytes ...gion-shows-underline_list-item_macOS_1.png | Bin 15471 -> 15465 bytes ...gion-shows-underline_list-item_macOS_2.png | Bin 15454 -> 15440 bytes ...on-shows-underline_paragraph_android_1.png | Bin 15803 -> 15770 bytes ...on-shows-underline_paragraph_android_2.png | Bin 15757 -> 15741 bytes ...gion-shows-underline_paragraph_macOS_1.png | Bin 15770 -> 15756 bytes ...gion-shows-underline_paragraph_macOS_2.png | Bin 15750 -> 15737 bytes ...-region-shows-underline_task_android_1.png | Bin 16196 -> 16163 bytes ...-region-shows-underline_task_android_2.png | Bin 16159 -> 16142 bytes ...ng-region-shows-underline_task_macOS_1.png | Bin 16275 -> 16259 bytes ...ng-region-shows-underline_task_macOS_2.png | Bin 16253 -> 16235 bytes .../super-reader_selection-color_custom.png | Bin 6374 -> 6235 bytes .../super-reader_selection-color_default.png | Bin 6373 -> 6249 bytes 39 files changed, 0 insertions(+), 0 deletions(-) diff --git a/super_editor/test_goldens/editor/goldens/super-editor-ios-custom-handle-ball-diameter.png b/super_editor/test_goldens/editor/goldens/super-editor-ios-custom-handle-ball-diameter.png index a66c6e5d9bbb24e2638dde3a77b92c799e8ff07f..cdf30e9718527ad8a63545c469db7bde2e17f74a 100644 GIT binary patch literal 31815 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 OWiKe4PdTUe;J*L{CqdEx literal 31779 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 Ti}1fm3PD$86r|HG>Oc5DL->$N diff --git a/super_editor/test_goldens/editor/goldens/super-editor-ios-custom-handle-width.png b/super_editor/test_goldens/editor/goldens/super-editor-ios-custom-handle-width.png index f6731ea7299038b874768b9e43ab6b6ae68c2703..a4d22d65beb6786c2d86712c9e542e8c9b4f21bb 100644 GIT binary patch literal 31817 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 TPxiirbtEHoT{7#k!TtXShoN+* literal 31775 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 diff --git a/super_editor/test_goldens/editor/goldens/super-editor_selection-color_default.png b/super_editor/test_goldens/editor/goldens/super-editor_selection-color_default.png index 7cfad57df2fca9bca808ce3fd1db70f91cfd0051..159f5dadd753d077949dec3fd2238b9efe3c81f1 100644 GIT binary patch literal 22317 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 diff --git a/super_editor/test_goldens/editor/goldens/text-scaling-blockquote.png b/super_editor/test_goldens/editor/goldens/text-scaling-blockquote.png index 7d8690a7d854a907260265fe7a2c935be50a416d..d199f08fbbbbd944421d25dceeb919c642157d1b 100644 GIT binary patch literal 55027 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

-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 E1=Y$W4gdfE literal 55014 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

Tir!0Ec4 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 diff --git a/super_editor/test_goldens/editor/goldens/text-scaling-header.png b/super_editor/test_goldens/editor/goldens/text-scaling-header.png index 522cff93b7da7ee6cb528514db4123bb860b91c4..9f8e82699712d0e6f684fc2e56b78f86180f4e19 100644 GIT binary patch literal 72465 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

$p>>cR=T zmBMr~nFAad_-=Qho$^!K2+Pfj&%i@f8MT5*cB`&8iV+MOsTVkds%%U&L~8QuO`s`& zjZKtO>a+p_WRV?gi3-C;<7VwGSjl8aKM;QV*|*RbgPRfjS(JMpgjV5-CgvURZ&3|g zcq`@iOVW&N=!xx4Cv^}JAI=%(hT8ad<`>mX@oo;U+#K}u^j>*apCw79q-SUsumUn* zP?a|OF>u##WEsVDM~%CrD}FICgeAFNGuwzH++c!VAy=Bi(G-U5WIiMW2nX}*uqk-w zQ^14BkT#?qR68Y;7@1);Le5Fr=F%V9OMu~#O>qb2%Fs}3H&aHzC?D5f){GPw&|B+r z=WM8|L{o6TGWwX{<71AKXw`+|H7PHp>bay!L4iG5Jc;nTBmnvXOAKVve6KwW%kg4T zF`W-tUKgpURF8BD@SKQ-#TSU8W~!%%vBR**@PQGT-$$pGK#@OF(-c;Qh|01LvSV?_~4ni%MX97yM+DZaix|`=M`uQfaxyDON@$S)*@Tzh;Ge) z*k}g=&H6+&5=d#!JrZ<0T=Zd6Ix*bN6yoUQ=ztR}f%W>9mvi4G;>F@~-cmT$1XRah zwlXHzy!xcCNW1fGNHS`W zuA^lR`iJ18*@n`DabGCisuCW&i69sH8KPKqbF1&J@P4poA0@Pg8no|iCbf@Ars+K8 zK!bJAdK8Je-K}n_fVi zF0A(VWX~nrXNz)ml8?$*q2r>Wz-|8#F~bYnjr_n!S&Cg_OUz>@n)5GbvwaZ~K-AftmRK^8PoFV6N`{d+M1sr8slz&l_K z2A!>&MWTn5yPiwuL(D`J8#jE{pv2`C24Gm5Bk@zY; z`H=?X+qWj-lcT)&rptpp-$K>llRoP@Je91;8}G!cLL>1HFVU-(?qYXe_1WNnEXe#7ixx9stkg%>Kl>zV*$;xN)Ku01r z6ZiCq*CAfn)+9S0 z+6=sfNe;J-w2+@juRcL_e};xw*{v>{;W4SGZ+K;ESz10a?v8yJX$4YZG^1t+VCJc| z0#ktwhcR-1;K}JmHuFxw$QmPOlUll_$Uaf!?Fy?6{460s-tSiMF5$u==)OI+UDYg) z%t{Tb8Eo!+@<~B{zlNrHXLPs*WW%#@p!52b)Ri{%%>M?_6db@4;ZUTn*iN}Kh8Oq9 zdZP6r4l{oS>SycXpypalH$a`Vj`PRZ6IEWy)_IC=#Yc**+5Dlb<;y=5lH%WM$omafJDhOq3REz1 zfm=bk8(R>9L}ZS&z7;sfr~2a;7o2gz$2PHzj}WtnRf!3dY?4zls?8=^X9meBzV0FD$mJ{>T5#!wv?oeoljeq;K9y#s(*>Q8*`JhIm`O=S-6KI3Bcvj+*c z!J@stAC4|6c$6K`0Be&da>LwyuR%XaJ5+H`e@k6^*E<#7H&S4tn9l`vCFWT=;Qs@& zUYMtdB>F#RYKRUiJG&^DQ!em-)g;~bo`Z|m@T z%{oors%}b&TUuDubRlVI<#@PsJE@<1Ha8K@Pz^SJHRxFnCL znzu*g$pvnnp)JTd*dqk~=1u>!6=~T1{(dhw+=qn677sY1Z{BEu1s{AKrMj;N|B(Wg zg=&r;>;ZF9mCq}|Jnc#fw-@c-k7m9o?uU8 zn{p20MjF=^(u)V&b;hM&kXzJ>4(*|;8ANva%Zv&L{( zahk(&7$a-F_rA~b({;d(Vkcx3KPB7J|4a?@mekyus={htV4TV5{SHuzJ=+PXww~74 z0O7TMsF&-RCS+-5oyLt>39K-L3$FLV6f$^$i_;1Wvq7+``RwTlbP`YsetCIc#N8>9 zbNv4a4#*UGK<)pK0e@P94!qXn=7H-WTcL z^{|zLd|PH|K6`KimGTRWTJ%a4pCxZXv14=?m!1k7L?vKkjNJ2x@%GnYqZb$-J33v_ zNz$&DWwDeJT_I@Y`(4GurG5ZMKiro4I-w1YHTVjJGHZ~72D#}}4)P({2m=@K?nBW+ zf&NM`kFm~|54Isvi%tciCe*J>9}NuvZJpV*qcc+B?k|F9v9i%j(_imZ9CdYeviGA& zG0;6mgvodKI3v{6*xLCGWB6Q&ThmnD*`jp%aDqn{$;QGCAa^D{L`fLpvav7V%DEDs z6sj$2b8Klb4RnQm_Obe9d=%2P|MF-1$r=yhh;MS?aTW?t#PyAJ>Wwt@J_F&3kr8#N zGszwtT--h|`CU-~x}MSkuZ&Dh1I(XiwE?-Ew6w6N=M!03S*i_*`}JFI7L1cqQaJk2 zUb1!#wk3a=tb7C5lnNe`vJd&45o$>#lp@n@T}`d#%L2l~<)Hv}G}*uS88$hh^3yu? z;`8_zU&ClF#TUVM3Cj4~b?J zllK95^?k;F2iS0iZ*KBQ6O~81)4nQEX?|&N%xO`zbH-+zZop?%<+`K2tBX)KEWYjv z4LUcux37BH8s>C}BpdCuzW^IN2&_H4_lR|)#sEmmutV&)Shk$a! zHV6Qo1esRq+@uIbV)`L7>PY@-7%?mQT?buk&o6~H1jhR-JWgU1@?=X;@(T+hs>mtY zzyEu|dGH*u+E26(!m2*~qC10vgQ>Tus{y5T3l!`WTxDA`0>1D3q^F*FdR8fP|A2Ur zAw>(m@UFNI&~~^FV>OrS+-!<}_^@Osh45Qy@{fqGK0ULZ>+iD?9t~fxfK+)it$EtB z)f_>8D!+_ruweMPeu;kDb4RkDXvHrnY$U{e>qZ)>xR?DB4v?S%QW3!xzlxceWadKD1uDOEeZRe+%U>PHDAPho%_EiOJ{=eu-16>(5_^C3y(Ubq2eADU zI*GX4rG|bl*J@oo(Z-|YaN38>hR}vjnw%Y|DU|O0tJ-CPcXc)<`r=(~ua z%(^vo=37Jd4j@I%JmO}L&~Q`P!#X8;0y3+^(#3nAk&rr7FPpVV(gx?8QfERj(qy9U zwI=}8!npGXQhnN0py6RRAI7qIGX-(fQ3`kWr|*A@uY3w&|3R?|gm&9s=BOh%KsSSR zh?xF)YkgXz!scbkK)I*qHzf}51t3)EB$~JjWc#Q(pK=ywN#u$cv}GX##2489oQ%Sn zpHFpfHBQymHxwk;!j{T~VbrwQrG^S^_8bZT4JEBtyd^GhYP(sop@fG^>i2x$Z0>Xv z$y|du1<>{uTAyU=fG}{V#@ba9OI2=*IsV9WP^=`odJovg-R#_?p8paNV9=yPoe1ZR zNk1@dblZsG&gMuO`a*j&E)e$t#V_D(V%j<8=H?235D;j%A9}7Yma)zusEV4hEC!on z`b?jhYwfKhbO7yWgl&z}mK_UQnMzi);Z9-i06}G_s_e$wN&(u)ti4>oUvO6$-Jv&;c%tso9R#Kw8;-Z)nYfhZQMyXauaAL{PGGIwC|Dy^Fnk6CRn*vOI9f36X%9-T3vD!%w3X! zVjr$e67(-^SrjwGuer=lZ3^-se{QkuZ|l6&ZU%JH+yXu-o9e1ytJHaN$rpoJYfvsW7Tz2F^3X95)8>;Tnc=RpXao12>du<#4;9 z+C@0e%~e`j7>TjTu=8xI!C{)(K-kGR#@YID_N^auZQA8kLkWAX*3u^Gf`7=qa71)) z0gz6KN_6-%@@&gJ7`D+2eb+_w73@aC(HT@!l%DHpIChh`Pg9{3e}Sns!IR20q}UrG zUqHnT{W8`3(@v+r!2E@u^XnD%mncDUT~X_& zOwZRqqyf5Kl#Gn{ckCVqpn6~e%Fu3eM!b`B>Ygs6%9Ct>eR zSogZJE5f7o3t~$hUhD|>Vbx{G7?6LYC@8v6e+MBp{!1zGgTL@ga!})sAGc))m_%|< zIk4|B9n$Qa%B>Z654aBk*#hI|648R><{6cyJD_d?(%VZHwKwzgU~1&jmrKZId-Z@J zp3mpr8fTtzh9Ka7f=D?+_((ld+#(hUIV|zOUeiYU;O?V<6IK0RzeYqkBn{YIV5nYaas&|o-hX`T3X-=FD7`0qT*)hs)*B|zT<}+I_P6_hX8Vm&VjN9H#dm%1 z&tr?(7Y(p@ptS_`kstV#pSjFJz+-&s`WtZ4)6*qoWko?t;sz4ZjKk2avaKwaB|;;V zW!BF?6+3qtdjVP1MaDPhkeE&01TE(Wos14w9wafcG$Nj|>7K;Veydx zzQ=^V)o8w;cj0=VQn2)l%*f@9^s^w@&ffGM*GGhmH69waugHhHNJE?){8L`KJ;P(r z!C#E7(0>_@#HvAr^V49PjunrYe7Xgo(ZMk&Yirv@kVd!mGXG&BWgh?pqqc?eH9&p#$$51Rvlm^7=lFULvQFRv1iHB7oS$BCf;HNiPeUw?lz zOvj7v4`~du>+?Cgys__rIF;sE%o_rz?hI(GH^8W=srCB`#RNSkm}*HuOMP~2Dcjx# zw21X5mUrl(DRe2~K`nkV1bAf80LnLPdQ}#9Ok20PpH2B=uHOIo<2D$}@dK-ObrRzj zg)ZC0h>f!^oirPfNT=A1WOW*(Hm+wlbU z&*u(Sf-1F(V9*sYP4oVCn2_(ifs(Wi_zJ2m31w8?iiTVzE5E!Gu;D&9kF(0_TDj`liCjx+FIIYy+UyHKa*RZhZ-ux4Tq(*Wwj?Ww?;Q|~oB<5)xpN@+)AJYfNrSbEo%1TpE+;9jE{Dzs8HH9oC(%|8)t(iArd!>yndHG{7CWTZg@viB#9id=%tJAMrzD5v* zR9}Tl0NNyFI!KPffUJU$y^FZHLltH^8NR^(*nSEFsFNQ?hK8U@ELS3w9L|guqlurF zTui6%qzwZi(UIhdh~Ys$uE6*evuw9=hL_=OjGfk`E zRmoIArVWYrt&FP_UuD!OzYAjSTcD)a?j7q;W5&kHn0g45%drfY@47~VzUO*ar0Oaj z(Gynd5uoB>6T2$ElgX5hDL=nWqCG*Cy_5UJ@Luv#j2{a->+7iCgkFw^LQt$jCWYN8 zcIr<~0(awzke{!X4og;_TAk_7SCN8fhp>-cnBq8eDhxwDJIk#8BweDV*PY&BOZQxA z!@?(Oe3*=KY2)ddu3^#q_K=!q=~dD)8*t@ZpnoAo{|MCKpcQW#j-8QOh3x zO8QZN=p-EH+Nwj@3I<){Vf9J7l$P1`_YOd-EMv&Qh6J7u3Bc_ z+|KR2d~@-FM^J>6@0elJ8lcZ*Zg`7FBlvsC+Rw!(Eg-AFa&!VuIjP9CPXRw53_AlQ zYz~(dOIsLjbqiC&SF@@7{KBvtc_2W0?A)h2&$vvb5ex-u#G*g?aL|l;vS?W~lk;-I z9vMF8Y6+^ZPq?PDbo+P9}~aCilE z32E*?)$zF+Gm|>Cx3z0LPP^4>G?K`|`dE2w4DLHQ!32s0stzT2af-ly{PXh2h@1$0 zS9}t~9FL)3wPP-i?w70OF=&9n1h;?HsH9m-N^91b40T|CwpglY*YZ>Sg>TD^^u zQJV$sXij?5(Z!*4@j%N~???y;ur~dtp=xTD1PNfq1_**PbD{eWv^aGJP5bZoSXaCO z&>-6>ps7SyPFBYOXHug3EpQ`qEwwN46*+xC8Y-*qeVe+&Bg;zX76I4Y*a|YkdzeTiji!v`ec7ZHrCtmQJ zcaC1H?a;BxT6uYOj0~RpB%WD0?tb>0C~YT4wlGQ{w>p!r>%YM4b2`>mU%cE3Yf3%} zmM`r*iRMV$xKhh;d@if)P3T4YNCfmfN^&j0UV)hp{lW8u{1O+H@$aId?Y#reNPoAq zBi-iNd)~u)q97KP0~NG<;xD2645$IqXNEnO{PejRpxIk&J&FPjkrY2ET!4#~O1%e&;o?E47CFdov%66p+_t8I z@M$&BV)cWq_7|XmV}JcLzm(`180>avCuln5I~-wDtRde-nb}+Fi8W{~*jgy;_7^;r z6HZXAw!K=Vo8b0%x}x*eykt2f>tO6F(3a^J^0G$lsYA{!(cDg6I z1xo(f^_KLEfh>Y74pV=BuAaH>w3KpN*FYtUs60(_F#OR_ZJ!`}GA1f|KSEwpn1)z` z_IHw{kc#JVLD8Sxbuom`Ja7*8lcI~=e`an@uUqYnT)X6b+nw0=6@t&rnmbLc&&aW{ z@4x<9Cd9(=*e@yye|KzA49wt!3D%OL^56-B7Kmb%>5eSV)9^1|=lj^tz6iVqOg0c^ z*H2$@{1T_A;DJwd-B8fst|}hjaQ#Ec z8(=*IfKGb~fNRwq_qSl0tf{%VzPlTPbC?tIQ~f3ehMz*At5kW#ccXUF$*JblpT@Sk z%sxJw+ok1RJ3nk-wz&$p5o)AoR^l`f4_Vm>Z7#fam}Ypu#QpYcuAqRp?~H>Aca7(J z5in;Hqc#6Jx0=#&1C7!rDH$^V6GPbnElp66uDMm5a=Y2E3T?X)bThC)OAP${<%MTX z&c;W!PaL3e1Rwi53~5#bN;n`ME1qh-s9?p;E9HM42KuE>XtV*n*t0uy`qe8vp`}56}>X2BXm-RCE=f+j>!ec zaIw$ElWZt(T1o$wMo3Bm2P>YuVWjZ=`*)Cm-W5d@m1;c{0-8;@$U!ArNp3v%r6fqw z8M-CB@aKeXs21J@4h#lS>)Tu8kB@WryTPOoVEDxf`k$9fN=L)$34p zFwrMSLYfvn1j@R8St;a8|7uvn-%KgaT-k;lMq>*)J^y?`a6g2gwgMW8Lz4~Y zYG|EvaoTw+R6hdJn1Vv?-|_R;JL`f;$AU}fY`METb0KkDvh?IIQRdmq>HQ}@t|Hdm z03yp%cbKKZoi@|%7F>z{_bXYJ3Y4yusy%f>10IM7fi2E0xo8qpP~x3g#!|)vs>s~& zEP^0ed&wzqfW-goT6utI8^cETJTdfwBbkwjbP@$TS5c}fwdtm1j38<~qPOq~fUJ`J zx4@5c{-;}wDEC@{fNJY_}c zqe>naz>oa0Y*vZ*dkyj!e)Rs<0{rncC7omcvVh=A2-lLw6@B`FMF3!}l8gtKAgbT# z!Hh0`7C!I>fmRm-Fm#5h1M_Nn0Z(tsL=+Us`yv0)Fk+t~_oN@EOjCig4n!bZ4xY50 zAzQvWvj!O|l_2axZmoG@c-X%pWZ6;X-5 z*^{Dp3rGn>X4inR^z;3*OAaU8jc~du(Ip&JxaBu>89lo|b+8RIpX378AV`1#PHa;A zJo^{cQRXS*0kwEjX29eilr#TC&fs?_(j)<#Fe%>Y7xtbG!!iciuL+o`!G7fe)*%+# zcA}Vt&a~(Q_}j->j#87*c)6IQV!s zHNMiM8|lA%=+0#w)a%ZBBU7CE39F1DTQG}DrYgbKRa zJR;*MUSH~5PayBv^e}pIIOt$Fw93(O>4{LTdME$ac|ZsV)(93h-;FxE8G}YE{Oop* z%jUA1Dd#$R1c+Kg$hvzbN|yR|jt9`@W=AXRt~O&IbMRN^#39bOKluGb_VRkm@d^+4 z$CKKty5ocO6}z8jHZ47Z7u?c%RSac z%H7UJ^1(-;A#B8c3(0U`_^f4rKTE0>13`9hFe*?+CW7pbWvpv=SZ!D+aNX@sH9@FD z-$<(_ZkhJEI7ysljz2TZ(JHg1h|^26yZYt*?41^##9$+fjyTg$bzz*pe^A}L=x(X|s@JJGchU8CH8mMYg#@j5DA zN5$)?cpVk5qvG$!JN(6K9sBF>{UU@2=WY1?C!67fmh6qcD55&5-(2GLmw#uG>oxgv zC9dt{kA=84h--tm4v*L25v;&o9yB zhW~rQ@O9|D4!zf*_d4(V*YgfmrSmUo8Ox7pcZ|wFAW)-0{Oj?|dN{v@c-LS4GnFA+ zugRY)acw7mEX1`zTpPr7c)SjeUV2#|AaN#;K#2HzmXqbq-*c7MU;e{FuGi#GPx*hs zApAm384(ar*QG>-RQ|l~>ka&WX#=k}4FTcWVy`V0;W{s0hl1-+@TU!2d&BRAxXumN dx#8d5fc&}F)lAKk*A2cfQeyI=dBS>c{s*oev&8@a literal 52111 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 diff --git a/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_android_double-tap-text.png b/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_android_double-tap-text.png index 8bf99f389dc5cb6071555e88e4523e87f516235a..5602b483bed6ba18b9a319c19f6c3fb4711fb2ca 100644 GIT binary patch literal 22140 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 literal 22144 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 bL4rg&srQxmzTv~gHEdd%+nSLs-irAjoFwqu diff --git a/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_android_drag-base-upstream.png b/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_android_drag-base-upstream.png index 2916c0c70e3708619b87e2e22dad879399b4d9a7..fb34bf2ee7fbd95f8e76f4b847553bd01e79562c 100644 GIT binary patch delta 20879 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 delta 20830 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 E4{1}XdjJ3c diff --git a/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_android_drag-extent-downstream.png b/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_android_drag-extent-downstream.png index 6fccbb82db1f240aa2b9991c8591b692703ef496..a0ba338459a89a9877ce0f07829c7fb214d03982 100644 GIT binary patch delta 20933 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 V!AlKuw5M&nzGUlYL$SJX|9@4k>G%Ku delta 20935 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
    $vho%UE&+&cNIVnzo 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 Jr`!15{Tn76)IR_K diff --git a/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_ios_double-tap-text.png b/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_ios_double-tap-text.png index a563d1b4d1c68aa809059b9c9f2e39842f05973e..eb145bf4d69ca692f0e605075eef28d5e1997070 100644 GIT binary patch literal 22376 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 z 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 diff --git a/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_ios_drag-base-upstream.png b/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_ios_drag-base-upstream.png index 3e88c0b4d97380197c52ac104f967370d6c927b5..d40c55bbb0fd59297cd6d46ae7eb72e1ee06a9af 100644 GIT binary patch literal 23458 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%0DVlUu6w?B&&VBWfKKlNMD!vJ`SXO_=t2yj- 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 AI{*Lx literal 23435 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 Z1dED2T)p8rgFH?&);GUhaqDjMe*mUlVm$x= diff --git a/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_ios_drag-extent-upstream.png b/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_ios_drag-extent-upstream.png index f1ebf292c68d2bf10c19c3c6dc97d7f9a2c1f884..d40cc65997f6419ac0a0f0dec3dab720d05d3bf5 100644 GIT binary patch literal 22502 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%0A?qnLGa(0owVJH`fxPwBDn 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
    4|;))-XN{KJpVj*N-NB&-^YdKFu&L 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�hX2 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 Ang9R* diff --git a/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_ios_trip-tap-text.png b/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_ios_trip-tap-text.png index 5a27280a9c6f1e865f589dc2b39c41a361757177..36641d11dc01a0aca9191d4e27538d4ffe8db899 100644 GIT binary patch literal 21946 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 diff --git a/super_editor/test_goldens/editor/mobile/goldens/supereditor_android_expanded_handle_color.png b/super_editor/test_goldens/editor/mobile/goldens/supereditor_android_expanded_handle_color.png index e512b7c57ea530796dc9e56e312d5cd4e2510ce0..6b10fb81fc79c924a7909645b763c0eb37285b0e 100644 GIT binary patch literal 22773 zcmeHPdsGuw8Xq*JC?F~;s3>4nti={uHax^2it>=$H&Ziz;p{|P~C5x*^)f{tYkD<~<~jwaQ;R9$j%GG2F2adhQhqCdkGe;fHd%cX5Ub$AzF*}KE#->C1g*=6F7A4w3oYks$KA8W7kvUiafU znfaB9k6hym)IhjMKNm3uyACg(Ji!`I=A1H6>$=2xlMy%o+wX3)|AAbWHtZFbsExP{ zWvu>uHDOTDxosmSiFM?GrONA3keds4_p@%Q{R#G{C+$+0pDuD|U!_M28}hAG z^w(lXWP9yPX>|Cp<78gkaB+)&{BoVR+}oY9*SK{0?ovwZ;miPFEDIMz;FW||?-Df? zNkkGWKEQ0WbiJsRz0i@sD3X#UeUGMjywd4LQk)o7G$wDnrsSSw_^zCCO6!3Yz($iT zpbM9FiF7RAu0k6UpxW5Xo-0XPFWS|XQ1co1+q35hDS*P5HE}PvsrX;N$%8W@p%nJaJRlU$e)?8ofkK9q#C3ZR7ZsGK$(N+>_${~Ax0XT9D@X!Pk-#)C(Qr4OB z)oBza$$+gKa;XukPj*M57pWCpNY-2yq@#_IF}}}y)Jew;j3Obs&6KF=N)L4~=vWpO ze6F_UmROgVe}OY)RwTOI!d`$j_hcR?002+4E>A8_)o3eGe{736YU88BW+erqFCqka znAHm)W^w!Wkp)sEr}R*-CQi8;$!i$C?IoP-GYb+3M0@~Evp>dJ!wB_Co087>8Y$aQ za@Zx|#STGFte0{LFjb9(JnDSA`0miQq<9hEp!vZVgHm{Zc?Eh5Y`9}K*i5miF(dJL zzsw2A$VB%UJ@HJviTA*)U6G6PvI~V9Yp)k(3i-2|!(EDmX+1j>ySIzNF<-23JJA}a z>|&Io0vZyvMA7o2aCGNM;E0ts$k#lXD6@8*Yf|)}u3m6@J3WGOxtk5LR!;{bu*?k# z?)Oe_m3}Tzn{WlR=#kU3RiL{=1_nuZMv|&hs6Ef2lV(%v(HR|}ziB>!UJKnGkT9ZD z|M6{yPtl=rbReRV&SE(IN#65O!N%#lM8cuT|0mWE}DC{pYz!_)Fx;H?kziP zr16Kw6=b2uVe}G8a(4UhBdy*5?n6&VFDF^X9ZbxZ z`fhJDy2GG0*2fxUB6@;)1Y5cW&yW7CPiBtvr(z47?HbJY;4K6s@5md?Y4Y};U3~Ic zK4SdndpFGR0o?FiG!|v8r>#Moc?M#+bPWBbW*E&xyNT+%AsZ0sejI~6NH z&mvX<7`sYSnrh3uA2uB!MYQo6yTYHmc8DU)W;YxM^CY=HA4K0~hco^{*6kjdy|dyD z|4flZdT0|jIff6+uomKjYJA)y7xK%7PO*4pi%j~$t?m$kg(y25k@7Mcvvy;{!7mCd zKC1dbJ$Er-U=HZ+um$r%l_JUxdlEcy81*8BBFyuqMKejW4R7OK7%#xQ@b_0uUY40V zH?&qxB}A7ka>M59mTDVWN7f z$bvnVr+W3}hm@o+0_&&ZuY%XAytp%X!(|aCb7k@ z=ehv5B#M1T+*4mKpjAcYl#Ar8dRYh+Gb8Vj3*7oX;IZj%eG!L;Yy?V>NAdc>3tyZ6$opI%*8^_ccNB`vXvew?ga zD=F8Hq7hqH9hcQVq(8LLe8G#$Ze!m!UOJL|Ji1bAcbyQm2Ztrq9ANMGevV?G{Zd6@ zt_6j&Rk?P}&523-=MTuE`7NU;;bbk4%iryj#7$@*-(x3@@$dNEYv z?xOqnK+aB{Lrw98(wY+Q0qsxyH5RNc9E?+5n3$VBnR>%%e<~u=*(_adqVDB8meSTe zs?u*>hu>P;YtykFpEeB^Hn`@4{OL^rs>;0FDb?iu4PQj9p7N$;g@7d-^`EG{CT|}c zPLCQ3qMpH(GM0`-oxs*#%uEUkQNG9quT`dU6d^fbm5e^i#?qJHSXS`oMSYCpro{w_ zVvKGl@#PvXTnxsDf)!u_kHC8sNCHR#cq@-U5h4%|*4C#D4h zWtFZAvB$euvSVie9{ge(6;|UwKujPZ5U2*61PD|ERKu^O2Dk6i^AQC9EdX4DFkV4< zL3#aJ@`93rl7jIB#uFG%a1J0adDQ~}?`HHs!0-se zOy{uwnPMf!Isg2Lfj~7tH6REK1uzuAP@sx=hDY=*dzd|9G=OS=YJh6c za{wj_GeE%bh$8{RBMguK|KX9_C5!-HPvLIT%3?agmVskLvI>0r1m8ZL^^fmp!fJ>K jfU^A+`03c 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 bSPe^LmJu%a1 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 delta 81 zcmexa)mFX1SAkJwv!B8nam5AQ)(i{`lYEa(*LwNw?d`TAwOy>ew+o+$sbi2+G^y85}Sb4q9e04-A=6#xJL diff --git a/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-showing-nothing_paragraph_windows.png b/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-showing-nothing_paragraph_windows.png index 528b0cef62b7845c78961b3fa96e8ab0a1211c1d..132bdc899a6896f22624125d83a7effcea6dd611 100644 GIT binary patch delta 59 zcmZpx{#mubSAkJ{v!B8naqa{jD+Uk{bKu^*(PBT#WChDO@rM7*WsYqpH~kmn2FZE4 L`njxgN@xNAKF<>8 delta 81 zcmexa)mFX1SAkJwv!B8nam5AQ)(i{`lYEa(*LwNw?d`TAwOy>ew+o+$sbi2+G^y85}Sb4q9e04-A=6#xJL diff --git a/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-nothing_list-item_linux.png b/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-nothing_list-item_linux.png index 0e0077d03b3bbb83a29f6fb9befb4bb77ff9edf0..d449f7ca47bcffde0d109a568fea646125d0a0b4 100644 GIT binary patch delta 58 zcmcataiL;^uL9${&3+0;#JCJ!Fo1vrga77>7Uj&F6|9ysiv5wF^W%(P+Un^IAURK0 KKbLh*2~7ZnrWF(b delta 82 zcmcamaj#;7uL9$r&3+0;#FX^jF#v(k)NpbA&W?@?Q7Uj&F6|9ysiv5wF^W%(P+Un^IAURK0 KKbLh*2~7ZnrWF(b delta 82 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 l{|UDL3AXHTM~{~ymw&29hy literal 16253 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 l{|UDL3AXHTM~{~ymw&29hy literal 16253 zcmeIZhd0}8{69>4>(JuvKv8s{MbXx(-B#^Af|^CGShYulF4Qh+@7feKgCK1cwMWE? zQBpHTjTj-xbLIY>=luSG=l4A4Jm;Hp?vvicC!fzX-tX7CB6PJ?80gvQX=rE|)Ks78 z)6kq=p`oF@ckT@MiLO$bJ9wk@(pPy(Q#o*b75vXXUQg8w&w*FaxtAYkXl~G`J$qv4 zpSdyP=Y17(s%zWo?!4Y9o@)hV&!kl^#m~mG1TtAfj#T8nw#nmH(tTWT?(N>JUO~jI zR*mqXPnT6`Y|ov44-b+3W$S03I5SGymgBX5eSdR0OT)Kza&CIbLt)zf3iw(Y*`?XQ zs;bTqnOR+Vx4rQ-Y`J?)-T7B4k$>E%zXo@bdz$+8;`~3})OVVDuU|7#-(S=HJ48$U z$5)zD($sevmdB6JQs2LwItQK=yi90lIsf~|h5!2^wEvG>q%;8uzFBs)(gIb~db~fC zv>0$Rj{c9xM;F&qG&Ez1;5Kf=(`7RlwkrE<^zg+{VyU;h{_oHwkqim<;eAdSpOc^G zL*KvW@$)iYz~S=W($SX$HPw_E)vJ3-p6%xO>yk^B-6)6#I6O?NmEgNMTN)b0%IBQ%QOtjXw$b+c0^RVu zdBRh-_m1o1LGCmk{a2oZV}mUzQL$Vy$BAEm>BDTUm5f<5=m^lhc3_@}H#KDVAvo%+4{m`Qqi z|Cl?3$M4GJ>4rOhDgStJadAP%3exggUUsJ>7RsqgZwGALzI_`*Ciway0xm4^>1)uM zgibCil9~yLg+eshjC;B5u6JS;0*qsIa?WdR@;!qcY#fZ%!bDQyD6Uv{DEj8NN|zUu zH*4GWIw?8r;8h_ZzbU^i`S{YMOX(=bwxFDCNSq|BOpm18J#&wT))Gdu={Q^$I$-sv ziXY7*=Yr8N{5%rai6y+e<_94PUVct={o3=GlK-BQ8+FVi@d6s@CkbE-{N5}$bviSB<8&G+7|vxn}m)B(vHfPY=SGs&Qh~jkN|MZI17Y79eeG+sKZvA_5;k+*wk5EQ`5!yi; z--8jPXFP8NuJO>WuOL&(Q^0CAC^?l9c(7?<(dhqVStN5@A&+wR;X{2(ww6B|8xM`YLFvL7CJ1WFtbkfU#8SJoMzf|p1bDpG$IvA0Ijuwxj z-9OjO*w^xdjVWx=R=^?YwzAoZ+}Ylb-x6&TFv)%Kxutk>x+%YQd0=h9ij|q@Uc%EY zQ;VQJ>9|PM!10GZBqfNWphaa&xix;h%gfrXNoYo)LKT$OO^uE(j)~CxJJLp80M; zofDdGrRnmIb`Y)wZN#n)j%QTU2XkUnVNnh0Ngkw}>$>pD7?ED2>6D`~JmaZ52p zU4MErbmZpN3ma%%37W|c(}CpoulW8(vj|xfNbTC=e+}Q(j&q(WDV46nmrPY*VvTP^ zMn;Zw_H)#GA6?cu3XVkM=$Y>o*vDj)dgSv3Hob>odBeiO1PsQaeeDd|vdSu}{F1m% z+WNC4%`}pQ$GBzs5V*c9K}54pfMS-6uTku})WtZJXU`lL)03zp8f;2QL^p`J4VhTT z_!(5B*PAo;b0WRJ!kB^|u3Uld3>Obm5KR}Bpz{lKQzv+PG?6zd#jrfN0#gdVV@K#; z8snboKg1L6D zr5m=clB61s#{0|kikoLVj784yPAL_HQ(JISxiNHmM2UEml9R=?ytr7%=qghJi5e@@ ztvnS4Ux;Y`*N;X$kuPSd-pT#0AInvn8rNe9#pfBX8>)lnr$b($Hs?@PqHi2Vixgj{ zH@GZ_WonEp3Z{rd*Y7gJ7I|a1Bu(Sv|5_tI+Eb<{WKQy3GkzSHj-GTu9eyX0=+{!@_hi zDAaKolUpvV5RQZKiHR8^_t!m}$W6P;>pz-!FbD2`CxV=?H9k?$@v6ej*170yzs=EA zgTUfBY}tlY@8(-on+q2%p#R3VCsnChGMxB7jt2cSxzePpQ;5A(``y%oHXYlY<#+|m z7as$RldeqXtID&ibm74d468l~76x;-RcWM%bgX7Fg@#kM{9yA5p=Bl&Z)fq8N;LRn z>%u#QW0NFj!x49Ea4l>d)c5+03FV5ZhUf=icy=JY5L5&zaDOB3_s8Fl>PdlreOAB2 z%Is&@*M^Ic)GOp5xfzL%lgf;vA53>HO%a@_w;tG}sm4IEDf#a!I_I>>M&uZLDFmB5 z<@drWa}Wt%_Qg0G8Vj9D@0uci6$@x=aPoM?r$^3Z_tm1}ekbcbU z>}&f+3%76GdYV|QWfU>efvHd#zt-NwbrO?$IP(lrsi)RDx4Aer$MM?(;K>_mWxJ-F zijyayyVGQwuVXv~ZAPSe6TFhLGIWdFN(D?&$-vkjccA#3yd!Bm%+;Qt9~|A)+c|+N@gjNu&_0&t~`l7zw?6dj_Aq z2|WZ}-dpCRp);1dd~CyX6|67e@e8sXB}Aq*kvYvY%_Bkh(ckUm6Rxh?^Gg@M#s6@}|Q5yV?kHG9L zbeGs>#ianbYy70iYcZLJL^!ab!nakWchoT}>PsUGhjTZ1R~}9wLaLVfGAh2+z8SUy zSJ0~$!2H2yK>Tjs_96cW5VESDu9IBI3U)8=E5|NoP0EaUfuEUI`Qcv@Q&Un>(#741 z0KVz5uU!QTYl?V0w!-ygmvx{#*p~8)(^|LeC4WFbz$8h*58!6$`e;`8bpV~5iG8bK zJ4aDVc-)(J7VNiL9pd2sc7vXvepPVZ^O&&G&qN@&T} z>gwu9KysD2{R)4Xercp7d=V00*H`ivi||<)R4lqJN(G`i^4wpzi~7B{Ll)ZrP66{V zR(EzxBreBP%r!4l%B#D#S3}ZmcBs-qh9TdQ%kraXZBWJ9SS1HuYFQ+`N`mv0CU-f> z)D=={4rv=a6ae#;B4RaClhk`rjtD#0N(#XRf)){wIeXR?Mef=3QcXw~bNRfS1GAi! zm!~H!b8k!{RLnGmZ-s`1mCc23;iIgr$}EZ-eBazIcQ+FM>z->aMUl+Hfl}j2f|pxE z<9UQkS{_3Lj3EbZGYoMZFMC0&X?&Sy@qAUk5Yl4evDg=HU~O$J?X&dB=*z>LwrwjuJ^lu%cNW0qmn3gjC;ZQq}N?YnIU~MOMzB~B)f9NGi7D!K20aJU$1w< zbQbQC8#W}x-DmoAH&<6nV>hJBROdhUeBw{Mb?cTl`9z93!CkT3wKDsFAYp1;FH~6V zMrHRCzi2GSl!NtVI4Cbyw_jX8Z1)^qTV|OR7)Wkf=4E1{qqD$(j;AR?4?kH|DSO^p z)bmOB3cl$FXtRL`ZBvwW>naW+0MUzB;02gBKR35r+V>=NX6q1alFKif-wA?Gj^_LM zp`-j4dy`W_T8TZoPq_*;GPD6o#7`f25d%m%L{JSjVyQI&Q|_+QpVRtUNNoFMBez?v z2X1MgV$(TB)4hA9vbc~Gi^wsqLa5as8Mq(b(jFAIU1JJcCY~hT6dunxzy&Fi_~*36 z<$OmDw=Q^+ zSzl=KY}Z{j8d7Lb+GW8;vI=h2^;%f< zZ3VZ_aa)C9x4ti77KU&A2ex4w$W-T!o?Xlt+^>+a31afuoS5`|G5!RdGr5}Y;9_C5 z1vT9o%5FbTl$LLqxe!&;I!VxKKRVetoV2Ih?_vqwjdg0ZJsXDwz*ls%7wo%@s&6P; z+2w&bze!m+IR+mNNkiqEkcK$s?p0W%zJU@@t8_tXGSFnH$=3XmDR9n+$TWcw&u;yx9~}#QOEw*Nl{NjaR4eMcn zt*|}cRX@MI6x+-;?)@#<7etu%tAm@^V|Nrc&S4Z2_2fKR%61=7t^56H14P3(qs@IQ z9P1LF=jW=ya<3lXP-qGA)#fcM=~YIB&Y*k|CEOz)rTv$3TGB1T!}f#BYe(_&aj{SR zX7|SzXU7>hLLPjARGH4~nK*!1K}YfmV!j3|q9IeQqOfv}V&SQl;3zPGY+RI}35S|V z7q=`?`6+}`RmW~hiE=%Ak?|(H1wKldA+w9_2)5hy8sCc|9CZbgk}O18x$dzvSkEZ? zKOU-;=zX?ec!B6#QMk%4wqA#u>uuqzcds#N>*=$P?Xu zy!63O_y3(}r>ML+q1)@7Vt}#^4R|l^eBw7K(+^co2Rpr8HUG*ToyK~W_I!ED%MV~D z<^jDYRrtsLiPxa>ibH$di-D)@wt#ny*0G^&!*0U32d80Z&m|l-AZtqGg(%kkh`{~nqb8ilNlCsqa~N}ljO{N(bB6Ug$60w z7IoflwnhE=#%=cw3V%M&Z`T8xygqP}z5aruL-RTNbTOyV7B#Q_G^z2w6Ytfocmq~; zEr;^6`${0?-ND7hcksWT7MQOhVN*#* zi`(eP4#7pM@wwH7H>LW8`iWs$nkr2FvF%qGzC{8Z@iVoFSV;R+3(A11dy^*ZeA6YH zRMZ6ca`e9&nqY51*H=7*8LD8VD;h;1x#M5VuE?Dgs}^^fcs8e%x;}EBAk2xp7R*vU zUNMHEknwc`RBjPC?WlP4$-TI_&Jzx(oY;1TJLp*Jf(czIlS91|EFts^4461CG9}w% zI@@`2rx4J`$Ze^i=3Ps!FSH@;vx{H)c#5+DJeNc zcOScf5}mo}{r4`=0vL|GOUfXn_Qvw_$n(ts_#&q)-rkgJVIz`&Fy0Q2^K?pAq}~Q7 z_QPmvE-LH>0;Izi0w?^zx(1|7mwybWU#wk0OFAnJ4+3J7fO*MRbQgC|yj=J!>=>>X zV9qj$-&ST~Sdsizm}3@IB(w(#+{HzMA}u2mlT>tI2-lGT&>X)CQVXZOCh5DAYVc?X zd6zqe{eh_#yF|4hRZBB%;#)deu~$f}%tAKR?Z9K8;$r^4Unn-oI6wZ0*&URtqVr-Y zd-3LNHJ4evC&UNpo;h|En;B3`U_51d#_?~ijt%L^-`~GPt6U=ezMIXL4UKcK{mlpF z(E(c<2T2DVEy9>808;9qvptnAi)%@0zSVT9nm`ryWtR!EPKavtmhs)ZzZWd-YLj{U zTH@fDkj=5#D&}5eLyF%qN6*ajI-$yzmKL$~-Fe}yj`Rn%$^e+WFlJ$6D@BpXy-ryw z%YyQwujD#!JX_T_nYz&gGS!#g9mKI;Du6*GeVkv_J&2t4lJd0c2&wDFQRrqp*32J zOtJ`$^J6x?GtRX1g_mEaqoyB_!;vcI7m+pc=XU$-ShAy8me~Ys<3g zMgN*O2CUwcxRCiHR!zh-bTl{K?DmH~7Bg9|rMg}MHxZ0DqCprxQW`Zc%KO*lMf7bG z7GcX5cR7fY_vKQKrBVhnBwS75j+5hUtS z8d5p-S|Mw8$oEB@Rr&K?T^96@j}-E8RhuN+(O+v6ty_QZ=2%n4+Iaca&bCLAsDn0K zA)t9?Lp*W3lZ}aq3F6au?k>NY@$%Wr7ic+OXZ0`(as)m$XIpCPczKh*i>q$pWnb!W zX#RS=)6AHzeM3UfQ)fd|yoTJ(xSo{pM#@q9hF_n{!>0QqQ!i7!T+CO8)z1;uh}ao0 zBTmtRdNOSe)J@U&_+^9ZoZ`XO-1t<^hKNlnytKY7x!){}5$4Nh*YhbXp8m=B+s_C( zjl1?yIrWZXBOA-5y0eW5RJMN6?wDy)^2<+BVE8y>z0k%jr&g_2&R0~oqI9qdv65}U8qq!z<9fu$7$RR*Kt+OWCD-v zo&%-=_{$-V&B$A!Q6+wHv%YpA>xZ{H^~~&9T`MiT;F#^p9qNu-v2b5R!MOqgbleN? zUwfZ2s6crnM+UM$*s5+tI$}ga$;uPoQfg2v0T@1gvW3NHlDYIhK*Ze@BEVHT4EGcs4;8L5ry z)vms@KPK;w09CP_e(q>z2`wmsTG$UrjKq!Evr?K%^1J$B-vHCzTY;jfzwYI=l-T=I zVTtTnJpwu=`~GP^pDtR#552HoU0q$ezA`7ir|MTit|M9jejF~ZYE*Fj1~gP<_yg0N zkcT|PL3biL zwnYsS_8+CmdjKknj28)f^`s*!N-GXJHSuVqXZwJtN2e(qJ&-D80TgPl)gZQqFLk>Y zcsJZO+lPMT;&p$Ci(3=)=SH%yigm<8M`KMV;b0>r#8>Tdt)=2*a^ws>LJ# z?}n9{QfS=4I`&Fy#ke8?&)d&>n!0}P8h^jfBMC%f-~ebPNHq4``zUq%@RGm8&|lt0 z&yF79enBnaj!2e7Ks%9^nZQdbd%2wuW_!Rn;eg1}EnlhtqA)x2JzZUhpmEG*hs814 zG)vCUD8TZUtv_Se(Q=`BvM0>29ml6ckMkh_k^9cX?p(7^@7GYhjd5t#5&U4*tdp+% zI_Lc~gY~tsX#2id_i#pT_0cFv`zPPCte2Ri+=f#=R=H|YjRc_HO$fC$01+oNG?a}6 zFB`njm=_#zxihD!yl)IW(c~PC7FvQDRq=DXb0Y`4s&QQcf0RE2woDp;8;L{@&O)b; zU^mrNG{;Q+GZmP&09pa8R`3yz3BrADYy*p6_L(D7P=4+|s=m{j(8{gQTvSgHaJ{B3 z1N6S)_GwPk(6Rq5}d%+a0n}7ERF1Ip;Ckw2#+~{|o@B+RQ7BGmRm!)qneG zX3mzA-Vy}&G!8*-vb!sTzaMRyutRK;6g$!zd>Nn&C=^04$|-N~`lOfRbZQmDB2YsO zfo5!2Xm1z8E~9SN;5JP7jrVXH$91}F5D4xW?B&!Mx;X%7`L)IuX!4LhLB zR3Sv%ZCJJ6RJyg zwwPslUj zJ7JqEW==4ll_IAIC8S3ODvEa>UGY~Ar^sH1&vju{z`9c(qV%GFt!sD?y*uZs-g_<& za4M$Zd|{gpk7ZxXmrSJf-;_k^IyU^aY_8ircG=mNaD%X69sIj|IqR3>T8pspa%;r| zh1GX&NRZM%r6m9QM&&pTP8@V4uDsWH-T3ohmY`pYus3fK>Fh!InlnV~<$DjMkl#*9 zkI%j+drUqR1_=Pxl*7uKLpXNJ_h5Iif7!b-(B^^J^}D4@ZhXn3rP1Z83XE0_pbChu zYayKng^|Z*A+>XDrOoZ9ApH6Ty0u07ii?P?2{*qvk8>{gV|B^GARQX4gR z1f=%<=*i_L&;BH0z0!3x6;xb12lZ;1H*v?4FMX|7EDhJA+L(p(4bjDYLwR!HgvGz{ z0v2W7(Oo%@0-geG(%?^A?@VN$y&Q{74F~y zOz+qV;G@mK{3g~n5o~WwvuS9!IjC6xX27R6!?B;;HCV14z|Us?13;5@y`vkdJ^^>% z4_J6WU7X-VS8Bmh4$kP@wQrS;gPDlp>BNphOyhAz4sn(AZncwjK&V?e&d$yjFdp-N zQVd-z^F5GsYv693e?)1CY~TLCQ9HZyGia_*BV}O7HW+7rG8T8=3?rYPLTFd_ydb(- zErDl~#H!sm(LQM)ikgZ3QE)Ox=^6kN3iv@e4em2}fTBBp&kSXs2+2i%;{w2pe41EF z!f#xLcf}Pf;GI!-*GkdFFKZ_gD&(rqGck>abHiV(9C3rsGj7Oz8B}2V9O$!F3V0Im z_w=UfoURaTZoc59J}#!jsQrG|)-Yy7Cr8TFM6Pw;xjyj=oN1=T2MzFtQa|qJ`YALLP6ZuGO$1qPB!s_#jIL2+F6FcaE7-HjI!gz;>}Ze`uEajv|_=zI=H zTc&~UzX9sWU>3p1^~eNp3Fsk;Mu!7bredmFjTo3&@8RNHB6r0qtaAxkl+{@ZZ+j** z=mGab+Uc%n2Kw;P1FYigI>ku|P}Tc;<{JusQ5AK;l=fitXF_*az4ePUoh0Ah2JOLj zi)2-Gv?^M>!NO8*Tx{85MCzmjWW28ec<;`d6eq$^=49C#jrn8Y101xxdpcaGM+$Rj zo2~)Qu!pruot}$*c6UXO(~xUBNxfmAr+QO_a&EL10v~^;7gr3t9>+n!W*bmk0}s{}MWleB|8GVZfn#ze#5?u4IcFXA;It`1 zZ6{zvBBTGSRw7U9%7INn!|lAqo-_@*>kVF7jWq@}Jl@ z{han@-f{!SPws^F8Vft4+JpDVJ|r!bovR{7(*PbfI95M^RcIt@9$sjrlF`S#G+Nn@ zI{v0kYF~=W_`%59%(Hr^hRY@xRnN{lSR#xpl$&XoKn~_-iOo@DPl{xY#U$_;eU5tU zgv@J(DqHO9)77S%DGX`8<`!+hK-htIjyq*_Jps>ik=6$o7-6rV5au4pS0oC$ApjyP zqrln8?*&}yF3@wdbMl{6Uk(J&Z}@-}^c_%`H)dT?E9OU@1B&v~#? zDFHLqTA&vvzs8`d3by3~^$dxMDa6JLV+lXY!II6D7c8PAl!DpXQA8gM*-A?JQFv?&p`tKuega zb&oTuIt~#D0*q zNW8PR@yC6mC-SQBXJe}X%-$ie7l4?uY;HK zd>-_Ey!pNv~It~=eOc>lUngmstlT3lmhAg|jh2H=xv zg%!FIUyO{Z3126KXc*taL_+qF9#{Fzp8+cFZCdR5SVnR3b)0;(<;4+ZD!|cAY^_52 z;pe^Yd`yXKd3o2YVY;=V;cX=yn-QaA28z_E2ErD=jCZ`tEw!Y9C{otSk(#-GBAaLT z>*JF_g@YE0$wAb~`dG(%;LkyO4mwxqjVznEUNO^hKK`Q4B2o&%0uxD60|@ zs~MAG0I(0dr#k3BkSo=`@dg?f!_{+aV~NJ$$1B`dl&rq`zd6IewKDQ69hf&h_+iWt zjI5j@nYsUuLg|@c*~h!A{eJu<>l5{ga>v)KKzuClXCpTpEbBeDIlqk_z{kqW;wpt1 zq)>ia*;FXE)R$vxYzbVHdeQR~CP<~pa4;k>pir0VTp8n zQ17v;EbcUHf+Fvi&u>5B4&HlKaSGdN=7-$q++vdl_tMfZPGYsL0B6_ zo3+l>2x37%fL+|Z1n6at82Up=Z%7f1_FmEu4XfDRS3jeV)LVr~X-k^S&{?wz&WZxC1Me;ofhaN~b;TqueQ4-cpE zhqAc|tDBNf*SX4dE8j||@BNf!7yEs?{cdW`7^Q$1Ln8EcT4jS2P8Ih7C?E|GYxNl5nfF;}ovupuFeujzo43M5WEP_0-Z413L zWFAV-qK{VAN)j}7qfRQqZD!=nyJKH{3b;Eooo3^B*Czj&Xj7)blAe|bxHfghNfGfiG9 ztiqY&poK64QJ`-2@6Fqq%aDnNds6tpYoL~cBlsRQ=7 zO7%gp`^eSin+amU>;JSG;p$BWv3ag%UFWvL?fcTLjmh7?k=dnfK7e*!;uxRuNotqU z@ZrMw^TT=VXT@Q&F6e`$2|e7OgMVDx#~XaiDkzH%?T-0uwf2skU)ZQ>PbA9FJgv3W zN9LX;RpnY&$-XK8DJhUdwv~3H`LIbMz}*Mc83JSzf_kYjRjjaR_Etl=5IgqX*5x0% z44*Th1HzJqr9YXj-gRc|K93$B*17}Z@J?a;r`naP-a@Jgbzns)R;7w^GaZ`9X)RUD zpD#16sN}tnT=u-YD69+A@HEEBASxaK3D)4iDhg6NPEFGXiV^>34^-vG`V9;ao~TCh z?5p9tz&4vd$uF@X|v;oH! z{T0`417`%1Mt?dvA1X7sHLC}J7u7(mn5q|hUy5-yb|y?su-@7QcoUcko=!3E?hJ#e z0)aOQ>TK~~=BDQixZh@2qR15hEa57$LcqdRA9!oIMps~9AauRN zW8~e?QOVGdE;^ulAc(l_Ae?jHF%L{-_bwg%XV2cRcKq8lD5wJBWu;~aw={Bvjw%4V z?7&DOx9uTTw+Q5S#|&GgD&o)~Rn93Nu@ei~z`YL-?fX*ix}Hg(SDdD8{Gw)S`#31S zmxH?T&hMPmL&rvR%0nbB^2SDhGSCJRdGhRks{u$)yRq^0Gap07$}$G8g(&bWQZE!R zZ4HWn8fs15I4<$Di`fm~kaSrX`-%f8!!lQVLzrhRUDss;qq#5a3cgPhvPGMKZCA!- z5HbXYacP4aA+$oNwYp&8JW^vx(}d2ZwTip$90YDv988x<{z2yvp?@ZLE;NFl6WZ(2 z)_`SZMmV#_k(-9@6Zuhb9FTSE_RQR+GhZ(Q-jk9>w@f5N@BUh#f?iX^&Yk`&ah(`; zG0#AA@T_YTw~&pwfX6_1559$ZDHT}J={)t-Ex$ARr02c}Nw40jyaKF^ktt@pVU54q z41$gIta@3FarNhpb(Vm{f}SJ+BuQ4hY`hL>RjAKQB^oW*<;v!I{MtB!8RT{ZY%4Jl z5Ec0#iXx}nE6w)s=nvaJK7h%ZUD*kfAhm!(JRsh(Unu~o`NT3{Q6SzsUe?7Sck$Rw zVQt>wJMgr{7O|y0NutJ?14legV~uIP`1>)JU{gjN_sWJAx>TlOr2_E)4b=_eY8-)9e z^?@U$q2as37}4F&ZElmC&tX4x1Tx5qJLqr zW}v$ae4RRM*uWZ=Hj|RoK+)GN-p@*C#OTD9l-$h%f(q5-MOjk>ET+7v5nRhX*n{uN zpG=YfDF-~)2Z&*Avn^~S%3!t}a%Z`pyLj;3#QU(YHSga}AoahpRFMI^=$)S5h2|hv z10ptP*QRW5kk%ZE^9rdGywFOn8Y$M{hEwM8J^*0OH2Y{=ioZlvBfvuZFKul81qnN- z1iC^gKzlQd9*W@i>N&!#HFmvxAUhG!;QJGFA!-(hj*gE1M7vSHK=o$TMN8`40zaG| zq1Ht8Jw_-u(+o~gGTLjFZdlyGfR}9${4kKv2H#&VjN@|71ykY6i@zHPKo~nHk z!NpNe6J&4#om4qjm4^$rD{d1tY|n3~<5 zlxl5h0XwRjM`kXON6NBlwA7$nb^ex`Z(H~wY@WI`!-OXKo+&A<{;Iz1YbU}C=kHdw z0MYLqLmfTZpCJ2L*$h8!2!3VqvA8nBOCw&^cT=p=Gi!V>NC8Uo4NZ-OOM8yW=OSx` zFTOs!oqPIK_mY()9x$t6s+PyP-1P2M9GF><@yyzk<4goTp9b#EBojgKBkHwTdC6%S zF77+p*+Xv>&n_4O=~F4JW@pdwv|8kA#v4XdZc@Mx+#Da5xz*CFgS1h;U`aiY1sqbz zx#%faFxLt*RtyVqo2XnP#AaP_{mxDEc<1PNWNvM=K0m$A@eBOyeiOv6tCEx2$Su<1 z5OD&=-XYdHG#)BI%qR!hIJW&7x3R|OHTBC*HLtp#65xn99;eX>Jt($12Bf=LoLfW4 zM=IPG*QoOTqm1( ziEV-*BGmXcsEs^R$^JB%|0Po--DgLs3(I z^8}2Bc3jkIZ!)OuzzBcB-A1v#Rezc01sxD#hQfR}{!1e~s1DsNib;n8ZR<};m&hg4 zb2lWY2T^8cXPdz>pS)?5HSVR8&eOl!OY|NtAbuo%94=MXH3n4^rWS8ZYYNEbm9vQ! zJCA%)qi?#jpg+^rN-Q&5mQ1kIv7vc9A_(Gv$$eI3;tCbRz{G{N7cmH9s7fDkZ>=0K z`Ra4`K1QEgd4-J%4ybdedXTFyU>UUC@yG3LA@B&FyB`FoC`Db>+ANaAfQsVut5}gR zV73K4j@_6-hE&B~KQd5>F9HxRbKz`LW?N8Grq=G@9 z#sE7R*zrU2ic_tA2*&HvRku~*?gHBkL=J>NIivoy`c;wA6pgkoBZcaC1gu4 z&KoGZyx`mt4UG+93X0@QIFHC zJW-kUhrygDJ`UCe^j1wZz>(USk4iuOJI+#}?)JRqrQY{bN03UF=a6z!-lmNI{^l|* z=QgAQ%KTIqT;N__P!oN#*K%xLW~keC^H_*VDKNUbCk-Q}B203?7^4R2 zq&7krFa`|1d;fDj&f&n>_UyTzJFe?j(;;6%KAJFpeDeT#VafQxhrj=RvXv7297r9U z{+u{);OM#jA@0uEBTV4u1wUM{>ND|MzG7XkCrmlcQH(q7#t+`wTA+%n~z} zRqAX=D|OMCTgg(;oIE~$A~5mZk#y*<*%MjtHHAKZhwkyHdQaz7{;9ihDOLVX&*X6? zCSKTaKc+9&-LUZ)qh;g_RtFTlIr0T76H~(RBRnrWraQtdEgL-y9y!0u9;DZQxFnK1 zs&oI^WQ}i>Zni?%m;RR_9sQJ$W$}XtN1n%G&NAITZ#Q&AmRmW%sB9$U#;%Oh-Gj`+ zgW-z?bCe7eBy zrqjbS9K*{?zMDNxd~WzvSh-C}$H{Y-^QBxy`2DdTzl@aVAx_(&3=i+o>qAyt;ezIm z!$Y?WXOw~ykuFT`?-&!sd4%Wr>!zkAbl{)1_I4cy^Xwn_!g}`a(aA-^h>neN>+m__ zhwAFRXtY3C#_I>0({&KWWiG+Ejmk9r&FSQeqz{_EnZ{Xd8hK&hC8e*7m)n(o%2d16Xf@-^GHz*Xt>=Mc?-@EfcimVq*?d=O$xs`JJOhtwGr5?=0 z2MdhLvzcDayQ&bdpDJqIR(eI&Yq18+YuJsJ6to<3@68ZEJSoxTL7-bhsnxnU@>N8E zIH6_8A~iohKk2sJO^4njO|X_D7w_qPC$Cq&iHuwt`lNP-g$0NET(PmeZSn$o@yhp< zkj6H*=L&ItAVVSS&*uY`JA!cQjBMN0o{E?uQV_)P>A^5%oyHZ@~;mu zF-C7UIg`Zg)aQZ~^zt(WvK7MT>*IJ8%RdhNOK1-@?cfZ%bop}WD;l#P4C%KXkf|8B zy7=YmF{B?Yq56&0r}(D$eL5X}J(N{>>yIILf9C=ZPt`>My~X}nC%+qiK0uzc9aVlV z*d9FIRNnWG(Q1hgdT-(E-$#sMA=6kmBZD{`{sHFhYLBguMPX^pO3I4nOh>c3v7o6q zUCBu=lj6)5dN}Sh8HLJ0d2iiMMX#hudo;S(D9?~>Ltqv2RovE+xtJGwm`GTgV+@b- zU{KBP=;Cm~)MGX=+b~GNz1jO<^hEq*;P!WUY{$&Xu4jyYcO0)%Ipyc!Kwf)P>_Pk9 zm3uGmiB4J8+<$1d+8^9KF!U}e1VvpQciRj?M17LhGD$(Z&K9@V1av77R|lN0D}1{n zn%!a_GJu4WiF5lIvThwNvscF4H=X%j@16@NJ={vMQz}O}&pd++ub2p1FO985gW)ep zXDI~u(4Z?*+ruB@2`W($d)|HY1wC#Bm$RI5qqnR|pTEjc^Pad?JtM(BVClZw?mx4! z(C2lQq&hCww)R7fkFq%|+5HZq&gJkJ{(e1Ghf7-gre5l^H?X$(b#e9h{mFV%=pic5 zOZ^Jjl>XFjc?cT*yT0xnydUCE;uK;>v>oovxABaJ4=vJd*Dga&zVkm^&hkk0%Xu#r zPI;U|g%Rp=ikMU6GY!FW$edxnwYbqNU5>j0ZgN3v!Dw_#v76-J78A##(7h9JNmzeq zajFinzUQU*dv1EV&JH2|dG^2SPH~yyyiLy{KXiZhViVxxz*ucKAFhTue&6nh;S%3H zpd`+m=7wgib=fQBv`i6B^2A~qgt}Tf8w1%%=8WPLwaDMPsgL5{9>k2U? zaA5^!YAr3A*|E5O==L3F*}c$-dcG%@5F={?VVj@t=6f%H@y7as3-x$a944s(orZ5) zVTaodj|!YW<+E;8m{zSCT-n`Rv~zu3A@(bPdC>sBcKISIi;dWowWARA8|guFsW4cI ze9U`j6Q;Czk*NM-KrV}1pdKT$Pv2KouiyXQ(QXw6)SR(aF z!g^Q9^=EBg9^7@Z^KBPD$)icyfcK@#I~AYpd`?SWTy)mS5;q3r^QP<6@|V6oEgkD% zoDtL!K;Vks_62AEre4OfezK}f1Y86rGlonNg^heL7BXttjh^hVYn?(Xfda=R1%If`S~fwNge6ZCfz7g4VfQ z5`bvJ{kk5dT)yx=Q{Jb1tgnH)cdQbEtpv~sp@D9g8RfVweAO`M*wf`+m*1Kw@*o~! z*?aOc4zm;krT!FrCH++og|+z&uY`EZNBwps#gqwJ=7Igt+(SgR?`|9QHHxrZ;QAeq z1)4yGaceSZti3{Gi{Ax3$m2Rx*rBq!d7aSWizaT*Q1CBNo37C})8!nXe2p!2NYX-i zZ+nQ)8tA{b?cqQB(=*Si_eWH~jw$;4KVH2Jg5=$Z>=uohc80bkW)?O6{uXlsP z`t8v1Wy2LL((XHV9zq%#p;oG**REZww_9Lsw`zKujIde_Xa_SY?J_gI$;pvXCRtn_ zK@3p{TFjmDAFH%12tkbE)}a0B@I7jA-TzbCXVi7FhNs$k9$#9}R4J(zqb{DkV;i_== z31pYiSZ%NneL?l`eZy)opRCKww_sL>qQ}V$U;|gS3?MXnt3}20jwLu~36q7%{k+SvTp>?ckV}#-ow^%&hCM+qUFuA0h%w5Owsl~2>YPQJdrk3RYPqa+ zXlIoj3&bn)$R>hbH0MjB%$d$ThF@aaeDe(f!>(UMH#jfl?_m&D?N3l^I|O15=Av|Y zd*!7HlWC~Uo1&hj5dIi+=noC6@v4W;<_CRVsAg%E?Vb0;Vts?TqH@oMDfp`sXUYuG zx~vXStb7uY#W!QqZ~gb*m%RSO^~_EcPS@SvP?r9JzLj>4Gz_ed8_kNYuw~r1OzGwR zXdbvaJzQoe(BM8Nf$d6usKwDUHDx&)n^Ag}Q{sD28)&%=p0m9YF~?7wECV|=gj6=Y zv9*N*n6V+0Dmsv=+_^a!acqy|>RhVADWjxIG`b>Hz4ouC7Mob!1x%8D+_F3y55!Xi zkdZ4c-B=;;AhT>0Z-*L-h6|FZvrTT(Z@gJC#vyqLk5x@AIK#p(c~gp6c@;|MDv~Wv zMmHh-N0M_Id&LrSG&~M>u<_bo+brO&y(zLe5>Bi}kA7TQ*|Cd?psjEi60lCXWO#9G zz4yw^CJYfQPiZjOF&P8O$x+y)M1_B^Lp4s%l;^=g+YF$3?nd-bix+xTZLE#0%gX_b z=>rcApwuMNKYGb4ntzLLR4+}!@kxptO)>AaR46Q$%pVYKMp?k<;I$8PuB&c?+k zT`sS{;Hiy6zl}GyYYs9^7|+c@lDQ*OIpI9r!R}Jd5kW(W`;vtFJpT+HdU;qjNCzB3 z9q5gn1wGiEw=4%gHg>=+zic;Eg?ysgymj!osm5!;20XRrv^3)(oJUIEJG8TUC^qBh zp=8XIFy_;)Kj{kOPH<_7x3q1F1&G9autC4tU7pz6^3g0_F?5&PkkA&q!6lSZS-YQc zp1vlxWy;m|jAl*WS~$2I&%t*JHqAF}UAdDubAkQtp)ACw>UMmARR+g$=B&ic*c|sa zndhW&r(1&tQdL9m#Sl9#=0}Ix2PF;XdLF~pkZ@&A`!)V0eIaS#+0yePslG2$R?*Q?EdL%&)QYc5{DoC9i_|I+9~RgWF> zhtX`YSj_zUYmpyP6PGXYo@%L`OA_cr<6+U@KK8`Tq|$gy*qkRj z@gCcqBh`sMY&W0<-hJrGP+)F1BzX@IxEdv0{ih#8!iTi3t6Xsj@%&1q5Jv;}`1nLJ z_uAjGaycqE@!vKsHxe{xdsD2Joj1d`Eu*aJ-TU3Fb$k}-ucf@Vc_-^SOu_$uOi;VV zN!XMd07Qe8^o9mUngydabozqIYOMB_C2qa>EoAFV+Pq!7!D;ANuHL{U8mi4EYGjru zpl!ea-o4kaUvGFi{OWQ%XO4xmSJ4Syc2W_CO|23FV3I9c>bWg|AhaM*iDr{Z$c8e=yU$P4~pChBVxjljk94OICKM&dI zeE`*Qv2&Hrburhrcp(|#1MM&|jos6@@Hj)Js!uG*%e(;xR+mSy41cO!SgoY4o8=0*LQFla7Y$LXEIT=WcTRIs zw26o+drUHH%`Y5p#A_L}v%bIw=@2p~V8k^A=oTEV#;E5Bmtu%jB_h;pW@e^XEI=z+ zY#4NTyGklnOjTZKn@R}`+P4(Gs;Z!1Q88BObF0F#BwHl;ny=}70PJg4qx@Ob*!jy` zh{dF-iX2N6=7v_%Xz8c8&NtVtUx&pNvmv`b!J{2Ip+F)K9J4Fd%dvia>Z~{%ldUM! zO>_CJ1#Tj>O7jw&Q1DH11FQH{-e2pt!OQqfp7 zC7%@e=IwW`q|G(lb0=eEZsuu3AQXQzJgSk$2r#**S^$e$xbfUMGtfeKe0OUKIIm^P zkA#&KD?9k9WP%M)FMe-(_rXP+f=jM;(3`?eM4|W2Eyw%6$_G7HUg=>x1}G$%(^aR8pJl3fi({Wz1+MXiEA0|0ftIoq==-TF)mGC2W!oOGGBc+? zMjIF`w{AdAp%V)|z5ETqx##W$&`_aUk!lhWK0dYb@jp!*tSt(r80Z_?zP7o9wR}rL zVGdRT6#2^>W7CsgPC=Kvyu7wnhtWnVwj;;0XnQdZpr@`n?+4B^^Bvn`@p0?;6q?T|C>Fs&szyjS45EFuj6TjTynf$G&?B$h$`} zvj?x7d;5%mJvo^kdE3>-g;1F@hOPGetCOvT5b1;A~@fg~s0d=(j9f!J8oqiVt_G zzoUeHLBD<#n-_+Mha0y#dc?;G_0*F6!h~Su^<~1voOxhPR-dOdnkPECPJgcHgl$gv zI-%u`ZC5MD<%!<9^MiQxlIHC^OkT4bfI=>%k2^zH2*_j9+|e?_iVkebLTrXC2?#C4 zcu{NDRpeB$v1NSd{hi%il1@nveRJ*XTs9Q+`@Mit2p#)XFQYdsEX=6bh!e9-@#8g2 zQ*2M+W&6qZbNzb|ZDSs5>DA^Sc<77INk+`JxRsPqwOYqkj4GYQ+)$AFjgPhGhdvedCJ7e2r1!&aWrfq{ zE@M+7H3sT1N^VGI>G1i@%cxrxB5+)@LE?iY*Zq-bv9#U`&#bB?^&puFMIZ6VicXDz zKy_H`)%s&7?Fd(FZLHb^M%U&yAM{6Qdw-5gdX7vcKc_NS$5h1ZybmAhaJ8A+2EYcm zC=4lAuj0bLDbL0+7+8CwOm_w8J&A|<4oyK-@E*VBDL+Fv!_17WY^me!1sG6eki()f zguhvm?_1}Ok2CunM%6|WE3HLTv&h6$q!hYjQktCFYc+tb_0OO|M@uPPmjjD*GE7z` z>jQ5^$He%x^qT^ttIbhfteulj2n}cr?*~xeKvMGXScW2DgHPS+fL-Nahgd9O+S$aA zpQLpuU4I4=O)<)QnP{|*Zl$QYa{q(jgY>c+#grf>m1WXR9WDTi)lV?9X`5Ws zx>4_HT%OiDR&7&|Qh{<8ls&7am7-X!GgGN4iM97VU8cPxF-aP&QeL)5wM0qtGG`}c3T&PMj50esRC{hgEHiKsQiruVuI!OTQ$jm3!@|SY0==^UMBm*eIql{L zZ;l&a3D$b8Y@N%aWr@YLZ@8~{1Gr*n{`FNPuWJqlE?hJxbf}u)3$z1KYh>y4lCSD$ zgkdfBgzqi4jt<>c)Bn!FT2X`il z%5nGGPgVu@>j0326pu@WP_|@o)&7c?1kK((U**SuE?Q`CF-pReFnx|s-aUJu$$A>8 z*bPTvVe(x=m+rJQM?js^4LFS0_5_sp1l+Fl71rJxwRY#6?DN%FgOahsR(+@5)E?X0 zg`FC#WDH@x=JOyCLk2w@G;d|2y{j;mR#!o-AIvaQM0z|&s{G%)?WH!Z7YFTqXYfF+ zuA0`9xBl`uJy%pvu(#glZr-cN>GZN0cuc&L6ue8yuM+}fkbxtCe3+IE4&P|gY&bxE z8D-Dk-|sc$M<6?<9{O_hH?&<&dSW)P@=^Xj--P-bqT8!e6*4>)6%W#!Hf<5-{#m$t z?P~6^9_@m+2sxzy+yEh1xF$Y6-X(nMjia;-p2V!><3qTnUr3L4va`6Dk&=?)syLw3 z=8c6;V##9)vG6v0J3ZUgnA>TsF&#b|yx&rhR{x8$g7f3Wjkda79fj2fXoN7Wi&2!M{p1&$_4bYMpM1* zMk|dCmEmie4X*en75HisBcoBZh6&F~QE2gI3Qf)tlTq~ya|w4g8h4$EU-+oP$9_i9 z+I$$evMXJTuL`h;LaI%%o(n(KZ)ie%UJ$$Zz(Xypj+C6njdWGey8{)euro1n&uBil zXVmPxbSNxLcOX0Ltz`>s84%36Qtrt2eN$%THSXqf?> zIiSgm0O@k5yCK6bX!d+0l#MEXSJC80b*#_79Nl1C1XkcPUw zPfIR%t~z0|aA75LIM?=Nn#9v{}ji4BZ|1pJZ-if72q?w*>_MZyF zOLdqH7||KePw>%mGJ@FTF`=I%HFQCl^;;TATTNA6t~HUp-oHjAcFa@0T>@Z-AsT_T zE}@i&I%AOoT++|#Eu=ht`Ak#;WL)7#dy?MzbXBc^AX*u6b)3G|HEgG`1r!Tb2Ne~S zbR}Ep1Mnvd2(A96U1u(B`TfQArivGg6l!)pfAC-S`JtEgKU!LAePsg|MAv|YP%QrA z{a4rdnLkSRGOa34d*Nb-Jpt0HFtrKBrvv46xU7(o--mCLUpEGMtiE5k~dPC-~z17j++I|ry6q!y;Jbrq$o?$QnROhxK3r-F z^WZFTxOgMYF@X98C&)5LdGbA~Bs=UegItv*6mj?BDAW7Ume9_}UxSk*}#lA=3@sP*$89i-pVXlcats9Jc1 zX}A2}sy*ARvPugaDH+jqSY?SCGcqZCu@$n}CGu)7!6BOHH~sG2KRV%0M}CB6i>z0c zEibp!aY?y<>}-6#em_1g1$cYrHWTux zJbz0W%WSls-?f#1g|9S_@y?0Z$pw-02BUN-7haN?Ngb_wdv`)Na2JWr*X5M1}@EtCRjz z5Mj|$j^2A*U736@dH^sA>EKEGC<&mkz{45~=g2v?w_{wYKOxW&JSD#NwDP&)5TK`c zxA;xv<{jf{Y@tB&L1EezwwJOGR%!~$8Bl0mEY*oNnabbYb*6$>Vvu9)*+qb};BF?} zb`>u)&K==-R1CcB(RxkEsM;RvO}Fi~304Oj@s}uW{Is2N2%W0cfd|q!ckdYv!OUmf z{P>#7@v=eV|G`eb503qL%7f5h{Q50x%tCV4AnjTYG`?=fvl=GrHX=O6tT0jQXjpe@ zupNm0uEW3Ac&rV_@>@Obf411|Tdm_q!zrKHHMtIG0=%(U0`wH69?!F)KL$j^K8Mfc zre)O$H@G{0F4#m=vt-Bwjjo003Xbv(yvO>~dk%&7H1K zT3@_iir==?fD4((Y$3T0x}JONg=h3B42r@!3cq%qym6PzePSo$5S1co`K)C$2VPow zi{4kZT@=$ttA9Zyt|V#21?GP1?1Xqa{v-iW1j80OpBIm9wGkUgQ$<&;mw-^n zuq8|}t#>x8-S9)&kwzfrl*6#z6G#AgOZ%p>bS^5GPqaHVS%=oCRU)+hiDbUixO^rw zzBRDJt;4GC*ZS+gUlm5x&*ZUw_dk;&f|qw{9>@ngs{pEPxl#3ReHn*cws09}L$WDC z_E2RH2d47Hj^0r;7dUqs91Ku z9`Q;2+-DAG(Ql8m{~^J{+z18#-K04RNL{2$`6swSc!UFzYPe`l_XI^}%m7ote!$3^cl{OB`A|4HQ}({)NZdecQN@ zmd3t?-x;{b7hc`5nlh5)&~LywusO?Ti@Y^l;iU(hHQXGA`_iQ%V>gqsfY%ngUtQ#( z_LuaNWoEiXs9f$Pj9_kk+!?t2gw zIFF4_zs95DV+JobX;aNBfdkjAZ0&^#X>>~m>$?^ZZaUYS9KC*-Q^J18^tyUl$b+zT z9EU5ex@fyOb!cOi&^r0q56?D-#i~Yc#~XZ zR&255>iRYR#QPClpb0g&VP}jEBI2o|b$aLeFsY2z2wG-Hjl~TpmS+vw1be(Pah(4+ z*(Kx%{}mRJ^r#UB@qQM%RJGE!GsJ21XRg2Ke{y_R%``fMe}>D{Yfmj%dC16C)?YA^Mc>Q*WAW{b4m zN4ymz5;>)VzI=S(W_tfNNPu*QZN*wNdClpoI8I-V<&;%t1dAT0h+c z=0QQt3T?yI|1)VFMc_jC#0@GHkE<~C|M@c_T$ZNTci03}#a06OXWBE2GY~Odhl^X( zXl;=cDX(8jxN37thW7(n1JZXPj-g7zD@@F?uOCDlq~F!>bBc;*ucsbbeG?E zKx2|YqjFu@Z74T`^6~|Z!wf)o*9WKi()sgw*b+S#@K!Qf1dJXTusT16$>6r{P1WpF z-8C|{4%p8K+wFI0aG$ylfCyC;@uWz%3U#Pb0KQUX(_-6uxY5{BCr5l>bc%>QpF;w_ z<&WnCsiuL(jPweUYJYOyKQrgCjV^opC+KoC7RY151IgG zPEfI~yE%{~>Y>m+Sqr^iqK46W=PWvWf-Cp_8RV%fyI4{Nyf1=+BW@QXO3(vldzQ-Ds*n0FaA1BLJ#)~IWK@OyG*Oyrb5XxWu;Et9n5t;d>-8W+*N=hkmJ8&uDx zlacHp1)MBpx?lEjj~pRTrHv});{u>1}FVrD1WrKM}!ejvekHjWdqKCAt=bniKckTHxR#`O24wZVEouF6p-qw0K4oDtZp z%HZZmhyk59Piqt()_eal4E$j{wEYS;MNw z()8LTQ)!pc??gM&EL8ndi$hea=HfpxfLggFBVxUI|8)WtVRWNQX!A+YcjhKW(6GFy zLU}i=C;djn%^13F=Sj$(c0g~O!v}fZ_~-+O6I(8_i*LAhy{+H4U^ljYYr%tSed5Pu zr$tfVT&d7^Bt6XPhKYYaaw~6-+mS|V5*z7luy)mD9*795HW{#VS^40fE)`Mx>ga1> zf$iFKxYAX*SrIRwT%x}Ufr%$63^>~WRqMOfp3)~#n1T+MsyT=>HD<9 z(P9_IQ7P6@z~&PJ+Da5UEe*?aFu;#<4S$;Zaf|; zHBke(oWd$qFGFm%4qOmdK!%PhS05(C8tAi5_xARhbpmu zpO6kxVjv4v27IWlpsV8G1oH(P>Vxd+Ln10I7id!7mr?=$!dJS~H3ZY+Lz>8~H8V5} zm_pzlTQWWeELn93r08O>-iguWV#c^#W7WlIJ&n}vBGu9m94TGFJKaRoya)uUZcW~a zC+ht`ah%xT7MJ2fPT4AnNgdW_Z&EFdh;P02iw5M z3a%eH{r48-L)>#ak||T8O!$~z!_v_10g+wD(m63poCAty=^Xl0py9VYZ5|17i~)Z< z7-$1L5xCo<`j0Lec!Ul9Yv(C{+J-|Uj5*Qkqz#QmyA8sN#W&nLc=s9rG9u}3qsOw= zB`604q{kpzKxi@r6fN2Ia>z8*d#?YJAqX-VhT%z{Ki}bz4|tH5mxtsEFn(+MLo5-> z$qw1L4H`-u^@Te~g92*?^uHw%t^yfBM2;K?R2@BfGzoC0-t-%8AKLC*$hacw`9rpj zXvJEU-ZTOZH+L`a+d#880z-yrG7_MGublaNP9G4gO~CR`Z$KQpyw%syaUdc3=Rp2< z##d8D#ecr~^Z3%Q=Qe=s@+b#v=Abz6-`D{900GC_YH!anoH8)7GL3DoZeY{+F}}Y! z=pINqJSHZpM?^&Qf|M@9t?6`wK#T%=`B0N6P*K&j5xu@L6UMF)&(nU$tFk{uLywz?3L+?Y=sstgpZKK1qM`lT6N7lw2&)OjHNSm?uEK zyRg;V^VKe1x%gUSbTh8#5TuQYYqirPZs_-M1MT3p>7Z4OF8e?KMJP?u2VSr}#b?7< z>xA}pc1lN>;R*FR?_fqoNhVdWIeqp_MY%!3W9SIeZTwi({KP8dxWItYO{NR%fUnFa zi`tO>?lc4-ikc_9R!EZ#ZpG5C2@FJ|UDpO!y=u4jccvGAdhVPRF{{4|VyC=#WeSxu zmRE5yPZ;XhUvGTE%oNHH1;^7+80S&EjeHWYqVRL%^Z$#CQbYXyCs^A-jZQ?mm{nWu zJ+)Kmy*AYblDwAxFnx{|Cw7-=Qo2csx$zoTm4Qa0ro!cJA&P)yY=daGdil}Y=NY`p zlYlG&Au0JvSxb=OLpBM#Y7Ja-9U6K`#a98|1ZPCb031eJPyuUV1j4|JxV*M|gp+N7 zOdpR9SVDkczRAsr-PabGl)@hz+q0_*WCYa~>3KJ`(|_vovRy8e5t-sQ3q8UwBHDhW zM;j>n2h;Qt^$6+vl36#SLa8gOwJu-L9I2}?)_4wKi`*iiP@D=|6FXX!Uea zK+S)5^Y+6B51fHg!U%#bNdp0KRUi5aIt;vEwP_2``@j8mNT<>s( zghe%NuDuE04U{iR)uwrte_+3z{-x?96Mv+N@}3}2^t)rO_@aQH_~g1q{3uW))>3G@ zyMjteO5NcsJW|>N=~7xl+eaT+FgoW;26XyXcsgA?^sR#&26QX+FolHE-4_f7x#gvu zx~egbPV<=^VRTFir@=Yh4pWh~f%Ja(H0HvQ7R7v!3O zJctJ_i=%l1|DUT(E6X^^#Psu1 zb(IrY*QmZMY_z_3W83kYk&#>jol zEXN$f_J8m9_js^9_SinQ_xtsJy`I;;1x^HhG-Q19?g{$smcTV-|I44O#075n?et8% zH zDE-}&YMVvoOgSIjH>tLc01@1-!m@o8u^+E~-NzV+|amQXU(pOsG)`w#+WP?Woy}?8Oj?*9F1basR zk$m{@6#e$w$;)BPwiCb0_^H`p!0|K@B6;Do+9r|K@fowOQ2|_(SG&zY6W;M>hy3+ z&yu+tJ!T`Axn;h5{CEz=)L49WS?snRLZfrv+rpOl7q@%IqnW6fn4vder@Z$%ZNuM1 z{Mr{K9hZ%q5x61#q$7@Ruq~S1XLf-}etXnrBWOZvtkO=erD-ow#%IM}eiGm4=R^79 z$fM|CZUv3}xX8wq9}~)vBx<8F5B5^)xcqrkN7aQ(mk>&-%y-1a^^ID~I>*P&j!=(u zCdk4)U-nK9E4WQI6}74|6G&CGCPn|CAVDR{+0HDX#*O)Id+F?_!SAD@(9rX63nqgV z{UWw==f1d@RNc{9lRNGCr@Z_gk9?^9VsG|HY&s;B*v=n&-?sBB1MT(keUrT0TV6Te6XaC>YWcQ@sUi?t-JX^XnuOp8BLH$URN$w{tPnFnQA^?_Ia%x?cllN_%`@sh~*bsg1v>&Ix6o<#NkV^!c8*ohk3pQ;qU#Y~ixWtjOy~U6I>ul&;<> z@5lH-*KgnZWg8SGc#_M@zDLY0LPc(f&}`pfk=GF$Ph@eb$z)S=f3n;zPj&zD5LB*oh{ABs>KrO>UV_qb<<{%!bySN3 zvAy)H!6F;}6wLT&Ej%K4bz6FC9B#Iz7&_CZX7lS?j>@MW$`=l}qq;76kdrGMCanjj zN;eI!Ku2t}Y2VwYLsWSwp9|nwqAJ0X1Gml4E-@W01BD+%1Abh*zB(fThl>WzjUW#3 z`-hXw9IhpntTQ4WGf#WMT7#SI?PN6i09Cmw)V<9WFF%{VZpt-jt!IGeWwIOeqzW@m;z+ zOE4&WaW&7qx22tgA-+%X^6HIiZvPe<7Ly_E+3r8_H|l%)Pxp)b9PGX38xFL!Ci|b; z=on5>3UxMN@-#Q(CY;gY5KLLOSNVP6CX5$3+*K1(#9F{{-pCz~GHSGQja)oSTN?Ba zD77BnCds@AzVA}6lk5NCvSpWC!{+6%Q)flN!{-PJvQk;LO*&A7V`B*MdG3LRi;M5% ze@iZE=M&zIt9fa5CqAO&0PO71y+g@dH1(*!^@-& zqT>iU(^1jzP4`|{=%SP?eVZ$+x>fSLiw4|I$;K%R$ujNBxI|xSR!ru_*|yAGnaCNm>z*T0 zXE|J*mnN*hOZnh&eaczQqSQear1`4QA+dc zpjW+DyJ$6Kl6-u8Hj^cL9+bnoS(u-I7=s%nm~;>BBgO>Z8)nrh?{^i%L5a;!C>m% z*-~E_i)e&Uys{Kc)^E+>mueVxI(8fFznnWxp7CUE!wzxi8I)O@xKcb4I(&l2#G+(Z zv)ebse-dTD)HX!=3SmowjNmJ3196$MLtoTFLbjGw(O!#j9mM8E)G=rodr4E=qZ4`p zUx}sKRR?Ypa~l0fE8E2JmEmTjMNn1PkJeWFWJkm1qJDvu>tXqNd>NL<)u`Dkv zsb{ZYaM(`v{@3@Yj!{Kpc+bg}Ka{V2bZ&un|FaW?w}&fMv2C>PWrzk1{9SM_;F08!~ER^a$>>dnUH zrk69HS*@FBQjN=`I&H5PvMz00?$AuDdzGbRvaFkLkn4Ziwl^6j2X)GI99&^4&T5!G|v zhGRhwkE~RRWJ!Ijm!P6~@!Yw;+6%w^d#tk0N`(A_o)>!E7Dn`@mHDFTYJy7u$`UYI z3jna91eD#ixs4wbh@!-jGl8Rg0P zZhI8U%0^Nbt~n^h?oXCgpd02*h>wK0KA38}1s=sroFjh!)!lrSsQ=quT|jl4J1P!} z8y@qruW{-Y$drY8^mhmqmV`F-B=SCKT*B?ggUAj#=CsWc%sboC5>+3dcZ!8)Xv3gO zD6Gv4FXPyyWtMcu<`x`BT`%BEeH&0CfK61i47KgyF8ugW5VzjJe7G?#f5Zs@MsawGO06mAJgEYaMz-CbbhK7g+g&+-M`W=e(!9i9OR>` zNIl2{Xhukl{xYW#RFZ?$&Qe95)5HN=7vpIrg2WIbTUe5Wv*Diq{*vjg1doij_U5G? zF_<@XVcb1Ya3q0Jz90Ev!0k%g(-pH_7x?yqniQ%szw1^&5EveL(fiFrP;~c*T?uY$ z_(mTote-@!BBG+CJ55{+3dQ}aI`4y@I6>U~&ZvA3FZdHk{^Y=Unh z;w-mQhKwgppS0HPFgwzX;rPxLrs)%PQFz91XNt*L5-q1Sa@Ue@&+Xr&FJ+0tX6Svt zsBbeICA>zTOg3G7h(nPq%#GndIwoPuLcJJkxuj`U@3R{21!1JHv5w}s1$YA+nNz&n zO1vqQ4?fIow&PR+DS1&VvX&<%EQr};xZ%9#;AcrkwC%{&DEgNQ3}YkhJ2o;ha(NRg zCESsc{lI&`zp-mP88i5s74eheW$NRBsgo!i|27KXj>o>~*CLDEc|!Z2qN=-%pJZv1 zxLPOYRcZ(XpI`6IM!z`Ab?|9^9m6Fh+FonslOOtuaA@UjGu4C9Ag@i-JFkvzMD~Bx zVeJa!!TG*I?(Ym|*O_EpCliLGsH5mXPrkYzZd}jUg{v~0bAlT-+LOGlR`B|5Z%HH2 zfS8CG3Y*yODPE^cd90ws{o6KbD1_caQC<-R^vQa~`sT|A2~!s?J;bDA;Mo!zb3Hc2 zTo*6D)ZkPc`%jwBshHJwJxvtaetWqig#QWq&aZ#B^B&<(B5bfoz203wo>ItVurq#p zvI!Eb!ff-MiFyF2$UC+EJ)$J;c<|D|zvXR$KdTT^!~J=2n@$Zj0pnlO6$zEB*Dq(u zoB8@I4=F3U?wYhkU5Xy;UHCw!bO}UOUa39L`6NY4sxe_q`EjsSXD`iq^oI-%doDqVTr-;T@xPOgvS@}9Vtohx_A@n;5}$&T9VbC#iV}8 zRgN;{<-dLJX|uvo{`u@!arxT6`+FWvjc_;|pa2V{Q%qu+V)2Op{3PAg(H-RP)dsbg z&YS(f*180?>W)X}XN3fQ?)fB~iFN?%8i?2xOBQ6_-Q6wp?Z%l_1($+;@q4<$vhJYx zYU{}kfAd!8p12R?qTXK29WjGEQ>GO8TcBcdL3I?;vG_a~G^XVak77Dvv`W+J2Hr|D zk_VziOtOpsP9aME* zyoAzk4P=t1rp`ERYNhi81}#rDE)4Q_zlSRLl|jec0@soN&~?zJ%cwyyn1O-t<@)J- z&Gg~lqZ1S++Igb>cwOc&oQjCL%D%N!zv zStRESn#@MTlCkW08uPQ5{o&H-v+GuCF#(A65yMLRt};J#i?aY+NbX>F6AmHPy1^a| zj`q(^tgILVo*c^~FFd>`f7jjJeehJ{&90Os&<{k1_m@+$xm$L6=Scq!-7DT5EG;>d znpSn@l(=OE)*46sft?OvZfisH4NIRj`S=wPn_ldW3Uxb_PZ2Ot&r^|MW(6G7TRLug zp*x*Z&gElKaHpRhJ`DpsjtBU=@anNhnZ)qONauqmUa#PqpsdLKf8j|AAr#|mvoZ~7 zvOg+v-iAIj!G<^1aL*Bl7Diwua(5b{V5QGeL<0IYpco!`fb=EblLG*&=j`+QVp`|m z8tBrZobvCKka?3fmz2BrZKP#Ei^AcOSluM1%C;K;fvvu6AD6*AZy9=+zr8k2sGMwj z#;&=j11J)Z4VI1JsR|*1OuYAg>MI1Tm0Vsd_#guQNnbq*<3ng}R7z(?Tvg~Y5*i^B zMqtCze$)&F+J={2fCl?}-b5j1$yg3@tolWf^8~Ni)?N(NMIZ>Xf2x8xyrE;|2fp$F z^e2o#uJga8r@Ct~&W*H*3u}r}`D#GDz}31fYG1m*dBItG0AtjeX+VB;_Z4RHQ2xvo z=q}o?+FnFf($OII2zT}*v={8=Zk+h>Ynp_U=}9-psHwRb+o;N?xA#ts z)q8;?mh7`O(U7-3l`0Z^c2(+E>7L43ze7E zTiHZb9-i8!18z6cb>ZNU5DAxms_N;IrDna*!Fq>5fgw+1B>>zhs1MXk_n-84ola%8 z*?7{&N_hz_y{gNm-RqPyQUL^IuAJ?T{!bz$^}gNx!)_O!VW3|5@%_6J(>wbZc#U^<# z4-|!rGb1)!$Lj*Cv+Es3zkE{d^=r}l3W*iFv*&!cIHlokTcIk^1u40}gvO9s1(L)F2 zD-WmfEp$2a7PE%p$@|kMqphIRn(4+`f7w|Vr|+DepI;F{!U(?1>ByYBWyY`)=4MV# zcfhQ(S2 zuHV!%c^uQ_v#{K2=c6i&c;&NOxYtvN6n*FW5kSHk$FcUDRr>;#b%@22H;C#Pn+7Bu zpZa||1#rc8eEMC9B7yp1rz_3w~-;YH+a5-Pc zO>zql4|g1%Fk!X@$mQH3qmZHeg^5&_X{(n{-9uplM#Zb!_<^93A8Hz~v{^l3nvaHU z*@Dd&x*G~UGPGwM(>Q?8MEbhoWD}KDRM6%Nf&l&^7!C9gTK#MCjd%q+AjnZuQ)zFy zGu`%Bt_#x``Je+2y;S71S)KdTFlWJ@HGS?ZW`*?3&felTWY6QZ`=I<+M+uZIVJ}q6 z)q<8c@4scO9PKzRGLEfHA`jev#}5_hLCAo?OU$+azfydq4j|Nf!O2y0;!XTg$$p0H^F0dS9Guq%}(8a{MOR{ z=~F8!D_oTyJd{edFNI+Yp=ZfL{eZo2*8-jJmXFw*m$5#5R*YT{j4k$mM5#_v;sL+3mG|W#cav@SA0vjk@2+!7g)!q%WxH&pj)|5>7*qM9>S^6B0 zYb^_JkocVdgSEI&zbyBl|Em2Cc#Hy4K5?wBLqC-IBOnrT8v+Nv1+(V4x7gJ+GO`oO zJ`%vVSOkVAf+bBA&Le>*lB=JI{&}7$<0$a#*VPL^)V!a>CZNBYv%P0tG+^4YL93Eh zRZ&@)$&c>LRM=4>O5N=GBp+F6_j~1D|6+4ZMW!@n#I8Hupuuw?YO`X~)SIa2>R~Z4 zSfQj^3Yj#TriV_<^$m~6HY0l6G5Nlw<9Bw$)dh4)-fbvkjt~PF;>D0z;wOZJ(W9wW zmvPPZb;GX41xZN52Td&u7f$;1S#cHV<`0OqW%s9}Fh$_?MXz#xyz}A@$nHVjicNcv z*s!t?3gnSZmlpEOFkZCmAakwrPDI)3-)&@wYoV+(^?sYezPm16u{Q8dySui-voL+K zr&)Amhyt;%0J)hb`LRs!Tsd{Zm6wqqM{NSrs54n&T&ad{09%ekRK9EK^C1`S`2#zI z&k6k3BTG|_C9i~hR)#tc6K7AHMV?;C&CS&iJati6f3!4p1-2eE(W`%HurC(U;1F}9 z%yASO6=W?}fGH8OkFRr@M5jh2-Yq#$-YgZ)n|DP&x)Y9_U`{=DpI^;v#u}&! zPJ=l$>d7H0eA|@Qub6LKI4bk;kGRurRO?O|x}!_g)90=BuL8HNF4Kg zoaJW-6|l&{Ut^8eKHnPop?Kfk_pEm$oLiD9r{0H1`RIBZl@RA8axcq|q=fuFn2*RdKMJ{<%g%@Q#+Fc(iN7d|#Mdxl`_Wtu2IZPndN3nOc+%cV&qj+b(xA{^Ok??7C4O^jH04bmQya zIY!^AdgYu=5sTmF(`sGtGxzQoAEKEwlr+E$<+gh_Rp}Z{#nDC%NpN1-mA>v;pq0W8 zpcTgTn>H$&0!QlH(n)FU?8ww&zHPZWwAtEn%nJP4Vt|O}!Y@a(al9~0W{_ty5;nYI z_im3IIx!M#Q9nZszoh;_c!++IGH$=5;6f2E|C8$fIu=|hO z*zfMlPS_rP&$-w$+sifVp19-}s#mPR(Y?uiWA0Q4@`{}V^CT;KPqrTcda#QrEWFJl zGgI&Rv-txT-`xDXZ5o#Lwe9EItn##TVr8=hViemUMq0=tn2b;V)^9QI?Okd5_Q_9? z965&5Yn+@+2j!(JITw70xSAV|(Txa=beA;e7n6VXoCYg3-=dze{N+3DeT757vaIRM zoXB78T08v8z9p^Ps=4)uO~S#oD|cQ*l8jI$H(T#{&$cr~N}!%4-!8INjxt$m4KSxf z8PKwmg7&vvMHSc+l&?R5-U^;1fB^`Ke>9pRMRdl`# zaRv|_gyCE z?MkHE8i4d89}@UAW_v?ILdX+Uy*GdLuHP1LsrWh8dUE0OMFH(!-a4d3%h3C=A-*Gf zjEkCL4~CQ}ix z4w&bihoRDngS~_V?lG^=!U)<{mzMB|rj`>>(Im-Dg$Faw)P{Ng>d<>g5$AJQY-?*P zxyv2nK-ey2_A@`jb~o_`LEFqn>u$o);nto*eYX?R`0fm8d%H?w1z~_VoU}(gikdSU zeVwZGUPZaq(o&prA`TU0PZVQYf1%9qVj_ ze3U?89uJRZ=gvw12S%cJ>Q|1-{7RAsb1)&)*j@l>Sc9JTT89Y3D2XICVTWekkkiqB zTV9UMJm8VKcI~kq-)HfSEc<5)&H}Q4?VV)enkxs?u`h3SZ*Q*%KqZ8yku%i7&rY9s zK+BU!B#t(;igW)GE=lfx7B%VjEe{yjH}q~sCG|afZd5x`W|^n?+&R0>VOSS{h=4*H zlkNqs@lAVKe4Ejk)c$dB2zhWa&jXpSZ0s#VV9`71dp*!#IC_+8|Sz22tkgTgHL%&D}7aaVRkl8w>P;m zmORj8<)8EmsUx?Nr)Q`ca$jkF-Vj5)vr;P&>K5A zv3WO}E8%Cou@zRSeQyTl0!q8uv%AyZh3((cRnSHf>6VJ5(wa%K(@bj%e8f*LneA^4Qa)PbUtzV-^Odb03OQ|gcBFQyuAyXhbzuG(kVCYOR`=+< z#_a7hdjr!TpIY)nS=sU1M=GvnJWKxg>$$g}rfdu>J)4fP@$#-g|E?C8r+U)WEtZgs z$-_WLU@5r8D&oO}nOwpB)~7BIGIjr)Ezf_JWJpYl>l!AGHLAiU*Id&2es=;sLB^%? zSch0VzO7sT-qvU|Xrg%&wmEOgJf-N*-l9G)kSwOje;m1%0<4&4i8lPT!2K-NZHQ7D zOI+658v6zHPEf`V_E)FqUeKMAhBFq9g9z+CUh!U1T~Ko=b$64c4ku?%<@TZdh3Pe5 zL-o+YByY*?uIbLYsSso@=3qj9@~7j?llC>1Wv=LG1%R)}%Twc}5{syJ=KX|B3o*Pr zX*4IVi&xvi!ounBThqmzEuOv(V*cdw47nU=eJX^Yy^#Iea&L3N&xF6>-{$6^EdCF4 zjAzn;G<SWdCd z4G%5h3rFBG0Kdh6OhcE|4`KW6^xF4zwqFBz^1T&RH|wPF~ANnS3~ z3SSibIodOK3xG^cV3QXGuf1(39xsfOJgon{(fTjxqabCw(cPed63rqJFxdL^f0R5{ z2?O-aU*exK1Vx3$jR^BNVZLa0L-wOB98$N&{*;hT1KBM^H2B?e?h{mtJl&*AQS{Q+ zPc$qw$;UA{EuSiw--1qVbA6p@i)xg!13DizUynVqa?t)c(zLrc?SXA>R|C7S1-kG^ z*gi7A*=v{Pzr-(KlKWCa(J9Ispm2j?&S2=VmSBporS8;`kf9<%I-+BeNGSsm9llx7 z`!9ceL8-*tC%@mFL5d6&!=4d6M04gr41|6{u#Vbhf{GB3nOC{3q7igG}wnH17}Mwiox3eL2z7&tt6pBiZ?c%rAhcD z&xhmRzyD9jtU{w^1v~Usnejq?CXnx(Mi9+K2Zy|*BKvIKWRmD&Pxj!PV*=T_2E-s_ zCw<%-6LD3ipZ+&IxOMcYBLd ze=3sRT&!>M+Ux%aPdHp9_Nap)->a}^&bJjjl@knfS^8!P7*>A<^IZ^_G=3mn0v0R; zGZ$nwq5Mi>=!^2;B{$4-V?d+^1eq)<4*nWb_dY8<2^KIfF9(wR?5j1Ppy`1FWRPj< zlL&-!kZDPpnhgcfq^G$xf;krjO*L#O>z`(XMF$ubrFd%3G zVZ!F_%E_67Qbt*X1Qpv>C3hwf)b{rG2`gBn%&S+Jmh^+nc~a?<^$Tu0GX9_mq{&%D znN~ZlX)Cx-%XOPQ&;pEd7}!B=Q4iFAy^$XL1SKFL43IL3 zgFG#RdD{-!Z!r1|LAL4Q#mnBbLjeOo+xAIfrj4OQC6p~6yQ^6Zc8gVnM-a}~4~g+JOQ`ZgH|057S#fSuNbiCs*D;S5Pzw~@RXzktgb?9YH4sFe zD<~)+uKZp0l&NtVmOQZq@)m{uIwO8BXU!;E%h=M*@xaByI-X7uaArQ}-GU}*Eqbb( z<OFBNl*CNK5dhLy> zcjV1>ON}m}_FK-$B^2L3{;@Q>x2pKaV+Y5?sp+RF8=ENeo;jjA5XHouaW1jD-d}-! zM$o}0{vdfM#&U|9ww{FMbeeGz&d%!xHw8fQr=z0;F#OQ5E$58MFiYp1G|AHORo@4g z0@EZXitQlE351V2I)*SX=zEH=d9pSCIT!7^H^X-=xn||A^nixoyf?!ZSfo1>J`P+e zC+q;0w;2P*ya8)_Xn|FjVrB4Q==g@ST-}AI4FKn#(Zbl5ab19TGM|E|gaLw#jI6Dw=@i zmCPDs(yg9#E`yX@2V~3Hze)UlyjY*K{+1cY@_ov7z%>}!J54;a@+6thMVhODn)yp0 z{|=x!$#;#5NsB_dz{r46SL5|-y-ny#BU^irGcu0hE!bSmo;-u!THJg{o|h9 zbk>KEIUlB;4*=`3$Z-~-p0v_W{WT4C%z|%g;0^v178p#T7XM0gN+S@@GZ1@Kmww*K zn9?hLd8a#F!jkTD0T;@;>Eq>#m%p+!LWNVI6S?bC8rpHI(lg$Fj_xr!3|Eigny9MH z<7B)s>A)T=VYA|DDgAk(mLYi=5Xf6C*Z)?=rW89J7V~Y<4Yt_flY@oq{z5hzYP|KKIWp5i4>k9y*ny!uV zd&vhtbQep`bosb{Vt}%0y(n3b!7N?D8IALH2%+r*yV-$~kRy5tn&OJcxvmOdT5YI0 z!^k*D{58JOJBI>IiS4fTz5d4t9vCJRc8Y~>Xud0j%~wdHg(EoWj^3^LuJqpOcikg4 z7{j_X7*8i~eZ?&7CLw*09n5Xs-=?P@?w?hH?<pD1FTnCMuV5O1V#*`! z`vgRJcY4oHoo(p^q9Hib30LH;xPk6M4^C1yX)~sufpnHA>?&jX>*FJkO&S7hko=3< zTMyDg%-nKc7}-TYu;__n@WB64r%7TdS%1i1TfLw?BKzQFn%XQsvb1d@dYw2Kd7;}wV%H$Run&Kw8hFJ%)p|&^E5AsVPy=zRZ}P@%TAK zULw`*;hA#hUg5~Gq>$iXeGoWP!`=EREFhqc94_;`-38V+qcI6O%Ai|TYSvwaU+hj0 z-~7z*)ELa6R5NsNQR@z>CP=8QJJi`|qzooj%CTC;CrN#gHs1^sNYS|KCmC*NMOZm} z&piPIwT=3#0D;^%l7mGT~Y8M3=4tGNv~D&*g(GeV6*)BiRK`qun6WRjGHSU-9t!sEm(`E z^e~#9tcsMvIn$Z=Jn%68)*O3%(P0w$5wOF5{Lp32-l-qaunqh{=Vs@TvLaOyi-gs{ z@yHEO_rNf@^&Q7}#nEG#>8V|AULJXIO;KV4c|L7fTzaC>-A`*>%wYU`saYLeGLNjJ zGn^UQXe`>6%OIqvm|hVeGTPPE^=x{2TE>6(%dopK>bzy>^eY`@h!#4^IqLpVx4>?} zl;NqPFKKfA-yuMP)!uEoKB0M4PA%ro!p~fymv3-zu=nNyXaoU|&1zlyM{HD`Q}keJ zoO^pIKzsS{JjavZ7pFMl{vhaDfLO#Hju2U7@tn!G<7q}78PR1y!_-c|)0x)%f z)BT(%TMG@ca6$E!p&&s9Scq8&Wha@MS*}GBF1VO*XG+tcBDd{AJ(l71*S-RK%WxRu z;Aan;wG`mfIL$46;*<`YJG^gcX$j2hj(Sv1SVWOYg57DH1%q0&@Y=)suK;?|{4D-R z%&xcm>>}N1f3Kx_|GV+EP7qdI`12WA*9bKcH>5$(Kr~_#_%q7|Oo~XA8qU*0>I@Hc zp8*V}5-g*ery9yLOI!Z@qXAfSx3oUzW|4L@z8D@YXQZpn^scvQFZ4oa=EgZ7S)R|1 z8|vkPbU*?DU&am^u~r1r2#$?FM-iuSDhv+?K;GRD*q{WI;to;^f-8XTM)JkGWi~o? zxI=}SU6SfaQSh~g>Z}YYGW%2JzV&tX@^M6C~&9>gTe~DWM4f2bdoI diff --git a/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_list-item_macOS_1.png b/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_list-item_macOS_1.png index 3a2e337a52b1c8cc37b457a4cf46d331402eee2c..f34d4726220b6d5ee697c00141bd75ad6598b7c3 100644 GIT binary patch delta 84 zcmaD~@v>rruL2|cWMf(^bQ yD;BAgD+6U17%HxRWZBGU709%Cf#pmlvH$E(T`t9Q`#w1alJs=-b6Mw<&;$T-`5{^W diff --git a/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_list-item_macOS_2.png b/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_list-item_macOS_2.png index 0e0077d03b3bbb83a29f6fb9befb4bb77ff9edf0..d449f7ca47bcffde0d109a568fea646125d0a0b4 100644 GIT binary patch delta 58 zcmcataiL;^uL9${&3+0;#JCJ!Fo1vrga77>7Uj&F6|9ysiv5wF^W%(P+Un^IAURK0 KKbLh*2~7ZnrWF(b delta 82 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 aM=WdJMgHesZHY3PpSr5nqsoWRU;i)JuGZNA diff --git a/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_paragraph_android_2.png b/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_paragraph_android_2.png index 860295af3100270d6cb444ceb7f467d45a0a0fba..e5a9142d0edf2485ff0568ea386f132b40734ae6 100644 GIT binary patch delta 64 zcmeCJ{#&)dSAkJ_v!B8Tac%=PSq2c`UckE9(8i5%bA#1)rpXOf55y1rXPo|Nrp>d3 QP23;_p00i_>zopr0KTLaBme*a delta 88 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%0A<2u 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 literal 15770 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
      +uZteq;M46C+?+1ZM_ zs*um3xZ!e}cYoo*(2;AhMv9=zp^V_O{KAeaiUvx-N@zmoojj3H%dyWR;j>8x?0=@V zRfR4C&bJ#Rq|R~QMlT^uTPuKtn)>ECC*)5lU#^)sR^E>>qgrcK!dW=}`k3~oVj*lR z3Y=Yv`R8!k?l(Uh^hj<$~TA$wb`)yK;@oq8ErVJ4?d_5mq4uV?`Rht?-v=UhUEF?Gk_)>>Gfgr1NJFu%5Vh@h`r&pB_@AULtne=ATK+E+?CS&q1gTd|6~d!eAxTqXu{h}#*`JC0{!m0rv}Vr9C` zMqFI#%TjBfr+(4P{;0m!(*9GMO4;?n`#Jrr5AERGX~+xgukULCv;(zBQ~cBTIGXbX zjKK}TY1&aAk8*o?0<;PqM;n6?+vt~~H$M|H?p5HyY{>Yvd%#kXqbl?fVW*g{*xdH9 zKmXx9qoqSb_WoiOHjuyuRTx*5>kwkP(tmS_!zJgH^#-mnbMC9Rjl_kAhl2%GaAr}U z$E>sPv&WQ9S9dCw7@Yfdgv}Gb4;Z0w#R_7hAE4JyFWJo?zg{Rm&^^v6cl10y3gKzi z=mM<|hPu4G%6BDY(XXT%M89i>Tc~#s>b8IgQ%^D1q z-`k@Q_lyzg4KLwvbd4~!uj6WOPNVbW{h8hbfg}L2*0OkrP4eg?58G^U^CdUQVF@uL zan5yrki0SZG|8%LW82!MFJ6_{PVKOG2G|JFW!`R@Je(z${(IC^R6Qs7C~aUpYP}O8 z@p2Uxwk@+W=fqn1ti3p0%3*VxHX=`rHf?<6avMIL`^ikm;rSf~@Ywh!&fhsejBVqWmBi-ge>|mO>)1O-^=av%$LN3`?BQ)7# z68^>TP7x#1q0tG+mQBBCOE#OFGA|Re{SG-&$RVVEiQg!{)30pLhtMZ{1Qd7=NqFL9 z(?(TRYk6?{p$IWY&u?dC!Y82w?NXiICOPcu>swmhrTReqj;x##ME>00s}2vAVS-$y z56tl^9Y1Yu-05Yj-?tgb#vrKtW!me=u={msO9`d`cbPk$@nfh}%(mo|d9j^}zR*vT z0+`IjMU5z9gHo8(=;mI$t>*8{h}kWLr$Ec-I(ehcma^IEL(HB$vI)7+wV{SEYH-H( z*Q4vi@u(81UBkcIuX48DH8Bv&II2{wOLkS#=|0<&wyT?^Xbboimvd?arQv*anPH!S zYfc?NpkYO6*ZW(R0eWso$@u_Db)QQqaGp#cQ7&ZaMa z_`E{NO$W;P#qP^gshTONgw7hFfgI7!Jm?%NAQP|=R|P^pZT1kB*^V3(nKkd&IILW> z)kykTg=i%p6aOwGIZk;vh1A^(S?pmhp%9fm&)>URZnR^}D1v6Vp;WN~e1KS4(jBA6 z)n2|st{x4fqYm@tX!hN%Zx@k|u0!O@!2rKWNlB6Q*>HxjSxJ$9{CG0t^GY8NB$&v0 zo8-It2GH_}&q8RVwOOs`rG$@AGj8)tgN=F3$1!zANtdpaTrCohMW291|aCN zzSC_dfUU@=XkyEuLRs0OOEw=~D7=Qju6};|zAYSxt>$kptRL`=2&S*QquSf2VO=0Tk#|HRuFgd57tdN+V3=tvI3k_QRD^S35cZdrt65 zQ&unbP;Nq*meYH9fMjb zl}bPKh5qCaFIfkRMkGtr4CyQgG%d`^rc=_zT3e`Mj+@1(S7woA{F>bEtp9W>>2d_z zP=NNcAYr`fwU`T@{Z7VX@x#na?`h|w04>m7$AgO%`qK_wFGF#kEqF9ohO zke96eNw%r~?nfDl*ai3d-~aG6Z3`t?aKh3}HIi=g1BU30kOno}U}nsgnX-wkL%Yi4 z84sBO!BtBTh^ytsRh;O^RyzzQL;eLO$#dUxy<0c{UOif2Dy9h{SzEHW_5gDH##Xge zr>n`g(!Gj?OGh2+)L6G~f@%R;J(pWsBnmj{$mk9#C7$#<=9%8>l8l3(Sj}DjWhbr_ z`R1Kf0Q+XOJCObaM@*X^>fSRPki?mLQ|?#?4qMnt=JX&5W?3R)usVP317FH?kWwtS zlJNqpYl1MeDF{QFzs(M)aKq6fzlZ= zRaKbt?l^=8TAy2TVR;})%Cjh|@p%=>bu(6JHK;9Ujo-$R1W)yRlk06c{Ai46{Mp0SDd>T69M0dI z)v_Ga^r=TVe(t!RO=4CY{q{g*5jFDHH*z$d1pKHTNNpBpTH}BD7eVc;t8;?a@P=iY z53>|KOi}hau${@F#GQz%XKz~=RvT87n*Li|4k(}FWO*47wU_>kSKWsc`kmO7xSnaZsUW^9 zH0@**`|6<=h4%megNfh#bb9vI4ykVaA;H%TXP*!;3XnpEcI`=WYLIJN+Z-2aBNliQ z+|sY+scj|?#8T{*yn8k%UpC&dZycm*jRJqW*LnZrjLCB!=~zE(D;%DQ=w^WHo^c|x z!uj3#D|;-bcNrqlQpyO7#5pkmhF}+$thAVUi4VcVBo*5($>sk-6=-Jogs<-mbAO2Y zQxPJjKw2CaX#ERvG5k$-*!cZ4XQ!^}9%u!bcN%_0)TG24V}r=xt0Rpqns(e3-X|B= z(4N)WsDo?la*L<~5|;{WmwI{+ZL#5iZb4x7CoXntPB)Y?Bq5dC(ihwx0POdvbl~RwBAb7Tz2bV2TQ87V6dI_k0FuE>Do;x{2sqMGTPc> zG>v-5+}IimwQE%m)FBXVX+{=+aO9MNcei0NZ4Ay*ygCX?D(}p{FPb>H>Q=Cr$*h2A zdHpk3;PB{R`_|e+mG`SC&z2lW`FFAiMix}Hz1j7Y-T8x|S4;$|YnH)LIiZn5b;)lp!Uo)MANIbc8XkWom zvMcCiXU3q&IZQJby%5eHnKBA6d_5c&93&Q4*q~I4X z#o4RAe6dzgLxTb9*QCx%R1&j+?|BIP0|xj8mdSY1&Wjd~U`=3NpxU39Z6JL++%P_n zHvyn!Xhp5;X$r}Bdo<2Co7OlsV-yLq^*(+se+pkt_9sksr9TtOotbw~jn&LjkQQnh zvP0FfYFfhs{QcLKQ=-{DL0xn7p`^@j1i+=0ARNZkp7zA&zYmfhp1PL?Frm@1{UF1GzSe?Mhb) z_!scsUlO0yfaU@uMBt3J+E{Jz7409+>PGr+?2FAfBMmEb18?y0O%MxMn1$)b56_Qw zSWpckO*<8qNL%C*Qiun+Cq!eFR&>K68sKbB>hY}eo(nzdbuT>1#+?cLv z0E-wJt>lwA{?8d}NvwQTQP#zQt}c~OCRU`7rZag_2o`mLeOw3g0RHQ4mc=5FEDp23FQ{v5#?rB)! z4pyZ`0wxkJa{_ctVT{UiY8WZ3=+SBBD}{g~K#znWZ9mbc|&GcB1)H+ z-s%ANg5dx9J+KO6E$B{ArQqL9nC~xvN~JkoIlmu*6dI~@Ik*&Z;9Cf~33^q+^O2;Nk8DgzxBko^i3 z^m)_Pmsxfrnbu9K@&Q=quF#eGAI`!)z00}?o1vBo??zzkjn@T;n)V&L7J6Y6l^aIl zn!yBr&Y;YC?IBW?5$M8wX@`s}>M0^w zoKRPU}{SG9`G*3Uh{XD(Ve_$jO=zFzo!@}yj)8ZY3X^|y3^PQz^LCLG1aTQ}9> zJX6>?nsHs_)X9c(V@nZF&ymv*mp@Hj_GlXAR}YWloT_Y$B%L4e!D2a%$%L{N8h;?$V{1hxOW zwDqkI$G0*gkYvcm5R#mX1p!z|Mwqjiv5nt<(ws9$*cIzf6fB76*XY4A93O^RVI58_ z^kB90=Gk88ID5Vt1B6KJ6qD$OO4`YeWtKMGxeFW|Wob%* z@Y^9G9DmJs+3e(GFx!esb4Xs)yZPnb<(HFj;;bBLpWRmNsvGLA3+=ECqwKpB>(F!D zDp(**sm#ourhBi8RhGW~`Yr5!Z`7(W@WEbO>5rcbXg~JARP}-GI|dxwbCH`)8cLHg zW7tR*&xY2Z%oawNq>siewgO6NK{Kg_ zmuS_ZOI)*>%sRyF21}D!2LBFOTD?G+YkyiXNedAQ1VT#EZQ~p2>$K7eAerPj_ln*6Zv}*HqsMv~3Zo6%UWQ%FyXK`j4-l5GdyXj-H0s z!NK87QjpjRQ&+96TXWztaK3PlaJ%LTzt?qNf<3s`2@i=E@!{N z0^&5;l!mX>RUg{88jkmGO^K>V`a7#a&~k@cjr)zS*Z zE_!k*&**W7-8!f6kpSQ@L!VI&5mlJXsuKpazUnFfM{f!@u=>l4-}7ji*(cNsSocJ) zjaC)p1umtE&T(==gH}9M$UB9}!e){R)Nz!ztrGPp!HoS9!&H0PA$}hAd3%rqd9Dhu zTDdd6w%njB(jsk9$)NXI(mzqjB4eW$RLsxfaiW>9MoTzH@R!pK=L~Azyo{)dVqN<2 zNrl)!&CY8Z$jGudyzarj5$WHCQSf$eNHm_vi=w>)X@c@E;wOIxMdSMA?WNd4X!!@; z2`2oX%Grr_OW!G8jn*wvHEJuO*Lk6e9wcb~zJl!o1(qxgwm2Gtir9394uz z-|v`&dlA@h{<}bk-KC+4=p;tS3Rsw}t=Q_xZhgM;^W$Br7-9!qCnt_(PTu60s`sgXg}>po zPBOkf`6onPUY^mLR1Sa!*CS_m0}w+HP&3V%_Z`}$tzMZDT{{K=fWo-N6MuQUJO)KE zlXSuxOuKjg`P4OmC&kVJc!FmcWQ1fuebY~1iy;A1l9|l1LH?-%W!f;an6EW+)uMad z0**-7%3#i=*4^oMpu0D?lQd3BmY1k%vKKvfA#^wFK703ID(t#Ve`22lQ)x*_NxxE# zyHX|hlpRa^)$%*2lER1x%A8TPjzT+Xhr6{FnDmb0ZFy{>W*ZU`ITTzb!?~9VXnO%; z0Hw8^V5<@wNY7++9Bw;xokLr9a2D)UH=t;po~WeWy%hgkb-`dgE)c2YF(Vy$_59D!pFzQn3EImtEE6}^d>WEvTS<&cUjJ9I-iPYs@M8d zS@7Zm>e0Z6juJbtg~ovOhu`^`!?npJ6PW0}^kZQ+Q^tL1)c)NmuKtV$M~3T}Cc^47 zPvv0)nYYhEz_T;VGWE*jNl9KB$k62rXsv=!}lW&@_Y=4Hkqnr zXd^j1leT75!4+os#2~}iMJwf`rbv>I(a%9%``IMYCZ%Jt(gFciSxGd9IHSFt3Y6C4 zk1Qd$Z2|7cDe>nL0n<3;ia7*AZ<(r|$H~jgdZ@?RNupN4AQPoMRc$qu-TpNljDkbs zF7TJWqhp%1%I>F&kpdbBuR_HB(8$VEf09wN0qcR{W`&&3=IXa@CdM@)U8O`=Ru%~b zz&cSF8z3@MUZ#cxiD>~_$@pjfvF#la3ds9jD}xRoPofKiHmx{DxCd{3ES8~r95tPB z9Lul4kcVO|8o zdYK{U2e(wxsNwYkD?tE_ zAXu=(0&LK{Pm8X5`O}K3>$$Kp!)}Cab#}<6AESteMV+6hn0W24<^Fdi*KMGxggxH@ zfu3nZ!CbX2{W1dPzBP4Ox{w#M`B| zA8T!f^Nk6noZrUFp%wLx+DDf@F|30@qFu8@@7JzZ`yVfG{@J2;o(3An=5|dKPSkDv z_cP#|*8_XaYjqC$SqokD%R*#?rsVhgayxByU4*a>^!S>B9(8)?@M+aYk5Xeby;o3i zN*)Jo4xykDb#N%D>+9Uhk{2eFs zRpEJpEGJErN8b0rOr5=Mvh49MT^~d?9n2GYdfx0mPLbMuKYvMmd%wYPa;(KjiKFFW zZ#OWHtU_cgc}a8=AaCl%`XO9A@64q;EPB4A*D1L#aP~v{2lU>x4;|9)I5Re1*)!L-b!@Z3e60lc5oKz!I6Ds=@6w{%c_6NLVy0of5nwA6b z0iiD2K5JARcw;QrHeN4C#@#vcq&YDYdl)>cMcSA|Ar={V(=^ne=r;t_0g+#TvAS>y z!eay`>F{0YscQSHYROj^(&{Yhx`h3tIn;6V2R;~>%M9P}Bph7;j5x(arP{0Qri(@{ zCX}e2=%cZFB2;BYP9bf6XbfD25z_M+rjFwlp!~QB!w3WKgf?}9WsM|Ea3<%3(=4V6 zUog8PK$uq}uP43r`9LuueS64oc_2en85fu;;WVd(rcGCgs>Q_Y zkQmD51s3!UTmv%XtJLFr$xW*!GAns(B5%`)3h06WjD zeIAeK^x+--!g3l!JW-wxo6m8?ms~0YpX`aDX>?XnjDRKU(~<)M7+AtVl{cJe^7GfO zBw(j7D!wX;jp6lJHv)@ceLHE?rc4MTA1%MBT1!(kMFJw9PX=>k16X??x*mXUy+ZE$MwTQ9B+u$@|rQ>wZV8u|U8fcnA*H_Xkg=xzek zsyj!HP51rm;u{+qv-|0ZFOXYGjYnk~6ND74bVb`R*#=_bw}xQfIpC-P)#PX2(_19s zP)HKL2itOglIF;vQihF!MrFTU-T%z&PE}b%Q7Im{VZ^tSOt)4k*AxLuk>znW2Vve8 zZ)&=;WJX)9-yJJ#;I`;5qUW=!aEo3M?%l3T-i`hnRYw&dY14!4p!;WazP1Ei2WIG* z7}ypB(ikQAs*wT%-7O3mPr=&|By<_!-u(Q6M5v~*!ogAkI9`skhZ@6SWXP@mBVWtF zjUeY-WZvxF*ZHQC5z9{ADLx6pD6H=HAHk~3^_K`wmIpsQZFXNac<>3*g)0G3r~eUl z8IM`L-29mfBzC&g&abacRJ5@AY0k9Q_D-UbnlIeMXJO$^M^cN-%ZragiW&pjvd%S} zdQ%@Iw(2mq=C!x@wbgSi{;pCFZz8})XV$*$e;)XF{T=W;7shOCVx4Fjky#JUoJmj& z@&``h-l(?5>RFIy2i)}u2vcj+c=-GIl>x+k$Gan3-LcJ*;XQ7>?0&itNZz7o$^Au{@@8|m?H=S!eJGIbsCyJR2tJ!^Fcdp}-;HZ?)^#%s{959q z+q*ocgp&x44}x`q#6=S{N)~dBAnm^U0XPc@xz_9=&tBcGcn~ECk*@~`)=*0;T0r{% z&^T*~PTWS*NTTExI>K?LI8^b_CfDq`0?7EQgt188g^^5qhx;TKSRmI(M;B98PxOpKdtwH8DbRNO^r}E25~rkOd%#+!Z!Ye@H&Wl6`2O{@H220 znn;en8N(^30nGKEd0pYZ6*hZfxDG-0*UnO$sG0-mAa1mm7V_{fh(Rytwj{easd|@Q zNrq-ysa3r>%<-8<%y7SwO*W5K&d6>0RujXh2Sn$82fxYTRlno)33ZFbqHAj#l}ufZ&^dVkEW;Z1C<6e;qM0~jBG=0vT~oP z739I%ZS&I4Y=h5AlU+=w5!f0a_q)v1i|rwW=%PRqe6{`kP9O3n59ABy>Tg#!u+e(1hr0-B^U@ac8PQR}_Qpvl{5Q7u7{Ptj^P z0WneTP7!kKnzaHrc@(d>6}nR#lkP}}^kS^(b5QVsGshH|cfe@Am0>c9E1EDcXH@1z z1dnVJ?&GOoX+4l=5#gnH$2B%M4Y+zaPwC^wwl17_6K(*-R2rh-u))EH@CdY$In12BiTHo z2GXGw47uulQGcPg(SJ6}^?f+@`9ClI-<@{3QF34h9^VbzB^l4fo|y5fu$%blt%5R( zlaS9>O&Oc*KK=$_pv+ltgn{e->uq^)0iPtz9ASU`XJ3jMxA1>=_WgIG;(s@9{&z#` km;VFzTmJ9eZoIE_S}=M_{p?;QqxPw*>O87?`26kv1wgy_C;$Ke diff --git a/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_paragraph_macOS_2.png b/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_paragraph_macOS_2.png index 528b0cef62b7845c78961b3fa96e8ab0a1211c1d..132bdc899a6896f22624125d83a7effcea6dd611 100644 GIT binary patch delta 59 zcmZpx{#mubSAkJ{v!B8naqa{jD+Uk{bKu^*(PBT#WChDO@rM7*WsYqpH~kmn2FZE4 L`njxgN@xNAKF<>8 delta 81 zcmexa)mFX1SAkJwv!B8nam5AQ)(i{`lYEa(*LwNw?d`TAwOy>ew+o+$sbi2+G^y85}Sb4q9e04-A=6#xJL diff --git a/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_task_android_1.png b/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_task_android_1.png index c5be6fe5fcb652565835511a6aeeb6d16a161b1e..8f1c3956508ccce5867982633d8215774ff305de 100644 GIT binary patch delta 13298 zcmXY2cRZWx-_~`UR@Lc1OVMSNqIOZVReJ2&o1*rr5nG-v996Vt?Y$*tj09<`sJ*vH z+t|d8AQJDL-{FeS!h}-LqTYwVbM4D9&k8i5Mz1!n}wZIeS*rP|ujYm4V@( z0mlFBS9v=A+rvocwWOLQ`2P!cW2DvKx&nsSwXK+Ce1_?YX0_Z2hEJC+4xC_kRQp!@ zOo>OUoS*&Wj!>OPj0`t2!S6S&os(nD$Fk56yUW96n#MOC#lpz2SMbbpPSB`?F^jqFqZ8K3%#G`{({^)e|PQk+#p2i?4*+nseCEI>zE=C+>rHzMGh&Xk^k=^<;+|B5x%9|b^E+oS zJdI`ZW%ySWa+6NO#UccZk*E39LO%uk*`9i)s_L?Sl5!)fmp{z~Yb0;A`uA6}x1!e4 z30w+rNwt-eU!`iZPdyU<^ZR#BVRRZtmqt>^UA2{WKQ1SaE8e>GqyjtG=Rtw>iJmpk zXE3taqdu?DZoX5(#4tYa_QDOT(9PM1l|iC=G8x}wU!yfu>*;PhhSh;!8&j?G9h;k* zugYRNE%CEd-;G&?-b@+u7M+9A;BjsjlL{L>W2VU0^p!}JaYjlw_B(ASsG&nCbyIa7 zWh}Fl`|*6Icy8pMjhBM2oi0#|Ux>s!+PXtPG5(72T^@4&+Hq>6!e6Pz{?x4#r^(pk z#`vhy3y{NsS=t?p`^2x`9tx`aBurhd$_Eba#R{c5v}M-2HxcJ!^-EvgHGgW7kAs7^ z?^&+{UJVb9J#e+f{r8MYol&p(HEto7?k&v=<{RYT>AelPUw&K>%-kLUP2lkKbsj%b zlFhLvmYcjp!^o^pF7#WyU@E@+tG30;%Bt@1>;}1xYZ8*wt{~6*e5}wJ z;sorZn*==FnF$Lg4|z(46?Q1*M*YiF_BlT*UGTzLN|F(8mQgNxyLXu~NT z(16&C3d^HX(j?t%%^!M3;wYkZ8;H^Fv5DE0Bcs~I9nm>Y&I$i)_wg~DM-~B`w3VPm zTW7@dPcL1xo)%0f`?Y%%=)G7Ky0!db`T)v?H2W{YsYv&}^2WNUiqV+84JQNaXZM3# z*6@w4rMmIyCJ*w}tPA@i>z-*3)`QJaf}`n~H7~c~>O>>p_88wi@1~|_du}YX%xm%k zN&NoYMT@&zdsU>Rsn$B%Ep_ub1jS3yabncGE)d&SFI9>cm|7g~nC{rK>LVNYotRN4I*I<3&Y%Ol9%)$nZ+=NN`+VqWJVmVk1`Nw*uN zehqySw7;37{a1!T+8$ywU&Rgt`}8u6UDR^qr`T=7a$ntO4te#97cY8@ONo5n2-k>< z$$EfvK%|wLmKB;+xr7Z-Dyy=U_`S zR?(?4BeYW#UbW++9i8&NYw;r``ek0NeBnV>7h2Y~?H;r^e*gZx)^7Yla;#G5LapEW zth2F^Xg0h$B`1_n7+q?(Aq88Vl$z?F*}B|8f^U!wgnmg8r?H}gEB=%{cV$-I z{bQZO3tK%Q`LOC+%C9)8aTI@$POFbgYIgu4Y<|@NOWSmT3;QOCrP$oIZnln<^f=%771m}vMWNZCE}wowi+x!>XwN0o^H7;(`7@HG zWl8SlPW`hARf-#9M03M>8!jnN+`ab02rH)1i7h+B9Q8m_Kv8fyo`3zn6_r=ic39}d z;wi|ml=cDs@PFa$5QQfcm%B*)2G?< z!A%wov8p>SZx?uE`RvN%jaE9J;*tybNwmwGIg8B`BeWMAVv^+Ge;T?w&Sad^Yi>U= zg@Gz|H^Pd#qy(LR$Ax)hKu}lh-Ias&X|(@F<}?iJJ^#U|+$?7WReDXtOl5IDlHf9w zTLnLy=dbT?JpKxAX4@=nxpo{q-63L8{hYNlA$HWY8HBK5x!Jc@x<6Rs3pMpJ{zBmn z6{Dk8$17I7H|s)u?1)Y4_*=EIC+^vTYRTNQ&9A0KbiKTFRx)F3!&v6h@~C8uwXLPrAwZ z?0uA`HZJQjjiuB$8dT^$db@XDz_2=@si|p=)<=Zo>&y0B+oKd?00@$VwHqiOtOeGP z)Q%sEL|?<9x)uMM>&$q@`yugFBP~YUp{ID=6IL%2y!q=*4(~Yj6SmX{>GEK9czC#A z=bjb%=YXC;fgWqK#i4zmeP8*eynpTS2DMN@qAy(`PX~K7e_7w5Vc)n>6s#{%u1?DR z4Mgf*En3h@6*5N7Y;SK5fjU%c*WssJkzCBAC&X4^kYNV1eYgnjX|yoZb(rGPY^Gr- zXq>pA-|_(@Oj{Itt<&-?=y6EE@A5QRP%DbmfR-!L@S{u zMd=y1o?*QRZl;vduEiz6C+xk9F;=<}K{-2Spr!AoT9! zDE4=gP0e40>`@=sg^=MS4#8(J>FV)((QhkGuacQpnVX;9x^-&=Dh^bpJ`7Eos&yj_ z1D#rUEq;*tKWEoWhqvfUNFP_ zkx|H?Iw$vWnuB_%A8Um}d6T-H*-wVnlz9-*LFwMTZa%bXy1`3n5))CgY^1MEi4!^GrISyoO%FBUnG*)hjP?A2jso&s9J06(c*d18QTC9A} zN3+%=S2^0*1y|SaUwy}o(xTX)e^<5a`&M>$K*xu}Yfc?LiY>A+kD(AD^TKlXttQ^O z%Ch?N9bp#dQPlfhA9?{?*qtCk>;F|{Zi)Rx-9mtTsKXl}YjBurHV^hz!v2{~R>q1e zcr1)$*_N*=6^Tq7Z698X>0M95NyD}!&6f&X!|gmy<7;~m87O z(p|&$f~t58_Io~N&x{uy1-x3!K^S!E`E`WuuSaa{O+6!X2Q>GtiYO^L*bVUDu8~eY23z5CSKE{OgF`#mS-YaOm&IDjp@r< z-Ry|_RK*am0Pc&{7&qn>sr#XQ0NQ=rYN}V>m;gcJ`hbSZ+?b-t!oKZ(F~3>wuB4f6 zyR*G5ew`ghZfgzTc(=ZPEmfApKO89iy#kNwrP^l-cSy*d?;x$s4j1&V7gwmthbo=+ zz`GvGPSyKhAz~g`@xz|H;LY~zG^*z=K(FR?uNsFB&ffZd%bjWAUadX3*W-cTy6Db% zio{>k&Y7h@7jCo_gBZ?P8<)j4%p9UUsGi}~D~4ql!w5gbv~%a%0+;6%Z*1t?TU({0S}>Dt7vC@-XqG zmmfP2_{zTJ&@|f26~b1LcGeK6Nq+W;LWYrB4}`7(=+3A0rQB8}DkUb3465Fi9e*(l zVzTS@c3X&i)dq4<%DL+fM*R2*%?vC7y&}{)Dt|k9MrxkILxNY3iCz5}N=0WccgQQ? zaTxzm|F0e48>yMN;Fa+#hq9+tmkRr%i;9X?MiE6)-QyfV5=SVaC^PqAm*R6c?m|EwZF@^GQl=BH(87VO=vE`*6 z4!bGqK_-c zQixYu2R^zOmO9VJ8J3!3kjvzph=>UF#CrvkO1-+VNQJd^I^uyaJWZDg`-@7)hx%X? zt`}N8bTE#-uBa}X*=ZA`8GioS2zZ0S>2^nbT-07Cs?SZEg{4;pg$CDzt!tkU&Fb}& z?wOt^7ilDG_j1S#mtVtPUFTHtYC>9K*@y%l1wR9x(4(B35HL_m5;{@@t;!pg7mJ-f z=N`ID{0#~(lr#QoTj{bs zb0hCPvHDxKZFVy<$R4y+yX1ksiOCmuDhVIl?iGksiDF;*_KtB-F?@1=C%L<6?MXDk zX46r5cPoNNo+`%CHax7q(Y(`=6GG0k+_EZSWZ`zI?WB18Y1o*z{;AYX08K^;+ON4; zYE+PFd9c6Hv3eN2TG(;Vr0MHGVv8};m z*+Eco^$I>D+Rli&Pt~rB7h#7f9kChN>{RQITVC{ISn!me&$-jo_R!c-OKK3=XF1Sy zHouWx&vHWkpALYA2{gt1`taE69>(YWgePbo%k9c*oGK2J+>mxQmqzq-oK<42r@>>IA`{0`>1i)T8pkZTz$Lyc6M zYGA6txWhNq#%98Kg6q+Tp`X7Q<1O3@rt3n}a!6%rc7&_nmO>PlnCi#ip#|TCR(2lq zC^yQ-*R>@jCntx)#d_vZCK8T)<%cIo#4gb0eQ8-c+OdHlO|}X3m}Z2aN9{jKplyfB z&Ot)S?5NCm7`?_GnTdA^fgPQhUi`nCY#Z2R} z1;qJz=2aQrGRDu7FQfQ%GG86+3uNu`Tp^sv>VU0JOm1de@)Z=A;=Tt)Kd}UQDah>I zDeqp?%2I5mSBspGKlvNEL=@~G&P%+q*o%rRHf??2yxbPGuA{wxgaC=M0KEGX}2s>=Bq9+c5&uBpbbM}J?wcE;3z{>^>$%{=>Wf1)Pm9DCF1UQxUR zjqdm5Lx(-i%BH_s9<^%D0Ma0KX(2+E3YVZo^f>Kj=W9Let8Fm~~V6FPQg|EU%ipABSk+5@I2x- zQsBtehTdV3YZdO0%Cu|uT5fNm5VBv+D%a#Jakj3*L*wHkvw9=T`aKz@9U0GAU-a>t zcZ}y-p&T=5*Al>^p<%PN&cmrK>;&^jTi#t&ip-j{v3Y;q%Wj9JY@SP(FudnJSN{Xb zp8%l3Rz`B-Elo9XGp((yQXM%e1sX*nkwbB&wg2jl78|u9-9W&eZPC`%5Xuofil1zwIK3^@SE3JvGnUJ(98UdIg+YP9IvMH2%$2jc2O=EaK^ zndDesny}1_vND$6klwh-!^5LI3Bcx-LEiCV!&*jceXNxTkyd$PqkNX*U|s-FTECu6 zOXw)sP4t%=;>!7Bg@%fBDrBy=U_laI@=bZHR_OD%Vc4t`>fn*L()3B!f)sNez$4U$ zMEG0z_tx>Q<2x$HR?oc_ZHEb|lHz-{-bWTn$n4IrL1&4=6&jTyk|C;Js3~aLl#g3j zcTK!1ZZD~rHE1~iOE0jBTan$JQg`kN`tU>Y-Z`DWl1xv1`ZI#KoSkFMj1n>@Q{)mw z&1Zd&Erb0O%*KS&o6(UwQ0v#$R%Jj9OZs*)%dy_U7lm9dxPTOAdf5lpJe_e){OE5a zi0S0^M7~5@l@Fbw6tITi-!Ud#5WsZYoU4!#Vt_bZ z&m0fqmJRyxDkSn!`{InD!;Z5XzN&Zmk`JgQ3E&;!$b>Imc2|Og4RDyf=Ou9kwxk*J zX!&E&JImQnrv+2z0c8_VDD+Vk457Y@eO$OkpJy!GQ^!<{f5-9l>;GPJdd&FgPXa*d z1BrfsImz(z@jrUJK_C*w0!AAIpJ!+1tWBYo95E=lj#naTVHRJqh3=~KK00d9y08%~ z5VMg|T=kxtn>(CM$`Loi)sZFRGVws==)R6Rlq|y8K~6=PwDWgdYxH>---@W}iRnRi zX3G0ZkHwPn1t`^CxgDG`o>#lHWqtFK@e7=zZja?_S1z>;vtA95-m ze9UqzwkW7B)vKvijk#75ohH5F@^jQ=T&PiuGnfh{QC>Am+f_iUq{`WqrlMR*p>iF^ z&(PMBpaL@$I=R6i1=Uvm#He3jcUTblQpPE>2F)o2Y(8RQ zqmeT^!9;{)LJ`_B@S1#2Bsd|+L%Ne~#%`~1YunpXvqt{b?c1=;Pod-;(8qn9RXrSg zT3C8S0={L&cAm~~P=3`D&XN*+#xH{KWigaOR+%=NLBizeT|1}a4UMan=5?%CYE_n6 zy|`zH3x`R1_x$TViRPV>6^p}sdQO;dt;u0G@|E4MR;1c~+GY!Ztmr&TmcbEtnu$KAP13>85hrNE=s-Mmk{1obYc#{cg3#=W2M` zu1Q=~vfi2pks2=EF~2uszZd%Thpw0er?Q7%&VbwZ=JU&hJ=`48-J*1R3}HTKwL~01 zzM~`F3hXt+vXYiR8oz=nLj@6CmhrGgsv9M_)%yf+93v-kc>#ADmCQpsndR0n~ zh{&RkqqCHR1D=t5OV6X*IYf-gjk<H(s`6HbE9%d&31{otJ%dy*W5M2p2PGD6Mk;DIPyX|Wm>qm4&qBICv*%=fzoTJY{>DkUa+itZ+qIs@w0xv$`k8fH+2=g0 z_KM5Hs#KX8YqQR(G)%9EsAE&MKFZq=GrcNPUV|Y5-1VWA_8(Wx*!KGny#3El-v(^q#Gsjl z*!yXtiZ#ikR&_m$`_Ssoa{C!K-Zz^VFVMl=`aT^O_)wo{eg3X8LZQx1p`Ft%Y{=)z z)-04lSv2ia!B3yQKZF3uJC1is{v`yz!)9$wQPYjhdLWW^nv$o>z`*@Y?dfBK-lUhL zNVR}~hQkX-69e0LAixpvp^vOX&~bmJ3G=cVh&vFz#efZT{kf=&a^LaGc;KryT-0;lQr%;#y6rHVOu1|8 zjC8x;^Y_!IPfgGfU%}AKtPy!(Md{ynN}RU)<_!K92W(^^8p&AC_~xv;+8apU`xhml z0`0qEYrGdALoOEkuG^I$n3t^Hlu!&y$cG3WvDdnK+9mn;9bA8=fru~wbFgx^;jh_a zYxUKB>{`UrriHn;+F%|g2EBR@#DqTFG2R9KXYMQ}vTbDy$ysEI-Qw|#--Kl zts%3O-@k7Hde{YD*K8zgi7=Ibi&^+)N(CqVe&XZ(vMvcj*e)`v_9mUfOw$qAWF9+W z?mza^z9xNxx9@u9MqlQS?ndA6k}Mt{Sl=VyW{eSao^5WpQmx$B__|5AaQoCd%V)6c zmr&eW!v4q^!KKQOnFV1eEnY=Kr_`Wir1J4?Ott&;F?9amLt;0vi!0eU$N~i=TSaYm zV1+kgRfeeriMQg?*ttY} z)rLOXwM(rcY!R(KR*NXPUEjw|RkV)^0e@!v#I0Vn4YfsDB~SeQYTu>;;*U`t3IO95 zouL7G8?D%l8cyn>gjn@j-XHhCr;fVt1yN(TlnPE^7scuV6wNBEw>#)Y^kMHA zecf^j_hIdlXE}If9k$JidN~RCXr#+S+H{d7UF}m$Os|9f^ab~|cK-1oR2>?& z>`#rodR9D@%RL2Iq+D3jqpc058JhX?SLv^?m}vta<4E zWEt!Gu&`_4)py8No|SB70J1wR4;PKEx=&9hQpJOlq>rk;A|so}`db?AeZ5Y9H9 z$DgDHf6e?1Mbt0y+ZDz;4;LCnbvV3N z3R)}nBTg2~m(g6q$f9!=FWU;5t{Xy%$iI@xy=gp z*>$vV9Y-&tfA(FM4SJdd7XviLbNL(Eq{Mr zr9z(!TqbAWjVRFACUJgl_A>g-E-=hAfiJ|B{cEbUiwk;9KSV(%a1v)tjVe}3Kpu}NQJGE(9Ed=@ip#P>khQN*$(|8W*%E8sbri|UU3 zd`a`jCYLFg>Iif+KLx&B&wt?{6|`fWr_mWX<@m2Hv3&1*RbIZ#4?oZ2Ca^J9fEiBO z&kc*>=wcK0^DII968aXN(%K8Pd-BWBFGlg>IzN9~6`CI#C@zsG{5es}Y& z8v-5!HCN*3wI|T;t#%=?K3LV;d#2S(&Hl483I6L-odrDN#>x(Otf-s+Q);>t>nTRZHa&v1tu8}0iMJ8f5IZ3VPE3Gw7g4v?>V}RkkQ^1PhM~D1t6C zO`mBKM-jhiCqfwui%nl(=;deT3yr94R-?^K6<=h>cxCH;Z*7H8Zf)XcB+JVVq89jV z-H9soyQWlz@$j4Z8p(amOvQjt?n=;Z;u(u^tzoo2J2qDmAK&&Pbe&G=&JquhmUL=E z%54lx7ox8?Qu~j6tU?b-M&tGPYN38mJ4v+c*x?=ft^_rF2o+%yP8`I499#9Q4VGki zlLr_{Xo(z+ErSz+%&NNJMoVwcoGU%tAL+TxlfsdSWCS@2GYR=0Fv_gmhC zuEbKO_I`=AF2%JS=#3H5EC-;We8Bz)f=EAv9zIez$G_pV1?FWA$zS@wJ<{)iJ8XS+ zp)7FKVH;!xA9I?3|N6tOguC$`GYvV-l#^0EW17Pr%liB}QB|B?fIpHXMl8Ebf1}yH z7$HAyMw1L0^;i!S=gTPMja4A1n>D(G)e-NDuq;3XVjd5lc3^HYp7U_@IWyIz7zk|n zPr{B8aWa_o+2*nu;2i@AdQQ&1MXsyzTdUUMxmR-;qvnM67-Pah^jeE2aKV(Ak*xFq zvoMkkSDx?rtnWOOKREiSY^r)*XE;##j`Pfytsqo;nOJ6h==9zcnkcH3CfkcVBG8~v z$(Q>tP#%M3fOa<=D?i3QwQzDO-s71l%7UnqyUnr=b0!A`+4lQjYAi!x5n{X2snR~F zg}v#89HTD90fT?KR)`4sdQTx>S+P;r{_z~BCNLns@@b{KG;RUj1YzJ*;EhT)Sk@~@ z6tR@EY+9v;bh>rg$er2pl701cBezgMFKc~yVD-)T zEw36NTJG0=klj(k>Ws9$yzZ+09P}08FE!7#%%#O<*h6?HYP%g0uJ_LkJmc9NiwISG zh1PjeN;TtBeneMw&AY7<;U%@1K&xq0iCC%nGA}Q3a^>_-Kqf&qC(7}avmRXYEzJ~O zm*z_!{Ea+&X@N08yDP{rjkS&gZbfes<=FGlTVf$ip^`o;I;Hb3n}eSr%xjIpcdw09 zTQVtsp*vENDn16@5(fx2b&H^xyzt=P$Z%$EBrWTR%$*L%j_wYTFEs;*C`aHW7}!=3 z8fh6`4Y!|y00x8C-f`5VYhyC_fZ>8rx-0<}eHlM+&;b0E!(N?zA$y&RB3Uwxo4dOs z{sg|2+2-IvcIE5XitE5;rYz$zbDwI>llAc7LrJ&IS5%+hJj4AkI^`O?;swZS1A1>e zW@l-$iB!$M?(4<4`NL`E=hc7kD@RFCW*^PB=^+j9?87VbuIDWy^9ak!CBOn$^oFXa z3s66yfZJ%K;jtaUv}Md!P0+E_pfqje)d5=dAE|^ZyHD;LmnTI8 z?L^CN9pJ`SNu@HnuP*NJ-3eOK;1f9~VZJIYU0R7+6fyPO7Ityaozo?-}Dxju&T zX!4&>1<3ZJxMN@X3s`VEeQTDuvI2(eyV?M6rZ~4>*@=2pHda1_Ft7hpmGo~6==qsf z9lkYMSrQ&pHwfsKzo$-CwEo2syZ8M+(4~O;F$r#6^SH+0$Tomz zX$Xvd93tN>Xic{nt$g^9jeop@^YOrtk2mEBc?hE=st)PAnRpt&zj))fHI zxcu1sd>Gmr{vf)w57;|YWB1K4b?alVV;O(!qy0mg^O8hN3KKPqROF3Se1{6P%E00~ z_3u5>O1*C?#np1V=k&%LeJJ0xJ0taS{|2Fj9ViiD#P zFl4v@AuV3xJ|{Hrvo@qnZ^z5pD1K%&D~_mCY0Yazt2hHJme2TE7**s;VkLkpO1y^+ z0~?lZjYZKXGf?M|)>tGET!m_k9TZ3-`hs7uFKU&h^wIPR{d4d(`g(|I&iIqWK8cK` z=4O&xrXzDrwC5yRC9!l`G({44DqtbacDKgk=kHtpt-QE*xSX7|7OyGxA0u!{ff)%E zKP`3((#97syT)*InfnSLTu^rYCoYb4T=iwp`N&#E?0DzDJ|X)U{!vK;7zAub!^8?S zfIS9Ss{RbUd>P|PQxB4SbIFz;$jm{5$8A?+?&b)A3{Oz9hR^pWD-HH71EUjoUwl&s zdU5#y&Gc6RvO~LeN9Ff%m=AEka6(BhBzAs%JH_?TO(_NgMBm7NKb-t_*yDe}LWG<{cWfIc0(`MCq~cl;rqV9mWRM zq1(4_O9f1@htHSJE)CrM#&>jr;Z6o5a+DY2>GvFTzM0H>?$a^u9O5CBmMI`?1hIc; zKQbTb-O4`o?-sDOIhjD+Xy?2_HKQ#4PJlQ_eT>a_)aZsDFqZo6|NMP578AHrsJM=Q zrld*zhI|Op7v?m6^V5R8#sO9MjL&;D%3vKRc^U%YfOVzKxDh-kV`W)(6J(BdWXGte27(p zGm=@I@7+G{5qyocYq zrhuMn|Hw)AF+LQeQywNJCbh9rb2~XMxLnxVF?NPelIP|`vm3EJ`ccxoM5B#~2Io9! zkE#8oI-z4x@O-Y&(EHA_b$7Twefpnir2$Sw!@(E;u!93fAFneI;^~QXx!FUf6nvJj zx_Z%0(xWE;ED5NkXdd&-%*@oiR$mge*z@G*C59JgfJ`)kHe6+W&i{2;Q7mi+05PZ0 zq0#N`)no>#)0epEIN}>n{e7U6BJ@2(60}553cBK~9L(YhED&=*G1;!#XrjjWdE)W_ zp(kJ{NV7ljNPW@zr!|v<=*U}HCc~N_t>joC{nC%XV5Fv`MM+`W`giPq53mYkzu8q% z3&_#95yQaTgL%^Mum12Qs=v~}n7cVj{#E@2?j!SvnCnBpm`8dG;hE?TIr=K;6{wf( zY7``r51Q00-5DO;+S%PT0PeieV)$)(&64-u7?}-yBNwog4L;zw3mgUDsfsLQeM+8g z#RZkjX$XQFqJb{~cwwV&9_$2M^{C;6@xJajBkA#uRe#d%G{Mc4} z2W)T66v9O{6qTD+cLAd!aQ0=47@lHac-1|#jH$Kh)m09Rx=>(Mdv_Pywt#d@!j$T8-8Aq#+I7cr*un^SzkY7c^FO1{no)n*#KVZ}+Ju3FKHQ z1mA&4(Kp{YMgN|rE+2XNS5J5}sw|7{|^4D4dIWsY{i!Q$M}$s=JwdK(&ZeqMkOh2&*mowCXz>j5Nyk*K8mi$*e?NhuY*HkSA2&(qjjR*!lX17z~@Ph5kY@MYO>nVvodlW=*Qo;m=vj;ou9zrRV8i|#Mx z2{zi2>H3?KQ&2`_G#V@F!bWBy;e&0jj)vw2*BIqa*8Fe4hRX zO$|$F7M;5qS6OaK+OL<( z&BDte%YAPzu(W-Gx*W=AB^(RwvC}v6*e~f?Skb^8cfpGu2vO z=m;&%XhjQZSh7@wa{977RZ~<{94yd~R1L_}7Z=nB`szQsIi~*jac+|eXy-2h*mL% zbI#c%(62=cvhrV>|7;*-Gx0b}BYN?3?SqY*bGXyfk-jVa&eQ6w_(ol*%%1i7u@hSu zMpbm!iA4y}ET43<)_w2mMGqyly`9<$+b3aH_?C(Zl{J=_cW*wPM;p`_I>R5EW=;l2 zw?K}Sy49r%e3M)Oqz3oCy5@=@QF9(X5tojQXBXg@-GdP-MSdE=`;q;Mjei}uJb8^D zu@h&*@N9rFmXB&>*G4%z&798V@=TXESXo(BJXEIal<)>4NjkAh3G=-y$he*k%6GLm1> zhDZ73`@*L)*ZYp>+C0)Y(S*jqH9FV$?oi@_tGlOf(2cRJeXh+)HlpmG3RjXxWsld5 zz3iEd?ANsV$tCyBKgDhw9VWi0BgN{i5oN~9PvqB7uS)jP{~CjbWsp=wIH;k=G^CVA z??{F1hGrAe-WUF{f_If~F8U2-gznB<(|jvj&45pw@bh+R^AB8D0F=ey^&la;5GD^fkF<%Jfd?VJIm;N+ewU}4>l#Lu}!@JK~c_jfj^CH3PZ%W-R{ z(Nmi4@v0($j;03;iF?$G6(&}e)-uq9qjEn|zv$ROh4W|&m3GkOfya9VzFJCiCx7v) z7?y9~B-1J>v>5u~1Xw^iBt+7PagR;vD8ov;_$;KmFMK^_4cu2(H+y}&3 zj1&J0dV|_qPt!S-VmKb@K3Hylxhp}Xb>)al+;T9tB*U=onM4Gitog-@7d?ih#ePvj zwW1<1_lp+Y6Y~N{4(8RUtO0t{uU~w4iYCGtz9936&P4)!}_f;#kuc06UR(tAhK zk2v-`0xs2m#7Yy;U>t7g7Ia^U9?Uby*T~2YMOj^FSlzU{-{AP`*ROKB;S2F-m7v9P z#M+dziLuJ}houQ=K?950SWAYHA7#g(98*0f6iKRAreG2O<&RZD*6DZ(l{^kp_O9CG zYRfsszdQU>^>oH01oiblahXW}mnfCXOQuQ5L;Q#EE^}Fy+4^T9$5sUR&JsS&$UmaQ;Jnb`M% z?c<-u3Y+NLHSlGC=KJBphw7k)sw&X_1a(siqU^PD;pkx;br{#T#?Q%_{h6R`7@HW2 zCrwsP96;}cSdZ~O_@cKID<4`aw-xL~`}h+Qj{bU}8DV0pD0cn&qgqyEen65#Vxv<7 zd}(#O5q;_c-*@mim62g#>+7$`7bXg8*ho&`QN;MUE?!KFbBF)lvzzSe#5iER!qntZ ztGOMm1$4hcn6ziEWguc@dS+SG$fC|-!(P>F+G_aSsC+cPU8CpJ{N@Jj0(X;37IZe& zLRtB?s8xljw2R3wXz>=xg0HNcP*mptHvt!K-3iI9}Pmak2ldt-OHnheBg zZ_o9p)C6_YPg6hl_r;US2vE3KQ{1BhE7B7!t~`C*m(Z~5Mc)+tN{KQBb3?n% z78Z@cmhtbz^MjTUFooa(cx$lCwm}3;p}o*f?6kFUP7$xPb31f19{u^#Cp}CsKl2Iw z7Kj{`-CSJ%r2T`c4>V!cBRJ%~v^@<2!8|{jagFc3{@X$JHiLflQ>-EWdgV`_;{$M! zmai23m%me2Co?w1W05No-6<-LPR+Sy_1Rzk7MtzgU`re{S&yAoucU7tFmXV8v;z9( z%Av}VG~{@6bs+2%bNTL=mAU9OJ`_t4DWaZO8(Osv*6+>xu5SP2EZ6fLEPjEMWclyK zi}F6yaBw1Q$6y=aFc__66>fGDdFQIZ@6v~B{AB8TIy$tvV6p~9$<;5*Mtv7ouecxi zY-Mm3fbGl;o(nlaw$TGqG9Vyel%6sUAw5h|Od_~~u6}qQ>NM8r9J(pDwX{5U?42b{ zvc@$&=&v?#ubQ0VE8cWo`_6CAm8O<$OsLa8Syi=)pno8veEqIhbvZdXT1#f7ZY611 zxnQuN@;bFP+mp>^kZVp10!=&6Az3a^4f9&rR5H8Ucca+b8X&GQq=)0!aflQ@tSg#W zp;u&4y|A#5#aOIogW#6(x3(Z4*V28)zx%iHF! z>zkT>JJ_b_S)Zpt`ecR5vU68QgUa$BK44wwj)fmo;sUoYNq*B5*3j03+80IO^Rm|_ zYif;lwUcC>r+x(>?CrJUjXuu`#E3YGO*RCXNEj^WVunF9|Hsifn$5%+~S6F#}8#~9hEGwOM6as z>aDG;L(u`FkAM+-b7iddHWVV=3?H z2Ku26Xn(y}>3qIe``xZ0lpk@0`Rs~{e}h&=g5aL0=gV`tr}K;>%mHS#2wwtt463jq z4VjUKiY4nC!OjVrrDxXF2Qe@Bh`w4u3rE8gG{M@m9(ek-lE*9Y879bqFn@p|3?I}V zw9{T&*+0cRME;^IZzl|x*Lp+*Gv<)BK@j*}zk|^2+IJSya+-yrYS2nNJmb;z&8^(q zx$XzMlIPJo`$DP~%Ft0f|I%ZH)UAy!uk#0UZ~)lcv=+s2A1v$b?~Bdb=8|a|2JQe* zWVd=SeAL5t!qF1TXit2;aV5RRrJg+1^}nVPfXYW2xT#qyUS-*IZaYhcoZrvI_~D*c zZV19^g|k8S_#<&k$*Vp93^75-dAlZl!mR6g)ZpTMD7DmWrBo~;#iHU>^?-cMz0<$m zDX_a|X~kA3ti3}jf2tf-uGxJ6P>@A%aA(VRl?K0+!R88NtMb6o>hHAZiec-($?d9< z&Y#om2nLmPJgKRV!|KU>2P|6tvOT~OAb?2L>+mcSItP=Ib^glUv zf&2^wZ^h^)8P_p%MUu&{^XQ8JWRiDxlH6lOjARtmejY#RF8kI~4Gy)IbfZ1p%_~ai z8{?SlxjJ25C3l`)WXOt_z?b+Rmi2#Kg60C}H>+R3_v71>_!6SK$;-Qh{>?q5s6!z~q%_!hsUd1g5n3cjJKf4%NSHFx+ln-auy@ltsT1u%!5?}VVaihn7c-0TkWEj?mDc{9SCi3*oYCl+Ll?zQ(Q%Cdqxr&9h1|7BirJZ!o zGFI47pE#JuwyUzc>H|9%z1x+d)bonaK&MIh9Sm~!NUSB5gr;2q$8;E*m2Xt6qclKK zWoKuP6*DsT2~N&uvV&T2fOsHE9Rm?QhhZF&blnNnlSQjt!-T=yiy5(V30JdQU;g>} zkhz2D)h(0>32Stp3fCov$P4PA|Kh(ii{Kly1MSRW@Sz-{eBDVP2qpPeab7+Z-&)>@I|ZZ|2BoP zycFCv&$T(U-4g85RxOuYuof;Z$!M(}tS>U{v(09FHz~5(cRKI%$QAsdhNQcrSsp}7 z1wUy;E)nD6UZ@aWnat<2(fi~e`O`k`o&-sC9qq$KIG7&STY~1=3rP0Q zqE!IkTxlI;Kt1=xdT{=2*OmO&uZ^|d<$;d$N8>GWOQg^5`{pViOy9^+QOod0p@@@} z1j!i6RGG*WX&Vgf2#ElKHjI&Scy7PdpEc&tU9cQ`FeJIR<%yYLFd zc<*)DXr%E~I64~Ke$e{b$I#7@XQjh)5qv~KPNP;2JSH3Yd4wlgS|)wKiY$uTsM`Kq}9=kFR(Ir zclx|cOs(YU$8JiX3=0T#x3)@PiTr z=gJryz3`IY4V&RL$TBocg1?TIwpstRCu`2NQ6J7Epd#=JTeEaaw>P+py~i?dMeqjS zZEH5JaUZX|V&0f2BN2HqyxZ}e3euH4952#P09uDMxDjW#8-P{LBTG$|R$9CvWFM;b-otWP(YCN zmT|r6l>}&)wcebBSFfz3Oz_RUw2qwXfy=liOwVb|Y2k$N+ud+VmE!nen1HpE#k`kH zx0D!Sb~`uxY-UsI+JQ!~z`ytp(sb`o{F8av$EPME#YZUE#kuedR&~oq^DoyRn4E1)D)^-MU1*_%^6OTg_W1zPkSP5{|5h4MmOLUl z)NSvg8X>*+m|M>AER?gx?OiXUsR#OcS`}AXk#Z4s2L#q0_ zf}-0V>qm+@Nwg))mBDFR`r||7^Y#vsZLO7RJ3Q5cmo}>o_s?=e?dfp@iLIoz5C0Ac zPA1#UYK9rV&NY$!Z;hHR5SE_ud2B<;px(u=>E!h?ds@2U>pi{vp)u>?^qT!KcHHa#=%h|B~a+ESc8gCZ8-E;DzM{`KpK=<`o8A3`o%djb>{{dgVA)plFrA|D@LQS}8;;mI0b zt(dq@pvUDo>?9)W$B`bo>-M&`Wi1t>C;#U-`IItQ>-cR(0nAe2E!!)VJxQil<7E_( zM^N$wUJ1`*jetS(Vcg}x>!_0Xu+X?Vj{G$=(y$`@j|Qq5?x+0(Ej_`Jzimr+T`%8OdIVwHZn5M zzTrc!dMn7K2DUMqwo9q?ZFrV&FVFC^J|d~M*vR%zOyAyXHRQu#uQ-$jmeT7gk|ja9 zeQDswEyXLQ4r~v;7!-Siga*lV7P-+qNk(ZFCkNx5mv9Q zS3nk!WI!IYW8|ya?|hY`NnG?5{%O-$Bf#GG=(48}tpWcwsW4ICNgnNZ79S zzow7ubL0)ri7Fe&^j9ub1ZPKYpiT46y*G-aCWhZe_&KXdI#4PB;TBqM<|+F=ts}d2 zD^hE_dC8S0C0WiJ3y>fpy13AyUcb_lAoFY}V1D^x(}sW+4C7;x(3MjX)GCvs)rrSG z*8+QlAfWA9(MCYg-tjNX(To@7&0m^wnb?Q^(KrohFPcB?CVWIvrtk@6j(=Z*r7IxU zmb+6FQ0u)%6hghi(bDvT_6O(WL;lVINIkTu+-H$KTb@)q$ByFn@sE>y5{I3(18n<0e&9=HD{5>Cgz3zD&A+Wu^ez!bVjP%tQ*ic)J2gf)uGq$2<+6IqeXLHyM75}; z#;Pr1bcD2&8YHGcyaadbPVFmC7#OVclZ5Ppv@~W3cMU4QW^Wpa+k# zx4*v070xFQPJf-v)QE1mTQP1Xy9-Ltb!PS?!roHePr~w%VA{(zH^pJHLbu~JoeOId z5(s#(@VJ47J{QsuQFT|+b4GEp%7$@+@$=nj^QvVAC1JH;lw6~yU^TIie|cT14BA+7 zh<5v_s=aaVp8jd}QKX9as`W_LmFg4;n)2P+>63xVf|q?0*?vj@4O)hC zgg4SIb(c)wa(DFt+&Y-w`q>U&hXU%S>hn28E$25ki$bo{R5kSnk5_5HE8U0x%~0onB`OAg z-`m^E)%*DtYnoPvHPNynUCFswocOH5eyEH7-%r-ijkkU-!`kZyO5JYt+skp{S{FPf zWrkE#L(emp;l7v`ClCsPPE$uetg)VEAF*6@9zmhqhKf|W-5LD1W9N&**Uj+&dBfVT#*h2NkM173tlr$| zcD{P_!=th@yZ18DDOl7_p6yPo_KHvRtH#&`;-ixTAz4yzY* zYsdGu7LfABN@?G;FT|MI$zIkRlWH-`jBY}U0ucpba~)V4!8NT>7gbi{J+U))9~xl| z^9Bp@f=u=c$1BDr5v#|?YwSs;y80g&l00*KNo}jM-pa^0V@W$|&@1ul3l+&NTmzKn zNgIKKZlScQVA%vq?i$9mMGe9i&f8ePzFiqbtOwqEPh&+bWya`eJ_Rh`3Aryyj>D8Z zAm4J=dLh}!==Np@qnO_no(yHY=hYYgTars{O9PIAbMtJhJh%T-K=GFm%e+ceTYBtG z?&yjSJ`tn_*6ZJ!u%VEIK8;GzCA$1Jo1UtNNiXJS7PVZ?f8s;SioIG}J?#*fQp%z0ty$fC7>)^tGUv9^X0%5j3Wa?XFn2P=#Rxk( zIRzNqq|aR9tx$9xLla40Gy+~p{{XXAO--Yq|176;T3G;#`WuiP$k6g=U*7~ws`Mf z)7L>{p(jegvsG@&zcRd8Somf&9zQgcfk)wm1ZQSuh_cH!R67_U4XowR?lC46!{;05 z0v@*j*eifrpjSW2ymP|Ww0q32k=Sc9=grfGp9-Skf}1=wEF*;UyNJ?kc87czQTp$; z%b}wK0PR8weMGK>12#MHb7cZ9QJ2fko$o7r<0=rTbZdxFVa2f6Q;+gp-IJ*Gt5CpE zUXEo|`}fTvEQcH!_h`?D$4;~JakpR;bX-1-Nbq>_P4??}EzHcM9p67U5}P6yD5!%D z*ui?){+PcDsp?B6>2<9>vKcC9SzGqn_b458lSe?a-z?2iCjxAxGlf9mG0T@}7^Y#^ z1}ao4NI+ppl<>=5(f8Jh6Yrx1O=(@!^0D{%rh4uA^etJNbeM(S7in$??bHa{-RxC!y9 z1b6B=$Ye{%Nx)U7Kt-ej#tkzsI=*}4dAm@BQObX50~>u#KF=Vhg7otuFcTDzjAHyD zSV6?)Ft7pQI%UCgj5_UK!)?(*m$s85wXjUrcg1b9NdAg%zh0bdv2_7IMWe)>CZn1# zdeg4jXF(<=L20R|#(yOpvPu8%%YsOYmTMkBvxh()wyTXauXl@Z=s6sH)fYfb9t}O$ z)%NeG`C4QL#=H$HEkgDP3<$_G>6t2zx?%NKuZ^5KIc`{tdJ8?M%&B%?OxG zg~)gX9kTmlQe8RbEVBY4O`X5}yzYJ4of`W-TU)Amyf6oY z3pJ3bks%{G4moZ9z8y;IH2(6`S|&0}eZ^ zxqZN^5d4e;mGNUN@*WA)UTKWZFwE1>L*a>t=%v*Q6HpcD6D zn24GkF(_%^{%*BO$|WnS0dd8sz^O#N49E1mSZQqi-6_=QZli)}#rdWn4iUrt{sjgG zJ_{_OG2SZpg7#ZqUpJYgF+UeqS>I@w3{Stv3}FEhM!awxM8& zW5=yEH(TRW&fAO2U6Gl!?zIMHGoq}z=fF7|yfZOH=+bj4q zOZD1P%u?r23qf`)7GSfEUL!nYS>l`px80m8deg@KWB!jb=v-W)@nejB^z55m>jJP5*mSQRaov*(NWbV13!@cW?VV>b5FD zW^_zo*cQ5t=l*AvkxtbVfzPea%xF|3{f2VVDr7R6I z=B^%DGpxCqf**fnb621MZ8g&PW9C=O;EDlRtf=<-y?gg`R5@))K&18{dzOusQwa-O zEb1WO0o}H;{OH%k97;W*!7e64*e9g>XkMDbui}mYK80snvX+KLRS) zEMk-%gEcO4FKsWYYt&o|Zjs@wnH09(Rr=PWq77 zpwUd6>_0%zf(7fXjZ`=Fm)&eNX5y53IJ;^<&y4bROQl|!uhwGm&Lc&)4a3;)z5K?>!GJ6 z?Vt(qB4#=#-T9pA{txj`VMWCQ0UFcq@e~Zs5c8~aKtYc)NnAT$y_rgsf1ZApev+|! z$`qm0Oe_9ZoJc78YEgGFvL8UIXV42}pil6~c<4oQM(oh|8+q3FM?CeuB%Z7YtXxBM zM63|jGI7MA!5$x|g6A|$Kv5C0=r9p8d60oJ|Kb1e`p}S-uNFr7f3MuR9|1)*xgrDw z;E-FwZ<-CcN+xhU_JwwWjDXp*iKYK{mr|@KBe6i*Fa$;y?p52PoV0!5Y2pE-sox*s zK`byaoHAwC55?rnE2QEEiOwHNizEr+x;agK>#zH$^=ar$Fc=~*sl4LYe6r&QF);s6 zy_UNBB#6HX3k*Nl;b^OT;99{79pE2kSrTP0=q*drW~?m@_}M@f zG@Jf-=Lh$F{}9V+Acqp`%v)Ey+BDWIs-1 z;nMR`hc+w_s|^clsFxj>E+23#4S*>E#Ki~I-i!L!!MvRwl_i`9z2<(g055-P*H!@$ zpO<5Fp^V+8MKZ!k`TqaXxnh+o;;RCG)#9-Ink_d&yIpQY#7&k}s+TG+^w zT)AdtjtK}YjEp@heDaeP(2rIKJ$kh|R4&$x26iCc6${7ax9{Gzo@|7ynW-5pUIgd< z(JSCC1UP(fnnQSfDHvhO)tKJ4PmJMhiw1g<9a_M4`lPp6eQO ztvbCT($=3h>UhWf28Y}s=YxV3!~#DXw49%IBQzH%#KPv8-%1_mgiBs&X=!873rz6A zg3!S3;>h#4`S`bSGp>L&4$*6dddHo>wTa5EH6W;!cd1$PR(@sW+C)Pkh^&O}{JE?O zhTqO2${2JVJ=Eg_q)jvPD z`I|rh5*VzxV>&~%$iZxT9;WwOI94h3K93{c7^G6Z30>dnAmt>ebb32SzKd}JK|R>| z27~Z!z(L1nf8>J?SGC_p!OM*(^Ai6odBn;K(`?8cIlZQ?<=yfU;6M}|H*7gJJTPEj zrydb~#Fm0SckY}dZ~SU!4nMTG84!IA*jqsg!BL<;I-(?gZ_wJG_s9kkTOxR}8Kk*r zfS^Hvq(Nebb_dlLCb*pZb(M;qzf&WQG(^uZX4CH9>H8G(4)}+u+}bc6)>$4)0@Mq1 z_{jKH2se~(US?aECgSC*sHC*hWilt7%V^b1k@u?`Z2FQY<(7^U8A=e-Sa^nSH^SMr zY2pjwsvc6kINEty88RLtzY9HDR|axSYJtqWuqH<1Fafr?>*2_mOqxJlXCY)D15 z>0|g^Ulp`Q{$gRd{eU%=s|j+WN5Z6?GDVY)zTh|YiW{jlGV}x5Wu9(f%-(u-TS|+VTIdT1}PjRB=MY|}TrH)S;fYIUnwq!t3uB(vpzB56RRC^{`I$$=& zDc;358#sDQQ$%@<;g$aEUcv}dCMC}EZ~s)_ukxGts{4_c5B+NwE9bL#B7c02`D)8x z0ui4P4{zO}3|LF%BwD|R*CTKqlQkS@++**@4^FTDzI(2FhjgX&-{vO(6ys2%FuEd% zOWLLP&q^>eL;)gs992QZsGa55>(EO%RMw&h(>-koKWx7%M)$&5=M{qb=x4fu;7lk% z-sfYtIY*DG&|8N5O(GDCx9QW%3rtj=4i@CPk~hhb_-PXz?p^qOpR|k zP0Y8-9=N)jZY9Z=lc#+fK^xrhC`RHO1HXp`DO)5+IvO*Ze_#2BXf0s;jf|APUbwgA zWo;ZiLBd3lReo3tSRX*=iqMs49li@+5c>R%Ae-j)O%y>|bPwfs1?|@m$m*6L9R+M9 zV~65S6frNy@GkVz2`bO=-K7wi%A2p;Ug@La55g&q@&SQ?Bw*>l9C!$&eqqAHKdkRL zkHxGIC(?Yb4@WQDwf>*MaOAcu5uey0y*X}{G*ea!y+;ocF(B>OihfJ8`qn(k$mf3TDI$^VxkCc^O~oeva+n<#+f$N5Oq^)N>K;xg1}ulJD0c zgWdGzP}=I0Y>$!)TO%|U_qwLZgAg94nALX>*1N)2?63nR68rPCt}{3uOfbPScUZjW z5I`O~>ocmn0M3jfxP`bnK)h{gh3*kGNYRk`LAW+q6`*>#F=;QCY1;zZ0za~0#~%x9 z-P?EW+!}Z9+j-Nq? zT$uhm4U%I4Dm^AjamHGZuk%1Q9zIFvPpkhZy`J%AbA#%&KT=6R!D}nmo`cPf0a{Ec z%eAa6@%iEpKAg@o6Hl;48F3x0K&v%o&U*eF#_tdQH(i+zFbkqjPbk!2-6vsxYZI}G zeE>f=|H)C^nNpy*k}3+B%ExK;qe4~n3oEnDVW^)F<>W$pf)-dMy_J4@!^P%%!04XJ zERtcl_HO_n78*^0E)(BNsQe?vAVcFqX?Or|wjKbXF@TVQr($Lp4ND*2t~VtCZ1HPV2Y@77}1O$Ele>UNQM&x;!RA2vA*%hwr# zwOt89T2c5jXRd)AVZNKwXA^jv`#mxm`UBKvd=b1lv*^;LW0n)q7mxkJ8vXlNG^cFP z@gH8%v9fnwq>SOBfp%GBLl4O;I?lX2?8f&dZ(*Z?@3YNc1pK6DwfDUjwr9h#qH18w zm+wS|T+kxYW@sS1_gLTLMz?0{oxG`fl%St9^W~eYd_Xa;$SgWB-Pxku=o06E#Fo@dTSZaSNMePe zYDDY^BJ$k%KX0DLi`K_Ua&n(@-PiS9Cnqv4GC>=13BF*~*0HXXv}SntDpykBx#wpV z4{LvjGrqUVf7Ix1)k|rk6791W&ZyNQ#B#1vDE>cHNZAGe(B&8FS)Ia9eLV0am-IJ%1`T56GvgS zeMDM$z~M7e){GTYL!%yns;E3z!@0zpWVOL}{cu5c_JR;*(#vqx9KKSTJLxF$3KRTf zL-?p+;MUH-lM-eo{O=d6OgG-XdGjV+*3136gxS*TCnao&`r&repFbbgL&z+`_U1&+ zxspPr^6$&kT)V8$E@Muniri!TcVC3k32eik$8E${>C}`dEL5ltZ>l+n*ej!EDBDJ! zW@BSRFMS*&lL!VutCQHwUBAE7SCx&JQFRugjP8p2rIU;WX>JPl2K-y*)=N{gLVFR6 z$8nzIgC@bNLG?^Oo;_o|s5ZCOb#|3j8ys@OVCBw9%d%mipo)p~J3jA)V={{U7YCIC zIj;-2G;cFO6CWa2=)?xp&08v*-eoaq-sT(6u1;1l?fLp)XhT z(xtT#Q6G?ZwZC3tXH*aqGq{_K{~sOl_c`(GzW?HeP?n0HwS$90V*oX!#-&GGP*9Lv z+|)8n%0+)=i91sX(!ci7KxEna-0bY<=8%o0QI~AJs?CdTqaLzZ@*($9#qEt#^Q2At)ky{%)v>z=7$d-Ho9koyuH2IMJykxOsbrW?BkX5TKHRnX!Ku9^dhuE z1*fyQ|B^^ZJ{1Mis=MFr3)Zat`F7-gCs7v{y?IkN=*p^y&cB=82&MRa=3OF0r{?Iy z`>pINWGO~y=Q`xRkBKo&`DK-)92UqpNvpw*ur|R{HUsP#;`esu#z0bf-ik(7=eQ;~ zR9Xd1-w!b$H27&2>E{eKY(n!FBBg8-|7H- zW8eA9V39#(xt$gHN#8ZIs=I1VKNBt)_3>Ib;J^DX??}R0!>xi=CPQ{2uP@t=kak@k zpZ68I|E=f+I}cCk_*rzavQ6OJ&kyQ{4i0sHlyrQNEqdubeU z+3SenxH&d1es^{RKROkjr1t@`T7lzhm#$2N#=Ip4d9=Uhkh;^CgYgV#QaSOGm0O_5 zzhn^gbM1N)O*od0^U6u>ZrxgIEzY2LME?^*)w@r2uUQV*R22D+hGOvJCC|7pd){`57dOpb*L(dKsEP^KDu@Tf<9_iP?z-7O-MH#Ta>k(FrD&x6nFp)C?Q z%+;}clHKN|_iq%y>fzBqV*q;_mySR#BoLlI9YE{_saWc;r zGS|F*w%i>Hyf`dqcZZ4=9O+IGhf}!BM9iuQ7}`aBsFF6xPt8<8S9oyh+e>E#5&wBc zF&48uO_RHKP#vM&!aDhe)RkWs`_)s=)FFBtpt1@fwc4OJZf6~!N~hN_E$SF z7_By8l+b4CSPOk-Z_>Ip97&25_x=&w`t185)bofFV}YIo(zb%vt9{4d<{MMtE|d^n zsSQZS=Cv<-X11#RWH{z`v`1A0w_lS6M|)0g2#nS$|CFs-y=&9jyqlRl z)H&XXo9z`qCF_`v=6Ovo{Uu$;n)S&v8BU`CORie40N)hZ;cx^LV14gPUBeLDmb zPoVsXlELt7H-(E|Rhzsb>6zO9dZaZ&8f#8Www6?pv$L~9p&MJA#+#=pmQYTP0wQp1 z(qrqh!+6!s!#ujOM;Cgao&WCpRM42};X{*#tq!xt(Sq(lF8%M~`~og8t&)2n7f4wCzFSmdzLS=WS7s(?sya`6{$fQCItfA)0xGT}d2FvDj!cY7BaW zxw^QDp~np=I3i>{t!2DMei-)mTuOySp6;aR1_yr$TppX=STE|&#Pt!BNZm`va0Zf6 zb>3smTJ=jUrC!QYG3!!6`#*eI@KhM~RJa*+dsU}qkI)#P1GQP|p41&9-%)Zed1DD$52OTR3?|MJqW|p068Ap!Q%g;0P7!jX zCa(D1kjeg1cW}Rwi4@x=gN>JsCZ>G)4T}U-xusJa|y5k@2tkz%odBvophNUf5vuQR=ZJTPTtoPN>yeHs>*{cg)OZ8^=u|OtvNg62 z+^W?0lVhCu4|;i*evL}KvzDWUT`G5K;^5ioVnWB$NR%nlR$m3Q#KT^DX?rJ;BwP)9 z&xFc6xFE$2L&p{UcM`@sA2jj%*f@5^o0SEM1%N_Kjb{ef4cv67K8S9&IK^y`3^yIj zD~O&@qz^BeU^lbS{*)CMnix6P&5pEfF~-8pq-^WncQJNRzJ?=hZHUb)$B+J;7AmvG z9w9R=ijIfX`F{{Gy&+hH4;>iPD7CDAF`f5TRM;S^T#?1Si5$Trh_AHA&n5J@<4ceo zae_o#bq)(eGyU8V=S%zuwiC8m=Y(GR?XEe;%U7;2N}I7lfJ@tvo9&ul9NMkoG#K^R zuER-Ci5yJQa>rH_h{IZwu9MZfllEVJW4d_gf|#*sy*<*ClaEb6u~<2bQalkoXB!&h zH{Z`~E$MDrmV3FM(`Ru9)Y^@|+CST%@yK18DY)iyJsAdx{s*g@=~7VKqQ*-}`&c8? z@~8~xp{afB_F*pq;oJSHB0HvQZ8hK{jOsvpR_(Yi!&-wl9ALyi=XpnaH$BR=hCQ5j#B;T|foZD0C z&Qz#v#0(HBmJevusFVpXYf7yfN~ePj3=C5HYM+cgR@X5~);8OEoW?nqEK_#bYYKOO z+0NMhB@e!}3ilnYhf;-o{_B;#_TU1K1-Qe<4ii(S40%2JAEAAq-xlk=!4*=lp#>?WrWGQHcoq(*xPqhK{#+5|+el?=9aSJP zzk`K`m{yeY0UaOzoxZEtw7onijEH^+w&@aqq8_2L%v?_##)&`uyVYB=_ne$8X8@`Z zx6%uF;GSbxxddERUNn>%H19p6LDhvsv)*I zsS+}fa;sx1>qf+Pd_jN30n0o~hRm%NOVhmIlQQLa!v^0ua{&7;0BD5qns~GzbdH<5 zgt4tUxofe7PQ0moR0bq3H#1RhC@LyaL=lU@oi;;xj578@mV%$PPKw09^p!WHZRIum zp?cSGTcY_v-Zej!#leu-CD3W1rGc_0bEFly>SmF*J{AeH=)XgY`8%DPkkDgICx#A1 z-xGus4Q0yk!+_wtC))z>J_v^?xe@jP3Mm#PrW!&zNl9pQ{JneP#I+A?fjR3&j+!@$ zy!+(o$dxYv#FR$LvUBL!%6ko`PLT*jh2LAA50B<;iM-F&n=+5X>@NXe{ zawS(mwa@9K-ah8BbwNFq0vDn7>`ne$Fy%zfWH&# zD+VCbP8IPCnmDls*=&1^3KN2PA@+(lWb$_k(3Mvpeo)+g9Ap1Zmbo`)`H3Qtp=@ABg z+V)_BZbx{nOniacpq@4?e%U!SCo*zRBC0)DzgBW#fbmLFnWX)AU)CM((B*HR)b%^J zRrZ4ZhKi(m;_3uF=(Z>2?mQUo4MR=gyisPQmR)OH2e0=%0Ze>XeGuoEB}lMFyLwV- zcvaobkQ~L(F&xGK8k*Ie!^G;^Q1rE;g*)Gs&-kem|4w`-2dUTqy@{nc^MM=j%31NM>vPmoZeWws^S z<(*btfUro1%v@lXFrV2=dbBK4Q*8lS}9(A7Jqt5M!AVH+^_n}sB1<@FNYVj zSZtY%0oh#Y6U3o9?`;!2OG=Y6; zzcn>&|I;2*Ze7W!)jr#704YH=X{pk0b^ab&Sg8K&)!V*S49LJh-HjnLFq;bWGH_4n zQUlRHk3Q$u+@uh_N*2a zFsIz8(*LwbHBTHY&?y4LB4b-%Pm)z#IzbUAO!+(^zVk+@`mp70RzU@i|L!_}uXxSf zAt4K&_$7T`$z-M7mq#fyQ-?r&&o1V?#}+!bl+4!oOc=$OI^!o1u%*Ju0!Pj^zv{>2 zQ-tOaXlPNAQvx=;;PaVf&ZKo$UnBZLEIG5mZw~jP5@YmkM(8m?uJu==U5D(h34ryH zA8Auz9X=ry?K&KbV8BYMM2+rja`v1pz{47!@51bHGph@!d4h@;Cw$ie5!ztOY zlXgW^$|^jji|PgF8M~qUMck~iva-zIAt<-hydWL6`^x*;0stU|oi}Z3e*aEx1q_Tw zAv{T^jn8+!8@V{u8!XQ!Joe?}>=ynT=CShRzph%)%?|WtBk)Q=0d5Unc(CrShIF+k z-=Kfb-j=y!M?Ua#={Iqpf3IG#srNMtaQEiJT^RouQoG9v8X!{bh{`+i?m8&Jj1*64 zhlwAS#MCo^q)DeQ5ZC6nCc)CLe#dMTTXCZG!!=eqO*KxUDMF*|9G1L?`0thu{+vF6 zu=OYyM@3}hlFPIlXSu$843~ASvVmh-ZKs{cfMDiMWND4hbocb=v>j&)3K7GVTh*3E zK8k3n0rFcGo!UI)D8OIIMM8Rcm%Qf{`(f}e+&G7g_I(bb&5F=#cUhEgp*n7D)?X!! z)T;vpMPM=#h;m!*y%vI#ldXPX<%kG{I92a~I*q*eYkJqsL@lsN-Yv5m9-9(L;oqKq z=p2aznPYrstq$Ri)^UriT`lJM7V{rO$~Gc*k-KNvB_a7jI!ePULD?YHDYhw zMZ8j?0)meGew&-a+YP19+Lb-(U6R3;`$(lypzSmlY-xz7dPv(I3t>s^iR|c17vh?& zipm&(eeI#&=8a&A0g~ZGM{`caRiEf-KIX^bq^`A7Pl1T>X`+6}g zC~^DS`o}qxE2h|G;9S?lT7m~?U0oA0zCWPr%G6)AKzZ!GGWB}kaXQz=zut_!$^3cs zsY%)dPb#6_&jPfx{yA`+46^U+MQ%tpk=POV4sIYzngx9M@A?fbm-#mVjIAk>Y+vEw zddR0BgDQ-8m(OSO`!PZWZjRng&6h=v@pS)kPBd@@nx%h<&|jlt%olDaX-GgA$A1SjPuFIchq{; z%97yf8LymLpO+m`6*Kmcv;rHb=K+BE{iJt=+DW(cA6QgYgz3-}PzO4Lb3H2(f^*63 zJxH3AQ+IwJt8&p*w@&@p_6sznYP=i*Q!Uz)DwmThGr_KrEs>W^2pdbLHIVwb!aUPp zbq&7lWUEdc4v7-N`1XjW*4c+dTqzNE;Ouaa10DD@(x1OPak?$nnp+lL@>nCfAz%^+ zs~N4F=dHmcAp_-P8A0IU6#!@lX5~Sc0K`%npQ}*-pRdpwOtdO@mBbdCw;?#V1uolN zpWO~Yyq_I(p6|;U%DwVW><>dG{#>iadDGC4QJx5MZqYM0XAi0lfr-pR-gN~i?tqQ=*yTRDP@ze4L&44p` zQQRN84dzRtnC}FyUHm3M?}+7%5{hweF&6DxZDO00)VG{-t?c^v*do=B#Ba)bx(!z1n^@(47q@Zm)b#1t>j#cs1I(P+24{)q-(_{7J` z({oZ#W{GdIopEw{vW)xkbp$sb?-fAmh5^fPf^KIV*1mva2sYTS7Q@9M>N1|AKfHKV ze1j1deEdh00%Z|Fd;*7j5h;AikgDKXvyPOnlH+#7qrh*>+u^#x3(~wV9A(3Qdfcp1 z;_JM#I*yU(z|84Eme7deUrQXsCBQ>%NZ;?Iz`+!B*fzDY1o8=8{kU$NTA&ke-3;;#jL}vY8W0K zZaOk$&)%JCQeS!lt~@*Z*9_5x`qkJVC?EXwmR(gKQt_P~Ml%hWDloL+bmLpEO~;-~ zchU{3r5V;vp+0~{>Q}$2H2seF^XE`gw6dp7eLXM6y6&No*>wvw=s<~ipG}qaX}~_F znz!cZ?VWtq{eVBvv?pL8$>L^;0|ynIuSer&ex=3aRKD_^@8efboAnJ_xlL7hG*dj1 z7JEsq$4RtY^o*k=3 zwcIPSRKk-$hlNSn$h8Pj>-^$Ey|fBi6YE0s^c6Fd|0owlHFUXnZ;L2KfBafHbYg)E zA8O#ncP%-(r}Vm(=hQ(&DgOHJGkt!_P_oVuD(mq3cF}-a3kel=|6!3;!O88dEz@1!4rWC&NYtXf zsl{P7v}rtUw!ch%IsS_zT+HAX1qP7oX|aF!icar?|7xvBwV_t3)+{J`{Q_tVTMH1GDSopGti5GF{UepW$#fISEZ{ofqrLznRKUHH{G{i zzf!WZH)ilY6sTn;y%#f?t}zLeYu#5f9rZvxDKqf6eEITl&>zjH6gn{P;PjOvJo{Z| z7>pm`cTx00th>x<$9;h;G1`x=^HHNiaL|tsH5WzBpop$x1r5OiGl4Li3;hliv3${7 z;GbSPe8Huyjzl3T`Yhx->t?w%CQT&H>1;)=Qj8IgF0r2&h7zK}6^9Ywmv}D#7E!T0 z;I%T~`06u52mx*X5~A$Vb%6k1wQHVZb%DzA04KZ6uh6|^RDCvH5q>-dv>+C-e(5fh zYy0}Bn;3a*EdkJ?0M~J~vQ*>%1Imjl_Ge3tKh0GTx^2@#@YyvHwW@b6Ab3hhNRXEY zqRoA;{&!gM=KR8kVYz{hcZd!rSb{XqFx)kW3cg7hegyp(<%JdQ>eL$dkZrrI2fW=W zKP~I{S1CZz*;TqJNCCjoxFG3UAOyg$T3voS}hrd)JfLfVQyI*EHEK*AZ0>k_%F0YIE!lJOZO|; zE+pn(>5PHnY}ysy%s2Oy1uP(RuUtIp`#RMO@$?D@BvXdf-Pq$-iqs`S^@2IJfQU75 zV@&d--3E&RP60V z(VY`NdwP1jWGPmveWv|h%Cpk+pM!H9Q^I{w<-gKYJ8$J$#><6$AxBJovO9usy(;Q8 zh9*6-*dEFp9ordy&{UI-h4VC)Hj0WP{dIIBC$Mt6hf>Zd=%a+SHaUMu5#)rs270T( zr zl$lm1A`S_0K{dfzZ3@?P)6Wz+fmhi%$X9^rzi!tkCM1~=tBj&S*;GXC#Hc$TFpkYD zS6Tr76Hs)eH27l&95u?>+n&clQQ-K8&nxxk!dxh_wp_X_ z#LtX*IsLr@$k`X+w|~$-8#6ZhLBOlS%WaKU0Yv|C@l`cmbu- z{-{WI3tUY|S#Uf*HT1hhA@Q=3-`|C^5x0XAa_>|HK5AZaV8@o3S^!xq(8)e#_j{Fx zm2QP?OWwCO6`faO?KgE&Zn}?7L^jj||7n~M=;0)1(&8S_G(LMR(v$Nmkb&JBmm!mT zQc9ZPF1+Yc&YtGtuZr6_x!~m)tU^8=Kp>_rny}0{Bi9y(iYzE{VO-s+{2T8UH*ETB z8^g6;s!&G^CrdTpse)HzK5h}Na&GVS1L1x-RCi%2VINd)mcS4yKuO&S^E^UO|M=qj z;^ONp{E|NmCz0@=BC+-M_ZJ|kBr&_0Nn@K!7WYm|y~&83(syGR%&a6uo^H*!-S5a; zqakN~DSuT1S71j=maAj7Q|rB8x*vCEb@g^9ELgW=+id3Bqi%{9~gOr0G*$zz(yl7`0Zm~dHQlcdQ!IJSFoG?^b-pqaf z_H9U4D>%;*@tu9yCU0fhq#*a)o`!P1-T#V}(Lo!5Vnso_j(snvntKl<>9Qdrf4w(d zWk~QN!x)W<m$=oJ9sxk;g(*4guv zhB7ZwV`$O5QlOI>^~G?N)e$iuXSlhl&?zD0MZAr7D>(`l0=)kc3N<1#TLSEiy``Q? z7AX%Xe%C!_41-&lzH>B=5#nGpcOZzk&AC&pa%s%FWpvFW##qYpvN3<4C*(ww*UtB) zPYRwro9iZ3RATq}?rT_W&TPTs-S~6tvNQRrT=hP;lugdu*o(~74 z^~KGB9NraPAg|Oo_59n)1m!mbxx75i+ns^($OC9NO`M%mtnp3zGc_8i8|XAg>aqRA&Ky=#{7NP9PwvY?x`n~<98<8fuz9hP($`W#pOaafYMuLysrWIs zpx<8V%580J^}b|n8LxqdtC2f#(<81W>v=aOIjj}c56%-1W!&{Zk}i1_v}vBg(w{;fr3=s+0K_an((ze7QZ(SzC&PHDLh z)x<8=K#$%P_!fwygWcRz!?xF4X;x;j^g2=EI#8DwnXUst7Q=zdH^OY2fn^H9LHB`Q zU2B6r0FDH3aMKQ-I#CS54&51YIW!nB^p+GDVtT8YJdpL(qs!1))>5)XO6Th@l=ZGdAS=*U1-uW5hTu0q9P=9+giB_ z`}md0o=!8(0apmfuM5kgQVd(}g+W?n+-(pa8EQDp7ve&}?f9H$lzG!?Mpjc$De#5O z8cp3~il+>Lq{py&{AIREQ69T({*!04cvJ&l*p;knm(P=+->8=;FRICqiym5(UJMC> z{&*j0Q)fPKxjjjlN|!jx3BWw<#P(um4kR7n9mg-DA6eqc-HJkvxf3MdEG@Bx{pl5p zwS{FM8X{s;{;DP{jJS=oIR(TA%lJDtOo5#1-Fi?6%uf%CR@cSLV!+gAG|IF=r=&~j z&~ez8r)rq}z39bbZkp>>d1p&b9OD1#I1OS>X5;3bEUv2Mj-I8p=~A%m3Qo7X-D(Am3*^WIZMxq2qjk43t=B_pV*3 z3H@(h-a*odX0qio2!e>3bm+Q|R=mEXi?po2 zCu-iVayAVh%ijIS6dgal{0D7sVhri=^e{I4429k~N6tRjUtBv>o7k@74jhoB-wiDe zX()nPlc0DPcShIwq6ISEF38OuXzQ`yqVLK1tBBmWGvRMrBb5`mpVl+4cLNLna_^2- zV;H4kvHeWvs;H*&=3!jA`)1`h=U1b9@QygF!ILod!Ng3Q9SGPyX4%nR&_xF~w` zo0;nSSBxRH#xF;LJ*2&!oPO)=AEFKf!rN*BbZmO1d++=DsEQww>swpHc>6f~*GNH8 zfT&Lzvx&M-e5%G(Sh_S`O_l=jp@H{8qGq4n2ak_xCQG>R(Z`F`9MO&ZF26n+0Xi#_ z)YP_+XUYSBkbw_OqVHZ&AMfUxTgQkr{sYP!_!z<4%q`$qjkIMiScIN3bF)3VDP|j z`-AgQSK%*}(2O$!66$%RSNsMz%5CCO3ecDrKfW?ZwKvl}@~jtm4BHs8>3kS>?#5Y0 zownVS$CttRG&ux?qEm;LoZwqSa>XfBan3tR@*!t?6$#=aZyK+V&dR%WqSSwl7ERgEsZd&OU z)TCV?656-g5RC7K1-N4eyoqw1Zm}y#4DmNYb-7GEj19h%a8}Zei*d(zVUxcr;d1WV zzj97jwv+*95gDS|i|-aH8>Yps0DIlH(R(ZC8xHCnm!8X5O_DR1l+TiqaT_ZxLD8$# z?c;cOXNhJYVFr?B+L#IgSEbJga3BUgez14P;|M%!1J5k&Df%QOx6$u&*7g1YF@9!0 zfV#W2G}cfC{Kdh)?@UaGrj@?yf(RR93mlAm(O^gl*v<1h!Bp4b`OjqHSga(peeNgO zR6Js>@5COwUyYHz1XZnfElDR;+((gx3SK&~P+8~DTj>tMUPCm{>4%$?r?9{th656A43mO&Ob4mWR%~ zyY|=qw`zwVsf5rHM)3zwm|@_6j8FHUG_}deNk*_YYP19GLCDj_l2UckWt|!o>sONy ze{VUQ7%6xexwCizp)2|JCnw;VZwGk60dJ>;{KfZ(fk8S$~6O=D5x^U;XlFJWwwHw#%$g=0|Ko zIrtr|SyDIHiA^%miV)MqIe8$tY_Cl57CFvKqelTJBB}P&08&uC;~{eBXqg2H)9wCc-oE;A_d7VwyMT_=@*&utr?-XI_@d>!n``Edx}Vg z>@rggUW9G0PPqhyeVaLEjq**K4BZsNBF`5CpR{`#p$_n7V+0kYpQC{ER6@CZ&tD&# ze_DPumS0&M+kcytDgLvlMa6Yj@850Xz`fb}XXCvv-=JDz7L6<2_jOVx51VwS$YiV# znu7Nj4sp9rS|-BW0+kQyA)cj)YQJ-I_PhK4a~MI+3J35O8H9fMReUYS1G%no zGNk^=MY31T@T!mWr`5ZJo%tx?NTqcLt0zzLL2{|AdbU&LCPSJC4i1iqm)WXya3|yi zr1 zNo!;f1%M~Kc>09gfMZAo;0@926<-Fn^-|9VN14dwqadQINRTKLv;o(KF-6Fgm0TmU(X*QRpUly7f{Y6N2JFer$n?s_o5&RC zFN5iU{AB^7cLJ~W?<{F{quLuoMg@8kKF5(1Mf7+MoDSV}=QNbR%RGN`@OwkFX>F)p zYP=}Wyq)!^YO1>Q56tTi2mZGJMn+?jM9zNCaU*@gETnvQjxv;B@MftcXcCVDlTgVO z%_^|3^CpgOusxcSoC!_&F%T=`Dh(F&6#rs&N}`YMcfmZF?w;EOV&ClXSZs0R6_RR| zy;9KX@MMG<;|>DTKos;@u&N@EqAGs!&Nwu8m{|mTp#utrE);})9{j&2AcTU1o@pMF zb$w#p>N}cvwNl46e`~Mk2_t5+j_3^7Ubb>0#5R{LkJg9+Y6l>G#)KJ&us`i-{{PyN zEP_yIUI!jkkh$&BR}R2RDNt~_V2srJSI^T6{|mi;J^bGSBmB-}$po8VJX-Pfv9-U* zXO67yt3fgeKU~!iXO%wu-^VL7M{8a1WFnqr?l}vOkWR$87xCyIUkk>Yp0y9WVC`84 z4_)|LT>7R=negj^f#)%pm^d`=zL^`YFcWPkOZdYx%&fa2!uWHQJW%0^9>3lYu`9Rq zwYc&vDQr=wW$j+c--_dmwI%L_@3d;CT>mhEHGGRU7SbuT=ojdMu`rI`c-Hyy zzYMVk(L?gJK11GPH34OD0?LI|RaJj0;&gof{>=S;@Y=N1R>7>yTBxCnvC@mL|DTwD l?OCOrBejnd+75H9L3#aW+3uP@J5=w4?0kAgg%YXu^t?^!*?rp(Aulu z&BVL0;tKi4tE0xHcZr4O2zi^lx?*F5wfm}_4#GXwDE+hi?H9)`eP=M%Jw~vLGxM`O z@DMdv!e$3!#-Fk~UpYhDl}KR!M7+7?y6}E)OwE4(pA_g4^GVq`Hnx&~4hgWa zwTkYTeqEL?^{`Ozoe5_B|5;w}zVVk|Cg1l+zZ|+g%j9(>Nfxb4)`$creYg`sK2(2M zPQp|*m~3il`bj5Qw4`WLEpx`~@R=irRi6Dd3O&@|fGOY5?k7S7a$XtFZTMD3CozSi zxi~c4`2;6t$`!07<*sBJ%CaG=D{00|^FIQD{nz_p7lSgR&1jXi@k2yBGewt2%B0{# zQXYA2+lz1z0Nd8@u?*7OP$8BE15fu+eSu4X{Z79pNngqIVx2n+5;+wzb1d^ zPT_FUN`UDnquHKvNG`E`co7m3Qfvixj@}q5$Tm#gyGU$ZL?pz;jg(cPP}5Oas;VE| zPka;WX@V_}SActP=og>$z@aO}oU`-?I7}0H@Nl#ks|wZ#3@^iUC;SF4 za{&{yI(BcFg2SZALhmE8*UV5TbeR$3UZrZ}uIe^hD@b;0^U*C@u=yn)F-Z}Ys2rk4PC3@ zx_^8p|1hhB9v=Gtwe(Di!uH{flwDIkxJTj=5_%|ayz#c@_@#WaNa^j-F4BNm&~ zA`)|gTlDjiCb!^?kT0y0`2BQx{rWZ0d*05eGvjWk-{ME;62w@AnEpiHzD$iGlOn^b zpvpgf{MePK99!ekU&%TN?Ku8U38vTCWUb_(U46){@k%?B5v=HL2>mDRxC7U=bcX0^ ziE1!qX@qE^5)2(={P2m^O>C?U@9yZ(I=X*CR5w}Tc$9%QYkceHIs(a4@~`oyEcUjD zNu%OrSv|Y?;4+I(oxgsiE0iF%V*UBOfJR|=iZrPYr^<=ve9btCQG@Aw-mZMbTD7+| zH3L=WkTovdl^2x#M89d=JTL34H{dVyYKh6XbmFn}mOS8Sg7Xs^_9Rb~jNK-s6i82QIY`K3%nI=RPm!gu=J_ z;wQad~$nL}F&PvX z6h$q3#Pn(6qpcmNDpIDnd#qefmh&&wHQC$SBkfmdH3E~6oP8B-!T%ESpBAktofHZ3 zmhJPvBVMvmpWR~XqZWVrQc0tz>Ba6xm(R{KSm&;I@-{Ij0rxdZ6D3HP>D-K7T%IZ* zNx>lI_7R(g>kBJ_dF~6PNIDAE3K0=_jAQoj;#d;-2QfB!(;L^=`;|2qwMOQ>pBl*3 zcEg&{a{FN-fm`CifP(Y9rOnS>@#7m)4HyB9kRJ-3Yfo(k|GVqBPfu5Hcel9?mEh>o zm8%u<-Q!cUEBnrIizh`dJmep6dFC}fhV#xQfP+SNr0fZndJy3Ty5_G+6;ieBydjI@|;a;NcTZ!~qETzxle30nN%mW^w2ykx;@0|hbs$uR@mfeULl&pg z<|6yn$`rjeA;|ur$IKVsxc;gHR00_*xH@^T?^Q+&ep%bQ09bOOSO#I0#Htw4V4Rd9TYC!d{Da0xUML}W#L8qzaYd2>+- z$DAvOJN_4@T8GP+%>HS=%nA+VT68}()7eQ7F7XgC?sU31=^Fc zY`kc&Xp4NDS~^l*J{uW+)z#s{FvGmkzT|YKg9(8fDEl zOLDSOG^H^6yzf_2*VdkrClD>VB4*O}x1^TwTQ$*$Dx^=Uyvi%39xPWkSeB$&8|u zQj4J&tj0k0^g#fc*|51Nx3+0$THx%&Xj%xy&<&1dn_^CTjh5Q!R#-tO;r2}_tEM~D z^uJ2!s+VG@(_{oUHyg9f5awJQd{3uY%ag=D6s#H2i`FH^lEd-?W7HFhYxAZu1#I$5_wMI$qkWxtO?0;<_KI`yM#)J z4+6VDdmMk>7}GMHS=V#s{gJoPeb6r)#1Y84vY^8;1BO{ zMpu%!bwgNz`$(mCy(<@-Ao9Mp@S)osU!4iAg)ml~4RP-3UG9hrAbsw> zlroyL>5--sn%muR=ia?iP}*`}glIqNJDbJWgn_RQu!D$NRz1e1NTDP5TRYE1LZiVtBehV|DK8+{Z3QbV$YL+&^x zKn~mA-L2cpr)ZKj6Z)ifGT_h3d9MS<%@*!*Sr@3kIEwJ?4*Ai8!hrLkp`nwE%;{in zi%g3+p2!OT1Gz89l|*lV-nImfI%3Bsi}px~Jkyz?n5~l}y5PqUaO%sj!p*KYTLdu= zA~kirZ~kU8D>LqW+E`Rnq`PQU<5`_kPz*M^u$+~X8(nE;|Db$4m=1LPaOVtg)!Cw14Nn`Ppa%0?7 zprhJi#;*U!HbSA02D&=3)VxF({+@#ys?Xx?cQ{)_`~JDAxrQ#7m@mwczLZ*&{SlRr z@PoOlh1p&i5{Ad#2QYVebn$Ye%$6=HJo2$+71gEU-t!k5PId&#~vtr+Eck zC@&gHtqao7LBwTqoTArke(1@?$)qH469XaLPo`i>14v_%0ve&Vx+&7~kXn=G;`luM zRh4eG9fQA*U*5+xthyNB0e92pkA4eX6#>MdtMfWhQlr;US&wB zOd3tHxh$0A9PI}%QJ^dS7AO`Iq~~M+jbfLn>~9Tj^Wg8xG30GEz(Ek6cpW?!t%_nzt8e)ZMu1d74@q`k&nS>nTcWl4MyDj@0<@Gx~-X{u;JL-*%1mi5$+>H zu?zNbR9locZir;3;*Q%3ETmaf*qRmSBqyR!3Ab-ck=8!81ZA&(bi5~4uj_dC?&r=-x+uOH8e2&W;QwvMqW(2f2 za_j|s?e1Xi6Eb)^{MFIQ?{7f?;ng#-NTJP?sUKCdau;~QWO}w4tydLbKCod&6tnvB zSeS4t@0J#7*{p0j$_g*C#2*;F*}!sLv0pBK20E0~E8ovFWIA zj4@bY5@UeGs&1#MyNI05ti!JF@fUWqIh{Ucfec4crf0(lk}bRY8}!MjH1%%c&PEIU z{lpZ?%}1qgbds06lI6C$YTT z1m)iLFIqm}o5(6H$Wb+Tqmfw6{_?c4z%+dc|B+N;i%d0v>KOh)Gi$s?imQ`RHqDdf z4aQC_jypUXDBRz>BJF#s?*pR(JceuH$utM%HG##*VPyBiY-+W^Ep!yrh%E2cPa^)MgQk z$mJJA8AVN>$);?jwm%CCPD)aRtFi3I<&NRjW##;r6ACvy@7OjwrYnXwNsgN|oa&%1 zjkOf?Q;MavR3kP1^1^%UDNmvNo5@ffP5s@vs+dgsmvn~DDF8ohnp|HG?;iiJCC~HZ zqEyYoRAio(lnI1UWR?5(jMt@B5Vnw*6b@>M zdhi8xFJY(aDL%0v)-iHl#sP8~*OAr+Ty11;lz(J>^nF*BB zG46NZY(sbvfGKg*dJg_^Rjkh@EZtG<01&1rfx79+a-D_JYC#vFmSddb`N!dAxgp1g zeK$cHmy25Y3*qJld0M^izVT0`B`PWt>^@H{xF0Cp?B=O>Fm3LYx$U_oJzsSd&-g+M zZ}PE-qUF!&IRjrqqhoZ}w3-UC=4;ZAf1ouz+^KG4#l>7UoE=g{Zvj1XN#c_N@S)!0mJK85AH4q!;wNV7XJ41=oOp7CI*v6(v3;{{OG2&G1 z`l9rw@b9nrY+8QxM=udLHG=jW<pXB6-M-q<3%RipDpAxOi5@Uv&vJajr>D5&e zI+m+mLTzD(p(BgoE}6>Y-g%aOl8pqAvsq?CZ8@okodw1E5eCseyC5A2q@}plQTk zP}c#IRxQqq>|V7-UjMVcVLC!RMt=~LGpf@x%AdJeVB?Hqyk`{xMt zryp!Qnww15g;<>R^@v^97 zSt-9{tKpvrV~10_LkkdtAjYiS7q6##uFrR#lY+s>0NgoZe{B|nMZn)=^1|?F$HYsg z*%uAbHJ7qEM~8Q_f_58$a5M77ke$Cv#9&XM-QFfe`n<@ISi$ktch>Up@MQbOrGxn= z6h4^twH*QZbUwVN&Izn9pIlfp6)ZL@<%HpY_hJ)ou}vuAFm-+)T28 zy6*un-%oy9sFN&baL=MSD_obMj6BdCTIi-o!+`AAUBQrb>dH4btyXl!t;2xO_Af)V zdK?9BLi}&ZMM*it}kGW6%$ADn4Kt>*HgOSD3yv4r3t3$?zFoe*2LexSf?J zZsziT|H+N#+%3>8lF}YZv}&~UW$8?np7cKQ+a^6d+p!4+4BPK=ej*MN%pn`WBk|yY zQ?@i|I~4woFysvQ%y7=-Ka#(KS7%4_YV}zkv+5RZc3%97DCywqq1BaHzTGxa0RPrn z$R#4#*H>J|O1;P69bBwRBEj>|D?t4G;nvDgm9PaLzefR6aV6;B)hyk`?nI$jptE_Q z8tB$SuO(9B`(5;S0t8%2Qu6msW0A)EwORjFbHx52Ja-yn%U7W;A9G(y(Ij_`G12y1 z_T>-JOh9x6rAS;AQP}+5N56jm&e7o#JCB|}mVF|5^<0y-F}p?T(d#Z6O2VMj`J?`_ z0BcK^paa)^`&ei`1>axEbAWz;1S-bdMkl7y3A1xH;-fXMdw~FD!%fmbQ#55#mxwv@`Ao`3{*q~0q z0|k}CTAxOg7`HFZm^p8{dE%>kiD&%*C{F|;7>-8x?Cbb1kSK7o%azv)x?ADb`4x^> z6lTCZ`0pR_9=QTX@(UkcKMJ4a=YzT}>cnH+a{Ff*{5)2csyG&8qtbFVk{nD&t__ zXdv$~Is#PJ$CiE;=eh6RWdE?7uba|$4LNP4NMm)I-*ZQUoHA7cuG_(bF9;k8f+t;2 zgLsaM&JD%Q^nH$meYRVBp$3B=SLu!Z^_c^9o&V&@=?x->uxG!u?6 zRHGS$D6CmtP~bujsVpph*?s==$Elh?-8lcp`2jhP+N;N%HKog0N_eD->z56>Mwucy zXe_rN*4BQO>zXD{u;o-0zoHunNrqJXwu*oJFmC7k7Y2iIZPP5;PAr&Vt-GxImE=R) zp43RzdQ;d>3to%kDL27*=Z>!$Ig<)H>LRRko^B>r9{^mUlZ>u!@qJqh+B;eGYrj+g zOey3W<*^}VjJ(ob#Vu~F$JK2ylFjTp%p|P9vq+g>2%GuwEc z@Ot(%S+y7x)!s5`FztX4P(-h=Lf!KitN3_em(sLJ@+rPM%zd>oP+5UTdb0mcwzN-E zh~1Ko*e&{tk!=W}P%U+dz5XS4faMUvV|>Kt+s$}ES#!u6m-hHa!xfg3&|hIAzg#B6 zcWq79uGzcETk0$@+Mt&5M*lwyPuJ%=j@_^z)Jbm9rGWCV$1>>`L`&Meg_F04akcl0 zUcqdd40rg(3UOdZ!jXHMr={_xEstK5%DD{{Tba34*GnKosq44!IQ1rz+Ntm^I<+&|a9U5z{fAMnT!jil^mXZQ2?_ z3q#M;kFX%5z$uk{VCe;luOKP-s4wjQAY-O~G_(ie5B)Rn$gHJ_Hz$%#6A6}|lXP9R zkH5e$^RpmSkLETohIHQJX1o;AlPfIUQHFG66}nL&3|UY zKfRgqhKw+pKi|aV%a=znKGN8|F!~*b^~)tYdsBw*!uDGa<@6t7V-pd?YTvnK>O1L) zd{SoU`QLy4jktX4h)!lkVd-v6$`L-G?X&a%xZg$be*x6uaNHNnlw<%AD|&L+1N19+ z^+mBWb*m4j3L5TIpAE7bb79;d!ATd*1%Vdh`g2heL8g&ae3$YI4O1VXKg}dA=x*Jr zqM5)QE^)C>_mW6y zAC<4&7AZ_0c@5uTdn^iI8;~XM zlKlI&zs?h6GKR2GWM1RmtAm*aF3s{FR-|J7{+Yi5Ec*s8m-ytypA(7iMqhN3E64w& zZ0F%-EUKz~+B}ERUWo~C!O3q@Hvr$WX zkkd4h$>iNgDl?x*QkAOODqdzvVY$gD$YxexT%*bcW8X-MV=gW%6x`!j(b#PE-ZKNn z?c1O}9{n+q;8UKIYc{#!LRIXU|FWpS#Te?+5z?`=?fI*Krsqf$It@N{+_p}U%3R|K z8wOjjg5ul@^s7C3LAOtMi7D$Mg^UWr?tN{RRFbKZ5a(b#Fl6_l9SNdqMS?PmL%Jzm? z_h^Zui=@>7p7tO;+3OP!9SmT303L|hm+!PpPO;?sgUDm9iw1P|SKm_7_JQuNIeF3`I{vR6_MhF|-QEhcRE^#T36*Mda?GDY3+;H}zUcCvRE>^n zIhHgO8bgi51NRK>az)(R-iwxIH@Tu*Tepsi4{`##=A}EP4mqu~C&P9~&zjP240>my10Q?u8f2?ut<|qz-XC<-LU{B` zRai0{#3O)U$t7+qaf@_NUuIiUlPJUsmEO79qTFG40aoOcVqR|lNU2f_CAe;nmK2gn zk5@x7pe)tt2NX~F_dThyWiF_!ASZTCfjYV^dU>fjZ!c&F732ia+vrIrhifZK~QQRdL%xw*M>@=q>R8e}Vzp|JynbbSw| zojT{!JFLxjG|+Nwl?n++x65u>C82kTuHIvmk;^`8kKpFtbFO{SB#qX z55=HEpm1W1F@oO5e$^Q=BowMT+|CubA4*ic} zhc2R28n!h5xG$Mu83wc%c$pBw{j}px7?-8ugWc?27|HR5!*VF5ddHuq2Z3P ze-VjpJGUAf7fC1Xc}`-(XOQLWnZgo!E%mQmXtyr%Gb_QsF+g0 zHapcOOTCt~IK?lcCxBo20yf>$gKrUQzn&|2&U_J;DK%l`}^lW;A3p-;LV%A^)qG6sQm0=D`|`i(n(^b#_aH9ODzWd z^tG)QR<+*o0IQ5h^GEsaH7G^Qf3;s7GIEI9`|%Y2=F#OONgIWt#U4<8>JUun=Y!dD zGn4oWvO@tS^{#_z5__C0E*2Cbu>|<>zG1dHiNL1dfIW_|*Vy%Zh7JhV1RY3@(HwSt z2QZ|iykxKV9Odc}PS1y;>B=63_K{dDXxs`TvNvwn0vcipPmZU~YOV6Uk5A^4PWut5 zcb5HE_1e46kR{i6en@ELirgl5-*DsW&3{3$b9Gsaz?HL2)8yO&h#Nu`)>va3q_>P3 zg*1rIPaE5Govd{lPieVVY;H$CUdsxmYzs_Z1@?pd-=1G?G;E6MPu1FJdONid4oE+-0lGVo)7-rs(9P@5vQRuqWqB1*ndhGK-JUhs5SR{3sEdbjFc#cpJ z@b}zDmy@QDE%i4(14;%I@r7#pC?7yF<+r+XmH~r4!E^cn@Ep+oi|_lg)bfBqCc5)! zcUcr@!it&V-#!AJI-XzEUf)^{NpG42ax%+@2U@97%dz-RsutcX9TM;|_wHm3y+w|X z`M!?rq=hu;jZ3>*y*wQjj&R+gj5n&rP<-4H(p=R@g!vZt0Sh*;#ZXDH$w;^JA9{ zPb7((joJ7#7HFFYPbNuQqwmKiOBoXr3(SyuR)FI|w|Jy%2c(-19*5nUGKxrcy|aAl zCi|LY$abpBXl0D7xT>(w}s`TXmc4Cbt3&OIz7%&pTpg> zEa$a9Pl;7oVKf~mDW8KTW7A@hmLmaxmUNZRg zd&}r5oH_f_#6>S~cLH2*L*P184)Bn5bx46dX{+>6DiS#GFsaV->DuRnN%7g(>3D= z{X!7Adh+7NfjGi`FpbND!|tu)9B2d}vQ%^^Qo{&HRp;^r%}4Sdonu)90or0NrRJ5T zT)O6^&WL=DnuO8^vq}dj-xgu-K-E4Fl$=6%yNCt{Pgd=85z|cw?Qw=f{=%q?CS`dt zoyfX6D2E>EX)W(lAenw(inVkm1&wAC=wk^O9* z`cX04y8A{I)@T)j{!kD`LU<1PVe!LC4);9W&8tc((orQqWb%#_dD5F^hL6wA2UFQm zZ<;52@Ooc9c;P#4lIn`6-8a=WO0i~4xHCxOvhOd)CKwCpxKV55 z)6_Oy@5wc`5O^z1~96e&vrzGZH*34(}ks_ zrHknIARbQ~)Tj?{X4r>r&c_cco4}pp)7^l>xHbAyMyAQWKsR~p&F{;s1FiGLWCGtO zUT{4r$O~5iB9sZ#z||dhElHbt+p^@!_r8_yKIa=|+uNxG4rY;WrO7?2aaWGe`h2{c zznC>b7(a@&t(SyF9R_Au{Ql!lQFa)acF6uPNWB(t;u#MhvT`vvZVK=nh_C#JLqY~c zk62$7pdu8?cg?Dhk)!{c)MXIda_ir|$RQx7XI1NL20EiVNQh>I?xn`qw8x!CxU6Q~ zDG@h54PwGQi<}!Z8vEe`gdc%t7Odzf~ zt@T{=@$pg1Ty<;lB!KP8Xn}8AS6DyuhQ5FU`Ex76K#hWLt^y|5GH~_Kp`^m=PCfY` zp}3^noG5dLePCCfp+wh$>&m?Oi?m%K2OpOahKQItU$T*AX!mI+Gpxak)Wsirye~n) zRr|#=Le_wEF4C2-t_5r^iwyL&!XV;Mfk}04n{8TLk8iJoHmAsg+cWw4>E;0W=cBcc z+W`ST2PoF151+r#4l)4uKS|0;rL!+3?Mep;1Yg6rB#q@d`*`A+Jbf%cZwbBV?E&sk z;M!M)5@oLKorqOc8Hm{mk}iqe=Vi4F%lb$mn@ZJec7Du^z_paOAybrlc zrEzM#T7Z^1A{?Q3OL7`H@XU~o;Tp=z&6Nw8xY*)nRu#PT$@Sa;8(U&Op69^4Ls6wz zJGR~1Fc}HpEysEFiOQaiX)QB*Kj^XHMdg164&{e|Fsxj;6ND@Gt$k9~Pk1u>BQ$LB zWmaN7$R?E9#UNE8=AV{#FgE)&_UavcA~mStm<`a-fOi~or%amdVyG=9O5X>|C`7K# zRLZ*aFC~RZljtRQR>G)S5aYHf9JsWf_WOl5K7lS%3A=h){|uXP1xONmEN{W&=3_4f zEv(WaAdS9mk?(4B+G;HZ`*8iRq)mgKPcs#{Jj!7TSmeT5Co9N`Yl^f14#5~wU|KF} zPKoTVWS-a_$CtkBa-RKJ$6%7U#lLlmOTWn=3LZuxD^h{s?T)L7FKslvYp6#3RO8fJ z2qf04AXj@@P^I{FERXBl{M+b`GAk@ps1msJsTDeU1_H6?lJ+^LScE%Ohvi_zBwPR| zZ0~GidBVZrO(_!8@C(#c*_(<74LQg0`XQFwAW9}fXm{4LLC3(UJjx29YgNg zkQ9prVo1{}b+oU0(2RrnthyA8-Z#DKN*hyK9%ygg-n=L;G5Tm-Meg8>jVD1CC zz;CzS&#BAp&j^f4sLQTDlkjgmNQ)a|4Fpt(*sRqu%fZK;c1ay+Kyl(Y@O(21(T;fG zkY<>dL8M>bn*)}9Ub1TpG3wui)QSL_Eq?I*wwOs_d6&9_IiP{rGo#1YuE>B<%DYY6 ziRYIaJ2*l|_|pu?IG+5MF{fEA3jkN?=KZKHxN3qa>#w5qMNj zdXp~yxS;$e)XD?%QPQ)I6KSvuCGS zKc5{PXai4IfH&Iv@fJo#G>(OaO($LOD1jTu@PqfiJ?=6Ox#uK)13oi)^X!qlSXH>M zY7F!&pwsTqH>2&9$w0Q3YASHB2k@Q4NLcn^K+zO?x5Z)l{?nB9NcuST== zvtS+XSsPGbl>^Z7Sg;FuGv?@PRYcDlR7wEBh4ztUMVqxY{ZI7ArrYdEMh zl>P5A=Kfy#nm-GR{9-JmD;#VjKUWb@V!S+=7w%_q1pNEW6Tj9k{&3c%=&<#9&TOS4 zJ#nRZS_xMrBqSQj2#KJp7k`B=nTa~skCvI~Q#L=o83&UuTso0_(erI a?tPfO{<#%xY{CD&qr-`-z diff --git a/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_task_macOS_1.png b/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_task_macOS_1.png index 84817e070031c1f7d19413ad1fa4cfd450d75a69..f7965a11cd2654fae16e1e66d83a877b739e8d09 100644 GIT binary patch delta 74 zcmbPS-(0`JSAkJ+v!6njIO~IrhXl$eGg@g1*t~PSk#q7c2LlMqEBms!(dswLW(S)X bCb0+mdmCk$mb|wp0?B#0`njxgN@xNAC3G8b delta 98 zcmZp!pIpDeSAo%Rv!6njxU}b`lfmkfc5^m(OFZIZU|@LAIZZ$R-;+G12SSr4S}F;C z*dd;{S+!glD8;}~aqD99=0?jmteZDjWHE|2{AW7vp}_R2$gT|}>*?y}vd$@?2>?=q BB)9+o diff --git a/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_task_macOS_2.png b/super_editor/test_goldens/editor/text_entry/goldens/super-editor_text-entry_composing-region-shows-underline_task_macOS_2.png index 562f8da44359fae81768b64b80af8cca4168983b..d398b22985bea9730336d262b2a2eb4205a72a04 100644 GIT binary patch literal 16235 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 l{|UDL3AXHTM~{~ymw&29hy literal 16253 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 R8W%v>%hT1*Wt~$(695JHPVxW% literal 6374 zcmeAS@N?(olHy`uVBq!ia0y~yVA;UHz^uT*1{5)VFq;WTF%}28J29*~C-V}>VJUX< z4B-HR8jh3>1_p@s)TdFNFyFFp{0-+Og43tHiRtIKC1+a5@%<)uR z!6dq{_Xt~`%!`6^Sr@CBuZJEqPX4iW=kwn`^6%Z}YtIK7%^>h~{Yyp=<3l)$4v4-q zN{t2q{!}1#nfcW`x%lPkz~tg^?pL0rZKJkQg6zkF|39SV z?tV_I0u~bmEi??DyL4Rhx2H@hsnL&+}z6v-3Ruu&_%+Bdr)%Y>Uve@Ol(MW*mU|b!3|Nv0C?zl+xL({U05aW#5$HBtRKB83()T?x z=K=HIv~8>Z0?m8iWHFkQW)U3|)KQ5@O2DWpxH{(msNDoCB(P9t`*+B1M3hSA@AKOa ze*u+D3_m(3DVi7_^sIe9?XvKLH=GgfHh1>>fQr2bJ)99AD%S~s+=0E2gqEDobX(lt z%rggSzYWR}1wx=|uksx8pE6)I_~0`>4`KD?a2L!qv}Lf!gXBC0hGZIs574FsdAo0c zsyz$ue|=00|Kjo4MziGg<1o1Dd*F?fynZw{u*OJ-bAak#4`E=(0T=aI?2vNV`PnZy zKjebEV!?TT{pUx;90x3SUHQMCVO=i`n+~XT`6v(83Px{I{WyF+9vDFk@u%=rf}rO1 zwe6t#3JAi_Mnj^Wn3@Wu7Ta?4OT(_^$FGCUnXq|Zw4eWjE)GPw)gZ&zz5WSVO{&tk z8a_sbf9BJFm5bD767J4)x0tDxxhZcu;V$ApH`BZvQ<2DRobEE%~QjEJZbcURV1%Pe!Ba`#Vl z6=OjjsPW!1`35*+7C5#4_t6LTD@Hqo4%BI%6K~3`v%haYG_YOt=JVJUX< z4B-HR8jh3>1_lXXPZ!6KiaBrZ82Tx5ins>a7zxEOc`JMknlQaHqANJaD9A`zF-ExL zPP0VHKU2GOR{yMU)0o;lR&vvxf^212^lzpdh-UcjdH`gbg6}9b#DXB#)^GH=K#y=mU@3()L9FqX@)C9Fr3K|64<^i+oO%BqGkC{8`&;;^YLYF6{uu*a_9bCAO8nUJE&4X023|H{g>{7%mjL%xRDiT zg~O}{@~B%?RStLacF&y05YGSm@Ryd!A8HumzXDSb1H&J4@j;a22UGT=s#}10nSmi@ z*Wc5>zp(5}sIImJmPUGg!00r1^Yd$R6;r%I0^@=6XlY9Ed%5{#VTK2fe(>pl((xsh z!9ZQR%=`+H!5TJy*z`Y~29P;r^bG)mDh2wuMgwLNRj{(D+m#T1j9 zzka!Tfg`AfYB2u%=a-=^Ba2Sml~)xJ(_RXu_WS1pD>7jB={Y!Ai61E+L@iceE(_Rx zJ8zl#fvboA8Q4Blv59|v^tk}Tga1F*+Pfe0FQTmRMQ)>Q@ah9LCmBBMyjx}r?ou72 zPKy`Xs{}WE85k_=e^3AZlC$O@sFFLhodeWHJuuyNe;u%i&3(=`VQpV~>P)%7Z$G}6 zfgSN6`rUhA4AykNr%LmiI$d0F&l6O7Kj4=8*8Y-H{b4c3hxYF_taj}T`)}vho}X_` zo#K_MP1WIU7|x_aVWk9ZoCE77U=dgeZMv_guuZcKI1-gw<#N-0_SG*e56;-U;lC{G zmjrGRJZR}--!H~+;VBca0m#r`0%`}2QgjJ|EmuEo(7CL9N^br=&=AsrlaPLT!+z>i z6}KR@CNMe~KA6+6(MN7GepDY#MwCW_l@7uBTl^LOO4&=-rzC>1m#3?r%Q~loCIAG` Bo3H=? literal 6373 zcmeAS@N?(olHy`uVBq!ia0y~yVA;UHz^uT*1{5)VFq;WTF%}28J29*~C-V}>VJUX< z4B-HR8jh3>1_p_KPZ!6KiaBrZ8u}@pkaD~D?FQqyJuDoakz7eLJC-_lczAfFsj$>J zx(k;?f1dDj{oCTO51z@@yVkGTB^H1C?mKaynG7y}jcq|R!#}qJAR85YN2$>uz?%wk zO>Gyvd-}Gx3Y1=+#N)ERsL_Dh_T$#OvdhY+ereb>efxQ!Cl7S)zNG_l0MNo}o4s{D z{tOI$bAZX}L-{%ZPzuEB`DdbsY~STwyDa?RIwXnxsAK$pb>%-fCZK*A1|BUUWH^|K zmZ;R(Kk^sw1A5(h6isr;E77X$s~rGic`Gv_+6T< zEhEDNjl1@Fpv0+uh*Jlo;S$RzMYkXbyUhIRo&0uKVS_IT{dB+cea9VeIl{m&XY0}H zW!q=VfyyR^`bR{>IBIHG{gSa%KYu>hUW=sg*-yW)SX3cZfEGziVm0%%TR_HRFD9X7 zXJuI&iOuzlQ8`#dVKZUOb0Tp$6 z=BGi8J_d&Lv(U1Im_{~A1N>H2mBZcBx1WDu0UC2+C#Ydn;D(g29QqoL`WF$=T3avh zuCRRbym<`!!38kiq3^GE{E%T{_*3uq^?cxm$)gDitqTS0G%?(G4{0?pFdVaJ#M3WA zi88!BC~PWkJ<8sF+qYk%x}t9WJWz76+LeHe|Dz<^>K*>y-Mx&E+!@4x+$ll@^a$A{VX zE4ga;82xUq{C7^?8ed6_uTUJ7BfCExU6WhB`=wwi|M~ZjR@c6#plb2Zc6{j>T%p2zXz@ZsB0!BPQ0-b>`5RanGBB{0Zv`dR2793m-zuv9&H#(4Col#OQ`y4m z_W56deUE|^ND1}`oHrYof8F|(&BzdoFS87Xj@Tgd16tqkz`?t5@xb1GgMAU6b})FP z;Plxda3k$Nh($ From e61ee9ecbc43df99b043b13779029487f03367ed Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Tue, 10 Dec 2024 15:51:05 -0800 Subject: [PATCH 5/6] PR Updates --- .../quill/lib/editor/code_component.dart | 6 +- super_editor/lib/src/core/styles.dart | 10 +-- .../lib/src/default_editor/blockquote.dart | 12 +-- .../_styler_shylesheet.dart | 2 +- .../lib/src/default_editor/list_items.dart | 20 ++--- .../lib/src/default_editor/paragraph.dart | 8 +- .../lib/src/default_editor/super_editor.dart | 2 +- .../lib/src/default_editor/tasks.dart | 8 +- super_editor/lib/src/default_editor/text.dart | 86 +++++++++++++++---- .../attributed_text_styles.dart | 4 +- .../lib/src/super_reader/super_reader.dart | 2 +- 11 files changed, 106 insertions(+), 54 deletions(-) diff --git a/super_editor/clones/quill/lib/editor/code_component.dart b/super_editor/clones/quill/lib/editor/code_component.dart index b7c73835c4..1a878fb141 100644 --- a/super_editor/clones/quill/lib/editor/code_component.dart +++ b/super_editor/clones/quill/lib/editor/code_component.dart @@ -73,7 +73,7 @@ class CodeBlockComponentViewModel extends SingleColumnLayoutComponentViewModel w super.padding = EdgeInsets.zero, required this.text, required this.textStyleBuilder, - this.inlineWidgetBuilderChain = const [], + this.inlineWidgetBuilders = const [], this.textDirection = TextDirection.ltr, this.textAlignment = TextAlign.left, required this.backgroundColor, @@ -98,7 +98,7 @@ class CodeBlockComponentViewModel extends SingleColumnLayoutComponentViewModel w @override AttributionStyleBuilder textStyleBuilder; @override - InlineWidgetBuilderChain inlineWidgetBuilderChain; + InlineWidgetBuilderChain inlineWidgetBuilders; @override TextDirection textDirection; @override @@ -128,7 +128,7 @@ class CodeBlockComponentViewModel extends SingleColumnLayoutComponentViewModel w padding: padding, text: text, textStyleBuilder: textStyleBuilder, - inlineWidgetBuilderChain: inlineWidgetBuilderChain, + inlineWidgetBuilders: inlineWidgetBuilders, textDirection: textDirection, textAlignment: textAlignment, backgroundColor: backgroundColor, diff --git a/super_editor/lib/src/core/styles.dart b/super_editor/lib/src/core/styles.dart index 27b168e271..d11b63079d 100644 --- a/super_editor/lib/src/core/styles.dart +++ b/super_editor/lib/src/core/styles.dart @@ -14,7 +14,7 @@ class Stylesheet { this.documentPadding, required this.rules, required this.inlineTextStyler, - this.inlineWidgetBuilderChain = const [], + this.inlineWidgetBuilders = const [], this.selectedTextColorStrategy, }); @@ -30,7 +30,7 @@ class Stylesheet { /// Chain of inline widget builders, used to map [AttributedText] placeholders /// to inline widgets. - final InlineWidgetBuilderChain inlineWidgetBuilderChain; + final InlineWidgetBuilderChain inlineWidgetBuilders; /// The strategy that chooses the color for selected text. final SelectedTextColorStrategy? selectedTextColorStrategy; @@ -41,7 +41,7 @@ class Stylesheet { Stylesheet copyWith({ EdgeInsets? documentPadding, AttributionStyleAdjuster? inlineTextStyler, - InlineWidgetBuilderChain? inlineWidgetBuilderChain, + InlineWidgetBuilderChain? inlineWidgetBuilders, SelectedTextColorStrategy? selectedTextColorStrategy, List addRulesBefore = const [], List? rules, @@ -50,7 +50,7 @@ class Stylesheet { return Stylesheet( documentPadding: documentPadding ?? this.documentPadding, inlineTextStyler: inlineTextStyler ?? this.inlineTextStyler, - inlineWidgetBuilderChain: inlineWidgetBuilderChain ?? this.inlineWidgetBuilderChain, + inlineWidgetBuilders: inlineWidgetBuilders ?? this.inlineWidgetBuilders, selectedTextColorStrategy: selectedTextColorStrategy ?? this.selectedTextColorStrategy, rules: [ ...addRulesBefore, @@ -369,7 +369,7 @@ class Styles { static const String inlineTextStyler = 'inlineTextStyler'; /// Applies a [InlineWidgetBuilderChain] to text-based components. - static const String inlineWidgetBuilderChain = 'inlineWidgetBuilderChain'; + static const String inlineWidgetBuilders = 'inlineWidgetBuilders'; /// Applies a [Color] to the dot of an unordered list item. static const String dotColor = 'dotColor'; diff --git a/super_editor/lib/src/default_editor/blockquote.dart b/super_editor/lib/src/default_editor/blockquote.dart index 8e04d456ee..86a09fb099 100644 --- a/super_editor/lib/src/default_editor/blockquote.dart +++ b/super_editor/lib/src/default_editor/blockquote.dart @@ -95,7 +95,7 @@ class BlockquoteComponentViewModel extends SingleColumnLayoutComponentViewModel EdgeInsetsGeometry padding = EdgeInsets.zero, required this.text, required this.textStyleBuilder, - this.inlineWidgetBuilderChain = const [], + this.inlineWidgetBuilders = const [], this.textDirection = TextDirection.ltr, this.textAlignment = TextAlign.left, this.indent = 0, @@ -127,7 +127,7 @@ class BlockquoteComponentViewModel extends SingleColumnLayoutComponentViewModel @override AttributionStyleBuilder textStyleBuilder; @override - InlineWidgetBuilderChain inlineWidgetBuilderChain; + InlineWidgetBuilderChain inlineWidgetBuilders; @override TextDirection textDirection; @override @@ -161,7 +161,7 @@ class BlockquoteComponentViewModel extends SingleColumnLayoutComponentViewModel padding: padding, text: text, textStyleBuilder: textStyleBuilder, - inlineWidgetBuilderChain: inlineWidgetBuilderChain, + inlineWidgetBuilders: inlineWidgetBuilders, textDirection: textDirection, textAlignment: textAlignment, indent: indent, @@ -231,7 +231,7 @@ class BlockquoteComponent extends StatelessWidget { required this.textKey, required this.text, required this.styleBuilder, - this.inlineWidgetBuilderChain = const [], + this.inlineWidgetBuilders = const [], this.textSelection, this.indent = 0, this.indentCalculator = defaultParagraphIndentCalculator, @@ -246,7 +246,7 @@ class BlockquoteComponent extends StatelessWidget { final GlobalKey textKey; final AttributedText text; final AttributionStyleBuilder styleBuilder; - final InlineWidgetBuilderChain inlineWidgetBuilderChain; + final InlineWidgetBuilderChain inlineWidgetBuilders; final TextSelection? textSelection; final int indent; final TextBlockIndentCalculator indentCalculator; @@ -281,7 +281,7 @@ class BlockquoteComponent extends StatelessWidget { key: textKey, text: text, textStyleBuilder: styleBuilder, - inlineWidgetBuilderChain: inlineWidgetBuilderChain, + inlineWidgetBuilders: inlineWidgetBuilders, textSelection: textSelection, selectionColor: selectionColor, highlightWhenEmpty: highlightWhenEmpty, diff --git a/super_editor/lib/src/default_editor/layout_single_column/_styler_shylesheet.dart b/super_editor/lib/src/default_editor/layout_single_column/_styler_shylesheet.dart index 42b0374c22..552c46a138 100644 --- a/super_editor/lib/src/default_editor/layout_single_column/_styler_shylesheet.dart +++ b/super_editor/lib/src/default_editor/layout_single_column/_styler_shylesheet.dart @@ -54,7 +54,7 @@ class SingleColumnStylesheetStyler extends SingleColumnLayoutStylePhase { // for this component. final aggregateStyles = { Styles.inlineTextStyler: _stylesheet.inlineTextStyler, - Styles.inlineWidgetBuilderChain: _stylesheet.inlineWidgetBuilderChain, + Styles.inlineWidgetBuilders: _stylesheet.inlineWidgetBuilders, }; for (final rule in _stylesheet.rules) { if (rule.selector.matches(document, node)) { diff --git a/super_editor/lib/src/default_editor/list_items.dart b/super_editor/lib/src/default_editor/list_items.dart index 623f3382e0..c13049abf2 100644 --- a/super_editor/lib/src/default_editor/list_items.dart +++ b/super_editor/lib/src/default_editor/list_items.dart @@ -198,7 +198,7 @@ abstract class ListItemComponentViewModel extends SingleColumnLayoutComponentVie required this.indent, required this.text, required this.textStyleBuilder, - this.inlineWidgetBuilderChain = const [], + this.inlineWidgetBuilders = const [], this.textDirection = TextDirection.ltr, this.textAlignment = TextAlign.left, this.selection, @@ -228,7 +228,7 @@ abstract class ListItemComponentViewModel extends SingleColumnLayoutComponentVie @override AttributionStyleBuilder textStyleBuilder; @override - InlineWidgetBuilderChain inlineWidgetBuilderChain; + InlineWidgetBuilderChain inlineWidgetBuilders; @override TextDirection textDirection; @override @@ -286,7 +286,7 @@ class UnorderedListItemComponentViewModel extends ListItemComponentViewModel { required super.indent, required super.text, required super.textStyleBuilder, - super.inlineWidgetBuilderChain = const [], + super.inlineWidgetBuilders = const [], this.dotStyle = const ListItemDotStyle(), super.textDirection = TextDirection.ltr, super.textAlignment = TextAlign.left, @@ -357,7 +357,7 @@ class OrderedListItemComponentViewModel extends ListItemComponentViewModel { this.numeralStyle = OrderedListNumeralStyle.arabic, required super.text, required super.textStyleBuilder, - super.inlineWidgetBuilderChain = const [], + super.inlineWidgetBuilders = const [], super.textDirection = TextDirection.ltr, super.textAlignment = TextAlign.left, super.selection, @@ -463,7 +463,7 @@ class UnorderedListItemComponent extends StatefulWidget { required this.componentKey, required this.text, required this.styleBuilder, - this.inlineWidgetBuilderChain = const [], + this.inlineWidgetBuilders = const [], this.dotBuilder = _defaultUnorderedListItemDotBuilder, this.dotStyle, this.indent = 0, @@ -480,7 +480,7 @@ class UnorderedListItemComponent extends StatefulWidget { final GlobalKey componentKey; final AttributedText text; final AttributionStyleBuilder styleBuilder; - final InlineWidgetBuilderChain inlineWidgetBuilderChain; + final InlineWidgetBuilderChain inlineWidgetBuilders; final UnorderedListItemDotBuilder dotBuilder; final ListItemDotStyle? dotStyle; final int indent; @@ -545,7 +545,7 @@ class _UnorderedListItemComponentState extends State key: _innerTextComponentKey, text: widget.text, textStyleBuilder: widget.styleBuilder, - inlineWidgetBuilderChain: widget.inlineWidgetBuilderChain, + inlineWidgetBuilders: widget.inlineWidgetBuilders, textSelection: widget.textSelection, textScaler: textScaler, selectionColor: widget.selectionColor, @@ -629,7 +629,7 @@ class OrderedListItemComponent extends StatefulWidget { required this.listIndex, required this.text, required this.styleBuilder, - this.inlineWidgetBuilderChain = const [], + this.inlineWidgetBuilders = const [], this.numeralBuilder = _defaultOrderedListItemNumeralBuilder, this.numeralStyle = OrderedListNumeralStyle.arabic, this.indent = 0, @@ -647,7 +647,7 @@ class OrderedListItemComponent extends StatefulWidget { final int listIndex; final AttributedText text; final AttributionStyleBuilder styleBuilder; - final InlineWidgetBuilderChain inlineWidgetBuilderChain; + final InlineWidgetBuilderChain inlineWidgetBuilders; final OrderedListItemNumeralBuilder numeralBuilder; final OrderedListNumeralStyle numeralStyle; final int indent; @@ -713,7 +713,7 @@ class _OrderedListItemComponentState extends State { key: _innerTextComponentKey, text: widget.text, textStyleBuilder: widget.styleBuilder, - inlineWidgetBuilderChain: widget.inlineWidgetBuilderChain, + inlineWidgetBuilders: widget.inlineWidgetBuilders, textSelection: widget.textSelection, textScaler: textScaler, selectionColor: widget.selectionColor, diff --git a/super_editor/lib/src/default_editor/paragraph.dart b/super_editor/lib/src/default_editor/paragraph.dart index 2ddb8fd72c..3c68eb9cbb 100644 --- a/super_editor/lib/src/default_editor/paragraph.dart +++ b/super_editor/lib/src/default_editor/paragraph.dart @@ -143,7 +143,7 @@ class ParagraphComponentViewModel extends SingleColumnLayoutComponentViewModel w this.indentCalculator = defaultParagraphIndentCalculator, required this.text, required this.textStyleBuilder, - this.inlineWidgetBuilderChain = const [], + this.inlineWidgetBuilders = const [], this.textDirection = TextDirection.ltr, this.textAlignment = TextAlign.left, this.textScaler, @@ -177,7 +177,7 @@ class ParagraphComponentViewModel extends SingleColumnLayoutComponentViewModel w @override AttributionStyleBuilder textStyleBuilder; @override - InlineWidgetBuilderChain inlineWidgetBuilderChain; + InlineWidgetBuilderChain inlineWidgetBuilders; @override TextDirection textDirection; @override @@ -206,7 +206,7 @@ class ParagraphComponentViewModel extends SingleColumnLayoutComponentViewModel w indentCalculator: indentCalculator, text: text, textStyleBuilder: textStyleBuilder, - inlineWidgetBuilderChain: inlineWidgetBuilderChain, + inlineWidgetBuilders: inlineWidgetBuilders, textDirection: textDirection, textAlignment: textAlignment, textScaler: textScaler, @@ -316,7 +316,7 @@ class _ParagraphComponentState extends State textAlign: widget.viewModel.textAlignment, textScaler: widget.viewModel.textScaler, textStyleBuilder: widget.viewModel.textStyleBuilder, - inlineWidgetBuilderChain: widget.viewModel.inlineWidgetBuilderChain, + inlineWidgetBuilders: widget.viewModel.inlineWidgetBuilders, metadata: widget.viewModel.blockType != null ? { 'blockType': widget.viewModel.blockType, diff --git a/super_editor/lib/src/default_editor/super_editor.dart b/super_editor/lib/src/default_editor/super_editor.dart index eeb1ff065e..64a6e945d8 100644 --- a/super_editor/lib/src/default_editor/super_editor.dart +++ b/super_editor/lib/src/default_editor/super_editor.dart @@ -1604,7 +1604,7 @@ final defaultStylesheet = Stylesheet( ), ], inlineTextStyler: defaultInlineTextStyler, - inlineWidgetBuilderChain: defaultInlineWidgetBuilderChain, + inlineWidgetBuilders: defaultInlineWidgetBuilderChain, ); TextStyle defaultInlineTextStyler(Set attributions, TextStyle existingStyle) { diff --git a/super_editor/lib/src/default_editor/tasks.dart b/super_editor/lib/src/default_editor/tasks.dart index 4389c6413d..d187221004 100644 --- a/super_editor/lib/src/default_editor/tasks.dart +++ b/super_editor/lib/src/default_editor/tasks.dart @@ -182,7 +182,7 @@ class TaskComponentViewModel extends SingleColumnLayoutComponentViewModel with T required this.setComplete, required this.text, required this.textStyleBuilder, - this.inlineWidgetBuilderChain = const [], + this.inlineWidgetBuilders = const [], this.textDirection = TextDirection.ltr, this.textAlignment = TextAlign.left, this.selection, @@ -216,7 +216,7 @@ class TaskComponentViewModel extends SingleColumnLayoutComponentViewModel with T @override AttributionStyleBuilder textStyleBuilder; @override - InlineWidgetBuilderChain inlineWidgetBuilderChain; + InlineWidgetBuilderChain inlineWidgetBuilders; @override TextDirection textDirection; @override @@ -240,7 +240,7 @@ class TaskComponentViewModel extends SingleColumnLayoutComponentViewModel with T setComplete: setComplete, text: text, textStyleBuilder: textStyleBuilder, - inlineWidgetBuilderChain: inlineWidgetBuilderChain, + inlineWidgetBuilders: inlineWidgetBuilders, textDirection: textDirection, selection: selection, selectionColor: selectionColor, @@ -368,7 +368,7 @@ class _TaskComponentState extends State with ProxyDocumentCompone key: _textKey, text: widget.viewModel.text, textStyleBuilder: _computeStyles, - inlineWidgetBuilderChain: widget.viewModel.inlineWidgetBuilderChain, + inlineWidgetBuilders: widget.viewModel.inlineWidgetBuilders, textSelection: widget.viewModel.selection, selectionColor: widget.viewModel.selectionColor, highlightWhenEmpty: widget.viewModel.highlightWhenEmpty, diff --git a/super_editor/lib/src/default_editor/text.dart b/super_editor/lib/src/default_editor/text.dart index 9485598c08..dd6e7fb31c 100644 --- a/super_editor/lib/src/default_editor/text.dart +++ b/super_editor/lib/src/default_editor/text.dart @@ -497,8 +497,8 @@ mixin TextComponentViewModel on SingleColumnLayoutComponentViewModel { AttributionStyleBuilder get textStyleBuilder; set textStyleBuilder(AttributionStyleBuilder styleBuilder); - InlineWidgetBuilderChain get inlineWidgetBuilderChain; - set inlineWidgetBuilderChain(InlineWidgetBuilderChain inlineWidgetBuildChain); + InlineWidgetBuilderChain get inlineWidgetBuilders; + set inlineWidgetBuilders(InlineWidgetBuilderChain inlineWidgetBuildChain); TextDirection get textDirection; set textDirection(TextDirection direction); @@ -565,7 +565,7 @@ mixin TextComponentViewModel on SingleColumnLayoutComponentViewModel { return inlineTextStyler(attributions, baseStyle); }; - inlineWidgetBuilderChain = styles[Styles.inlineWidgetBuilderChain] ?? []; + inlineWidgetBuilders = styles[Styles.inlineWidgetBuilders] ?? []; composingRegionUnderlineStyle = styles[Styles.composingRegionUnderlineStyle] ?? composingRegionUnderlineStyle; showComposingRegionUnderline = styles[Styles.showComposingRegionUnderline] ?? showComposingRegionUnderline; @@ -675,7 +675,7 @@ class TextComponent extends StatefulWidget { this.textDirection, this.textScaler, required this.textStyleBuilder, - this.inlineWidgetBuilderChain = const [], + this.inlineWidgetBuilders = const [], this.metadata = const {}, this.textSelection, this.selectionColor = Colors.lightBlueAccent, @@ -701,7 +701,7 @@ class TextComponent extends StatefulWidget { /// /// The first builder in the chain to return a non-null `Widget` will be /// used for a given inline placeholder. - final InlineWidgetBuilderChain inlineWidgetBuilderChain; + final InlineWidgetBuilderChain inlineWidgetBuilders; final Map metadata; @@ -1139,7 +1139,7 @@ class TextComponentState extends State with DocumentComponent imp richText: widget.text.computeInlineSpan( context, _textStyleWithBlockType, - widget.inlineWidgetBuilderChain, + widget.inlineWidgetBuilders, ), textAlign: widget.textAlign ?? TextAlign.left, textDirection: widget.textDirection ?? TextDirection.ltr, @@ -1224,7 +1224,7 @@ Widget? inlineAssetImageBuilder(BuildContext context, TextStyle textStyle, Objec } /// A widget that sets its [child]'s height to the line-height of a given text [style]. -class LineHeight extends StatelessWidget { +class LineHeight extends StatefulWidget { const LineHeight({ super.key, required this.style, @@ -1235,22 +1235,48 @@ class LineHeight extends StatelessWidget { final Widget child; @override - Widget build(BuildContext context) { + State createState() => _LineHeightState(); +} + +class _LineHeightState extends State { + late double _lineHeight; + + @override + void initState() { + super.initState(); + _calculateLineHeight(); + } + + @override + void didUpdateWidget(LineHeight oldWidget) { + super.didUpdateWidget(oldWidget); + + if (widget.style != oldWidget.style) { + _calculateLineHeight(); + } + } + + void _calculateLineHeight() { final textPainter = TextPainter( - text: TextSpan(text: "a", style: style), + text: TextSpan(text: "a", style: widget.style), textDirection: TextDirection.ltr, )..layout(); + _lineHeight = textPainter.height; + } + + @override + Widget build(BuildContext context) { return SizedBox( - height: textPainter.height, - child: child, + height: _lineHeight, + child: widget.child, ); } } /// A widget that sets its [child]'s width and height to the line-height of a /// given text [style]. -class LineHeightSquare extends StatelessWidget { +class LineHeightSquare extends StatefulWidget { const LineHeightSquare({ super.key, required this.style, @@ -1261,16 +1287,42 @@ class LineHeightSquare extends StatelessWidget { final Widget child; @override - Widget build(BuildContext context) { + State createState() => _LineHeightSquareState(); +} + +class _LineHeightSquareState extends State { + late double _lineHeight; + + @override + void initState() { + super.initState(); + _calculateLineHeight(); + } + + @override + void didUpdateWidget(LineHeightSquare oldWidget) { + super.didUpdateWidget(oldWidget); + + if (widget.style != oldWidget.style) { + _calculateLineHeight(); + } + } + + void _calculateLineHeight() { final textPainter = TextPainter( - text: TextSpan(text: "a", style: style), + text: TextSpan(text: "a", style: widget.style), textDirection: TextDirection.ltr, )..layout(); + _lineHeight = textPainter.height; + } + + @override + Widget build(BuildContext context) { return SizedBox( - width: textPainter.height, - height: textPainter.height, - child: child, + width: _lineHeight, + height: _lineHeight, + child: widget.child, ); } } diff --git a/super_editor/lib/src/infrastructure/attributed_text_styles.dart b/super_editor/lib/src/infrastructure/attributed_text_styles.dart index 84241e5996..e010b582b0 100644 --- a/super_editor/lib/src/infrastructure/attributed_text_styles.dart +++ b/super_editor/lib/src/infrastructure/attributed_text_styles.dart @@ -24,7 +24,7 @@ extension ComputeTextSpan on AttributedText { InlineSpan computeInlineSpan( BuildContext context, AttributionStyleBuilder styleBuilder, - InlineWidgetBuilderChain inlineWidgetBuilderChain, + InlineWidgetBuilderChain inlineWidgetBuilders, ) { if (isEmpty) { // There is no text and therefore no attributions. @@ -46,7 +46,7 @@ extension ComputeTextSpan on AttributedText { final textStyle = styleBuilder({}); Widget? inlineWidget; - for (final builder in inlineWidgetBuilderChain) { + for (final builder in inlineWidgetBuilders) { inlineWidget = builder(context, textStyle, placeholders[start]!); if (inlineWidget != null) { break; diff --git a/super_editor/lib/src/super_reader/super_reader.dart b/super_editor/lib/src/super_reader/super_reader.dart index 1237c4d797..b3c61c43e7 100644 --- a/super_editor/lib/src/super_reader/super_reader.dart +++ b/super_editor/lib/src/super_reader/super_reader.dart @@ -866,7 +866,7 @@ final readOnlyDefaultStylesheet = Stylesheet( ), ], inlineTextStyler: readOnlyDefaultInlineTextStyler, - inlineWidgetBuilderChain: defaultInlineWidgetBuilderChain, + inlineWidgetBuilders: defaultInlineWidgetBuilderChain, ); TextStyle readOnlyDefaultInlineTextStyler(Set attributions, TextStyle existingStyle) { From 8ac92cc4a166a8955f1baa983347802f77d131eb Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Tue, 10 Dec 2024 16:09:31 -0800 Subject: [PATCH 6/6] Switched from local package deps to new attributed_text and super_text_layout --- super_editor/pubspec.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/super_editor/pubspec.yaml b/super_editor/pubspec.yaml index 0afecc2ae5..d9b4909bb1 100644 --- a/super_editor/pubspec.yaml +++ b/super_editor/pubspec.yaml @@ -29,14 +29,14 @@ dependencies: flutter: sdk: flutter - attributed_text: ^0.3.2 + attributed_text: ^0.4.0 characters: ^1.3.0 collection: ^1.15.0 follow_the_leader: ^0.0.4+8 http: ^1.2.2 linkify: ^5.0.0 logging: ^1.3.0 - super_text_layout: ^0.1.15 + super_text_layout: ^0.1.17 url_launcher: ^6.3.1 uuid: ^4.5.1 overlord: ^0.0.3+5 @@ -47,13 +47,13 @@ dependencies: flutter_test_robots: ^0.0.24 clock: ^1.1.1 -dependency_overrides: -# Override to local mono-repo path so devs can test this repo -# against changes that they're making to other mono-repo packages - attributed_text: - path: ../attributed_text - super_text_layout: - path: ../super_text_layout +#dependency_overrides: +# # Override to local mono-repo path so devs can test this repo +# # against changes that they're making to other mono-repo packages +# attributed_text: +# path: ../attributed_text +# super_text_layout: +# path: ../super_text_layout dev_dependencies: flutter_lints: ^2.0.1

UR>t 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%0ABPoAw3t-_r;0JpiIfSdGdTF3TP~Y4O_yA0y zt89PoPxP8skgvIIVE%V*qiRJ(P9i*3)wDeh^`;j0N}KifS9z*7!2-&mzwF~sv~2t# zhUSDfpmJ?|0R`r;1D_pcK?v#CYC^p~4br{L!^+Iko9@Znn`eWi{ngKp5;(*(F-`R{$z?M9+J?28!2xZ!~kR9C$J_iRUX9)rOC@ zH&KThlEtZ|jk|#K1sYRU(|0Clb2>^X&=MdupId-5r2B(ZO(dY`OO&^ncM-_mky zq61Xpqcj@eJ-qlHJ50Q({Z1*5thGfzAw<3n)6D0Tv0V@lWxOLrR)N95*pa^nJkv@t z){_L{ANlzrqfFWTyTLu-G3_}v%*&JKvGYmC;)fX?v1j=f!0g}dn z{8C|ku(%%{tdt_6Kiyr2HROBN)aWsw{pYCiJwo=q9kS@% zeDp}XAZBdhSFic0=WW@yqZ8L&)g9d;bLa;dB6XlKjd%5O&F7-J-|lfx*YvsWr~z8 zJLjA-@w6^ZMDixPNx_j_s^u8fdCP+02c$Z=fOv&=VbF zmlFO3{#>sco*H#L|299N)#UwS!{p?Q6`cd)$1`>A&egA9ucM>$^2j&az)dG_#Ngon m@0)60g*;h*zxuR+!RjvekYSpGbi1SWk&hSrc(v!5YySf$ThN>U diff --git a/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_android_drag-extent-upstream.png b/super_editor/test_goldens/editor/mobile/goldens/mobile-selection_android_drag-extent-upstream.png index 7176fe3ff1570e4e18f55ae362861fe1797843a6..aac91f2e4fc7aa4891651437939ddcf60edaaef7 100644 GIT binary patch literal 21827 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 literal 21830 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