From 5a5785f6d19a02568a0bbdfbdd28da27028962ae Mon Sep 17 00:00:00 2001 From: Aaron McTavish Date: Wed, 24 Apr 2019 15:45:15 +0100 Subject: [PATCH] Update documentation for v4.0.0 --- docs/Classes.html | 11 +- docs/Classes/ValidatorTextField.html | 69 ++- docs/Classes/ValidatorTextView.html | 71 ++- docs/Enums.html | 31 +- docs/Enums/PasswordStrength.html | 38 +- docs/Enums/PostcodeCountries.html | 52 +- docs/Protocols.html | 143 ++--- docs/Protocols/Condition.html | 20 +- docs/Protocols/ConfigurableCondition.html | 22 +- docs/Protocols/ConfigurableValidator.html | 20 +- docs/Protocols/Configuration.html | 6 +- docs/Protocols/Form.html | 26 +- docs/Protocols/Validatable.html | 10 +- docs/Protocols/Validator.html | 18 +- docs/Protocols/ValidatorControl.html | 16 +- docs/Protocols/ValidatorControlDelegate.html | 20 +- docs/Structs.html | 575 +++++++++--------- docs/Structs/AlphabeticCondition.html | 20 +- docs/Structs/AlphabeticConfiguration.html | 12 +- docs/Structs/AlphabeticValidator.html | 12 +- docs/Structs/AlphanumericCondition.html | 20 +- docs/Structs/AlphanumericConfiguration.html | 12 +- docs/Structs/AlphanumericValidator.html | 12 +- docs/Structs/AndCondition.html | 22 +- docs/Structs/CompositeValidator.html | 12 +- docs/Structs/ControlForm.html | 8 +- docs/Structs/CreditCardCondition.html | 26 +- docs/Structs/CreditCardConfiguration.html | 12 +- docs/Structs/CreditCardType.html | 38 +- docs/Structs/CreditCardValidator.html | 16 +- docs/Structs/EmailCondition.html | 14 +- docs/Structs/EmailValidator.html | 8 +- docs/Structs/FormEntry.html | 6 +- docs/Structs/NotCondition.html | 22 +- docs/Structs/NumericCondition.html | 20 +- docs/Structs/NumericConfiguration.html | 12 +- docs/Structs/NumericValidator.html | 12 +- docs/Structs/OptionalValidator.html | 16 +- docs/Structs/OrCondition.html | 22 +- docs/Structs/PasswordStrengthCondition.html | 22 +- .../PasswordStrengthConfiguration.html | 12 +- docs/Structs/PasswordStrengthValidator.html | 12 +- docs/Structs/PostcodeCondition.html | 18 +- docs/Structs/PostcodeConfiguration.html | 12 +- docs/Structs/PostcodeValidator.html | 12 +- docs/Structs/PresentCondition.html | 18 +- docs/Structs/PresentValidator.html | 8 +- docs/Structs/RangeCondition.html | 22 +- docs/Structs/RangeConfiguration.html | 16 +- docs/Structs/RangeValidator.html | 12 +- docs/Structs/URLCondition.html | 14 +- docs/Structs/URLShorthandCondition.html | 14 +- docs/Structs/URLShorthandValidator.html | 8 +- docs/Structs/URLValidator.html | 8 +- docs/badge.svg | 4 +- .../Contents/Resources/Documents/Classes.html | 11 +- .../Documents/Classes/ValidatorTextField.html | 69 ++- .../Documents/Classes/ValidatorTextView.html | 71 ++- .../Contents/Resources/Documents/Enums.html | 31 +- .../Documents/Enums/PasswordStrength.html | 38 +- .../Documents/Enums/PostcodeCountries.html | 52 +- .../Resources/Documents/Protocols.html | 143 ++--- .../Documents/Protocols/Condition.html | 20 +- .../Protocols/ConfigurableCondition.html | 22 +- .../Protocols/ConfigurableValidator.html | 20 +- .../Documents/Protocols/Configuration.html | 6 +- .../Resources/Documents/Protocols/Form.html | 26 +- .../Documents/Protocols/Validatable.html | 10 +- .../Documents/Protocols/Validator.html | 18 +- .../Documents/Protocols/ValidatorControl.html | 16 +- .../Protocols/ValidatorControlDelegate.html | 20 +- .../Contents/Resources/Documents/Structs.html | 575 +++++++++--------- .../Structs/AlphabeticCondition.html | 20 +- .../Structs/AlphabeticConfiguration.html | 12 +- .../Structs/AlphabeticValidator.html | 12 +- .../Structs/AlphanumericCondition.html | 20 +- .../Structs/AlphanumericConfiguration.html | 12 +- .../Structs/AlphanumericValidator.html | 12 +- .../Documents/Structs/AndCondition.html | 22 +- .../Documents/Structs/CompositeValidator.html | 12 +- .../Documents/Structs/ControlForm.html | 8 +- .../Structs/CreditCardCondition.html | 26 +- .../Structs/CreditCardConfiguration.html | 12 +- .../Documents/Structs/CreditCardType.html | 38 +- .../Structs/CreditCardValidator.html | 16 +- .../Documents/Structs/EmailCondition.html | 14 +- .../Documents/Structs/EmailValidator.html | 8 +- .../Documents/Structs/FormEntry.html | 6 +- .../Documents/Structs/NotCondition.html | 22 +- .../Documents/Structs/NumericCondition.html | 20 +- .../Structs/NumericConfiguration.html | 12 +- .../Documents/Structs/NumericValidator.html | 12 +- .../Documents/Structs/OptionalValidator.html | 16 +- .../Documents/Structs/OrCondition.html | 22 +- .../Structs/PasswordStrengthCondition.html | 22 +- .../PasswordStrengthConfiguration.html | 12 +- .../Structs/PasswordStrengthValidator.html | 12 +- .../Documents/Structs/PostcodeCondition.html | 18 +- .../Structs/PostcodeConfiguration.html | 12 +- .../Documents/Structs/PostcodeValidator.html | 12 +- .../Documents/Structs/PresentCondition.html | 18 +- .../Documents/Structs/PresentValidator.html | 8 +- .../Documents/Structs/RangeCondition.html | 22 +- .../Documents/Structs/RangeConfiguration.html | 16 +- .../Documents/Structs/RangeValidator.html | 12 +- .../Documents/Structs/URLCondition.html | 14 +- .../Structs/URLShorthandCondition.html | 14 +- .../Structs/URLShorthandValidator.html | 8 +- .../Documents/Structs/URLValidator.html | 8 +- .../Contents/Resources/Documents/index.html | 8 +- .../Contents/Resources/Documents/search.json | 2 +- .../Resources/Documents/undocumented.json | 14 + .../Contents/Resources/docSet.dsidx | Bin 81920 -> 81920 bytes docs/docsets/FormValidatorSwift.tgz | Bin 125837 -> 123739 bytes docs/index.html | 8 +- docs/search.json | 2 +- docs/undocumented.json | 14 + 117 files changed, 1792 insertions(+), 1680 deletions(-) diff --git a/docs/Classes.html b/docs/Classes.html index fcb6d4f..2c2c729 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -14,6 +14,7 @@ + @@ -22,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

@@ -256,7 +257,7 @@

Classes

Declaration

Swift

-
open class ValidatorTextField: UITextField, ValidatorControl
+
open class ValidatorTextField : UITextField, ValidatorControl
@@ -288,7 +289,7 @@

Declaration

Declaration

Swift

-
open class ValidatorTextView: UITextView, ValidatorControl
+
open class ValidatorTextView : UITextView, ValidatorControl
@@ -303,8 +304,8 @@

Declaration

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

@@ -229,7 +229,7 @@

ValidatorTextField

-
open class ValidatorTextField: UITextField, ValidatorControl
+
open class ValidatorTextField : UITextField, ValidatorControl
@@ -269,7 +269,7 @@

Properties

Declaration

Swift

-
open var shouldAllowViolation = false
+
open var shouldAllowViolation: Bool
@@ -296,7 +296,7 @@

Declaration

Declaration

Swift

-
open var validateOnFocusLossOnly = false
+
open var validateOnFocusLossOnly: Bool
@@ -323,7 +323,7 @@

Declaration

Declaration

Swift

-
open let validator: Validator
+
public let validator: Validator
@@ -333,9 +333,9 @@

Declaration

  • - + - validatorDelegate + validatorDelegate
    @@ -346,7 +346,7 @@

    Declaration

    Validator delegate for the text field.

    See also

    - setValidatorDelegate(_:) to set the validator delegate. + setValidatorDelegate(_:) to set the validator delegate.
    @@ -355,7 +355,7 @@

    Declaration

    Declaration

    Swift

    -
    open weak var validatorDelegate: ValidatorControlDelegate?
    +
    open var validatorDelegate: ValidatorControlDelegate? { get }
    @@ -382,7 +382,7 @@

    Declaration

    Declaration

    Swift

    -
    open var validatableText: String?
    +
    open var validatableText: String? { get }
    @@ -403,9 +403,9 @@

    Initializers

  • - + - init(validator:) + init(validator:)
    @@ -430,9 +430,9 @@

    Declaration

  • - + - init(frame:validator:) + init(frame:validator:)
    @@ -481,6 +481,33 @@

    Declaration

  • +
  • +
    + + + + deinit + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    deinit
    + +
    +
    +
    +
    +
  • @@ -495,9 +522,9 @@

    Custom Setters

  • - + - setValidatorDelegate(_:) + setValidatorDelegate(_:)
    @@ -505,7 +532,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.

    @@ -579,9 +606,9 @@

    Declaration

  • @@ -611,8 +638,8 @@

    Declaration

  • diff --git a/docs/Classes/ValidatorTextView.html b/docs/Classes/ValidatorTextView.html index 476f439..1e4eb7e 100644 --- a/docs/Classes/ValidatorTextView.html +++ b/docs/Classes/ValidatorTextView.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    ValidatorTextView

    -
    open class ValidatorTextView: UITextView, ValidatorControl
    +
    open class ValidatorTextView : UITextView, ValidatorControl
    @@ -269,7 +269,7 @@

    Properties

    Declaration

    Swift

    -
    open var shouldAllowViolation = false
    +
    open var shouldAllowViolation: Bool
    @@ -296,7 +296,7 @@

    Declaration

    Declaration

    Swift

    -
    open var validateOnFocusLossOnly = false
    +
    open var validateOnFocusLossOnly: Bool
  • @@ -323,7 +323,7 @@

    Declaration

    Declaration

    Swift

    -
    open let validator: Validator
    +
    public let validator: Validator
    @@ -333,9 +333,9 @@

    Declaration

  • - + - validatorDelegate + validatorDelegate
    @@ -355,7 +355,7 @@

    Declaration

    Declaration

    Swift

    -
    open weak var validatorDelegate: ValidatorControlDelegate?
    +
    open var validatorDelegate: ValidatorControlDelegate? { get }
    @@ -382,7 +382,7 @@

    Declaration

    Declaration

    Swift

    -
    open var validatableText: String?
    +
    open var validatableText: String? { get }
    @@ -403,9 +403,9 @@

    Initializers

  • - + - init(validator:) + init(validator:)
    @@ -430,9 +430,9 @@

    Declaration

  • - + - init(frame:validator:) + init(frame:validator:)
    @@ -457,9 +457,9 @@

    Declaration

  • - + - init(frame:textContainer:validator:) + init(frame:textContainer:validator:)
    @@ -508,6 +508,33 @@

    Declaration

  • +
  • +
    + + + + deinit + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    deinit
    + +
    +
    +
    +
    +
  • @@ -522,9 +549,9 @@

    Custom Setters

  • - + - setValidatorDelegate(_:) + setValidatorDelegate(_:)
    @@ -532,7 +559,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.

    @@ -606,9 +633,9 @@

    Declaration

  • @@ -638,8 +665,8 @@

    Declaration

  • diff --git a/docs/Enums.html b/docs/Enums.html index 13ca18c..01a16e4 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -14,6 +14,7 @@ + @@ -22,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -238,9 +239,9 @@

    Enumerations

  • @@ -248,15 +249,15 @@

    Enumerations

    -

    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.

    +

    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.

    - See more + See more

    Declaration

    Swift

    -
    public enum PostcodeCountries: String
    +
    public enum PasswordStrength : Int
    @@ -270,9 +271,9 @@

    Declaration

  • @@ -280,15 +281,15 @@

    Declaration

    -

    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.

    +

    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.

    - See more + See more

    Declaration

    Swift

    -
    public enum PasswordStrength: Int
    +
    public enum PostcodeCountries : String
    @@ -303,8 +304,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    PasswordStrength

    -
    public enum PasswordStrength: Int
    +
    public enum PasswordStrength : Int
    @@ -245,9 +245,9 @@

    PasswordStrength

  • - + - veryWeak + veryWeak
    @@ -262,7 +262,7 @@

    PasswordStrength

    Declaration

    Swift

    -
    case veryWeak, weak, medium, strong, veryStrong
    +
    case veryWeak
    @@ -272,9 +272,9 @@

    Declaration

  • - + - weak + weak
    @@ -289,7 +289,7 @@

    Declaration

    Declaration

    Swift

    -
    case veryWeak, weak, medium, strong, veryStrong
    +
    case weak
    @@ -299,9 +299,9 @@

    Declaration

  • - + - medium + medium
    @@ -316,7 +316,7 @@

    Declaration

    Declaration

    Swift

    -
    case veryWeak, weak, medium, strong, veryStrong
    +
    case medium
    @@ -326,9 +326,9 @@

    Declaration

  • - + - strong + strong
    @@ -343,7 +343,7 @@

    Declaration

    Declaration

    Swift

    -
    case veryWeak, weak, medium, strong, veryStrong
    +
    case strong
    @@ -353,9 +353,9 @@

    Declaration

  • @@ -370,7 +370,7 @@

    Declaration

    Declaration

    Swift

    -
    case veryWeak, weak, medium, strong, veryStrong
    +
    case veryStrong
    @@ -385,8 +385,8 @@

    Declaration

  • diff --git a/docs/Enums/PostcodeCountries.html b/docs/Enums/PostcodeCountries.html index 6676d53..3dfed9b 100644 --- a/docs/Enums/PostcodeCountries.html +++ b/docs/Enums/PostcodeCountries.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PostcodeCountries

    -
    public enum PostcodeCountries: String
    +
    public enum PostcodeCountries : String
    @@ -245,9 +245,9 @@

    PostcodeCountries

  • - + - sweden + sweden
    @@ -262,23 +262,19 @@

    PostcodeCountries

    Declaration

    Swift

    -
    case sweden         = "SWE"
    +
    case sweden = "SWE"
  • - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    @@ -428,8 +412,8 @@

    Declaration

    diff --git a/docs/Protocols.html b/docs/Protocols.html index 2ce35ef..0240b87 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -14,6 +14,7 @@ + @@ -22,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -238,9 +239,9 @@

    Protocols

  • - - - Validatable + + + Condition
    @@ -248,15 +249,24 @@

    Protocols

    -

    Undocumented

    +

    A Condition is the smallest sub element of the validation framework. + It tells how a string must be structured or wat is has to contain or not. + Validators are for storing those conditions and checking + for violations of every condition.

    - See more +

    Conditions are recommended working with regular expressions but can also contain + their custom checking code for detecting violations in the string to check.

    + +

    By returning a localized string in method localizedViolationString the + user can be informed in a convenient way what went wrong.

    + + See more

    Declaration

    Swift

    -
    public protocol Validatable
    +
    public protocol Condition : CustomStringConvertible
    @@ -270,9 +280,9 @@

    Declaration

  • @@ -280,15 +290,15 @@

    Declaration

    -

    A special type of Validator that allows configuration.

    +

    A special type of Condition that allows configuration.

    - See more + See more

    Declaration

    Swift

    -
    public protocol ConfigurableValidator: Validator
    +
    public protocol ConfigurableCondition : Condition
    @@ -302,9 +312,9 @@

    Declaration

  • @@ -312,17 +322,15 @@

    Declaration

    -

    Validator is a holder for conditions of type Condition. -The validator checks for violation of each condition. Returned will be a collection of -violated conditions or nil if the string to check is correct or no condition was added.

    +

    A special type of Validator that allows configuration.

    - See more + See more

    Declaration

    Swift

    -
    public protocol Validator
    +
    public protocol ConfigurableValidator : Validator
    @@ -336,9 +344,9 @@

    Declaration

  • @@ -346,15 +354,15 @@

    Declaration

    -

    A special type of Condition that allows configuration.

    +

    A configuration for a Condition.

    - See more + See more

    Declaration

    Swift

    -
    public protocol ConfigurableCondition: Condition
    +
    public protocol Configuration
    @@ -368,9 +376,9 @@

    Declaration

  • @@ -378,27 +386,31 @@

    Declaration

    -

    Undocumented

    +

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

    - See more + See more

    Declaration

    Swift

    -
    public protocol ValidatorControlDelegate: class
    +
    public protocol Form
  • + +
    +
    +
    • @@ -408,13 +420,13 @@

      Declaration

      Undocumented

      - See more + See more

      Declaration

      Swift

      -
      public protocol ValidatorControl: class, Validatable
      +
      public protocol Validatable
      @@ -428,9 +440,9 @@

      Declaration

    • - - - Configuration + + + Validator
      @@ -438,15 +450,17 @@

      Declaration

      -

      A configuration for a Condition.

      +

      Validator is a holder for conditions of type Condition. +The validator checks for violation of each condition. Returned will be a collection of +violated conditions or nil if the string to check is correct or no condition was added.

      - See more + See more

      Declaration

      Swift

      -
      public protocol Configuration
      +
      public protocol Validator
      @@ -460,9 +474,9 @@

      Declaration

    • @@ -470,40 +484,27 @@

      Declaration

      -

      A Condition is the smallest sub element of the validation framework. - It tells how a string must be structured or wat is has to contain or not. - Validators are for storing those conditions and checking - for violations of every condition.

      - -

      Conditions are recommended working with regular expressions but can also contain - their custom checking code for detecting violations in the string to check.

      - -

      By returning a localized string in method localizedViolationString the - user can be informed in a convenient way what went wrong.

      +

      Undocumented

      - See more + See more

      Declaration

      Swift

      -
      public protocol Condition: CustomStringConvertible
      +
      public protocol ValidatorControlDelegate : AnyObject
    • -
    -
    -
    -
    diff --git a/docs/Protocols/Condition.html b/docs/Protocols/Condition.html index 5802b8b..2ba1ad0 100644 --- a/docs/Protocols/Condition.html +++ b/docs/Protocols/Condition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    Condition

    -
    public protocol Condition: CustomStringConvertible
    +
    public protocol Condition : CustomStringConvertible
    @@ -271,7 +271,7 @@

    Condition

    Declaration

    Swift

    -
    var localizedViolationString: String
    +
    var localizedViolationString: String { get set }
  • @@ -298,7 +298,7 @@

    Declaration

    Declaration

    Swift

    -
    var regex: String
    +
    var regex: String { get }
  • @@ -325,7 +325,7 @@

    Declaration

    Declaration

    Swift

    -
    var shouldAllowViolation: Bool
    +
    var shouldAllowViolation: Bool { get set }
  • @@ -362,9 +362,9 @@

    Declaration

  • - + - check(_:) + check(_:) Default implementation @@ -447,7 +447,7 @@

    Return Value

    Declaration

    Swift

    -
    var description: String
    +
    var description: String { get }
    @@ -462,8 +462,8 @@

    Declaration

    diff --git a/docs/Protocols/ConfigurableCondition.html b/docs/Protocols/ConfigurableCondition.html index 9844e0b..8c34bcc 100644 --- a/docs/Protocols/ConfigurableCondition.html +++ b/docs/Protocols/ConfigurableCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    ConfigurableCondition

    -
    public protocol ConfigurableCondition: Condition
    +
    public protocol ConfigurableCondition : Condition
    @@ -245,9 +245,9 @@

    ConfigurableCondition

  • - + - ConfigurationType + ConfigurationType
    @@ -262,7 +262,7 @@

    ConfigurableCondition

    Declaration

    Swift

    -
    associatedtype ConfigurationType: Configuration
    +
    associatedtype ConfigurationType : Configuration
    @@ -289,7 +289,7 @@

    Declaration

    Declaration

    Swift

    -
    var configuration: ConfigurationType
    +
    var configuration: ConfigurationType { get }
    @@ -299,9 +299,9 @@

    Declaration

  • - + - init(configuration:) + init(configuration:)
    @@ -316,7 +316,7 @@

    Declaration

    Declaration

    Swift

    -
    init(configuration: ConfigurationType)
    +
    init(configuration: ConfigurationType)
    @@ -383,8 +383,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    ConfigurableValidator

    -
    public protocol ConfigurableValidator: Validator
    +
    public protocol ConfigurableValidator : Validator
    @@ -245,9 +245,9 @@

    ConfigurableValidator

  • - + - ConfigurationType + ConfigurationType
    @@ -262,7 +262,7 @@

    ConfigurableValidator

    Declaration

    Swift

    -
    associatedtype ConfigurationType: Configuration
    +
    associatedtype ConfigurationType : Configuration
    @@ -272,9 +272,9 @@

    Declaration

  • - + - init(configuration:) + init(configuration:)
    @@ -289,7 +289,7 @@

    Declaration

    Declaration

    Swift

    -
    init(configuration: ConfigurationType)
    +
    init(configuration: ConfigurationType)
    @@ -356,8 +356,8 @@

    Declaration

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

    @@ -277,8 +277,8 @@

    Declaration

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

    @@ -269,7 +269,7 @@

    Properties

    Declaration

    Swift

    -
    var entries: [FormEntry]
    +
    var entries: [FormEntry] { get set }
    @@ -303,7 +303,7 @@

    Default Implementation

    Declaration

    Swift

    -
    var isValid: Bool
    +
    var isValid: Bool { get }
    @@ -351,9 +351,9 @@

    Declaration

  • - + - init(validatables:) + init(validatables:) Default implementation @@ -404,9 +404,9 @@

    Parameters

  • - + - init(validatables:validators:) + init(validatables:validators:) Default implementation @@ -480,9 +480,9 @@

    Manipulate Entry

  • - + - addEntry(_:) + addEntry(_:) Default implementation @@ -515,9 +515,9 @@

    Declaration

  • - + - removeControlAtIndex(_:) + removeControlAtIndex(_:) Default implementation @@ -604,8 +604,8 @@

    Return Value

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

    @@ -262,7 +262,7 @@

    Validatable

    Declaration

    Swift

    -
    var validatableText: String?
    +
    var validatableText: String? { get }
    @@ -289,7 +289,7 @@

    Declaration

    Declaration

    Swift

    -
    var validator: Validator
    +
    var validator: Validator { get }
    @@ -304,8 +304,8 @@

    Declaration

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

    @@ -291,7 +291,7 @@

    Declaration

    Declaration

    Swift

    -
    var conditions: [Condition]
    +
    var conditions: [Condition] { get set }
    @@ -301,9 +301,9 @@

    Declaration

  • - + - checkConditions(_:) + checkConditions(_:) Default implementation @@ -358,9 +358,9 @@

    Return Value

  • - + - removeConditionOfClass(_:) + removeConditionOfClass(_:) Default implementation @@ -382,7 +382,7 @@

    Default Implementation

    Declaration

    Swift

    -
    mutating func removeConditionOfClass<T: Condition>(_ conditionClass: T.Type)
    +
    mutating func removeConditionOfClass<T>(_ conditionClass: T.Type) where T : Condition
    @@ -416,8 +416,8 @@

    Parameters

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

    @@ -229,7 +229,7 @@

    ValidatorControl

    -
    public protocol ValidatorControl: class, Validatable
    +
    public protocol ValidatorControl : AnyObject, Validatable
    @@ -270,7 +270,7 @@

    Default Implementation

    Declaration

    Swift

    -
    var isValid: Bool
    +
    var isValid: Bool { get }
    @@ -297,7 +297,7 @@

    Declaration

    Declaration

    Swift

    -
    var shouldAllowViolation: Bool
    +
    var shouldAllowViolation: Bool { get set }
    @@ -324,7 +324,7 @@

    Declaration

    Declaration

    Swift

    -
    var validateOnFocusLossOnly: Bool
    +
    var validateOnFocusLossOnly: Bool { get set }
    @@ -356,7 +356,7 @@

    Declaration

    Declaration

    Swift

    -
    var validatorDelegate: ValidatorControlDelegate?
    +
    var validatorDelegate: ValidatorControlDelegate? { get }
    @@ -371,8 +371,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    ValidatorControlDelegate

    -
    public protocol ValidatorControlDelegate: class
    +
    public protocol ValidatorControlDelegate : AnyObject
    @@ -245,9 +245,9 @@

    ValidatorControlDelegate

  • - + - validatorControlDidChange(_:) + validatorControlDidChange(_:)
    @@ -272,9 +272,9 @@

    Declaration

  • - + - validatorControl(_:changedValidState:) + validatorControl(_:changedValidState:)
    @@ -299,9 +299,9 @@

    Declaration

  • - + - validatorControl(_:violatedConditions:) + validatorControl(_:violatedConditions:)
    @@ -331,8 +331,8 @@

    Declaration

    diff --git a/docs/Structs.html b/docs/Structs.html index bdbd0db..38a7798 100644 --- a/docs/Structs.html +++ b/docs/Structs.html @@ -14,6 +14,7 @@ + @@ -22,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -238,9 +239,9 @@

    Structures

  • - - - NumericConfiguration + + + AlphabeticCondition
    @@ -248,15 +249,15 @@

    Structures

    -

    Stores configuration for NumericCondition.

    +

    The AlphabeticCondition checks a string for occurrences of letters.

    - See more + See more

    Declaration

    Swift

    -
    public struct NumericConfiguration: Configuration
    +
    public struct AlphabeticCondition : ConfigurableCondition
    @@ -270,9 +271,9 @@

    Declaration

  • @@ -280,20 +281,15 @@

    Declaration

    -

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

    -
    -

    Seealso

    - PresentCondition - -
    +

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

    - See more + See more

    Declaration

    Swift

    -
    public struct PresentValidator: Validator
    +
    public struct AlphanumericCondition : ConfigurableCondition
    @@ -307,9 +303,9 @@

    Declaration

  • @@ -317,20 +313,15 @@

    Declaration

    -

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

    -
    -

    Seealso

    - NumericCondition - -
    +

    The CreditCardCondition checks a string for a credit card number.

    - See more + See more

    Declaration

    Swift

    -
    public struct NumericValidator: ConfigurableValidator
    +
    public struct CreditCardCondition : ConfigurableCondition
    @@ -344,9 +335,9 @@

    Declaration

  • @@ -354,15 +345,15 @@

    Declaration

    -

    A condition that returns the result of either operands.

    +

    The EmailCondition checks a string for an email.

    - See more + See more

    Declaration

    Swift

    -
    public struct OrCondition: Condition
    +
    public struct EmailCondition : Condition
    @@ -376,9 +367,9 @@

    Declaration

  • @@ -386,15 +377,15 @@

    Declaration

    -

    The CreditCardCondition checks a string for a credit card number.

    +

    A condition that returns the result of either operands.

    - See more + See more

    Declaration

    Swift

    -
    public struct CreditCardCondition: ConfigurableCondition
    +
    public struct AndCondition : Condition
    @@ -408,9 +399,9 @@

    Declaration

  • @@ -418,15 +409,15 @@

    Declaration

    -

    The PostcodeCondition checks a string for a post code.

    +

    A condition that returns the opposite of the original condition.

    - See more + See more

    Declaration

    Swift

    -
    public struct PostcodeCondition: ConfigurableCondition
    +
    public struct NotCondition : Condition
    @@ -440,9 +431,9 @@

    Declaration

  • @@ -450,15 +441,15 @@

    Declaration

    -

    The EmailCondition checks a string for an email.

    +

    A condition that returns the result of either operands.

    - See more + See more

    Declaration

    Swift

    -
    public struct EmailCondition: Condition
    +
    public struct OrCondition : Condition
    @@ -472,9 +463,9 @@

    Declaration

  • @@ -482,15 +473,15 @@

    Declaration

    -

    The RangeCondition validates the length of a string.

    +

    The NumericCondition checks a string for numbers.

    - See more + See more

    Declaration

    Swift

    -
    public struct RangeCondition: ConfigurableCondition
    +
    public struct NumericCondition : ConfigurableCondition
    @@ -504,9 +495,9 @@

    Declaration

  • @@ -514,15 +505,25 @@

    Declaration

    -

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

    +

    The PasswordStrengthCondition checks for the strength of a password string. + The strength is measured on five simple criteria: + - contains lower case characters + - contains upper case characters + - contains numeric characters + - contains special characters (e.g /‘;~) + - is more than 8 characters long

    - See more +

    Each of these matched criteria moves the password strength of the string up one strength, strength is measured on PasswordStrength.

    + +

    If the password strength matches or is above the required strength than the condition will pass.

    + + See more

    Declaration

    Swift

    -
    public struct AlphanumericCondition: ConfigurableCondition
    +
    public struct PasswordStrengthCondition : ConfigurableCondition
    @@ -536,9 +537,9 @@

    Declaration

  • @@ -546,20 +547,15 @@

    Declaration

    -

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

    -
    -

    Seealso

    - CreditCardCondition - -
    +

    The PostcodeCondition checks a string for a post code.

    - See more + See more

    Declaration

    Swift

    -
    public struct CreditCardValidator: ConfigurableValidator
    +
    public struct PostcodeCondition : ConfigurableCondition
    @@ -573,9 +569,9 @@

    Declaration

  • @@ -583,20 +579,15 @@

    Declaration

    -

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

    -
    -

    Seealso

    - PasswordStrengthCondition - -
    +

    The PresentCondition checks for the presence of a string.

    - See more + See more

    Declaration

    Swift

    -
    public struct PasswordStrengthValidator: ConfigurableValidator
    +
    public struct PresentCondition : Condition
    @@ -610,9 +601,9 @@

    Declaration

  • @@ -620,15 +611,15 @@

    Declaration

    -

    Stores configuration for AlphabeticCondition.

    +

    The RangeCondition validates the length of a string.

    - See more + See more

    Declaration

    Swift

    -
    public struct AlphabeticConfiguration: Configuration
    +
    public struct RangeCondition : ConfigurableCondition
    @@ -642,9 +633,9 @@

    Declaration

  • @@ -652,15 +643,20 @@

    Declaration

    -

    The NumericCondition checks a string for numbers.

    +

    The URLCondition checks a string for a valid URL.

    +
    +

    Note

    + The scheme (protocol) is needed for a valid URL. If you want a check for shorthand URLs see URLShorthandCondition. Only HTTP and HTTPS schemes are considered valid. - See more +
    + + See more

    Declaration

    Swift

    -
    public struct NumericCondition: ConfigurableCondition
    +
    public struct URLCondition : Condition
    @@ -674,9 +670,9 @@

    Declaration

  • @@ -684,15 +680,20 @@

    Declaration

    -

    Stores configuration for PostcodeCondition.

    +

    The URLShorthandCondition checks a string for a valid URL.

    +
    +

    Note

    + No scheme (protocol) is needed for a valid URL. If you want a check for more strict URLs see URLCondition. - See more +
    + + See more

    Declaration

    Swift

    -
    public struct PostcodeConfiguration: Configuration
    +
    public struct URLShorthandCondition : Condition
    @@ -706,9 +707,9 @@

    Declaration

  • @@ -716,20 +717,15 @@

    Declaration

    -

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

    -
    -

    Seealso

    - EmailCondition - -
    +

    Stores configuration for AlphabeticCondition.

    - See more + See more

    Declaration

    Swift

    -
    public struct EmailValidator: Validator
    +
    public struct AlphabeticConfiguration : Configuration
    @@ -743,9 +739,9 @@

    Declaration

  • @@ -753,15 +749,15 @@

    Declaration

    -

    A condition that returns the opposite of the original condition.

    +

    Stores configuration for AlphanumericCondition.

    - See more + See more

    Declaration

    Swift

    -
    public struct NotCondition: Condition
    +
    public struct AlphanumericConfiguration : Configuration
    @@ -775,9 +771,9 @@

    Declaration

  • @@ -785,36 +781,27 @@

    Declaration

    -

    The URLShorthandCondition checks a string for a valid URL.

    -
    -

    Note

    - No scheme (protocol) is needed for a valid URL. If you want a check for more strict URLs see URLCondition. - -
    +

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

    - See more + See more

    Declaration

    Swift

    -
    public struct URLShorthandCondition: Condition
    +
    public struct CreditCardType : OptionSet, CustomStringConvertible
  • - -
    -
    - +
    +
    +
    diff --git a/docs/Structs/AlphanumericValidator.html b/docs/Structs/AlphanumericValidator.html index 7fafde1..bc72375 100644 --- a/docs/Structs/AlphanumericValidator.html +++ b/docs/Structs/AlphanumericValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    AlphanumericValidator

    -
    public struct AlphanumericValidator: ConfigurableValidator
    +
    public struct AlphanumericValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • @@ -325,8 +325,8 @@

    Declaration

  • diff --git a/docs/Structs/AndCondition.html b/docs/Structs/AndCondition.html index 15e0818..6b80a89 100644 --- a/docs/Structs/AndCondition.html +++ b/docs/Structs/AndCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    AndCondition

    -
    public struct AndCondition: Condition
    +
    public struct AndCondition : Condition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = ""
    +
    public var localizedViolationString: String
  • @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
  • @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
  • @@ -394,9 +394,9 @@

    Declaration

  • @@ -432,9 +432,9 @@

    Check

  • @@ -463,8 +463,8 @@

    Declaration

  • diff --git a/docs/Structs/CompositeValidator.html b/docs/Structs/CompositeValidator.html index 94f3c50..140a55b 100644 --- a/docs/Structs/CompositeValidator.html +++ b/docs/Structs/CompositeValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    CompositeValidator

    -
    public struct CompositeValidator: Validator
    +
    public struct CompositeValidator : Validator
    @@ -342,9 +342,9 @@

    Declaration

  • @@ -393,8 +393,8 @@

    Parameters

  • diff --git a/docs/Structs/ControlForm.html b/docs/Structs/ControlForm.html index 69a4a11..62288a8 100644 --- a/docs/Structs/ControlForm.html +++ b/docs/Structs/ControlForm.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    ControlForm

    -
    public struct ControlForm: Form
    +
    public struct ControlForm : Form
    @@ -302,8 +302,8 @@

    Declaration

  • diff --git a/docs/Structs/CreditCardCondition.html b/docs/Structs/CreditCardCondition.html index d7fee4b..70f937c 100644 --- a/docs/Structs/CreditCardCondition.html +++ b/docs/Structs/CreditCardCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    CreditCardCondition

    -
    public struct CreditCardCondition: ConfigurableCondition
    +
    public struct CreditCardCondition : ConfigurableCondition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationCreditCard", comment: "")
    +
    public var localizedViolationString: String
  • @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public var regex: String
    +
    public var regex: String { get }
  • @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
  • @@ -367,9 +367,9 @@

    Initializers

  • @@ -404,9 +404,9 @@

    Check

  • @@ -431,9 +431,9 @@

    Declaration

  • @@ -463,8 +463,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    CreditCardConfiguration

    -
    public struct CreditCardConfiguration: Configuration
    +
    public struct CreditCardConfiguration : Configuration
    @@ -316,9 +316,9 @@

    Declaration

  • @@ -348,8 +348,8 @@

    Declaration

  • diff --git a/docs/Structs/CreditCardType.html b/docs/Structs/CreditCardType.html index dc6116b..524a3e7 100644 --- a/docs/Structs/CreditCardType.html +++ b/docs/Structs/CreditCardType.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    CreditCardType

    -
    public struct CreditCardType: OptionSet, CustomStringConvertible
    +
    public struct CreditCardType : OptionSet, CustomStringConvertible
    @@ -245,9 +245,9 @@

    CreditCardType

  • - + - rawValue + rawValue
    @@ -271,9 +271,9 @@

    Declaration

  • @@ -314,7 +314,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let americanExpress    = CreditCardType(rawValue: 1 << 0)
    +
    public static let americanExpress: CreditCardType
    @@ -341,7 +341,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let dinersClub         = CreditCardType(rawValue: 1 << 1)
    +
    public static let dinersClub: CreditCardType
  • @@ -368,7 +368,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let discover           = CreditCardType(rawValue: 1 << 2)
    +
    public static let discover: CreditCardType
  • @@ -395,7 +395,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let jcb                = CreditCardType(rawValue: 1 << 3)
    +
    public static let jcb: CreditCardType
    @@ -422,7 +422,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let maestro            = CreditCardType(rawValue: 1 << 4)
    +
    public static let maestro: CreditCardType
    @@ -449,7 +449,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let mastercard         = CreditCardType(rawValue: 1 << 5)
    +
    public static let mastercard: CreditCardType
    @@ -476,7 +476,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let visa               = CreditCardType(rawValue: 1 << 6)
    +
    public static let visa: CreditCardType
    @@ -503,7 +503,7 @@

    Declaration

    Declaration

    Swift

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

    Declaration

    Declaration

    Swift

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

    Declaration

    Declaration

    Swift

    -
    public var description: String
    +
    public var description: String { get }
    @@ -584,7 +584,7 @@

    Declaration

    Declaration

    Swift

    -
    public var regex: String
    +
    public var regex: String { get }
    @@ -599,8 +599,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    CreditCardValidator

    -
    public struct CreditCardValidator: ConfigurableValidator
    +
    public struct CreditCardValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -331,9 +331,9 @@

    Validity

  • - + - validCardTypes(for:completion:) + validCardTypes(for:completion:)
    @@ -363,8 +363,8 @@

    Declaration

    diff --git a/docs/Structs/EmailCondition.html b/docs/Structs/EmailCondition.html index 61355a1..162b227 100644 --- a/docs/Structs/EmailCondition.html +++ b/docs/Structs/EmailCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    EmailCondition

    -
    public struct EmailCondition: Condition
    +
    public struct EmailCondition : Condition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationEmail", comment: "")
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = "^[+\\w\\.\\-']+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*(\\.[a-zA-Z]{2,})+$"
    +
    public let regex: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -372,8 +372,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    EmailValidator

    -
    public struct EmailValidator: Validator
    +
    public struct EmailValidator : Validator
    @@ -325,8 +325,8 @@

    Declaration

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

    @@ -353,8 +353,8 @@

    Return Value

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

    @@ -229,7 +229,7 @@

    NotCondition

    -
    public struct NotCondition: Condition
    +
    public struct NotCondition : Condition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = ""
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -394,9 +394,9 @@

    Declaration

  • - + - init(condition:) + init(condition:)
    @@ -432,9 +432,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -463,8 +463,8 @@

    Declaration

    diff --git a/docs/Structs/NumericCondition.html b/docs/Structs/NumericCondition.html index 717d89d..bcb2938 100644 --- a/docs/Structs/NumericCondition.html +++ b/docs/Structs/NumericCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    NumericCondition

    -
    public struct NumericCondition: ConfigurableCondition
    +
    public struct NumericCondition : ConfigurableCondition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationNumeric", comment: "")
    +
    public var localizedViolationString: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -367,9 +367,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -404,9 +404,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -435,8 +435,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    NumericConfiguration

    -
    public struct NumericConfiguration: Configuration
    +
    public struct NumericConfiguration : Configuration
    @@ -343,9 +343,9 @@

    Declaration

  • - + - init(allowsUnicode:allowsWhitespace:) + init(allowsUnicode:allowsWhitespace:)
    @@ -375,8 +375,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    NumericValidator

    -
    public struct NumericValidator: ConfigurableValidator
    +
    public struct NumericValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -325,8 +325,8 @@

    Declaration

    diff --git a/docs/Structs/OptionalValidator.html b/docs/Structs/OptionalValidator.html index 07f57d7..f11f4ad 100644 --- a/docs/Structs/OptionalValidator.html +++ b/docs/Structs/OptionalValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    OptionalValidator

    -
    public struct OptionalValidator: Validator
    +
    public struct OptionalValidator : Validator
    @@ -344,9 +344,9 @@

    Declaration

  • - + - init(conditions:primaryCondition:) + init(conditions:primaryCondition:)
    @@ -382,9 +382,9 @@

    Validity

  • - + - checkConditions(_:) + checkConditions(_:)
    @@ -413,8 +413,8 @@

    Declaration

    diff --git a/docs/Structs/OrCondition.html b/docs/Structs/OrCondition.html index 2b30973..6ca3e98 100644 --- a/docs/Structs/OrCondition.html +++ b/docs/Structs/OrCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    OrCondition

    -
    public struct OrCondition: Condition
    +
    public struct OrCondition : Condition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = ""
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -394,9 +394,9 @@

    Declaration

  • - + - init(conditions:) + init(conditions:)
    @@ -432,9 +432,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -463,8 +463,8 @@

    Declaration

    diff --git a/docs/Structs/PasswordStrengthCondition.html b/docs/Structs/PasswordStrengthCondition.html index 0ea34e2..495b88c 100644 --- a/docs/Structs/PasswordStrengthCondition.html +++ b/docs/Structs/PasswordStrengthCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PasswordStrengthCondition

    -
    public struct PasswordStrengthCondition: ConfigurableCondition
    +
    public struct PasswordStrengthCondition : ConfigurableCondition
    @@ -278,7 +278,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationPasswordStrength", comment: "")
    +
    public var localizedViolationString: String
    @@ -304,7 +304,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
    @@ -330,7 +330,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -377,9 +377,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -414,9 +414,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -445,8 +445,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    PasswordStrengthConfiguration

    -
    public struct PasswordStrengthConfiguration: Configuration
    +
    public struct PasswordStrengthConfiguration : Configuration
    @@ -316,9 +316,9 @@

    Declaration

  • - + - init(requiredStrength:) + init(requiredStrength:)
    @@ -367,8 +367,8 @@

    Parameters

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

    @@ -229,7 +229,7 @@

    PasswordStrengthValidator

    -
    public struct PasswordStrengthValidator: ConfigurableValidator
    +
    public struct PasswordStrengthValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -325,8 +325,8 @@

    Declaration

    diff --git a/docs/Structs/PostcodeCondition.html b/docs/Structs/PostcodeCondition.html index 1fe98a9..f3c60fd 100644 --- a/docs/Structs/PostcodeCondition.html +++ b/docs/Structs/PostcodeCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PostcodeCondition

    -
    public struct PostcodeCondition: ConfigurableCondition
    +
    public struct PostcodeCondition : ConfigurableCondition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationPostcodeUK", comment: "")
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public var regex: String
    +
    public var regex: String { get }
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -367,9 +367,9 @@

    Initializer

  • - + - init(configuration:) + init(configuration:)
    @@ -398,8 +398,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    PostcodeConfiguration

    -
    public struct PostcodeConfiguration: Configuration
    +
    public struct PostcodeConfiguration : Configuration
    @@ -316,9 +316,9 @@

    Declaration

  • - + - init(country:) + init(country:)
    @@ -348,8 +348,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    PostcodeValidator

    -
    public struct PostcodeValidator: ConfigurableValidator
    +
    public struct PostcodeValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -325,8 +325,8 @@

    Declaration

    diff --git a/docs/Structs/PresentCondition.html b/docs/Structs/PresentCondition.html index 752f56d..e980c09 100644 --- a/docs/Structs/PresentCondition.html +++ b/docs/Structs/PresentCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PresentCondition

    -
    public struct PresentCondition: Condition
    +
    public struct PresentCondition : Condition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationPresent", comment: "")
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -378,9 +378,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -409,8 +409,8 @@

    Declaration

    diff --git a/docs/Structs/PresentValidator.html b/docs/Structs/PresentValidator.html index 5d678b7..86a5852 100644 --- a/docs/Structs/PresentValidator.html +++ b/docs/Structs/PresentValidator.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PresentValidator

    -
    public struct PresentValidator: Validator
    +
    public struct PresentValidator : Validator
    @@ -325,8 +325,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    RangeCondition

    -
    public struct RangeCondition: ConfigurableCondition
    +
    public struct RangeCondition : ConfigurableCondition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationRange", comment: "")
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -367,9 +367,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -404,9 +404,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -435,8 +435,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    RangeConfiguration

    -
    public struct RangeConfiguration: Configuration
    +
    public struct RangeConfiguration : Configuration
    @@ -252,9 +252,9 @@

    Properties

  • - + - range + range
    @@ -317,9 +317,9 @@

    Declaration

  • - + - init(range:) + init(range:)
    @@ -349,8 +349,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    RangeValidator

    -
    public struct RangeValidator: ConfigurableValidator
    +
    public struct RangeValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -325,8 +325,8 @@

    Declaration

    diff --git a/docs/Structs/URLCondition.html b/docs/Structs/URLCondition.html index 08fce8c..3969a10 100644 --- a/docs/Structs/URLCondition.html +++ b/docs/Structs/URLCondition.html @@ -23,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    URLCondition

    -
    public struct URLCondition: Condition
    +
    public struct URLCondition : Condition
    @@ -273,7 +273,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationURL", comment: "")
    +
    public var localizedViolationString: String
    @@ -299,7 +299,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = "^((https?)://)[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?$"
    +
    public let regex: String
    @@ -325,7 +325,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -377,8 +377,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    URLShorthandCondition

    -
    public struct URLShorthandCondition: Condition
    +
    public struct URLShorthandCondition : Condition
    @@ -273,7 +273,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationShorthandURL", comment: "")
    +
    public var localizedViolationString: String
    @@ -299,7 +299,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = "^((https?)://)?[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?$"
    +
    public let regex: String
    @@ -325,7 +325,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -377,8 +377,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    URLShorthandValidator

    -
    public struct URLShorthandValidator: Validator
    +
    public struct URLShorthandValidator : Validator
    @@ -325,8 +325,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    URLValidator

    -
    public struct URLValidator: Validator
    +
    public struct URLValidator : Validator
    @@ -325,8 +325,8 @@

    Declaration

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

    @@ -256,7 +257,7 @@

    Classes

    Declaration

    Swift

    -
    open class ValidatorTextField: UITextField, ValidatorControl
    +
    open class ValidatorTextField : UITextField, ValidatorControl
    @@ -288,7 +289,7 @@

    Declaration

    Declaration

    Swift

    -
    open class ValidatorTextView: UITextView, ValidatorControl
    +
    open class ValidatorTextView : UITextView, ValidatorControl
    @@ -303,8 +304,8 @@

    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 e1e4f55..ef575f2 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    ValidatorTextField

    -
    open class ValidatorTextField: UITextField, ValidatorControl
    +
    open class ValidatorTextField : UITextField, ValidatorControl
    @@ -269,7 +269,7 @@

    Properties

    Declaration

    Swift

    -
    open var shouldAllowViolation = false
    +
    open var shouldAllowViolation: Bool
    @@ -296,7 +296,7 @@

    Declaration

    Declaration

    Swift

    -
    open var validateOnFocusLossOnly = false
    +
    open var validateOnFocusLossOnly: Bool
    @@ -323,7 +323,7 @@

    Declaration

    Declaration

    Swift

    -
    open let validator: Validator
    +
    public let validator: Validator
    @@ -333,9 +333,9 @@

    Declaration

  • - + - validatorDelegate + validatorDelegate
    @@ -346,7 +346,7 @@

    Declaration

    Validator delegate for the text field.

    See also

    - setValidatorDelegate(_:) to set the validator delegate. + setValidatorDelegate(_:) to set the validator delegate.
    @@ -355,7 +355,7 @@

    Declaration

    Declaration

    Swift

    -
    open weak var validatorDelegate: ValidatorControlDelegate?
    +
    open var validatorDelegate: ValidatorControlDelegate? { get }
    @@ -382,7 +382,7 @@

    Declaration

    Declaration

    Swift

    -
    open var validatableText: String?
    +
    open var validatableText: String? { get }
    @@ -403,9 +403,9 @@

    Initializers

  • - + - init(validator:) + init(validator:)
    @@ -430,9 +430,9 @@

    Declaration

  • - + - init(frame:validator:) + init(frame:validator:)
    @@ -481,6 +481,33 @@

    Declaration

  • +
  • +
    + + + + deinit + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    deinit
    + +
    +
    +
    +
    +
  • @@ -495,9 +522,9 @@

    Custom Setters

  • - + - setValidatorDelegate(_:) + setValidatorDelegate(_:)
    @@ -505,7 +532,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.

    @@ -579,9 +606,9 @@

    Declaration

  • @@ -611,8 +638,8 @@

    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 476f439..1e4eb7e 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    ValidatorTextView

    -
    open class ValidatorTextView: UITextView, ValidatorControl
    +
    open class ValidatorTextView : UITextView, ValidatorControl
    @@ -269,7 +269,7 @@

    Properties

    Declaration

    Swift

    -
    open var shouldAllowViolation = false
    +
    open var shouldAllowViolation: Bool
    @@ -296,7 +296,7 @@

    Declaration

    Declaration

    Swift

    -
    open var validateOnFocusLossOnly = false
    +
    open var validateOnFocusLossOnly: Bool
  • @@ -323,7 +323,7 @@

    Declaration

    Declaration

    Swift

    -
    open let validator: Validator
    +
    public let validator: Validator
    @@ -333,9 +333,9 @@

    Declaration

  • - + - validatorDelegate + validatorDelegate
    @@ -355,7 +355,7 @@

    Declaration

    Declaration

    Swift

    -
    open weak var validatorDelegate: ValidatorControlDelegate?
    +
    open var validatorDelegate: ValidatorControlDelegate? { get }
    @@ -382,7 +382,7 @@

    Declaration

    Declaration

    Swift

    -
    open var validatableText: String?
    +
    open var validatableText: String? { get }
    @@ -403,9 +403,9 @@

    Initializers

  • - + - init(validator:) + init(validator:)
    @@ -430,9 +430,9 @@

    Declaration

  • - + - init(frame:validator:) + init(frame:validator:)
    @@ -457,9 +457,9 @@

    Declaration

  • - + - init(frame:textContainer:validator:) + init(frame:textContainer:validator:)
    @@ -508,6 +508,33 @@

    Declaration

  • +
  • +
    + + + + deinit + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    deinit
    + +
    +
    +
    +
    +
  • @@ -522,9 +549,9 @@

    Custom Setters

  • - + - setValidatorDelegate(_:) + setValidatorDelegate(_:)
    @@ -532,7 +559,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.

    @@ -606,9 +633,9 @@

    Declaration

  • @@ -638,8 +665,8 @@

    Declaration

  • diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums.html index 13ca18c..01a16e4 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Enums.html @@ -14,6 +14,7 @@ + @@ -22,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -238,9 +239,9 @@

    Enumerations

  • @@ -248,15 +249,15 @@

    Enumerations

    -

    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.

    +

    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.

    - See more + See more

    Declaration

    Swift

    -
    public enum PostcodeCountries: String
    +
    public enum PasswordStrength : Int
    @@ -270,9 +271,9 @@

    Declaration

  • @@ -280,15 +281,15 @@

    Declaration

    -

    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.

    +

    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.

    - See more + See more

    Declaration

    Swift

    -
    public enum PasswordStrength: Int
    +
    public enum PostcodeCountries : String
    @@ -303,8 +304,8 @@

    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 d9da068..b37349c 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PasswordStrength

    -
    public enum PasswordStrength: Int
    +
    public enum PasswordStrength : Int
    @@ -245,9 +245,9 @@

    PasswordStrength

  • - + - veryWeak + veryWeak
    @@ -262,7 +262,7 @@

    PasswordStrength

    Declaration

    Swift

    -
    case veryWeak, weak, medium, strong, veryStrong
    +
    case veryWeak
    @@ -272,9 +272,9 @@

    Declaration

  • - + - weak + weak
    @@ -289,7 +289,7 @@

    Declaration

    Declaration

    Swift

    -
    case veryWeak, weak, medium, strong, veryStrong
    +
    case weak
    @@ -299,9 +299,9 @@

    Declaration

  • - + - medium + medium
    @@ -316,7 +316,7 @@

    Declaration

    Declaration

    Swift

    -
    case veryWeak, weak, medium, strong, veryStrong
    +
    case medium
    @@ -326,9 +326,9 @@

    Declaration

  • - + - strong + strong
    @@ -343,7 +343,7 @@

    Declaration

    Declaration

    Swift

    -
    case veryWeak, weak, medium, strong, veryStrong
    +
    case strong
    @@ -353,9 +353,9 @@

    Declaration

  • @@ -370,7 +370,7 @@

    Declaration

    Declaration

    Swift

    -
    case veryWeak, weak, medium, strong, veryStrong
    +
    case veryStrong
    @@ -385,8 +385,8 @@

    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 6676d53..3dfed9b 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PostcodeCountries

    -
    public enum PostcodeCountries: String
    +
    public enum PostcodeCountries : String
    @@ -245,9 +245,9 @@

    PostcodeCountries

  • - + - sweden + sweden
    @@ -262,23 +262,19 @@

    PostcodeCountries

    Declaration

    Swift

    -
    case sweden         = "SWE"
    +
    case sweden = "SWE"
  • - - -
    -
    • - + - turkey + turkey
      @@ -293,23 +289,19 @@

      Declaration

      Declaration

      Swift

      -
      case turkey         = "TUR"
      +
      case turkey = "TUR"
    - - -
    -
    • @@ -324,23 +316,19 @@

      Declaration

      Declaration

      Swift

      -
      case unitedKingdom  = "GBR"
      +
      case unitedKingdom = "GBR"
    - - -
    -
    • @@ -355,17 +343,13 @@

      Declaration

      Declaration

      Swift

      -
      case unitedStates   = "USA"
      +
      case unitedStates = "USA"
    - - -
    -
    • @@ -386,7 +370,7 @@

      Declaration

      Declaration

      Swift

      -
      public var regex: String
      +
      public var regex: String { get }
      @@ -413,7 +397,7 @@

      Declaration

      Declaration

      Swift

      -
      public static let allValues: [PostcodeCountries] = [.sweden, .turkey, .unitedKingdom, .unitedStates]
      +
      public static let allValues: [PostcodeCountries]
    @@ -428,8 +412,8 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols.html index 2ce35ef..0240b87 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Protocols.html @@ -14,6 +14,7 @@ + @@ -22,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -238,9 +239,9 @@

    Protocols

  • - - - Validatable + + + Condition
    @@ -248,15 +249,24 @@

    Protocols

    -

    Undocumented

    +

    A Condition is the smallest sub element of the validation framework. + It tells how a string must be structured or wat is has to contain or not. + Validators are for storing those conditions and checking + for violations of every condition.

    - See more +

    Conditions are recommended working with regular expressions but can also contain + their custom checking code for detecting violations in the string to check.

    + +

    By returning a localized string in method localizedViolationString the + user can be informed in a convenient way what went wrong.

    + + See more

    Declaration

    Swift

    -
    public protocol Validatable
    +
    public protocol Condition : CustomStringConvertible
    @@ -270,9 +280,9 @@

    Declaration

  • @@ -280,15 +290,15 @@

    Declaration

    -

    A special type of Validator that allows configuration.

    +

    A special type of Condition that allows configuration.

    - See more + See more

    Declaration

    Swift

    -
    public protocol ConfigurableValidator: Validator
    +
    public protocol ConfigurableCondition : Condition
    @@ -302,9 +312,9 @@

    Declaration

  • @@ -312,17 +322,15 @@

    Declaration

    -

    Validator is a holder for conditions of type Condition. -The validator checks for violation of each condition. Returned will be a collection of -violated conditions or nil if the string to check is correct or no condition was added.

    +

    A special type of Validator that allows configuration.

    - See more + See more

    Declaration

    Swift

    -
    public protocol Validator
    +
    public protocol ConfigurableValidator : Validator
    @@ -336,9 +344,9 @@

    Declaration

  • @@ -346,15 +354,15 @@

    Declaration

    -

    A special type of Condition that allows configuration.

    +

    A configuration for a Condition.

    - See more + See more

    Declaration

    Swift

    -
    public protocol ConfigurableCondition: Condition
    +
    public protocol Configuration
    @@ -368,9 +376,9 @@

    Declaration

  • @@ -378,27 +386,31 @@

    Declaration

    -

    Undocumented

    +

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

    - See more + See more

    Declaration

    Swift

    -
    public protocol ValidatorControlDelegate: class
    +
    public protocol Form
  • + +
    +
    +
    • @@ -408,13 +420,13 @@

      Declaration

      Undocumented

      - See more + See more

      Declaration

      Swift

      -
      public protocol ValidatorControl: class, Validatable
      +
      public protocol Validatable
      @@ -428,9 +440,9 @@

      Declaration

    • - - - Configuration + + + Validator
      @@ -438,15 +450,17 @@

      Declaration

      -

      A configuration for a Condition.

      +

      Validator is a holder for conditions of type Condition. +The validator checks for violation of each condition. Returned will be a collection of +violated conditions or nil if the string to check is correct or no condition was added.

      - See more + See more

      Declaration

      Swift

      -
      public protocol Configuration
      +
      public protocol Validator
      @@ -460,9 +474,9 @@

      Declaration

    • @@ -470,40 +484,27 @@

      Declaration

      -

      A Condition is the smallest sub element of the validation framework. - It tells how a string must be structured or wat is has to contain or not. - Validators are for storing those conditions and checking - for violations of every condition.

      - -

      Conditions are recommended working with regular expressions but can also contain - their custom checking code for detecting violations in the string to check.

      - -

      By returning a localized string in method localizedViolationString the - user can be informed in a convenient way what went wrong.

      +

      Undocumented

      - See more + See more

      Declaration

      Swift

      -
      public protocol Condition: CustomStringConvertible
      +
      public protocol ValidatorControlDelegate : AnyObject
    • -
    -
    -
    -
    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 5802b8b..2ba1ad0 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    Condition

    -
    public protocol Condition: CustomStringConvertible
    +
    public protocol Condition : CustomStringConvertible
    @@ -271,7 +271,7 @@

    Condition

    Declaration

    Swift

    -
    var localizedViolationString: String
    +
    var localizedViolationString: String { get set }
  • @@ -298,7 +298,7 @@

    Declaration

    Declaration

    Swift

    -
    var regex: String
    +
    var regex: String { get }
  • @@ -325,7 +325,7 @@

    Declaration

    Declaration

    Swift

    -
    var shouldAllowViolation: Bool
    +
    var shouldAllowViolation: Bool { get set }
  • @@ -362,9 +362,9 @@

    Declaration

  • - + - check(_:) + check(_:) Default implementation @@ -447,7 +447,7 @@

    Return Value

    Declaration

    Swift

    -
    var description: String
    +
    var description: String { get }
    @@ -462,8 +462,8 @@

    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 9844e0b..8c34bcc 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    ConfigurableCondition

    -
    public protocol ConfigurableCondition: Condition
    +
    public protocol ConfigurableCondition : Condition
    @@ -245,9 +245,9 @@

    ConfigurableCondition

  • - + - ConfigurationType + ConfigurationType
    @@ -262,7 +262,7 @@

    ConfigurableCondition

    Declaration

    Swift

    -
    associatedtype ConfigurationType: Configuration
    +
    associatedtype ConfigurationType : Configuration
    @@ -289,7 +289,7 @@

    Declaration

    Declaration

    Swift

    -
    var configuration: ConfigurationType
    +
    var configuration: ConfigurationType { get }
    @@ -299,9 +299,9 @@

    Declaration

  • - + - init(configuration:) + init(configuration:)
    @@ -316,7 +316,7 @@

    Declaration

    Declaration

    Swift

    -
    init(configuration: ConfigurationType)
    +
    init(configuration: ConfigurationType)
    @@ -383,8 +383,8 @@

    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 ea55614..e0d3c9e 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    ConfigurableValidator

    -
    public protocol ConfigurableValidator: Validator
    +
    public protocol ConfigurableValidator : Validator
    @@ -245,9 +245,9 @@

    ConfigurableValidator

  • - + - ConfigurationType + ConfigurationType
    @@ -262,7 +262,7 @@

    ConfigurableValidator

    Declaration

    Swift

    -
    associatedtype ConfigurationType: Configuration
    +
    associatedtype ConfigurationType : Configuration
    @@ -272,9 +272,9 @@

    Declaration

  • - + - init(configuration:) + init(configuration:)
    @@ -289,7 +289,7 @@

    Declaration

    Declaration

    Swift

    -
    init(configuration: ConfigurationType)
    +
    init(configuration: ConfigurationType)
    @@ -356,8 +356,8 @@

    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 a6f700e..de93e6b 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 - (73% documented) + (72% documented)

    @@ -277,8 +277,8 @@

    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 74bd0d7..abbb516 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 - (73% documented) + (72% documented)

    @@ -269,7 +269,7 @@

    Properties

    Declaration

    Swift

    -
    var entries: [FormEntry]
    +
    var entries: [FormEntry] { get set }
    @@ -303,7 +303,7 @@

    Default Implementation

    Declaration

    Swift

    -
    var isValid: Bool
    +
    var isValid: Bool { get }
    @@ -351,9 +351,9 @@

    Declaration

  • - + - init(validatables:) + init(validatables:) Default implementation @@ -404,9 +404,9 @@

    Parameters

  • - + - init(validatables:validators:) + init(validatables:validators:) Default implementation @@ -480,9 +480,9 @@

    Manipulate Entry

  • - + - addEntry(_:) + addEntry(_:) Default implementation @@ -515,9 +515,9 @@

    Declaration

  • - + - removeControlAtIndex(_:) + removeControlAtIndex(_:) Default implementation @@ -604,8 +604,8 @@

    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 8cf2624..5ed63a1 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 - (73% documented) + (72% documented)

    @@ -262,7 +262,7 @@

    Validatable

    Declaration

    Swift

    -
    var validatableText: String?
    +
    var validatableText: String? { get }
    @@ -289,7 +289,7 @@

    Declaration

    Declaration

    Swift

    -
    var validator: Validator
    +
    var validator: Validator { get }
    @@ -304,8 +304,8 @@

    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 fadb0c9..a13d732 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 - (73% documented) + (72% documented)

    @@ -291,7 +291,7 @@

    Declaration

    Declaration

    Swift

    -
    var conditions: [Condition]
    +
    var conditions: [Condition] { get set }
    @@ -301,9 +301,9 @@

    Declaration

  • - + - checkConditions(_:) + checkConditions(_:) Default implementation @@ -358,9 +358,9 @@

    Return Value

  • - + - removeConditionOfClass(_:) + removeConditionOfClass(_:) Default implementation @@ -382,7 +382,7 @@

    Default Implementation

    Declaration

    Swift

    -
    mutating func removeConditionOfClass<T: Condition>(_ conditionClass: T.Type)
    +
    mutating func removeConditionOfClass<T>(_ conditionClass: T.Type) where T : Condition
    @@ -416,8 +416,8 @@

    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 6253627..1518097 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    ValidatorControl

    -
    public protocol ValidatorControl: class, Validatable
    +
    public protocol ValidatorControl : AnyObject, Validatable
    @@ -270,7 +270,7 @@

    Default Implementation

    Declaration

    Swift

    -
    var isValid: Bool
    +
    var isValid: Bool { get }
    @@ -297,7 +297,7 @@

    Declaration

    Declaration

    Swift

    -
    var shouldAllowViolation: Bool
    +
    var shouldAllowViolation: Bool { get set }
    @@ -324,7 +324,7 @@

    Declaration

    Declaration

    Swift

    -
    var validateOnFocusLossOnly: Bool
    +
    var validateOnFocusLossOnly: Bool { get set }
    @@ -356,7 +356,7 @@

    Declaration

    Declaration

    Swift

    -
    var validatorDelegate: ValidatorControlDelegate?
    +
    var validatorDelegate: ValidatorControlDelegate? { get }
    @@ -371,8 +371,8 @@

    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 f90f649..ac4082e 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    ValidatorControlDelegate

    -
    public protocol ValidatorControlDelegate: class
    +
    public protocol ValidatorControlDelegate : AnyObject
    @@ -245,9 +245,9 @@

    ValidatorControlDelegate

  • - + - validatorControlDidChange(_:) + validatorControlDidChange(_:)
    @@ -272,9 +272,9 @@

    Declaration

  • - + - validatorControl(_:changedValidState:) + validatorControl(_:changedValidState:)
    @@ -299,9 +299,9 @@

    Declaration

  • - + - validatorControl(_:violatedConditions:) + validatorControl(_:violatedConditions:)
    @@ -331,8 +331,8 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs.html index bdbd0db..38a7798 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/Structs.html @@ -14,6 +14,7 @@ + @@ -22,7 +23,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

    @@ -238,9 +239,9 @@

    Structures

  • - - - NumericConfiguration + + + AlphabeticCondition
    @@ -248,15 +249,15 @@

    Structures

    -

    Stores configuration for NumericCondition.

    +

    The AlphabeticCondition checks a string for occurrences of letters.

    - See more + See more

    Declaration

    Swift

    -
    public struct NumericConfiguration: Configuration
    +
    public struct AlphabeticCondition : ConfigurableCondition
    @@ -270,9 +271,9 @@

    Declaration

  • @@ -280,20 +281,15 @@

    Declaration

    -

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

    -
    -

    Seealso

    - PresentCondition - -
    +

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

    - See more + See more

    Declaration

    Swift

    -
    public struct PresentValidator: Validator
    +
    public struct AlphanumericCondition : ConfigurableCondition
    @@ -307,9 +303,9 @@

    Declaration

  • @@ -317,20 +313,15 @@

    Declaration

    -

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

    -
    -

    Seealso

    - NumericCondition - -
    +

    The CreditCardCondition checks a string for a credit card number.

    - See more + See more

    Declaration

    Swift

    -
    public struct NumericValidator: ConfigurableValidator
    +
    public struct CreditCardCondition : ConfigurableCondition
    @@ -344,9 +335,9 @@

    Declaration

  • @@ -354,15 +345,15 @@

    Declaration

    -

    A condition that returns the result of either operands.

    +

    The EmailCondition checks a string for an email.

    - See more + See more

    Declaration

    Swift

    -
    public struct OrCondition: Condition
    +
    public struct EmailCondition : Condition
    @@ -376,9 +367,9 @@

    Declaration

  • @@ -386,15 +377,15 @@

    Declaration

    -

    The CreditCardCondition checks a string for a credit card number.

    +

    A condition that returns the result of either operands.

    - See more + See more

    Declaration

    Swift

    -
    public struct CreditCardCondition: ConfigurableCondition
    +
    public struct AndCondition : Condition
    @@ -408,9 +399,9 @@

    Declaration

  • @@ -418,15 +409,15 @@

    Declaration

    -

    The PostcodeCondition checks a string for a post code.

    +

    A condition that returns the opposite of the original condition.

    - See more + See more

    Declaration

    Swift

    -
    public struct PostcodeCondition: ConfigurableCondition
    +
    public struct NotCondition : Condition
    @@ -440,9 +431,9 @@

    Declaration

  • @@ -450,15 +441,15 @@

    Declaration

    -

    The EmailCondition checks a string for an email.

    +

    A condition that returns the result of either operands.

    - See more + See more

    Declaration

    Swift

    -
    public struct EmailCondition: Condition
    +
    public struct OrCondition : Condition
    @@ -472,9 +463,9 @@

    Declaration

  • @@ -482,15 +473,15 @@

    Declaration

    -

    The RangeCondition validates the length of a string.

    +

    The NumericCondition checks a string for numbers.

    - See more + See more

    Declaration

    Swift

    -
    public struct RangeCondition: ConfigurableCondition
    +
    public struct NumericCondition : ConfigurableCondition
    @@ -504,9 +495,9 @@

    Declaration

  • @@ -514,15 +505,25 @@

    Declaration

    -

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

    +

    The PasswordStrengthCondition checks for the strength of a password string. + The strength is measured on five simple criteria: + - contains lower case characters + - contains upper case characters + - contains numeric characters + - contains special characters (e.g /‘;~) + - is more than 8 characters long

    - See more +

    Each of these matched criteria moves the password strength of the string up one strength, strength is measured on PasswordStrength.

    + +

    If the password strength matches or is above the required strength than the condition will pass.

    + + See more

    Declaration

    Swift

    -
    public struct AlphanumericCondition: ConfigurableCondition
    +
    public struct PasswordStrengthCondition : ConfigurableCondition
    @@ -536,9 +537,9 @@

    Declaration

  • @@ -546,20 +547,15 @@

    Declaration

    -

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

    -
    -

    Seealso

    - CreditCardCondition - -
    +

    The PostcodeCondition checks a string for a post code.

    - See more + See more

    Declaration

    Swift

    -
    public struct CreditCardValidator: ConfigurableValidator
    +
    public struct PostcodeCondition : ConfigurableCondition
    @@ -573,9 +569,9 @@

    Declaration

  • @@ -583,20 +579,15 @@

    Declaration

    -

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

    -
    -

    Seealso

    - PasswordStrengthCondition - -
    +

    The PresentCondition checks for the presence of a string.

    - See more + See more

    Declaration

    Swift

    -
    public struct PasswordStrengthValidator: ConfigurableValidator
    +
    public struct PresentCondition : Condition
    @@ -610,9 +601,9 @@

    Declaration

  • @@ -620,15 +611,15 @@

    Declaration

    -

    Stores configuration for AlphabeticCondition.

    +

    The RangeCondition validates the length of a string.

    - See more + See more

    Declaration

    Swift

    -
    public struct AlphabeticConfiguration: Configuration
    +
    public struct RangeCondition : ConfigurableCondition
    @@ -642,9 +633,9 @@

    Declaration

  • @@ -652,15 +643,20 @@

    Declaration

    -

    The NumericCondition checks a string for numbers.

    +

    The URLCondition checks a string for a valid URL.

    +
    +

    Note

    + The scheme (protocol) is needed for a valid URL. If you want a check for shorthand URLs see URLShorthandCondition. Only HTTP and HTTPS schemes are considered valid. - See more +
    + + See more

    Declaration

    Swift

    -
    public struct NumericCondition: ConfigurableCondition
    +
    public struct URLCondition : Condition
    @@ -674,9 +670,9 @@

    Declaration

  • @@ -684,15 +680,20 @@

    Declaration

    -

    Stores configuration for PostcodeCondition.

    +

    The URLShorthandCondition checks a string for a valid URL.

    +
    +

    Note

    + No scheme (protocol) is needed for a valid URL. If you want a check for more strict URLs see URLCondition. - See more +
    + + See more

    Declaration

    Swift

    -
    public struct PostcodeConfiguration: Configuration
    +
    public struct URLShorthandCondition : Condition
    @@ -706,9 +707,9 @@

    Declaration

  • @@ -716,20 +717,15 @@

    Declaration

    -

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

    -
    -

    Seealso

    - EmailCondition - -
    +

    Stores configuration for AlphabeticCondition.

    - See more + See more

    Declaration

    Swift

    -
    public struct EmailValidator: Validator
    +
    public struct AlphabeticConfiguration : Configuration
    @@ -743,9 +739,9 @@

    Declaration

  • @@ -753,15 +749,15 @@

    Declaration

    -

    A condition that returns the opposite of the original condition.

    +

    Stores configuration for AlphanumericCondition.

    - See more + See more

    Declaration

    Swift

    -
    public struct NotCondition: Condition
    +
    public struct AlphanumericConfiguration : Configuration
    @@ -775,9 +771,9 @@

    Declaration

  • @@ -785,36 +781,27 @@

    Declaration

    -

    The URLShorthandCondition checks a string for a valid URL.

    -
    -

    Note

    - No scheme (protocol) is needed for a valid URL. If you want a check for more strict URLs see URLCondition. - -
    +

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

    - See more + See more

    Declaration

    Swift

    -
    public struct URLShorthandCondition: Condition
    +
    public struct CreditCardType : OptionSet, CustomStringConvertible
  • - -
    -
    - +
    +
    +
    • @@ -1187,15 +1176,20 @@

      Declaration

      -

      Stores configuration for CreditCardCondition.

      +

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

      +
      +

      Seealso

      + EmailCondition - See more +
      + + See more

      Declaration

      Swift

      -
      public struct CreditCardConfiguration: Configuration
      +
      public struct EmailValidator : Validator
      @@ -1209,9 +1203,9 @@

      Declaration

    • @@ -1219,20 +1213,20 @@

      Declaration

      -

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

      +

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

      - See more + See more

      Declaration

      Swift

      -
      public struct URLShorthandValidator: Validator
      +
      public struct NumericValidator : ConfigurableValidator
      @@ -1246,9 +1240,9 @@

      Declaration

    • @@ -1256,15 +1250,17 @@

      Declaration

      -

      Stores configuration for PasswordStrengthCondition.

      +

      The OptionalValidator has two stages of conditions. First the primaryCondition is checked. If it is met, then the subsequent condition are checked for violations. If the primaryCondition is not met, then no violation is returned.

      - See more +

      As an example, say you only want violations to show if there is text in the field, but otherwise ignore it as it is an optional field in a form. In this case you would use a PresentCondition as the primaryCondition and your subsequent validation requirements as the conditions.

      + + See more

      Declaration

      Swift

      -
      public struct PasswordStrengthConfiguration: Configuration
      +
      public struct OptionalValidator : Validator
      @@ -1278,9 +1274,9 @@

      Declaration

    • @@ -1288,20 +1284,20 @@

      Declaration

      -

      The URLCondition checks a string for a valid URL.

      -
      -

      Note

      - The scheme (protocol) is needed for a valid URL. If you want a check for shorthand URLs see URLShorthandCondition. Only HTTP and HTTPS schemes are considered valid. +

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

      + - See more + See more

      Declaration

      Swift

      -
      public struct URLCondition: Condition
      +
      public struct PasswordStrengthValidator : ConfigurableValidator
      @@ -1315,9 +1311,9 @@

      Declaration

    • @@ -1325,20 +1321,20 @@

      Declaration

      -

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

      +

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

      - See more + See more

      Declaration

      Swift

      -
      public struct RangeValidator: ConfigurableValidator
      +
      public struct PostcodeValidator : ConfigurableValidator
      @@ -1352,9 +1348,9 @@

      Declaration

    • @@ -1362,15 +1358,20 @@

      Declaration

      -

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

      +

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

      +
      +

      Seealso

      + PresentCondition - See more +
      + + See more

      Declaration

      Swift

      -
      public struct ControlForm: Form
      +
      public struct PresentValidator : Validator
      @@ -1384,9 +1385,9 @@

      Declaration

    • @@ -1394,20 +1395,20 @@

      Declaration

      -

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

      +

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

      - See more + See more

      Declaration

      Swift

      -
      public struct AlphanumericValidator: ConfigurableValidator
      +
      public struct RangeValidator : ConfigurableValidator
      @@ -1421,9 +1422,9 @@

      Declaration

    • @@ -1431,25 +1432,20 @@

      Declaration

      -

      The PasswordStrengthCondition checks for the strength of a password string. - The strength is measured on five simple criteria: - - contains lower case characters - - contains upper case characters - - contains numeric characters - - contains special characters (e.g /‘;~) - - is more than 8 characters long

      - -

      Each of these matched criteria moves the password strength of the string up one strength, strength is measured on PasswordStrength.

      +

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

      +
      +

      Seealso

      + URLShorthandCondition -

      If the password strength matches or is above the required strength than the condition will pass.

      +
      - See more + See more

      Declaration

      Swift

      -
      public struct PasswordStrengthCondition: ConfigurableCondition
      +
      public struct URLShorthandValidator : Validator
      @@ -1463,9 +1459,9 @@

      Declaration

    • @@ -1473,15 +1469,20 @@

      Declaration

      -

      A condition that returns the result of either operands.

      +

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

      +
      +

      Seealso

      + URLCondition - See more +
      + + See more

      Declaration

      Swift

      -
      public struct AndCondition: Condition
      +
      public struct URLValidator : Validator
      @@ -1496,8 +1497,8 @@

      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 5ed37d8..00acd87 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 - (73% documented) + (72% documented)

      @@ -229,7 +229,7 @@

      AlphabeticCondition

      -
      public struct AlphabeticCondition: ConfigurableCondition
      +
      public struct AlphabeticCondition : ConfigurableCondition
      @@ -268,7 +268,7 @@

      Properties

      Declaration

      Swift

      -
      public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationAlphabetic", comment: "")
      +
      public var localizedViolationString: String
    • @@ -320,7 +320,7 @@

      Declaration

      Declaration

      Swift

      -
      public var shouldAllowViolation = true
      +
      public var shouldAllowViolation: Bool
    • @@ -367,9 +367,9 @@

      Initializers

    • @@ -404,9 +404,9 @@

      Check

    • @@ -435,8 +435,8 @@

      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 7241773..206b00f 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 - (73% documented) + (72% documented)

      @@ -229,7 +229,7 @@

      AlphabeticConfiguration

      -
      public struct AlphabeticConfiguration: Configuration
      +
      public struct AlphabeticConfiguration : Configuration
      @@ -343,9 +343,9 @@

      Declaration

    • @@ -375,8 +375,8 @@

      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 13fa3c0..ea3810d 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 - (73% documented) + (72% documented)

      @@ -229,7 +229,7 @@

      AlphabeticValidator

      -
      public struct AlphabeticValidator: ConfigurableValidator
      +
      public struct AlphabeticValidator : ConfigurableValidator
      @@ -294,9 +294,9 @@

      Initializers

    • @@ -325,8 +325,8 @@

      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 149a65c..af58b23 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 - (73% documented) + (72% documented)

      @@ -229,7 +229,7 @@

      AlphanumericCondition

      -
      public struct AlphanumericCondition: ConfigurableCondition
      +
      public struct AlphanumericCondition : ConfigurableCondition
      @@ -268,7 +268,7 @@

      Properties

      Declaration

      Swift

      -
      public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationAlphanumeric", comment: "")
      +
      public var localizedViolationString: String
    • @@ -320,7 +320,7 @@

      Declaration

      Declaration

      Swift

      -
      public var shouldAllowViolation = true
      +
      public var shouldAllowViolation: Bool
    • @@ -367,9 +367,9 @@

      Initializers

    • @@ -404,9 +404,9 @@

      Check

    • @@ -435,8 +435,8 @@

      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 613d8f3..77bf9d9 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 - (73% documented) + (72% documented)

      @@ -229,7 +229,7 @@

      AlphanumericConfiguration

      -
      public struct AlphanumericConfiguration: Configuration
      +
      public struct AlphanumericConfiguration : Configuration
      @@ -343,9 +343,9 @@

      Declaration

    • @@ -375,8 +375,8 @@

      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 7fafde1..bc72375 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    AlphanumericValidator

    -
    public struct AlphanumericValidator: ConfigurableValidator
    +
    public struct AlphanumericValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • @@ -325,8 +325,8 @@

    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 15e0818..6b80a89 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    AndCondition

    -
    public struct AndCondition: Condition
    +
    public struct AndCondition : Condition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = ""
    +
    public var localizedViolationString: String
  • @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
  • @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
  • @@ -394,9 +394,9 @@

    Declaration

  • @@ -432,9 +432,9 @@

    Check

  • @@ -463,8 +463,8 @@

    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 94f3c50..140a55b 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    CompositeValidator

    -
    public struct CompositeValidator: Validator
    +
    public struct CompositeValidator : Validator
    @@ -342,9 +342,9 @@

    Declaration

  • @@ -393,8 +393,8 @@

    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 69a4a11..62288a8 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    ControlForm

    -
    public struct ControlForm: Form
    +
    public struct ControlForm : Form
    @@ -302,8 +302,8 @@

    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 d7fee4b..70f937c 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    CreditCardCondition

    -
    public struct CreditCardCondition: ConfigurableCondition
    +
    public struct CreditCardCondition : ConfigurableCondition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationCreditCard", comment: "")
    +
    public var localizedViolationString: String
  • @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public var regex: String
    +
    public var regex: String { get }
  • @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
  • @@ -367,9 +367,9 @@

    Initializers

  • @@ -404,9 +404,9 @@

    Check

  • @@ -431,9 +431,9 @@

    Declaration

  • @@ -463,8 +463,8 @@

    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 6f0b04c..a73b4f6 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    CreditCardConfiguration

    -
    public struct CreditCardConfiguration: Configuration
    +
    public struct CreditCardConfiguration : Configuration
    @@ -316,9 +316,9 @@

    Declaration

  • @@ -348,8 +348,8 @@

    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 dc6116b..524a3e7 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    CreditCardType

    -
    public struct CreditCardType: OptionSet, CustomStringConvertible
    +
    public struct CreditCardType : OptionSet, CustomStringConvertible
    @@ -245,9 +245,9 @@

    CreditCardType

  • - + - rawValue + rawValue
    @@ -271,9 +271,9 @@

    Declaration

  • @@ -314,7 +314,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let americanExpress    = CreditCardType(rawValue: 1 << 0)
    +
    public static let americanExpress: CreditCardType
    @@ -341,7 +341,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let dinersClub         = CreditCardType(rawValue: 1 << 1)
    +
    public static let dinersClub: CreditCardType
  • @@ -368,7 +368,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let discover           = CreditCardType(rawValue: 1 << 2)
    +
    public static let discover: CreditCardType
  • @@ -395,7 +395,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let jcb                = CreditCardType(rawValue: 1 << 3)
    +
    public static let jcb: CreditCardType
    @@ -422,7 +422,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let maestro            = CreditCardType(rawValue: 1 << 4)
    +
    public static let maestro: CreditCardType
    @@ -449,7 +449,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let mastercard         = CreditCardType(rawValue: 1 << 5)
    +
    public static let mastercard: CreditCardType
    @@ -476,7 +476,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let visa               = CreditCardType(rawValue: 1 << 6)
    +
    public static let visa: CreditCardType
    @@ -503,7 +503,7 @@

    Declaration

    Declaration

    Swift

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

    Declaration

    Declaration

    Swift

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

    Declaration

    Declaration

    Swift

    -
    public var description: String
    +
    public var description: String { get }
    @@ -584,7 +584,7 @@

    Declaration

    Declaration

    Swift

    -
    public var regex: String
    +
    public var regex: String { get }
    @@ -599,8 +599,8 @@

    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 15a757c..a1e7ce4 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    CreditCardValidator

    -
    public struct CreditCardValidator: ConfigurableValidator
    +
    public struct CreditCardValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -331,9 +331,9 @@

    Validity

  • - + - validCardTypes(for:completion:) + validCardTypes(for:completion:)
    @@ -363,8 +363,8 @@

    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 61355a1..162b227 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    EmailCondition

    -
    public struct EmailCondition: Condition
    +
    public struct EmailCondition : Condition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationEmail", comment: "")
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = "^[+\\w\\.\\-']+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*(\\.[a-zA-Z]{2,})+$"
    +
    public let regex: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -372,8 +372,8 @@

    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 f2bc795..2cbf6f2 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    EmailValidator

    -
    public struct EmailValidator: Validator
    +
    public struct EmailValidator : Validator
    @@ -325,8 +325,8 @@

    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 661964a..766544a 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 - (73% documented) + (72% documented)

    @@ -353,8 +353,8 @@

    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 41a1e27..9b0fc14 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    NotCondition

    -
    public struct NotCondition: Condition
    +
    public struct NotCondition : Condition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = ""
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -394,9 +394,9 @@

    Declaration

  • - + - init(condition:) + init(condition:)
    @@ -432,9 +432,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -463,8 +463,8 @@

    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 717d89d..bcb2938 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    NumericCondition

    -
    public struct NumericCondition: ConfigurableCondition
    +
    public struct NumericCondition : ConfigurableCondition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationNumeric", comment: "")
    +
    public var localizedViolationString: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -367,9 +367,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -404,9 +404,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -435,8 +435,8 @@

    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 ce28d94..30ff6bd 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    NumericConfiguration

    -
    public struct NumericConfiguration: Configuration
    +
    public struct NumericConfiguration : Configuration
    @@ -343,9 +343,9 @@

    Declaration

  • - + - init(allowsUnicode:allowsWhitespace:) + init(allowsUnicode:allowsWhitespace:)
    @@ -375,8 +375,8 @@

    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 9b68dc5..aab6326 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    NumericValidator

    -
    public struct NumericValidator: ConfigurableValidator
    +
    public struct NumericValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -325,8 +325,8 @@

    Declaration

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

    @@ -229,7 +229,7 @@

    OptionalValidator

    -
    public struct OptionalValidator: Validator
    +
    public struct OptionalValidator : Validator
    @@ -344,9 +344,9 @@

    Declaration

  • - + - init(conditions:primaryCondition:) + init(conditions:primaryCondition:)
    @@ -382,9 +382,9 @@

    Validity

  • - + - checkConditions(_:) + checkConditions(_:)
    @@ -413,8 +413,8 @@

    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 2b30973..6ca3e98 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    OrCondition

    -
    public struct OrCondition: Condition
    +
    public struct OrCondition : Condition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = ""
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -394,9 +394,9 @@

    Declaration

  • - + - init(conditions:) + init(conditions:)
    @@ -432,9 +432,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -463,8 +463,8 @@

    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 0ea34e2..495b88c 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PasswordStrengthCondition

    -
    public struct PasswordStrengthCondition: ConfigurableCondition
    +
    public struct PasswordStrengthCondition : ConfigurableCondition
    @@ -278,7 +278,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationPasswordStrength", comment: "")
    +
    public var localizedViolationString: String
    @@ -304,7 +304,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
    @@ -330,7 +330,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -377,9 +377,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -414,9 +414,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -445,8 +445,8 @@

    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 f8bae4e..dab0023 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PasswordStrengthConfiguration

    -
    public struct PasswordStrengthConfiguration: Configuration
    +
    public struct PasswordStrengthConfiguration : Configuration
    @@ -316,9 +316,9 @@

    Declaration

  • - + - init(requiredStrength:) + init(requiredStrength:)
    @@ -367,8 +367,8 @@

    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 cc3d38b..170d605 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PasswordStrengthValidator

    -
    public struct PasswordStrengthValidator: ConfigurableValidator
    +
    public struct PasswordStrengthValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -325,8 +325,8 @@

    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 1fe98a9..f3c60fd 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PostcodeCondition

    -
    public struct PostcodeCondition: ConfigurableCondition
    +
    public struct PostcodeCondition : ConfigurableCondition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationPostcodeUK", comment: "")
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public var regex: String
    +
    public var regex: String { get }
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -367,9 +367,9 @@

    Initializer

  • - + - init(configuration:) + init(configuration:)
    @@ -398,8 +398,8 @@

    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 6f03e71..9453fee 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PostcodeConfiguration

    -
    public struct PostcodeConfiguration: Configuration
    +
    public struct PostcodeConfiguration : Configuration
    @@ -316,9 +316,9 @@

    Declaration

  • - + - init(country:) + init(country:)
    @@ -348,8 +348,8 @@

    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 7801089..801c793 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PostcodeValidator

    -
    public struct PostcodeValidator: ConfigurableValidator
    +
    public struct PostcodeValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -325,8 +325,8 @@

    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 752f56d..e980c09 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PresentCondition

    -
    public struct PresentCondition: Condition
    +
    public struct PresentCondition : Condition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationPresent", comment: "")
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -378,9 +378,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -409,8 +409,8 @@

    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 5d678b7..86a5852 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    PresentValidator

    -
    public struct PresentValidator: Validator
    +
    public struct PresentValidator : Validator
    @@ -325,8 +325,8 @@

    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 cab9ae8..25970e1 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    RangeCondition

    -
    public struct RangeCondition: ConfigurableCondition
    +
    public struct RangeCondition : ConfigurableCondition
    @@ -268,7 +268,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationRange", comment: "")
    +
    public var localizedViolationString: String
    @@ -294,7 +294,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = ""
    +
    public let regex: String
    @@ -320,7 +320,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -367,9 +367,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -404,9 +404,9 @@

    Check

  • - + - check(_:) + check(_:)
    @@ -435,8 +435,8 @@

    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 6454f6c..8b2326d 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    RangeConfiguration

    -
    public struct RangeConfiguration: Configuration
    +
    public struct RangeConfiguration : Configuration
    @@ -252,9 +252,9 @@

    Properties

  • - + - range + range
    @@ -317,9 +317,9 @@

    Declaration

  • - + - init(range:) + init(range:)
    @@ -349,8 +349,8 @@

    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 3545212..e2566c9 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    RangeValidator

    -
    public struct RangeValidator: ConfigurableValidator
    +
    public struct RangeValidator : ConfigurableValidator
    @@ -294,9 +294,9 @@

    Initializers

  • - + - init(configuration:) + init(configuration:)
    @@ -325,8 +325,8 @@

    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 08fce8c..3969a10 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    URLCondition

    -
    public struct URLCondition: Condition
    +
    public struct URLCondition : Condition
    @@ -273,7 +273,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationURL", comment: "")
    +
    public var localizedViolationString: String
    @@ -299,7 +299,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = "^((https?)://)[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?$"
    +
    public let regex: String
    @@ -325,7 +325,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -377,8 +377,8 @@

    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 33babc1..b001159 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    URLShorthandCondition

    -
    public struct URLShorthandCondition: Condition
    +
    public struct URLShorthandCondition : Condition
    @@ -273,7 +273,7 @@

    Properties

    Declaration

    Swift

    -
    public var localizedViolationString = StringLocalization.sharedInstance.localizedString("US2KeyConditionViolationShorthandURL", comment: "")
    +
    public var localizedViolationString: String
    @@ -299,7 +299,7 @@

    Declaration

    Declaration

    Swift

    -
    public let regex = "^((https?)://)?[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?$"
    +
    public let regex: String
    @@ -325,7 +325,7 @@

    Declaration

    Declaration

    Swift

    -
    public var shouldAllowViolation = true
    +
    public var shouldAllowViolation: Bool
    @@ -377,8 +377,8 @@

    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 a9588e6..db49045 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    URLShorthandValidator

    -
    public struct URLShorthandValidator: Validator
    +
    public struct URLShorthandValidator : Validator
    @@ -325,8 +325,8 @@

    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 7bf06c2..6ba6bb8 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 - (73% documented) + (72% documented)

    @@ -229,7 +229,7 @@

    URLValidator

    -
    public struct URLValidator: Validator
    +
    public struct URLValidator : Validator
    @@ -325,8 +325,8 @@

    Declaration

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/index.html b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/index.html index c2ab706..15c4dde 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 - (73% documented) + (72% documented)

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

    FormValidatorSwift

    @@ -438,8 +438,8 @@

    License

    diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/search.json b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/search.json index ccf364e..e8f9018 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: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/OptionalValidator.html#/s:18FormValidatorSwift08OptionalB0V16primaryConditionAA0F0_pvp":{"name":"primaryCondition","abstract":"

    Undocumented

    ","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift08OptionalB0VACSayAA9Condition_pG10conditions_AaD_p07primaryE0tcfc":{"name":"init(conditions:primaryCondition:)","abstract":"

    Undocumented

    ","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0P15checkConditionsSayAA9Condition_pGSgSSSgF":{"name":"checkConditions(_:)","parent_name":"OptionalValidator"},"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/OptionalValidator.html":{"name":"OptionalValidator","abstract":"

    The OptionalValidator has two stages of conditions. First the primaryCondition is checked. If it is met, then the subsequent condition are checked for violations. If the primaryCondition is not met, then no violation is returned.

    "},"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 +{"Structs/URLValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"URLValidator"},"Structs/URLValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLValidator"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"URLShorthandValidator"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLShorthandValidator"},"Structs/RangeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"RangeValidator"},"Structs/RangeValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"RangeValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PresentValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"PresentValidator"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PostcodeValidator"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeValidator"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PasswordStrengthValidator"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift08OptionalB0V16primaryConditionAA0F0_pvp":{"name":"primaryCondition","abstract":"

    Undocumented

    ","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift08OptionalB0V10conditions16primaryConditionACSayAA0G0_pG_AaF_ptcfc":{"name":"init(conditions:primaryCondition:)","abstract":"

    Undocumented

    ","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0P15checkConditionsySayAA9Condition_pGSgSSSgF":{"name":"checkConditions(_:)","parent_name":"OptionalValidator"},"Structs/NumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"NumericValidator"},"Structs/NumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"NumericValidator"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"EmailValidator"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"EmailValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift010CreditCardB0V05validE5Types3for10completionySS_yAA0dE4TypeVctF":{"name":"validCardTypes(for:completion:)","abstract":"

    Returns valid card types for a credit card number asynchronously.

    ","parent_name":"CreditCardValidator"},"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:18FormValidatorSwift09CompositeB0V10validatorsACSayAA0B0_pG_tcfc":{"name":"init(validators:)","abstract":"

    Initializes a CompositeValidator.

    ","parent_name":"CompositeValidator"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"AlphanumericValidator"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericValidator"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"AlphabeticValidator"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticValidator"},"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/ControlForm.html#/s:18FormValidatorSwift0A0P7entriesSayAA0A5EntryVGvp":{"name":"entries","parent_name":"ControlForm"},"Structs/ControlForm.html#/s:18FormValidatorSwift0A0Pxycfc":{"name":"init()","parent_name":"ControlForm"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationV5rangeSnySiGvp":{"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:18FormValidatorSwift18RangeConfigurationV5rangeACSnySiG_tcfc":{"name":"init(range:)","abstract":"

    Undocumented

    ","parent_name":"RangeConfiguration"},"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:18FormValidatorSwift21PostcodeConfigurationV7countryAcA0D9CountriesO_tcfc":{"name":"init(country:)","abstract":"

    Undocumented

    ","parent_name":"PostcodeConfiguration"},"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:18FormValidatorSwift29PasswordStrengthConfigurationV08requiredE0AcA0dE0O_tcfc":{"name":"init(requiredStrength:)","abstract":"

    Initializes a PasswordStrengthConfiguration.

    ","parent_name":"PasswordStrengthConfiguration"},"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:18FormValidatorSwift20NumericConfigurationV13allowsUnicode0F10WhitespaceACSb_Sbtcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"NumericConfiguration"},"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:18FormValidatorSwift23CreditCardConfigurationV8cardTypeAcA0deH0V_tcfc":{"name":"init(cardType:)","abstract":"

    Undocumented

    ","parent_name":"CreditCardConfiguration"},"Structs/CreditCardType.html#/s:SY8rawValue03RawB0Qzvp":{"name":"rawValue","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:s9OptionSetP8rawValuex03RawD0Qz_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:18FormValidatorSwift25AlphanumericConfigurationV13allowsUnicode0F10WhitespaceACSb_Sbtcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphanumericConfiguration"},"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:18FormValidatorSwift23AlphabeticConfigurationV13allowsUnicode0F10WhitespaceACSb_Sbtcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphabeticConfiguration"},"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/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/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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"RangeCondition"},"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:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"PresentCondition"},"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeCondition"},"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"PasswordStrengthCondition"},"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"NumericCondition"},"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:18FormValidatorSwift11OrConditionV10conditionsACSayAA0E0_pG_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"OrCondition"},"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:18FormValidatorSwift12NotConditionV9conditionAcA0E0_p_tcfc":{"name":"init(condition:)","abstract":"

    Undocumented

    ","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"NotCondition"},"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:18FormValidatorSwift12AndConditionV10conditionsACSayAA0E0_pG_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"AndCondition"},"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/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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift19CreditCardConditionV5checkySbSSSgF":{"name":"check(_:)","abstract":"

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

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

    Undocumented

    ","parent_name":"CreditCardCondition"},"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"AlphanumericCondition"},"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html":{"name":"AlphabeticCondition","abstract":"

    The AlphabeticCondition checks a string for occurrences of letters.

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

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

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

    The CreditCardCondition checks a string for a credit card number.

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

    The EmailCondition checks a string for an email.

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

    A condition that returns the result of either operands.

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

    A condition that returns the opposite of the original condition.

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

    A condition that returns the result of either operands.

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

    The NumericCondition checks a string for numbers.

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

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

    The PostcodeCondition checks a string for a post code.

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

    The PresentCondition checks for the presence of a string.

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

    The RangeCondition validates the length of a string.

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

    The URLCondition checks a string for a valid URL.

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

    The URLShorthandCondition checks a string for a valid URL.

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

    Stores configuration for AlphabeticCondition.

    "},"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/NumericConfiguration.html":{"name":"NumericConfiguration","abstract":"

    Stores configuration for NumericCondition.

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

    Stores configuration for PasswordStrengthCondition.

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

    Stores configuration for PostcodeCondition.

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

    Stores configuration for RangeCondition.

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

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

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

    A single entry within a Form.

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

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

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

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

    "},"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/CreditCardValidator.html":{"name":"CreditCardValidator","abstract":"

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

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

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

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

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

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

    The OptionalValidator has two stages of conditions. First the primaryCondition is checked. If it is met, then the subsequent condition are checked for violations. If the primaryCondition is not met, then no violation is returned.

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

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

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

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

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

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

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

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

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

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

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

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

    "},"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:18FormValidatorSwift0B15ControlDelegateP09validatorD9DidChangeyyAA0bD0_pF":{"name":"validatorControlDidChange(_:)","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"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:18FormValidatorSwift0B0P15checkConditionsySayAA9Condition_pGSgSSSgF":{"name":"checkConditions(_:)","abstract":"

    Checks text for violation of each condition.

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

    Removes all conditions of conditionClass type.

    ","parent_name":"Validator"},"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/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:18FormValidatorSwift0A0P12validatablesxSayAA0B7Control_pG_tcfc":{"name":"init(validatables:)","abstract":"

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

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P12validatables10validatorsxSgSayAA0B7Control_pG_SayAA0B0_pGtcfc":{"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:18FormValidatorSwift0A0P8addEntryyyAA0B7Control_pF":{"name":"addEntry(_:)","abstract":"

    Undocumented

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P20removeControlAtIndexyAA0bE0_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/Configuration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","abstract":"

    Initializes a Configuration with the default values.

    ","parent_name":"Configuration"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift012ConfigurableB0P17ConfigurationTypeQa":{"name":"ConfigurationType","abstract":"

    Undocumented

    ","parent_name":"ConfigurableValidator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_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/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP17ConfigurationTypeQa":{"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_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/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:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","abstract":"

    Check the custom condition.

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

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

    A special type of Condition that allows configuration.

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

    A special type of Validator that allows configuration.

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

    A configuration for a Condition.

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

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

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

    Undocumented

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

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO12unitedStatesyA2CmF":{"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/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO8veryWeakyA2CmF":{"name":"veryWeak","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    ","parent_name":"PasswordStrength"},"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.

    "},"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.

    "},"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_pSgvp":{"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:18FormValidatorSwift0B8TextViewC9validatorAcA0B0_p_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

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

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC5frame13textContainer9validatorACSo6CGRectV_So06NSTextH0CSgAA0B0_ptcfc":{"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#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextView(im)dealloc":{"name":"deinit","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC03setB8DelegateyyAA0b7ControlG0_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:18FormValidatorSwift0B8TextViewC09validatordE18ViolatedConditionsyySayAA9Condition_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_pSgvp":{"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:18FormValidatorSwift0B9TextFieldC9validatorAcA0B0_p_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC5frame9validatorACSo6CGRectV_AA0B0_ptcfc":{"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#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextField(im)dealloc":{"name":"deinit","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC03setB8DelegateyyAA0b7ControlG0_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:18FormValidatorSwift0B9TextFieldC09validatordE18ViolatedConditionsyySayAA9Condition_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 a9e265d..f84d035 100644 --- a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/undocumented.json +++ b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/Documents/undocumented.json @@ -531,6 +531,20 @@ "symbol": "CompositeValidator.validators", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" + }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Validators/OptionalValidator.swift", + "line": 20, + "symbol": "OptionalValidator.primaryCondition", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Validators/OptionalValidator.swift", + "line": 31, + "symbol": "OptionalValidator.init(conditions:primaryCondition:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" } ], "source_directory": "/Users/aamct/Documents/App-Projects/formvalidator-swift" diff --git a/docs/docsets/FormValidatorSwift.docset/Contents/Resources/docSet.dsidx b/docs/docsets/FormValidatorSwift.docset/Contents/Resources/docSet.dsidx index 3eadf10562946cf41fe2ba37826b2432dff1895d..cddaac673493f3cd8ebd1cdbcfcbbc8a24d8f0a1 100644 GIT binary patch delta 11757 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 delta 13514 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 diff --git a/docs/docsets/FormValidatorSwift.tgz b/docs/docsets/FormValidatorSwift.tgz index 83076a9349aa1e7620e3a2dbb00c769ba719d29e..4f1b555bfa54b3ae190843ff3d312c59c502883b 100644 GIT binary patch literal 123739 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

    ?GN@v2U{)ZO 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 VNz4Dwqy2pUx)FX*17}1G_g}v#0UiJV diff --git a/docs/index.html b/docs/index.html index c2ab706..15c4dde 100644 --- a/docs/index.html +++ b/docs/index.html @@ -22,7 +22,7 @@ FormValidatorSwift Docs - (73% documented) + (72% documented)

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

    FormValidatorSwift

    @@ -438,8 +438,8 @@

    License

    diff --git a/docs/search.json b/docs/search.json index ccf364e..e8f9018 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"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/OptionalValidator.html#/s:18FormValidatorSwift08OptionalB0V16primaryConditionAA0F0_pvp":{"name":"primaryCondition","abstract":"

    Undocumented

    ","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift08OptionalB0VACSayAA9Condition_pG10conditions_AaD_p07primaryE0tcfc":{"name":"init(conditions:primaryCondition:)","abstract":"

    Undocumented

    ","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0P15checkConditionsSayAA9Condition_pGSgSSSgF":{"name":"checkConditions(_:)","parent_name":"OptionalValidator"},"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/OptionalValidator.html":{"name":"OptionalValidator","abstract":"

    The OptionalValidator has two stages of conditions. First the primaryCondition is checked. If it is met, then the subsequent condition are checked for violations. If the primaryCondition is not met, then no violation is returned.

    "},"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 +{"Structs/URLValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"URLValidator"},"Structs/URLValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLValidator"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"URLShorthandValidator"},"Structs/URLShorthandValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"URLShorthandValidator"},"Structs/RangeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"RangeValidator"},"Structs/RangeValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"RangeValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PresentValidator"},"Structs/PresentValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"PresentValidator"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PostcodeValidator"},"Structs/PostcodeValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeValidator"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"PasswordStrengthValidator"},"Structs/PasswordStrengthValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift08OptionalB0V16primaryConditionAA0F0_pvp":{"name":"primaryCondition","abstract":"

    Undocumented

    ","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift08OptionalB0V10conditions16primaryConditionACSayAA0G0_pG_AaF_ptcfc":{"name":"init(conditions:primaryCondition:)","abstract":"

    Undocumented

    ","parent_name":"OptionalValidator"},"Structs/OptionalValidator.html#/s:18FormValidatorSwift0B0P15checkConditionsySayAA9Condition_pGSgSSSgF":{"name":"checkConditions(_:)","parent_name":"OptionalValidator"},"Structs/NumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"NumericValidator"},"Structs/NumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"NumericValidator"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"EmailValidator"},"Structs/EmailValidator.html#/s:18FormValidatorSwift0B0Pxycfc":{"name":"init()","parent_name":"EmailValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardValidator"},"Structs/CreditCardValidator.html#/s:18FormValidatorSwift010CreditCardB0V05validE5Types3for10completionySS_yAA0dE4TypeVctF":{"name":"validCardTypes(for:completion:)","abstract":"

    Returns valid card types for a credit card number asynchronously.

    ","parent_name":"CreditCardValidator"},"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:18FormValidatorSwift09CompositeB0V10validatorsACSayAA0B0_pG_tcfc":{"name":"init(validators:)","abstract":"

    Initializes a CompositeValidator.

    ","parent_name":"CompositeValidator"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"AlphanumericValidator"},"Structs/AlphanumericValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericValidator"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift0B0P10conditionsSayAA9Condition_pGvp":{"name":"conditions","parent_name":"AlphabeticValidator"},"Structs/AlphabeticValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticValidator"},"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/ControlForm.html#/s:18FormValidatorSwift0A0P7entriesSayAA0A5EntryVGvp":{"name":"entries","parent_name":"ControlForm"},"Structs/ControlForm.html#/s:18FormValidatorSwift0A0Pxycfc":{"name":"init()","parent_name":"ControlForm"},"Structs/RangeConfiguration.html#/s:18FormValidatorSwift18RangeConfigurationV5rangeSnySiGvp":{"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:18FormValidatorSwift18RangeConfigurationV5rangeACSnySiG_tcfc":{"name":"init(range:)","abstract":"

    Undocumented

    ","parent_name":"RangeConfiguration"},"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:18FormValidatorSwift21PostcodeConfigurationV7countryAcA0D9CountriesO_tcfc":{"name":"init(country:)","abstract":"

    Undocumented

    ","parent_name":"PostcodeConfiguration"},"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:18FormValidatorSwift29PasswordStrengthConfigurationV08requiredE0AcA0dE0O_tcfc":{"name":"init(requiredStrength:)","abstract":"

    Initializes a PasswordStrengthConfiguration.

    ","parent_name":"PasswordStrengthConfiguration"},"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:18FormValidatorSwift20NumericConfigurationV13allowsUnicode0F10WhitespaceACSb_Sbtcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"NumericConfiguration"},"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:18FormValidatorSwift23CreditCardConfigurationV8cardTypeAcA0deH0V_tcfc":{"name":"init(cardType:)","abstract":"

    Undocumented

    ","parent_name":"CreditCardConfiguration"},"Structs/CreditCardType.html#/s:SY8rawValue03RawB0Qzvp":{"name":"rawValue","parent_name":"CreditCardType"},"Structs/CreditCardType.html#/s:s9OptionSetP8rawValuex03RawD0Qz_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:18FormValidatorSwift25AlphanumericConfigurationV13allowsUnicode0F10WhitespaceACSb_Sbtcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphanumericConfiguration"},"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:18FormValidatorSwift23AlphabeticConfigurationV13allowsUnicode0F10WhitespaceACSb_Sbtcfc":{"name":"init(allowsUnicode:allowsWhitespace:)","abstract":"

    Undocumented

    ","parent_name":"AlphabeticConfiguration"},"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/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/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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"RangeCondition"},"Structs/RangeCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"RangeCondition"},"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:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"PresentCondition"},"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"PostcodeCondition"},"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"PasswordStrengthCondition"},"Structs/PasswordStrengthCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"PasswordStrengthCondition"},"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"NumericCondition"},"Structs/NumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"NumericCondition"},"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:18FormValidatorSwift11OrConditionV10conditionsACSayAA0E0_pG_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"OrCondition"},"Structs/OrCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"OrCondition"},"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:18FormValidatorSwift12NotConditionV9conditionAcA0E0_p_tcfc":{"name":"init(condition:)","abstract":"

    Undocumented

    ","parent_name":"NotCondition"},"Structs/NotCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"NotCondition"},"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:18FormValidatorSwift12AndConditionV10conditionsACSayAA0E0_pG_tcfc":{"name":"init(conditions:)","abstract":"

    Undocumented

    ","parent_name":"AndCondition"},"Structs/AndCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"AndCondition"},"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/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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"CreditCardCondition"},"Structs/CreditCardCondition.html#/s:18FormValidatorSwift19CreditCardConditionV5checkySbSSSgF":{"name":"check(_:)","abstract":"

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

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

    Undocumented

    ","parent_name":"CreditCardCondition"},"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"AlphanumericCondition"},"Structs/AlphanumericCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"AlphanumericCondition"},"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_tcfc":{"name":"init(configuration:)","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html#/s:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","parent_name":"AlphabeticCondition"},"Structs/AlphabeticCondition.html":{"name":"AlphabeticCondition","abstract":"

    The AlphabeticCondition checks a string for occurrences of letters.

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

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

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

    The CreditCardCondition checks a string for a credit card number.

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

    The EmailCondition checks a string for an email.

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

    A condition that returns the result of either operands.

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

    A condition that returns the opposite of the original condition.

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

    A condition that returns the result of either operands.

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

    The NumericCondition checks a string for numbers.

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

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

    The PostcodeCondition checks a string for a post code.

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

    The PresentCondition checks for the presence of a string.

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

    The RangeCondition validates the length of a string.

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

    The URLCondition checks a string for a valid URL.

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

    The URLShorthandCondition checks a string for a valid URL.

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

    Stores configuration for AlphabeticCondition.

    "},"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/NumericConfiguration.html":{"name":"NumericConfiguration","abstract":"

    Stores configuration for NumericCondition.

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

    Stores configuration for PasswordStrengthCondition.

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

    Stores configuration for PostcodeCondition.

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

    Stores configuration for RangeCondition.

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

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

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

    A single entry within a Form.

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

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

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

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

    "},"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/CreditCardValidator.html":{"name":"CreditCardValidator","abstract":"

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

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

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

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

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

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

    The OptionalValidator has two stages of conditions. First the primaryCondition is checked. If it is met, then the subsequent condition are checked for violations. If the primaryCondition is not met, then no violation is returned.

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

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

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

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

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

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

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

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

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

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

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

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

    "},"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:18FormValidatorSwift0B15ControlDelegateP09validatorD9DidChangeyyAA0bD0_pF":{"name":"validatorControlDidChange(_:)","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

    ","parent_name":"ValidatorControlDelegate"},"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:18FormValidatorSwift0B0P15checkConditionsySayAA9Condition_pGSgSSSgF":{"name":"checkConditions(_:)","abstract":"

    Checks text for violation of each condition.

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

    Removes all conditions of conditionClass type.

    ","parent_name":"Validator"},"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/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:18FormValidatorSwift0A0P12validatablesxSayAA0B7Control_pG_tcfc":{"name":"init(validatables:)","abstract":"

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

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P12validatables10validatorsxSgSayAA0B7Control_pG_SayAA0B0_pGtcfc":{"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:18FormValidatorSwift0A0P8addEntryyyAA0B7Control_pF":{"name":"addEntry(_:)","abstract":"

    Undocumented

    ","parent_name":"Form"},"Protocols/Form.html#/s:18FormValidatorSwift0A0P20removeControlAtIndexyAA0bE0_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/Configuration.html#/s:18FormValidatorSwift13ConfigurationPxycfc":{"name":"init()","abstract":"

    Initializes a Configuration with the default values.

    ","parent_name":"Configuration"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift012ConfigurableB0P17ConfigurationTypeQa":{"name":"ConfigurationType","abstract":"

    Undocumented

    ","parent_name":"ConfigurableValidator"},"Protocols/ConfigurableValidator.html#/s:18FormValidatorSwift012ConfigurableB0P13configurationx17ConfigurationTypeQz_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/ConfigurableCondition.html#/s:18FormValidatorSwift21ConfigurableConditionP17ConfigurationTypeQa":{"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:18FormValidatorSwift21ConfigurableConditionP13configurationx17ConfigurationTypeQz_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/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:18FormValidatorSwift9ConditionP5checkySbSSSgF":{"name":"check(_:)","abstract":"

    Check the custom condition.

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

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

    A special type of Condition that allows configuration.

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

    A special type of Validator that allows configuration.

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

    A configuration for a Condition.

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

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

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

    Undocumented

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

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    ","parent_name":"PostcodeCountries"},"Enums/PostcodeCountries.html#/s:18FormValidatorSwift17PostcodeCountriesO12unitedStatesyA2CmF":{"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/PasswordStrength.html#/s:18FormValidatorSwift16PasswordStrengthO8veryWeakyA2CmF":{"name":"veryWeak","abstract":"

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

    ","parent_name":"PasswordStrength"},"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.

    "},"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.

    "},"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_pSgvp":{"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:18FormValidatorSwift0B8TextViewC9validatorAcA0B0_p_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

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

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC5frame13textContainer9validatorACSo6CGRectV_So06NSTextH0CSgAA0B0_ptcfc":{"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#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextView(im)dealloc":{"name":"deinit","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextView"},"Classes/ValidatorTextView.html#/s:18FormValidatorSwift0B8TextViewC03setB8DelegateyyAA0b7ControlG0_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:18FormValidatorSwift0B8TextViewC09validatordE18ViolatedConditionsyySayAA9Condition_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_pSgvp":{"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:18FormValidatorSwift0B9TextFieldC9validatorAcA0B0_p_tcfc":{"name":"init(validator:)","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC5frame9validatorACSo6CGRectV_AA0B0_ptcfc":{"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#/c:@M@FormValidatorSwift@objc(cs)ValidatorTextField(im)dealloc":{"name":"deinit","abstract":"

    Undocumented

    ","parent_name":"ValidatorTextField"},"Classes/ValidatorTextField.html#/s:18FormValidatorSwift0B9TextFieldC03setB8DelegateyyAA0b7ControlG0_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:18FormValidatorSwift0B9TextFieldC09validatordE18ViolatedConditionsyySayAA9Condition_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 f84d035..a17703e 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -301,6 +301,13 @@ "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Controls/ValidatorTextField-UIKit.swift", + "line": 52, + "symbol": "ValidatorTextField.deinit", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Controls/ValidatorTextField-UIKit.swift", "line": 96, @@ -378,6 +385,13 @@ "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, + { + "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Controls/ValidatorTextView-UIKit.swift", + "line": 56, + "symbol": "ValidatorTextView.deinit", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, { "file": "/Users/aamct/Documents/App-Projects/formvalidator-swift/Sources/Controls/ValidatorTextView-UIKit.swift", "line": 88,