From c6b4deda5946896ec9b34612bf19334b358eca15 Mon Sep 17 00:00:00 2001 From: Aaron McTavish Date: Wed, 4 Apr 2018 09:42:42 +0100 Subject: [PATCH] Update documentation for v3.1.0 --- docs/Classes.html | 4 +- docs/Classes/ValidatorTextField.html | 26 +++--- docs/Classes/ValidatorTextView.html | 26 +++--- docs/Enums.html | 4 +- docs/Enums/PasswordStrength.html | 4 +- docs/Enums/PostcodeCountries.html | 12 +-- docs/Protocols.html | 4 +- docs/Protocols/Condition.html | 23 +++-- docs/Protocols/ConfigurableCondition.html | 39 ++++++-- docs/Protocols/ConfigurableValidator.html | 33 ++++++- docs/Protocols/Configuration.html | 4 +- docs/Protocols/Form.html | 17 ++-- docs/Protocols/Validatable.html | 12 +-- docs/Protocols/Validator.html | 8 +- docs/Protocols/ValidatorControl.html | 29 +++--- docs/Protocols/ValidatorControlDelegate.html | 4 +- docs/Structs.html | 4 +- docs/Structs/AlphabeticCondition.html | 20 ++--- docs/Structs/AlphabeticConfiguration.html | 12 +-- docs/Structs/AlphabeticValidator.html | 8 +- docs/Structs/AlphanumericCondition.html | 20 ++--- docs/Structs/AlphanumericConfiguration.html | 12 +-- docs/Structs/AlphanumericValidator.html | 8 +- docs/Structs/AndCondition.html | 20 ++--- docs/Structs/CompositeValidator.html | 12 +-- docs/Structs/ControlForm.html | 8 +- docs/Structs/CreditCardCondition.html | 20 ++--- docs/Structs/CreditCardConfiguration.html | 8 +- docs/Structs/CreditCardType.html | 56 ++++++------ docs/Structs/CreditCardValidator.html | 8 +- docs/Structs/EmailCondition.html | 16 ++-- docs/Structs/EmailValidator.html | 8 +- docs/Structs/FormEntry.html | 16 ++-- docs/Structs/NotCondition.html | 20 ++--- docs/Structs/NumericCondition.html | 20 ++--- docs/Structs/NumericConfiguration.html | 12 +-- docs/Structs/NumericValidator.html | 8 +- docs/Structs/OrCondition.html | 20 ++--- docs/Structs/PasswordStrengthCondition.html | 20 ++--- .../PasswordStrengthConfiguration.html | 8 +- docs/Structs/PasswordStrengthValidator.html | 8 +- docs/Structs/PostcodeCondition.html | 20 ++--- docs/Structs/PostcodeConfiguration.html | 8 +- docs/Structs/PostcodeValidator.html | 8 +- docs/Structs/PresentCondition.html | 16 ++-- docs/Structs/PresentValidator.html | 8 +- docs/Structs/RangeCondition.html | 20 ++--- docs/Structs/RangeConfiguration.html | 8 +- docs/Structs/RangeValidator.html | 8 +- docs/Structs/URLCondition.html | 16 ++-- docs/Structs/URLShorthandCondition.html | 16 ++-- docs/Structs/URLShorthandValidator.html | 8 +- docs/Structs/URLValidator.html | 8 +- docs/badge.svg | 4 +- .../Contents/Resources/Documents/Classes.html | 4 +- .../Documents/Classes/ValidatorTextField.html | 26 +++--- .../Documents/Classes/ValidatorTextView.html | 26 +++--- .../Contents/Resources/Documents/Enums.html | 4 +- .../Documents/Enums/PasswordStrength.html | 4 +- .../Documents/Enums/PostcodeCountries.html | 12 +-- .../Resources/Documents/Protocols.html | 4 +- .../Documents/Protocols/Condition.html | 23 +++-- .../Protocols/ConfigurableCondition.html | 39 ++++++-- .../Protocols/ConfigurableValidator.html | 33 ++++++- .../Documents/Protocols/Configuration.html | 4 +- .../Resources/Documents/Protocols/Form.html | 17 ++-- .../Documents/Protocols/Validatable.html | 12 +-- .../Documents/Protocols/Validator.html | 8 +- .../Documents/Protocols/ValidatorControl.html | 29 +++--- .../Protocols/ValidatorControlDelegate.html | 4 +- .../Contents/Resources/Documents/Structs.html | 4 +- .../Structs/AlphabeticCondition.html | 20 ++--- .../Structs/AlphabeticConfiguration.html | 12 +-- .../Structs/AlphabeticValidator.html | 8 +- .../Structs/AlphanumericCondition.html | 20 ++--- .../Structs/AlphanumericConfiguration.html | 12 +-- .../Structs/AlphanumericValidator.html | 8 +- .../Documents/Structs/AndCondition.html | 20 ++--- .../Documents/Structs/CompositeValidator.html | 12 +-- .../Documents/Structs/ControlForm.html | 8 +- .../Structs/CreditCardCondition.html | 20 ++--- .../Structs/CreditCardConfiguration.html | 8 +- .../Documents/Structs/CreditCardType.html | 56 ++++++------ .../Structs/CreditCardValidator.html | 8 +- .../Documents/Structs/EmailCondition.html | 16 ++-- .../Documents/Structs/EmailValidator.html | 8 +- .../Documents/Structs/FormEntry.html | 16 ++-- .../Documents/Structs/NotCondition.html | 20 ++--- .../Documents/Structs/NumericCondition.html | 20 ++--- .../Structs/NumericConfiguration.html | 12 +-- .../Documents/Structs/NumericValidator.html | 8 +- .../Documents/Structs/OrCondition.html | 20 ++--- .../Structs/PasswordStrengthCondition.html | 20 ++--- .../PasswordStrengthConfiguration.html | 8 +- .../Structs/PasswordStrengthValidator.html | 8 +- .../Documents/Structs/PostcodeCondition.html | 20 ++--- .../Structs/PostcodeConfiguration.html | 8 +- .../Documents/Structs/PostcodeValidator.html | 8 +- .../Documents/Structs/PresentCondition.html | 16 ++-- .../Documents/Structs/PresentValidator.html | 8 +- .../Documents/Structs/RangeCondition.html | 20 ++--- .../Documents/Structs/RangeConfiguration.html | 8 +- .../Documents/Structs/RangeValidator.html | 8 +- .../Documents/Structs/URLCondition.html | 16 ++-- .../Structs/URLShorthandCondition.html | 16 ++-- .../Structs/URLShorthandValidator.html | 8 +- .../Documents/Structs/URLValidator.html | 8 +- .../Contents/Resources/Documents/badge.svg | 29 +++++- .../Contents/Resources/Documents/index.html | 37 +++++--- .../Contents/Resources/Documents/search.json | 2 +- .../Resources/Documents/undocumented.json | 85 +++++++++++++++--- .../Contents/Resources/docSet.dsidx | Bin 77824 -> 77824 bytes docs/docsets/FormValidatorSwift.tgz | Bin 123329 -> 123675 bytes docs/index.html | 37 +++++--- docs/search.json | 2 +- docs/undocumented.json | 31 +++---- 116 files changed, 986 insertions(+), 771 deletions(-) diff --git a/docs/Classes.html b/docs/Classes.html index 6e4c79b..0007ba6 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -22,7 +22,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

@@ -300,7 +300,7 @@

Declaration

diff --git a/docs/Classes/ValidatorTextField.html b/docs/Classes/ValidatorTextField.html index 1e98bec..b1f4dcb 100644 --- a/docs/Classes/ValidatorTextField.html +++ b/docs/Classes/ValidatorTextField.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

@@ -249,9 +249,9 @@

Properties

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -276,9 +276,9 @@

    Declaration

  • - + - validateOnFocusLossOnly + validateOnFocusLossOnly
    @@ -303,9 +303,9 @@

    Declaration

  • - + - validator + validator
    @@ -330,9 +330,9 @@

    Declaration

  • - + - validatorDelegate + validatorDelegate
    @@ -362,9 +362,9 @@

    Declaration

  • - + - validatableText + validatableText
    @@ -502,7 +502,7 @@

    Custom Setters

    -

    Sets the validatorDelegate for the text field. This allows custom responses to both UITextFieldDelegate callbacks as well as those from ValidatorControlDelegate.

    +

    Sets the validatorDelegate for the text field. This allows custom responses to both UITextFieldDelegate callbacks as well as those from ValidatorControlDelegate.

    @@ -608,7 +608,7 @@

    Declaration

    diff --git a/docs/Classes/ValidatorTextView.html b/docs/Classes/ValidatorTextView.html index e85dc1f..3288008 100644 --- a/docs/Classes/ValidatorTextView.html +++ b/docs/Classes/ValidatorTextView.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -276,9 +276,9 @@

    Declaration

  • @@ -303,9 +303,9 @@

    Declaration

  • @@ -330,9 +330,9 @@

    Declaration

  • @@ -362,9 +362,9 @@

    Declaration

  • @@ -529,7 +529,7 @@

    Custom Setters

    -

    Sets the validatorDelegate for the text view. This allows custom responses to both UITextViewDelegate callbacks as well as those from ValidatorControlDelegate.

    +

    Sets the validatorDelegate for the text view. This allows custom responses to both UITextViewDelegate callbacks as well as those from ValidatorControlDelegate.

    @@ -635,7 +635,7 @@

    Declaration

    diff --git a/docs/Enums.html b/docs/Enums.html index 0096103..44267fc 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -22,7 +22,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -300,7 +300,7 @@

    Declaration

    diff --git a/docs/Enums/PasswordStrength.html b/docs/Enums/PasswordStrength.html index 86c1ebd..a4cdab5 100644 --- a/docs/Enums/PasswordStrength.html +++ b/docs/Enums/PasswordStrength.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -382,7 +382,7 @@

    Declaration

  • diff --git a/docs/Enums/PostcodeCountries.html b/docs/Enums/PostcodeCountries.html index a0d0110..866f707 100644 --- a/docs/Enums/PostcodeCountries.html +++ b/docs/Enums/PostcodeCountries.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -366,9 +366,9 @@

    Declaration

  • - + - regex + regex
    @@ -393,9 +393,9 @@

    Declaration

  • - + - allValues + allValues
    @@ -425,7 +425,7 @@

    Declaration

    diff --git a/docs/Protocols.html b/docs/Protocols.html index b22220a..03374ae 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -22,7 +22,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -531,7 +531,7 @@

    Declaration

    diff --git a/docs/Protocols/Condition.html b/docs/Protocols/Condition.html index 91087d7..234babf 100644 --- a/docs/Protocols/Condition.html +++ b/docs/Protocols/Condition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -251,9 +251,9 @@

    Condition

  • - + - localizedViolationString + localizedViolationString
    @@ -278,9 +278,9 @@

    Declaration

  • - + - regex + regex
    @@ -305,9 +305,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -425,9 +425,9 @@

    Return Value

  • - + - description + description Extension method @@ -438,8 +438,7 @@

    Return Value

    -

    Undocumented

    - +

    Declaration

    @@ -460,7 +459,7 @@

    Declaration

    diff --git a/docs/Protocols/ConfigurableCondition.html b/docs/Protocols/ConfigurableCondition.html index 6a8719d..ae16652 100644 --- a/docs/Protocols/ConfigurableCondition.html +++ b/docs/Protocols/ConfigurableCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -242,9 +242,36 @@

    ConfigurableCondition

  • - + + + ConfigurationType + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    associatedtype ConfigurationType: Configuration
    + +
    +
    +
    +
    +
  • +
  • +
    @@ -259,7 +286,7 @@

    ConfigurableCondition

    Declaration

    Swift

    -
    var configuration: ConfigurationType
    +
    var configuration: ConfigurationType
    @@ -286,7 +313,7 @@

    Declaration

    Declaration

    Swift

    -
    init(configuration: ConfigurationType)
    +
    init(configuration: ConfigurationType)
  • @@ -353,7 +380,7 @@

    Declaration

    diff --git a/docs/Protocols/ConfigurableValidator.html b/docs/Protocols/ConfigurableValidator.html index 33850ab..824e467 100644 --- a/docs/Protocols/ConfigurableValidator.html +++ b/docs/Protocols/ConfigurableValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -239,6 +239,33 @@

    ConfigurableValidator

      +
    • +
      + + + + ConfigurationType + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      associatedtype ConfigurationType: Configuration
      + +
      +
      +
      +
      +
    • @@ -259,7 +286,7 @@

      ConfigurableValidator

      Declaration

      Swift

      -
      init(configuration: ConfigurationType)
      +
      init(configuration: ConfigurationType)
      @@ -326,7 +353,7 @@

      Declaration

    diff --git a/docs/Protocols/Configuration.html b/docs/Protocols/Configuration.html index 3705f62..542742b 100644 --- a/docs/Protocols/Configuration.html +++ b/docs/Protocols/Configuration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -274,7 +274,7 @@

    Declaration

    diff --git a/docs/Protocols/Form.html b/docs/Protocols/Form.html index 7aba9f6..1d11ce8 100644 --- a/docs/Protocols/Form.html +++ b/docs/Protocols/Form.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - entries + entries
    @@ -276,9 +276,9 @@

    Declaration

  • - + - isValid + isValid Default implementation @@ -294,8 +294,7 @@

    Declaration

    Default Implementation

    -

    Undocumented

    - +

    Declaration

    @@ -572,7 +571,7 @@

    Check

    -

    Checks the text from each entry in entries.

    +

    Checks the text from each entry in entries.

    Default Implementation

    @@ -602,7 +601,7 @@

    Return Value

    diff --git a/docs/Protocols/Validatable.html b/docs/Protocols/Validatable.html index c2efe58..4651059 100644 --- a/docs/Protocols/Validatable.html +++ b/docs/Protocols/Validatable.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -242,9 +242,9 @@

    Validatable

  • - + - validatableText + validatableText
    @@ -269,9 +269,9 @@

    Declaration

  • - + - validator + validator
    @@ -301,7 +301,7 @@

    Declaration

    diff --git a/docs/Protocols/Validator.html b/docs/Protocols/Validator.html index 97bfa85..78019a8 100644 --- a/docs/Protocols/Validator.html +++ b/docs/Protocols/Validator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -271,9 +271,9 @@

    Declaration

  • - + - conditions + conditions
    @@ -413,7 +413,7 @@

    Parameters

    diff --git a/docs/Protocols/ValidatorControl.html b/docs/Protocols/ValidatorControl.html index 64c9079..d45132e 100644 --- a/docs/Protocols/ValidatorControl.html +++ b/docs/Protocols/ValidatorControl.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -242,9 +242,9 @@

    ValidatorControl

  • - + - isValid + isValid Default implementation @@ -277,9 +277,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -304,9 +304,9 @@

    Declaration

  • - + - validateOnFocusLossOnly + validateOnFocusLossOnly
    @@ -331,9 +331,9 @@

    Declaration

  • - + - validatorDelegate + validatorDelegate
    @@ -341,14 +341,19 @@

    Declaration

    -

    Undocumented

    +

    Delegate for the ValidatorControl.

    +
    +

    Note

    + We recommend you specify your implementation as weak. + +

    Declaration

    Swift

    -
    weak var validatorDelegate: ValidatorControlDelegate?
    +
    var validatorDelegate: ValidatorControlDelegate?
    @@ -363,7 +368,7 @@

    Declaration

    diff --git a/docs/Protocols/ValidatorControlDelegate.html b/docs/Protocols/ValidatorControlDelegate.html index 479a3d9..e16522e 100644 --- a/docs/Protocols/ValidatorControlDelegate.html +++ b/docs/Protocols/ValidatorControlDelegate.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -328,7 +328,7 @@

    Declaration

    diff --git a/docs/Structs.html b/docs/Structs.html index b1969de..e2254a1 100644 --- a/docs/Structs.html +++ b/docs/Structs.html @@ -22,7 +22,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -1459,7 +1459,7 @@

    Declaration

    diff --git a/docs/Structs/AlphabeticCondition.html b/docs/Structs/AlphabeticCondition.html index a8ab61b..baa0364 100644 --- a/docs/Structs/AlphabeticCondition.html +++ b/docs/Structs/AlphabeticCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - localizedViolationString + localizedViolationString
    @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -327,9 +327,9 @@

    Declaration

  • - + - configuration + configuration
    @@ -432,7 +432,7 @@

    Declaration

    diff --git a/docs/Structs/AlphabeticConfiguration.html b/docs/Structs/AlphabeticConfiguration.html index 4236903..c33053f 100644 --- a/docs/Structs/AlphabeticConfiguration.html +++ b/docs/Structs/AlphabeticConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - allowsUnicode + allowsUnicode
    @@ -276,9 +276,9 @@

    Declaration

  • - + - allowsWhitespace + allowsWhitespace
    @@ -372,7 +372,7 @@

    Declaration

    diff --git a/docs/Structs/AlphabeticValidator.html b/docs/Structs/AlphabeticValidator.html index 214e297..451f326 100644 --- a/docs/Structs/AlphabeticValidator.html +++ b/docs/Structs/AlphabeticValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • - + - conditions + conditions
    @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/Structs/AlphanumericCondition.html b/docs/Structs/AlphanumericCondition.html index 9f26d32..b02a999 100644 --- a/docs/Structs/AlphanumericCondition.html +++ b/docs/Structs/AlphanumericCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - localizedViolationString + localizedViolationString
    @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -327,9 +327,9 @@

    Declaration

  • - + - configuration + configuration
    @@ -432,7 +432,7 @@

    Declaration

    diff --git a/docs/Structs/AlphanumericConfiguration.html b/docs/Structs/AlphanumericConfiguration.html index 0ddf49d..5491006 100644 --- a/docs/Structs/AlphanumericConfiguration.html +++ b/docs/Structs/AlphanumericConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - allowsUnicode + allowsUnicode
    @@ -276,9 +276,9 @@

    Declaration

  • - + - allowsWhitespace + allowsWhitespace
    @@ -372,7 +372,7 @@

    Declaration

    diff --git a/docs/Structs/AlphanumericValidator.html b/docs/Structs/AlphanumericValidator.html index 59719a3..c0e8133 100644 --- a/docs/Structs/AlphanumericValidator.html +++ b/docs/Structs/AlphanumericValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • - + - conditions + conditions
    @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/Structs/AndCondition.html b/docs/Structs/AndCondition.html index b493db9..a99c8d2 100644 --- a/docs/Structs/AndCondition.html +++ b/docs/Structs/AndCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - localizedViolationString + localizedViolationString
    @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -327,9 +327,9 @@

    Declaration

  • - + - conditions + conditions
    @@ -460,7 +460,7 @@

    Declaration

    diff --git a/docs/Structs/CompositeValidator.html b/docs/Structs/CompositeValidator.html index c1886ea..0f07599 100644 --- a/docs/Structs/CompositeValidator.html +++ b/docs/Structs/CompositeValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - conditions + conditions
    @@ -275,9 +275,9 @@

    Declaration

  • - + - validators + validators
    @@ -390,7 +390,7 @@

    Parameters

    diff --git a/docs/Structs/ControlForm.html b/docs/Structs/ControlForm.html index 1d5666b..45e4507 100644 --- a/docs/Structs/ControlForm.html +++ b/docs/Structs/ControlForm.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -242,9 +242,9 @@

    ControlForm

  • - + - entries + entries
    @@ -299,7 +299,7 @@

    Declaration

    diff --git a/docs/Structs/CreditCardCondition.html b/docs/Structs/CreditCardCondition.html index e8119b3..8760a9b 100644 --- a/docs/Structs/CreditCardCondition.html +++ b/docs/Structs/CreditCardCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - localizedViolationString + localizedViolationString
    @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -327,9 +327,9 @@

    Declaration

  • - + - configuration + configuration
    @@ -460,7 +460,7 @@

    Declaration

    diff --git a/docs/Structs/CreditCardConfiguration.html b/docs/Structs/CreditCardConfiguration.html index bd7abf2..7028491 100644 --- a/docs/Structs/CreditCardConfiguration.html +++ b/docs/Structs/CreditCardConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - cardType + cardType
    @@ -345,7 +345,7 @@

    Declaration

    diff --git a/docs/Structs/CreditCardType.html b/docs/Structs/CreditCardType.html index 0b79997..d78c94b 100644 --- a/docs/Structs/CreditCardType.html +++ b/docs/Structs/CreditCardType.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -242,9 +242,9 @@

    CreditCardType

  • - + - rawValue + rawValue
    @@ -294,9 +294,9 @@

    Declaration

  • - + - americanExpress + americanExpress
    @@ -321,9 +321,9 @@

    Declaration

  • - + - dinersClub + dinersClub
    @@ -348,9 +348,9 @@

    Declaration

  • - + - discover + discover
    @@ -375,9 +375,9 @@

    Declaration

  • - + - jcb + jcb
    @@ -402,9 +402,9 @@

    Declaration

  • - + - maestro + maestro
    @@ -429,9 +429,9 @@

    Declaration

  • - + - mastercard + mastercard
    @@ -456,9 +456,9 @@

    Declaration

  • - + - visa + visa
    @@ -483,9 +483,9 @@

    Declaration

  • - + - all + all
    @@ -500,7 +500,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let all: CreditCardType = [.americanExpress, .dinersClub, .discover, .jcb, .maestro, .mastercard, .visa]
    +
    public static let all: CreditCardType = [.americanExpress, .dinersClub, .discover, .jcb, .maestro, .mastercard, .visa]
    @@ -510,9 +510,9 @@

    Declaration

  • - + - allArray + allArray
    @@ -527,7 +527,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let allArray: [CreditCardType] = [.americanExpress, .dinersClub, .discover, .jcb, .maestro, .mastercard, .visa]
    +
    public static let allArray: [CreditCardType] = [.americanExpress, .dinersClub, .discover, .jcb, .maestro, .mastercard, .visa]
    @@ -537,9 +537,9 @@

    Declaration

  • - + - description + description
    @@ -564,9 +564,9 @@

    Declaration

  • - + - regex + regex
    @@ -596,7 +596,7 @@

    Declaration

    diff --git a/docs/Structs/CreditCardValidator.html b/docs/Structs/CreditCardValidator.html index 7a29c01..40acb8a 100644 --- a/docs/Structs/CreditCardValidator.html +++ b/docs/Structs/CreditCardValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • - + - conditions + conditions
    @@ -360,7 +360,7 @@

    Declaration

    diff --git a/docs/Structs/EmailCondition.html b/docs/Structs/EmailCondition.html index fc09cb6..881036c 100644 --- a/docs/Structs/EmailCondition.html +++ b/docs/Structs/EmailCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - localizedViolationString + localizedViolationString
    @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -369,7 +369,7 @@

    Declaration

    diff --git a/docs/Structs/EmailValidator.html b/docs/Structs/EmailValidator.html index 96ed30e..a4c0f81 100644 --- a/docs/Structs/EmailValidator.html +++ b/docs/Structs/EmailValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • - + - conditions + conditions
    @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/Structs/FormEntry.html b/docs/Structs/FormEntry.html index 43657b4..6ff762e 100644 --- a/docs/Structs/FormEntry.html +++ b/docs/Structs/FormEntry.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - validatable + validatable
    @@ -276,9 +276,9 @@

    Declaration

  • - + - validator + validator
    @@ -286,7 +286,7 @@

    Declaration

    -

    A Validator to use to validate text from validatable.

    +

    A Validator to use to validate text from validatable.

    @@ -324,7 +324,7 @@

    Check

    -

    Checks the text from validatable using validator from FormEntry (NOT the validator from validatable).

    +

    Checks the text from validatable using validator from FormEntry (NOT the validator from validatable).

    @@ -350,7 +350,7 @@

    Return Value

    diff --git a/docs/Structs/NotCondition.html b/docs/Structs/NotCondition.html index 3719c4b..41f22cd 100644 --- a/docs/Structs/NotCondition.html +++ b/docs/Structs/NotCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -327,9 +327,9 @@

    Declaration

  • @@ -460,7 +460,7 @@

    Declaration

    diff --git a/docs/Structs/NumericCondition.html b/docs/Structs/NumericCondition.html index 708bc3e..03a8915 100644 --- a/docs/Structs/NumericCondition.html +++ b/docs/Structs/NumericCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -327,9 +327,9 @@

    Declaration

  • @@ -432,7 +432,7 @@

    Declaration

    diff --git a/docs/Structs/NumericConfiguration.html b/docs/Structs/NumericConfiguration.html index f6231b5..2c02c70 100644 --- a/docs/Structs/NumericConfiguration.html +++ b/docs/Structs/NumericConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -276,9 +276,9 @@

    Declaration

  • @@ -372,7 +372,7 @@

    Declaration

    diff --git a/docs/Structs/NumericValidator.html b/docs/Structs/NumericValidator.html index d838d3d..b639c43 100644 --- a/docs/Structs/NumericValidator.html +++ b/docs/Structs/NumericValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/Structs/OrCondition.html b/docs/Structs/OrCondition.html index cd830de..080497d 100644 --- a/docs/Structs/OrCondition.html +++ b/docs/Structs/OrCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -327,9 +327,9 @@

    Declaration

  • @@ -460,7 +460,7 @@

    Declaration

    diff --git a/docs/Structs/PasswordStrengthCondition.html b/docs/Structs/PasswordStrengthCondition.html index 91b3fbf..556556a 100644 --- a/docs/Structs/PasswordStrengthCondition.html +++ b/docs/Structs/PasswordStrengthCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -259,9 +259,9 @@

    Properties

  • @@ -285,9 +285,9 @@

    Declaration

  • - + - regex + regex
    @@ -311,9 +311,9 @@

    Declaration

  • @@ -337,9 +337,9 @@

    Declaration

  • @@ -442,7 +442,7 @@

    Declaration

    diff --git a/docs/Structs/PasswordStrengthConfiguration.html b/docs/Structs/PasswordStrengthConfiguration.html index 688c060..ccb6742 100644 --- a/docs/Structs/PasswordStrengthConfiguration.html +++ b/docs/Structs/PasswordStrengthConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -364,7 +364,7 @@

    Parameters

    diff --git a/docs/Structs/PasswordStrengthValidator.html b/docs/Structs/PasswordStrengthValidator.html index df755ea..388183e 100644 --- a/docs/Structs/PasswordStrengthValidator.html +++ b/docs/Structs/PasswordStrengthValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/Structs/PostcodeCondition.html b/docs/Structs/PostcodeCondition.html index 89a72f6..113ba67 100644 --- a/docs/Structs/PostcodeCondition.html +++ b/docs/Structs/PostcodeCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -327,9 +327,9 @@

    Declaration

  • @@ -395,7 +395,7 @@

    Declaration

    diff --git a/docs/Structs/PostcodeConfiguration.html b/docs/Structs/PostcodeConfiguration.html index d7a196f..c60f2ba 100644 --- a/docs/Structs/PostcodeConfiguration.html +++ b/docs/Structs/PostcodeConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - country + country
    @@ -345,7 +345,7 @@

    Declaration

    diff --git a/docs/Structs/PostcodeValidator.html b/docs/Structs/PostcodeValidator.html index 8912865..5845d99 100644 --- a/docs/Structs/PostcodeValidator.html +++ b/docs/Structs/PostcodeValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/Structs/PresentCondition.html b/docs/Structs/PresentCondition.html index 767b517..9b18cdd 100644 --- a/docs/Structs/PresentCondition.html +++ b/docs/Structs/PresentCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -406,7 +406,7 @@

    Declaration

    diff --git a/docs/Structs/PresentValidator.html b/docs/Structs/PresentValidator.html index 10f45b3..33956b5 100644 --- a/docs/Structs/PresentValidator.html +++ b/docs/Structs/PresentValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/Structs/RangeCondition.html b/docs/Structs/RangeCondition.html index 56acc1c..fdffdd1 100644 --- a/docs/Structs/RangeCondition.html +++ b/docs/Structs/RangeCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -327,9 +327,9 @@

    Declaration

  • @@ -432,7 +432,7 @@

    Declaration

    diff --git a/docs/Structs/RangeConfiguration.html b/docs/Structs/RangeConfiguration.html index 8c1b4b7..559846b 100644 --- a/docs/Structs/RangeConfiguration.html +++ b/docs/Structs/RangeConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - range + range
    @@ -346,7 +346,7 @@

    Declaration

    diff --git a/docs/Structs/RangeValidator.html b/docs/Structs/RangeValidator.html index 625107f..31e541b 100644 --- a/docs/Structs/RangeValidator.html +++ b/docs/Structs/RangeValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/Structs/URLCondition.html b/docs/Structs/URLCondition.html index 6d444ff..07ddc51 100644 --- a/docs/Structs/URLCondition.html +++ b/docs/Structs/URLCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -280,9 +280,9 @@

    Declaration

  • - + - regex + regex
    @@ -306,9 +306,9 @@

    Declaration

  • @@ -374,7 +374,7 @@

    Declaration

    diff --git a/docs/Structs/URLShorthandCondition.html b/docs/Structs/URLShorthandCondition.html index ec6c37a..7fad14b 100644 --- a/docs/Structs/URLShorthandCondition.html +++ b/docs/Structs/URLShorthandCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -280,9 +280,9 @@

    Declaration

  • - + - regex + regex
    @@ -306,9 +306,9 @@

    Declaration

  • @@ -374,7 +374,7 @@

    Declaration

    diff --git a/docs/Structs/URLShorthandValidator.html b/docs/Structs/URLShorthandValidator.html index 6ddded8..4d22b1c 100644 --- a/docs/Structs/URLShorthandValidator.html +++ b/docs/Structs/URLShorthandValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/Structs/URLValidator.html b/docs/Structs/URLValidator.html index 6f75c4e..e662c0c 100644 --- a/docs/Structs/URLValidator.html +++ b/docs/Structs/URLValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/badge.svg b/docs/badge.svg index 921d353..70c4b64 100644 --- a/docs/badge.svg +++ b/docs/badge.svg @@ -19,10 +19,10 @@ documentation - 72% + 73% - 72% + 73% diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes.html index 6e4c79b..0007ba6 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes.html @@ -22,7 +22,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -300,7 +300,7 @@

    Declaration

  • diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes/ValidatorTextField.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes/ValidatorTextField.html index 1e98bec..b1f4dcb 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes/ValidatorTextField.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes/ValidatorTextField.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -276,9 +276,9 @@

    Declaration

  • @@ -303,9 +303,9 @@

    Declaration

  • @@ -330,9 +330,9 @@

    Declaration

  • @@ -362,9 +362,9 @@

    Declaration

  • @@ -502,7 +502,7 @@

    Custom Setters

    -

    Sets the validatorDelegate for the text field. This allows custom responses to both UITextFieldDelegate callbacks as well as those from ValidatorControlDelegate.

    +

    Sets the validatorDelegate for the text field. This allows custom responses to both UITextFieldDelegate callbacks as well as those from ValidatorControlDelegate.

    @@ -608,7 +608,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes/ValidatorTextView.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes/ValidatorTextView.html index e85dc1f..3288008 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes/ValidatorTextView.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Classes/ValidatorTextView.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -276,9 +276,9 @@

    Declaration

  • @@ -303,9 +303,9 @@

    Declaration

  • @@ -330,9 +330,9 @@

    Declaration

  • @@ -362,9 +362,9 @@

    Declaration

  • @@ -529,7 +529,7 @@

    Custom Setters

    -

    Sets the validatorDelegate for the text view. This allows custom responses to both UITextViewDelegate callbacks as well as those from ValidatorControlDelegate.

    +

    Sets the validatorDelegate for the text view. This allows custom responses to both UITextViewDelegate callbacks as well as those from ValidatorControlDelegate.

    @@ -635,7 +635,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums.html index 0096103..44267fc 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums.html @@ -22,7 +22,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -300,7 +300,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums/PasswordStrength.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums/PasswordStrength.html index 86c1ebd..a4cdab5 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums/PasswordStrength.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums/PasswordStrength.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -382,7 +382,7 @@

    Declaration

  • diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums/PostcodeCountries.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums/PostcodeCountries.html index a0d0110..866f707 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums/PostcodeCountries.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums/PostcodeCountries.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -366,9 +366,9 @@

    Declaration

  • - + - regex + regex
    @@ -393,9 +393,9 @@

    Declaration

  • @@ -425,7 +425,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols.html index b22220a..03374ae 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols.html @@ -22,7 +22,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -531,7 +531,7 @@

    Declaration

  • diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Condition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Condition.html index 91087d7..234babf 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Condition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Condition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -251,9 +251,9 @@

    Condition

  • - + - localizedViolationString + localizedViolationString
    @@ -278,9 +278,9 @@

    Declaration

  • - + - regex + regex
    @@ -305,9 +305,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -425,9 +425,9 @@

    Return Value

  • - + - description + description Extension method @@ -438,8 +438,7 @@

    Return Value

    -

    Undocumented

    - +

    Declaration

    @@ -460,7 +459,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ConfigurableCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ConfigurableCondition.html index 6a8719d..ae16652 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ConfigurableCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ConfigurableCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -242,9 +242,36 @@

    ConfigurableCondition

  • - + + + ConfigurationType + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    associatedtype ConfigurationType: Configuration
    + +
    +
    +
    +
    +
  • +
  • +
    @@ -259,7 +286,7 @@

    ConfigurableCondition

    Declaration

    Swift

    -
    var configuration: ConfigurationType
    +
    var configuration: ConfigurationType
    @@ -286,7 +313,7 @@

    Declaration

    Declaration

    Swift

    -
    init(configuration: ConfigurationType)
    +
    init(configuration: ConfigurationType)
  • @@ -353,7 +380,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ConfigurableValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ConfigurableValidator.html index 33850ab..824e467 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ConfigurableValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ConfigurableValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -239,6 +239,33 @@

    ConfigurableValidator

      +
    • +
      + + + + ConfigurationType + +
      +
      +
      +
      +
      +
      +

      Undocumented

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      associatedtype ConfigurationType: Configuration
      + +
      +
      +
      +
      +
    • @@ -259,7 +286,7 @@

      ConfigurableValidator

      Declaration

      Swift

      -
      init(configuration: ConfigurationType)
      +
      init(configuration: ConfigurationType)
      @@ -326,7 +353,7 @@

      Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Configuration.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Configuration.html index 3705f62..542742b 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Configuration.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Configuration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -274,7 +274,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Form.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Form.html index 7aba9f6..1d11ce8 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Form.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Form.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - entries + entries
    @@ -276,9 +276,9 @@

    Declaration

  • - + - isValid + isValid Default implementation @@ -294,8 +294,7 @@

    Declaration

    Default Implementation

    -

    Undocumented

    - +

    Declaration

    @@ -572,7 +571,7 @@

    Check

    -

    Checks the text from each entry in entries.

    +

    Checks the text from each entry in entries.

    Default Implementation

    @@ -602,7 +601,7 @@

    Return Value

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Validatable.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Validatable.html index c2efe58..4651059 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Validatable.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Validatable.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -242,9 +242,9 @@

    Validatable

  • - + - validatableText + validatableText
    @@ -269,9 +269,9 @@

    Declaration

  • - + - validator + validator
    @@ -301,7 +301,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Validator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Validator.html index 97bfa85..78019a8 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Validator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/Validator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -271,9 +271,9 @@

    Declaration

  • - + - conditions + conditions
    @@ -413,7 +413,7 @@

    Parameters

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ValidatorControl.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ValidatorControl.html index 64c9079..d45132e 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ValidatorControl.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ValidatorControl.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -242,9 +242,9 @@

    ValidatorControl

  • - + - isValid + isValid Default implementation @@ -277,9 +277,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -304,9 +304,9 @@

    Declaration

  • - + - validateOnFocusLossOnly + validateOnFocusLossOnly
    @@ -331,9 +331,9 @@

    Declaration

  • - + - validatorDelegate + validatorDelegate
    @@ -341,14 +341,19 @@

    Declaration

    -

    Undocumented

    +

    Delegate for the ValidatorControl.

    +
    +

    Note

    + We recommend you specify your implementation as weak. + +

    Declaration

    Swift

    -
    weak var validatorDelegate: ValidatorControlDelegate?
    +
    var validatorDelegate: ValidatorControlDelegate?
    @@ -363,7 +368,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ValidatorControlDelegate.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ValidatorControlDelegate.html index 479a3d9..e16522e 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ValidatorControlDelegate.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols/ValidatorControlDelegate.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -328,7 +328,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs.html index b1969de..e2254a1 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs.html @@ -22,7 +22,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -1459,7 +1459,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticCondition.html index a8ab61b..baa0364 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - localizedViolationString + localizedViolationString
    @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -327,9 +327,9 @@

    Declaration

  • - + - configuration + configuration
    @@ -432,7 +432,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticConfiguration.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticConfiguration.html index 4236903..c33053f 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticConfiguration.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - allowsUnicode + allowsUnicode
    @@ -276,9 +276,9 @@

    Declaration

  • - + - allowsWhitespace + allowsWhitespace
    @@ -372,7 +372,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticValidator.html index 214e297..451f326 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphabeticValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • - + - conditions + conditions
    @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericCondition.html index 9f26d32..b02a999 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - localizedViolationString + localizedViolationString
    @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -327,9 +327,9 @@

    Declaration

  • - + - configuration + configuration
    @@ -432,7 +432,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericConfiguration.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericConfiguration.html index 0ddf49d..5491006 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericConfiguration.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - allowsUnicode + allowsUnicode
    @@ -276,9 +276,9 @@

    Declaration

  • - + - allowsWhitespace + allowsWhitespace
    @@ -372,7 +372,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericValidator.html index 59719a3..c0e8133 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AlphanumericValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • - + - conditions + conditions
    @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AndCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AndCondition.html index b493db9..a99c8d2 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AndCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/AndCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - localizedViolationString + localizedViolationString
    @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -327,9 +327,9 @@

    Declaration

  • - + - conditions + conditions
    @@ -460,7 +460,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CompositeValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CompositeValidator.html index c1886ea..0f07599 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CompositeValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CompositeValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - conditions + conditions
    @@ -275,9 +275,9 @@

    Declaration

  • - + - validators + validators
    @@ -390,7 +390,7 @@

    Parameters

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/ControlForm.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/ControlForm.html index 1d5666b..45e4507 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/ControlForm.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/ControlForm.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -242,9 +242,9 @@

    ControlForm

  • - + - entries + entries
    @@ -299,7 +299,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardCondition.html index e8119b3..8760a9b 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - localizedViolationString + localizedViolationString
    @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -327,9 +327,9 @@

    Declaration

  • - + - configuration + configuration
    @@ -460,7 +460,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardConfiguration.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardConfiguration.html index bd7abf2..7028491 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardConfiguration.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - cardType + cardType
    @@ -345,7 +345,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardType.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardType.html index 0b79997..d78c94b 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardType.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardType.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -242,9 +242,9 @@

    CreditCardType

  • - + - rawValue + rawValue
    @@ -294,9 +294,9 @@

    Declaration

  • - + - americanExpress + americanExpress
    @@ -321,9 +321,9 @@

    Declaration

  • - + - dinersClub + dinersClub
    @@ -348,9 +348,9 @@

    Declaration

  • - + - discover + discover
    @@ -375,9 +375,9 @@

    Declaration

  • - + - jcb + jcb
    @@ -402,9 +402,9 @@

    Declaration

  • - + - maestro + maestro
    @@ -429,9 +429,9 @@

    Declaration

  • - + - mastercard + mastercard
    @@ -456,9 +456,9 @@

    Declaration

  • - + - visa + visa
    @@ -483,9 +483,9 @@

    Declaration

  • - + - all + all
    @@ -500,7 +500,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let all: CreditCardType = [.americanExpress, .dinersClub, .discover, .jcb, .maestro, .mastercard, .visa]
    +
    public static let all: CreditCardType = [.americanExpress, .dinersClub, .discover, .jcb, .maestro, .mastercard, .visa]
    @@ -510,9 +510,9 @@

    Declaration

  • - + - allArray + allArray
    @@ -527,7 +527,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let allArray: [CreditCardType] = [.americanExpress, .dinersClub, .discover, .jcb, .maestro, .mastercard, .visa]
    +
    public static let allArray: [CreditCardType] = [.americanExpress, .dinersClub, .discover, .jcb, .maestro, .mastercard, .visa]
    @@ -537,9 +537,9 @@

    Declaration

  • - + - description + description
    @@ -564,9 +564,9 @@

    Declaration

  • - + - regex + regex
    @@ -596,7 +596,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardValidator.html index 7a29c01..40acb8a 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/CreditCardValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • - + - conditions + conditions
    @@ -360,7 +360,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/EmailCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/EmailCondition.html index fc09cb6..881036c 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/EmailCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/EmailCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - localizedViolationString + localizedViolationString
    @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • - + - shouldAllowViolation + shouldAllowViolation
    @@ -369,7 +369,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/EmailValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/EmailValidator.html index 96ed30e..a4c0f81 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/EmailValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/EmailValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • - + - conditions + conditions
    @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/FormEntry.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/FormEntry.html index 43657b4..6ff762e 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/FormEntry.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/FormEntry.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - validatable + validatable
    @@ -276,9 +276,9 @@

    Declaration

  • - + - validator + validator
    @@ -286,7 +286,7 @@

    Declaration

    -

    A Validator to use to validate text from validatable.

    +

    A Validator to use to validate text from validatable.

    @@ -324,7 +324,7 @@

    Check

    -

    Checks the text from validatable using validator from FormEntry (NOT the validator from validatable).

    +

    Checks the text from validatable using validator from FormEntry (NOT the validator from validatable).

    @@ -350,7 +350,7 @@

    Return Value

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NotCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NotCondition.html index 3719c4b..41f22cd 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NotCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NotCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -327,9 +327,9 @@

    Declaration

  • @@ -460,7 +460,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericCondition.html index 708bc3e..03a8915 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -327,9 +327,9 @@

    Declaration

  • @@ -432,7 +432,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericConfiguration.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericConfiguration.html index f6231b5..2c02c70 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericConfiguration.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -276,9 +276,9 @@

    Declaration

  • @@ -372,7 +372,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericValidator.html index d838d3d..b639c43 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/NumericValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/OrCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/OrCondition.html index cd830de..080497d 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/OrCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/OrCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -327,9 +327,9 @@

    Declaration

  • @@ -460,7 +460,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthCondition.html index 91b3fbf..556556a 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -259,9 +259,9 @@

    Properties

  • @@ -285,9 +285,9 @@

    Declaration

  • - + - regex + regex
    @@ -311,9 +311,9 @@

    Declaration

  • @@ -337,9 +337,9 @@

    Declaration

  • @@ -442,7 +442,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthConfiguration.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthConfiguration.html index 688c060..ccb6742 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthConfiguration.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -364,7 +364,7 @@

    Parameters

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthValidator.html index df755ea..388183e 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PasswordStrengthValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeCondition.html index 89a72f6..113ba67 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -327,9 +327,9 @@

    Declaration

  • @@ -395,7 +395,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeConfiguration.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeConfiguration.html index d7a196f..c60f2ba 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeConfiguration.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - country + country
    @@ -345,7 +345,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeValidator.html index 8912865..5845d99 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PostcodeValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PresentCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PresentCondition.html index 767b517..9b18cdd 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PresentCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PresentCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -406,7 +406,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PresentValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PresentValidator.html index 10f45b3..33956b5 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PresentValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/PresentValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeCondition.html index 56acc1c..fdffdd1 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • @@ -275,9 +275,9 @@

    Declaration

  • - + - regex + regex
    @@ -301,9 +301,9 @@

    Declaration

  • @@ -327,9 +327,9 @@

    Declaration

  • @@ -432,7 +432,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeConfiguration.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeConfiguration.html index 8c1b4b7..559846b 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeConfiguration.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeConfiguration.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -249,9 +249,9 @@

    Properties

  • - + - range + range
    @@ -346,7 +346,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeValidator.html index 625107f..31e541b 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/RangeValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLCondition.html index 6d444ff..07ddc51 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -280,9 +280,9 @@

    Declaration

  • - + - regex + regex
    @@ -306,9 +306,9 @@

    Declaration

  • @@ -374,7 +374,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLShorthandCondition.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLShorthandCondition.html index ec6c37a..7fad14b 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLShorthandCondition.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLShorthandCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -280,9 +280,9 @@

    Declaration

  • - + - regex + regex
    @@ -306,9 +306,9 @@

    Declaration

  • @@ -374,7 +374,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLShorthandValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLShorthandValidator.html index 6ddded8..4d22b1c 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLShorthandValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLShorthandValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLValidator.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLValidator.html index 6f75c4e..e662c0c 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLValidator.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs/URLValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -254,9 +254,9 @@

    Properties

  • @@ -322,7 +322,7 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/badge.svg b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/badge.svg index 0d83626..921d353 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/badge.svg +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/badge.svg @@ -1 +1,28 @@ -documentationdocumentation75%75% \ No newline at end of file + + + + + + + + + + + + + + + + documentation + + + documentation + + + 72% + + + 72% + + + diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/index.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/index.html index ae732f6..9ee4bbf 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/index.html @@ -22,7 +22,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

    @@ -227,7 +227,7 @@ Build Status codecov.io Platform -Swift +Swift Twitter

    FormValidatorSwift

    @@ -282,26 +282,35 @@

    Embedded Framework

      -
    • Open the new FormValidatorSwift folder, and drag the FormValidatorSwift.xcodeproj into the Project Navigator of your application’s Xcode project.

      +
    • Open the new FormValidatorSwift folder, and drag the FormValidatorSwift.xcodeproj into the Project Navigator of your application’s Xcode project.
    • +

    It should appear nested underneath your application’s blue project icon. Whether it is above or below all the other Xcode groups does not matter.

    -
  • -
  • Select the FormValidatorSwift.xcodeproj in the Project Navigator and verify the deployment target matches that of your application target.

  • -
  • Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the Targets heading in the sidebar.

  • -
  • In the tab bar at the top of that window, open the General panel.

  • -
  • Click on the + button under the Embedded Binaries section.

  • -
  • You will see two different FormValidatorSwift.xcodeproj folders each with two different versions of the FormValidatorSwift.framework nested inside a Products folder.

    + + +
      +
    • Select the FormValidatorSwift.xcodeproj in the Project Navigator and verify the deployment target matches that of your application target.
    • +
    • Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the Targets heading in the sidebar.
    • +
    • In the tab bar at the top of that window, open the General panel.
    • +
    • Click on the + button under the Embedded Binaries section.
    • +
    • You will see two different FormValidatorSwift.xcodeproj folders each with two different versions of the FormValidatorSwift.framework nested inside a Products folder.
    • +

    It does not matter which Products folder you choose from, but it does matter whether you choose the top or bottom FormValidatorSwift.framework.

    -
  • -
  • Select the top FormValidatorSwift.framework for iOS, the middle one for tvOS, or the bottom one for macOS.

    + + +
      +
    • Select the top FormValidatorSwift.framework for iOS, the middle one for tvOS, or the bottom one for macOS.
    • +

    You can verify which one you selected by inspecting the build log for your project. The build target for FormValidatorSwift will be listed as FormValidatorSwift iOS, FormValidatorSwift macOS, or FormValidatorSwift tvOS.

    -
  • -
  • And that’s it!

  • + + +
      +
    • And that’s it!
    @@ -426,7 +435,7 @@

    License

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/search.json b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/search.json index 1073273..ae32b58 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift12AndConditionV10conditionsSayAA0E0_pGv":{"name":"conditions","abstract":"

    Undocumented

    ","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift12AndConditionVACSayAA0E0_pG10conditions_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AndCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"PasswordStrengthCondition"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"AlphanumericValidator"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericValidator"},"Structs/ControlForm.html#/s:18FormValidatorSwift0A0P7entriesSayAA0A5EntryVGv":{"name":"entries","parent_name":"ControlForm"},"Structs/ControlForm.html#/s:18FormValidatorSwift0A0Pxycfc":{"name":"init()","parent_name":"ControlForm"},"Structs/RangeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"RangeValidator"},"Structs/RangeValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"RangeValidator"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"URLCondition"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift29PasswordStrengthConfigurationV08requiredE0AA0dE0Ov":{"name":"requiredStrength","abstract":"

    Minimum strength required to be considered valid.

    ","parent_name":"PasswordStrengthConfiguration"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"PasswordStrengthConfiguration"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift29PasswordStrengthConfigurationVAcA0dE0O08requiredE0_tcfc":{"name":"init(requiredStrength:)","abstract":"

    Initializes a PasswordStrengthConfiguration.

    ","parent_name":"PasswordStrengthConfiguration"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"URLShorthandValidator"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLShorthandValidator"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift23CreditCardConfigurationV8cardTypeAA0deH0Vv":{"name":"cardType","abstract":"

    Undocumented

    ","parent_name":"CreditCardConfiguration"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"CreditCardConfiguration"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift23CreditCardConfigurationVAcA0dE4TypeV04cardG0_tcfc":{"name":"init(cardType:)","abstract":"

    Undocumented

    ","parent_name":"CreditCardConfiguration"},"Structs/CreditCardType.html#/s:s16RawRepresentableP8rawValue0aD0Qzv":{"name":"rawValue","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:s9OptionSetPx8RawValueQz03rawD0_tcfc":{"name":"init(rawValue:)","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV15americanExpressACvZ":{"name":"americanExpress","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV10dinersClubACvZ":{"name":"dinersClub","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV8discoverACvZ":{"name":"discover","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV3jcbACvZ":{"name":"jcb","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV7maestroACvZ":{"name":"maestro","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV10mastercardACvZ":{"name":"mastercard","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV4visaACvZ":{"name":"visa","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV3allACvZ":{"name":"all","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV8allArraySayACGvZ":{"name":"allArray","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV11descriptionSSv":{"name":"description","abstract":"

    Literal description for set of credit cards, separated with commas and single space.

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV5regexSSv":{"name":"regex","abstract":"

    Combined regular expression string for set of credit cards.

    ","parent_name":"CreditCardType"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationV13allowsUnicodeSbv":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode letters and numbers. If false then only ASCII letters (A-Z, a-z, 0-9) are allowed.

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationV16allowsWhitespaceSbv":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AlphabeticCondition"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"PostcodeValidator"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeValidator"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationV5ranges09CountableD0VySiGv":{"name":"range","abstract":"

    Undocumented

    ","parent_name":"RangeConfiguration"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationVACycfc":{"name":"init()","abstract":"

    Initializes a RangeConfiguration with a 0..<1 range.

    ","parent_name":"RangeConfiguration"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationVACs09CountableD0VySiG5range_tcfc":{"name":"init(range:)","abstract":"

    Undocumented

    ","parent_name":"RangeConfiguration"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"AlphabeticValidator"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticValidator"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"PresentCondition"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV11validatableAA0B7Control_pv":{"name":"validatable","abstract":"

    A Validatable that contains text to be validated.

    ","parent_name":"FormEntry"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV9validatorAA0B0_pv":{"name":"validator","abstract":"

    A Validator to use to validate text from validatable.

    ","parent_name":"FormEntry"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV15checkConditionsSayAA9Condition_pGSgyF":{"name":"checkConditions()","abstract":"

    Checks the text from validatable using validator from FormEntry (NOT the validator from validatable).

    ","parent_name":"FormEntry"},"Structs/URLValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"URLValidator"},"Structs/URLValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift09CompositeB0V10validatorsSayAA0B0_pGv":{"name":"validators","abstract":"

    Undocumented

    ","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift09CompositeB0VACSayAA0B0_pG10validators_tcfc":{"name":"init(validators:)","abstract":"

    Initializes a CompositeValidator.

    ","parent_name":"CompositeValidator"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"URLShorthandCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift12NotConditionV9conditionAA0E0_pv":{"name":"condition","abstract":"

    Undocumented

    ","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift12NotConditionVAcA0E0_p9condition_tcfc":{"name":"init(condition:)","abstract":"

    Undocumented

    ","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"NotCondition"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"EmailValidator"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"EmailValidator"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift21PostcodeConfigurationV7countryAA0D9CountriesOv":{"name":"country","abstract":"

    Undocumented

    ","parent_name":"PostcodeConfiguration"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"PostcodeConfiguration"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift21PostcodeConfigurationVAcA0D9CountriesO7country_tcfc":{"name":"init(country:)","abstract":"

    Undocumented

    ","parent_name":"PostcodeConfiguration"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"NumericCondition"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationV13allowsUnicodeSbv":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode letters. If false then only ASCII letters (A-Z, a-z) are allowed.

    ","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationV16allowsWhitespaceSbv":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphabeticConfiguration"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"PasswordStrengthValidator"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift010CreditCardB0V05validE5TypesySS3for_yAA0dE4TypeVc10completiontF":{"name":"validCardTypes(for:completion:)","abstract":"

    Returns valid card types for a credit card number asynchronously.

    ","parent_name":"CreditCardValidator"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AlphanumericCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"RangeCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"EmailCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift19CreditCardConditionV5checkSbSSSgF":{"name":"check(_:)","abstract":"

    Checks if the string is a valid credit card number, after removes all whitespace.

    ","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift19CreditCardConditionV5checkSbSS_So19NSRegularExpressionC9withRegextF":{"name":"check(_:withRegex:)","abstract":"

    Undocumented

    ","parent_name":"CreditCardCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift11OrConditionV10conditionsSayAA0E0_pGv":{"name":"conditions","abstract":"

    Undocumented

    ","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift11OrConditionVACSayAA0E0_pG10conditions_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"OrCondition"},"Structs/NumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"NumericValidator"},"Structs/NumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"NumericValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"PresentValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"PresentValidator"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationV13allowsUnicodeSbv":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode numbers. If false then only ASCII numbers (0-9) are allowed.

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationV16allowsWhitespaceSbv":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html":{"name":"NumericConfiguration","abstract":"

    Stores configuration for NumericCondition.

    "},"Structs/PresentValidator.html":{"name":"PresentValidator","abstract":"

    The PresentValidator contains an PresentCondition. A valid string is a non-empty string.

    "},"Structs/NumericValidator.html":{"name":"NumericValidator","abstract":"

    The NumericValidator contains an NumericCondition. A valid string only contains numbers.

    "},"Structs/OrCondition.html":{"name":"OrCondition","abstract":"

    A condition that returns the result of either operands.

    "},"Structs/CreditCardCondition.html":{"name":"CreditCardCondition","abstract":"

    The CreditCardCondition checks a string for a credit card number.

    "},"Structs/PostcodeCondition.html":{"name":"PostcodeCondition","abstract":"

    The PostcodeCondition checks a string for a post code.

    "},"Structs/EmailCondition.html":{"name":"EmailCondition","abstract":"

    The EmailCondition checks a string for an email.

    "},"Structs/RangeCondition.html":{"name":"RangeCondition","abstract":"

    The RangeCondition validates the length of a string.

    "},"Structs/AlphanumericCondition.html":{"name":"AlphanumericCondition","abstract":"

    The AlphanumericCondition checks a string for occurrences of letters and/or numbers.

    "},"Structs/CreditCardValidator.html":{"name":"CreditCardValidator","abstract":"

    The CreditCardValidator contains an CreditCardCondition. A valid string is a credit card number.

    "},"Structs/PasswordStrengthValidator.html":{"name":"PasswordStrengthValidator","abstract":"

    The PasswordStrengthValidator contains an PasswordStrengthCondition. A valid string meets the required strength level.

    "},"Structs/AlphabeticConfiguration.html":{"name":"AlphabeticConfiguration","abstract":"

    Stores configuration for AlphabeticCondition.

    "},"Structs/NumericCondition.html":{"name":"NumericCondition","abstract":"

    The NumericCondition checks a string for numbers.

    "},"Structs/PostcodeConfiguration.html":{"name":"PostcodeConfiguration","abstract":"

    Stores configuration for PostcodeCondition.

    "},"Structs/EmailValidator.html":{"name":"EmailValidator","abstract":"

    The EmailValidator contains an EmailCondition. A valid string is an email address.

    "},"Structs/NotCondition.html":{"name":"NotCondition","abstract":"

    A condition that returns the opposite of the original condition.

    "},"Structs/URLShorthandCondition.html":{"name":"URLShorthandCondition","abstract":"

    The URLShorthandCondition checks a string for a valid URL.

    "},"Structs/CompositeValidator.html":{"name":"CompositeValidator","abstract":"

    The CompositeValidator concatenates all of the conditions of the individual validators. All conditions must be satisfied for a string to be valid.

    "},"Structs/URLValidator.html":{"name":"URLValidator","abstract":"

    The URLValidator contains an URLCondition. A valid string is a full URL with scheme.

    "},"Structs/FormEntry.html":{"name":"FormEntry","abstract":"

    A single entry within a Form.

    "},"Structs/PresentCondition.html":{"name":"PresentCondition","abstract":"

    The PresentCondition checks for the presence of a string.

    "},"Structs/AlphabeticValidator.html":{"name":"AlphabeticValidator","abstract":"

    The AlphabeticValidator contains an AlphabeticCondition. A valid string only contains letters.

    "},"Structs/RangeConfiguration.html":{"name":"RangeConfiguration","abstract":"

    Stores configuration for RangeCondition.

    "},"Structs/PostcodeValidator.html":{"name":"PostcodeValidator","abstract":"

    The PostcodeValidator contains an PostcodeCondition. A valid string is a postcode.

    "},"Structs/AlphabeticCondition.html":{"name":"AlphabeticCondition","abstract":"

    The AlphabeticCondition checks a string for occurrences of letters.

    "},"Structs/AlphanumericConfiguration.html":{"name":"AlphanumericConfiguration","abstract":"

    Stores configuration for AlphanumericCondition.

    "},"Structs/CreditCardType.html":{"name":"CreditCardType","abstract":"

    Credit card types that are supported by CreditCardCondition. There is a regex property that returns the regex for validating that credit card number.

    "},"Structs/CreditCardConfiguration.html":{"name":"CreditCardConfiguration","abstract":"

    Stores configuration for CreditCardCondition.

    "},"Structs/URLShorthandValidator.html":{"name":"URLShorthandValidator","abstract":"

    The URLShorthandValidator contains an URLShorthandCondition. A valid string is a URL, with or without scheme.

    "},"Structs/PasswordStrengthConfiguration.html":{"name":"PasswordStrengthConfiguration","abstract":"

    Stores configuration for PasswordStrengthCondition.

    "},"Structs/URLCondition.html":{"name":"URLCondition","abstract":"

    The URLCondition checks a string for a valid URL.

    "},"Structs/RangeValidator.html":{"name":"RangeValidator","abstract":"

    The RangeValidator contains an RangeCondition. A valid string meets the required string length.

    "},"Structs/ControlForm.html":{"name":"ControlForm","abstract":"

    Convenience implementation of Form that is a form full of any type of ValidatorControl.

    "},"Structs/AlphanumericValidator.html":{"name":"AlphanumericValidator","abstract":"

    The AlphanumericValidator contains an AlphanumericCondition. A valid string only contains letters and/or numbers.

    "},"Structs/PasswordStrengthCondition.html":{"name":"PasswordStrengthCondition","abstract":"

    The PasswordStrengthCondition checks for the strength of a password string."},"Structs/AndCondition.html":{"name":"AndCondition","abstract":"

    A condition that returns the result of either operands.

    "},"Protocols/Form.html#/s:18FormValidatorSwift0A0P7entriesSayAA0A5EntryVGv":{"name":"entries","abstract":"

    Entries in the form.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P7isValidSbv":{"name":"isValid","abstract":"

    Whether or not the entire form is valid.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0Pxycfc":{"name":"init()","abstract":"

    Creates an empty Form.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0PxSayAA0B7Control_pG12validatables_tcfc":{"name":"init(validatables:)","abstract":"

    Creates a Form where each Validatable uses its own Validator for validation.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0PxSgSayAA0B7Control_pG12validatables_SayAA0B0_pG10validatorstcfc":{"name":"init(validatables:validators:)","abstract":"

    Creates a Form where each Validatable uses a custom Validator for validation. If validatables and validators have a different number of elements then returns nil.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P8addEntryyAA0B7Control_pF":{"name":"addEntry(_:)","abstract":"

    Undocumented

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P20removeControlAtIndexAA0bE0_pSgSiF":{"name":"removeControlAtIndex(_:)","abstract":"

    Undocumented

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P15checkConditionsSayAA9Condition_pGSgyF":{"name":"checkConditions()","abstract":"

    Checks the text from each entry in entries.

    ","parent_name":"Form"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","abstract":"

    Localized string which described the kind of violation.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","abstract":"

    A regular expression string which the validated string is matched against.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","abstract":"

    If set to false the user is not able to enter characters which would break the condition.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","abstract":"

    Initializer that creates a condition based on default values.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","abstract":"

    Check the custom condition.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionPAAE11descriptionSSv":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"Condition"},"Protocols/Configuration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","abstract":"

    Initializes a Configuration with the default values.

    ","parent_name":"Configuration"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP7isValidSbv":{"name":"isValid","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP23validateOnFocusLossOnlySbv":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP17validatorDelegateAA0bdF0_pSgXwv":{"name":"validatorDelegate","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD9DidChangeyAA0bD0_pF":{"name":"validatorControlDidChange(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD0yAA0bD0_p_Sb17changedValidStatetF":{"name":"validatorControl(_:changedValidState:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD0yAA0bD0_p_SayAA9Condition_pG18violatedConditionstF":{"name":"validatorControl(_:violatedConditions:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","abstract":"

    Configuration for the Condition.

    ","parent_name":"ConfigurableCondition"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","abstract":"

    Initializes a new ConfigurableCondition with a given configuration.

    ","parent_name":"ConfigurableCondition"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"ConfigurableCondition"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","abstract":"

    Initializer that creates a condition based on default values.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","abstract":"

    Conditions to use when validating text.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P15checkConditionsSayAA9Condition_pGSgSSSgF":{"name":"checkConditions(_:)","abstract":"

    Checks text for violation of each condition.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P22removeConditionOfClassyqd__mAA0E0Rd__lF":{"name":"removeConditionOfClass(_:)","abstract":"

    Removes all conditions of conditionClass type.

    ","parent_name":"Validator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","abstract":"

    Initializes a new ConfigurableValidator with a given configuration.

    ","parent_name":"ConfigurableValidator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"ConfigurableValidator"},"Protocols/Validatable.html#/s:18FormValidatorSwift11ValidatableP15validatableTextSSSgv":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"Validatable"},"Protocols/Validatable.html#/s:18FormValidatorSwift11ValidatableP9validatorAA0B0_pv":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"Validatable"},"Protocols/Validatable.html":{"name":"Validatable","abstract":"

    Undocumented

    "},"Protocols/ConfigurableValidator.html":{"name":"ConfigurableValidator","abstract":"

    A special type of Validator that allows configuration.

    "},"Protocols/Validator.html":{"name":"Validator","abstract":"

    Validator is a holder for conditions of type Condition."},"Protocols/ConfigurableCondition.html":{"name":"ConfigurableCondition","abstract":"

    A special type of Condition that allows configuration.

    "},"Protocols/ValidatorControlDelegate.html":{"name":"ValidatorControlDelegate","abstract":"

    Undocumented

    "},"Protocols/ValidatorControl.html":{"name":"ValidatorControl","abstract":"

    Undocumented

    "},"Protocols/Configuration.html":{"name":"Configuration","abstract":"

    A configuration for a Condition.

    "},"Protocols/Condition.html":{"name":"Condition","abstract":"

    A Condition is the smallest sub element of the validation framework."},"Protocols/Form.html":{"name":"Form","abstract":"

    A form to assist in validating ValidatorControl objects’ current states.

    "},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO8veryWeakA2CmF":{"name":"veryWeak","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO4weakA2CmF":{"name":"weak","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO6mediumA2CmF":{"name":"medium","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO6strongA2CmF":{"name":"strong","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO10veryStrongA2CmF":{"name":"veryStrong","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO6swedenA2CmF":{"name":"sweden","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO6turkeyA2CmF":{"name":"turkey","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO13unitedKingdomA2CmF":{"name":"unitedKingdom","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO12unitedStatesA2CmF":{"name":"unitedStates","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO5regexSSv":{"name":"regex","abstract":"

    The regex for validating the country’s postcode.

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO9allValuesSayACGvZ":{"name":"allValues","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html":{"name":"PostcodeCountries","abstract":"

    Countries that are supported by PostcodeCondition. Each postcode is an ISO 3166-1 alpha-3 country code. There is a regex property that returns the regex for validating that country’s postcode.

    "},"Enums/PasswordStrength.html":{"name":"PasswordStrength","abstract":"

    The strength required for the password. The strength is measured on five simple criteria - lower case characters, upper case characters, numeric characters, special characters, and is more than 8 characters long. Each of these matched criteria moves the password strength of the string up one strength. Not having 8 character minimum reduces the string by one strength level.

    "},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC20shouldAllowViolationSbv":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC23validateOnFocusLossOnlySbv":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC9validatorAA0B0_pv":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC17validatorDelegateAA0b7ControlG0_pSgXwv":{"name":"validatorDelegate","abstract":"

    Validator delegate for the text view.

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC011validatableD0SSSgv":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCAcA0B0_p9validator_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCACSC6CGRectV5frame_AA0B0_p9validatortcfc":{"name":"init(frame:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCACSC6CGRectV5frame_So15NSTextContainerCSg04textI0AA0B0_p9validatortcfc":{"name":"init(frame:textContainer:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC03setB8DelegateyAA0b7ControlG0_So06UITexteG0pF":{"name":"setValidatorDelegate(_:)","abstract":"

    Sets the validatorDelegate for the text view. This allows custom responses to both UITextViewDelegate callbacks as well as those from ValidatorControlDelegate.

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC09validatordE18SuccededConditionsyyF":{"name":"validatorTextViewSuccededConditions()","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC09validatordE18ViolatedConditionsySayAA9Condition_pGF":{"name":"validatorTextViewViolatedConditions(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC20shouldAllowViolationSbv":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC23validateOnFocusLossOnlySbv":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC9validatorAA0B0_pv":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC17validatorDelegateAA0b7ControlG0_pSgXwv":{"name":"validatorDelegate","abstract":"

    Validator delegate for the text field.

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC011validatableD0SSSgv":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldCAcA0B0_p9validator_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldCACSC6CGRectV5frame_AA0B0_p9validatortcfc":{"name":"init(frame:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextField(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC03setB8DelegateyAA0b7ControlG0_So06UITexteG0pF":{"name":"setValidatorDelegate(_:)","abstract":"

    Sets the validatorDelegate for the text field. This allows custom responses to both UITextFieldDelegate callbacks as well as those from ValidatorControlDelegate.

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC09validatordE18SuccededConditionsyyF":{"name":"validatorTextFieldSuccededConditions()","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC09validatordE18ViolatedConditionsySayAA9Condition_pGF":{"name":"validatorTextFieldViolatedConditions(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html":{"name":"ValidatorTextField","abstract":"

    Undocumented

    "},"Classes/ValidatorTextView.html":{"name":"ValidatorTextView","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift12AndConditionV10conditionsSayAA0E0_pGvp":{"name":"conditions","abstract":"

    Undocumented

    ","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift12AndConditionVACSayAA0E0_pG10conditions_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AndCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"PasswordStrengthCondition"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"AlphanumericValidator"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericValidator"},"Structs/ControlForm.html#/s:18FormValidatorSwift0A0P7entriesSayAA0A5EntryVGvp":{"name":"entries","parent_name":"ControlForm"},"Structs/ControlForm.html#/s:18FormValidatorSwift0A0Pxycfc":{"name":"init()","parent_name":"ControlForm"},"Structs/RangeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"RangeValidator"},"Structs/RangeValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"RangeValidator"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"URLCondition"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift29PasswordStrengthConfigurationV08requiredE0AA0dE0Ovp":{"name":"requiredStrength","abstract":"

    Minimum strength required to be considered valid.

    ","parent_name":"PasswordStrengthConfiguration"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"PasswordStrengthConfiguration"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift29PasswordStrengthConfigurationVAcA0dE0O08requiredE0_tcfc":{"name":"init(requiredStrength:)","abstract":"

    Initializes a PasswordStrengthConfiguration.

    ","parent_name":"PasswordStrengthConfiguration"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"URLShorthandValidator"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLShorthandValidator"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift23CreditCardConfigurationV8cardTypeAA0deH0Vvp":{"name":"cardType","abstract":"

    Undocumented

    ","parent_name":"CreditCardConfiguration"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"CreditCardConfiguration"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift23CreditCardConfigurationVAcA0dE4TypeV04cardG0_tcfc":{"name":"init(cardType:)","abstract":"

    Undocumented

    ","parent_name":"CreditCardConfiguration"},"Structs/CreditCardType.html#/s:s16RawRepresentableP8rawValue0aD0Qzvp":{"name":"rawValue","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:s9OptionSetPx8RawValueQz03rawD0_tcfc":{"name":"init(rawValue:)","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV15americanExpressACvpZ":{"name":"americanExpress","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV10dinersClubACvpZ":{"name":"dinersClub","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV8discoverACvpZ":{"name":"discover","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV3jcbACvpZ":{"name":"jcb","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV7maestroACvpZ":{"name":"maestro","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV10mastercardACvpZ":{"name":"mastercard","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV4visaACvpZ":{"name":"visa","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV3allACvpZ":{"name":"all","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV8allArraySayACGvpZ":{"name":"allArray","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV11descriptionSSvp":{"name":"description","abstract":"

    Literal description for set of credit cards, separated with commas and single space.

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV5regexSSvp":{"name":"regex","abstract":"

    Combined regular expression string for set of credit cards.

    ","parent_name":"CreditCardType"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationV13allowsUnicodeSbvp":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode letters and numbers. If false then only ASCII letters (A-Z, a-z, 0-9) are allowed.

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationV16allowsWhitespaceSbvp":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AlphabeticCondition"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PostcodeValidator"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeValidator"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationV5ranges09CountableD0VySiGvp":{"name":"range","abstract":"

    Undocumented

    ","parent_name":"RangeConfiguration"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationVACycfc":{"name":"init()","abstract":"

    Initializes a RangeConfiguration with a 0..<1 range.

    ","parent_name":"RangeConfiguration"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationVACs09CountableD0VySiG5range_tcfc":{"name":"init(range:)","abstract":"

    Undocumented

    ","parent_name":"RangeConfiguration"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"AlphabeticValidator"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticValidator"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"PresentCondition"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV11validatableAA0B7Control_pvp":{"name":"validatable","abstract":"

    A Validatable that contains text to be validated.

    ","parent_name":"FormEntry"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV9validatorAA0B0_pvp":{"name":"validator","abstract":"

    A Validator to use to validate text from validatable.

    ","parent_name":"FormEntry"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV15checkConditionsSayAA9Condition_pGSgyF":{"name":"checkConditions()","abstract":"

    Checks the text from validatable using validator from FormEntry (NOT the validator from validatable).

    ","parent_name":"FormEntry"},"Structs/URLValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"URLValidator"},"Structs/URLValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift09CompositeB0V10validatorsSayAA0B0_pGvp":{"name":"validators","abstract":"

    Undocumented

    ","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift09CompositeB0VACSayAA0B0_pG10validators_tcfc":{"name":"init(validators:)","abstract":"

    Initializes a CompositeValidator.

    ","parent_name":"CompositeValidator"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"URLShorthandCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift12NotConditionV9conditionAA0E0_pvp":{"name":"condition","abstract":"

    Undocumented

    ","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift12NotConditionVAcA0E0_p9condition_tcfc":{"name":"init(condition:)","abstract":"

    Undocumented

    ","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"NotCondition"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"EmailValidator"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"EmailValidator"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift21PostcodeConfigurationV7countryAA0D9CountriesOvp":{"name":"country","abstract":"

    Undocumented

    ","parent_name":"PostcodeConfiguration"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"PostcodeConfiguration"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift21PostcodeConfigurationVAcA0D9CountriesO7country_tcfc":{"name":"init(country:)","abstract":"

    Undocumented

    ","parent_name":"PostcodeConfiguration"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"NumericCondition"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationV13allowsUnicodeSbvp":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode letters. If false then only ASCII letters (A-Z, a-z) are allowed.

    ","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationV16allowsWhitespaceSbvp":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphabeticConfiguration"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PasswordStrengthValidator"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift010CreditCardB0V05validE5TypesySS3for_yAA0dE4TypeVc10completiontF":{"name":"validCardTypes(for:completion:)","abstract":"

    Returns valid card types for a credit card number asynchronously.

    ","parent_name":"CreditCardValidator"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AlphanumericCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"RangeCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"EmailCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift19CreditCardConditionV5checkSbSSSgF":{"name":"check(_:)","abstract":"

    Checks if the string is a valid credit card number, after removes all whitespace.

    ","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift19CreditCardConditionV5checkSbSS_So19NSRegularExpressionC9withRegextF":{"name":"check(_:withRegex:)","abstract":"

    Undocumented

    ","parent_name":"CreditCardCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift11OrConditionV10conditionsSayAA0E0_pGvp":{"name":"conditions","abstract":"

    Undocumented

    ","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift11OrConditionVACSayAA0E0_pG10conditions_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"OrCondition"},"Structs/NumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"NumericValidator"},"Structs/NumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"NumericValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PresentValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"PresentValidator"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationV13allowsUnicodeSbvp":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode numbers. If false then only ASCII numbers (0-9) are allowed.

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationV16allowsWhitespaceSbvp":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html":{"name":"NumericConfiguration","abstract":"

    Stores configuration for NumericCondition.

    "},"Structs/PresentValidator.html":{"name":"PresentValidator","abstract":"

    The PresentValidator contains an PresentCondition. A valid string is a non-empty string.

    "},"Structs/NumericValidator.html":{"name":"NumericValidator","abstract":"

    The NumericValidator contains an NumericCondition. A valid string only contains numbers.

    "},"Structs/OrCondition.html":{"name":"OrCondition","abstract":"

    A condition that returns the result of either operands.

    "},"Structs/CreditCardCondition.html":{"name":"CreditCardCondition","abstract":"

    The CreditCardCondition checks a string for a credit card number.

    "},"Structs/PostcodeCondition.html":{"name":"PostcodeCondition","abstract":"

    The PostcodeCondition checks a string for a post code.

    "},"Structs/EmailCondition.html":{"name":"EmailCondition","abstract":"

    The EmailCondition checks a string for an email.

    "},"Structs/RangeCondition.html":{"name":"RangeCondition","abstract":"

    The RangeCondition validates the length of a string.

    "},"Structs/AlphanumericCondition.html":{"name":"AlphanumericCondition","abstract":"

    The AlphanumericCondition checks a string for occurrences of letters and/or numbers.

    "},"Structs/CreditCardValidator.html":{"name":"CreditCardValidator","abstract":"

    The CreditCardValidator contains an CreditCardCondition. A valid string is a credit card number.

    "},"Structs/PasswordStrengthValidator.html":{"name":"PasswordStrengthValidator","abstract":"

    The PasswordStrengthValidator contains an PasswordStrengthCondition. A valid string meets the required strength level.

    "},"Structs/AlphabeticConfiguration.html":{"name":"AlphabeticConfiguration","abstract":"

    Stores configuration for AlphabeticCondition.

    "},"Structs/NumericCondition.html":{"name":"NumericCondition","abstract":"

    The NumericCondition checks a string for numbers.

    "},"Structs/PostcodeConfiguration.html":{"name":"PostcodeConfiguration","abstract":"

    Stores configuration for PostcodeCondition.

    "},"Structs/EmailValidator.html":{"name":"EmailValidator","abstract":"

    The EmailValidator contains an EmailCondition. A valid string is an email address.

    "},"Structs/NotCondition.html":{"name":"NotCondition","abstract":"

    A condition that returns the opposite of the original condition.

    "},"Structs/URLShorthandCondition.html":{"name":"URLShorthandCondition","abstract":"

    The URLShorthandCondition checks a string for a valid URL.

    "},"Structs/CompositeValidator.html":{"name":"CompositeValidator","abstract":"

    The CompositeValidator concatenates all of the conditions of the individual validators. All conditions must be satisfied for a string to be valid.

    "},"Structs/URLValidator.html":{"name":"URLValidator","abstract":"

    The URLValidator contains an URLCondition. A valid string is a full URL with scheme.

    "},"Structs/FormEntry.html":{"name":"FormEntry","abstract":"

    A single entry within a Form.

    "},"Structs/PresentCondition.html":{"name":"PresentCondition","abstract":"

    The PresentCondition checks for the presence of a string.

    "},"Structs/AlphabeticValidator.html":{"name":"AlphabeticValidator","abstract":"

    The AlphabeticValidator contains an AlphabeticCondition. A valid string only contains letters.

    "},"Structs/RangeConfiguration.html":{"name":"RangeConfiguration","abstract":"

    Stores configuration for RangeCondition.

    "},"Structs/PostcodeValidator.html":{"name":"PostcodeValidator","abstract":"

    The PostcodeValidator contains an PostcodeCondition. A valid string is a postcode.

    "},"Structs/AlphabeticCondition.html":{"name":"AlphabeticCondition","abstract":"

    The AlphabeticCondition checks a string for occurrences of letters.

    "},"Structs/AlphanumericConfiguration.html":{"name":"AlphanumericConfiguration","abstract":"

    Stores configuration for AlphanumericCondition.

    "},"Structs/CreditCardType.html":{"name":"CreditCardType","abstract":"

    Credit card types that are supported by CreditCardCondition. There is a regex property that returns the regex for validating that credit card number.

    "},"Structs/CreditCardConfiguration.html":{"name":"CreditCardConfiguration","abstract":"

    Stores configuration for CreditCardCondition.

    "},"Structs/URLShorthandValidator.html":{"name":"URLShorthandValidator","abstract":"

    The URLShorthandValidator contains an URLShorthandCondition. A valid string is a URL, with or without scheme.

    "},"Structs/PasswordStrengthConfiguration.html":{"name":"PasswordStrengthConfiguration","abstract":"

    Stores configuration for PasswordStrengthCondition.

    "},"Structs/URLCondition.html":{"name":"URLCondition","abstract":"

    The URLCondition checks a string for a valid URL.

    "},"Structs/RangeValidator.html":{"name":"RangeValidator","abstract":"

    The RangeValidator contains an RangeCondition. A valid string meets the required string length.

    "},"Structs/ControlForm.html":{"name":"ControlForm","abstract":"

    Convenience implementation of Form that is a form full of any type of ValidatorControl.

    "},"Structs/AlphanumericValidator.html":{"name":"AlphanumericValidator","abstract":"

    The AlphanumericValidator contains an AlphanumericCondition. A valid string only contains letters and/or numbers.

    "},"Structs/PasswordStrengthCondition.html":{"name":"PasswordStrengthCondition","abstract":"

    The PasswordStrengthCondition checks for the strength of a password string."},"Structs/AndCondition.html":{"name":"AndCondition","abstract":"

    A condition that returns the result of either operands.

    "},"Protocols/Form.html#/s:18FormValidatorSwift0A0P7entriesSayAA0A5EntryVGvp":{"name":"entries","abstract":"

    Entries in the form.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P7isValidSbvp":{"name":"isValid","abstract":"

    Whether or not the entire form is valid.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0Pxycfc":{"name":"init()","abstract":"

    Creates an empty Form.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0PxSayAA0B7Control_pG12validatables_tcfc":{"name":"init(validatables:)","abstract":"

    Creates a Form where each Validatable uses its own Validator for validation.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0PxSgSayAA0B7Control_pG12validatables_SayAA0B0_pG10validatorstcfc":{"name":"init(validatables:validators:)","abstract":"

    Creates a Form where each Validatable uses a custom Validator for validation. If validatables and validators have a different number of elements then returns nil.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P8addEntryyAA0B7Control_pF":{"name":"addEntry(_:)","abstract":"

    Undocumented

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P20removeControlAtIndexAA0bE0_pSgSiF":{"name":"removeControlAtIndex(_:)","abstract":"

    Undocumented

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P15checkConditionsSayAA9Condition_pGSgyF":{"name":"checkConditions()","abstract":"

    Checks the text from each entry in entries.

    ","parent_name":"Form"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","abstract":"

    Localized string which described the kind of violation.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","abstract":"

    A regular expression string which the validated string is matched against.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","abstract":"

    If set to false the user is not able to enter characters which would break the condition.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","abstract":"

    Initializer that creates a condition based on default values.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","abstract":"

    Check the custom condition.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"Condition"},"Protocols/Configuration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","abstract":"

    Initializes a Configuration with the default values.

    ","parent_name":"Configuration"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP7isValidSbvp":{"name":"isValid","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP23validateOnFocusLossOnlySbvp":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP17validatorDelegateAA0bdF0_pSgvp":{"name":"validatorDelegate","abstract":"

    Delegate for the ValidatorControl.

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD9DidChangeyAA0bD0_pF":{"name":"validatorControlDidChange(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD0yAA0bD0_p_Sb17changedValidStatetF":{"name":"validatorControl(_:changedValidState:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD0yAA0bD0_p_SayAA9Condition_pG18violatedConditionstF":{"name":"validatorControl(_:violatedConditions:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP17ConfigurationType":{"name":"ConfigurationType","abstract":"

    Undocumented

    ","parent_name":"ConfigurableCondition"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","abstract":"

    Configuration for the Condition.

    ","parent_name":"ConfigurableCondition"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","abstract":"

    Initializes a new ConfigurableCondition with a given configuration.

    ","parent_name":"ConfigurableCondition"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"ConfigurableCondition"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","abstract":"

    Initializer that creates a condition based on default values.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","abstract":"

    Conditions to use when validating text.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P15checkConditionsSayAA9Condition_pGSgSSSgF":{"name":"checkConditions(_:)","abstract":"

    Checks text for violation of each condition.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P22removeConditionOfClassyqd__mAA0E0Rd__lF":{"name":"removeConditionOfClass(_:)","abstract":"

    Removes all conditions of conditionClass type.

    ","parent_name":"Validator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift012ConfigurableB0P17ConfigurationType":{"name":"ConfigurationType","abstract":"

    Undocumented

    ","parent_name":"ConfigurableValidator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","abstract":"

    Initializes a new ConfigurableValidator with a given configuration.

    ","parent_name":"ConfigurableValidator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"ConfigurableValidator"},"Protocols/Validatable.html#/s:18FormValidatorSwift11ValidatableP15validatableTextSSSgvp":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"Validatable"},"Protocols/Validatable.html#/s:18FormValidatorSwift11ValidatableP9validatorAA0B0_pvp":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"Validatable"},"Protocols/Validatable.html":{"name":"Validatable","abstract":"

    Undocumented

    "},"Protocols/ConfigurableValidator.html":{"name":"ConfigurableValidator","abstract":"

    A special type of Validator that allows configuration.

    "},"Protocols/Validator.html":{"name":"Validator","abstract":"

    Validator is a holder for conditions of type Condition."},"Protocols/ConfigurableCondition.html":{"name":"ConfigurableCondition","abstract":"

    A special type of Condition that allows configuration.

    "},"Protocols/ValidatorControlDelegate.html":{"name":"ValidatorControlDelegate","abstract":"

    Undocumented

    "},"Protocols/ValidatorControl.html":{"name":"ValidatorControl","abstract":"

    Undocumented

    "},"Protocols/Configuration.html":{"name":"Configuration","abstract":"

    A configuration for a Condition.

    "},"Protocols/Condition.html":{"name":"Condition","abstract":"

    A Condition is the smallest sub element of the validation framework."},"Protocols/Form.html":{"name":"Form","abstract":"

    A form to assist in validating ValidatorControl objects’ current states.

    "},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO8veryWeakA2CmF":{"name":"veryWeak","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO4weakA2CmF":{"name":"weak","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO6mediumA2CmF":{"name":"medium","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO6strongA2CmF":{"name":"strong","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO10veryStrongA2CmF":{"name":"veryStrong","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO6swedenA2CmF":{"name":"sweden","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO6turkeyA2CmF":{"name":"turkey","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO13unitedKingdomA2CmF":{"name":"unitedKingdom","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO12unitedStatesA2CmF":{"name":"unitedStates","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO5regexSSvp":{"name":"regex","abstract":"

    The regex for validating the country’s postcode.

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO9allValuesSayACGvpZ":{"name":"allValues","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html":{"name":"PostcodeCountries","abstract":"

    Countries that are supported by PostcodeCondition. Each postcode is an ISO 3166-1 alpha-3 country code. There is a regex property that returns the regex for validating that country’s postcode.

    "},"Enums/PasswordStrength.html":{"name":"PasswordStrength","abstract":"

    The strength required for the password. The strength is measured on five simple criteria - lower case characters, upper case characters, numeric characters, special characters, and is more than 8 characters long. Each of these matched criteria moves the password strength of the string up one strength. Not having 8 character minimum reduces the string by one strength level.

    "},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC23validateOnFocusLossOnlySbvp":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC9validatorAA0B0_pvp":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC17validatorDelegateAA0b7ControlG0_pSgXwvp":{"name":"validatorDelegate","abstract":"

    Validator delegate for the text view.

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC011validatableD0SSSgvp":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCAcA0B0_p9validator_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCACSC6CGRectV5frame_AA0B0_p9validatortcfc":{"name":"init(frame:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCACSC6CGRectV5frame_So15NSTextContainerCSg04textI0AA0B0_p9validatortcfc":{"name":"init(frame:textContainer:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC03setB8DelegateyAA0b7ControlG0_So06UITexteG0pF":{"name":"setValidatorDelegate(_:)","abstract":"

    Sets the validatorDelegate for the text view. This allows custom responses to both UITextViewDelegate callbacks as well as those from ValidatorControlDelegate.

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC09validatordE18SuccededConditionsyyF":{"name":"validatorTextViewSuccededConditions()","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC09validatordE18ViolatedConditionsySayAA9Condition_pGF":{"name":"validatorTextViewViolatedConditions(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC23validateOnFocusLossOnlySbvp":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC9validatorAA0B0_pvp":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC17validatorDelegateAA0b7ControlG0_pSgXwvp":{"name":"validatorDelegate","abstract":"

    Validator delegate for the text field.

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC011validatableD0SSSgvp":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldCAcA0B0_p9validator_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldCACSC6CGRectV5frame_AA0B0_p9validatortcfc":{"name":"init(frame:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextField(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC03setB8DelegateyAA0b7ControlG0_So06UITexteG0pF":{"name":"setValidatorDelegate(_:)","abstract":"

    Sets the validatorDelegate for the text field. This allows custom responses to both UITextFieldDelegate callbacks as well as those from ValidatorControlDelegate.

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC09validatordE18SuccededConditionsyyF":{"name":"validatorTextFieldSuccededConditions()","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC09validatordE18ViolatedConditionsySayAA9Condition_pGF":{"name":"validatorTextFieldViolatedConditions(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html":{"name":"ValidatorTextField","abstract":"

    Undocumented

    "},"Classes/ValidatorTextView.html":{"name":"ValidatorTextView","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/undocumented.json index 2288c10..ec83f8f 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/undocumented.json +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/undocumented.json @@ -63,6 +63,69 @@ "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/CreditCardConfiguration.swift", + "line": 20, + "symbol": "CreditCardType.americanExpress", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/CreditCardConfiguration.swift", + "line": 21, + "symbol": "CreditCardType.dinersClub", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/CreditCardConfiguration.swift", + "line": 22, + "symbol": "CreditCardType.discover", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/CreditCardConfiguration.swift", + "line": 23, + "symbol": "CreditCardType.jcb", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/CreditCardConfiguration.swift", + "line": 24, + "symbol": "CreditCardType.maestro", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/CreditCardConfiguration.swift", + "line": 25, + "symbol": "CreditCardType.mastercard", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/CreditCardConfiguration.swift", + "line": 26, + "symbol": "CreditCardType.visa", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/CreditCardConfiguration.swift", + "line": 28, + "symbol": "CreditCardType.all", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/CreditCardConfiguration.swift", + "line": 29, + "symbol": "CreditCardType.allArray", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/CreditCardConfiguration.swift", "line": 122, @@ -121,49 +184,49 @@ }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/PostcodeConfiguration.swift", - "line": 14, - "symbol": "PostcodeCountries.Sweden", + "line": 15, + "symbol": "PostcodeCountries.sweden", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/PostcodeConfiguration.swift", - "line": 15, - "symbol": "PostcodeCountries.Turkey", + "line": 16, + "symbol": "PostcodeCountries.turkey", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/PostcodeConfiguration.swift", - "line": 16, - "symbol": "PostcodeCountries.UnitedKingdom", + "line": 17, + "symbol": "PostcodeCountries.unitedKingdom", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/PostcodeConfiguration.swift", - "line": 17, - "symbol": "PostcodeCountries.UnitedStates", + "line": 18, + "symbol": "PostcodeCountries.unitedStates", "symbol_kind": "source.lang.swift.decl.enumelement", "warning": "undocumented" }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/PostcodeConfiguration.swift", - "line": 33, + "line": 34, "symbol": "PostcodeCountries.allValues", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/PostcodeConfiguration.swift", - "line": 43, + "line": 44, "symbol": "PostcodeConfiguration.country", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Configurations/PostcodeConfiguration.swift", - "line": 52, + "line": 53, "symbol": "PostcodeConfiguration.init(country:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/docSet.dsidx b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/docSet.dsidx index ab15b5c19e47c55a5c960d3ea62ca36de844578b..2298d76df23537423dd8feb7267ce18b54f04356 100644 GIT binary patch delta 9365 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 AWB>pF delta 8714 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 ALI3~& diff --git a/docs/docsets/FormValidatorSwift.tgz b/docs/docsets/FormValidatorSwift.tgz index bdc65345e45f534c1a018f066f9df79fa12b4479..9ae3ee0e5675debf8eebae923dad190f42754198 100644 GIT binary patch literal 123675 zcmZU)V{m29*9IEfHcvE3CYnqpwr!ge+cqY)ZQGjIwsm5g=g#l{)~);DR;>@ccURZ$ z>e}7C9xT!*I53E~K`k)Ii*9&#z=#XpCR-nptpHXmm4wj6P~>4vTi@jFFbP?`#s$Wq zWBuSoV5&qN%L16Eo0(@zr+M7~w&dfu9MMF}{x8=@O;!F`W~ScgS^T^IRfT75g6ylp=6R!MO77)rtY1hE->nX{f+e6}9lvVaJSc^x`*&`fIgZaw?l878L`kNMdW z^_;8xm_Y`grNWnVM;@s&p!8B(Y((qiR1-ml?CeRIQX0*kB+PrE-=K@b=1Sa>6zW_p zd>*HV58(PzYHd|xINB=x%CzpfhA~a4Qu&f&dta&2acz!ytuJ6-JAeAdjTa_Y)r0&BXgvS_ z(edR$we4o|p&=tn#zvq%P8^;v>7<0Bz3sW&vaDWP)41~8uFKvgd#lac_mc`I)rf5I{6ydR!w+3gU|g1cB?AhWpYXr&Ei_w1})`h58*2GIlT>g;Xk zk@0DKdHB9ko2hZ8y4O1)#9+1ZoJn`6u1TL<;Nd(1>O^&CwYGn{+wH<`_{;NxY52?J z0(IEe>tZF8kM%`72p7iJ#{V3oFOSA$s_7WZJo3%aOkAjikS= zU(H@Un4DprVGB!?1dhSGVD}{j6RB(Us;0PWZUX_}PjrN`Zc5_3V};{|RhTc&4(OcQGA#rMY&mwT7)5;nxVZblM{@zmKa zJV;>m9(Y#056EDelZW;nSL%;@04Hamt2~qm;_( zn(wuze%DD%5D1<-!jiy;muwQ5uaBunuwjV4L+SVNfW(9v`vz}Xso`fZn= zGf&A8Lt^D*=9uC4AHTZ@#ls}D&puJ9)63x>Tb%H+l;=7O>sGL@71CW58DXT=o{Fh?(P#Xn=eXf>|DB=c&16G#5`*o zyuNS!3&tL+HEssZ&h|`|-Y5`>HAqDJNuA3%NeDav%rSbhAljKM)pKuZvI?0(OK{%{-HKDzoKX<%wqH4?n+E*kk+^^e zO*#^QW6-&6pvKtsfq-!52&5#sFT>P7jgvJobE>BGxt(E6m) zW=sMHRgP}mv_tZ_9lXS#(xKV+7lbx;u35W+0>@DX z=6czb{2mA)c@pd8{6mo6a$p}v6%ss*_T~OQjfJULKybs7i0FWyQp2DV&b%2O$j%UE zmtG^2@qBnk z)hB4+tWdJ;GuGw&3zUCu-zASZ!hQG&YI_sFumu_Gwt)O@z7Yko5R9=?hs7=?C{Pct z_k#R(lL1K)^*9%xYjtBuT1?~Y4bV<$4-Kc?-Qo9D(2jO!)ln0y6}$%sw0(?W@Gg%7 zCHM?_K1{HGC$&2I0`Z=q|1xDKRbJly1Zn8z&t`mrEXd(oLG>*cAo0cj=JU+*mc0%_ ztwg2Xd*WYqc?XfR!>_q7;}Y8Kefimw-aTlt%0DCHS_8I~rTDn=zYj<6!gSX+Ls*2Q zD#JLcziN-S^pP&-KT&mWt~bn4YkVE|E!Sz8eIfW0K^T!TfP{OAI(1dl!P_2tp+rIG z4NpO>Fwqep)me80+68&A{Rk&}z9TCtavGp6!K3M*uE4FH3mDE$tOri3V-c9=98dGM ztJyLPTEYgFfH{@{ssyNjXZg1+lk#H)eIgK9sxuxfz zM^E3i69T|ebTR_^v$U94Tyl}4PBWe1?m-qv|ItF& zAZ}{JvN>xvMHM4kbru)j9RNeY_h7^MU!OG0P!c%_X#?oBnrbP?4UD*<>1MXqnxw?+$x%@yLbhm?p z9X>ofCH++|@AMJn5yv`Enz?8Wk2~C%qeLFlJviUtyvgPDkxtn3kb@8-%HLP^(APGN(xkE3zMxmQZmu{f2_tCp>>bdbskCADwGT`n$3WT z<{0I-$ii{6eO&wp&R<&2?T$^`&^&zZ#+f7CHp!LkZt$ z)G={KIMt2ywkoVpO~0t{g|#?%-TqAWO3}nb=SJH}C7q?9w*BQW9&fu~PFl6%?A@;* zAtZu$9h> z*DZxElcP`oE5nmr+d6-vN+FpUD74aNVj*Jf_V|GMywo3n)raiO9cqo9b>mN@+Ujh)lA@uJdB?xaF+6Sq# zvB)`cIh^g`1~YW}S+;uV1++cnPT24C0@8T`a_8e*E|%Lfq<-hWA7GPREMwlpY)?-o z`hR*@?q1`w_jZVUtzH81<&k;$U(SQ)gbO!;78d2u&M{vay6MNR2_h2YVqa%O^(A4EjiQ- ziEMI5oLQY$=DSIBK7L+QEBPdDmw{*Gvzfv5mIyU5m!C@;<-$!J zjZz18y0I@gC>p|egepf6Q7 z+ivpbJ|^wG-O_UaOYZ{iO7UHO9+7oF8=pK48~;MLOj*4R3DUL6(B$0_gTE@BeFCr! zHnNJ5kd_uVt#?4Mcn|L~kE_pt_|mx}BM2=gk0gY{9mYJ!p{9D|Qeq|}T-pB>d$$Rg zUi(PGy#JGf7A>ZX9te3)r1idmVeJ?FQ_OIIi>Rgc;Yw*C=FkVW?h~om=PZVbHt&uE z>c zhuKAS{n*?!em3cAcKoKqOdSso)(}Yi7Nq#mJHse}1tR_5ldON_J}89ti$4;CY6nsH z0{Yj)laJj8{jUj{p!(XOxgGcfDFSnujrIAT22W;UuKs+yj;=(@pn@{@=!N~bnz&!+ zgH~XD-FG2BbI*HMpPAlCB)$ypocB91NKZbkuh(*NFC|BMIlinfj*T6yk$%i2l(waq z#K@N2t1j4VancH+TCt|IT-X*b-Cc1GBIZ~eDfUNIT1b+>^OBqh%NMdYoJq(0fD7-D z)AK^8PAoLJojd7Ew<>mnu1-eYQ7W7x@w7v};*NTljFjhP8=bSq)GBd=aX5VB(lQ%` zU9!AB1>CQ;ja#{L)IsJG@4Rj;FtyWz!PAtcDvE#;rQV-jYN@sTitWpvK9(9dIYi-T&tt&>|a$%GPj8b*8~RmUSkw=Wb!?n8*EF-&So`*Ti7PcIqiAL-6Dqb z%QwH6NcmWhT$+D~CBlN?|CIygaJD5XTIF!3*WKK;hIyFdMC3#fM;&+@!&FbxjB06N zniwMF^&nvgWcDOCQ@@=u2AM5L0*7w7pUKXeh|jVdN!XS+0VsP}$QS&s#NyK2Yg-Q? zGV6m735>ZyI-V(Qn7`rZ8^GP23Gn@+wjB4%p5*h7I(A;;tgZlB0GjZqqI6|Wr{ts@ zk+(OaoYXn?z~IN7#asR1dFEjC7ceeqEnE5B&2yRrq(50!s=J$nBZt7W~xKJaqV&fB*X zXkePc*7@D}DH>(;;+%|tk82&E3r| zMo*sq#6)kBd_mUTgC=K3pswzs?WoC8=*C2I(W>x35oi zFJFyjM!dcc^`e2^Z%d8+Fy1Rx8SXhlVfFPLZ1&v@A^y;e!84c5IR~_T(c4Tihq8J^ z4@%|{+;j=su#$=jI|r^>7=TbI)+hNNMg^9`TZt_n�|`2wMNh3*)uCriz{P4z~Ew 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 AaR2}S literal 123329 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

    @@ -227,7 +227,7 @@ Build Status codecov.io Platform -Swift +Swift Twitter

    FormValidatorSwift

    @@ -282,26 +282,35 @@

    Embedded Framework

    *apJaCl^Jy!0<7?;{TrKUqcc1 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 diff --git a/docs/index.html b/docs/index.html index ae732f6..9ee4bbf 100644 --- a/docs/index.html +++ b/docs/index.html @@ -22,7 +22,7 @@ FormValidatorSwift Docs - (72% documented) + (73% documented)

      -
    • Open the new FormValidatorSwift folder, and drag the FormValidatorSwift.xcodeproj into the Project Navigator of your application’s Xcode project.

      +
    • Open the new FormValidatorSwift folder, and drag the FormValidatorSwift.xcodeproj into the Project Navigator of your application’s Xcode project.
    • +

    It should appear nested underneath your application’s blue project icon. Whether it is above or below all the other Xcode groups does not matter.

    -
  • -
  • Select the FormValidatorSwift.xcodeproj in the Project Navigator and verify the deployment target matches that of your application target.

  • -
  • Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the Targets heading in the sidebar.

  • -
  • In the tab bar at the top of that window, open the General panel.

  • -
  • Click on the + button under the Embedded Binaries section.

  • -
  • You will see two different FormValidatorSwift.xcodeproj folders each with two different versions of the FormValidatorSwift.framework nested inside a Products folder.

    + + +
      +
    • Select the FormValidatorSwift.xcodeproj in the Project Navigator and verify the deployment target matches that of your application target.
    • +
    • Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the Targets heading in the sidebar.
    • +
    • In the tab bar at the top of that window, open the General panel.
    • +
    • Click on the + button under the Embedded Binaries section.
    • +
    • You will see two different FormValidatorSwift.xcodeproj folders each with two different versions of the FormValidatorSwift.framework nested inside a Products folder.
    • +

    It does not matter which Products folder you choose from, but it does matter whether you choose the top or bottom FormValidatorSwift.framework.

    -
  • -
  • Select the top FormValidatorSwift.framework for iOS, the middle one for tvOS, or the bottom one for macOS.

    + + +
      +
    • Select the top FormValidatorSwift.framework for iOS, the middle one for tvOS, or the bottom one for macOS.
    • +

    You can verify which one you selected by inspecting the build log for your project. The build target for FormValidatorSwift will be listed as FormValidatorSwift iOS, FormValidatorSwift macOS, or FormValidatorSwift tvOS.

    -
  • -
  • And that’s it!

  • + + +
      +
    • And that’s it!
    @@ -426,7 +435,7 @@

    License

    diff --git a/docs/search.json b/docs/search.json index 1073273..ae32b58 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift12AndConditionV10conditionsSayAA0E0_pGv":{"name":"conditions","abstract":"

    Undocumented

    ","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift12AndConditionVACSayAA0E0_pG10conditions_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AndCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"PasswordStrengthCondition"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"AlphanumericValidator"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericValidator"},"Structs/ControlForm.html#/s:18FormValidatorSwift0A0P7entriesSayAA0A5EntryVGv":{"name":"entries","parent_name":"ControlForm"},"Structs/ControlForm.html#/s:18FormValidatorSwift0A0Pxycfc":{"name":"init()","parent_name":"ControlForm"},"Structs/RangeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"RangeValidator"},"Structs/RangeValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"RangeValidator"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"URLCondition"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift29PasswordStrengthConfigurationV08requiredE0AA0dE0Ov":{"name":"requiredStrength","abstract":"

    Minimum strength required to be considered valid.

    ","parent_name":"PasswordStrengthConfiguration"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"PasswordStrengthConfiguration"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift29PasswordStrengthConfigurationVAcA0dE0O08requiredE0_tcfc":{"name":"init(requiredStrength:)","abstract":"

    Initializes a PasswordStrengthConfiguration.

    ","parent_name":"PasswordStrengthConfiguration"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"URLShorthandValidator"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLShorthandValidator"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift23CreditCardConfigurationV8cardTypeAA0deH0Vv":{"name":"cardType","abstract":"

    Undocumented

    ","parent_name":"CreditCardConfiguration"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"CreditCardConfiguration"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift23CreditCardConfigurationVAcA0dE4TypeV04cardG0_tcfc":{"name":"init(cardType:)","abstract":"

    Undocumented

    ","parent_name":"CreditCardConfiguration"},"Structs/CreditCardType.html#/s:s16RawRepresentableP8rawValue0aD0Qzv":{"name":"rawValue","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:s9OptionSetPx8RawValueQz03rawD0_tcfc":{"name":"init(rawValue:)","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV15americanExpressACvZ":{"name":"americanExpress","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV10dinersClubACvZ":{"name":"dinersClub","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV8discoverACvZ":{"name":"discover","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV3jcbACvZ":{"name":"jcb","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV7maestroACvZ":{"name":"maestro","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV10mastercardACvZ":{"name":"mastercard","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV4visaACvZ":{"name":"visa","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV3allACvZ":{"name":"all","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV8allArraySayACGvZ":{"name":"allArray","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV11descriptionSSv":{"name":"description","abstract":"

    Literal description for set of credit cards, separated with commas and single space.

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV5regexSSv":{"name":"regex","abstract":"

    Combined regular expression string for set of credit cards.

    ","parent_name":"CreditCardType"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationV13allowsUnicodeSbv":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode letters and numbers. If false then only ASCII letters (A-Z, a-z, 0-9) are allowed.

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationV16allowsWhitespaceSbv":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AlphabeticCondition"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"PostcodeValidator"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeValidator"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationV5ranges09CountableD0VySiGv":{"name":"range","abstract":"

    Undocumented

    ","parent_name":"RangeConfiguration"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationVACycfc":{"name":"init()","abstract":"

    Initializes a RangeConfiguration with a 0..<1 range.

    ","parent_name":"RangeConfiguration"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationVACs09CountableD0VySiG5range_tcfc":{"name":"init(range:)","abstract":"

    Undocumented

    ","parent_name":"RangeConfiguration"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"AlphabeticValidator"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticValidator"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"PresentCondition"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV11validatableAA0B7Control_pv":{"name":"validatable","abstract":"

    A Validatable that contains text to be validated.

    ","parent_name":"FormEntry"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV9validatorAA0B0_pv":{"name":"validator","abstract":"

    A Validator to use to validate text from validatable.

    ","parent_name":"FormEntry"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV15checkConditionsSayAA9Condition_pGSgyF":{"name":"checkConditions()","abstract":"

    Checks the text from validatable using validator from FormEntry (NOT the validator from validatable).

    ","parent_name":"FormEntry"},"Structs/URLValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"URLValidator"},"Structs/URLValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift09CompositeB0V10validatorsSayAA0B0_pGv":{"name":"validators","abstract":"

    Undocumented

    ","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift09CompositeB0VACSayAA0B0_pG10validators_tcfc":{"name":"init(validators:)","abstract":"

    Initializes a CompositeValidator.

    ","parent_name":"CompositeValidator"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"URLShorthandCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift12NotConditionV9conditionAA0E0_pv":{"name":"condition","abstract":"

    Undocumented

    ","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift12NotConditionVAcA0E0_p9condition_tcfc":{"name":"init(condition:)","abstract":"

    Undocumented

    ","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"NotCondition"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"EmailValidator"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"EmailValidator"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift21PostcodeConfigurationV7countryAA0D9CountriesOv":{"name":"country","abstract":"

    Undocumented

    ","parent_name":"PostcodeConfiguration"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"PostcodeConfiguration"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift21PostcodeConfigurationVAcA0D9CountriesO7country_tcfc":{"name":"init(country:)","abstract":"

    Undocumented

    ","parent_name":"PostcodeConfiguration"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"NumericCondition"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationV13allowsUnicodeSbv":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode letters. If false then only ASCII letters (A-Z, a-z) are allowed.

    ","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationV16allowsWhitespaceSbv":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphabeticConfiguration"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"PasswordStrengthValidator"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift010CreditCardB0V05validE5TypesySS3for_yAA0dE4TypeVc10completiontF":{"name":"validCardTypes(for:completion:)","abstract":"

    Returns valid card types for a credit card number asynchronously.

    ","parent_name":"CreditCardValidator"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AlphanumericCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"RangeCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"EmailCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift19CreditCardConditionV5checkSbSSSgF":{"name":"check(_:)","abstract":"

    Checks if the string is a valid credit card number, after removes all whitespace.

    ","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift19CreditCardConditionV5checkSbSS_So19NSRegularExpressionC9withRegextF":{"name":"check(_:withRegex:)","abstract":"

    Undocumented

    ","parent_name":"CreditCardCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift11OrConditionV10conditionsSayAA0E0_pGv":{"name":"conditions","abstract":"

    Undocumented

    ","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift11OrConditionVACSayAA0E0_pG10conditions_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"OrCondition"},"Structs/NumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"NumericValidator"},"Structs/NumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"NumericValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","parent_name":"PresentValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"PresentValidator"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationV13allowsUnicodeSbv":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode numbers. If false then only ASCII numbers (0-9) are allowed.

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationV16allowsWhitespaceSbv":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html":{"name":"NumericConfiguration","abstract":"

    Stores configuration for NumericCondition.

    "},"Structs/PresentValidator.html":{"name":"PresentValidator","abstract":"

    The PresentValidator contains an PresentCondition. A valid string is a non-empty string.

    "},"Structs/NumericValidator.html":{"name":"NumericValidator","abstract":"

    The NumericValidator contains an NumericCondition. A valid string only contains numbers.

    "},"Structs/OrCondition.html":{"name":"OrCondition","abstract":"

    A condition that returns the result of either operands.

    "},"Structs/CreditCardCondition.html":{"name":"CreditCardCondition","abstract":"

    The CreditCardCondition checks a string for a credit card number.

    "},"Structs/PostcodeCondition.html":{"name":"PostcodeCondition","abstract":"

    The PostcodeCondition checks a string for a post code.

    "},"Structs/EmailCondition.html":{"name":"EmailCondition","abstract":"

    The EmailCondition checks a string for an email.

    "},"Structs/RangeCondition.html":{"name":"RangeCondition","abstract":"

    The RangeCondition validates the length of a string.

    "},"Structs/AlphanumericCondition.html":{"name":"AlphanumericCondition","abstract":"

    The AlphanumericCondition checks a string for occurrences of letters and/or numbers.

    "},"Structs/CreditCardValidator.html":{"name":"CreditCardValidator","abstract":"

    The CreditCardValidator contains an CreditCardCondition. A valid string is a credit card number.

    "},"Structs/PasswordStrengthValidator.html":{"name":"PasswordStrengthValidator","abstract":"

    The PasswordStrengthValidator contains an PasswordStrengthCondition. A valid string meets the required strength level.

    "},"Structs/AlphabeticConfiguration.html":{"name":"AlphabeticConfiguration","abstract":"

    Stores configuration for AlphabeticCondition.

    "},"Structs/NumericCondition.html":{"name":"NumericCondition","abstract":"

    The NumericCondition checks a string for numbers.

    "},"Structs/PostcodeConfiguration.html":{"name":"PostcodeConfiguration","abstract":"

    Stores configuration for PostcodeCondition.

    "},"Structs/EmailValidator.html":{"name":"EmailValidator","abstract":"

    The EmailValidator contains an EmailCondition. A valid string is an email address.

    "},"Structs/NotCondition.html":{"name":"NotCondition","abstract":"

    A condition that returns the opposite of the original condition.

    "},"Structs/URLShorthandCondition.html":{"name":"URLShorthandCondition","abstract":"

    The URLShorthandCondition checks a string for a valid URL.

    "},"Structs/CompositeValidator.html":{"name":"CompositeValidator","abstract":"

    The CompositeValidator concatenates all of the conditions of the individual validators. All conditions must be satisfied for a string to be valid.

    "},"Structs/URLValidator.html":{"name":"URLValidator","abstract":"

    The URLValidator contains an URLCondition. A valid string is a full URL with scheme.

    "},"Structs/FormEntry.html":{"name":"FormEntry","abstract":"

    A single entry within a Form.

    "},"Structs/PresentCondition.html":{"name":"PresentCondition","abstract":"

    The PresentCondition checks for the presence of a string.

    "},"Structs/AlphabeticValidator.html":{"name":"AlphabeticValidator","abstract":"

    The AlphabeticValidator contains an AlphabeticCondition. A valid string only contains letters.

    "},"Structs/RangeConfiguration.html":{"name":"RangeConfiguration","abstract":"

    Stores configuration for RangeCondition.

    "},"Structs/PostcodeValidator.html":{"name":"PostcodeValidator","abstract":"

    The PostcodeValidator contains an PostcodeCondition. A valid string is a postcode.

    "},"Structs/AlphabeticCondition.html":{"name":"AlphabeticCondition","abstract":"

    The AlphabeticCondition checks a string for occurrences of letters.

    "},"Structs/AlphanumericConfiguration.html":{"name":"AlphanumericConfiguration","abstract":"

    Stores configuration for AlphanumericCondition.

    "},"Structs/CreditCardType.html":{"name":"CreditCardType","abstract":"

    Credit card types that are supported by CreditCardCondition. There is a regex property that returns the regex for validating that credit card number.

    "},"Structs/CreditCardConfiguration.html":{"name":"CreditCardConfiguration","abstract":"

    Stores configuration for CreditCardCondition.

    "},"Structs/URLShorthandValidator.html":{"name":"URLShorthandValidator","abstract":"

    The URLShorthandValidator contains an URLShorthandCondition. A valid string is a URL, with or without scheme.

    "},"Structs/PasswordStrengthConfiguration.html":{"name":"PasswordStrengthConfiguration","abstract":"

    Stores configuration for PasswordStrengthCondition.

    "},"Structs/URLCondition.html":{"name":"URLCondition","abstract":"

    The URLCondition checks a string for a valid URL.

    "},"Structs/RangeValidator.html":{"name":"RangeValidator","abstract":"

    The RangeValidator contains an RangeCondition. A valid string meets the required string length.

    "},"Structs/ControlForm.html":{"name":"ControlForm","abstract":"

    Convenience implementation of Form that is a form full of any type of ValidatorControl.

    "},"Structs/AlphanumericValidator.html":{"name":"AlphanumericValidator","abstract":"

    The AlphanumericValidator contains an AlphanumericCondition. A valid string only contains letters and/or numbers.

    "},"Structs/PasswordStrengthCondition.html":{"name":"PasswordStrengthCondition","abstract":"

    The PasswordStrengthCondition checks for the strength of a password string."},"Structs/AndCondition.html":{"name":"AndCondition","abstract":"

    A condition that returns the result of either operands.

    "},"Protocols/Form.html#/s:18FormValidatorSwift0A0P7entriesSayAA0A5EntryVGv":{"name":"entries","abstract":"

    Entries in the form.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P7isValidSbv":{"name":"isValid","abstract":"

    Whether or not the entire form is valid.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0Pxycfc":{"name":"init()","abstract":"

    Creates an empty Form.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0PxSayAA0B7Control_pG12validatables_tcfc":{"name":"init(validatables:)","abstract":"

    Creates a Form where each Validatable uses its own Validator for validation.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0PxSgSayAA0B7Control_pG12validatables_SayAA0B0_pG10validatorstcfc":{"name":"init(validatables:validators:)","abstract":"

    Creates a Form where each Validatable uses a custom Validator for validation. If validatables and validators have a different number of elements then returns nil.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P8addEntryyAA0B7Control_pF":{"name":"addEntry(_:)","abstract":"

    Undocumented

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P20removeControlAtIndexAA0bE0_pSgSiF":{"name":"removeControlAtIndex(_:)","abstract":"

    Undocumented

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P15checkConditionsSayAA9Condition_pGSgyF":{"name":"checkConditions()","abstract":"

    Checks the text from each entry in entries.

    ","parent_name":"Form"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSv":{"name":"localizedViolationString","abstract":"

    Localized string which described the kind of violation.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP5regexSSv":{"name":"regex","abstract":"

    A regular expression string which the validated string is matched against.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","abstract":"

    If set to false the user is not able to enter characters which would break the condition.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","abstract":"

    Initializer that creates a condition based on default values.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","abstract":"

    Check the custom condition.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionPAAE11descriptionSSv":{"name":"description","abstract":"

    Undocumented

    ","parent_name":"Condition"},"Protocols/Configuration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","abstract":"

    Initializes a Configuration with the default values.

    ","parent_name":"Configuration"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP7isValidSbv":{"name":"isValid","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP20shouldAllowViolationSbv":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP23validateOnFocusLossOnlySbv":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP17validatorDelegateAA0bdF0_pSgXwv":{"name":"validatorDelegate","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD9DidChangeyAA0bD0_pF":{"name":"validatorControlDidChange(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD0yAA0bD0_p_Sb17changedValidStatetF":{"name":"validatorControl(_:changedValidState:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD0yAA0bD0_p_SayAA9Condition_pG18violatedConditionstF":{"name":"validatorControl(_:violatedConditions:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzv":{"name":"configuration","abstract":"

    Configuration for the Condition.

    ","parent_name":"ConfigurableCondition"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","abstract":"

    Initializes a new ConfigurableCondition with a given configuration.

    ","parent_name":"ConfigurableCondition"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"ConfigurableCondition"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","abstract":"

    Initializer that creates a condition based on default values.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGv":{"name":"conditions","abstract":"

    Conditions to use when validating text.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P15checkConditionsSayAA9Condition_pGSgSSSgF":{"name":"checkConditions(_:)","abstract":"

    Checks text for violation of each condition.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P22removeConditionOfClassyqd__mAA0E0Rd__lF":{"name":"removeConditionOfClass(_:)","abstract":"

    Removes all conditions of conditionClass type.

    ","parent_name":"Validator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","abstract":"

    Initializes a new ConfigurableValidator with a given configuration.

    ","parent_name":"ConfigurableValidator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"ConfigurableValidator"},"Protocols/Validatable.html#/s:18FormValidatorSwift11ValidatableP15validatableTextSSSgv":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"Validatable"},"Protocols/Validatable.html#/s:18FormValidatorSwift11ValidatableP9validatorAA0B0_pv":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"Validatable"},"Protocols/Validatable.html":{"name":"Validatable","abstract":"

    Undocumented

    "},"Protocols/ConfigurableValidator.html":{"name":"ConfigurableValidator","abstract":"

    A special type of Validator that allows configuration.

    "},"Protocols/Validator.html":{"name":"Validator","abstract":"

    Validator is a holder for conditions of type Condition."},"Protocols/ConfigurableCondition.html":{"name":"ConfigurableCondition","abstract":"

    A special type of Condition that allows configuration.

    "},"Protocols/ValidatorControlDelegate.html":{"name":"ValidatorControlDelegate","abstract":"

    Undocumented

    "},"Protocols/ValidatorControl.html":{"name":"ValidatorControl","abstract":"

    Undocumented

    "},"Protocols/Configuration.html":{"name":"Configuration","abstract":"

    A configuration for a Condition.

    "},"Protocols/Condition.html":{"name":"Condition","abstract":"

    A Condition is the smallest sub element of the validation framework."},"Protocols/Form.html":{"name":"Form","abstract":"

    A form to assist in validating ValidatorControl objects’ current states.

    "},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO8veryWeakA2CmF":{"name":"veryWeak","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO4weakA2CmF":{"name":"weak","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO6mediumA2CmF":{"name":"medium","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO6strongA2CmF":{"name":"strong","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO10veryStrongA2CmF":{"name":"veryStrong","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO6swedenA2CmF":{"name":"sweden","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO6turkeyA2CmF":{"name":"turkey","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO13unitedKingdomA2CmF":{"name":"unitedKingdom","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO12unitedStatesA2CmF":{"name":"unitedStates","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO5regexSSv":{"name":"regex","abstract":"

    The regex for validating the country’s postcode.

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO9allValuesSayACGvZ":{"name":"allValues","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html":{"name":"PostcodeCountries","abstract":"

    Countries that are supported by PostcodeCondition. Each postcode is an ISO 3166-1 alpha-3 country code. There is a regex property that returns the regex for validating that country’s postcode.

    "},"Enums/PasswordStrength.html":{"name":"PasswordStrength","abstract":"

    The strength required for the password. The strength is measured on five simple criteria - lower case characters, upper case characters, numeric characters, special characters, and is more than 8 characters long. Each of these matched criteria moves the password strength of the string up one strength. Not having 8 character minimum reduces the string by one strength level.

    "},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC20shouldAllowViolationSbv":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC23validateOnFocusLossOnlySbv":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC9validatorAA0B0_pv":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC17validatorDelegateAA0b7ControlG0_pSgXwv":{"name":"validatorDelegate","abstract":"

    Validator delegate for the text view.

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC011validatableD0SSSgv":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCAcA0B0_p9validator_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCACSC6CGRectV5frame_AA0B0_p9validatortcfc":{"name":"init(frame:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCACSC6CGRectV5frame_So15NSTextContainerCSg04textI0AA0B0_p9validatortcfc":{"name":"init(frame:textContainer:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC03setB8DelegateyAA0b7ControlG0_So06UITexteG0pF":{"name":"setValidatorDelegate(_:)","abstract":"

    Sets the validatorDelegate for the text view. This allows custom responses to both UITextViewDelegate callbacks as well as those from ValidatorControlDelegate.

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC09validatordE18SuccededConditionsyyF":{"name":"validatorTextViewSuccededConditions()","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC09validatordE18ViolatedConditionsySayAA9Condition_pGF":{"name":"validatorTextViewViolatedConditions(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC20shouldAllowViolationSbv":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC23validateOnFocusLossOnlySbv":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC9validatorAA0B0_pv":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC17validatorDelegateAA0b7ControlG0_pSgXwv":{"name":"validatorDelegate","abstract":"

    Validator delegate for the text field.

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC011validatableD0SSSgv":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldCAcA0B0_p9validator_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldCACSC6CGRectV5frame_AA0B0_p9validatortcfc":{"name":"init(frame:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextField(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC03setB8DelegateyAA0b7ControlG0_So06UITexteG0pF":{"name":"setValidatorDelegate(_:)","abstract":"

    Sets the validatorDelegate for the text field. This allows custom responses to both UITextFieldDelegate callbacks as well as those from ValidatorControlDelegate.

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC09validatordE18SuccededConditionsyyF":{"name":"validatorTextFieldSuccededConditions()","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC09validatordE18ViolatedConditionsySayAA9Condition_pGF":{"name":"validatorTextFieldViolatedConditions(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html":{"name":"ValidatorTextField","abstract":"

    Undocumented

    "},"Classes/ValidatorTextView.html":{"name":"ValidatorTextView","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift12AndConditionV10conditionsSayAA0E0_pGvp":{"name":"conditions","abstract":"

    Undocumented

    ","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift12AndConditionVACSayAA0E0_pG10conditions_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AndCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"PasswordStrengthCondition"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"AlphanumericValidator"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericValidator"},"Structs/ControlForm.html#/s:18FormValidatorSwift0A0P7entriesSayAA0A5EntryVGvp":{"name":"entries","parent_name":"ControlForm"},"Structs/ControlForm.html#/s:18FormValidatorSwift0A0Pxycfc":{"name":"init()","parent_name":"ControlForm"},"Structs/RangeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"RangeValidator"},"Structs/RangeValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"RangeValidator"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"URLCondition"},"Structs/URLCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"URLCondition"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift29PasswordStrengthConfigurationV08requiredE0AA0dE0Ovp":{"name":"requiredStrength","abstract":"

    Minimum strength required to be considered valid.

    ","parent_name":"PasswordStrengthConfiguration"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"PasswordStrengthConfiguration"},"Structs/PasswordStrengthConfiguration.html#/s:18FormValidatorSwift29PasswordStrengthConfigurationVAcA0dE0O08requiredE0_tcfc":{"name":"init(requiredStrength:)","abstract":"

    Initializes a PasswordStrengthConfiguration.

    ","parent_name":"PasswordStrengthConfiguration"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"URLShorthandValidator"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLShorthandValidator"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift23CreditCardConfigurationV8cardTypeAA0deH0Vvp":{"name":"cardType","abstract":"

    Undocumented

    ","parent_name":"CreditCardConfiguration"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"CreditCardConfiguration"},"Structs/CreditCardConfiguration.html#/s:18FormValidatorSwift23CreditCardConfigurationVAcA0dE4TypeV04cardG0_tcfc":{"name":"init(cardType:)","abstract":"

    Undocumented

    ","parent_name":"CreditCardConfiguration"},"Structs/CreditCardType.html#/s:s16RawRepresentableP8rawValue0aD0Qzvp":{"name":"rawValue","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:s9OptionSetPx8RawValueQz03rawD0_tcfc":{"name":"init(rawValue:)","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV15americanExpressACvpZ":{"name":"americanExpress","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV10dinersClubACvpZ":{"name":"dinersClub","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV8discoverACvpZ":{"name":"discover","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV3jcbACvpZ":{"name":"jcb","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV7maestroACvpZ":{"name":"maestro","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV10mastercardACvpZ":{"name":"mastercard","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV4visaACvpZ":{"name":"visa","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV3allACvpZ":{"name":"all","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV8allArraySayACGvpZ":{"name":"allArray","abstract":"

    Undocumented

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV11descriptionSSvp":{"name":"description","abstract":"

    Literal description for set of credit cards, separated with commas and single space.

    ","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:18FormValidatorSwift14CreditCardTypeV5regexSSvp":{"name":"regex","abstract":"

    Combined regular expression string for set of credit cards.

    ","parent_name":"CreditCardType"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationV13allowsUnicodeSbvp":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode letters and numbers. If false then only ASCII letters (A-Z, a-z, 0-9) are allowed.

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationV16allowsWhitespaceSbvp":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"AlphanumericConfiguration"},"Structs/AlphanumericConfiguration.html#/s:18FormValidatorSwift25AlphanumericConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphanumericConfiguration"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AlphabeticCondition"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PostcodeValidator"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeValidator"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationV5ranges09CountableD0VySiGvp":{"name":"range","abstract":"

    Undocumented

    ","parent_name":"RangeConfiguration"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationVACycfc":{"name":"init()","abstract":"

    Initializes a RangeConfiguration with a 0..<1 range.

    ","parent_name":"RangeConfiguration"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationVACs09CountableD0VySiG5range_tcfc":{"name":"init(range:)","abstract":"

    Undocumented

    ","parent_name":"RangeConfiguration"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"AlphabeticValidator"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticValidator"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"PresentCondition"},"Structs/PresentCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"PresentCondition"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV11validatableAA0B7Control_pvp":{"name":"validatable","abstract":"

    A Validatable that contains text to be validated.

    ","parent_name":"FormEntry"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV9validatorAA0B0_pvp":{"name":"validator","abstract":"

    A Validator to use to validate text from validatable.

    ","parent_name":"FormEntry"},"Structs/FormEntry.html#/s:18FormValidatorSwift0A5EntryV15checkConditionsSayAA9Condition_pGSgyF":{"name":"checkConditions()","abstract":"

    Checks the text from validatable using validator from FormEntry (NOT the validator from validatable).

    ","parent_name":"FormEntry"},"Structs/URLValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"URLValidator"},"Structs/URLValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift09CompositeB0V10validatorsSayAA0B0_pGvp":{"name":"validators","abstract":"

    Undocumented

    ","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"CompositeValidator"},"Structs/CompositeValidator.html#/s:18FormValidatorSwift09CompositeB0VACSayAA0B0_pG10validators_tcfc":{"name":"init(validators:)","abstract":"

    Initializes a CompositeValidator.

    ","parent_name":"CompositeValidator"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"URLShorthandCondition"},"Structs/URLShorthandCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"URLShorthandCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift12NotConditionV9conditionAA0E0_pvp":{"name":"condition","abstract":"

    Undocumented

    ","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift12NotConditionVAcA0E0_p9condition_tcfc":{"name":"init(condition:)","abstract":"

    Undocumented

    ","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"NotCondition"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"EmailValidator"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"EmailValidator"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift21PostcodeConfigurationV7countryAA0D9CountriesOvp":{"name":"country","abstract":"

    Undocumented

    ","parent_name":"PostcodeConfiguration"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"PostcodeConfiguration"},"Structs/PostcodeConfiguration.html#/s:18FormValidatorSwift21PostcodeConfigurationVAcA0D9CountriesO7country_tcfc":{"name":"init(country:)","abstract":"

    Undocumented

    ","parent_name":"PostcodeConfiguration"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"NumericCondition"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationV13allowsUnicodeSbvp":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode letters. If false then only ASCII letters (A-Z, a-z) are allowed.

    ","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationV16allowsWhitespaceSbvp":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"AlphabeticConfiguration"},"Structs/AlphabeticConfiguration.html#/s:18FormValidatorSwift23AlphabeticConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphabeticConfiguration"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PasswordStrengthValidator"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift010CreditCardB0V05validE5TypesySS3for_yAA0dE4TypeVc10completiontF":{"name":"validCardTypes(for:completion:)","abstract":"

    Returns valid card types for a credit card number asynchronously.

    ","parent_name":"CreditCardValidator"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"AlphanumericCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"RangeCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"EmailCondition"},"Structs/EmailCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"EmailCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"PostcodeCondition"},"Structs/PostcodeCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift19CreditCardConditionV5checkSbSSSgF":{"name":"check(_:)","abstract":"

    Checks if the string is a valid credit card number, after removes all whitespace.

    ","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift19CreditCardConditionV5checkSbSS_So19NSRegularExpressionC9withRegextF":{"name":"check(_:withRegex:)","abstract":"

    Undocumented

    ","parent_name":"CreditCardCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift11OrConditionV10conditionsSayAA0E0_pGvp":{"name":"conditions","abstract":"

    Undocumented

    ","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift11OrConditionVACSayAA0E0_pG10conditions_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","parent_name":"OrCondition"},"Structs/NumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"NumericValidator"},"Structs/NumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","parent_name":"NumericValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PresentValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"PresentValidator"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationV13allowsUnicodeSbvp":{"name":"allowsUnicode","abstract":"

    Whether or not to allow Unicode numbers. If false then only ASCII numbers (0-9) are allowed.

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationV16allowsWhitespaceSbvp":{"name":"allowsWhitespace","abstract":"

    Whether or not to allow whitespace.

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html#/s:18FormValidatorSwift20NumericConfigurationVACSb13allowsUnicode_Sb0F10Whitespacetcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"NumericConfiguration"},"Structs/NumericConfiguration.html":{"name":"NumericConfiguration","abstract":"

    Stores configuration for NumericCondition.

    "},"Structs/PresentValidator.html":{"name":"PresentValidator","abstract":"

    The PresentValidator contains an PresentCondition. A valid string is a non-empty string.

    "},"Structs/NumericValidator.html":{"name":"NumericValidator","abstract":"

    The NumericValidator contains an NumericCondition. A valid string only contains numbers.

    "},"Structs/OrCondition.html":{"name":"OrCondition","abstract":"

    A condition that returns the result of either operands.

    "},"Structs/CreditCardCondition.html":{"name":"CreditCardCondition","abstract":"

    The CreditCardCondition checks a string for a credit card number.

    "},"Structs/PostcodeCondition.html":{"name":"PostcodeCondition","abstract":"

    The PostcodeCondition checks a string for a post code.

    "},"Structs/EmailCondition.html":{"name":"EmailCondition","abstract":"

    The EmailCondition checks a string for an email.

    "},"Structs/RangeCondition.html":{"name":"RangeCondition","abstract":"

    The RangeCondition validates the length of a string.

    "},"Structs/AlphanumericCondition.html":{"name":"AlphanumericCondition","abstract":"

    The AlphanumericCondition checks a string for occurrences of letters and/or numbers.

    "},"Structs/CreditCardValidator.html":{"name":"CreditCardValidator","abstract":"

    The CreditCardValidator contains an CreditCardCondition. A valid string is a credit card number.

    "},"Structs/PasswordStrengthValidator.html":{"name":"PasswordStrengthValidator","abstract":"

    The PasswordStrengthValidator contains an PasswordStrengthCondition. A valid string meets the required strength level.

    "},"Structs/AlphabeticConfiguration.html":{"name":"AlphabeticConfiguration","abstract":"

    Stores configuration for AlphabeticCondition.

    "},"Structs/NumericCondition.html":{"name":"NumericCondition","abstract":"

    The NumericCondition checks a string for numbers.

    "},"Structs/PostcodeConfiguration.html":{"name":"PostcodeConfiguration","abstract":"

    Stores configuration for PostcodeCondition.

    "},"Structs/EmailValidator.html":{"name":"EmailValidator","abstract":"

    The EmailValidator contains an EmailCondition. A valid string is an email address.

    "},"Structs/NotCondition.html":{"name":"NotCondition","abstract":"

    A condition that returns the opposite of the original condition.

    "},"Structs/URLShorthandCondition.html":{"name":"URLShorthandCondition","abstract":"

    The URLShorthandCondition checks a string for a valid URL.

    "},"Structs/CompositeValidator.html":{"name":"CompositeValidator","abstract":"

    The CompositeValidator concatenates all of the conditions of the individual validators. All conditions must be satisfied for a string to be valid.

    "},"Structs/URLValidator.html":{"name":"URLValidator","abstract":"

    The URLValidator contains an URLCondition. A valid string is a full URL with scheme.

    "},"Structs/FormEntry.html":{"name":"FormEntry","abstract":"

    A single entry within a Form.

    "},"Structs/PresentCondition.html":{"name":"PresentCondition","abstract":"

    The PresentCondition checks for the presence of a string.

    "},"Structs/AlphabeticValidator.html":{"name":"AlphabeticValidator","abstract":"

    The AlphabeticValidator contains an AlphabeticCondition. A valid string only contains letters.

    "},"Structs/RangeConfiguration.html":{"name":"RangeConfiguration","abstract":"

    Stores configuration for RangeCondition.

    "},"Structs/PostcodeValidator.html":{"name":"PostcodeValidator","abstract":"

    The PostcodeValidator contains an PostcodeCondition. A valid string is a postcode.

    "},"Structs/AlphabeticCondition.html":{"name":"AlphabeticCondition","abstract":"

    The AlphabeticCondition checks a string for occurrences of letters.

    "},"Structs/AlphanumericConfiguration.html":{"name":"AlphanumericConfiguration","abstract":"

    Stores configuration for AlphanumericCondition.

    "},"Structs/CreditCardType.html":{"name":"CreditCardType","abstract":"

    Credit card types that are supported by CreditCardCondition. There is a regex property that returns the regex for validating that credit card number.

    "},"Structs/CreditCardConfiguration.html":{"name":"CreditCardConfiguration","abstract":"

    Stores configuration for CreditCardCondition.

    "},"Structs/URLShorthandValidator.html":{"name":"URLShorthandValidator","abstract":"

    The URLShorthandValidator contains an URLShorthandCondition. A valid string is a URL, with or without scheme.

    "},"Structs/PasswordStrengthConfiguration.html":{"name":"PasswordStrengthConfiguration","abstract":"

    Stores configuration for PasswordStrengthCondition.

    "},"Structs/URLCondition.html":{"name":"URLCondition","abstract":"

    The URLCondition checks a string for a valid URL.

    "},"Structs/RangeValidator.html":{"name":"RangeValidator","abstract":"

    The RangeValidator contains an RangeCondition. A valid string meets the required string length.

    "},"Structs/ControlForm.html":{"name":"ControlForm","abstract":"

    Convenience implementation of Form that is a form full of any type of ValidatorControl.

    "},"Structs/AlphanumericValidator.html":{"name":"AlphanumericValidator","abstract":"

    The AlphanumericValidator contains an AlphanumericCondition. A valid string only contains letters and/or numbers.

    "},"Structs/PasswordStrengthCondition.html":{"name":"PasswordStrengthCondition","abstract":"

    The PasswordStrengthCondition checks for the strength of a password string."},"Structs/AndCondition.html":{"name":"AndCondition","abstract":"

    A condition that returns the result of either operands.

    "},"Protocols/Form.html#/s:18FormValidatorSwift0A0P7entriesSayAA0A5EntryVGvp":{"name":"entries","abstract":"

    Entries in the form.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P7isValidSbvp":{"name":"isValid","abstract":"

    Whether or not the entire form is valid.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0Pxycfc":{"name":"init()","abstract":"

    Creates an empty Form.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0PxSayAA0B7Control_pG12validatables_tcfc":{"name":"init(validatables:)","abstract":"

    Creates a Form where each Validatable uses its own Validator for validation.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0PxSgSayAA0B7Control_pG12validatables_SayAA0B0_pG10validatorstcfc":{"name":"init(validatables:validators:)","abstract":"

    Creates a Form where each Validatable uses a custom Validator for validation. If validatables and validators have a different number of elements then returns nil.

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P8addEntryyAA0B7Control_pF":{"name":"addEntry(_:)","abstract":"

    Undocumented

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P20removeControlAtIndexAA0bE0_pSgSiF":{"name":"removeControlAtIndex(_:)","abstract":"

    Undocumented

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P15checkConditionsSayAA9Condition_pGSgyF":{"name":"checkConditions()","abstract":"

    Checks the text from each entry in entries.

    ","parent_name":"Form"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP24localizedViolationStringSSvp":{"name":"localizedViolationString","abstract":"

    Localized string which described the kind of violation.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP5regexSSvp":{"name":"regex","abstract":"

    A regular expression string which the validated string is matched against.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","abstract":"

    If set to false the user is not able to enter characters which would break the condition.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","abstract":"

    Initializer that creates a condition based on default values.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:18FormValidatorSwift9ConditionP5checkSbSSSgF":{"name":"check(_:)","abstract":"

    Check the custom condition.

    ","parent_name":"Condition"},"Protocols/Condition.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"Condition"},"Protocols/Configuration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","abstract":"

    Initializes a Configuration with the default values.

    ","parent_name":"Configuration"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP7isValidSbvp":{"name":"isValid","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP23validateOnFocusLossOnlySbvp":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControl.html#/s:18FormValidatorSwift0B7ControlP17validatorDelegateAA0bdF0_pSgvp":{"name":"validatorDelegate","abstract":"

    Delegate for the ValidatorControl.

    ","parent_name":"ValidatorControl"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD9DidChangeyAA0bD0_pF":{"name":"validatorControlDidChange(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD0yAA0bD0_p_Sb17changedValidStatetF":{"name":"validatorControl(_:changedValidState:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ValidatorControlDelegate.html#/s:18FormValidatorSwift0B15ControlDelegateP09validatorD0yAA0bD0_p_SayAA9Condition_pG18violatedConditionstF":{"name":"validatorControl(_:violatedConditions:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP17ConfigurationType":{"name":"ConfigurationType","abstract":"

    Undocumented

    ","parent_name":"ConfigurableCondition"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP13configuration17ConfigurationTypeQzvp":{"name":"configuration","abstract":"

    Configuration for the Condition.

    ","parent_name":"ConfigurableCondition"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionPx17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","abstract":"

    Initializes a new ConfigurableCondition with a given configuration.

    ","parent_name":"ConfigurableCondition"},"Protocols/ConfigurableCondition.html#/s:18FormValidatorSwift9ConditionPxycfc":{"name":"init()","parent_name":"ConfigurableCondition"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","abstract":"

    Initializer that creates a condition based on default values.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","abstract":"

    Conditions to use when validating text.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P15checkConditionsSayAA9Condition_pGSgSSSgF":{"name":"checkConditions(_:)","abstract":"

    Checks text for violation of each condition.

    ","parent_name":"Validator"},"Protocols/Validator.html#/s:18FormValidatorSwift0B0P22removeConditionOfClassyqd__mAA0E0Rd__lF":{"name":"removeConditionOfClass(_:)","abstract":"

    Removes all conditions of conditionClass type.

    ","parent_name":"Validator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift012ConfigurableB0P17ConfigurationType":{"name":"ConfigurationType","abstract":"

    Undocumented

    ","parent_name":"ConfigurableValidator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift012ConfigurableB0Px17ConfigurationTypeQz13configuration_tcfc":{"name":"init(configuration:)","abstract":"

    Initializes a new ConfigurableValidator with a given configuration.

    ","parent_name":"ConfigurableValidator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"ConfigurableValidator"},"Protocols/Validatable.html#/s:18FormValidatorSwift11ValidatableP15validatableTextSSSgvp":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"Validatable"},"Protocols/Validatable.html#/s:18FormValidatorSwift11ValidatableP9validatorAA0B0_pvp":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"Validatable"},"Protocols/Validatable.html":{"name":"Validatable","abstract":"

    Undocumented

    "},"Protocols/ConfigurableValidator.html":{"name":"ConfigurableValidator","abstract":"

    A special type of Validator that allows configuration.

    "},"Protocols/Validator.html":{"name":"Validator","abstract":"

    Validator is a holder for conditions of type Condition."},"Protocols/ConfigurableCondition.html":{"name":"ConfigurableCondition","abstract":"

    A special type of Condition that allows configuration.

    "},"Protocols/ValidatorControlDelegate.html":{"name":"ValidatorControlDelegate","abstract":"

    Undocumented

    "},"Protocols/ValidatorControl.html":{"name":"ValidatorControl","abstract":"

    Undocumented

    "},"Protocols/Configuration.html":{"name":"Configuration","abstract":"

    A configuration for a Condition.

    "},"Protocols/Condition.html":{"name":"Condition","abstract":"

    A Condition is the smallest sub element of the validation framework."},"Protocols/Form.html":{"name":"Form","abstract":"

    A form to assist in validating ValidatorControl objects’ current states.

    "},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO8veryWeakA2CmF":{"name":"veryWeak","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO4weakA2CmF":{"name":"weak","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO6mediumA2CmF":{"name":"medium","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO6strongA2CmF":{"name":"strong","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO10veryStrongA2CmF":{"name":"veryStrong","abstract":"

    Undocumented

    ","parent_name":"PasswordStrength"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO6swedenA2CmF":{"name":"sweden","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO6turkeyA2CmF":{"name":"turkey","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO13unitedKingdomA2CmF":{"name":"unitedKingdom","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO12unitedStatesA2CmF":{"name":"unitedStates","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO5regexSSvp":{"name":"regex","abstract":"

    The regex for validating the country’s postcode.

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO9allValuesSayACGvpZ":{"name":"allValues","abstract":"

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html":{"name":"PostcodeCountries","abstract":"

    Countries that are supported by PostcodeCondition. Each postcode is an ISO 3166-1 alpha-3 country code. There is a regex property that returns the regex for validating that country’s postcode.

    "},"Enums/PasswordStrength.html":{"name":"PasswordStrength","abstract":"

    The strength required for the password. The strength is measured on five simple criteria - lower case characters, upper case characters, numeric characters, special characters, and is more than 8 characters long. Each of these matched criteria moves the password strength of the string up one strength. Not having 8 character minimum reduces the string by one strength level.

    "},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC23validateOnFocusLossOnlySbvp":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC9validatorAA0B0_pvp":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC17validatorDelegateAA0b7ControlG0_pSgXwvp":{"name":"validatorDelegate","abstract":"

    Validator delegate for the text view.

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC011validatableD0SSSgvp":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCAcA0B0_p9validator_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCACSC6CGRectV5frame_AA0B0_p9validatortcfc":{"name":"init(frame:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewCACSC6CGRectV5frame_So15NSTextContainerCSg04textI0AA0B0_p9validatortcfc":{"name":"init(frame:textContainer:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextView(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC03setB8DelegateyAA0b7ControlG0_So06UITexteG0pF":{"name":"setValidatorDelegate(_:)","abstract":"

    Sets the validatorDelegate for the text view. This allows custom responses to both UITextViewDelegate callbacks as well as those from ValidatorControlDelegate.

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC09validatordE18SuccededConditionsyyF":{"name":"validatorTextViewSuccededConditions()","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC09validatordE18ViolatedConditionsySayAA9Condition_pGF":{"name":"validatorTextViewViolatedConditions(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC20shouldAllowViolationSbvp":{"name":"shouldAllowViolation","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC23validateOnFocusLossOnlySbvp":{"name":"validateOnFocusLossOnly","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC9validatorAA0B0_pvp":{"name":"validator","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC17validatorDelegateAA0b7ControlG0_pSgXwvp":{"name":"validatorDelegate","abstract":"

    Validator delegate for the text field.

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC011validatableD0SSSgvp":{"name":"validatableText","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldCAcA0B0_p9validator_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldCACSC6CGRectV5frame_AA0B0_p9validatortcfc":{"name":"init(frame:validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextField(im)initWithCoder:":{"name":"init(coder:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC03setB8DelegateyAA0b7ControlG0_So06UITexteG0pF":{"name":"setValidatorDelegate(_:)","abstract":"

    Sets the validatorDelegate for the text field. This allows custom responses to both UITextFieldDelegate callbacks as well as those from ValidatorControlDelegate.

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC09validatordE18SuccededConditionsyyF":{"name":"validatorTextFieldSuccededConditions()","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC09validatordE18ViolatedConditionsySayAA9Condition_pGF":{"name":"validatorTextFieldViolatedConditions(_:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html":{"name":"ValidatorTextField","abstract":"

    Undocumented

    "},"Classes/ValidatorTextView.html":{"name":"ValidatorTextView","abstract":"

    Undocumented

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index ec83f8f..a9e265d 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -393,10 +393,17 @@ "warning": "undocumented" }, { - "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Protocols/Condition.swift", - "line": 65, - "symbol": "Condition.description", - "symbol_kind": "source.lang.swift.decl.var.instance", + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Protocols/ConfigurableCondition.swift", + "line": 15, + "symbol": "ConfigurableCondition.ConfigurationType", + "symbol_kind": "source.lang.swift.decl.associatedtype", + "warning": "undocumented" + }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Protocols/ConfigurableValidator.swift", + "line": 15, + "symbol": "ConfigurableValidator.ConfigurationType", + "symbol_kind": "source.lang.swift.decl.associatedtype", "warning": "undocumented" }, { @@ -413,13 +420,6 @@ "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, - { - "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Protocols/Form.swift", - "line": 71, - "symbol": "Form.isValid", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Protocols/Form.swift", "line": 100, @@ -520,14 +520,7 @@ }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Protocols/ValidatorControl.swift", - "line": 26, - "symbol": "ValidatorControl.validatorDelegate", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Protocols/ValidatorControl.swift", - "line": 33, + "line": 38, "symbol": "ValidatorControl.isValid", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented"