9maybeOfofchild onWillPopcanPop onPopInvokedonPopInvokedWithResult onChangedautovalidateMode_callPopInvoked createState _generation_hasInteractedByUser_fields_fieldDidChange _forceRebuild _register _unregisterbuildsaveresetvalidatevalidateGranularly _validate _formStateformupdateShouldNotifybuilderonSavedonResetforceErrorText validator errorBuilder initialValueenabled restorationId_value _errorText _focusNodevalue errorTexthasErrorhasInteractedByUserisValid didChangesetValue restoreState deactivate initStatedidUpdateWidgetdidChangeDependenciesdisposedisabledalwaysonUserInteraction onUnfocusonUserInteractionIfError _kIOSAnnouncementDelayDurationForm FormState _FormScopeFormFieldValidatorFormFieldErrorBuilderFormFieldSetterFormFieldBuilder FormFieldFormFieldStateAutovalidateMode€ˆDurationseconds TextFieldof GlobalKey currentState TextFormFieldElevatedButtonStatefulWidget Deprecateddisabled BuildContext"dependOnInheritedWidgetOfExactType _formStatemaybeOf FlutterErrorWidget ModalRoute WillPopScopeWillPopCallbackPopScopecanPopboolPopInvokedCallbackonPopInvokedWithResultPopInvokedWithResultCallbackObject VoidCallbackvoidcalloverrideStateintSetdynamicwidget onChangedanyfield_hasInteractedByUservaluesetStateaddremove protectedhasErrorautovalidateModealwaysViewonUserInteractiononUserInteractionIfError onUnfocus onPopInvoked_callPopInvokedchild formState generation onWillPop Semantics containerexplicitChildNodesrole SemanticsRoleformsave initialValueresetcontext FlutterView _focusNodehasFocusvalidateisEmpty errorText invalidFields isNotEmpty MediaQuerysupportsAnnounceOf TextDirectionDirectionalitydefaultTargetPlatformTargetPlatformiOS unawaitedFuturedelayedSemanticsServicesendAnnouncement assertiveness Assertiveness assertiveInheritedWidget _generation validatorStringT errorBuilderonSavedbuilderInputDecorationSizedBox helperTexterrorRestorationBucketRestorationScopeRestorationManagerRestorationMixinRestorableStringNRestorableBool FocusNodeforceErrorTextonReset_fieldDidChangeSlider restorationIdregisterForRestoration _unregister deactivate initStatedidUpdateWidgetdidChangeDependenciesWidgetsBindinginstanceaddPostFrameCallbackenableddispose _registervalidationResultSemanticsValidationResultinvalidvalidFocuscanRequestFocus skipTraversal onFocusChange focusNodeStatefulWidgetStateInheritedWidgetRestorationMixinïל²×EÄd�ËQ‹*� dart:async�.dart:ui�Cpackage:flutter/foundation.dart�npackage:flutter/rendering.dart�š basic.dart�° binding.dart�Èfocus_manager.dart�æfocus_scope.dart‚framework.dart‚media_query.dart‚8navigator.dart‚Rpop_scope.dart‚lrestoration.dart‚ˆrestoration_properties.dart‚¯ routes.dart‚Æ view.dart‚Ûwill_pop_scope.dartÀJ2ÀscƒV=€ˆ€§€©€Ú� ���-�@�B�m�—�™�¯�Ç�å‚‚‚7‚Q‚k‚‡‚®‚łڂù‚ûƒ\ƒ£ƒ¥ƒ¾ƒÝƒß„,„M„R„¢„ï…7…ˆ…׆††,†x†Ì†ü‡‡Q‡V‡—‡¨‡­‡¼‡ÁˆˆTˆ´ˆÙ‰‰‰%‰?‰Q‰c‰‘‰Ï‰Ö‰îŠŠ"Š^ЛТзŠÌŠõ‹?‹O‹‘‹Õ‹à‹ðŒMŒ�Œ¨ŒªŒù�)�0�T�[�j�š�¯�º�ÁŽŽ5Ž<ŽMŽTޢ޾Žó�L�k�p�r�Á�×�Þ�� ��B�V�a�h�¹�Þ�å‘6‘H‘O‘`‘g‘¸‘Û’ ’>’O’o’Œ’ä“8“Ž“Ú“ÿ””$”-”A”L”d”i”k”œ”£”ì”ó•%•<•>•�•®•µ––!–(–9–@–Ž–¥–µ–ï—*—/—T—V—†—�—¤—õ˜;˜B˜…˜˜˜Ÿ˜°˜·™™<™‡™ž™ ™á™ñššYš^š‰š‹šÌšÓšê›;›�›ˆ›Ë›Þ›å›ö›ýœGœrœÍ���J�Q�£�¸�Ú�Üž-ž:žAž|ž¨žªžáŸ Ÿ<ŸKŸRŸsŸxŸzŸ‡Ÿ²ŸµŸ·ŸãŸè 7 w | £ Ê â¡¡U¡W¡£¡ã¡ÿ¢¢ ¢I¢•¢�¢Ÿ¢µ¢º¢¼¢Ö¢é¢ÿ££ ££B£[£`£b£—£³£¸£º£È£Õ£ý¤X¤Z¤‚¤§¤Í¤ý¥"¥J¥U¥Œ¥½¥å¥ð¦¦?¦O¦V¦X¦p¦Ô¦õ§§V§±§»§É§å¨ ¨f¨p¨w¨Ž¨¦¨Ç¨è¨ü©© © ©O©`©œ©±©¸©½©¿ªª0ª7ªlªsªÇ«««R«h«o«’«ª«¯«±«ý¬)¬0¬d¬k¬|¬Ê­­­;­Q­z­­�­Í®®%®i®p®¤®«®¼¯¯/¯f¯ž¯À¯Ö°°"°'°)°~°™°µ±±±M±…±‡±à²²9²Š²¯²à²ë³"³G³R³[³b³d³²³ú´4´H´k´´´ä´ùµµ5µlµ|µ‹µ—µ§µÓµäµý¶¶K¶W¶`¶g¶i¶€¶…¶ˆ¶Š¶¶··8·Y·[·z·|·Ë·ç¸¸¸2¸Y¸[¸h¸¶¸¹¸»¸ç¸ì¹5¹E¹J¹n¹«¹­¹è¹í¹üººVººÙºÛ»»#»E»»�»Å»Ê»ì¼5¼7¼Q¼V¼¦¼ã¼è½7½‡½Ç½Ì¾¾a¾f¾§¾÷¿F¿i¿n¿}¿‚¿ÇÀ@À@@À@dÀ@yÀ@‰À@¥À@¸À@ËÀ@åÀ@úÀAÀA*ÀADÀAmÀA†ÀAÐÀAÒÀBÀBÀBoÀBšÀBÀÀBÂÀCÀC-ÀCSÀCUÀC˜ÀC·ÀC×ÀCÙÀD*ÀDuÀDœÀD£ÀDùÀEKÀE†ÀE�ÀEãÀF3ÀF:ÀFKÀFRÀF¬ÀGÀGIÀGjÀGlÀGºÀGõÀGüÀHMÀHžÀH¬ÀH³ÀIÀIOÀIžÀIìÀJ:ÀJWÀJ‚ÀJ„ÀJÏÀJÖÀKÀK\ÀKcÀK›ÀK¿ÀKíÀKïÀL<ÀLCÀLŠÀLíÀM<ÀM�ÀM©ÀM«ÀMâÀMéÀN<ÀN’ÀNÑÀNèÀNêÀO7ÀOJÀOQÀO�ÀOØÀP)ÀPeÀP«ÀP²ÀPâÀPøÀQ$ÀQ&ÀQmÀQtÀQÄÀQïÀQöÀRDÀR–ÀR�ÀR®ÀRµÀSÀSÀS6ÀS8ÀSEÀS€ÀSƒÀS…ÀSÖÀT ÀTYÀT‚ÀT´ÀTçÀUÀUYÀU†ÀUˆÀU´ÀUÏÀUÑÀVÀV]ÀV‰ÀV�ÀVàÀW:ÀW_ÀW�ÀW�ÀWÄÀWöÀWøÀX>ÀXEÀX•ÀXºÀXùÀXûÀY&ÀY-ÀYwÀY�ÀY”ÀY¥ÀY¬ÀYïÀYöÀZNÀZ®ÀZ°ÀZöÀ[À[)À[.À[0À[^À[pÀ[ƒÀ[¨À[ÓÀ[óÀ[üÀ\À\HÀ\MÀ\OÀ\µÀ]À]À]GÀ]XÀ]_À]¦À]ËÀ]àÀ]óÀ^À^À^'À^,À^.À^DÀ^nÀ^ŸÀ^ÍÀ^ÜÀ^ãÀ_À_=À_KÀ_kÀ_rÀ_wÀ_yÀ_ÆÀ`À`À`hÀ`²À`áÀ`ÿÀaÀa)ÀaSÀa\Àa‹Àa�Àa’ÀaÉÀaÐÀbÀbiÀb¸ÀcÀc!Àc/Àc�ÀcžÀc³Àc¸ÀcºÀcÇÀcýÀcÿÀd ÀdÀddÀd›ÀdèÀdíÀdïÀdýÀe Àe!ÀePÀeiÀenÀepÀe~Àe‹Àe¡Àe¹ÀeõÀeúÀeüÀf ÀfÀfIÀfpÀf®ÀfßÀfæÀfëÀfíÀfûÀgÀg*ÀgNÀg�Àg²ÀgîÀh4ÀhnÀh‡Àh”Àh¡ÀhÉÀhùÀi0ÀiWÀiiÀiyÀi€Ài…Ài‡Ài”Ài¨ÀiÃÀiÞÀjÀjÀjÀj Àj.Àj;ÀjcÀj~Àj¨ÀjÏÀjçÀkÀkFÀk`ÀkmÀk¦ÀkßÀkùÀlÀl0ÀlYÀlkÀltÀl{Àl}ÀlªÀl¬ÀlÑÀlóÀm"ÀmPÀmtÀm|Àm~Àm×ÀnÀn\ÀnqÀn’Àn°Àn×ÀnðÀo Ào'Ào8ÀoEÀoQÀoqÀoˆÀo’Ào™Ào›Ào®Ào³Ào¶Ào¸ÀpÀpÀpEÀpRÀpTÀp§Àp²Àp´ÀpýÀqÀq'Àq)ÀqvÀq‰Àq�ÀqëÀrÀr Àr"ÀrfÀr¦Àr­ÀróÀsCÀs`Àsc_/// @docImport 'package:flutter/material.dart'; /// @docImport 'package:flutter/services.dart';��-�B�m�™�¯�Ç�å‚‚‚7‚Q‚k‚‡‚®‚łډ ‰‰‰ ‰‰)‰)‰7‰C‰C ‰H‰U‰U€–‰ß‰ò‰ò‰÷ŠŠ€ ЫллŠÀŠÐŠÐ"Šâ3‰U‰V‰`‰Ó‰i‰—ŠŠŠŠŸŠ(Šd‹ Šü‹ ‹‹#‹3‹4‹F‹L‹Ž‹Ü‹w‹o‹X‹r‹‡‹z‹Š‹š‹ç‹íŒJŒ¤Œ6‹ùŒ4Œ-‹úŒ+Œ"Œ‹ûŒŒ%Œ0ŒCŒ9ŒFŒVˆÛˆÛƒË(/// Creates a container for form fields.•4”m€Ì•4€ª/// The widget below this widget in the tree. /// /// This is the root of the widget hierarchy that contains this form. /// /// {@macro flutter.widgets.ProxyWidget.child}–§–¨–²—,–¹–ó—H•@‚—H�H/// Enables the form to veto attempts by the user to dismiss the [ModalRoute] /// that contains the form. /// /// If the callback returns a Future that resolves to false, the form's route /// will not be popped. /// /// See also: /// /// * [WillPopScope], another widget that provides a way to intercept the /// back button.™•—X‚C™•‚/// {@macro flutter.widgets.PopScope.canPop} /// /// {@tool dartpad} /// This sample demonstrates how to use this parameter to show a confirmation /// dialog when a navigation pop would cause form data to be lost. /// /// ** See code in examples/api/lib/widgets/form/form.1.dart ** /// {@end-tool} /// /// See also: /// /// * [onPopInvokedWithResult], which also comes from [PopScope] and is often used in /// conjunction with this parameter. /// * [PopScope.canPop], which is what [Form] delegates to internally.™ã™ä™îš[™õš!šz™¢€äšz=/// {@macro flutter.widgets.navigator.onPopInvokedWithResult}œüš�‚…œü‚/// {@macro flutter.widgets.navigator.onPopInvokedWithResult} /// /// {@tool dartpad} /// This sample demonstrates how to use this parameter to show a confirmation /// dialog when a navigation pop would cause form data to be lost. /// /// ** See code in examples/api/lib/widgets/form/form.1.dart ** /// {@end-tool} /// /// See also: /// /// * [canPop], which also comes from [PopScope] and is often used in /// conjunction with this parameter. /// * [PopScope.onPopInvokedWithResult], which is what [Form] delegates to internally.�Î�€¾�΀”/// Called when one of the form fields changes. /// /// In addition to this callback being invoked, all the form fields themselves /// will rebuild.ž•�ހǞ•€“/// Used to enable/disable form fields auto validation and update their error /// text. /// /// {@macro flutter.widgets.FormField.autovalidateMode}ŽÚŽÚŽçŒ¬Œ¬‚ÂŽÒ�à/// Returns the [FormState] of the closest [Form] widget which encloses the /// given context, or null if none is found. /// /// Typical usage is as follows: /// /// ```dart /// FormState? form = Form.maybeOf(context); /// form?.save(); /// ``` /// /// Calling this method will create a dependency on the closest [Form] in the /// [context], if there is one. /// /// See also: /// /// * [Form.of], which is similar to this method, but asserts if no [Form] /// ancestor is found.‘ñ‘ñ‘þ�t�t„ó‘î‚,/// Returns the [FormState] of the closest [Form] widget which encloses the /// given context. /// /// Typical usage is as follows: /// /// ```dart /// FormState form = Form.of(context); /// form.save(); /// ``` /// /// If no [Form] ancestor is found, this will assert in debug mode, and throw /// an exception in release mode. /// /// Calling this method will create a dependency on the closest [Form] in the /// [context]. /// /// See also: /// /// * [Form.maybeOf], which is similar to this method, but returns null if no /// [Form] ancestor is found.žÁžÁ žÆžÎžÎžÖž¬ž¬€Êž±Ÿ|Ÿ}Ÿ|Ÿ|4Ÿ“ƒßƒß›Ôˆº„»/// An optional container for grouping together multiple form field widgets /// (e.g. [TextField] widgets). /// /// Each individual form field should be wrapped in a [FormField] widget, with /// the [Form] widget as a common ancestor of all of those. Call methods on /// [FormState] to save, reset, or validate each [FormField] that is a /// descendant of this [Form]. To obtain the [FormState], you may use [Form.of] /// with a context whose ancestor is the [Form], or pass a [GlobalKey] to the /// [Form] constructor and call [GlobalKey.currentState]. /// /// {@tool dartpad} /// This example shows a [Form] with one [TextFormField] to enter an email /// address and an [ElevatedButton] to submit the form. A [GlobalKey] is used here /// to identify the [Form] and validate input. /// /// ![](https://flutter.github.io/assets-for-api-docs/assets/widgets/form.png) /// /// ** See code in examples/api/lib/widgets/form/form.0.dart ** /// {@end-tool} /// /// See also: /// /// * [GlobalKey], a key that is unique across the entire app. /// * [FormField], a single form field widget that maintains the current state. /// * [TextFormField], a convenience widget that wraps a [TextField] widget in a [FormField]. Þ Ð Ì Ð¡ é ä! é¡P¡Q¡7¡O¡8¡F¡N¡G¡-¡ H¡- ¡å¡å€Ó¡ê¢¾¢¾M¢Ã£ £ £8££M££u£u£�£d£dR£i£ä£ä£ñ£¼£½£Ê£Ë£¼£¼…K£Þ© © €®©V@/// Saves every [FormField] that is a descendant of this [Form].©Á©Á�ì« �//// Resets every [FormField] that is a descendant of this [Form] back to its /// [FormField.initialValue]. /// /// The [Form.onChanged] callback will be called. /// /// If the form's [Form.autovalidateMode] property is [AutovalidateMode.always], /// the fields will all be revalidated after being reset.«³«³�Ê­ �:/// Validates every [FormField] that is a descendant of this [Form], and /// returns true if there are no errors. /// /// The form will rebuild to report the results. /// /// See also: /// * [validateGranularly], which also validates descendant [FormField]s, /// but instead returns a [Set] of fields with errors.­ƒ­ƒ‚¢¯N��/// Validates every [FormField] that is a descendant of this [Form], and /// returns a [Set] of [FormFieldState] of the invalid field(s) only, if any. /// /// This method can be useful to highlight field(s) with errors. /// /// The form will rebuild to report the results. /// /// See also: /// * [validate], which also validates descendant [FormField]s, /// and return true if there are no errors.°:°:°F°M°M+°k°+°+†X°0Ÿ·Ÿ·–Ï ©€å/// State associated with a [Form] widget. /// /// A [FormState] object can be used to [save], [reset], and [validate] every /// [FormField] that is a descendant of the associated [Form]. /// /// Typically obtained via [Form.of].¶¾¶È¶Ê¶Ê¶Ù¶à¶à¶ó¶þ¶þ· ·*··,·J·>·L¶¸¶¸€Ÿ·m·]·m·ó·~€€·ód/// Incremented every time a form field has changed. This lets us know when /// to rebuild the form.¸¸R¸=+/// The [Form] associated with this widget.¸‚¸‚¸�¸]¸^¸]¸]W¸o¶Š¶Š‚-¶�À@lÀ@u À@}À@} À@ƒÀ@�À@�À@›À@©À@© À@®À@¼À@¼ À@ÁÀ@ÏÀ@ÏÀ@ÔÀ@éÀ@éÀ@îÀ@þÀ@þÀAÀAÀAÀAÀA.ÀA.ÀA3ÀAHÀAH"ÀAZÀAqÀAqÀAvÀA=ÀAžÀA�ÀA±ÀA ÀA´ÀAÄÀAÅÀ@BÀ@B�Œ /// Creates a single form field.À@#À@#À@# ÀB¶ÀAÔ€éÀB¶€»/// Function that returns the widget representing this form field. /// /// It is passed the form field state as input, containing the current value /// and validation state of this field.ÀCIÀBÄ€ŒÀCId/// An optional method to call with the final value when the form is saved via /// [FormState.save].ÀCÍÀCW}ÀCÍ[/// An optional method to call when the form field is reset via /// [FormFieldState.reset].ÀGYÀCÛƒŒÀGYƒ?/// An optional property that forces the [FormFieldState] into an error state /// by directly setting the [FormFieldState.errorText] property without /// running the validator function. /// /// When the [forceErrorText] property is provided, the [FormFieldState.errorText] /// will be set to the provided value, causing the form field to be considered /// invalid and to display the error message specified. /// /// When [validator] is provided, [forceErrorText] will override any error that it /// returns. [validator] will not be called unless [forceErrorText] is null. /// /// See also: /// /// * [InputDecoration.errorText], which is used to display error messages in the text /// field's decoration without effecting the field's state. When [forceErrorText] is /// not null, it will override [InputDecoration.errorText] value.ÀJvÀGnƒÀJv‚Ã/// An optional method that validates an input. Returns an error string to /// display if the input is invalid, or null otherwise. /// /// The returned value is exposed by the [FormFieldState.errorText] property. /// The [TextFormField] uses this to override the [InputDecoration.errorText] /// value. /// /// Alternating between error and normal state can cause the height of the /// [TextFormField] to change if no other subtext decoration is set on the /// field. To create a field whose height is fixed regardless of whether or /// not an error is displayed, either wrap the [TextFormField] in a fixed /// height parent like [SizedBox], or set the [InputDecoration.helperText] /// parameter to a space.ÀKÞÀJ†�dÀKÞ�%/// Function that returns the widget representing the error to display. /// /// It is passed the form field validator error string as input. /// The resulting widget is passed to [InputDecoration.error]. /// /// If null, the validator error string is passed to /// [InputDecoration.errorText].ÀMšÀKñ�µÀMš��/// An optional value to initialize the form field to, or null otherwise. /// /// The `initialValue` affects the form field's state in two cases: /// 1. When the form field is first built, `initialValue` determines the field's initial state. /// 2. When [FormFieldState.reset] is called (either directly or by calling /// [FormFieldState.reset]), the form field is reset to this `initialValue`.ÀNÞÀM­�8ÀNÞ�/// Whether the form is able to receive user input. /// /// Defaults to true. If [autovalidateMode] is not [AutovalidateMode.disabled], /// the field will be auto validated. Likewise, if this field is false, the widget /// will not be validated regardless of [autovalidateMode].ÀQÀNì‚5ÀQ�ì/// Used to enable/disable this form field auto validation and update its /// error text. /// /// {@template flutter.widgets.FormField.autovalidateMode} /// If [AutovalidateMode.onUserInteraction], this FormField will only /// auto-validate after its content changes. If [AutovalidateMode.always], it /// will auto-validate even without user interaction. If /// [AutovalidateMode.disabled], auto-validation will be disabled. /// /// Defaults to [AutovalidateMode.disabled]. /// {@endtemplate}ÀS&ÀQ(‚ ÀS&�Ë/// Restoration ID to save and restore the state of the form field. /// /// Setting the restoration ID to a non-null value results in whether or not /// the form field validation persists. /// /// The state of this widget is persisted in a [RestorationBucket] claimed /// from the surrounding [RestorationScope] using the provided restoration ID. /// /// See also: /// /// * [RestorationManager], which explains how state restoration works in /// Flutter.ÀS:ÀS;ÀS:ÀS:DÀSY¼7¼7—JÀ@ƒÆ/// A single form field. /// /// This widget maintains the current state of the form field, so that updates /// and validation errors are visually reflected in the UI. /// /// When used inside a [Form], you can use methods on [FormState] to query or /// manipulate the form data as a whole. For example, calling [FormState.save] /// will invoke each [FormField]'s [onSaved] callback in turn. /// /// Use a [GlobalKey] with [FormField] if you want to retrieve its current /// state, for example if you want one form field to depend on another. /// /// A [Form] ancestor is not required. The [Form] allows one to /// save, reset, or validate multiple fields at once. To use without a [Form], /// pass a [GlobalKey] to the constructor and use [GlobalKey.currentState] to /// save or reset the form field. /// /// See also: /// /// * [Form], which is the widget that aggregates the form fields. /// * [TextField], which is a commonly used form field for entering text.ÀT!ÀT!ÀT!ÀTlÀTrÀTsÀTcÀT[$ÀTcÀUÀTé'ÀUÀUAÀUOÀUUÀUPÀU*ÀUAÀU*ÀUxÀU�ÀU‚ÀUkÀU[(ÀUkÀUŠÀUŠCÀU½(/// The current value of the form field.ÀUÓÀUÓ�¸ÀWm�x/// The current validation error returned by the [FormField.validator] /// callback, or the manually provided error message using the /// [FormField.forceErrorText] property. /// /// This property is automatically updated when [validate] is called and the /// [FormField.validator] callback is invoked, or If [FormField.forceErrorText] is set /// directly to a non-null value.ÀW‘ÀW‘cÀWÏ1/// True if this field has any validation errors.ÀWúÀWú€ýÀXÅ€µ/// Returns true if the user has modified the value of this field. /// /// This only updates to true once [didChange] has been called and resets to /// false when [reset] is called.ÀXýÀXý�¯ÀZY�4/// True if the current value is valid. /// /// This will not set [errorText] or [hasError] and it will not update /// error display. /// /// See also: /// /// * [validate], which may update [errorText] and [hasError]. /// /// * [FormField.forceErrorText], which also may update [errorText] and [hasError].Àc¼Àc½Àc¼Àc¼?ÀcÕ ÀZ²ÀZ²zÀZýB/// Calls the [FormField]'s onSaved method with the current value.À[2À[2�À[e*/// Resets the field to its initial value.À\QÀ\Q�ÙÀ]Ò�c/// Calls [FormField.validator] to set the [errorText] only if [FormField.forceErrorText] is null. /// When [FormField.forceErrorText] is not null, [FormField.validator] will not be called. /// /// Returns true if there were no errors. /// See also: /// /// * [isValid], which passively gets the validity without setting /// [errorText] or [hasError].À^0À^0�EÀ^5À`òÀ`òÀ`õÀ_{À_{‚À`è�U/// Updates this field's state to the new value. Useful for responding to /// child widget changes, e.g. [Slider]'s [Slider.onChanged] argument. /// /// Triggers the [Form.onChanged] callback and, if [Form.autovalidateMode] is /// [AutovalidateMode.always] or [AutovalidateMode.onUserInteraction], /// revalidates all the fields of the form.Àc‘Àc‘Àc”Àc#Àc$Àa”Àa”‚"Àcˆ�y/// Sets the value associated with this form field. /// /// This method should only be called by subclasses that need to update /// the form field value due to state changes identified during the widget /// build phase, when calling `setState` is prohibited. In all other cases, /// the value should be set by a call to [didChange], which ensures that /// `setState` is called.Àd.Àd.ÀdAÀdLÀdLÀdQÀdÀdÀdÀdÀdÀd€êÀd!ÀdñÀdòÀdÿÀeÀdñÀdñ{ÀeÀerÀesÀe€Àe�ÀerÀer€†Àe’Àf.Àf.Àf;ÀeþÀeÿÀf Àf ÀeþÀeþ€ëÀfÀfïÀfðÀfýÀfþÀfïÀfï‚”ÀgÀi‰ÀiŠÀi‰Ài‰€“Ài›ÀjJÀjJÀjWÀj"Àj#Àj0Àj1Àj"Àj"…�ÀjDÀS…ÀS…œ/ÀT€„/// The current state of a [FormField]. Passed to the [FormFieldBuilder] method /// for use in constructing the form field's widget.Àp!Àp!.ÀpG"/// No auto validation will occur.ÀpVÀpVYÀp©O/// Used to auto-validate [Form] and [FormField] even without user interaction.Àp¶Àp¶nÀqV/// Used to auto-validate [Form] and [FormField] only after each user /// interaction.Àq+Àq+€òÀr€Ù/// Used to auto-validate [Form] and [FormField] only after the field has /// lost focus. /// /// In order to validate all fields of a [Form] after the first time the user interacts /// with one, use [always] instead.Àr$Àr$�9ÀsE�/// Used to auto-validate [Form] and [FormField] after each user /// interaction, only if the the field already has an error. /// /// This is useful for reducing unnecessary validation calls while /// still ensuring errors are re-checked when the user attempts to fix them.Ào¸Ào¸ƒ©Àp L/// Used to configure the auto validation of [FormField] and [Form] widgets.ƒŒƒ”ƒŸƒœƒ•ƒžƒkƒ\Dƒk¹‰¹‰¹‰¸»¸»€î¹v€¬/// Signature for validating a form field. /// /// Returns an error string to display if the input is invalid, or null /// otherwise. /// /// Used by [FormField.validator].¹­¹­�*º‡€Ë/// Signature for a callback that builds an error widget. /// /// See also: /// /// * [FormField.errorBuilder], which is of this type, and passes the result error /// given by [TextFormField.validator].»]»]»]ºÛºÛ€¢»Mf/// Signature for being notified when a form field changes value. /// /// Used by [FormField.onSaved].¼¼¼»�»�€²»ôg/// Signature for building the widget representing the form field. /// /// Used by [FormField.builder].€²package:flutter/material.dart€ãpackage:flutter/services.dartƒV=€ˆ€§€©€Ú� ���-�@�B�m�—�™�¯�Ç�å‚‚‚7‚Q‚k‚‡‚®‚łڂù‚ûƒ\ƒ£ƒ¥ƒ¾ƒÝƒß„,„M„R„¢„ï…7…ˆ…׆††,†x†Ì†ü‡‡Q‡V‡—‡¨‡­‡¼‡ÁˆˆTˆ´ˆÙ‰‰‰%‰?‰Q‰c‰‘‰Ï‰Ö‰îŠŠ"Š^ЛТзŠÌŠõ‹?‹O‹‘‹Õ‹à‹ðŒMŒ�Œ¨ŒªŒù�)�0�T�[�j�š�¯�º�ÁŽŽ5Ž<ŽMŽTޢ޾Žó�L�k�p�r�Á�×�Þ�� ��B�V�a�h�¹�Þ�å‘6‘H‘O‘`‘g‘¸‘Û’ ’>’O’o’Œ’ä“8“Ž“Ú“ÿ””$”-”A”L”d”i”k”œ”£”ì”ó•%•<•>•�•®•µ––!–(–9–@–Ž–¥–µ–ï—*—/—T—V—†—�—¤—õ˜;˜B˜…˜˜˜Ÿ˜°˜·™™<™‡™ž™ ™á™ñššYš^š‰š‹šÌšÓšê›;›�›ˆ›Ë›Þ›å›ö›ýœGœrœÍ���J�Q�£�¸�Ú�Üž-ž:žAž|ž¨žªžáŸ Ÿ<ŸKŸRŸsŸxŸzŸ‡Ÿ²ŸµŸ·ŸãŸè 7 w | £ Ê â¡¡U¡W¡£¡ã¡ÿ¢¢ ¢I¢•¢�¢Ÿ¢µ¢º¢¼¢Ö¢é¢ÿ££ ££B£[£`£b£—£³£¸£º£È£Õ£ý¤X¤Z¤‚¤§¤Í¤ý¥"¥J¥U¥Œ¥½¥å¥ð¦¦?¦O¦V¦X¦p¦Ô¦õ§§V§±§»§É§å¨ ¨f¨p¨w¨Ž¨¦¨Ç¨è¨ü©© © ©O©`©œ©±©¸©½©¿ªª0ª7ªlªsªÇ«««R«h«o«’«ª«¯«±«ý¬)¬0¬d¬k¬|¬Ê­­­;­Q­z­­�­Í®®%®i®p®¤®«®¼¯¯/¯f¯ž¯À¯Ö°°"°'°)°~°™°µ±±±M±…±‡±à²²9²Š²¯²à²ë³"³G³R³[³b³d³²³ú´4´H´k´´´ä´ùµµ5µlµ|µ‹µ—µ§µÓµäµý¶¶K¶W¶`¶g¶i¶€¶…¶ˆ¶Š¶¶··8·Y·[·z·|·Ë·ç¸¸¸2¸Y¸[¸h¸¶¸¹¸»¸ç¸ì¹5¹E¹J¹n¹«¹­¹è¹í¹üººVººÙºÛ»»#»E»»�»Å»Ê»ì¼5¼7¼Q¼V¼¦¼ã¼è½7½‡½Ç½Ì¾¾a¾f¾§¾÷¿F¿i¿n¿}¿‚¿ÇÀ@À@@À@dÀ@yÀ@‰À@¥À@¸À@ËÀ@åÀ@úÀAÀA*ÀADÀAmÀA†ÀAÐÀAÒÀBÀBÀBoÀBšÀBÀÀBÂÀCÀC-ÀCSÀCUÀC˜ÀC·ÀC×ÀCÙÀD*ÀDuÀDœÀD£ÀDùÀEKÀE†ÀE�ÀEãÀF3ÀF:ÀFKÀFRÀF¬ÀGÀGIÀGjÀGlÀGºÀGõÀGüÀHMÀHžÀH¬ÀH³ÀIÀIOÀIžÀIìÀJ:ÀJWÀJ‚ÀJ„ÀJÏÀJÖÀKÀK\ÀKcÀK›ÀK¿ÀKíÀKïÀL<ÀLCÀLŠÀLíÀM<ÀM�ÀM©ÀM«ÀMâÀMéÀN<ÀN’ÀNÑÀNèÀNêÀO7ÀOJÀOQÀO�ÀOØÀP)ÀPeÀP«ÀP²ÀPâÀPøÀQ$ÀQ&ÀQmÀQtÀQÄÀQïÀQöÀRDÀR–ÀR�ÀR®ÀRµÀSÀSÀS6ÀS8ÀSEÀS€ÀSƒÀS…ÀSÖÀT ÀTYÀT‚ÀT´ÀTçÀUÀUYÀU†ÀUˆÀU´ÀUÏÀUÑÀVÀV]ÀV‰ÀV�ÀVàÀW:ÀW_ÀW�ÀW�ÀWÄÀWöÀWøÀX>ÀXEÀX•ÀXºÀXùÀXûÀY&ÀY-ÀYwÀY�ÀY”ÀY¥ÀY¬ÀYïÀYöÀZNÀZ®ÀZ°ÀZöÀ[À[)À[.À[0À[^À[pÀ[ƒÀ[¨À[ÓÀ[óÀ[üÀ\À\HÀ\MÀ\OÀ\µÀ]À]À]GÀ]XÀ]_À]¦À]ËÀ]àÀ]óÀ^À^À^'À^,À^.À^DÀ^nÀ^ŸÀ^ÍÀ^ÜÀ^ãÀ_À_=À_KÀ_kÀ_rÀ_wÀ_yÀ_ÆÀ`À`À`hÀ`²À`áÀ`ÿÀaÀa)ÀaSÀa\Àa‹Àa�Àa’ÀaÉÀaÐÀbÀbiÀb¸ÀcÀc!Àc/Àc�ÀcžÀc³Àc¸ÀcºÀcÇÀcýÀcÿÀd ÀdÀddÀd›ÀdèÀdíÀdïÀdýÀe Àe!ÀePÀeiÀenÀepÀe~Àe‹Àe¡Àe¹ÀeõÀeúÀeüÀf ÀfÀfIÀfpÀf®ÀfßÀfæÀfëÀfíÀfûÀgÀg*ÀgNÀg�Àg²ÀgîÀh4ÀhnÀh‡Àh”Àh¡ÀhÉÀhùÀi0ÀiWÀiiÀiyÀi€Ài…Ài‡Ài”Ài¨ÀiÃÀiÞÀjÀjÀjÀj Àj.Àj;ÀjcÀj~Àj¨ÀjÏÀjçÀkÀkFÀk`ÀkmÀk¦ÀkßÀkùÀlÀl0ÀlYÀlkÀltÀl{Àl}ÀlªÀl¬ÀlÑÀlóÀm"ÀmPÀmtÀm|Àm~Àm×ÀnÀn\ÀnqÀn’Àn°Àn×ÀnðÀo Ào'Ào8ÀoEÀoQÀoqÀoˆÀo’Ào™Ào›Ào®Ào³Ào¶Ào¸ÀpÀpÀpEÀpRÀpTÀp§Àp²Àp´ÀpýÀqÀq'Àq)ÀqvÀq‰Àq�ÀqëÀrÀr Àr"ÀrfÀr¦Àr­ÀróÀsCÀs`Àsc_kIOSAnnouncementDelayDurationForm FormState _FormScope FormFieldFormFieldStateAutovalidateMode*flutter.widgets.FormField.autovalidateMode�)If [AutovalidateMode.onUserInteraction], this FormField will only auto-validate after its content changes. If [AutovalidateMode.always], it will auto-validate even without user interaction. If [AutovalidateMode.disabled], auto-validation will be disabled. Defaults to [AutovalidateMode.disabled].Ùì