TF-1155 Handle moving focus between fields using the tab key in advanced search

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit 7044a1ca5477390af9d1d7a9003e0d8aae7c632f)
This commit is contained in:
dab246
2023-11-08 12:22:10 +07:00
committed by Dat Vu
parent e41aa811ff
commit bfb35a7187
6 changed files with 82 additions and 123 deletions
@@ -118,7 +118,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.toAddressExpandMode.value, expandMode: controller.toAddressExpandMode.value,
controller: controller.toEmailAddressController, controller: controller.toEmailAddressController,
focusNode: controller.toAddressFocusNode, focusNode: controller.toAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyToEmailTagEditor, keyTagEditor: controller.keyToEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
padding: ComposerStyle.mobileRecipientPadding, padding: ComposerStyle.mobileRecipientPadding,
@@ -139,7 +138,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.ccAddressExpandMode.value, expandMode: controller.ccAddressExpandMode.value,
controller: controller.ccEmailAddressController, controller: controller.ccEmailAddressController,
focusNode: controller.ccAddressFocusNode, focusNode: controller.ccAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyCcEmailTagEditor, keyTagEditor: controller.keyCcEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
nextFocusNode: controller.getNextFocusOfCcEmailAddress(), nextFocusNode: controller.getNextFocusOfCcEmailAddress(),
@@ -160,7 +158,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.bccAddressExpandMode.value, expandMode: controller.bccAddressExpandMode.value,
controller: controller.bccEmailAddressController, controller: controller.bccEmailAddressController,
focusNode: controller.bccAddressFocusNode, focusNode: controller.bccAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyBccEmailTagEditor, keyTagEditor: controller.keyBccEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
nextFocusNode: controller.subjectEmailInputFocusNode, nextFocusNode: controller.subjectEmailInputFocusNode,
@@ -269,7 +266,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.toAddressExpandMode.value, expandMode: controller.toAddressExpandMode.value,
controller: controller.toEmailAddressController, controller: controller.toEmailAddressController,
focusNode: controller.toAddressFocusNode, focusNode: controller.toAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyToEmailTagEditor, keyTagEditor: controller.keyToEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
padding: ComposerStyle.mobileRecipientPadding, padding: ComposerStyle.mobileRecipientPadding,
@@ -290,7 +286,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.ccAddressExpandMode.value, expandMode: controller.ccAddressExpandMode.value,
controller: controller.ccEmailAddressController, controller: controller.ccEmailAddressController,
focusNode: controller.ccAddressFocusNode, focusNode: controller.ccAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyCcEmailTagEditor, keyTagEditor: controller.keyCcEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
nextFocusNode: controller.getNextFocusOfCcEmailAddress(), nextFocusNode: controller.getNextFocusOfCcEmailAddress(),
@@ -311,7 +306,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.bccAddressExpandMode.value, expandMode: controller.bccAddressExpandMode.value,
controller: controller.bccEmailAddressController, controller: controller.bccEmailAddressController,
focusNode: controller.bccAddressFocusNode, focusNode: controller.bccAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyBccEmailTagEditor, keyTagEditor: controller.keyBccEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
nextFocusNode: controller.subjectEmailInputFocusNode, nextFocusNode: controller.subjectEmailInputFocusNode,
@@ -95,7 +95,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.toAddressExpandMode.value, expandMode: controller.toAddressExpandMode.value,
controller: controller.toEmailAddressController, controller: controller.toEmailAddressController,
focusNode: controller.toAddressFocusNode, focusNode: controller.toAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyToEmailTagEditor, keyTagEditor: controller.keyToEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
padding: ComposerStyle.mobileRecipientPadding, padding: ComposerStyle.mobileRecipientPadding,
@@ -116,7 +115,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.ccAddressExpandMode.value, expandMode: controller.ccAddressExpandMode.value,
controller: controller.ccEmailAddressController, controller: controller.ccEmailAddressController,
focusNode: controller.ccAddressFocusNode, focusNode: controller.ccAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyCcEmailTagEditor, keyTagEditor: controller.keyCcEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
nextFocusNode: controller.getNextFocusOfCcEmailAddress(), nextFocusNode: controller.getNextFocusOfCcEmailAddress(),
@@ -137,7 +135,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.bccAddressExpandMode.value, expandMode: controller.bccAddressExpandMode.value,
controller: controller.bccEmailAddressController, controller: controller.bccEmailAddressController,
focusNode: controller.bccAddressFocusNode, focusNode: controller.bccAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyBccEmailTagEditor, keyTagEditor: controller.keyBccEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
nextFocusNode: controller.subjectEmailInputFocusNode, nextFocusNode: controller.subjectEmailInputFocusNode,
@@ -276,7 +273,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.toAddressExpandMode.value, expandMode: controller.toAddressExpandMode.value,
controller: controller.toEmailAddressController, controller: controller.toEmailAddressController,
focusNode: controller.toAddressFocusNode, focusNode: controller.toAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyToEmailTagEditor, keyTagEditor: controller.keyToEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
padding: ComposerStyle.desktopRecipientPadding, padding: ComposerStyle.desktopRecipientPadding,
@@ -297,7 +293,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.ccAddressExpandMode.value, expandMode: controller.ccAddressExpandMode.value,
controller: controller.ccEmailAddressController, controller: controller.ccEmailAddressController,
focusNode: controller.ccAddressFocusNode, focusNode: controller.ccAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyCcEmailTagEditor, keyTagEditor: controller.keyCcEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
nextFocusNode: controller.getNextFocusOfCcEmailAddress(), nextFocusNode: controller.getNextFocusOfCcEmailAddress(),
@@ -318,7 +313,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.bccAddressExpandMode.value, expandMode: controller.bccAddressExpandMode.value,
controller: controller.bccEmailAddressController, controller: controller.bccEmailAddressController,
focusNode: controller.bccAddressFocusNode, focusNode: controller.bccAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyBccEmailTagEditor, keyTagEditor: controller.keyBccEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
nextFocusNode: controller.subjectEmailInputFocusNode, nextFocusNode: controller.subjectEmailInputFocusNode,
@@ -509,7 +503,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.toAddressExpandMode.value, expandMode: controller.toAddressExpandMode.value,
controller: controller.toEmailAddressController, controller: controller.toEmailAddressController,
focusNode: controller.toAddressFocusNode, focusNode: controller.toAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyToEmailTagEditor, keyTagEditor: controller.keyToEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
padding: ComposerStyle.tabletRecipientPadding, padding: ComposerStyle.tabletRecipientPadding,
@@ -530,7 +523,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.ccAddressExpandMode.value, expandMode: controller.ccAddressExpandMode.value,
controller: controller.ccEmailAddressController, controller: controller.ccEmailAddressController,
focusNode: controller.ccAddressFocusNode, focusNode: controller.ccAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyCcEmailTagEditor, keyTagEditor: controller.keyCcEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
nextFocusNode: controller.getNextFocusOfCcEmailAddress(), nextFocusNode: controller.getNextFocusOfCcEmailAddress(),
@@ -551,7 +543,6 @@ class ComposerView extends GetWidget<ComposerController> {
expandMode: controller.bccAddressExpandMode.value, expandMode: controller.bccAddressExpandMode.value,
controller: controller.bccEmailAddressController, controller: controller.bccEmailAddressController,
focusNode: controller.bccAddressFocusNode, focusNode: controller.bccAddressFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyBccEmailTagEditor, keyTagEditor: controller.keyBccEmailTagEditor,
isInitial: controller.isInitialRecipient.value, isInitial: controller.isInitialRecipient.value,
nextFocusNode: controller.subjectEmailInputFocusNode, nextFocusNode: controller.subjectEmailInputFocusNode,
@@ -45,7 +45,6 @@ class RecipientComposerWidget extends StatefulWidget {
final PrefixRecipientState bccState; final PrefixRecipientState bccState;
final bool? isInitial; final bool? isInitial;
final FocusNode? focusNode; final FocusNode? focusNode;
final bool autoDisposeFocusNode;
final GlobalKey? keyTagEditor; final GlobalKey? keyTagEditor;
final FocusNode? nextFocusNode; final FocusNode? nextFocusNode;
final TextEditingController? controller; final TextEditingController? controller;
@@ -71,7 +70,6 @@ class RecipientComposerWidget extends StatefulWidget {
this.isInitial, this.isInitial,
this.controller, this.controller,
this.focusNode, this.focusNode,
this.autoDisposeFocusNode = true,
this.expandMode = ExpandMode.EXPAND, this.expandMode = ExpandMode.EXPAND,
this.keyTagEditor, this.keyTagEditor,
this.nextFocusNode, this.nextFocusNode,
@@ -165,7 +163,6 @@ class _RecipientComposerWidgetState extends State<RecipientComposerWidget> {
enableBorder: _isDragging, enableBorder: _isDragging,
borderRadius: RecipientComposerWidgetStyle.enableBorderRadius, borderRadius: RecipientComposerWidgetStyle.enableBorderRadius,
enableBorderColor: RecipientComposerWidgetStyle.enableBorderColor, enableBorderColor: RecipientComposerWidgetStyle.enableBorderColor,
autoDisposeFocusNode: widget.autoDisposeFocusNode,
keyboardType: TextInputType.emailAddress, keyboardType: TextInputType.emailAddress,
textInputAction: TextInputAction.done, textInputAction: TextInputAction.done,
debounceDuration: RecipientComposerWidgetStyle.suggestionDebounceDuration, debounceDuration: RecipientComposerWidgetStyle.suggestionDebounceDuration,
@@ -240,7 +237,6 @@ class _RecipientComposerWidgetState extends State<RecipientComposerWidget> {
length: _collapsedListEmailAddress.length, length: _collapsedListEmailAddress.length,
controller: widget.controller, controller: widget.controller,
focusNode: widget.focusNode, focusNode: widget.focusNode,
autoDisposeFocusNode: widget.autoDisposeFocusNode,
keyboardType: TextInputType.emailAddress, keyboardType: TextInputType.emailAddress,
textInputAction: TextInputAction.done, textInputAction: TextInputAction.done,
debounceDuration: RecipientComposerWidgetStyle.suggestionDebounceDuration, debounceDuration: RecipientComposerWidgetStyle.suggestionDebounceDuration,
@@ -36,13 +36,10 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
controller: controller.fromEmailAddressController, controller: controller.fromEmailAddressController,
focusNode: controller.focusManager.fromFieldFocusNode, focusNode: controller.focusManager.fromFieldFocusNode,
nextFocusNode: controller.focusManager.toFieldFocusNode, nextFocusNode: controller.focusManager.toFieldFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyFromEmailTagEditor, keyTagEditor: controller.keyFromEmailTagEditor,
onFocusEmailAddressChangeAction: controller.onEmailAddressFocusChange,
onShowFullListEmailAddressAction: controller.showFullEmailAddress, onShowFullListEmailAddressAction: controller.showFullEmailAddress,
onUpdateListEmailAddressAction: controller.updateListEmailAddress, onUpdateListEmailAddressAction: controller.updateListEmailAddress,
onSuggestionEmailAddress: controller.getAutoCompleteSuggestion, onSuggestionEmailAddress: controller.getAutoCompleteSuggestion,
onFocusNextAddressAction: controller.handleFocusNextAddressAction,
onRemoveEmailAddressAction: controller.removeEmailAddress, onRemoveEmailAddressAction: controller.removeEmailAddress,
), ),
TextFieldAutocompleteEmailAddressWeb( TextFieldAutocompleteEmailAddressWeb(
@@ -52,13 +49,10 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
controller: controller.toEmailAddressController, controller: controller.toEmailAddressController,
focusNode: controller.focusManager.toFieldFocusNode, focusNode: controller.focusManager.toFieldFocusNode,
nextFocusNode: controller.focusManager.subjectFieldFocusNode, nextFocusNode: controller.focusManager.subjectFieldFocusNode,
autoDisposeFocusNode: false,
keyTagEditor: controller.keyToEmailTagEditor, keyTagEditor: controller.keyToEmailTagEditor,
onFocusEmailAddressChangeAction: controller.onEmailAddressFocusChange,
onShowFullListEmailAddressAction: controller.showFullEmailAddress, onShowFullListEmailAddressAction: controller.showFullEmailAddress,
onUpdateListEmailAddressAction: controller.updateListEmailAddress, onUpdateListEmailAddressAction: controller.updateListEmailAddress,
onSuggestionEmailAddress: controller.getAutoCompleteSuggestion, onSuggestionEmailAddress: controller.getAutoCompleteSuggestion,
onFocusNextAddressAction: controller.handleFocusNextAddressAction,
onRemoveEmailAddressAction: controller.removeEmailAddress, onRemoveEmailAddressAction: controller.removeEmailAddress,
), ),
_buildFilterField( _buildFilterField(
@@ -21,7 +21,6 @@ typedef OnSuggestionEmailAddress = Future<List<EmailAddress>> Function(String wo
typedef OnUpdateListEmailAddressAction = void Function(AdvancedSearchFilterField field, List<EmailAddress> newData); typedef OnUpdateListEmailAddressAction = void Function(AdvancedSearchFilterField field, List<EmailAddress> newData);
typedef OnDeleteEmailAddressTypeAction = void Function(AdvancedSearchFilterField field); typedef OnDeleteEmailAddressTypeAction = void Function(AdvancedSearchFilterField field);
typedef OnShowFullListEmailAddressAction = void Function(AdvancedSearchFilterField field); typedef OnShowFullListEmailAddressAction = void Function(AdvancedSearchFilterField field);
typedef OnFocusEmailAddressChangeAction = void Function(AdvancedSearchFilterField field, bool isFocus);
typedef OnRemoveEmailAddressAction = void Function(EmailAddress emailAddress, AdvancedSearchFilterField field); typedef OnRemoveEmailAddressAction = void Function(EmailAddress emailAddress, AdvancedSearchFilterField field);
typedef OnDeleteTagAction = void Function(EmailAddress emailAddress); typedef OnDeleteTagAction = void Function(EmailAddress emailAddress);
@@ -31,7 +30,6 @@ class TextFieldAutocompleteEmailAddressWeb extends StatefulWidget {
final List<EmailAddress> listEmailAddress; final List<EmailAddress> listEmailAddress;
final ExpandMode expandMode; final ExpandMode expandMode;
final FocusNode? focusNode; final FocusNode? focusNode;
final bool autoDisposeFocusNode;
final GlobalKey? keyTagEditor; final GlobalKey? keyTagEditor;
final FocusNode? nextFocusNode; final FocusNode? nextFocusNode;
final EdgeInsetsGeometry? padding; final EdgeInsetsGeometry? padding;
@@ -41,11 +39,8 @@ class TextFieldAutocompleteEmailAddressWeb extends StatefulWidget {
final OnUpdateListEmailAddressAction? onUpdateListEmailAddressAction; final OnUpdateListEmailAddressAction? onUpdateListEmailAddressAction;
final OnDeleteEmailAddressTypeAction? onDeleteEmailAddressTypeAction; final OnDeleteEmailAddressTypeAction? onDeleteEmailAddressTypeAction;
final OnShowFullListEmailAddressAction? onShowFullListEmailAddressAction; final OnShowFullListEmailAddressAction? onShowFullListEmailAddressAction;
final OnFocusEmailAddressChangeAction? onFocusEmailAddressChangeAction;
final OnRemoveEmailAddressAction? onRemoveEmailAddressAction; final OnRemoveEmailAddressAction? onRemoveEmailAddressAction;
final VoidCallback? onFocusNextAddressAction;
final TextEditingController? controller; final TextEditingController? controller;
final TapRegionCallback? onTapOutside;
const TextFieldAutocompleteEmailAddressWeb({ const TextFieldAutocompleteEmailAddressWeb({
Key? key, Key? key,
@@ -53,7 +48,6 @@ class TextFieldAutocompleteEmailAddressWeb extends StatefulWidget {
required this.listEmailAddress, required this.listEmailAddress,
this.expandMode = ExpandMode.EXPAND, this.expandMode = ExpandMode.EXPAND,
this.focusNode, this.focusNode,
this.autoDisposeFocusNode = true,
this.keyTagEditor, this.keyTagEditor,
this.nextFocusNode, this.nextFocusNode,
this.padding, this.padding,
@@ -63,11 +57,8 @@ class TextFieldAutocompleteEmailAddressWeb extends StatefulWidget {
this.onUpdateListEmailAddressAction, this.onUpdateListEmailAddressAction,
this.onDeleteEmailAddressTypeAction, this.onDeleteEmailAddressTypeAction,
this.onShowFullListEmailAddressAction, this.onShowFullListEmailAddressAction,
this.onFocusEmailAddressChangeAction,
this.onRemoveEmailAddressAction, this.onRemoveEmailAddressAction,
this.onFocusNextAddressAction,
this.controller, this.controller,
this.onTapOutside,
}) : super(key: key); }) : super(key: key);
@override @override
@@ -111,27 +102,13 @@ class _TextFieldAutocompleteEmailAddressWebState extends State<TextFieldAutocomp
), ),
const SizedBox(width: TextFieldAutoCompleteEmailAddressWebStyles.space), const SizedBox(width: TextFieldAutoCompleteEmailAddressWebStyles.space),
Expanded( Expanded(
child: FocusScope(
child: Focus(
onFocusChange: (focus) {
widget.onFocusEmailAddressChangeAction?.call(widget.field, focus);
},
onKey: (focusNode, event) {
if (event.logicalKey == LogicalKeyboardKey.tab) {
widget.nextFocusNode?.requestFocus();
widget.onFocusNextAddressAction?.call();
return KeyEventResult.handled;
}
return KeyEventResult.ignored;
},
child: StatefulBuilder( child: StatefulBuilder(
builder: ((context, setState) { builder: ((context, setState) {
return TagEditor<SuggestionEmailAddress>( return TagEditor<SuggestionEmailAddress>(
key: widget.keyTagEditor, key: widget.keyTagEditor,
length: _collapsedListEmailAddress.length, length: _collapsedListEmailAddress.length,
controller: widget.controller, controller: widget.controller,
focusNode: widget.focusNode, focusNodeKeyboard: widget.focusNode,
autoDisposeFocusNode: widget.autoDisposeFocusNode,
keyboardType: TextInputType.emailAddress, keyboardType: TextInputType.emailAddress,
textInputAction: TextInputAction.done, textInputAction: TextInputAction.done,
debounceDuration: TextFieldAutoCompleteEmailAddressWebStyles.debounceDuration, debounceDuration: TextFieldAutoCompleteEmailAddressWebStyles.debounceDuration,
@@ -164,7 +141,6 @@ class _TextFieldAutocompleteEmailAddressWebState extends State<TextFieldAutocomp
onDeleteTagAction: () => _handleDeleteLatestTagAction.call(setState), onDeleteTagAction: () => _handleDeleteLatestTagAction.call(setState),
onSelectOptionAction: (item) => _handleSelectOptionAction.call(item, setState), onSelectOptionAction: (item) => _handleSelectOptionAction.call(item, setState),
onSubmitted: (value) => _handleSubmitTagAction.call(value, setState), onSubmitted: (value) => _handleSubmitTagAction.call(value, setState),
onTapOutside: widget.onTapOutside,
tagBuilder: (context, index) { tagBuilder: (context, index) {
final currentEmailAddress = _currentListEmailAddress.elementAt(index); final currentEmailAddress = _currentListEmailAddress.elementAt(index);
final isLatestEmail = currentEmailAddress == _currentListEmailAddress.last; final isLatestEmail = currentEmailAddress == _currentListEmailAddress.last;
@@ -182,7 +158,6 @@ class _TextFieldAutocompleteEmailAddressWebState extends State<TextFieldAutocomp
}, },
onTagChanged: (tag) => _handleOnTagChangeAction.call(tag, setState), onTagChanged: (tag) => _handleOnTagChangeAction.call(tag, setState),
findSuggestions: _findSuggestions, findSuggestions: _findSuggestions,
useDefaultHighlight: true,
suggestionBuilder: (context, tagEditorState, suggestionEmailAddress, index, length, highlight, suggestionValid) { suggestionBuilder: (context, tagEditorState, suggestionEmailAddress, index, length, highlight, suggestionValid) {
return AutoCompleteSuggestionItemWidgetWeb( return AutoCompleteSuggestionItemWidgetWeb(
suggestionState: suggestionEmailAddress.state, suggestionState: suggestionEmailAddress.state,
@@ -197,11 +172,20 @@ class _TextFieldAutocompleteEmailAddressWebState extends State<TextFieldAutocomp
}, },
); );
}, },
onHandleKeyEventAction: (event) {
if (event is RawKeyDownEvent) {
switch (event.logicalKey) {
case LogicalKeyboardKey.tab:
widget.nextFocusNode?.requestFocus();
break;
default:
break;
}
}
},
); );
}) })
), ),
)
),
), ),
], ],
); );
+1 -1
View File
@@ -1553,7 +1553,7 @@ packages:
description: description:
path: "." path: "."
ref: master ref: master
resolved-ref: "796d679e3aaf34d0107819d1f12bb3cf45a59d64" resolved-ref: aad6fb53c832fbe3b86f2b9eaefaab7a83392529
url: "https://github.com/dab246/super_tag_editor.git" url: "https://github.com/dab246/super_tag_editor.git"
source: git source: git
version: "0.2.0" version: "0.2.0"