From c262b8b5a9f04c97df86638cebb535bbeacec074 Mon Sep 17 00:00:00 2001 From: Rajdeep Kwatra Date: Mon, 19 Jun 2023 16:58:14 +1000 Subject: [PATCH] Updated docs --- docs/Classes.html | 2 +- docs/Classes/Attachment.html | 2 +- docs/Classes/AttributesToggleCommand.html | 2 +- docs/Classes/BackgroundStyle.html | 2 +- docs/Classes/BoldCommand.html | 2 +- docs/Classes/BorderStyle.html | 2 +- docs/Classes/EditorCommandExecutor.html | 2 +- docs/Classes/EditorView.html | 75 +++++- docs/Classes/EditorViewContext.html | 2 +- docs/Classes/FontTraitToggleCommand.html | 2 +- docs/Classes/GridCell.html | 2 +- docs/Classes/GridView.html | 2 +- docs/Classes/ItalicsCommand.html | 2 +- docs/Classes/ListCommand.html | 2 +- docs/Classes/ListIndentCommand.html | 2 +- docs/Classes/ListOutdentCommand.html | 2 +- docs/Classes/ListTextProcessor.html | 2 +- docs/Classes/ShadowStyle.html | 2 +- docs/Classes/StrikethroughCommand.html | 2 +- docs/Classes/UnderlineCommand.html | 2 +- docs/Enums.html | 2 +- docs/Enums/AsyncTextResolvingResult.html | 2 +- docs/Enums/AttachmentSize.html | 2 +- docs/Enums/AttachmentType.html | 2 +- docs/Enums/BackgroundMode.html | 2 +- docs/Enums/EditorContentMode.html | 2 +- docs/Enums/EditorContentType.html | 2 +- docs/Enums/EditorHeight.html | 2 +- docs/Enums/EditorKey.html | 2 +- docs/Enums/GridColumnWidth.html | 2 +- docs/Enums/GridViewError.html | 2 +- docs/Enums/Indentation.html | 2 +- docs/Enums/ListLineMarker.html | 2 +- docs/Enums/RoundedCornerStyle.html | 2 +- docs/Extensions.html | 2 +- docs/Extensions/EditorContentName.html | 2 +- docs/Extensions/NSAttributedString.html | 2 +- docs/Extensions/NSAttributedString/Key.html | 2 +- docs/Extensions/NSParagraphStyle.html | 2 +- docs/Extensions/NSRange.html | 2 +- docs/Extensions/String.html | 2 +- docs/Extensions/TextProcessingPriority.html | 2 +- docs/Extensions/UIFont.html | 2 +- docs/Extensions/UITextRange.html | 2 +- docs/Protocols.html | 2 +- docs/Protocols/AsyncTextResolving.html | 2 +- docs/Protocols/AttachmentEncoding.html | 2 +- docs/Protocols/AttachmentOffsetProviding.html | 2 +- docs/Protocols/AttachmentTypeIdentifying.html | 2 +- docs/Protocols/AttributesDecoding.html | 2 +- docs/Protocols/BoundsObserving.html | 2 +- docs/Protocols/DynamicBoundsProviding.html | 2 +- docs/Protocols/EditorCommand.html | 2 +- docs/Protocols/EditorContentDecoding.html | 8 +- docs/Protocols/EditorContentEncoder.html | 2 +- docs/Protocols/EditorContentEncoding.html | 2 +- docs/Protocols/EditorContentIdentifying.html | 2 +- docs/Protocols/EditorContentView.html | 2 +- .../EditorListFormattingProvider.html | 2 +- docs/Protocols/EditorTextEncoding.html | 2 +- docs/Protocols/EditorViewDelegate.html | 233 +++++++++++++++++- docs/Protocols/Focusable.html | 2 +- docs/Protocols/GridViewDelegate.html | 2 +- docs/Protocols/SequenceGenerator.html | 2 +- docs/Protocols/TextProcessing.html | 2 +- docs/Structs.html | 2 +- docs/Structs/AnyAttributeDecoding.html | 2 +- .../AnyEditorContentAttachmentEncoding.html | 2 +- docs/Structs/AnyEditorContentDecoding.html | 8 +- docs/Structs/AnyEditorTextEncoding.html | 2 +- docs/Structs/AttachmentContentIdentifier.html | 2 +- docs/Structs/AttachmentImage.html | 2 +- docs/Structs/CommandName.html | 2 +- .../DiamondBulletSequenceGenerator.html | 2 +- docs/Structs/EditorContent.html | 2 +- docs/Structs/EditorLine.html | 2 +- docs/Structs/GradientColors.html | 2 +- docs/Structs/GridCellStyle.html | 2 +- docs/Structs/GridCellStyle/BorderStyle.html | 2 +- docs/Structs/GridColumnConfiguration.html | 2 +- docs/Structs/GridConfiguration.html | 2 +- docs/Structs/GridRowConfiguration.html | 2 +- docs/Structs/GridStyle.html | 2 +- docs/Structs/LineFormatting.html | 2 +- docs/Structs/ListItem.html | 2 +- docs/Structs/ListParser.html | 2 +- docs/Structs/NumericSequenceGenerator.html | 2 +- .../SquareBulletSequenceGenerator.html | 2 +- docs/Typealiases.html | 2 +- .../Contents/Resources/Documents/Classes.html | 2 +- .../Documents/Classes/Attachment.html | 2 +- .../Classes/AttributesToggleCommand.html | 2 +- .../Documents/Classes/BackgroundStyle.html | 2 +- .../Documents/Classes/BoldCommand.html | 2 +- .../Documents/Classes/BorderStyle.html | 2 +- .../Classes/EditorCommandExecutor.html | 2 +- .../Documents/Classes/EditorView.html | 75 +++++- .../Documents/Classes/EditorViewContext.html | 2 +- .../Classes/FontTraitToggleCommand.html | 2 +- .../Resources/Documents/Classes/GridCell.html | 2 +- .../Resources/Documents/Classes/GridView.html | 2 +- .../Documents/Classes/ItalicsCommand.html | 2 +- .../Documents/Classes/ListCommand.html | 2 +- .../Documents/Classes/ListIndentCommand.html | 2 +- .../Documents/Classes/ListOutdentCommand.html | 2 +- .../Documents/Classes/ListTextProcessor.html | 2 +- .../Documents/Classes/ShadowStyle.html | 2 +- .../Classes/StrikethroughCommand.html | 2 +- .../Documents/Classes/UnderlineCommand.html | 2 +- .../Contents/Resources/Documents/Enums.html | 2 +- .../Enums/AsyncTextResolvingResult.html | 2 +- .../Documents/Enums/AttachmentSize.html | 2 +- .../Documents/Enums/AttachmentType.html | 2 +- .../Documents/Enums/BackgroundMode.html | 2 +- .../Documents/Enums/EditorContentMode.html | 2 +- .../Documents/Enums/EditorContentType.html | 2 +- .../Documents/Enums/EditorHeight.html | 2 +- .../Resources/Documents/Enums/EditorKey.html | 2 +- .../Documents/Enums/GridColumnWidth.html | 2 +- .../Documents/Enums/GridViewError.html | 2 +- .../Documents/Enums/Indentation.html | 2 +- .../Documents/Enums/ListLineMarker.html | 2 +- .../Documents/Enums/RoundedCornerStyle.html | 2 +- .../Resources/Documents/Extensions.html | 2 +- .../Extensions/EditorContentName.html | 2 +- .../Extensions/NSAttributedString.html | 2 +- .../Extensions/NSAttributedString/Key.html | 2 +- .../Extensions/NSParagraphStyle.html | 2 +- .../Documents/Extensions/NSRange.html | 2 +- .../Documents/Extensions/String.html | 2 +- .../Extensions/TextProcessingPriority.html | 2 +- .../Documents/Extensions/UIFont.html | 2 +- .../Documents/Extensions/UITextRange.html | 2 +- .../Resources/Documents/Protocols.html | 2 +- .../Protocols/AsyncTextResolving.html | 2 +- .../Protocols/AttachmentEncoding.html | 2 +- .../Protocols/AttachmentOffsetProviding.html | 2 +- .../Protocols/AttachmentTypeIdentifying.html | 2 +- .../Protocols/AttributesDecoding.html | 2 +- .../Documents/Protocols/BoundsObserving.html | 2 +- .../Protocols/DynamicBoundsProviding.html | 2 +- .../Documents/Protocols/EditorCommand.html | 2 +- .../Protocols/EditorContentDecoding.html | 8 +- .../Protocols/EditorContentEncoder.html | 2 +- .../Protocols/EditorContentEncoding.html | 2 +- .../Protocols/EditorContentIdentifying.html | 2 +- .../Protocols/EditorContentView.html | 2 +- .../EditorListFormattingProvider.html | 2 +- .../Protocols/EditorTextEncoding.html | 2 +- .../Protocols/EditorViewDelegate.html | 233 +++++++++++++++++- .../Documents/Protocols/Focusable.html | 2 +- .../Documents/Protocols/GridViewDelegate.html | 2 +- .../Protocols/SequenceGenerator.html | 2 +- .../Documents/Protocols/TextProcessing.html | 2 +- .../Contents/Resources/Documents/Structs.html | 2 +- .../Structs/AnyAttributeDecoding.html | 2 +- .../AnyEditorContentAttachmentEncoding.html | 2 +- .../Structs/AnyEditorContentDecoding.html | 8 +- .../Structs/AnyEditorTextEncoding.html | 2 +- .../Structs/AttachmentContentIdentifier.html | 2 +- .../Documents/Structs/AttachmentImage.html | 2 +- .../Documents/Structs/CommandName.html | 2 +- .../DiamondBulletSequenceGenerator.html | 2 +- .../Documents/Structs/EditorContent.html | 2 +- .../Documents/Structs/EditorLine.html | 2 +- .../Documents/Structs/GradientColors.html | 2 +- .../Documents/Structs/GridCellStyle.html | 2 +- .../Structs/GridCellStyle/BorderStyle.html | 2 +- .../Structs/GridColumnConfiguration.html | 2 +- .../Documents/Structs/GridConfiguration.html | 2 +- .../Structs/GridRowConfiguration.html | 2 +- .../Documents/Structs/GridStyle.html | 2 +- .../Documents/Structs/LineFormatting.html | 2 +- .../Resources/Documents/Structs/ListItem.html | 2 +- .../Documents/Structs/ListParser.html | 2 +- .../Structs/NumericSequenceGenerator.html | 2 +- .../SquareBulletSequenceGenerator.html | 2 +- .../Resources/Documents/Typealiases.html | 2 +- .../Contents/Resources/Documents/index.html | 2 +- .../Contents/Resources/Documents/search.json | 2 +- .../Resources/Documents/undocumented.json | 91 +++++-- .../Contents/Resources/docSet.dsidx | Bin 155648 -> 163840 bytes docs/docsets/Proton.tgz | Bin 271533 -> 273135 bytes docs/index.html | 2 +- docs/search.json | 2 +- docs/undocumented.json | 40 +-- 186 files changed, 871 insertions(+), 256 deletions(-) diff --git a/docs/Classes.html b/docs/Classes.html index c6b81cdd..26371ab8 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -919,7 +919,7 @@

Declaration

diff --git a/docs/Classes/Attachment.html b/docs/Classes/Attachment.html index 19037a7a..bec76d47 100644 --- a/docs/Classes/Attachment.html +++ b/docs/Classes/Attachment.html @@ -1156,7 +1156,7 @@

Declaration

diff --git a/docs/Classes/AttributesToggleCommand.html b/docs/Classes/AttributesToggleCommand.html index dbc97842..3b2b8289 100644 --- a/docs/Classes/AttributesToggleCommand.html +++ b/docs/Classes/AttributesToggleCommand.html @@ -460,7 +460,7 @@

Declaration

diff --git a/docs/Classes/BackgroundStyle.html b/docs/Classes/BackgroundStyle.html index c54b9a91..cbb6bf28 100644 --- a/docs/Classes/BackgroundStyle.html +++ b/docs/Classes/BackgroundStyle.html @@ -627,7 +627,7 @@

Declaration

diff --git a/docs/Classes/BoldCommand.html b/docs/Classes/BoldCommand.html index f8e236a5..9aa02dd3 100644 --- a/docs/Classes/BoldCommand.html +++ b/docs/Classes/BoldCommand.html @@ -381,7 +381,7 @@

Declaration

diff --git a/docs/Classes/BorderStyle.html b/docs/Classes/BorderStyle.html index fbf76e8f..3663e59a 100644 --- a/docs/Classes/BorderStyle.html +++ b/docs/Classes/BorderStyle.html @@ -435,7 +435,7 @@

Declaration

diff --git a/docs/Classes/EditorCommandExecutor.html b/docs/Classes/EditorCommandExecutor.html index 12c201c6..9ea403d8 100644 --- a/docs/Classes/EditorCommandExecutor.html +++ b/docs/Classes/EditorCommandExecutor.html @@ -450,7 +450,7 @@

Parameters

diff --git a/docs/Classes/EditorView.html b/docs/Classes/EditorView.html index affeeb5d..e8c0ff38 100644 --- a/docs/Classes/EditorView.html +++ b/docs/Classes/EditorView.html @@ -1366,6 +1366,39 @@

Declaration

+
  • +
    + + + + forceApplyAttributedText + +
    +
    +
    +
    +
    +
    +

    Forces setting attributed text in EditorView even if it is not +yet in view hierarchy.

    +
    +

    Note

    + This may result in misplaced Attachments and is recommended to be set to true only in unit tests. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var forceApplyAttributedText: Bool
    + +
    +
    +
    +
    +
  • @@ -2226,6 +2259,38 @@

    Declaration

  • +
  • +
    + + + + didMoveToWindow() + +
    +
    +
    +
    +
    +
    +

    Subclasses can override it to perform additional actions whenever the window changes.

    +
    +

    Important

    + Overriding implementations must call super.didMoveToWindow() + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open override func didMoveToWindow()
    + +
    +
    +
    +
    +
  • @@ -2366,9 +2431,9 @@

    Declaration

  • - - - getFullAttributedText(using:) + + + getFullAttributedText(using:in:)
    @@ -2389,7 +2454,7 @@

    Declaration

    Declaration

    Swift

    -
    public func getFullAttributedText(using attachmentContentIdentifier: AttachmentContentIdentifier) -> NSAttributedString
    +
    public func getFullAttributedText(using attachmentContentIdentifier: AttachmentContentIdentifier, in range: NSRange? = nil) -> NSAttributedString
    @@ -4411,7 +4476,7 @@

    Return Value

    diff --git a/docs/Classes/EditorViewContext.html b/docs/Classes/EditorViewContext.html index aedfa3a9..ad3bb58c 100644 --- a/docs/Classes/EditorViewContext.html +++ b/docs/Classes/EditorViewContext.html @@ -547,7 +547,7 @@

    Parameters

    diff --git a/docs/Classes/FontTraitToggleCommand.html b/docs/Classes/FontTraitToggleCommand.html index 3ad8d58f..05b6d899 100644 --- a/docs/Classes/FontTraitToggleCommand.html +++ b/docs/Classes/FontTraitToggleCommand.html @@ -460,7 +460,7 @@

    Declaration

    diff --git a/docs/Classes/GridCell.html b/docs/Classes/GridCell.html index 98cf9f9d..34fc7abc 100644 --- a/docs/Classes/GridCell.html +++ b/docs/Classes/GridCell.html @@ -909,7 +909,7 @@

    Declaration

    diff --git a/docs/Classes/GridView.html b/docs/Classes/GridView.html index dfeb7fb9..51e6d715 100644 --- a/docs/Classes/GridView.html +++ b/docs/Classes/GridView.html @@ -1672,7 +1672,7 @@

    Declaration

    diff --git a/docs/Classes/ItalicsCommand.html b/docs/Classes/ItalicsCommand.html index 54f9e0d3..5547b141 100644 --- a/docs/Classes/ItalicsCommand.html +++ b/docs/Classes/ItalicsCommand.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/Classes/ListCommand.html b/docs/Classes/ListCommand.html index 660ed7de..4c8f6f4e 100644 --- a/docs/Classes/ListCommand.html +++ b/docs/Classes/ListCommand.html @@ -549,7 +549,7 @@

    Parameters

    diff --git a/docs/Classes/ListIndentCommand.html b/docs/Classes/ListIndentCommand.html index 01c50733..e49112c6 100644 --- a/docs/Classes/ListIndentCommand.html +++ b/docs/Classes/ListIndentCommand.html @@ -436,7 +436,7 @@

    Declaration

    diff --git a/docs/Classes/ListOutdentCommand.html b/docs/Classes/ListOutdentCommand.html index f55b83b9..0604694f 100644 --- a/docs/Classes/ListOutdentCommand.html +++ b/docs/Classes/ListOutdentCommand.html @@ -436,7 +436,7 @@

    Declaration

    diff --git a/docs/Classes/ListTextProcessor.html b/docs/Classes/ListTextProcessor.html index 054541a0..2ac39e63 100644 --- a/docs/Classes/ListTextProcessor.html +++ b/docs/Classes/ListTextProcessor.html @@ -576,7 +576,7 @@

    Declaration

    diff --git a/docs/Classes/ShadowStyle.html b/docs/Classes/ShadowStyle.html index 3fdbf030..31b881b4 100644 --- a/docs/Classes/ShadowStyle.html +++ b/docs/Classes/ShadowStyle.html @@ -462,7 +462,7 @@

    Declaration

    diff --git a/docs/Classes/StrikethroughCommand.html b/docs/Classes/StrikethroughCommand.html index dfe6f022..d36231f6 100644 --- a/docs/Classes/StrikethroughCommand.html +++ b/docs/Classes/StrikethroughCommand.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/Classes/UnderlineCommand.html b/docs/Classes/UnderlineCommand.html index 44226968..63c011b2 100644 --- a/docs/Classes/UnderlineCommand.html +++ b/docs/Classes/UnderlineCommand.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/Enums.html b/docs/Enums.html index 9594cfd9..99c4588b 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -718,7 +718,7 @@

    Declaration

    diff --git a/docs/Enums/AsyncTextResolvingResult.html b/docs/Enums/AsyncTextResolvingResult.html index 4fb8f2bc..f0493b0d 100644 --- a/docs/Enums/AsyncTextResolvingResult.html +++ b/docs/Enums/AsyncTextResolvingResult.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/Enums/AttachmentSize.html b/docs/Enums/AttachmentSize.html index cc6e7d93..7fab00f9 100644 --- a/docs/Enums/AttachmentSize.html +++ b/docs/Enums/AttachmentSize.html @@ -489,7 +489,7 @@

    Declaration

    diff --git a/docs/Enums/AttachmentType.html b/docs/Enums/AttachmentType.html index 1c5671fd..c82b241d 100644 --- a/docs/Enums/AttachmentType.html +++ b/docs/Enums/AttachmentType.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/Enums/BackgroundMode.html b/docs/Enums/BackgroundMode.html index a2c5826f..afdb2f58 100644 --- a/docs/Enums/BackgroundMode.html +++ b/docs/Enums/BackgroundMode.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/Enums/EditorContentMode.html b/docs/Enums/EditorContentMode.html index f61b5eaf..d4feb5b3 100644 --- a/docs/Enums/EditorContentMode.html +++ b/docs/Enums/EditorContentMode.html @@ -415,7 +415,7 @@

    Declaration

    diff --git a/docs/Enums/EditorContentType.html b/docs/Enums/EditorContentType.html index 25a14ca0..c96bb6a4 100644 --- a/docs/Enums/EditorContentType.html +++ b/docs/Enums/EditorContentType.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/Enums/EditorHeight.html b/docs/Enums/EditorHeight.html index 3a04edb0..b3badde5 100644 --- a/docs/Enums/EditorHeight.html +++ b/docs/Enums/EditorHeight.html @@ -441,7 +441,7 @@

    Declaration

    diff --git a/docs/Enums/EditorKey.html b/docs/Enums/EditorKey.html index 8f04c4e6..692ca5f3 100644 --- a/docs/Enums/EditorKey.html +++ b/docs/Enums/EditorKey.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/Enums/GridColumnWidth.html b/docs/Enums/GridColumnWidth.html index c7fb0b43..5b3b6fe6 100644 --- a/docs/Enums/GridColumnWidth.html +++ b/docs/Enums/GridColumnWidth.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/Enums/GridViewError.html b/docs/Enums/GridViewError.html index 56590249..d59c28ef 100644 --- a/docs/Enums/GridViewError.html +++ b/docs/Enums/GridViewError.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/Enums/Indentation.html b/docs/Enums/Indentation.html index 5059099b..20f0c905 100644 --- a/docs/Enums/Indentation.html +++ b/docs/Enums/Indentation.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/Enums/ListLineMarker.html b/docs/Enums/ListLineMarker.html index 99277f9d..3dafa23a 100644 --- a/docs/Enums/ListLineMarker.html +++ b/docs/Enums/ListLineMarker.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/Enums/RoundedCornerStyle.html b/docs/Enums/RoundedCornerStyle.html index ac386e2e..cca4ff80 100644 --- a/docs/Enums/RoundedCornerStyle.html +++ b/docs/Enums/RoundedCornerStyle.html @@ -409,7 +409,7 @@

    Declaration

    diff --git a/docs/Extensions.html b/docs/Extensions.html index 76c79344..71d5d998 100644 --- a/docs/Extensions.html +++ b/docs/Extensions.html @@ -556,7 +556,7 @@

    Declaration

    diff --git a/docs/Extensions/EditorContentName.html b/docs/Extensions/EditorContentName.html index f3d80452..cc42419e 100644 --- a/docs/Extensions/EditorContentName.html +++ b/docs/Extensions/EditorContentName.html @@ -515,7 +515,7 @@

    Declaration

    diff --git a/docs/Extensions/NSAttributedString.html b/docs/Extensions/NSAttributedString.html index 2a40f24f..7ee5148c 100644 --- a/docs/Extensions/NSAttributedString.html +++ b/docs/Extensions/NSAttributedString.html @@ -973,7 +973,7 @@

    Declaration

    diff --git a/docs/Extensions/NSAttributedString/Key.html b/docs/Extensions/NSAttributedString/Key.html index f922ddea..e2c3b470 100644 --- a/docs/Extensions/NSAttributedString/Key.html +++ b/docs/Extensions/NSAttributedString/Key.html @@ -617,7 +617,7 @@

    Declaration

    diff --git a/docs/Extensions/NSParagraphStyle.html b/docs/Extensions/NSParagraphStyle.html index 90114d7a..3bdd23c6 100644 --- a/docs/Extensions/NSParagraphStyle.html +++ b/docs/Extensions/NSParagraphStyle.html @@ -407,7 +407,7 @@

    Declaration

    diff --git a/docs/Extensions/NSRange.html b/docs/Extensions/NSRange.html index bd1e3c94..3cfc0141 100644 --- a/docs/Extensions/NSRange.html +++ b/docs/Extensions/NSRange.html @@ -635,7 +635,7 @@

    Return Value

    diff --git a/docs/Extensions/String.html b/docs/Extensions/String.html index 11420118..35654500 100644 --- a/docs/Extensions/String.html +++ b/docs/Extensions/String.html @@ -491,7 +491,7 @@

    Parameters

    diff --git a/docs/Extensions/TextProcessingPriority.html b/docs/Extensions/TextProcessingPriority.html index df330e16..742ab72e 100644 --- a/docs/Extensions/TextProcessingPriority.html +++ b/docs/Extensions/TextProcessingPriority.html @@ -462,7 +462,7 @@

    Declaration

    diff --git a/docs/Extensions/UIFont.html b/docs/Extensions/UIFont.html index fa1aa819..5bc930f6 100644 --- a/docs/Extensions/UIFont.html +++ b/docs/Extensions/UIFont.html @@ -650,7 +650,7 @@

    Declaration

    diff --git a/docs/Extensions/UITextRange.html b/docs/Extensions/UITextRange.html index 7ef5db9d..4249f5bb 100644 --- a/docs/Extensions/UITextRange.html +++ b/docs/Extensions/UITextRange.html @@ -399,7 +399,7 @@

    Parameters

    diff --git a/docs/Protocols.html b/docs/Protocols.html index 4755677e..f8976a74 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -984,7 +984,7 @@

    Declaration

    diff --git a/docs/Protocols/AsyncTextResolving.html b/docs/Protocols/AsyncTextResolving.html index 76dde72b..bd52ccac 100644 --- a/docs/Protocols/AsyncTextResolving.html +++ b/docs/Protocols/AsyncTextResolving.html @@ -470,7 +470,7 @@

    Parameters

    diff --git a/docs/Protocols/AttachmentEncoding.html b/docs/Protocols/AttachmentEncoding.html index 75986a03..1cba4b32 100644 --- a/docs/Protocols/AttachmentEncoding.html +++ b/docs/Protocols/AttachmentEncoding.html @@ -439,7 +439,7 @@

    Parameters

    diff --git a/docs/Protocols/AttachmentOffsetProviding.html b/docs/Protocols/AttachmentOffsetProviding.html index c53aff58..40a5cae3 100644 --- a/docs/Protocols/AttachmentOffsetProviding.html +++ b/docs/Protocols/AttachmentOffsetProviding.html @@ -393,7 +393,7 @@

    Declaration

    diff --git a/docs/Protocols/AttachmentTypeIdentifying.html b/docs/Protocols/AttachmentTypeIdentifying.html index afd60465..efcff36a 100644 --- a/docs/Protocols/AttachmentTypeIdentifying.html +++ b/docs/Protocols/AttachmentTypeIdentifying.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/Protocols/AttributesDecoding.html b/docs/Protocols/AttributesDecoding.html index 1a462038..19f62847 100644 --- a/docs/Protocols/AttributesDecoding.html +++ b/docs/Protocols/AttributesDecoding.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/Protocols/BoundsObserving.html b/docs/Protocols/BoundsObserving.html index 09ad5060..87097760 100644 --- a/docs/Protocols/BoundsObserving.html +++ b/docs/Protocols/BoundsObserving.html @@ -418,7 +418,7 @@

    Parameters

    diff --git a/docs/Protocols/DynamicBoundsProviding.html b/docs/Protocols/DynamicBoundsProviding.html index f599c6b2..efabad18 100644 --- a/docs/Protocols/DynamicBoundsProviding.html +++ b/docs/Protocols/DynamicBoundsProviding.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/Protocols/EditorCommand.html b/docs/Protocols/EditorCommand.html index 84987522..6d3dad54 100644 --- a/docs/Protocols/EditorCommand.html +++ b/docs/Protocols/EditorCommand.html @@ -485,7 +485,7 @@

    Parameters

    diff --git a/docs/Protocols/EditorContentDecoding.html b/docs/Protocols/EditorContentDecoding.html index 6ae14a37..f23722d1 100644 --- a/docs/Protocols/EditorContentDecoding.html +++ b/docs/Protocols/EditorContentDecoding.html @@ -406,9 +406,9 @@

    Declaration

  • - + - decode(mode:maxSize:value:context:) + decode(mode:maxSize:value:context:)
    @@ -423,7 +423,7 @@

    Declaration

    Declaration

    Swift

    -
    func decode(mode: EditorContentMode, maxSize: CGSize, value: TypeToDecode, context: DecodingContext) -> NSAttributedString
    +
    func decode(mode: EditorContentMode, maxSize: CGSize, value: TypeToDecode, context: DecodingContext) throws -> NSAttributedString
    @@ -490,7 +490,7 @@

    Parameters

    diff --git a/docs/Protocols/EditorContentEncoder.html b/docs/Protocols/EditorContentEncoder.html index 2c3450f5..f5544a46 100644 --- a/docs/Protocols/EditorContentEncoder.html +++ b/docs/Protocols/EditorContentEncoder.html @@ -511,7 +511,7 @@

    Parameters

    diff --git a/docs/Protocols/EditorContentEncoding.html b/docs/Protocols/EditorContentEncoding.html index 5a13245f..3167c74b 100644 --- a/docs/Protocols/EditorContentEncoding.html +++ b/docs/Protocols/EditorContentEncoding.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/Protocols/EditorContentIdentifying.html b/docs/Protocols/EditorContentIdentifying.html index eac6acf4..61265a8e 100644 --- a/docs/Protocols/EditorContentIdentifying.html +++ b/docs/Protocols/EditorContentIdentifying.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/Protocols/EditorContentView.html b/docs/Protocols/EditorContentView.html index 12160551..c3047a3e 100644 --- a/docs/Protocols/EditorContentView.html +++ b/docs/Protocols/EditorContentView.html @@ -588,7 +588,7 @@

    Declaration

    diff --git a/docs/Protocols/EditorListFormattingProvider.html b/docs/Protocols/EditorListFormattingProvider.html index 0aae8549..eeb26d18 100644 --- a/docs/Protocols/EditorListFormattingProvider.html +++ b/docs/Protocols/EditorListFormattingProvider.html @@ -485,7 +485,7 @@

    Return Value

    diff --git a/docs/Protocols/EditorTextEncoding.html b/docs/Protocols/EditorTextEncoding.html index 17dc71dc..bc5c71ee 100644 --- a/docs/Protocols/EditorTextEncoding.html +++ b/docs/Protocols/EditorTextEncoding.html @@ -458,7 +458,7 @@

    Parameters

    diff --git a/docs/Protocols/EditorViewDelegate.html b/docs/Protocols/EditorViewDelegate.html index 38e2d7d4..129959d7 100644 --- a/docs/Protocols/EditorViewDelegate.html +++ b/docs/Protocols/EditorViewDelegate.html @@ -1046,13 +1046,12 @@

    Parameters

    -

    Undocumented

    +

    Invoked whenever layout pass completes as a result of changing or text or attributes

    Default Implementation

    -

    Undocumented

    - +

    Declaration

    @@ -1062,6 +1061,232 @@

    Declaration

    +
    +

    Parameters

    + + + + + + + + + + + +
    + + editor + + +
    +

    Editor view receiving the event.

    +
    +
    + + content + + +
    +

    Attributed text value.

    +
    +
    +
    +
    + +
  • +
  • +
    + + + + editor(_:willSetAttributedText:) + + + Default implementation + +
    +
    +
    +
    +
    +
    +

    Invoked before attributedText is set on the EditorView

    + +
    +

    Default Implementation

    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editor(_ editor: EditorView, willSetAttributedText attributedText: NSAttributedString)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + editor + + +
    +

    Editor view receiving the event.

    +
    +
    + + content + + +
    +

    Attributed text value to be set.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + editor(_:didSetAttributedText:) + + + Default implementation + +
    +
    +
    +
    +
    +
    +

    Invoked after attributedText is set on the EditorView

    + +
    +

    Default Implementation

    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editor(_ editor: EditorView, didSetAttributedText attributedText: NSAttributedString)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + editor + + +
    +

    Editor view receiving the event.

    +
    +
    + + content + + +
    +

    Attributed text value set on the editor.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + editor(_editor:isReady:) + + + Default implementation + +
    +
    +
    +
    +
    +
    +

    Invoked when Editor has been added to the view hierarchy and is ready to receive events.

    + +
    +

    Default Implementation

    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editor(_editor: EditorView, isReady: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + editor + + +
    +

    Editor view receiving the event.

    +
    +
    + + isReady + + +
    +

    true if Editor is loaded. false when Editor is initialized but not yet in view hierarchy.

    +
    +
    +
  • @@ -1070,7 +1295,7 @@

    Declaration

    diff --git a/docs/Protocols/Focusable.html b/docs/Protocols/Focusable.html index 9887a05d..d49aaed2 100644 --- a/docs/Protocols/Focusable.html +++ b/docs/Protocols/Focusable.html @@ -387,7 +387,7 @@

    Declaration

    diff --git a/docs/Protocols/GridViewDelegate.html b/docs/Protocols/GridViewDelegate.html index f0c72846..13a79930 100644 --- a/docs/Protocols/GridViewDelegate.html +++ b/docs/Protocols/GridViewDelegate.html @@ -1039,7 +1039,7 @@

    Declaration

    diff --git a/docs/Protocols/SequenceGenerator.html b/docs/Protocols/SequenceGenerator.html index ef3766af..325d359e 100644 --- a/docs/Protocols/SequenceGenerator.html +++ b/docs/Protocols/SequenceGenerator.html @@ -401,7 +401,7 @@

    Parameters

    diff --git a/docs/Protocols/TextProcessing.html b/docs/Protocols/TextProcessing.html index 3b3a512d..5614d938 100644 --- a/docs/Protocols/TextProcessing.html +++ b/docs/Protocols/TextProcessing.html @@ -944,7 +944,7 @@

    Parameters

    diff --git a/docs/Structs.html b/docs/Structs.html index 6c0317ea..c43bc5fc 100644 --- a/docs/Structs.html +++ b/docs/Structs.html @@ -953,7 +953,7 @@

    Declaration

    diff --git a/docs/Structs/AnyAttributeDecoding.html b/docs/Structs/AnyAttributeDecoding.html index 427c764b..b8ff1e8e 100644 --- a/docs/Structs/AnyAttributeDecoding.html +++ b/docs/Structs/AnyAttributeDecoding.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/Structs/AnyEditorContentAttachmentEncoding.html b/docs/Structs/AnyEditorContentAttachmentEncoding.html index 0cd2abde..9731ae3f 100644 --- a/docs/Structs/AnyEditorContentAttachmentEncoding.html +++ b/docs/Structs/AnyEditorContentAttachmentEncoding.html @@ -485,7 +485,7 @@

    Parameters

    diff --git a/docs/Structs/AnyEditorContentDecoding.html b/docs/Structs/AnyEditorContentDecoding.html index bd94b141..b3d8ab52 100644 --- a/docs/Structs/AnyEditorContentDecoding.html +++ b/docs/Structs/AnyEditorContentDecoding.html @@ -403,9 +403,9 @@

    Parameters

  • - + - decode(mode:maxSize:value:context:) + decode(mode:maxSize:value:context:)
    @@ -420,7 +420,7 @@

    Parameters

    Declaration

    Swift

    -
    public func decode(mode: EditorContentMode, maxSize: CGSize, value: T, context: C) -> NSAttributedString
    +
    public func decode(mode: EditorContentMode, maxSize: CGSize, value: T, context: C) throws -> NSAttributedString
    @@ -487,7 +487,7 @@

    Parameters

    diff --git a/docs/Structs/AnyEditorTextEncoding.html b/docs/Structs/AnyEditorTextEncoding.html index 51fdcc19..a5eca453 100644 --- a/docs/Structs/AnyEditorTextEncoding.html +++ b/docs/Structs/AnyEditorTextEncoding.html @@ -490,7 +490,7 @@

    Parameters

    diff --git a/docs/Structs/AttachmentContentIdentifier.html b/docs/Structs/AttachmentContentIdentifier.html index d46ffec6..dfb05d7a 100644 --- a/docs/Structs/AttachmentContentIdentifier.html +++ b/docs/Structs/AttachmentContentIdentifier.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/Structs/AttachmentImage.html b/docs/Structs/AttachmentImage.html index 299fb5a5..37a38014 100644 --- a/docs/Structs/AttachmentImage.html +++ b/docs/Structs/AttachmentImage.html @@ -544,7 +544,7 @@

    Parameters

    diff --git a/docs/Structs/CommandName.html b/docs/Structs/CommandName.html index e538a30f..5000a539 100644 --- a/docs/Structs/CommandName.html +++ b/docs/Structs/CommandName.html @@ -434,7 +434,7 @@

    Declaration

    diff --git a/docs/Structs/DiamondBulletSequenceGenerator.html b/docs/Structs/DiamondBulletSequenceGenerator.html index 643f6299..dfab6af9 100644 --- a/docs/Structs/DiamondBulletSequenceGenerator.html +++ b/docs/Structs/DiamondBulletSequenceGenerator.html @@ -407,7 +407,7 @@

    Declaration

    diff --git a/docs/Structs/EditorContent.html b/docs/Structs/EditorContent.html index a9dc5122..89262d57 100644 --- a/docs/Structs/EditorContent.html +++ b/docs/Structs/EditorContent.html @@ -436,7 +436,7 @@

    Declaration

    diff --git a/docs/Structs/EditorLine.html b/docs/Structs/EditorLine.html index d976103b..9f725211 100644 --- a/docs/Structs/EditorLine.html +++ b/docs/Structs/EditorLine.html @@ -517,7 +517,7 @@

    Return Value

    diff --git a/docs/Structs/GradientColors.html b/docs/Structs/GradientColors.html index a15ed5da..cb233e8d 100644 --- a/docs/Structs/GradientColors.html +++ b/docs/Structs/GradientColors.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/Structs/GridCellStyle.html b/docs/Structs/GridCellStyle.html index 63b7eea2..bfbd18f0 100644 --- a/docs/Structs/GridCellStyle.html +++ b/docs/Structs/GridCellStyle.html @@ -584,7 +584,7 @@

    Return Value

    diff --git a/docs/Structs/GridCellStyle/BorderStyle.html b/docs/Structs/GridCellStyle/BorderStyle.html index f4c7de7a..28c47341 100644 --- a/docs/Structs/GridCellStyle/BorderStyle.html +++ b/docs/Structs/GridCellStyle/BorderStyle.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/Structs/GridColumnConfiguration.html b/docs/Structs/GridColumnConfiguration.html index 6d2b51e5..13d495b9 100644 --- a/docs/Structs/GridColumnConfiguration.html +++ b/docs/Structs/GridColumnConfiguration.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/Structs/GridConfiguration.html b/docs/Structs/GridConfiguration.html index ddeb7724..8fdfafbd 100644 --- a/docs/Structs/GridConfiguration.html +++ b/docs/Structs/GridConfiguration.html @@ -603,7 +603,7 @@

    Declaration

    diff --git a/docs/Structs/GridRowConfiguration.html b/docs/Structs/GridRowConfiguration.html index 9625407f..26f755e3 100644 --- a/docs/Structs/GridRowConfiguration.html +++ b/docs/Structs/GridRowConfiguration.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/Structs/GridStyle.html b/docs/Structs/GridStyle.html index 9d4d9da9..37591c01 100644 --- a/docs/Structs/GridStyle.html +++ b/docs/Structs/GridStyle.html @@ -464,7 +464,7 @@

    Declaration

    diff --git a/docs/Structs/LineFormatting.html b/docs/Structs/LineFormatting.html index 0dd20671..51946efe 100644 --- a/docs/Structs/LineFormatting.html +++ b/docs/Structs/LineFormatting.html @@ -467,7 +467,7 @@

    Parameters

    diff --git a/docs/Structs/ListItem.html b/docs/Structs/ListItem.html index 8687bcbe..d7712a38 100644 --- a/docs/Structs/ListItem.html +++ b/docs/Structs/ListItem.html @@ -510,7 +510,7 @@

    Parameters

    diff --git a/docs/Structs/ListParser.html b/docs/Structs/ListParser.html index 05b7cd86..795b6649 100644 --- a/docs/Structs/ListParser.html +++ b/docs/Structs/ListParser.html @@ -483,7 +483,7 @@

    Return Value

    diff --git a/docs/Structs/NumericSequenceGenerator.html b/docs/Structs/NumericSequenceGenerator.html index 96be0fc6..f5dacede 100644 --- a/docs/Structs/NumericSequenceGenerator.html +++ b/docs/Structs/NumericSequenceGenerator.html @@ -407,7 +407,7 @@

    Declaration

    diff --git a/docs/Structs/SquareBulletSequenceGenerator.html b/docs/Structs/SquareBulletSequenceGenerator.html index a0042056..eb1427e8 100644 --- a/docs/Structs/SquareBulletSequenceGenerator.html +++ b/docs/Structs/SquareBulletSequenceGenerator.html @@ -407,7 +407,7 @@

    Declaration

    diff --git a/docs/Typealiases.html b/docs/Typealiases.html index 02f91e05..b8cc30ed 100644 --- a/docs/Typealiases.html +++ b/docs/Typealiases.html @@ -482,7 +482,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes.html index c6b81cdd..26371ab8 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes.html @@ -919,7 +919,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/Attachment.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/Attachment.html index 19037a7a..bec76d47 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/Attachment.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/Attachment.html @@ -1156,7 +1156,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/AttributesToggleCommand.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/AttributesToggleCommand.html index dbc97842..3b2b8289 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/AttributesToggleCommand.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/AttributesToggleCommand.html @@ -460,7 +460,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BackgroundStyle.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BackgroundStyle.html index c54b9a91..cbb6bf28 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BackgroundStyle.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BackgroundStyle.html @@ -627,7 +627,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BoldCommand.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BoldCommand.html index f8e236a5..9aa02dd3 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BoldCommand.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BoldCommand.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BorderStyle.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BorderStyle.html index fbf76e8f..3663e59a 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BorderStyle.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/BorderStyle.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorCommandExecutor.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorCommandExecutor.html index 12c201c6..9ea403d8 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorCommandExecutor.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorCommandExecutor.html @@ -450,7 +450,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorView.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorView.html index affeeb5d..e8c0ff38 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorView.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorView.html @@ -1366,6 +1366,39 @@

    Declaration

  • +
  • +
    + + + + forceApplyAttributedText + +
    +
    +
    +
    +
    +
    +

    Forces setting attributed text in EditorView even if it is not +yet in view hierarchy.

    +
    +

    Note

    + This may result in misplaced Attachments and is recommended to be set to true only in unit tests. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var forceApplyAttributedText: Bool
    + +
    +
    +
    +
    +
  • @@ -2226,6 +2259,38 @@

    Declaration

  • +
  • +
    + + + + didMoveToWindow() + +
    +
    +
    +
    +
    +
    +

    Subclasses can override it to perform additional actions whenever the window changes.

    +
    +

    Important

    + Overriding implementations must call super.didMoveToWindow() + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open override func didMoveToWindow()
    + +
    +
    +
    +
    +
  • @@ -2366,9 +2431,9 @@

    Declaration

  • @@ -2389,7 +2454,7 @@

    Declaration

    Declaration

    Swift

    -
    public func getFullAttributedText(using attachmentContentIdentifier: AttachmentContentIdentifier) -> NSAttributedString
    +
    public func getFullAttributedText(using attachmentContentIdentifier: AttachmentContentIdentifier, in range: NSRange? = nil) -> NSAttributedString
    @@ -4411,7 +4476,7 @@

    Return Value

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorViewContext.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorViewContext.html index aedfa3a9..ad3bb58c 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorViewContext.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/EditorViewContext.html @@ -547,7 +547,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/FontTraitToggleCommand.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/FontTraitToggleCommand.html index 3ad8d58f..05b6d899 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/FontTraitToggleCommand.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/FontTraitToggleCommand.html @@ -460,7 +460,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/GridCell.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/GridCell.html index 98cf9f9d..34fc7abc 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/GridCell.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/GridCell.html @@ -909,7 +909,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/GridView.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/GridView.html index dfeb7fb9..51e6d715 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/GridView.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/GridView.html @@ -1672,7 +1672,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ItalicsCommand.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ItalicsCommand.html index 54f9e0d3..5547b141 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ItalicsCommand.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ItalicsCommand.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListCommand.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListCommand.html index 660ed7de..4c8f6f4e 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListCommand.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListCommand.html @@ -549,7 +549,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListIndentCommand.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListIndentCommand.html index 01c50733..e49112c6 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListIndentCommand.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListIndentCommand.html @@ -436,7 +436,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListOutdentCommand.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListOutdentCommand.html index f55b83b9..0604694f 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListOutdentCommand.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListOutdentCommand.html @@ -436,7 +436,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListTextProcessor.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListTextProcessor.html index 054541a0..2ac39e63 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListTextProcessor.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ListTextProcessor.html @@ -576,7 +576,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ShadowStyle.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ShadowStyle.html index 3fdbf030..31b881b4 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ShadowStyle.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/ShadowStyle.html @@ -462,7 +462,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/StrikethroughCommand.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/StrikethroughCommand.html index dfe6f022..d36231f6 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/StrikethroughCommand.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/StrikethroughCommand.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/UnderlineCommand.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/UnderlineCommand.html index 44226968..63c011b2 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/UnderlineCommand.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Classes/UnderlineCommand.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums.html index 9594cfd9..99c4588b 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums.html @@ -718,7 +718,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AsyncTextResolvingResult.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AsyncTextResolvingResult.html index 4fb8f2bc..f0493b0d 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AsyncTextResolvingResult.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AsyncTextResolvingResult.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AttachmentSize.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AttachmentSize.html index cc6e7d93..7fab00f9 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AttachmentSize.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AttachmentSize.html @@ -489,7 +489,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AttachmentType.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AttachmentType.html index 1c5671fd..c82b241d 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AttachmentType.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/AttachmentType.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/BackgroundMode.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/BackgroundMode.html index a2c5826f..afdb2f58 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/BackgroundMode.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/BackgroundMode.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorContentMode.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorContentMode.html index f61b5eaf..d4feb5b3 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorContentMode.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorContentMode.html @@ -415,7 +415,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorContentType.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorContentType.html index 25a14ca0..c96bb6a4 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorContentType.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorContentType.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorHeight.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorHeight.html index 3a04edb0..b3badde5 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorHeight.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorHeight.html @@ -441,7 +441,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorKey.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorKey.html index 8f04c4e6..692ca5f3 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorKey.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/EditorKey.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/GridColumnWidth.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/GridColumnWidth.html index c7fb0b43..5b3b6fe6 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/GridColumnWidth.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/GridColumnWidth.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/GridViewError.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/GridViewError.html index 56590249..d59c28ef 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/GridViewError.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/GridViewError.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/Indentation.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/Indentation.html index 5059099b..20f0c905 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/Indentation.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/Indentation.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/ListLineMarker.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/ListLineMarker.html index 99277f9d..3dafa23a 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/ListLineMarker.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/ListLineMarker.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/RoundedCornerStyle.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/RoundedCornerStyle.html index ac386e2e..cca4ff80 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/RoundedCornerStyle.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Enums/RoundedCornerStyle.html @@ -409,7 +409,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions.html index 76c79344..71d5d998 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions.html @@ -556,7 +556,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/EditorContentName.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/EditorContentName.html index f3d80452..cc42419e 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/EditorContentName.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/EditorContentName.html @@ -515,7 +515,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSAttributedString.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSAttributedString.html index 2a40f24f..7ee5148c 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSAttributedString.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSAttributedString.html @@ -973,7 +973,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSAttributedString/Key.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSAttributedString/Key.html index f922ddea..e2c3b470 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSAttributedString/Key.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSAttributedString/Key.html @@ -617,7 +617,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSParagraphStyle.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSParagraphStyle.html index 90114d7a..3bdd23c6 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSParagraphStyle.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSParagraphStyle.html @@ -407,7 +407,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSRange.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSRange.html index bd1e3c94..3cfc0141 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSRange.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/NSRange.html @@ -635,7 +635,7 @@

    Return Value

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/String.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/String.html index 11420118..35654500 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/String.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/String.html @@ -491,7 +491,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/TextProcessingPriority.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/TextProcessingPriority.html index df330e16..742ab72e 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/TextProcessingPriority.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/TextProcessingPriority.html @@ -462,7 +462,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/UIFont.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/UIFont.html index fa1aa819..5bc930f6 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/UIFont.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/UIFont.html @@ -650,7 +650,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/UITextRange.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/UITextRange.html index 7ef5db9d..4249f5bb 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/UITextRange.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Extensions/UITextRange.html @@ -399,7 +399,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols.html index 4755677e..f8976a74 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols.html @@ -984,7 +984,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AsyncTextResolving.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AsyncTextResolving.html index 76dde72b..bd52ccac 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AsyncTextResolving.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AsyncTextResolving.html @@ -470,7 +470,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentEncoding.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentEncoding.html index 75986a03..1cba4b32 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentEncoding.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentEncoding.html @@ -439,7 +439,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentOffsetProviding.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentOffsetProviding.html index c53aff58..40a5cae3 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentOffsetProviding.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentOffsetProviding.html @@ -393,7 +393,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentTypeIdentifying.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentTypeIdentifying.html index afd60465..efcff36a 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentTypeIdentifying.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttachmentTypeIdentifying.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttributesDecoding.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttributesDecoding.html index 1a462038..19f62847 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttributesDecoding.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/AttributesDecoding.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/BoundsObserving.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/BoundsObserving.html index 09ad5060..87097760 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/BoundsObserving.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/BoundsObserving.html @@ -418,7 +418,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/DynamicBoundsProviding.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/DynamicBoundsProviding.html index f599c6b2..efabad18 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/DynamicBoundsProviding.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/DynamicBoundsProviding.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorCommand.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorCommand.html index 84987522..6d3dad54 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorCommand.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorCommand.html @@ -485,7 +485,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentDecoding.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentDecoding.html index 6ae14a37..f23722d1 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentDecoding.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentDecoding.html @@ -406,9 +406,9 @@

    Declaration

  • @@ -423,7 +423,7 @@

    Declaration

    Declaration

    Swift

    -
    func decode(mode: EditorContentMode, maxSize: CGSize, value: TypeToDecode, context: DecodingContext) -> NSAttributedString
    +
    func decode(mode: EditorContentMode, maxSize: CGSize, value: TypeToDecode, context: DecodingContext) throws -> NSAttributedString
    @@ -490,7 +490,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentEncoder.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentEncoder.html index 2c3450f5..f5544a46 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentEncoder.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentEncoder.html @@ -511,7 +511,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentEncoding.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentEncoding.html index 5a13245f..3167c74b 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentEncoding.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentEncoding.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentIdentifying.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentIdentifying.html index eac6acf4..61265a8e 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentIdentifying.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentIdentifying.html @@ -381,7 +381,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentView.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentView.html index 12160551..c3047a3e 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentView.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorContentView.html @@ -588,7 +588,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorListFormattingProvider.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorListFormattingProvider.html index 0aae8549..eeb26d18 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorListFormattingProvider.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorListFormattingProvider.html @@ -485,7 +485,7 @@

    Return Value

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorTextEncoding.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorTextEncoding.html index 17dc71dc..bc5c71ee 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorTextEncoding.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorTextEncoding.html @@ -458,7 +458,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorViewDelegate.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorViewDelegate.html index 38e2d7d4..129959d7 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorViewDelegate.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/EditorViewDelegate.html @@ -1046,13 +1046,12 @@

    Parameters

    -

    Undocumented

    +

    Invoked whenever layout pass completes as a result of changing or text or attributes

    Default Implementation

    -

    Undocumented

    - +

    Declaration

    @@ -1062,6 +1061,232 @@

    Declaration

    +
    +

    Parameters

    + + + + + + + + + + + +
    + + editor + + +
    +

    Editor view receiving the event.

    +
    +
    + + content + + +
    +

    Attributed text value.

    +
    +
    +
    +
    + +
  • +
  • +
    + + + + editor(_:willSetAttributedText:) + + + Default implementation + +
    +
    +
    +
    +
    +
    +

    Invoked before attributedText is set on the EditorView

    + +
    +

    Default Implementation

    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editor(_ editor: EditorView, willSetAttributedText attributedText: NSAttributedString)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + editor + + +
    +

    Editor view receiving the event.

    +
    +
    + + content + + +
    +

    Attributed text value to be set.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + editor(_:didSetAttributedText:) + + + Default implementation + +
    +
    +
    +
    +
    +
    +

    Invoked after attributedText is set on the EditorView

    + +
    +

    Default Implementation

    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editor(_ editor: EditorView, didSetAttributedText attributedText: NSAttributedString)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + editor + + +
    +

    Editor view receiving the event.

    +
    +
    + + content + + +
    +

    Attributed text value set on the editor.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + editor(_editor:isReady:) + + + Default implementation + +
    +
    +
    +
    +
    +
    +

    Invoked when Editor has been added to the view hierarchy and is ready to receive events.

    + +
    +

    Default Implementation

    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editor(_editor: EditorView, isReady: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + editor + + +
    +

    Editor view receiving the event.

    +
    +
    + + isReady + + +
    +

    true if Editor is loaded. false when Editor is initialized but not yet in view hierarchy.

    +
    +
    +
  • @@ -1070,7 +1295,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/Focusable.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/Focusable.html index 9887a05d..d49aaed2 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/Focusable.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/Focusable.html @@ -387,7 +387,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/GridViewDelegate.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/GridViewDelegate.html index f0c72846..13a79930 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/GridViewDelegate.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/GridViewDelegate.html @@ -1039,7 +1039,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/SequenceGenerator.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/SequenceGenerator.html index ef3766af..325d359e 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/SequenceGenerator.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/SequenceGenerator.html @@ -401,7 +401,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/TextProcessing.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/TextProcessing.html index 3b3a512d..5614d938 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/TextProcessing.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Protocols/TextProcessing.html @@ -944,7 +944,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs.html index 6c0317ea..c43bc5fc 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs.html @@ -953,7 +953,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyAttributeDecoding.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyAttributeDecoding.html index 427c764b..b8ff1e8e 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyAttributeDecoding.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyAttributeDecoding.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorContentAttachmentEncoding.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorContentAttachmentEncoding.html index 0cd2abde..9731ae3f 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorContentAttachmentEncoding.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorContentAttachmentEncoding.html @@ -485,7 +485,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorContentDecoding.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorContentDecoding.html index bd94b141..b3d8ab52 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorContentDecoding.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorContentDecoding.html @@ -403,9 +403,9 @@

    Parameters

  • @@ -420,7 +420,7 @@

    Parameters

    Declaration

    Swift

    -
    public func decode(mode: EditorContentMode, maxSize: CGSize, value: T, context: C) -> NSAttributedString
    +
    public func decode(mode: EditorContentMode, maxSize: CGSize, value: T, context: C) throws -> NSAttributedString
    @@ -487,7 +487,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorTextEncoding.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorTextEncoding.html index 51fdcc19..a5eca453 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorTextEncoding.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AnyEditorTextEncoding.html @@ -490,7 +490,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AttachmentContentIdentifier.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AttachmentContentIdentifier.html index d46ffec6..dfb05d7a 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AttachmentContentIdentifier.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AttachmentContentIdentifier.html @@ -408,7 +408,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AttachmentImage.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AttachmentImage.html index 299fb5a5..37a38014 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AttachmentImage.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/AttachmentImage.html @@ -544,7 +544,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/CommandName.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/CommandName.html index e538a30f..5000a539 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/CommandName.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/CommandName.html @@ -434,7 +434,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/DiamondBulletSequenceGenerator.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/DiamondBulletSequenceGenerator.html index 643f6299..dfab6af9 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/DiamondBulletSequenceGenerator.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/DiamondBulletSequenceGenerator.html @@ -407,7 +407,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/EditorContent.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/EditorContent.html index a9dc5122..89262d57 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/EditorContent.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/EditorContent.html @@ -436,7 +436,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/EditorLine.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/EditorLine.html index d976103b..9f725211 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/EditorLine.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/EditorLine.html @@ -517,7 +517,7 @@

    Return Value

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GradientColors.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GradientColors.html index a15ed5da..cb233e8d 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GradientColors.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GradientColors.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridCellStyle.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridCellStyle.html index 63b7eea2..bfbd18f0 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridCellStyle.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridCellStyle.html @@ -584,7 +584,7 @@

    Return Value

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridCellStyle/BorderStyle.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridCellStyle/BorderStyle.html index f4c7de7a..28c47341 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridCellStyle/BorderStyle.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridCellStyle/BorderStyle.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridColumnConfiguration.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridColumnConfiguration.html index 6d2b51e5..13d495b9 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridColumnConfiguration.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridColumnConfiguration.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridConfiguration.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridConfiguration.html index ddeb7724..8fdfafbd 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridConfiguration.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridConfiguration.html @@ -603,7 +603,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridRowConfiguration.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridRowConfiguration.html index 9625407f..26f755e3 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridRowConfiguration.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridRowConfiguration.html @@ -435,7 +435,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridStyle.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridStyle.html index 9d4d9da9..37591c01 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridStyle.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/GridStyle.html @@ -464,7 +464,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/LineFormatting.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/LineFormatting.html index 0dd20671..51946efe 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/LineFormatting.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/LineFormatting.html @@ -467,7 +467,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/ListItem.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/ListItem.html index 8687bcbe..d7712a38 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/ListItem.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/ListItem.html @@ -510,7 +510,7 @@

    Parameters

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/ListParser.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/ListParser.html index 05b7cd86..795b6649 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/ListParser.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/ListParser.html @@ -483,7 +483,7 @@

    Return Value

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/NumericSequenceGenerator.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/NumericSequenceGenerator.html index 96be0fc6..f5dacede 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/NumericSequenceGenerator.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/NumericSequenceGenerator.html @@ -407,7 +407,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/SquareBulletSequenceGenerator.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/SquareBulletSequenceGenerator.html index a0042056..eb1427e8 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/SquareBulletSequenceGenerator.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Structs/SquareBulletSequenceGenerator.html @@ -407,7 +407,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/Typealiases.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/Typealiases.html index 02f91e05..b8cc30ed 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/Typealiases.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/Typealiases.html @@ -482,7 +482,7 @@

    Declaration

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/index.html b/docs/docsets/Proton.docset/Contents/Resources/Documents/index.html index 67444597..e3fa4497 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/index.html @@ -523,7 +523,7 @@

    License

    diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/search.json b/docs/docsets/Proton.docset/Contents/Resources/Documents/search.json index 5551821d..9a46a355 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Typealiases.html#/s:6Proton10Attributesa":{"name":"Attributes","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton14AttachmentViewa":{"name":"AttachmentView","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton25AttachmentViewIdentifyinga":{"name":"AttachmentViewIdentifying","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton22TextProcessingPrioritya":{"name":"TextProcessingPriority","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton9Processeda":{"name":"Processed","abstract":"

    Undocumented

    "},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5colorSo7UIColorCvp":{"name":"color","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5width14CoreFoundation7CGFloatVvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5color5widthAESo7UIColorC_14CoreFoundation7CGFloatVtcfc":{"name":"init(color:width:)","abstract":"

    Undocumented

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

    Border style for individual cells. This may be used to override the style provided in the GridStyle for individual cells

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV15backgroundColorSo7UIColorCSgvp":{"name":"backgroundColor","abstract":"

    Default background color for the cell.

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV9textColorSo7UIColorCSgvp":{"name":"textColor","abstract":"

    Default text color for the cell

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV4fontSo6UIFontCSgvp":{"name":"font","abstract":"

    Default font for the cell

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV06borderD0AC06BorderD0VSgvp":{"name":"borderStyle","abstract":"

    Undocumented

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV15backgroundColor04textF04font06borderD0ACSo7UIColorCSg_AJSo6UIFontCSgAC06BorderD0VSgtcfc":{"name":"init(backgroundColor:textColor:font:borderStyle:)","abstract":"

    Undocumented

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV6merged5style5otherA2C_ACtFZ":{"name":"merged(style:other:)","abstract":"

    Creates a merged styles from given styles with precedence to the first style and any missing values used from the second style

    ","parent_name":"GridCellStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderColorSo7UIColorCvp":{"name":"borderColor","abstract":"

    Border color for grid

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderWidth14CoreFoundation7CGFloatVvp":{"name":"borderWidth","abstract":"

    Border width for the grid

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV7defaultACvpZ":{"name":"default","abstract":"

    Default style

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderColor0D5WidthACSo7UIColorC_14CoreFoundation7CGFloatVtcfc":{"name":"init(borderColor:borderWidth:)","abstract":"

    Undocumented

    ","parent_name":"GridStyle"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV5styleAA0B5StyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV23boundsLimitShadowColorsAA08GradientG0Vvp":{"name":"boundsLimitShadowColors","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV07columnsC0SayAA0b6ColumnC0VGvp":{"name":"columnsConfiguration","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV04rowsC0SayAA0b3RowC0VGvp":{"name":"rowsConfiguration","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV20collapsedColumnWidth14CoreFoundation7CGFloatVvp":{"name":"collapsedColumnWidth","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV18collapsedRowHeight14CoreFoundation7CGFloatVvp":{"name":"collapsedRowHeight","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV07columnsC004rowsC05style23boundsLimitShadowColors20collapsedColumnWidth0K9RowHeightACSayAA0blC0VG_SayAA0bnC0VGAA0B5StyleVAA08GradientJ0V14CoreFoundation7CGFloatVAVtcfc":{"name":"init(columnsConfiguration:rowsConfiguration:style:boundsLimitShadowColors:collapsedColumnWidth:collapsedRowHeight:)","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV15numberOfColumnsSivp":{"name":"numberOfColumns","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV12numberOfRowsSivp":{"name":"numberOfRows","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV7primarySo7UIColorCvp":{"name":"primary","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV9secondarySo7UIColorCvp":{"name":"secondary","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV7primary9secondaryACSo7UIColorC_AGtcfc":{"name":"init(primary:secondary:)","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV13initialHeight14CoreFoundation7CGFloatVvp":{"name":"initialHeight","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV5styleAA0B9CellStyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV13initialHeight5styleAC14CoreFoundation7CGFloatV_AA0B9CellStyleVtcfc":{"name":"init(initialHeight:style:)","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5widthAA0bC5WidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5styleAA0B9CellStyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5width5styleAcA0bC5WidthO_AA0B9CellStyleVtcfc":{"name":"init(width:style:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingV11EncodedTypea":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingVyACyxGqd__c11EncodedTypeQyd__RszAA0eF0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes the Encoder

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingV6encode4name4viewxSo08PREditorD4NameC_So6UIViewCtF":{"name":"encode(name:view:)","abstract":"

    Encodes contents based on concrete encoder provided during initialization

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingV11EncodedTypea":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AnyEditorTextEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingVyACyxGqd__c11EncodedTypeQyd__RszAA0cdE0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes the Encoder

    ","parent_name":"AnyEditorTextEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingV6encode4name6stringxSo19PREditorContentNameC_So18NSAttributedStringCtF":{"name":"encode(name:string:)","abstract":"

    Encodes contents based on concrete encoder provided during initialization

    ","parent_name":"AnyEditorTextEncoding"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV11indentation14CoreFoundation7CGFloatVvp":{"name":"indentation","abstract":"

    Indentation of line

    ","parent_name":"LineFormatting"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV13spacingBefore14CoreFoundation7CGFloatVvp":{"name":"spacingBefore","abstract":"

    Vertical spacing before the line

    ","parent_name":"LineFormatting"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV11indentation13spacingBeforeAC14CoreFoundation7CGFloatV_AHtcfc":{"name":"init(indentation:spacingBefore:)","abstract":"

    Initializes

    ","parent_name":"LineFormatting"},"Structs/EditorLine.html#/s:6Proton10EditorLineV4textSo18NSAttributedStringCvp":{"name":"text","abstract":"

    Text contained in the current line.

    ","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV5rangeSo8_NSRangeVvp":{"name":"range","abstract":"

    Range of text in the EditorView for the current line.

    ","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV10startsWithySbSSF":{"name":"startsWith(_:)","abstract":"

    Determines if the current line starts with given text.","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV8endsWithySbSSF":{"name":"endsWith(_:)","abstract":"

    Determines if the current line ends with given text.","parent_name":"EditorLine"},"Structs/AttachmentContentIdentifier.html#/s:6Proton27AttachmentContentIdentifierV9openingIDSo18NSAttributedStringCvp":{"name":"openingID","abstract":"

    Undocumented

    ","parent_name":"AttachmentContentIdentifier"},"Structs/AttachmentContentIdentifier.html#/s:6Proton27AttachmentContentIdentifierV9closingIDSo18NSAttributedStringCvp":{"name":"closingID","abstract":"

    Undocumented

    ","parent_name":"AttachmentContentIdentifier"},"Structs/EditorContent.html#/s:6Proton13EditorContentV4typeAA0bC4TypeOvp":{"name":"type","abstract":"

    Type of EditorContent

    ","parent_name":"EditorContent"},"Structs/EditorContent.html#/s:6Proton13EditorContentV14enclosingRangeSo8_NSRangeVSgvp":{"name":"enclosingRange","abstract":"

    Range within the Editor for this content

    ","parent_name":"EditorContent"},"Structs/EditorContent.html#/s:6Proton13EditorContentV4Namea":{"name":"Name","abstract":"

    Name for the content within the Editor. All the content (text and attachments) must have","parent_name":"EditorContent"},"Structs/AnyEditorContentDecoding.html#/s:6Proton24AnyEditorContentDecodingVyACyxq_Gqd__c12TypeToDecodeQyd__Rsz0E7ContextQyd__Rs_AA0cdE0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes AnyEditorContentDecoding

    ","parent_name":"AnyEditorContentDecoding"},"Structs/AnyEditorContentDecoding.html#/s:6Proton24AnyEditorContentDecodingV6decode4mode7maxSize5value7contextSo18NSAttributedStringCAA0cD4ModeO_So6CGSizeVxq_tF":{"name":"decode(mode:maxSize:value:context:)","abstract":"

    Decodes the given value to NSAttributedString

    ","parent_name":"AnyEditorContentDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingV4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingVyACyxGqd__c12TypeToDecodeQyd__RszAA010AttributesD0Rd__lufc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingV6decodeySDySo21NSAttributedStringKeyaypGxF":{"name":"decode(_:)","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/SquareBulletSequenceGenerator.html#/s:6Proton29SquareBulletSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"SquareBulletSequenceGenerator"},"Structs/SquareBulletSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"SquareBulletSequenceGenerator"},"Structs/DiamondBulletSequenceGenerator.html#/s:6Proton30DiamondBulletSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"DiamondBulletSequenceGenerator"},"Structs/DiamondBulletSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"DiamondBulletSequenceGenerator"},"Structs/NumericSequenceGenerator.html#/s:6Proton24NumericSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"NumericSequenceGenerator"},"Structs/NumericSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"NumericSequenceGenerator"},"Structs/ListParser.html#/s:6Proton10ListParserV5parse4list6indentSo18NSAttributedStringCSayAA0B4ItemVG_14CoreFoundation7CGFloatVtFZ":{"name":"parse(list:indent:)","abstract":"

    Parses an array of list items into an NSAttributedString representation. NewLines are automatically added between each list item in the attributed string representation.

    ","parent_name":"ListParser"},"Structs/ListParser.html#/s:6Proton10ListParserV5parse16attributedString6indentSaySo8_NSRangeV5range_AA0B4ItemV04listJ0tGSo012NSAttributedF0C_14CoreFoundation7CGFloatVtFZ":{"name":"parse(attributedString:indent:)","abstract":"

    Parses NSAttributedString to list items

    ","parent_name":"ListParser"},"Structs/ListItem.html#/s:6Proton8ListItemV4textSo18NSAttributedStringCvp":{"name":"text","abstract":"

    Text of the list item. All attributes are preserved as is.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV5levelSivp":{"name":"level","abstract":"

    Level of the list item. This is used with indent to get paragraphStyle to be applied with appropriate indentation of the list items.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV14attributeValueypvp":{"name":"attributeValue","abstract":"

    Attribute value of the list item.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV4text5level14attributeValueACSo18NSAttributedStringC_Siyptcfc":{"name":"init(text:level:attributeValue:)","abstract":"

    Creates a ListItem

    ","parent_name":"ListItem"},"Structs/CommandName.html#/s:6Proton11CommandNameV8rawValueSSvp":{"name":"rawValue","abstract":"

    Name of the command. Must be unique across different types of commands.

    ","parent_name":"CommandName"},"Structs/CommandName.html#/s:6Proton11CommandNameVyACSScfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"CommandName"},"Structs/CommandName.html#/s:SY8rawValuexSg03RawB0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"CommandName"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4nameSo19PREditorContentNameCvp":{"name":"name","abstract":"

    Content name for the image

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV5imageSo7UIImageCvp":{"name":"image","abstract":"

    Image content

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4sizeSo6CGSizeVvp":{"name":"size","abstract":"

    Size of the image

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4typeAA0B4TypeOvp":{"name":"type","abstract":"

    Denotes if the image is block content or an inline

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4name5image4size4typeACSo19PREditorContentNameC_So7UIImageCSo6CGSizeVAA0B4TypeOtcfc":{"name":"init(name:image:size:type:)","abstract":"

    Initializes the Block Content image

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

    Describes an image for which can be used in an Attachment

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

    Identifies an EditorCommand or a RendererCommand

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

    Represents an item in the list. This structure may be used to create NSAttributedString from items in an array of ListItem. Alternatively, NSAttributedString may also be parsed to get an array of ListItems.

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

    Provides helper function to convert between NSAttributedString and [ListItem]

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

    Simple numeric sequence generator.

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

    Simple bullet sequence generator that returns a diamond symbol.

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

    Simple bullet sequence generator that returns a square symbol.

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

    A type-erased implementation of AttributesDecoding

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

    A type-erased implementation of EditorContentDecoding

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

    Defines a content type for Editor. This may be used to serialize the contents of an Editor via enumerating through the contents of the Editor.

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

    Describes opening and closing separators for EditorViewgetFullAttributedText(:) function.

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

    Representation of a line of text in EditorView. A line is defined as a single fragment starting from the beginning of"},"Structs/LineFormatting.html":{"name":"LineFormatting","abstract":"

    Describes the formatting of a line of text. While general purpose in nature, this is"},"Structs/AnyEditorTextEncoding.html":{"name":"AnyEditorTextEncoding","abstract":"

    /// A type-erased implementation of EditorTextEncoding

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

    A type-erased implementation of AttachmentEncoding.

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Style configuration for the grid

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

    Style configuration for the GridCell

    "},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP4nameSSvp":{"name":"name","abstract":"

    Name of the TextProcessor

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP8prioritySivp":{"name":"priority","abstract":"

    Priority of the TextProcessor. An EditorView can have multiple TextProcessors registered. These will be executed in the order of Priority.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP13shouldProcess_0deB2In011replacementB0SbAA10EditorViewC_So8_NSRangeVSStF":{"name":"shouldProcess(_:shouldProcessTextIn:replacementText:)","abstract":"

    Determines if the text should be changed in the editor.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP11willProcess07deletedB008insertedB0ySo18NSAttributedStringC_AHtF":{"name":"willProcess(deletedText:insertedText:)","abstract":"

    Invoked before changes are processed by the editor.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP7process6editor5range14changeInLengthSbAA10EditorViewC_So8_NSRangeVSitF":{"name":"process(editor:range:changeInLength:)","abstract":"

    Allows to change attributes and text in the EditorView as the text is changed.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP22handleKeyWithModifiers6editor3key13modifierFlags5rangeyAA10EditorViewC_AA0mE0OSo013UIKeyModifierK0VSo8_NSRangeVtF":{"name":"handleKeyWithModifiers(editor:key:modifierFlags:range:)","abstract":"

    Allows to change attributes and text in the EditorView as the text is changed.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP18processInterrupted6editor2atyAA10EditorViewC_So8_NSRangeVtF":{"name":"processInterrupted(editor:at:)","abstract":"

    Fired when processing has been interrupted by another TextProcessor running in the same pass. This allows TextProcessor to revert","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP20selectedRangeChanged6editor03oldE003newE0yAA10EditorViewC_So8_NSRangeVSgALtF":{"name":"selectedRangeChanged(editor:oldRange:newRange:)","abstract":"

    Notifies the processor that the selected range has changed in the EditorView due to a reason other than typing text","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP10didProcess6editoryAA10EditorViewC_tF":{"name":"didProcess(editor:)","abstract":"

    Invoked after the text has been processed in the Editor.

    ","parent_name":"TextProcessing"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_17didReceiveFocusAt2inyAA0bC0C_So8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didReceiveFocusAt:in:)","abstract":"

    Invoked when EditorView within the cell receives focus

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didLoseFocusFrom2inyAA0bC0C_So8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didLoseFocusFrom:in:)","abstract":"

    Invoked when EditorView within the cell loses focus

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didTapAtLocation14characterRange2inyAA0bC0C_So7CGPointVSo8_NSRangeVSgAA0B4CellCtF":{"name":"gridView(_:didTapAtLocation:characterRange:in:)","abstract":"

    Invoked when tap event occurs within the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_20didChangeSelectionAt10attributes11contentType2inyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCAA0B4CellCtF":{"name":"gridView(_:didChangeSelectionAt:attributes:contentType:in:)","abstract":"

    Invoked on selection changes with in the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_15didChangeBounds2inyAA0bC0C_So6CGRectVAA0B4CellCtF":{"name":"gridView(_:didChangeBounds:in:)","abstract":"

    Invoked on change of bounds of the Editor within the cell

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_14didSelectCellsyAA0bC0C_SayAA0B4CellCGtF":{"name":"gridView(_:didSelectCells:)","abstract":"

    Invoked when selection of cells is changed.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didUnselectCellsyAA0bC0C_SayAA0B4CellCGtF":{"name":"gridView(_:didUnselectCells:)","abstract":"

    Invoked when selection of cells is changed.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_13didReceiveKey2at2inyAA0bC0C_AA06EditorH0OSo8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didReceiveKey:at:in:)","abstract":"

    Invoked when special keys are intercepted in the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_23shouldChangeColumnWidth3forSbAA0bC0C_14CoreFoundation7CGFloatVSitF":{"name":"gridView(_:shouldChangeColumnWidth:for:)","abstract":"

    Invoked when a column in GridView is resized.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_13didLayoutCellyAA0bC0C_AA0bH0CtF":{"name":"gridView(_:didLayoutCell:)","abstract":"

    Undocumented

    ","parent_name":"GridViewDelegate"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP1TQa":{"name":"T","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP12textEncodersSDySo08PREditorC4NameCAA03AnyB12TextEncodingVy1TQzGGvp":{"name":"textEncoders","abstract":"

    Encoders for text content i.e. NSAttributedString based content

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP18attachmentEncodersSDySo08PREditorC4NameCAA03AnybC18AttachmentEncodingVy1TQzGGvp":{"name":"attachmentEncoders","abstract":"

    Encoders for attachment types

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP6encodey1TQzSgAA0bC0VF":{"name":"encode(_:)","abstract":"

    Encodes the given content.

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoding.html#/s:6Proton21EditorContentEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoding"},"Protocols/EditorContentEncoding.html#/s:6Proton21EditorContentEncodingP6encodey11EncodedTypeQzSgAA0bC0VF":{"name":"encode(_:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoding"},"Protocols/AttachmentEncoding.html#/s:6Proton18AttachmentEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AttachmentEncoding"},"Protocols/AttachmentEncoding.html#/s:6Proton18AttachmentEncodingP6encode4name4view11EncodedTypeQzSo19PREditorContentNameC_So6UIViewCtF":{"name":"encode(name:view:)","abstract":"

    Encodes given Attachment content view to given type

    ","parent_name":"AttachmentEncoding"},"Protocols/EditorTextEncoding.html#/s:6Proton18EditorTextEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"EditorTextEncoding"},"Protocols/EditorTextEncoding.html#/s:6Proton18EditorTextEncodingP6encode4name6string11EncodedTypeQzSo19PREditorContentNameC_So18NSAttributedStringCtF":{"name":"encode(name:string:)","abstract":"

    Encodes the given attributed string to EncodedType

    ","parent_name":"EditorTextEncoding"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","abstract":"

    Identifies a command. This value is used to maintain unique registrations of commands in an Editor. Adding a command with the same name","parent_name":"EditorCommand"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP10canExecute2onSbAA0B4ViewC_tF":{"name":"canExecute(on:)","abstract":"

    Determines if the current command can be executed on the given EditorView. When a command is executed using EditorCommandExecutor, it ensures","parent_name":"EditorCommand"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","abstract":"

    Execute the command on the given EditorView. You may use selectedRange property of EditorView if the command operates on","parent_name":"EditorCommand"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_12shouldHandle2at7handledyAA0bC0C_AA0B3KeyOSo8_NSRangeVSbztF":{"name":"editor(_:shouldHandle:at:handled:)","abstract":"

    Invoked when a special key like enter, tab etc. is intercepted in the Editor

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_13didReceiveKey2atyAA0bC0C_AA0bH0OSo8_NSRangeVtF":{"name":"editor(_:didReceiveKey:at:)","abstract":"

    Invoked when a special key like enter, tab etc. is entered in the Editor

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_17didReceiveFocusAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didReceiveFocusAt:)","abstract":"

    Invoked when editor receives focus.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_16didLoseFocusFromyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didLoseFocusFrom:)","abstract":"

    Invoked when editor loses the focus.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_15didChangeTextAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didChangeTextAt:)","abstract":"

    Invoked when text is changed in editor.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_20didChangeSelectionAt10attributes11contentTypeyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCtF":{"name":"editor(_:didChangeSelectionAt:attributes:contentType:)","abstract":"

    Invoked when the selection range changes in the editor as a result of moving the cursor using keys/mouse or taps.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_20didExecuteProcessors2atyAA0bC0C_SayAA14TextProcessing_pGSo8_NSRangeVtF":{"name":"editor(_:didExecuteProcessors:at:)","abstract":"

    Invoked when text processors are executed in the editor.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_13didChangeSize08previousH0yAA0bC0C_So6CGSizeVAJtF":{"name":"editor(_:didChangeSize:previousSize:)","abstract":"

    Invoked when the size of EditorView changes.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_16didTapAtLocation14characterRangeyAA0bC0C_So7CGPointVSo8_NSRangeVSgtF":{"name":"editor(_:didTapAtLocation:characterRange:)","abstract":"

    Invoked when a location within the EditorView is tapped.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_9didLayoutyAA0bC0C_So18NSAttributedStringCtF":{"name":"editor(_:didLayout:)","abstract":"

    Undocumented

    ","parent_name":"EditorViewDelegate"},"Protocols/BoundsObserving.html#/s:6Proton15BoundsObservingP09didChangeB0_03oldB0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","abstract":"

    Lets the observer know that bounds of current object have changed

    ","parent_name":"BoundsObserving"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP6editorAA0bD0Cvp":{"name":"editor","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP14attributedTextSo18NSAttributedStringCvp":{"name":"attributedText","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP9maxHeightAA0bF0Ovp":{"name":"maxHeight","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP8delegateAA0bD8Delegate_pSgvp":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP20becomeFirstResponderSbyF":{"name":"becomeFirstResponder()","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewPAAE8setFocusyyF":{"name":"setFocus()","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/AttachmentTypeIdentifying.html#/s:6Proton25AttachmentTypeIdentifyingP4typeAA0bC0Ovp":{"name":"type","abstract":"

    Undocumented

    ","parent_name":"AttachmentTypeIdentifying"},"Protocols/EditorContentIdentifying.html#/s:6Proton24EditorContentIdentifyingP4nameSo08PREditorC4NameCvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"EditorContentIdentifying"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP12TypeToDecodeQa":{"name":"TypeToDecode","abstract":"

    Undocumented

    ","parent_name":"EditorContentDecoding"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP0D7ContextQa":{"name":"DecodingContext","abstract":"

    Undocumented

    ","parent_name":"EditorContentDecoding"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP6decode4mode7maxSize5value7contextSo18NSAttributedStringCAA0bC4ModeO_So6CGSizeV12TypeToDecodeQz0D7ContextQztF":{"name":"decode(mode:maxSize:value:context:)","abstract":"

    Decodes the given value to NSAttributedString

    ","parent_name":"EditorContentDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP12TypeToDecodeQa":{"name":"TypeToDecode","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP6decodeySDySo21NSAttributedStringKeyaypG12TypeToDecodeQzF":{"name":"decode(_:)","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/SequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","abstract":"

    Returns a value representing the given index.

    ","parent_name":"SequenceGenerator"},"Protocols/EditorListFormattingProvider.html#/s:6Proton28EditorListFormattingProviderP08listLineD0AA0gD0Vvp":{"name":"listLineFormatting","abstract":"

    Line formatting to be used for a list item.

    ","parent_name":"EditorListFormattingProvider"},"Protocols/EditorListFormattingProvider.html#/s:6Proton28EditorListFormattingProviderP17listLineMarkerFor6editor5index5level13previousLevel14attributeValueAA0cgH0OAA0B4ViewC_S3iypSgtF":{"name":"listLineMarkerFor(editor:index:level:previousLevel:attributeValue:)","abstract":"

    Returns the marker to be drawn for list item (bullet/number etc.) for given parameters.

    ","parent_name":"EditorListFormattingProvider"},"Protocols/Focusable.html#/s:6Proton9FocusableP8setFocusyyF":{"name":"setFocus()","abstract":"

    Undocumented

    ","parent_name":"Focusable"},"Protocols/AttachmentOffsetProviding.html#/s:6Proton25AttachmentOffsetProvidingP6offset3for2in20proposedLineFragment13glyphPosition14characterIndexSo7CGPointVAA0B0C_So15NSTextContainerCSo6CGRectVAKSitF":{"name":"offset(for:in:proposedLineFragment:glyphPosition:characterIndex:)","abstract":"

    Undocumented

    ","parent_name":"AttachmentOffsetProviding"},"Protocols/DynamicBoundsProviding.html#/s:6Proton22DynamicBoundsProvidingP7sizeFor10attachment13containerSize8lineRectSo6CGSizeVAA10AttachmentC_AISo6CGRectVtF":{"name":"sizeFor(attachment:containerSize:lineRect:)","abstract":"

    Undocumented

    ","parent_name":"DynamicBoundsProviding"},"Protocols/AsyncTextResolving.html#/s:6Proton18AsyncTextResolvingP4nameSSvp":{"name":"name","abstract":"

    Name of the Resolver. This name must be applied to the range of text that requires async resolution with attribute key: .asyncTextResolver

    ","parent_name":"AsyncTextResolving"},"Protocols/AsyncTextResolving.html#/s:6Proton18AsyncTextResolvingP7resolve5using5range6string10completionyAA10EditorViewC_So8_NSRangeVSo18NSAttributedStringCyAA0bcD6ResultOctF":{"name":"resolve(using:range:string:completion:)","abstract":"

    Resolves the string to a different representation

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

    An object capable of resolving text asynchronously to another representation. New representation may contain change in attributes or the string itself.

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

    Describes an object (typically attachment view) that may change size during the layout pass

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

    Describes an object capable of providing offsets for the Attachment. The value is used to offset the Attachment when rendered alongside the text. This may"},"Protocols/Focusable.html":{"name":"Focusable","abstract":"

    Describes an object capable of gaining focus.

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

    Describes an object capable of providing style and formatting information for rendering lists in EditorView.

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

    Represents a Sequence generator that can return a value based on given index."},"Protocols/AttributesDecoding.html":{"name":"AttributesDecoding","abstract":"

    An object capable of decoding attributes for use in NSAttributedString

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

    An object capable of decoding the given type of content into NSAttributedString for using in EditorView or the RendererView.

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

    Identifies a content type within the Editor

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

    Undocumented

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

    Describes a view contained in Attachment that contains a single EditorView."},"Protocols/BoundsObserving.html":{"name":"BoundsObserving","abstract":"

    Describes an object interested in observing the bounds of a view. Attachment is BoundsObserving and reacts to"},"Protocols/EditorViewDelegate.html":{"name":"EditorViewDelegate","abstract":"

    Describes an object interested in listening to events raised from EditorView

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

    Describes a command that can be executed on EditorView. A command may be invoked directly on the editor by providing an instance."},"Protocols/EditorTextEncoding.html":{"name":"EditorTextEncoding","abstract":"

    Describes an encoder for a content type in Editor. This can be used in conjunction with AnyEditorTextEncoding"},"Protocols/AttachmentEncoding.html":{"name":"AttachmentEncoding","abstract":"

    Describes an object capable of encoding contents of at Attachment

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

    An object capable of encoding EditorContent to given type.

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

    A generic encoder for encoding EditorContent. You may create encoders for individual types of contents in the Editor, and"},"Protocols/GridViewDelegate.html":{"name":"GridViewDelegate","abstract":"

    An object capable of handing GridView events

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

    An object capable of intercepting and modifying the text and attributes in an EditorView when registered with the EditorView.

    "},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE9exclusiveSivpZ":{"name":"exclusive","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE4highSivpZ":{"name":"high","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE6mediumSivpZ":{"name":"medium","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE3lowSivpZ":{"name":"low","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/UITextRange.html#/s:So11UITextRangeC6ProtonE9toNSRange2inSo01_E0VSgSo0A5Input_p_tF":{"name":"toNSRange(in:)","abstract":"

    Converts this range to NSRange. Returns nil if range cannot be converted.

    ","parent_name":"UITextRange"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6traitsSo0A24DescriptorSymbolicTraitsVvp":{"name":"traits","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6isBoldSbvp":{"name":"isBold","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE9isItalicsSbvp":{"name":"isItalics","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE12isMonoSpacedSbvp":{"name":"isMonoSpaced","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE12isAppleEmojiSbvp":{"name":"isAppleEmoji","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE9textStyleSo0a4TextD0avp":{"name":"textStyle","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE21isNonDynamicTextStyleSbvp":{"name":"isNonDynamicTextStyle","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE8contains5traitSbSo0A24DescriptorSymbolicTraitsV_tF":{"name":"contains(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE7toggled5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"toggled(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6adding5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"adding(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE8removing5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"removing(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/String.html#/s:SS6ProtonE11makeNSRange4fromSo01_C0VSnySS5IndexVG_tF":{"name":"makeNSRange(from:)","abstract":"

    Converts given Range to NSRange in this string.

    ","parent_name":"String"},"Extensions/String.html#/s:SS6ProtonE16rangeFromNSRange0B0SnySS5IndexVGSgSo01_D0V_tF":{"name":"rangeFromNSRange(range:)","abstract":"

    Created String Range from given NSRange. Returns nil if range cannot be converted.

    ","parent_name":"String"},"Extensions/String.html#/s:SS6ProtonE8rangesOf12characterSetSaySnySS5IndexVGG10Foundation09CharacterE0V_tF":{"name":"rangesOf(characterSet:)","abstract":"

    Returns ranges of given CharacterSet in this string.

    ","parent_name":"String"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE4zeroABvpZ":{"name":"zero","abstract":"

    Range with 0 location and length

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE19firstCharacterRangeABvp":{"name":"firstCharacterRange","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE18lastCharacterRangeABvp":{"name":"lastCharacterRange","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE12nextPositionABvp":{"name":"nextPosition","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE11endLocationSivp":{"name":"endLocation","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE11toTextRange9textInputSo06UITextE0CSgSo0hG0_p_tF":{"name":"toTextRange(textInput:)","abstract":"

    Converts the range to UITextRange in given UITextInput. Returns nil if the range is invalid in the UITextInput.

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE9isValidInySbSo11UITextInput_pF":{"name":"isValidIn(_:)","abstract":"

    Checks if the range is valid in given UITextInput

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE9shiftedByyABSiF":{"name":"shiftedBy(_:)","abstract":"

    Shifts the range with given shift value

    ","parent_name":"NSRange"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonEyABSScfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE9paragraphABvpZ":{"name":"paragraph","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE8viewOnlyABvpZ":{"name":"viewOnly","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE7newlineABvpZ":{"name":"newline","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE4textABvpZ":{"name":"text","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE7unknownABvpZ":{"name":"unknown","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/NSParagraphStyle.html#/s:So16NSParagraphStyleC6ProtonE016mutableParagraphB0So09NSMutableeB0Cvp":{"name":"mutableParagraphStyle","abstract":"

    Creates a mutable copy of current style

    ","parent_name":"NSParagraphStyle"},"Extensions/NSParagraphStyle.html#/s:So16NSParagraphStyleC6ProtonE14lineFormattingAC04LineE0Vvp":{"name":"lineFormatting","abstract":"

    Returns LineFormatting based on current style

    ","parent_name":"NSParagraphStyle"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE9textBlockABvpZ":{"name":"textBlock","abstract":"

    Applying this attribute makes the range of text act as a single block/unit.","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE16blockContentTypeABvpZ":{"name":"blockContentType","abstract":"

    Identifies block based attributes. A block acts as a container for other content types. For e.g. a Paragraph is a block content","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE17inlineContentTypeABvpZ":{"name":"inlineContentType","abstract":"

    Identifies inline content attributes. An inline acts as a content in another content types. For e.g. an emoji is an inline content","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE15backgroundStyleABvpZ":{"name":"backgroundStyle","abstract":"

    Additional style attribute for background color. Using this attribute in addition to backgroundColor attribute allows applying","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE8listItemABvpZ":{"name":"listItem","abstract":"

    Attribute denoting the range as a list item. This attribute enables use of ListTextProcessor to indent/outdent list","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE18skipNextListMarkerABvpZ":{"name":"skipNextListMarker","abstract":"

    When applied to a new line char alongside listItem attribute, skips the rendering of list marker on subsequent line.

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE16lockedAttributesABvpZ":{"name":"lockedAttributes","abstract":"

    Array of NSAttributedString.Key that must be locked in the applied range.

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE17asyncTextResolverABvpZ":{"name":"asyncTextResolver","abstract":"

    Undocumented

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html":{"name":"Key","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9asMutableSo019NSMutableAttributedB0Cvp":{"name":"asMutable","abstract":"

    Creates a mutable copy

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16addingAttributes_2toABSDySo0aB3KeyaypG_So8_NSRangeVSgtF":{"name":"addingAttributes(_:to:)","abstract":"

    Undocumented

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE17enumerateContents2ins11AnySequenceVyAC13EditorContentVGSo8_NSRangeVSg_tF":{"name":"enumerateContents(in:)","abstract":"

    Enumerates block contents in given range.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE23enumerateInlineContents2ins11AnySequenceVyAC13EditorContentVGSo8_NSRangeVSg_tF":{"name":"enumerateInlineContents(in:)","abstract":"

    Enumerates only inline content in given range.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16rangeOfCharacter4fromSo8_NSRangeVSg10Foundation0F3SetV_tF":{"name":"rangeOfCharacter(from:)","abstract":"

    Returns in range of CharacterSet from this string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9fullRangeSo8_NSRangeVvp":{"name":"fullRange","abstract":"

    Full range of this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16attachmentRangesSayAC10AttachmentC0D0_So8_NSRangeV5rangetGvp":{"name":"attachmentRanges","abstract":"

    Collection of all the attachments with containing ranges in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE8rangeFor10attachmentSo8_NSRangeVSgAC10AttachmentC_tF":{"name":"rangeFor(attachment:)","abstract":"

    Range of given attachment in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE8rangesOf12characterSetSaySo8_NSRangeVG10Foundation09CharacterG0V_tF":{"name":"rangesOf(characterSet:)","abstract":"

    Ranges of CharacterSet in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE26reverseAttributedSubstring4fromABSgSo8_NSRangeV_tF":{"name":"reverseAttributedSubstring(from:)","abstract":"

    Attributed substring in reverse direction.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE7rangeOf9attribute16startingLocation13reverseLookupSo8_NSRangeVSgSo0aB3Keya_SiSbtF":{"name":"rangeOf(attribute:startingLocation:reverseLookup:)","abstract":"

    Gets the next range of attribute starting at the given location in direction based on reverse lookup flag

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE7rangeOf9attribute2atSo8_NSRangeVSgSo0aB3Keya_SitF":{"name":"rangeOf(attribute:at:)","abstract":"

    Gets the complete range of attribute at the given location. The attribute is looked up in both forward and","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE14attributeValue3for2atxSgSo0aB3Keya_SitlF":{"name":"attributeValue(for:at:)","abstract":"

    Gets the value of attribute at the given location, if present.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9substring4fromSSSo8_NSRangeV_tF":{"name":"substring(from:)","abstract":"

    Alternative to attributedSubstring(from:_).string","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html":{"name":"NSAttributedString"},"Extensions/NSParagraphStyle.html":{"name":"NSParagraphStyle"},"Extensions/EditorContentName.html":{"name":"EditorContentName"},"Extensions/NSRange.html":{"name":"NSRange"},"Extensions/String.html":{"name":"String"},"Extensions/UIFont.html":{"name":"UIFont"},"Extensions/UITextRange.html":{"name":"UITextRange"},"Extensions/TextProcessingPriority.html":{"name":"TextProcessingPriority","abstract":"

    Undocumented

    "},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO5fixedyAC14CoreFoundation7CGFloatVcACmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO10fractionalyAC14CoreFoundation7CGFloatVcACmF":{"name":"fractional(_:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO5value7basedOn14CoreFoundation7CGFloatVAH_tF":{"name":"value(basedOn:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridViewError.html#/s:6Proton13GridViewErrorO26failedToInsertInFrozenRowsyA2CmF":{"name":"failedToInsertInFrozenRows","abstract":"

    Undocumented

    ","parent_name":"GridViewError"},"Enums/GridViewError.html#/s:6Proton13GridViewErrorO29failedToInsertInFrozenColumnsyA2CmF":{"name":"failedToInsertInFrozenColumns","abstract":"

    Undocumented

    ","parent_name":"GridViewError"},"Enums/Indentation.html#/s:6Proton11IndentationO6indentyA2CmF":{"name":"indent","abstract":"

    Undocumented

    ","parent_name":"Indentation"},"Enums/Indentation.html#/s:6Proton11IndentationO7outdentyA2CmF":{"name":"outdent","abstract":"

    Undocumented

    ","parent_name":"Indentation"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO7defaultyA2CmF":{"name":"default","abstract":"

    Default controlled via autolayout.

    ","parent_name":"EditorHeight"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO3maxyAC14CoreFoundation7CGFloatVcACmF":{"name":"max(_:)","abstract":"

    Maximum height editor is allowed to grow to before it starts scrolling

    ","parent_name":"EditorHeight"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO8infiniteyA2CmF":{"name":"infinite","abstract":"

    Boundless height.

    ","parent_name":"EditorHeight"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO4textyACSo08PREditorC4NameC_So18NSAttributedStringCtcACmF":{"name":"text(name:attributedString:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO10attachmentyACSo08PREditorC4NameC_AA10AttachmentCSo6UIViewCAA0hD0OtcACmF":{"name":"attachment(name:attachment:contentView:type:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO8viewOnlyyA2CmF":{"name":"viewOnly","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/AttachmentType.html#/s:6Proton14AttachmentTypeO5blockyA2CmF":{"name":"block","abstract":"

    Undocumented

    ","parent_name":"AttachmentType"},"Enums/AttachmentType.html#/s:6Proton14AttachmentTypeO6inlineyA2CmF":{"name":"inline","abstract":"

    Undocumented

    ","parent_name":"AttachmentType"},"Enums/EditorContentMode.html#/s:6Proton17EditorContentModeO6editoryA2CmF":{"name":"editor","abstract":"

    Undocumented

    ","parent_name":"EditorContentMode"},"Enums/EditorContentMode.html#/s:6Proton17EditorContentModeO8rendereryA2CmF":{"name":"renderer","abstract":"

    Undocumented

    ","parent_name":"EditorContentMode"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO5enteryA2CmF":{"name":"enter","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO9backspaceyA2CmF":{"name":"backspace","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO3tabyA2CmF":{"name":"tab","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/ListLineMarker.html#/s:6Proton14ListLineMarkerO6stringyACSo18NSAttributedStringCcACmF":{"name":"string(_:)","abstract":"

    Undocumented

    ","parent_name":"ListLineMarker"},"Enums/ListLineMarker.html#/s:6Proton14ListLineMarkerO5imageyACSo7UIImageC_So6CGSizeVtcACmF":{"name":"image(_:size:)","abstract":"

    Undocumented

    ","parent_name":"ListLineMarker"},"Enums/BackgroundMode.html#/s:6Proton14BackgroundModeO9matchTextyA2CmF":{"name":"matchText","abstract":"

    Background matches the height/width of text

    ","parent_name":"BackgroundMode"},"Enums/BackgroundMode.html#/s:6Proton14BackgroundModeO9matchLineyA2CmF":{"name":"matchLine","abstract":"

    Background matches entire line irrespective of font height/used character width in the given line

    ","parent_name":"BackgroundMode"},"Enums/RoundedCornerStyle.html#/s:6Proton18RoundedCornerStyleO8absoluteyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"absolute(value:)","abstract":"

    Rounding based on an absolute value for corner radii

    ","parent_name":"RoundedCornerStyle"},"Enums/RoundedCornerStyle.html#/s:6Proton18RoundedCornerStyleO8relativeyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"relative(percent:)","abstract":"

    Rounding based on relative percent value of the content height. For e.g. 50% would provide a capsule appearance","parent_name":"RoundedCornerStyle"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO12matchContentyA2CmF":{"name":"matchContent","abstract":"

    Matches the size of the content view of attachment. Content view must provide size to Attachment using didChangeBounds(:).

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO9fullWidthyA2CmF":{"name":"fullWidth","abstract":"

    Takes up full width of the containing EditorView. Resizes automatically when size of the container changes for e.g. when device is rotated. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO5fixedyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"fixed(width:)","abstract":"

    Fixed width attachment irrespective of content size of the contained view. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO5rangeyAC14CoreFoundation7CGFloatV_AGtcACmF":{"name":"range(minWidth:maxWidth:)","abstract":"

    Width of attachment is locked between the min and max. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO7percentyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"percent(width:)","abstract":"

    Width in percent based on the size of containing EditorView. Absolute value of width changes if the size of the container changes for e.g. when device is rotated. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AsyncTextResolvingResult.html#/s:6Proton24AsyncTextResolvingResultO5applyyACSo18NSAttributedStringC_So8_NSRangeVtcACmF":{"name":"apply(_:range:)","abstract":"

    Undocumented

    ","parent_name":"AsyncTextResolvingResult"},"Enums/AsyncTextResolvingResult.html#/s:6Proton24AsyncTextResolvingResultO7discardyA2CmF":{"name":"discard","abstract":"

    Undocumented

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

    Result type for async text resolution

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

    Rendering size of the Attachment

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

    Rounding style for backgroundStyle attribute

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

    Defines the mode for height/width used for the background for the text

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

    Marker for the list item

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

    Undocumented

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

    Content mode for Editor. This may be used while decoding the content for the Editor/Renderer to let the Decoder know"},"Enums/AttachmentType.html":{"name":"AttachmentType","abstract":"

    Type of attachment

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

    Type of EditorContent

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

    Defines the height for the Editor

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP4nameSSvp":{"name":"name","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton17ListTextProcessorCACycfc":{"name":"init()","abstract":"

    Initializes text processor.

    ","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton17ListTextProcessorC8prioritySivp":{"name":"priority","abstract":"

    Priority of the text processor.

    ","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP13shouldProcess_0deB2In011replacementB0SbAA10EditorViewC_So8_NSRangeVSStF":{"name":"shouldProcess(_:shouldProcessTextIn:replacementText:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP18processInterrupted6editor2atyAA10EditorViewC_So8_NSRangeVtF":{"name":"processInterrupted(editor:at:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP7process6editor5range14changeInLengthSbAA10EditorViewC_So8_NSRangeVSitF":{"name":"process(editor:range:changeInLength:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP22handleKeyWithModifiers6editor3key13modifierFlags5rangeyAA10EditorViewC_AA0mE0OSo013UIKeyModifierK0VSo8_NSRangeVtF":{"name":"handleKeyWithModifiers(editor:key:modifierFlags:range:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP10didProcess6editoryAA10EditorViewC_tF":{"name":"didProcess(editor:)","parent_name":"ListTextProcessor"},"Classes/GridView.html#/s:6Proton8GridViewC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    Delegate for GridView which can be used to handle cell specific EditorView events

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC30isColumnResizingHandlesVisibleSbvp":{"name":"isColumnResizingHandlesVisible","abstract":"

    Determines if column resizing handles are visible or not.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    Bounds observer for the GridView. Typically, this will be the Attachment that hosts the GridView.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14selectionColorSo7UIColorCSgvp":{"name":"selectionColor","abstract":"

    Selection color for the GridView. Defaults to tintColor

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10isSelectedSbvp":{"name":"isSelected","abstract":"

    Determines if GridView is selected or not.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC22isFreeScrollingEnabledSbvp":{"name":"isFreeScrollingEnabled","abstract":"

    Allows scrolling grid in any direction. Defaults to false","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC20frozenColumnMaxIndexSiSgvp":{"name":"frozenColumnMaxIndex","abstract":"

    Maximum index up till which columns are frozen. Columns are frozen from 0 to this index value.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC17frozenRowMaxIndexSiSgvp":{"name":"frozenRowMaxIndex","abstract":"

    Maximum index up till which rows are frozen. Rows are frozen from 0 to this index value.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC21containsFrozenColumnsSbvp":{"name":"containsFrozenColumns","abstract":"

    Determines if there are any frozen columns in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC18containsFrozenRowsSbvp":{"name":"containsFrozenRows","abstract":"

    Determines if there are any frozen rows in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5cellsSayAA0B4CellCGvp":{"name":"cells","abstract":"

    Collection of cells contained in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC13selectedCellsSayAA0B4CellCGvp":{"name":"selectedCells","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC15numberOfColumnsSivp":{"name":"numberOfColumns","abstract":"

    Number of columns in the GridView.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12numberOfRowsSivp":{"name":"numberOfRows","abstract":"

    Number of rows in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6configAcA0B13ConfigurationV_tcfc":{"name":"init(config:)","abstract":"

    Initializes GridView using the provided configuration.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6config5cellsAcA0B13ConfigurationV_SayAA0B4CellCGtcfc":{"name":"init(config:cells:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC17setColumnResizingyySbF":{"name":"setColumnResizing(_:)","abstract":"

    Enables or disables column resizing

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC24isCellSelectionMergeableySbSayAA0bE0CGF":{"name":"isCellSelectionMergeable(_:)","abstract":"

    Determines if the collection of cells can be merged. For cells to be mergable, they need to","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5merge5cellsySayAA0B4CellCG_tF":{"name":"merge(cells:)","abstract":"

    Merges the cells if the collection is mergeable.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5split4cellyAA0B4CellC_tF":{"name":"split(cell:)","abstract":"

    Splits the cell into original constituent cells from earlier Merge operation.","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC9insertRow2at13configurations6ResultOySayAA0B4CellCGAA0bC5ErrorOGSi_AA0bE13ConfigurationVtF":{"name":"insertRow(at:configuration:)","abstract":"

    Inserts a new row at given index.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12insertColumn2at13configurations6ResultOySayAA0B4CellCGAA0bC5ErrorOGSi_AA0bE13ConfigurationVtF":{"name":"insertColumn(at:configuration:)","abstract":"

    Inserts a new column at given index.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC9deleteRow2atySi_tF":{"name":"deleteRow(at:)","abstract":"

    Deletes the row at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12deleteColumn2atySi_tF":{"name":"deleteColumn(at:)","abstract":"

    Deletes the column at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC13freezeColumns4upToySi_tF":{"name":"freezeColumns(upTo:)","abstract":"

    Freezes all the columns from 0 to the index provided

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10freezeRows4upToySi_tF":{"name":"freezeRows(upTo:)","abstract":"

    Freezes all the rows from 0 to the index provided

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC15unfreezeColumnsyyF":{"name":"unfreezeColumns()","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12unfreezeRowsyyF":{"name":"unfreezeRows()","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC11collapseRow2atySi_tF":{"name":"collapseRow(at:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6cellAt8rowIndex06columnG0AA0B4CellCSgSi_SitF":{"name":"cellAt(rowIndex:columnIndex:)","abstract":"

    Gets the cell at given row and column index. Indexes may be contained in a merged cell.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14scrollToCellAt8rowIndex06columnI08animatedySi_SiSbtF":{"name":"scrollToCellAt(rowIndex:columnIndex:animated:)","abstract":"

    Scrolls the cell at given index into viewable area. Indexes may be contained in a merged cell.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10applyStyle_5toRowyAA0b4CellE0V_SitF":{"name":"applyStyle(_:toRow:)","abstract":"

    Applies style to row at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10applyStyle_8toColumnyAA0b4CellE0V_SitF":{"name":"applyStyle(_:toColumn:)","abstract":"

    Applies style to column at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/c:@CM@Proton@objc(cs)GridView(im)scrollViewDidScroll:":{"name":"scrollViewDidScroll(_:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridCell.html#/s:6Proton8GridCellC7rowSpanSaySiGvp":{"name":"rowSpan","abstract":"

    Row indexes spanned by the cell. In case of a merged cell, this will contain all the rows= indexes which are merged.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10columnSpanSaySiGvp":{"name":"columnSpan","abstract":"

    Column indexes spanned by the cell. In case of a merged cell, this will contain all the column indexes which are merged.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC5frameSo6CGRectVvp":{"name":"frame","abstract":"

    Frame of the cell within GridView

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10isSelectedSbvp":{"name":"isSelected","abstract":"

    Sets the cell selected

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC6editorAA10EditorViewCvp":{"name":"editor","abstract":"

    Editor within the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC12isSplittableSbvp":{"name":"isSplittable","abstract":"

    Denotes if the cell can be split i.e. is a merged cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11contentSizeSo6CGSizeVvp":{"name":"contentSize","abstract":"

    Content size of the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11contentViewSo6UIViewCvp":{"name":"contentView","abstract":"

    Content view for the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC9gridStyleAA0bE0Vvp":{"name":"gridStyle","abstract":"

    Undocumented

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC7rowSpan06columnE013initialHeight5style9gridStyleACSaySiG_AI14CoreFoundation7CGFloatVAA0bcK0VAA0bK0Vtcfc":{"name":"init(rowSpan:columnSpan:initialHeight:style:gridStyle:)","abstract":"

    Undocumented

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC8setFocusyyF":{"name":"setFocus()","abstract":"

    Sets the focus in the Editor within the cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11removeFocusyyF":{"name":"removeFocus()","abstract":"

    Removes the focus from the Editor within the cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10applyStyleyyAA0bcE0VF":{"name":"applyStyle(_:)","abstract":"

    Applies the given style to the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton15BoundsObservingP09didChangeB0_03oldB0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_17didReceiveFocusAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didReceiveFocusAt:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_16didLoseFocusFromyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didLoseFocusFrom:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_16didTapAtLocation14characterRangeyAA0bC0C_So7CGPointVSo8_NSRangeVSgtF":{"name":"editor(_:didTapAtLocation:characterRange:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_20didChangeSelectionAt10attributes11contentTypeyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCtF":{"name":"editor(_:didChangeSelectionAt:attributes:contentType:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_13didReceiveKey2atyAA0bC0C_AA0bH0OSo8_NSRangeVtF":{"name":"editor(_:didReceiveKey:at:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"GridCell"},"Classes/EditorCommandExecutor.html#/s:6Proton21EditorCommandExecutorC7contextAcA0B11ViewContextC_tcfc":{"name":"init(context:)","abstract":"

    Initializes the EditorCommandExecutor

    ","parent_name":"EditorCommandExecutor"},"Classes/EditorCommandExecutor.html#/s:6Proton21EditorCommandExecutorC7executeyyAA0bC0_pF":{"name":"execute(_:)","abstract":"

    Executes the given command on the active EditorView having the same Context as the Command Executor. EditorCommand will be executed only","parent_name":"EditorCommandExecutor"},"Classes/UnderlineCommand.html#/s:6Proton16UnderlineCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"UnderlineCommand"},"Classes/StrikethroughCommand.html#/s:6Proton20StrikethroughCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"StrikethroughCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListOutdentCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandC4nameAA0D4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListOutdentCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Outdents a list item if it supports reversing indentation. When applied on an item at first level, it will remove item from the list.","parent_name":"ListOutdentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListIndentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandC4nameAA0D4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListIndentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Indents a list item if it supports indentation (e.g. unsupported item may mean item at first level)","parent_name":"ListIndentCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC4nameAA0C4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC14attributeValueypSgvp":{"name":"attributeValue","abstract":"

    Value to be set for attribute .listItem when applying to a range of text.","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Executes the command with value of attributeValue for .listItem attribute. If the attributeValue is nil, executing","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC7execute2on14attributeValueyAA10EditorViewC_ypSgtF":{"name":"execute(on:attributeValue:)","abstract":"

    Executes the command with value of attributeValue for .listItem attribute.

    ","parent_name":"ListCommand"},"Classes/ItalicsCommand.html#/s:6Proton14ItalicsCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ItalicsCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton22FontTraitToggleCommandC5traitSo30UIFontDescriptorSymbolicTraitsVvp":{"name":"trait","abstract":"

    Undocumented

    ","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton22FontTraitToggleCommandC4name5traitAcA0E4NameV_So30UIFontDescriptorSymbolicTraitsVtcfc":{"name":"init(name:trait:)","abstract":"

    Undocumented

    ","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","parent_name":"FontTraitToggleCommand"},"Classes/BoldCommand.html#/s:6Proton11BoldCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"BoldCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton23AttributesToggleCommandC10attributesSDySo21NSAttributedStringKeyaypGvp":{"name":"attributes","abstract":"

    Undocumented

    ","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton23AttributesToggleCommandC4name10attributesAcA0D4NameV_SDySo21NSAttributedStringKeyaypGtcfc":{"name":"init(name:attributes:)","abstract":"

    Undocumented

    ","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","parent_name":"AttributesToggleCommand"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC2idSSvp":{"name":"id","abstract":"

    Identifies the EditorViewContextuniquely.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC4nameSSvp":{"name":"name","abstract":"

    Friendly name for the context. It is possible to create multiple EditorViewContext using the same name.","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    EditorView delegate at context level. This delegate will be notified about events in all the Editors that share this particular context.","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC6sharedACvpZ":{"name":"shared","abstract":"

    Default shared context. Use this in case there is only a single EditorView on the screen at the root level.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC06activebC0AA0bC0CSgvp":{"name":"activeEditorView","abstract":"

    EditorView for this context that is currently active.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC4nameACSS_tcfc":{"name":"init(name:)","abstract":"

    Initializes a new context

    ","parent_name":"EditorViewContext"},"Classes/EditorView.html#/s:6Proton10EditorViewC06editorC7ContextAA0bcE0Cvp":{"name":"editorViewContext","abstract":"

    Context for the current Editor

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textInteractionsSaySo17UITextInteractionCGvp":{"name":"textInteractions","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC04textC8GesturesSaySo19UIGestureRecognizerCGvp":{"name":"textViewGestures","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC26textDragInteractionEnabledSbvp":{"name":"textDragInteractionEnabled","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)bounds":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    An object interested in responding to editing and focus related events in the EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC22listFormattingProviderAA0b4ListeF0_pSgvp":{"name":"listFormattingProvider","abstract":"

    List formatting provider to be used for rendering lists in the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18registeredCommandsSayAA0B7Command_pGSgvp":{"name":"registeredCommands","abstract":"

    List of commands supported by the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18asyncTextResolversSayAA05AsyncE9Resolving_pGvp":{"name":"asyncTextResolvers","abstract":"

    Async Text Resolvers supported by the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5frame7context16allowAutogrowingACSo6CGRectV_AA0bC7ContextCSbtcfc":{"name":"init(frame:context:allowAutogrowing:)","abstract":"

    Initializes the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC020editorInputAccessoryC0So6UIViewCSgvp":{"name":"editorInputAccessoryView","abstract":"

    Input accessory view to be used

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC011editorInputC0So6UIViewCSgvp":{"name":"editorInputView","abstract":"

    Input view to be used

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

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20registeredProcessorsSayAA14TextProcessing_pGvp":{"name":"registeredProcessors","abstract":"

    List of all the registered TextProcessors in the EditorView. This may be used by nested EditorView to inherit all the","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17selectedTextRangeSo06UITextF0CSgvp":{"name":"selectedTextRange","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15placeholderTextSo18NSAttributedStringCSgvp":{"name":"placeholderText","abstract":"

    Placeholder text for the EditorView. The value can contain any attributes which is natively","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12contentInsetSo12UIEdgeInsetsVvp":{"name":"contentInset","abstract":"

    Gets or sets insets for additional scroll area around the content. Default value is UIEdgeInsetsZero.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC29verticalScrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"verticalScrollIndicatorInsets","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19keyboardDismissModeSo08UIScrollc8KeyboardeF0Vvp":{"name":"keyboardDismissMode","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15isScrollEnabledSbvp":{"name":"isScrollEnabled","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18textContainerInsetSo12UIEdgeInsetsVvp":{"name":"textContainerInset","abstract":"

    Gets or sets the insets for the text container’s layout area within the editor’s content area

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17dataDetectorTypesSo06UIDataeF0Vvp":{"name":"dataDetectorTypes","abstract":"

    The types of data converted to tappable URLs in the editor view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13contentLengthSivp":{"name":"contentLength","abstract":"

    Length of content within the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC10isEditableSbvp":{"name":"isEditable","abstract":"

    Determines if the EditorView is editable or not.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC7isEmptySbvp":{"name":"isEmpty","abstract":"

    Determines if the editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17currentLayoutLineAA0bF0VSgvp":{"name":"currentLayoutLine","abstract":"

    Current line information based the caret position or selected range. If the selected range spans across multiple","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15firstLayoutLineAA0bF0VSgvp":{"name":"firstLayoutLine","abstract":"

    First line of content based on layout in the Editor. Nil if editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14lastLayoutLineAA0bF0VSgvp":{"name":"lastLayoutLine","abstract":"

    Last line of content based on layout in the Editor. Nil if editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12selectedTextSo18NSAttributedStringCvp":{"name":"selectedText","abstract":"

    Selected text in the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)backgroundColor":{"name":"backgroundColor","abstract":"

    Background color for the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)font":{"name":"font","abstract":"

    Default font to be used by the Editor. A font may be overridden on whole or part of content in EditorView by an EditorCommand or","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)paragraphStyle":{"name":"paragraphStyle","abstract":"

    Default paragraph style to be used by the Editor. The style may be overridden on whole or part of content in","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)textColor":{"name":"textColor","abstract":"

    Default text color to be used by the Editor. The color may be overridden on whole or part of content in","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC9maxHeightAA0bE0Ovp":{"name":"maxHeight","abstract":"

    Maximum height that the EditorView can expand to. After reaching the maximum specified height, the editor becomes scrollable.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14attributedTextSo18NSAttributedStringCvp":{"name":"attributedText","abstract":"

    Text to be set in the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13selectedRangeSo8_NSRangeVvp":{"name":"selectedRange","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16typingAttributesSDySo21NSAttributedStringKeyaypGvp":{"name":"typingAttributes","abstract":"

    Typing attributes to be used. Automatically resets when the selection changes.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    An object interested in observing the changes in bounds of the Editor, typically an Attachment.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13contentOffsetSo7CGPointVvp":{"name":"contentOffset","abstract":"

    Gets and sets the content offset.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18linkTextAttributesSDySo21NSAttributedStringKeyaypGSgvp":{"name":"linkTextAttributes","abstract":"

    The attributes to apply to links.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12textEndRangeSo8_NSRangeVvp":{"name":"textEndRange","abstract":"

    Range of end of text in the EditorView. The range has always has length of 0.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC25isContainedInAnAttachmentSbvp":{"name":"isContainedInAnAttachment","abstract":"

    Determines if the current Editor is contained in an attachment

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11contentNameSo015PREditorContentE0CSgvp":{"name":"contentName","abstract":"

    Name of the content if the Editor is contained within an Attachment.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12visibleRangeSo8_NSRangeVvp":{"name":"visibleRange","abstract":"

    Returns the visible text range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19containerAttachmentAA0E0CSgvp":{"name":"containerAttachment","abstract":"

    Attachment containing the current Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12nestingLevelSivp":{"name":"nestingLevel","abstract":"

    Nesting level of current Editor within other attachments containing Editors.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC04rootB0ACvp":{"name":"rootEditor","abstract":"

    Returns the root editor of the current Editor. Returns self where the current editor is not contained within an Attachment.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC06parentB0ACSgvp":{"name":"parentEditor","abstract":"

    EditorView containing the current EditorView in an Attachment

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5clearyyF":{"name":"clear()","abstract":"

    Clears the contents in the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC22autocapitalizationTypeSo024UITextAutocapitalizationE0Vvp":{"name":"autocapitalizationType","abstract":"

    The auto-capitalization style for the text object.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18autocorrectionTypeSo020UITextAutocorrectionE0Vvp":{"name":"autocorrectionType","abstract":"

    The autocorrection style for the text object.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17spellCheckingTypeSo011UITextSpelleF0Vvp":{"name":"spellCheckingType","abstract":"

    The spell-checking style for the text object.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15smartQuotesTypeSo011UITextSmarteF0Vvp":{"name":"smartQuotesType","abstract":"

    The configuration state for smart quotes.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15smartDashesTypeSo011UITextSmarteF0Vvp":{"name":"smartDashesType","abstract":"

    The configuration state for smart dashes.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC21smartInsertDeleteTypeSo011UITextSmartefG0Vvp":{"name":"smartInsertDeleteType","abstract":"

    The configuration state for the smart insertion and deletion of space characters.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12keyboardTypeSo010UIKeyboardE0Vvp":{"name":"keyboardType","abstract":"

    The keyboard style associated with the text object.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18keyboardAppearanceSo010UIKeyboardE0Vvp":{"name":"keyboardAppearance","abstract":"

    The appearance style of the keyboard that is associated with the text object

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13returnKeyTypeSo08UIReturneF0Vvp":{"name":"returnKeyType","abstract":"

    The visible title of the Return key.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC29enablesReturnKeyAutomaticallySbvp":{"name":"enablesReturnKeyAutomatically","abstract":"

    A Boolean value indicating whether the Return key is automatically enabled when the user is entering text.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17isSecureTextEntrySbvp":{"name":"isSecureTextEntry","abstract":"

    Identifies whether the text object should disable text copying and in some cases hide the text being entered.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15textContentTypeSo06UITexteF0aSgvp":{"name":"textContentType","abstract":"

    The semantic meaning expected by a text input area.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC27allowsEditingTextAttributesSbvp":{"name":"allowsEditingTextAttributes","abstract":"

    A Boolean value indicating whether the text view allows the user to edit style information.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12isSelectableSbvp":{"name":"isSelectable","abstract":"

    A Boolean value indicating whether the receiver is selectable.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textDragDelegateSo06UITexteF0_pSgvp":{"name":"textDragDelegate","abstract":"

    A text drag delegate object for customizing the drag source behavior of a text view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textDropDelegateSo06UITexteF0_pSgvp":{"name":"textDropDelegate","abstract":"

    The text drop delegate for interacting with a drop activity in the text view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)sizeThatFits:":{"name":"sizeThatFits(_:)","abstract":"

    Asks the view to calculate and return the size that best fits the specified size.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)becomeFirstResponder":{"name":"becomeFirstResponder()","abstract":"

    Asks UIKit to make this object the first responder in its window.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11markedRangeSo8_NSRangeVSgvp":{"name":"markedRange","abstract":"

    The range of currently marked text in a document.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13setAttributes_2atySDySo21NSAttributedStringKeyaypG_So8_NSRangeVtF":{"name":"setAttributes(_:at:)","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC21getFullAttributedText5usingSo18NSAttributedStringCAA27AttachmentContentIdentifierV_tF":{"name":"getFullAttributedText(using:)","abstract":"

    Returns the full attributed text contained in the EditorView along with the ones in editors nested in contained Attachments.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC27setNeedsAsyncTextResolutionyyF":{"name":"setNeedsAsyncTextResolution()","abstract":"

    Sets async text resolution to resolve on next text layout pass.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC24resolveAsyncTextIfNeededyyF":{"name":"resolveAsyncTextIfNeeded()","abstract":"

    Invokes async text resolution to resolve on demand.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16rangeOfCharacter2atSo8_NSRangeVSgSo7CGPointV_tF":{"name":"rangeOfCharacter(at:)","abstract":"

    Returns the range of character at the given point

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19contentLinesInRangeySayAA0B4LineVGSo8_NSRangeVF":{"name":"contentLinesInRange(_:)","abstract":"

    Gets the lines separated by newline characters from the given range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19previousContentLine4fromAA0bF0VSgSi_tF":{"name":"previousContentLine(from:)","abstract":"

    Gets the previous line of content from the given location. A content line is defined by the presence of a","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15nextContentLine4fromAA0bF0VSgSi_tF":{"name":"nextContentLine(from:)","abstract":"

    Gets the next line of content from the given location. A content line is defined by the presence of a","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15layoutLineAfteryAA0bE0VSgAFF":{"name":"layoutLineAfter(_:)","abstract":"

    Gets the line preceding the given line. Nil if the given line is invalid or is first line

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16layoutLineBeforeyAA0bE0VSgAFF":{"name":"layoutLineBefore(_:)","abstract":"

    Gets the line before the given line. Nil if the given line is invalid or is first line

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5rects3forSaySo6CGRectVGSo8_NSRangeV_tF":{"name":"rects(for:)","abstract":"

    Returns the rectangles for line fragments spanned by the range. Based on the span of the range,","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC9caretRect3forSo6CGRectVSi_tF":{"name":"caretRect(for:)","abstract":"

    Returns the caret rectangle for given position in the editor content.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC4word2atSo18NSAttributedStringCSgSi_tF":{"name":"word(at:)","abstract":"

    Gets the word from text at given location in editor content

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17attributeRangeFor_2atSo8_NSRangeVSgSo21NSAttributedStringKeya_SitF":{"name":"attributeRangeFor(_:at:)","abstract":"

    Gets the full range of attribute at given location.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14deleteBackwardyyF":{"name":"deleteBackward()","abstract":"

    Deletes text backwards

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16insertAttachment2in10attachmentySo8_NSRangeV_AA0E0CtF":{"name":"insertAttachment(in:attachment:)","abstract":"

    Inserts an Attachment in the EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8setFocusyyF":{"name":"setFocus()","abstract":"

    Sets the focus in the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11resignFocusyyF":{"name":"resignFocus()","abstract":"

    Makes the EditorView lose focus.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20scrollRangeToVisibleyySo8_NSRangeVF":{"name":"scrollRangeToVisible(_:)","abstract":"

    Makes the EditorView scroll to given range such that it is visible. No-op if the range is already visible.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19scrollRectToVisible_8animatedySo6CGRectV_SbtF":{"name":"scrollRectToVisible(_:animated:)","abstract":"

    Makes the EditorView scroll to given range such that it is visible. No-op if the range is already visible.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8contents2inSayAA0B7ContentVGSo8_NSRangeVSg_tF":{"name":"contents(in:)","abstract":"

    Gets the contents within the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17transformContents2in5usingSay11EncodedTypeQzGSo8_NSRangeVSg_xtAA0B15ContentEncodingRzlF":{"name":"transformContents(in:using:)","abstract":"

    Transforms EditorContent into given type. This function can also be used to encode content into a different type for e.g. encoding the contents to JSON. Encoding","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17replaceCharacters2in4withySo8_NSRangeV_So18NSAttributedStringCtF":{"name":"replaceCharacters(in:with:)","abstract":"

    Replaces the given range of content with the attributedString provided.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17replaceCharacters2in4withySo8_NSRangeV_SStF":{"name":"replaceCharacters(in:with:)","abstract":"

    Replaces the characters in the given range with the string provided.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16appendCharactersyySo18NSAttributedStringCF":{"name":"appendCharacters(_:)","abstract":"

    Appends the given attributed text to the end of content in EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16appendCharactersyySSF":{"name":"appendCharacters(_:)","abstract":"

    Appends the given attributed text to the end of content in EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17registerProcessoryyAA14TextProcessing_pF":{"name":"registerProcessor(_:)","abstract":"

    Registers the given text processor with the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19unregisterProcessoryyAA14TextProcessing_pF":{"name":"unregisterProcessor(_:)","abstract":"

    Unregisters the given text processor from the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18registerProcessorsyySayAA14TextProcessing_pGF":{"name":"registerProcessors(_:)","abstract":"

    Registers the given text processors with the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20unregisterProcessorsyySayAA14TextProcessing_pGF":{"name":"unregisterProcessors(_:)","abstract":"

    Unregisters the given text processors from the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16registerCommandsyySayAA0B7Command_pGF":{"name":"registerCommands(_:)","abstract":"

    Registers the given commands with the Editor. Only registered commands can be executed if any is added to the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18unregisterCommandsyySayAA0B7Command_pGF":{"name":"unregisterCommands(_:)","abstract":"

    Unregisters the given commands from the Editor. When all commands are unregistered, any command can be executed on the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15registerCommandyyAA0bE0_pF":{"name":"registerCommand(_:)","abstract":"

    Registers the given command with the Editor. Only registered commands can be executed if any is added to the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17unregisterCommandyyAA0bE0_pF":{"name":"unregisterCommand(_:)","abstract":"

    Unregisters the given command from the Editor. When all commands are unregistered, any command can be executed on the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)canPerformAction:withSender:":{"name":"canPerformAction(_:withSender:)","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20canPerformMenuAction_10withSenderSb10ObjectiveC8SelectorV_ypSgtF":{"name":"canPerformMenuAction(_:withSender:)","abstract":"

    Determines if the given menu action can be invoked.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5paste16attributedString4intoSbSo012NSAttributedF0C_So8_NSRangeVtF":{"name":"paste(attributedString:into:)","abstract":"

    This method attempt to simulate the paste method but with explicitly provided attributed string and insertion range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13addAttributes_2atySDySo21NSAttributedStringKeyaypG_So8_NSRangeVtF":{"name":"addAttributes(_:at:)","abstract":"

    Adds given attributes to the range provided. If the range already contains a value for an attribute being provided,","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16removeAttributes_2atySaySo21NSAttributedStringKeyaG_So8_NSRangeVtF":{"name":"removeAttributes(_:at:)","abstract":"

    Removes the given attributes from the range provided. If the attribute does not exist in the range, it will be a no-op.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12addAttribute_5value2atySo21NSAttributedStringKeya_ypSo8_NSRangeVtF":{"name":"addAttribute(_:value:at:)","abstract":"

    Adds given attribute to the range provided. If the attribute already exists in the range, it will be overwritten with the new value provided here.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15removeAttribute_2atySo21NSAttributedStringKeya_So8_NSRangeVtF":{"name":"removeAttribute(_:at:)","abstract":"

    Removes the attribute from given range. If the attribute does not exist in the range, it is a no-op.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16resolveAsyncTextyyF":{"name":"resolveAsyncText()","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19isCommandRegisteredySbAA0E4NameVF":{"name":"isCommandRegistered(_:)","abstract":"

    Determines if the given command can be executed on the current editor. The command is allowed to be executed if","parent_name":"EditorView"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Background color

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC013roundedCornerC0AA07RoundedeC0Ovp":{"name":"roundedCornerStyle","abstract":"

    Rounding style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6borderAA06BorderC0CSgvp":{"name":"border","abstract":"

    Optional border style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6shadowAA06ShadowC0CSgvp":{"name":"shadow","abstract":"

    Optional shadow style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC18hasSquaredOffJoinsSbvp":{"name":"hasSquaredOffJoins","abstract":"

    Determines if the background has squared off joins at the point of wrapping of content.","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC10heightModeAA0bE0Ovp":{"name":"heightMode","abstract":"

    Defines if the background should be drawn based on height of text range with style, or that of the height of line fragment containing","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC9widthModeAA0bE0Ovp":{"name":"widthMode","abstract":"

    Defines if the background should be drawn based on width of text range with style, or that of the entire width of line fragment containing","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6insetsSo12UIEdgeInsetsVvp":{"name":"insets","abstract":"

    Insets for drawn background. Defaults to .zero

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC5color013roundedCornerC06border6shadow18hasSquaredOffJoins10heightMode05widthN06insetsACSo7UIColorC_AA07RoundedfC0OAA06BorderC0CSgAA06ShadowC0CSgSbAA0bN0OAWSo12UIEdgeInsetsVtcfc":{"name":"init(color:roundedCornerStyle:border:shadow:hasSquaredOffJoins:heightMode:widthMode:insets:)","abstract":"

    Undocumented

    ","parent_name":"BackgroundStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Color of border

    ","parent_name":"BorderStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC9lineWidth14CoreFoundation7CGFloatVvp":{"name":"lineWidth","abstract":"

    Width of the border

    ","parent_name":"BorderStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC9lineWidth5colorAC14CoreFoundation7CGFloatV_So7UIColorCtcfc":{"name":"init(lineWidth:color:)","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Color of the shadow

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC6offsetSo6CGSizeVvp":{"name":"offset","abstract":"

    Shadow offset

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC4blur14CoreFoundation7CGFloatVvp":{"name":"blur","abstract":"

    Shadow blur

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC5color6offset4blurACSo7UIColorC_So6CGSizeV14CoreFoundation7CGFloatVtcfc":{"name":"init(color:offset:blur:)","abstract":"

    Undocumented

    ","parent_name":"ShadowStyle"},"Classes/Attachment.html#/s:6Proton10AttachmentC18selectBeforeDeleteSbvp":{"name":"selectBeforeDelete","abstract":"

    Governs if the attachment should be selected before being deleted. When true, tapping the backspace key the first time on range containing Attachment will only","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6stringSo18NSAttributedStringCvp":{"name":"string","abstract":"

    Attributed string representation of the Attachment. This can be used directly to replace a range of text in EditorView

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC4nameSo19PREditorContentNameCSgvp":{"name":"name","abstract":"

    Name of the content contained within the Attachment

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC14contentEditorsSayAA10EditorViewCGvp":{"name":"contentEditors","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC19containerEditorViewAA0dE0CSgvp":{"name":"containerEditorView","abstract":"

    EditorView containing this attachment

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC14offsetProviderAA0B15OffsetProviding_pSgvp":{"name":"offsetProvider","abstract":"

    Offsets for the attachment. Can be used to align attachment with the text. Defaults to .zero

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC20containerContentNameSo08PREditordE0CSgvp":{"name":"containerContentName","abstract":"

    Name of the content for the EditorView

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC11contentViewSo6UIViewCSgvp":{"name":"contentView","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC15containerBoundsSo6CGRectVSgvp":{"name":"containerBounds","abstract":"

    Bounds of the container

    ","parent_name":"Attachment"},"Classes/Attachment.html#/c:@M@Proton@objc(cs)Attachment(py)bounds":{"name":"bounds","abstract":"

    The bounds rectangle, which describes the attachment’s location and size in its own coordinate system.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC5imageAcA0B5ImageV_tcfc":{"name":"init(image:)","abstract":"

    Initializes an attachment with the image provided.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC_4sizeAcA0B15TypeIdentifying_AA013EditorContentE0So6UIViewCXc_AA0B4SizeOtcfc":{"name":"init(_:size:)","abstract":"

    Initializes the attachment with the given content view

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC15didChangeBounds_03oldE0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","abstract":"

    Causes invalidation of layout of the attachment when the containing view bounds are changed

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC19removeFromContaineryyF":{"name":"removeFromContainer()","abstract":"

    Removes this attachment from the EditorView it is contained in.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC16rangeInContainerSo8_NSRangeVSgyF":{"name":"rangeInContainer()","abstract":"

    Range of this attachment in it’s container

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC32addedAttributesOnContainingRange16rangeInContainer10attributesySo8_NSRangeV_SDySo21NSAttributedStringKeyaypGtF":{"name":"addedAttributesOnContainingRange(rangeInContainer:attributes:)","abstract":"

    Invoked when attributes are added in the containing EditorView in the range of string in which this attachment is contained.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC36removedAttributesFromContainingRange16rangeInContainer10attributesySo8_NSRangeV_SaySo21NSAttributedStringKeyaGtF":{"name":"removedAttributesFromContainingRange(rangeInContainer:attributes:)","parent_name":"Attachment"},"Classes/Attachment.html#/c:@M@Proton@objc(cs)Attachment(im)attachmentBoundsForTextContainer:proposedLineFragment:glyphPosition:characterIndex:":{"name":"attachmentBounds(for:proposedLineFragment:glyphPosition:characterIndex:)","abstract":"

    Returns the calculated bounds for the attachment based on size rule and content view provided during initialization.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6update4withyAA0B5ImageV_tF":{"name":"update(with:)","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6update_4sizeyAA0B15TypeIdentifying_AA013EditorContentF0So6UIViewCXc_AA0B4SizeOtF":{"name":"update(_:size:)","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC40getFullTextRangeIdentificationAttributesSDySo21NSAttributedStringKeyaypGyF":{"name":"getFullTextRangeIdentificationAttributes()","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC16invalidateLayoutyyF":{"name":"invalidateLayout()","abstract":"

    Invalidates the current layout and triggers a layout update.

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

    An attachment can be used as a container for any view object. Based on the AttachmentSize provided, the attachment automatically renders itself alongside the text in EditorView."},"Classes/ShadowStyle.html":{"name":"ShadowStyle","abstract":"

    Shadow style for backgroundStyle attribute

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

    Border style for backgroundStyle attribute

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

    Style for background color attribute. Adding backgroundStyle attribute will add border, background and shadow"},"Classes/EditorView.html":{"name":"EditorView","abstract":"

    A scrollable, multiline text region capable of resizing itself based of the height of the content. Maximum height of EditorView"},"Classes/EditorViewContext.html":{"name":"EditorViewContext","abstract":"

    Describes the context for the EditorView. A context is used to execute the commands using EditorCommandExecutor. In a typical scenario, where there are"},"Classes/AttributesToggleCommand.html":{"name":"AttributesToggleCommand","abstract":"

    Editor command that toggles given attributes in selected range in the Editor.

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

    Editor command that toggles Bold attribute to the selected range in the Editor.

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

    Editor command that toggles given font trait to the selected range in the Editor.

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

    Editor command that toggles Italics attribute to the selected range in the Editor.

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

    Command that can be used to toggle list attributes of selected range of text."},"Classes/ListIndentCommand.html":{"name":"ListIndentCommand","abstract":"

    Command that can be used to toggle list indentation of selected range of text.

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

    Command that can be used to toggle list indentation of selected range of text.

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

    Undocumented

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

    Undocumented

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

    EditorCommandExecutor manages all the EditorView in the main EditorView. Sub editors may have been added as Attachment in the EditorView."},"Classes/GridCell.html":{"name":"GridCell","abstract":"

    Denotes a cell in the GridView

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

    A view that provides a tabular structure where each cell is an EditorView."},"Classes/ListTextProcessor.html":{"name":"ListTextProcessor","abstract":"

    Text process capable of processing keyboard inputs specific to lists. ListTextProcessor only works after a range of text"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions 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.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file +{"Typealiases.html#/s:6Proton10Attributesa":{"name":"Attributes","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton14AttachmentViewa":{"name":"AttachmentView","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton25AttachmentViewIdentifyinga":{"name":"AttachmentViewIdentifying","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton22TextProcessingPrioritya":{"name":"TextProcessingPriority","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton9Processeda":{"name":"Processed","abstract":"

    Undocumented

    "},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5colorSo7UIColorCvp":{"name":"color","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5width14CoreFoundation7CGFloatVvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5color5widthAESo7UIColorC_14CoreFoundation7CGFloatVtcfc":{"name":"init(color:width:)","abstract":"

    Undocumented

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

    Border style for individual cells. This may be used to override the style provided in the GridStyle for individual cells

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV15backgroundColorSo7UIColorCSgvp":{"name":"backgroundColor","abstract":"

    Default background color for the cell.

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV9textColorSo7UIColorCSgvp":{"name":"textColor","abstract":"

    Default text color for the cell

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV4fontSo6UIFontCSgvp":{"name":"font","abstract":"

    Default font for the cell

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV06borderD0AC06BorderD0VSgvp":{"name":"borderStyle","abstract":"

    Undocumented

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV15backgroundColor04textF04font06borderD0ACSo7UIColorCSg_AJSo6UIFontCSgAC06BorderD0VSgtcfc":{"name":"init(backgroundColor:textColor:font:borderStyle:)","abstract":"

    Undocumented

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV6merged5style5otherA2C_ACtFZ":{"name":"merged(style:other:)","abstract":"

    Creates a merged styles from given styles with precedence to the first style and any missing values used from the second style

    ","parent_name":"GridCellStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderColorSo7UIColorCvp":{"name":"borderColor","abstract":"

    Border color for grid

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderWidth14CoreFoundation7CGFloatVvp":{"name":"borderWidth","abstract":"

    Border width for the grid

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV7defaultACvpZ":{"name":"default","abstract":"

    Default style

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderColor0D5WidthACSo7UIColorC_14CoreFoundation7CGFloatVtcfc":{"name":"init(borderColor:borderWidth:)","abstract":"

    Undocumented

    ","parent_name":"GridStyle"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV5styleAA0B5StyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV23boundsLimitShadowColorsAA08GradientG0Vvp":{"name":"boundsLimitShadowColors","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV07columnsC0SayAA0b6ColumnC0VGvp":{"name":"columnsConfiguration","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV04rowsC0SayAA0b3RowC0VGvp":{"name":"rowsConfiguration","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV20collapsedColumnWidth14CoreFoundation7CGFloatVvp":{"name":"collapsedColumnWidth","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV18collapsedRowHeight14CoreFoundation7CGFloatVvp":{"name":"collapsedRowHeight","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV07columnsC004rowsC05style23boundsLimitShadowColors20collapsedColumnWidth0K9RowHeightACSayAA0blC0VG_SayAA0bnC0VGAA0B5StyleVAA08GradientJ0V14CoreFoundation7CGFloatVAVtcfc":{"name":"init(columnsConfiguration:rowsConfiguration:style:boundsLimitShadowColors:collapsedColumnWidth:collapsedRowHeight:)","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV15numberOfColumnsSivp":{"name":"numberOfColumns","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV12numberOfRowsSivp":{"name":"numberOfRows","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV7primarySo7UIColorCvp":{"name":"primary","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV9secondarySo7UIColorCvp":{"name":"secondary","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV7primary9secondaryACSo7UIColorC_AGtcfc":{"name":"init(primary:secondary:)","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV13initialHeight14CoreFoundation7CGFloatVvp":{"name":"initialHeight","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV5styleAA0B9CellStyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV13initialHeight5styleAC14CoreFoundation7CGFloatV_AA0B9CellStyleVtcfc":{"name":"init(initialHeight:style:)","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5widthAA0bC5WidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5styleAA0B9CellStyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5width5styleAcA0bC5WidthO_AA0B9CellStyleVtcfc":{"name":"init(width:style:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingV11EncodedTypea":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingVyACyxGqd__c11EncodedTypeQyd__RszAA0eF0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes the Encoder

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingV6encode4name4viewxSo08PREditorD4NameC_So6UIViewCtF":{"name":"encode(name:view:)","abstract":"

    Encodes contents based on concrete encoder provided during initialization

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingV11EncodedTypea":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AnyEditorTextEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingVyACyxGqd__c11EncodedTypeQyd__RszAA0cdE0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes the Encoder

    ","parent_name":"AnyEditorTextEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingV6encode4name6stringxSo19PREditorContentNameC_So18NSAttributedStringCtF":{"name":"encode(name:string:)","abstract":"

    Encodes contents based on concrete encoder provided during initialization

    ","parent_name":"AnyEditorTextEncoding"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV11indentation14CoreFoundation7CGFloatVvp":{"name":"indentation","abstract":"

    Indentation of line

    ","parent_name":"LineFormatting"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV13spacingBefore14CoreFoundation7CGFloatVvp":{"name":"spacingBefore","abstract":"

    Vertical spacing before the line

    ","parent_name":"LineFormatting"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV11indentation13spacingBeforeAC14CoreFoundation7CGFloatV_AHtcfc":{"name":"init(indentation:spacingBefore:)","abstract":"

    Initializes

    ","parent_name":"LineFormatting"},"Structs/EditorLine.html#/s:6Proton10EditorLineV4textSo18NSAttributedStringCvp":{"name":"text","abstract":"

    Text contained in the current line.

    ","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV5rangeSo8_NSRangeVvp":{"name":"range","abstract":"

    Range of text in the EditorView for the current line.

    ","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV10startsWithySbSSF":{"name":"startsWith(_:)","abstract":"

    Determines if the current line starts with given text.","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV8endsWithySbSSF":{"name":"endsWith(_:)","abstract":"

    Determines if the current line ends with given text.","parent_name":"EditorLine"},"Structs/AttachmentContentIdentifier.html#/s:6Proton27AttachmentContentIdentifierV9openingIDSo18NSAttributedStringCvp":{"name":"openingID","abstract":"

    Undocumented

    ","parent_name":"AttachmentContentIdentifier"},"Structs/AttachmentContentIdentifier.html#/s:6Proton27AttachmentContentIdentifierV9closingIDSo18NSAttributedStringCvp":{"name":"closingID","abstract":"

    Undocumented

    ","parent_name":"AttachmentContentIdentifier"},"Structs/EditorContent.html#/s:6Proton13EditorContentV4typeAA0bC4TypeOvp":{"name":"type","abstract":"

    Type of EditorContent

    ","parent_name":"EditorContent"},"Structs/EditorContent.html#/s:6Proton13EditorContentV14enclosingRangeSo8_NSRangeVSgvp":{"name":"enclosingRange","abstract":"

    Range within the Editor for this content

    ","parent_name":"EditorContent"},"Structs/EditorContent.html#/s:6Proton13EditorContentV4Namea":{"name":"Name","abstract":"

    Name for the content within the Editor. All the content (text and attachments) must have","parent_name":"EditorContent"},"Structs/AnyEditorContentDecoding.html#/s:6Proton24AnyEditorContentDecodingVyACyxq_Gqd__c12TypeToDecodeQyd__Rsz0E7ContextQyd__Rs_AA0cdE0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes AnyEditorContentDecoding

    ","parent_name":"AnyEditorContentDecoding"},"Structs/AnyEditorContentDecoding.html#/s:6Proton24AnyEditorContentDecodingV6decode4mode7maxSize5value7contextSo18NSAttributedStringCAA0cD4ModeO_So6CGSizeVxq_tKF":{"name":"decode(mode:maxSize:value:context:)","abstract":"

    Decodes the given value to NSAttributedString

    ","parent_name":"AnyEditorContentDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingV4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingVyACyxGqd__c12TypeToDecodeQyd__RszAA010AttributesD0Rd__lufc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingV6decodeySDySo21NSAttributedStringKeyaypGxF":{"name":"decode(_:)","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/SquareBulletSequenceGenerator.html#/s:6Proton29SquareBulletSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"SquareBulletSequenceGenerator"},"Structs/SquareBulletSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"SquareBulletSequenceGenerator"},"Structs/DiamondBulletSequenceGenerator.html#/s:6Proton30DiamondBulletSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"DiamondBulletSequenceGenerator"},"Structs/DiamondBulletSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"DiamondBulletSequenceGenerator"},"Structs/NumericSequenceGenerator.html#/s:6Proton24NumericSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"NumericSequenceGenerator"},"Structs/NumericSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"NumericSequenceGenerator"},"Structs/ListParser.html#/s:6Proton10ListParserV5parse4list6indentSo18NSAttributedStringCSayAA0B4ItemVG_14CoreFoundation7CGFloatVtFZ":{"name":"parse(list:indent:)","abstract":"

    Parses an array of list items into an NSAttributedString representation. NewLines are automatically added between each list item in the attributed string representation.

    ","parent_name":"ListParser"},"Structs/ListParser.html#/s:6Proton10ListParserV5parse16attributedString6indentSaySo8_NSRangeV5range_AA0B4ItemV04listJ0tGSo012NSAttributedF0C_14CoreFoundation7CGFloatVtFZ":{"name":"parse(attributedString:indent:)","abstract":"

    Parses NSAttributedString to list items

    ","parent_name":"ListParser"},"Structs/ListItem.html#/s:6Proton8ListItemV4textSo18NSAttributedStringCvp":{"name":"text","abstract":"

    Text of the list item. All attributes are preserved as is.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV5levelSivp":{"name":"level","abstract":"

    Level of the list item. This is used with indent to get paragraphStyle to be applied with appropriate indentation of the list items.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV14attributeValueypvp":{"name":"attributeValue","abstract":"

    Attribute value of the list item.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV4text5level14attributeValueACSo18NSAttributedStringC_Siyptcfc":{"name":"init(text:level:attributeValue:)","abstract":"

    Creates a ListItem

    ","parent_name":"ListItem"},"Structs/CommandName.html#/s:6Proton11CommandNameV8rawValueSSvp":{"name":"rawValue","abstract":"

    Name of the command. Must be unique across different types of commands.

    ","parent_name":"CommandName"},"Structs/CommandName.html#/s:6Proton11CommandNameVyACSScfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"CommandName"},"Structs/CommandName.html#/s:SY8rawValuexSg03RawB0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"CommandName"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4nameSo19PREditorContentNameCvp":{"name":"name","abstract":"

    Content name for the image

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV5imageSo7UIImageCvp":{"name":"image","abstract":"

    Image content

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4sizeSo6CGSizeVvp":{"name":"size","abstract":"

    Size of the image

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4typeAA0B4TypeOvp":{"name":"type","abstract":"

    Denotes if the image is block content or an inline

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4name5image4size4typeACSo19PREditorContentNameC_So7UIImageCSo6CGSizeVAA0B4TypeOtcfc":{"name":"init(name:image:size:type:)","abstract":"

    Initializes the Block Content image

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

    Describes an image for which can be used in an Attachment

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

    Identifies an EditorCommand or a RendererCommand

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

    Represents an item in the list. This structure may be used to create NSAttributedString from items in an array of ListItem. Alternatively, NSAttributedString may also be parsed to get an array of ListItems.

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

    Provides helper function to convert between NSAttributedString and [ListItem]

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

    Simple numeric sequence generator.

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

    Simple bullet sequence generator that returns a diamond symbol.

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

    Simple bullet sequence generator that returns a square symbol.

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

    A type-erased implementation of AttributesDecoding

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

    A type-erased implementation of EditorContentDecoding

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

    Defines a content type for Editor. This may be used to serialize the contents of an Editor via enumerating through the contents of the Editor.

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

    Describes opening and closing separators for EditorViewgetFullAttributedText(:) function.

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

    Representation of a line of text in EditorView. A line is defined as a single fragment starting from the beginning of"},"Structs/LineFormatting.html":{"name":"LineFormatting","abstract":"

    Describes the formatting of a line of text. While general purpose in nature, this is"},"Structs/AnyEditorTextEncoding.html":{"name":"AnyEditorTextEncoding","abstract":"

    /// A type-erased implementation of EditorTextEncoding

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

    A type-erased implementation of AttachmentEncoding.

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Style configuration for the grid

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

    Style configuration for the GridCell

    "},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP4nameSSvp":{"name":"name","abstract":"

    Name of the TextProcessor

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP8prioritySivp":{"name":"priority","abstract":"

    Priority of the TextProcessor. An EditorView can have multiple TextProcessors registered. These will be executed in the order of Priority.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP13shouldProcess_0deB2In011replacementB0SbAA10EditorViewC_So8_NSRangeVSStF":{"name":"shouldProcess(_:shouldProcessTextIn:replacementText:)","abstract":"

    Determines if the text should be changed in the editor.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP11willProcess07deletedB008insertedB0ySo18NSAttributedStringC_AHtF":{"name":"willProcess(deletedText:insertedText:)","abstract":"

    Invoked before changes are processed by the editor.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP7process6editor5range14changeInLengthSbAA10EditorViewC_So8_NSRangeVSitF":{"name":"process(editor:range:changeInLength:)","abstract":"

    Allows to change attributes and text in the EditorView as the text is changed.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP22handleKeyWithModifiers6editor3key13modifierFlags5rangeyAA10EditorViewC_AA0mE0OSo013UIKeyModifierK0VSo8_NSRangeVtF":{"name":"handleKeyWithModifiers(editor:key:modifierFlags:range:)","abstract":"

    Allows to change attributes and text in the EditorView as the text is changed.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP18processInterrupted6editor2atyAA10EditorViewC_So8_NSRangeVtF":{"name":"processInterrupted(editor:at:)","abstract":"

    Fired when processing has been interrupted by another TextProcessor running in the same pass. This allows TextProcessor to revert","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP20selectedRangeChanged6editor03oldE003newE0yAA10EditorViewC_So8_NSRangeVSgALtF":{"name":"selectedRangeChanged(editor:oldRange:newRange:)","abstract":"

    Notifies the processor that the selected range has changed in the EditorView due to a reason other than typing text","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP10didProcess6editoryAA10EditorViewC_tF":{"name":"didProcess(editor:)","abstract":"

    Invoked after the text has been processed in the Editor.

    ","parent_name":"TextProcessing"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_17didReceiveFocusAt2inyAA0bC0C_So8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didReceiveFocusAt:in:)","abstract":"

    Invoked when EditorView within the cell receives focus

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didLoseFocusFrom2inyAA0bC0C_So8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didLoseFocusFrom:in:)","abstract":"

    Invoked when EditorView within the cell loses focus

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didTapAtLocation14characterRange2inyAA0bC0C_So7CGPointVSo8_NSRangeVSgAA0B4CellCtF":{"name":"gridView(_:didTapAtLocation:characterRange:in:)","abstract":"

    Invoked when tap event occurs within the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_20didChangeSelectionAt10attributes11contentType2inyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCAA0B4CellCtF":{"name":"gridView(_:didChangeSelectionAt:attributes:contentType:in:)","abstract":"

    Invoked on selection changes with in the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_15didChangeBounds2inyAA0bC0C_So6CGRectVAA0B4CellCtF":{"name":"gridView(_:didChangeBounds:in:)","abstract":"

    Invoked on change of bounds of the Editor within the cell

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_14didSelectCellsyAA0bC0C_SayAA0B4CellCGtF":{"name":"gridView(_:didSelectCells:)","abstract":"

    Invoked when selection of cells is changed.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didUnselectCellsyAA0bC0C_SayAA0B4CellCGtF":{"name":"gridView(_:didUnselectCells:)","abstract":"

    Invoked when selection of cells is changed.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_13didReceiveKey2at2inyAA0bC0C_AA06EditorH0OSo8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didReceiveKey:at:in:)","abstract":"

    Invoked when special keys are intercepted in the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_23shouldChangeColumnWidth3forSbAA0bC0C_14CoreFoundation7CGFloatVSitF":{"name":"gridView(_:shouldChangeColumnWidth:for:)","abstract":"

    Invoked when a column in GridView is resized.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_13didLayoutCellyAA0bC0C_AA0bH0CtF":{"name":"gridView(_:didLayoutCell:)","abstract":"

    Undocumented

    ","parent_name":"GridViewDelegate"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP1TQa":{"name":"T","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP12textEncodersSDySo08PREditorC4NameCAA03AnyB12TextEncodingVy1TQzGGvp":{"name":"textEncoders","abstract":"

    Encoders for text content i.e. NSAttributedString based content

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP18attachmentEncodersSDySo08PREditorC4NameCAA03AnybC18AttachmentEncodingVy1TQzGGvp":{"name":"attachmentEncoders","abstract":"

    Encoders for attachment types

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP6encodey1TQzSgAA0bC0VF":{"name":"encode(_:)","abstract":"

    Encodes the given content.

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoding.html#/s:6Proton21EditorContentEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoding"},"Protocols/EditorContentEncoding.html#/s:6Proton21EditorContentEncodingP6encodey11EncodedTypeQzSgAA0bC0VF":{"name":"encode(_:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoding"},"Protocols/AttachmentEncoding.html#/s:6Proton18AttachmentEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AttachmentEncoding"},"Protocols/AttachmentEncoding.html#/s:6Proton18AttachmentEncodingP6encode4name4view11EncodedTypeQzSo19PREditorContentNameC_So6UIViewCtF":{"name":"encode(name:view:)","abstract":"

    Encodes given Attachment content view to given type

    ","parent_name":"AttachmentEncoding"},"Protocols/EditorTextEncoding.html#/s:6Proton18EditorTextEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"EditorTextEncoding"},"Protocols/EditorTextEncoding.html#/s:6Proton18EditorTextEncodingP6encode4name6string11EncodedTypeQzSo19PREditorContentNameC_So18NSAttributedStringCtF":{"name":"encode(name:string:)","abstract":"

    Encodes the given attributed string to EncodedType

    ","parent_name":"EditorTextEncoding"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","abstract":"

    Identifies a command. This value is used to maintain unique registrations of commands in an Editor. Adding a command with the same name","parent_name":"EditorCommand"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP10canExecute2onSbAA0B4ViewC_tF":{"name":"canExecute(on:)","abstract":"

    Determines if the current command can be executed on the given EditorView. When a command is executed using EditorCommandExecutor, it ensures","parent_name":"EditorCommand"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","abstract":"

    Execute the command on the given EditorView. You may use selectedRange property of EditorView if the command operates on","parent_name":"EditorCommand"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_12shouldHandle2at7handledyAA0bC0C_AA0B3KeyOSo8_NSRangeVSbztF":{"name":"editor(_:shouldHandle:at:handled:)","abstract":"

    Invoked when a special key like enter, tab etc. is intercepted in the Editor

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_13didReceiveKey2atyAA0bC0C_AA0bH0OSo8_NSRangeVtF":{"name":"editor(_:didReceiveKey:at:)","abstract":"

    Invoked when a special key like enter, tab etc. is entered in the Editor

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_17didReceiveFocusAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didReceiveFocusAt:)","abstract":"

    Invoked when editor receives focus.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_16didLoseFocusFromyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didLoseFocusFrom:)","abstract":"

    Invoked when editor loses the focus.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_15didChangeTextAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didChangeTextAt:)","abstract":"

    Invoked when text is changed in editor.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_20didChangeSelectionAt10attributes11contentTypeyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCtF":{"name":"editor(_:didChangeSelectionAt:attributes:contentType:)","abstract":"

    Invoked when the selection range changes in the editor as a result of moving the cursor using keys/mouse or taps.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_20didExecuteProcessors2atyAA0bC0C_SayAA14TextProcessing_pGSo8_NSRangeVtF":{"name":"editor(_:didExecuteProcessors:at:)","abstract":"

    Invoked when text processors are executed in the editor.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_13didChangeSize08previousH0yAA0bC0C_So6CGSizeVAJtF":{"name":"editor(_:didChangeSize:previousSize:)","abstract":"

    Invoked when the size of EditorView changes.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_16didTapAtLocation14characterRangeyAA0bC0C_So7CGPointVSo8_NSRangeVSgtF":{"name":"editor(_:didTapAtLocation:characterRange:)","abstract":"

    Invoked when a location within the EditorView is tapped.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_9didLayoutyAA0bC0C_So18NSAttributedStringCtF":{"name":"editor(_:didLayout:)","abstract":"

    Invoked whenever layout pass completes as a result of changing or text or attributes

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_21willSetAttributedTextyAA0bC0C_So18NSAttributedStringCtF":{"name":"editor(_:willSetAttributedText:)","abstract":"

    Invoked before attributedText is set on the EditorView

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_20didSetAttributedTextyAA0bC0C_So18NSAttributedStringCtF":{"name":"editor(_:didSetAttributedText:)","abstract":"

    Invoked after attributedText is set on the EditorView

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor01_E07isReadyyAA0bC0C_SbtF":{"name":"editor(_editor:isReady:)","abstract":"

    Invoked when Editor has been added to the view hierarchy and is ready to receive events.

    ","parent_name":"EditorViewDelegate"},"Protocols/BoundsObserving.html#/s:6Proton15BoundsObservingP09didChangeB0_03oldB0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","abstract":"

    Lets the observer know that bounds of current object have changed

    ","parent_name":"BoundsObserving"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP6editorAA0bD0Cvp":{"name":"editor","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP14attributedTextSo18NSAttributedStringCvp":{"name":"attributedText","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP9maxHeightAA0bF0Ovp":{"name":"maxHeight","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP8delegateAA0bD8Delegate_pSgvp":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP20becomeFirstResponderSbyF":{"name":"becomeFirstResponder()","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewPAAE8setFocusyyF":{"name":"setFocus()","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/AttachmentTypeIdentifying.html#/s:6Proton25AttachmentTypeIdentifyingP4typeAA0bC0Ovp":{"name":"type","abstract":"

    Undocumented

    ","parent_name":"AttachmentTypeIdentifying"},"Protocols/EditorContentIdentifying.html#/s:6Proton24EditorContentIdentifyingP4nameSo08PREditorC4NameCvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"EditorContentIdentifying"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP12TypeToDecodeQa":{"name":"TypeToDecode","abstract":"

    Undocumented

    ","parent_name":"EditorContentDecoding"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP0D7ContextQa":{"name":"DecodingContext","abstract":"

    Undocumented

    ","parent_name":"EditorContentDecoding"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP6decode4mode7maxSize5value7contextSo18NSAttributedStringCAA0bC4ModeO_So6CGSizeV12TypeToDecodeQz0D7ContextQztKF":{"name":"decode(mode:maxSize:value:context:)","abstract":"

    Decodes the given value to NSAttributedString

    ","parent_name":"EditorContentDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP12TypeToDecodeQa":{"name":"TypeToDecode","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP6decodeySDySo21NSAttributedStringKeyaypG12TypeToDecodeQzF":{"name":"decode(_:)","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/SequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","abstract":"

    Returns a value representing the given index.

    ","parent_name":"SequenceGenerator"},"Protocols/EditorListFormattingProvider.html#/s:6Proton28EditorListFormattingProviderP08listLineD0AA0gD0Vvp":{"name":"listLineFormatting","abstract":"

    Line formatting to be used for a list item.

    ","parent_name":"EditorListFormattingProvider"},"Protocols/EditorListFormattingProvider.html#/s:6Proton28EditorListFormattingProviderP17listLineMarkerFor6editor5index5level13previousLevel14attributeValueAA0cgH0OAA0B4ViewC_S3iypSgtF":{"name":"listLineMarkerFor(editor:index:level:previousLevel:attributeValue:)","abstract":"

    Returns the marker to be drawn for list item (bullet/number etc.) for given parameters.

    ","parent_name":"EditorListFormattingProvider"},"Protocols/Focusable.html#/s:6Proton9FocusableP8setFocusyyF":{"name":"setFocus()","abstract":"

    Undocumented

    ","parent_name":"Focusable"},"Protocols/AttachmentOffsetProviding.html#/s:6Proton25AttachmentOffsetProvidingP6offset3for2in20proposedLineFragment13glyphPosition14characterIndexSo7CGPointVAA0B0C_So15NSTextContainerCSo6CGRectVAKSitF":{"name":"offset(for:in:proposedLineFragment:glyphPosition:characterIndex:)","abstract":"

    Undocumented

    ","parent_name":"AttachmentOffsetProviding"},"Protocols/DynamicBoundsProviding.html#/s:6Proton22DynamicBoundsProvidingP7sizeFor10attachment13containerSize8lineRectSo6CGSizeVAA10AttachmentC_AISo6CGRectVtF":{"name":"sizeFor(attachment:containerSize:lineRect:)","abstract":"

    Undocumented

    ","parent_name":"DynamicBoundsProviding"},"Protocols/AsyncTextResolving.html#/s:6Proton18AsyncTextResolvingP4nameSSvp":{"name":"name","abstract":"

    Name of the Resolver. This name must be applied to the range of text that requires async resolution with attribute key: .asyncTextResolver

    ","parent_name":"AsyncTextResolving"},"Protocols/AsyncTextResolving.html#/s:6Proton18AsyncTextResolvingP7resolve5using5range6string10completionyAA10EditorViewC_So8_NSRangeVSo18NSAttributedStringCyAA0bcD6ResultOctF":{"name":"resolve(using:range:string:completion:)","abstract":"

    Resolves the string to a different representation

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

    An object capable of resolving text asynchronously to another representation. New representation may contain change in attributes or the string itself.

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

    Describes an object (typically attachment view) that may change size during the layout pass

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

    Describes an object capable of providing offsets for the Attachment. The value is used to offset the Attachment when rendered alongside the text. This may"},"Protocols/Focusable.html":{"name":"Focusable","abstract":"

    Describes an object capable of gaining focus.

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

    Describes an object capable of providing style and formatting information for rendering lists in EditorView.

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

    Represents a Sequence generator that can return a value based on given index."},"Protocols/AttributesDecoding.html":{"name":"AttributesDecoding","abstract":"

    An object capable of decoding attributes for use in NSAttributedString

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

    An object capable of decoding the given type of content into NSAttributedString for using in EditorView or the RendererView.

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

    Identifies a content type within the Editor

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

    Undocumented

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

    Describes a view contained in Attachment that contains a single EditorView."},"Protocols/BoundsObserving.html":{"name":"BoundsObserving","abstract":"

    Describes an object interested in observing the bounds of a view. Attachment is BoundsObserving and reacts to"},"Protocols/EditorViewDelegate.html":{"name":"EditorViewDelegate","abstract":"

    Describes an object interested in listening to events raised from EditorView

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

    Describes a command that can be executed on EditorView. A command may be invoked directly on the editor by providing an instance."},"Protocols/EditorTextEncoding.html":{"name":"EditorTextEncoding","abstract":"

    Describes an encoder for a content type in Editor. This can be used in conjunction with AnyEditorTextEncoding"},"Protocols/AttachmentEncoding.html":{"name":"AttachmentEncoding","abstract":"

    Describes an object capable of encoding contents of at Attachment

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

    An object capable of encoding EditorContent to given type.

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

    A generic encoder for encoding EditorContent. You may create encoders for individual types of contents in the Editor, and"},"Protocols/GridViewDelegate.html":{"name":"GridViewDelegate","abstract":"

    An object capable of handing GridView events

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

    An object capable of intercepting and modifying the text and attributes in an EditorView when registered with the EditorView.

    "},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE9exclusiveSivpZ":{"name":"exclusive","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE4highSivpZ":{"name":"high","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE6mediumSivpZ":{"name":"medium","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE3lowSivpZ":{"name":"low","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/UITextRange.html#/s:So11UITextRangeC6ProtonE9toNSRange2inSo01_E0VSgSo0A5Input_p_tF":{"name":"toNSRange(in:)","abstract":"

    Converts this range to NSRange. Returns nil if range cannot be converted.

    ","parent_name":"UITextRange"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6traitsSo0A24DescriptorSymbolicTraitsVvp":{"name":"traits","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6isBoldSbvp":{"name":"isBold","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE9isItalicsSbvp":{"name":"isItalics","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE12isMonoSpacedSbvp":{"name":"isMonoSpaced","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE12isAppleEmojiSbvp":{"name":"isAppleEmoji","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE9textStyleSo0a4TextD0avp":{"name":"textStyle","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE21isNonDynamicTextStyleSbvp":{"name":"isNonDynamicTextStyle","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE8contains5traitSbSo0A24DescriptorSymbolicTraitsV_tF":{"name":"contains(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE7toggled5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"toggled(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6adding5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"adding(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE8removing5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"removing(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/String.html#/s:SS6ProtonE11makeNSRange4fromSo01_C0VSnySS5IndexVG_tF":{"name":"makeNSRange(from:)","abstract":"

    Converts given Range to NSRange in this string.

    ","parent_name":"String"},"Extensions/String.html#/s:SS6ProtonE16rangeFromNSRange0B0SnySS5IndexVGSgSo01_D0V_tF":{"name":"rangeFromNSRange(range:)","abstract":"

    Created String Range from given NSRange. Returns nil if range cannot be converted.

    ","parent_name":"String"},"Extensions/String.html#/s:SS6ProtonE8rangesOf12characterSetSaySnySS5IndexVGG10Foundation09CharacterE0V_tF":{"name":"rangesOf(characterSet:)","abstract":"

    Returns ranges of given CharacterSet in this string.

    ","parent_name":"String"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE4zeroABvpZ":{"name":"zero","abstract":"

    Range with 0 location and length

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE19firstCharacterRangeABvp":{"name":"firstCharacterRange","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE18lastCharacterRangeABvp":{"name":"lastCharacterRange","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE12nextPositionABvp":{"name":"nextPosition","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE11endLocationSivp":{"name":"endLocation","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE11toTextRange9textInputSo06UITextE0CSgSo0hG0_p_tF":{"name":"toTextRange(textInput:)","abstract":"

    Converts the range to UITextRange in given UITextInput. Returns nil if the range is invalid in the UITextInput.

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE9isValidInySbSo11UITextInput_pF":{"name":"isValidIn(_:)","abstract":"

    Checks if the range is valid in given UITextInput

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE9shiftedByyABSiF":{"name":"shiftedBy(_:)","abstract":"

    Shifts the range with given shift value

    ","parent_name":"NSRange"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonEyABSScfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE9paragraphABvpZ":{"name":"paragraph","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE8viewOnlyABvpZ":{"name":"viewOnly","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE7newlineABvpZ":{"name":"newline","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE4textABvpZ":{"name":"text","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE7unknownABvpZ":{"name":"unknown","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/NSParagraphStyle.html#/s:So16NSParagraphStyleC6ProtonE016mutableParagraphB0So09NSMutableeB0Cvp":{"name":"mutableParagraphStyle","abstract":"

    Creates a mutable copy of current style

    ","parent_name":"NSParagraphStyle"},"Extensions/NSParagraphStyle.html#/s:So16NSParagraphStyleC6ProtonE14lineFormattingAC04LineE0Vvp":{"name":"lineFormatting","abstract":"

    Returns LineFormatting based on current style

    ","parent_name":"NSParagraphStyle"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE9textBlockABvpZ":{"name":"textBlock","abstract":"

    Applying this attribute makes the range of text act as a single block/unit.","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE16blockContentTypeABvpZ":{"name":"blockContentType","abstract":"

    Identifies block based attributes. A block acts as a container for other content types. For e.g. a Paragraph is a block content","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE17inlineContentTypeABvpZ":{"name":"inlineContentType","abstract":"

    Identifies inline content attributes. An inline acts as a content in another content types. For e.g. an emoji is an inline content","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE15backgroundStyleABvpZ":{"name":"backgroundStyle","abstract":"

    Additional style attribute for background color. Using this attribute in addition to backgroundColor attribute allows applying","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE8listItemABvpZ":{"name":"listItem","abstract":"

    Attribute denoting the range as a list item. This attribute enables use of ListTextProcessor to indent/outdent list","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE18skipNextListMarkerABvpZ":{"name":"skipNextListMarker","abstract":"

    When applied to a new line char alongside listItem attribute, skips the rendering of list marker on subsequent line.

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE16lockedAttributesABvpZ":{"name":"lockedAttributes","abstract":"

    Array of NSAttributedString.Key that must be locked in the applied range.

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE17asyncTextResolverABvpZ":{"name":"asyncTextResolver","abstract":"

    Undocumented

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html":{"name":"Key","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9asMutableSo019NSMutableAttributedB0Cvp":{"name":"asMutable","abstract":"

    Creates a mutable copy

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16addingAttributes_2toABSDySo0aB3KeyaypG_So8_NSRangeVSgtF":{"name":"addingAttributes(_:to:)","abstract":"

    Undocumented

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE17enumerateContents2ins11AnySequenceVyAC13EditorContentVGSo8_NSRangeVSg_tF":{"name":"enumerateContents(in:)","abstract":"

    Enumerates block contents in given range.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE23enumerateInlineContents2ins11AnySequenceVyAC13EditorContentVGSo8_NSRangeVSg_tF":{"name":"enumerateInlineContents(in:)","abstract":"

    Enumerates only inline content in given range.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16rangeOfCharacter4fromSo8_NSRangeVSg10Foundation0F3SetV_tF":{"name":"rangeOfCharacter(from:)","abstract":"

    Returns in range of CharacterSet from this string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9fullRangeSo8_NSRangeVvp":{"name":"fullRange","abstract":"

    Full range of this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16attachmentRangesSayAC10AttachmentC0D0_So8_NSRangeV5rangetGvp":{"name":"attachmentRanges","abstract":"

    Collection of all the attachments with containing ranges in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE8rangeFor10attachmentSo8_NSRangeVSgAC10AttachmentC_tF":{"name":"rangeFor(attachment:)","abstract":"

    Range of given attachment in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE8rangesOf12characterSetSaySo8_NSRangeVG10Foundation09CharacterG0V_tF":{"name":"rangesOf(characterSet:)","abstract":"

    Ranges of CharacterSet in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE26reverseAttributedSubstring4fromABSgSo8_NSRangeV_tF":{"name":"reverseAttributedSubstring(from:)","abstract":"

    Attributed substring in reverse direction.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE7rangeOf9attribute16startingLocation13reverseLookupSo8_NSRangeVSgSo0aB3Keya_SiSbtF":{"name":"rangeOf(attribute:startingLocation:reverseLookup:)","abstract":"

    Gets the next range of attribute starting at the given location in direction based on reverse lookup flag

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE7rangeOf9attribute2atSo8_NSRangeVSgSo0aB3Keya_SitF":{"name":"rangeOf(attribute:at:)","abstract":"

    Gets the complete range of attribute at the given location. The attribute is looked up in both forward and","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE14attributeValue3for2atxSgSo0aB3Keya_SitlF":{"name":"attributeValue(for:at:)","abstract":"

    Gets the value of attribute at the given location, if present.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9substring4fromSSSo8_NSRangeV_tF":{"name":"substring(from:)","abstract":"

    Alternative to attributedSubstring(from:_).string","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html":{"name":"NSAttributedString"},"Extensions/NSParagraphStyle.html":{"name":"NSParagraphStyle"},"Extensions/EditorContentName.html":{"name":"EditorContentName"},"Extensions/NSRange.html":{"name":"NSRange"},"Extensions/String.html":{"name":"String"},"Extensions/UIFont.html":{"name":"UIFont"},"Extensions/UITextRange.html":{"name":"UITextRange"},"Extensions/TextProcessingPriority.html":{"name":"TextProcessingPriority","abstract":"

    Undocumented

    "},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO5fixedyAC14CoreFoundation7CGFloatVcACmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO10fractionalyAC14CoreFoundation7CGFloatVcACmF":{"name":"fractional(_:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO5value7basedOn14CoreFoundation7CGFloatVAH_tF":{"name":"value(basedOn:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridViewError.html#/s:6Proton13GridViewErrorO26failedToInsertInFrozenRowsyA2CmF":{"name":"failedToInsertInFrozenRows","abstract":"

    Undocumented

    ","parent_name":"GridViewError"},"Enums/GridViewError.html#/s:6Proton13GridViewErrorO29failedToInsertInFrozenColumnsyA2CmF":{"name":"failedToInsertInFrozenColumns","abstract":"

    Undocumented

    ","parent_name":"GridViewError"},"Enums/Indentation.html#/s:6Proton11IndentationO6indentyA2CmF":{"name":"indent","abstract":"

    Undocumented

    ","parent_name":"Indentation"},"Enums/Indentation.html#/s:6Proton11IndentationO7outdentyA2CmF":{"name":"outdent","abstract":"

    Undocumented

    ","parent_name":"Indentation"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO7defaultyA2CmF":{"name":"default","abstract":"

    Default controlled via autolayout.

    ","parent_name":"EditorHeight"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO3maxyAC14CoreFoundation7CGFloatVcACmF":{"name":"max(_:)","abstract":"

    Maximum height editor is allowed to grow to before it starts scrolling

    ","parent_name":"EditorHeight"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO8infiniteyA2CmF":{"name":"infinite","abstract":"

    Boundless height.

    ","parent_name":"EditorHeight"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO4textyACSo08PREditorC4NameC_So18NSAttributedStringCtcACmF":{"name":"text(name:attributedString:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO10attachmentyACSo08PREditorC4NameC_AA10AttachmentCSo6UIViewCAA0hD0OtcACmF":{"name":"attachment(name:attachment:contentView:type:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO8viewOnlyyA2CmF":{"name":"viewOnly","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/AttachmentType.html#/s:6Proton14AttachmentTypeO5blockyA2CmF":{"name":"block","abstract":"

    Undocumented

    ","parent_name":"AttachmentType"},"Enums/AttachmentType.html#/s:6Proton14AttachmentTypeO6inlineyA2CmF":{"name":"inline","abstract":"

    Undocumented

    ","parent_name":"AttachmentType"},"Enums/EditorContentMode.html#/s:6Proton17EditorContentModeO6editoryA2CmF":{"name":"editor","abstract":"

    Undocumented

    ","parent_name":"EditorContentMode"},"Enums/EditorContentMode.html#/s:6Proton17EditorContentModeO8rendereryA2CmF":{"name":"renderer","abstract":"

    Undocumented

    ","parent_name":"EditorContentMode"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO5enteryA2CmF":{"name":"enter","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO9backspaceyA2CmF":{"name":"backspace","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO3tabyA2CmF":{"name":"tab","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/ListLineMarker.html#/s:6Proton14ListLineMarkerO6stringyACSo18NSAttributedStringCcACmF":{"name":"string(_:)","abstract":"

    Undocumented

    ","parent_name":"ListLineMarker"},"Enums/ListLineMarker.html#/s:6Proton14ListLineMarkerO5imageyACSo7UIImageC_So6CGSizeVtcACmF":{"name":"image(_:size:)","abstract":"

    Undocumented

    ","parent_name":"ListLineMarker"},"Enums/BackgroundMode.html#/s:6Proton14BackgroundModeO9matchTextyA2CmF":{"name":"matchText","abstract":"

    Background matches the height/width of text

    ","parent_name":"BackgroundMode"},"Enums/BackgroundMode.html#/s:6Proton14BackgroundModeO9matchLineyA2CmF":{"name":"matchLine","abstract":"

    Background matches entire line irrespective of font height/used character width in the given line

    ","parent_name":"BackgroundMode"},"Enums/RoundedCornerStyle.html#/s:6Proton18RoundedCornerStyleO8absoluteyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"absolute(value:)","abstract":"

    Rounding based on an absolute value for corner radii

    ","parent_name":"RoundedCornerStyle"},"Enums/RoundedCornerStyle.html#/s:6Proton18RoundedCornerStyleO8relativeyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"relative(percent:)","abstract":"

    Rounding based on relative percent value of the content height. For e.g. 50% would provide a capsule appearance","parent_name":"RoundedCornerStyle"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO12matchContentyA2CmF":{"name":"matchContent","abstract":"

    Matches the size of the content view of attachment. Content view must provide size to Attachment using didChangeBounds(:).

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO9fullWidthyA2CmF":{"name":"fullWidth","abstract":"

    Takes up full width of the containing EditorView. Resizes automatically when size of the container changes for e.g. when device is rotated. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO5fixedyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"fixed(width:)","abstract":"

    Fixed width attachment irrespective of content size of the contained view. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO5rangeyAC14CoreFoundation7CGFloatV_AGtcACmF":{"name":"range(minWidth:maxWidth:)","abstract":"

    Width of attachment is locked between the min and max. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO7percentyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"percent(width:)","abstract":"

    Width in percent based on the size of containing EditorView. Absolute value of width changes if the size of the container changes for e.g. when device is rotated. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AsyncTextResolvingResult.html#/s:6Proton24AsyncTextResolvingResultO5applyyACSo18NSAttributedStringC_So8_NSRangeVtcACmF":{"name":"apply(_:range:)","abstract":"

    Undocumented

    ","parent_name":"AsyncTextResolvingResult"},"Enums/AsyncTextResolvingResult.html#/s:6Proton24AsyncTextResolvingResultO7discardyA2CmF":{"name":"discard","abstract":"

    Undocumented

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

    Result type for async text resolution

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

    Rendering size of the Attachment

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

    Rounding style for backgroundStyle attribute

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

    Defines the mode for height/width used for the background for the text

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

    Marker for the list item

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

    Undocumented

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

    Content mode for Editor. This may be used while decoding the content for the Editor/Renderer to let the Decoder know"},"Enums/AttachmentType.html":{"name":"AttachmentType","abstract":"

    Type of attachment

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

    Type of EditorContent

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

    Defines the height for the Editor

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP4nameSSvp":{"name":"name","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton17ListTextProcessorCACycfc":{"name":"init()","abstract":"

    Initializes text processor.

    ","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton17ListTextProcessorC8prioritySivp":{"name":"priority","abstract":"

    Priority of the text processor.

    ","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP13shouldProcess_0deB2In011replacementB0SbAA10EditorViewC_So8_NSRangeVSStF":{"name":"shouldProcess(_:shouldProcessTextIn:replacementText:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP18processInterrupted6editor2atyAA10EditorViewC_So8_NSRangeVtF":{"name":"processInterrupted(editor:at:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP7process6editor5range14changeInLengthSbAA10EditorViewC_So8_NSRangeVSitF":{"name":"process(editor:range:changeInLength:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP22handleKeyWithModifiers6editor3key13modifierFlags5rangeyAA10EditorViewC_AA0mE0OSo013UIKeyModifierK0VSo8_NSRangeVtF":{"name":"handleKeyWithModifiers(editor:key:modifierFlags:range:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP10didProcess6editoryAA10EditorViewC_tF":{"name":"didProcess(editor:)","parent_name":"ListTextProcessor"},"Classes/GridView.html#/s:6Proton8GridViewC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    Delegate for GridView which can be used to handle cell specific EditorView events

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC30isColumnResizingHandlesVisibleSbvp":{"name":"isColumnResizingHandlesVisible","abstract":"

    Determines if column resizing handles are visible or not.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    Bounds observer for the GridView. Typically, this will be the Attachment that hosts the GridView.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14selectionColorSo7UIColorCSgvp":{"name":"selectionColor","abstract":"

    Selection color for the GridView. Defaults to tintColor

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10isSelectedSbvp":{"name":"isSelected","abstract":"

    Determines if GridView is selected or not.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC22isFreeScrollingEnabledSbvp":{"name":"isFreeScrollingEnabled","abstract":"

    Allows scrolling grid in any direction. Defaults to false","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC20frozenColumnMaxIndexSiSgvp":{"name":"frozenColumnMaxIndex","abstract":"

    Maximum index up till which columns are frozen. Columns are frozen from 0 to this index value.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC17frozenRowMaxIndexSiSgvp":{"name":"frozenRowMaxIndex","abstract":"

    Maximum index up till which rows are frozen. Rows are frozen from 0 to this index value.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC21containsFrozenColumnsSbvp":{"name":"containsFrozenColumns","abstract":"

    Determines if there are any frozen columns in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC18containsFrozenRowsSbvp":{"name":"containsFrozenRows","abstract":"

    Determines if there are any frozen rows in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5cellsSayAA0B4CellCGvp":{"name":"cells","abstract":"

    Collection of cells contained in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC13selectedCellsSayAA0B4CellCGvp":{"name":"selectedCells","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC15numberOfColumnsSivp":{"name":"numberOfColumns","abstract":"

    Number of columns in the GridView.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12numberOfRowsSivp":{"name":"numberOfRows","abstract":"

    Number of rows in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6configAcA0B13ConfigurationV_tcfc":{"name":"init(config:)","abstract":"

    Initializes GridView using the provided configuration.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6config5cellsAcA0B13ConfigurationV_SayAA0B4CellCGtcfc":{"name":"init(config:cells:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC17setColumnResizingyySbF":{"name":"setColumnResizing(_:)","abstract":"

    Enables or disables column resizing

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC24isCellSelectionMergeableySbSayAA0bE0CGF":{"name":"isCellSelectionMergeable(_:)","abstract":"

    Determines if the collection of cells can be merged. For cells to be mergable, they need to","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5merge5cellsySayAA0B4CellCG_tF":{"name":"merge(cells:)","abstract":"

    Merges the cells if the collection is mergeable.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5split4cellyAA0B4CellC_tF":{"name":"split(cell:)","abstract":"

    Splits the cell into original constituent cells from earlier Merge operation.","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC9insertRow2at13configurations6ResultOySayAA0B4CellCGAA0bC5ErrorOGSi_AA0bE13ConfigurationVtF":{"name":"insertRow(at:configuration:)","abstract":"

    Inserts a new row at given index.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12insertColumn2at13configurations6ResultOySayAA0B4CellCGAA0bC5ErrorOGSi_AA0bE13ConfigurationVtF":{"name":"insertColumn(at:configuration:)","abstract":"

    Inserts a new column at given index.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC9deleteRow2atySi_tF":{"name":"deleteRow(at:)","abstract":"

    Deletes the row at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12deleteColumn2atySi_tF":{"name":"deleteColumn(at:)","abstract":"

    Deletes the column at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC13freezeColumns4upToySi_tF":{"name":"freezeColumns(upTo:)","abstract":"

    Freezes all the columns from 0 to the index provided

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10freezeRows4upToySi_tF":{"name":"freezeRows(upTo:)","abstract":"

    Freezes all the rows from 0 to the index provided

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC15unfreezeColumnsyyF":{"name":"unfreezeColumns()","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12unfreezeRowsyyF":{"name":"unfreezeRows()","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC11collapseRow2atySi_tF":{"name":"collapseRow(at:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6cellAt8rowIndex06columnG0AA0B4CellCSgSi_SitF":{"name":"cellAt(rowIndex:columnIndex:)","abstract":"

    Gets the cell at given row and column index. Indexes may be contained in a merged cell.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14scrollToCellAt8rowIndex06columnI08animatedySi_SiSbtF":{"name":"scrollToCellAt(rowIndex:columnIndex:animated:)","abstract":"

    Scrolls the cell at given index into viewable area. Indexes may be contained in a merged cell.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10applyStyle_5toRowyAA0b4CellE0V_SitF":{"name":"applyStyle(_:toRow:)","abstract":"

    Applies style to row at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10applyStyle_8toColumnyAA0b4CellE0V_SitF":{"name":"applyStyle(_:toColumn:)","abstract":"

    Applies style to column at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/c:@CM@Proton@objc(cs)GridView(im)scrollViewDidScroll:":{"name":"scrollViewDidScroll(_:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridCell.html#/s:6Proton8GridCellC7rowSpanSaySiGvp":{"name":"rowSpan","abstract":"

    Row indexes spanned by the cell. In case of a merged cell, this will contain all the rows= indexes which are merged.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10columnSpanSaySiGvp":{"name":"columnSpan","abstract":"

    Column indexes spanned by the cell. In case of a merged cell, this will contain all the column indexes which are merged.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC5frameSo6CGRectVvp":{"name":"frame","abstract":"

    Frame of the cell within GridView

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10isSelectedSbvp":{"name":"isSelected","abstract":"

    Sets the cell selected

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC6editorAA10EditorViewCvp":{"name":"editor","abstract":"

    Editor within the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC12isSplittableSbvp":{"name":"isSplittable","abstract":"

    Denotes if the cell can be split i.e. is a merged cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11contentSizeSo6CGSizeVvp":{"name":"contentSize","abstract":"

    Content size of the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11contentViewSo6UIViewCvp":{"name":"contentView","abstract":"

    Content view for the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC9gridStyleAA0bE0Vvp":{"name":"gridStyle","abstract":"

    Undocumented

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC7rowSpan06columnE013initialHeight5style9gridStyleACSaySiG_AI14CoreFoundation7CGFloatVAA0bcK0VAA0bK0Vtcfc":{"name":"init(rowSpan:columnSpan:initialHeight:style:gridStyle:)","abstract":"

    Undocumented

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC8setFocusyyF":{"name":"setFocus()","abstract":"

    Sets the focus in the Editor within the cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11removeFocusyyF":{"name":"removeFocus()","abstract":"

    Removes the focus from the Editor within the cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10applyStyleyyAA0bcE0VF":{"name":"applyStyle(_:)","abstract":"

    Applies the given style to the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton15BoundsObservingP09didChangeB0_03oldB0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_17didReceiveFocusAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didReceiveFocusAt:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_16didLoseFocusFromyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didLoseFocusFrom:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_16didTapAtLocation14characterRangeyAA0bC0C_So7CGPointVSo8_NSRangeVSgtF":{"name":"editor(_:didTapAtLocation:characterRange:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_20didChangeSelectionAt10attributes11contentTypeyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCtF":{"name":"editor(_:didChangeSelectionAt:attributes:contentType:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_13didReceiveKey2atyAA0bC0C_AA0bH0OSo8_NSRangeVtF":{"name":"editor(_:didReceiveKey:at:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"GridCell"},"Classes/EditorCommandExecutor.html#/s:6Proton21EditorCommandExecutorC7contextAcA0B11ViewContextC_tcfc":{"name":"init(context:)","abstract":"

    Initializes the EditorCommandExecutor

    ","parent_name":"EditorCommandExecutor"},"Classes/EditorCommandExecutor.html#/s:6Proton21EditorCommandExecutorC7executeyyAA0bC0_pF":{"name":"execute(_:)","abstract":"

    Executes the given command on the active EditorView having the same Context as the Command Executor. EditorCommand will be executed only","parent_name":"EditorCommandExecutor"},"Classes/UnderlineCommand.html#/s:6Proton16UnderlineCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"UnderlineCommand"},"Classes/StrikethroughCommand.html#/s:6Proton20StrikethroughCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"StrikethroughCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListOutdentCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandC4nameAA0D4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListOutdentCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Outdents a list item if it supports reversing indentation. When applied on an item at first level, it will remove item from the list.","parent_name":"ListOutdentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListIndentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandC4nameAA0D4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListIndentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Indents a list item if it supports indentation (e.g. unsupported item may mean item at first level)","parent_name":"ListIndentCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC4nameAA0C4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC14attributeValueypSgvp":{"name":"attributeValue","abstract":"

    Value to be set for attribute .listItem when applying to a range of text.","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Executes the command with value of attributeValue for .listItem attribute. If the attributeValue is nil, executing","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC7execute2on14attributeValueyAA10EditorViewC_ypSgtF":{"name":"execute(on:attributeValue:)","abstract":"

    Executes the command with value of attributeValue for .listItem attribute.

    ","parent_name":"ListCommand"},"Classes/ItalicsCommand.html#/s:6Proton14ItalicsCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ItalicsCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton22FontTraitToggleCommandC5traitSo30UIFontDescriptorSymbolicTraitsVvp":{"name":"trait","abstract":"

    Undocumented

    ","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton22FontTraitToggleCommandC4name5traitAcA0E4NameV_So30UIFontDescriptorSymbolicTraitsVtcfc":{"name":"init(name:trait:)","abstract":"

    Undocumented

    ","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","parent_name":"FontTraitToggleCommand"},"Classes/BoldCommand.html#/s:6Proton11BoldCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"BoldCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton23AttributesToggleCommandC10attributesSDySo21NSAttributedStringKeyaypGvp":{"name":"attributes","abstract":"

    Undocumented

    ","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton23AttributesToggleCommandC4name10attributesAcA0D4NameV_SDySo21NSAttributedStringKeyaypGtcfc":{"name":"init(name:attributes:)","abstract":"

    Undocumented

    ","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","parent_name":"AttributesToggleCommand"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC2idSSvp":{"name":"id","abstract":"

    Identifies the EditorViewContextuniquely.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC4nameSSvp":{"name":"name","abstract":"

    Friendly name for the context. It is possible to create multiple EditorViewContext using the same name.","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    EditorView delegate at context level. This delegate will be notified about events in all the Editors that share this particular context.","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC6sharedACvpZ":{"name":"shared","abstract":"

    Default shared context. Use this in case there is only a single EditorView on the screen at the root level.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC06activebC0AA0bC0CSgvp":{"name":"activeEditorView","abstract":"

    EditorView for this context that is currently active.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC4nameACSS_tcfc":{"name":"init(name:)","abstract":"

    Initializes a new context

    ","parent_name":"EditorViewContext"},"Classes/EditorView.html#/s:6Proton10EditorViewC06editorC7ContextAA0bcE0Cvp":{"name":"editorViewContext","abstract":"

    Context for the current Editor

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textInteractionsSaySo17UITextInteractionCGvp":{"name":"textInteractions","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC04textC8GesturesSaySo19UIGestureRecognizerCGvp":{"name":"textViewGestures","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC26textDragInteractionEnabledSbvp":{"name":"textDragInteractionEnabled","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)bounds":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    An object interested in responding to editing and focus related events in the EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC22listFormattingProviderAA0b4ListeF0_pSgvp":{"name":"listFormattingProvider","abstract":"

    List formatting provider to be used for rendering lists in the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18registeredCommandsSayAA0B7Command_pGSgvp":{"name":"registeredCommands","abstract":"

    List of commands supported by the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18asyncTextResolversSayAA05AsyncE9Resolving_pGvp":{"name":"asyncTextResolvers","abstract":"

    Async Text Resolvers supported by the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5frame7context16allowAutogrowingACSo6CGRectV_AA0bC7ContextCSbtcfc":{"name":"init(frame:context:allowAutogrowing:)","abstract":"

    Initializes the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC020editorInputAccessoryC0So6UIViewCSgvp":{"name":"editorInputAccessoryView","abstract":"

    Input accessory view to be used

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC011editorInputC0So6UIViewCSgvp":{"name":"editorInputView","abstract":"

    Input view to be used

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

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20registeredProcessorsSayAA14TextProcessing_pGvp":{"name":"registeredProcessors","abstract":"

    List of all the registered TextProcessors in the EditorView. This may be used by nested EditorView to inherit all the","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17selectedTextRangeSo06UITextF0CSgvp":{"name":"selectedTextRange","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15placeholderTextSo18NSAttributedStringCSgvp":{"name":"placeholderText","abstract":"

    Placeholder text for the EditorView. The value can contain any attributes which is natively","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12contentInsetSo12UIEdgeInsetsVvp":{"name":"contentInset","abstract":"

    Gets or sets insets for additional scroll area around the content. Default value is UIEdgeInsetsZero.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC29verticalScrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"verticalScrollIndicatorInsets","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19keyboardDismissModeSo08UIScrollc8KeyboardeF0Vvp":{"name":"keyboardDismissMode","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15isScrollEnabledSbvp":{"name":"isScrollEnabled","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18textContainerInsetSo12UIEdgeInsetsVvp":{"name":"textContainerInset","abstract":"

    Gets or sets the insets for the text container’s layout area within the editor’s content area

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17dataDetectorTypesSo06UIDataeF0Vvp":{"name":"dataDetectorTypes","abstract":"

    The types of data converted to tappable URLs in the editor view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13contentLengthSivp":{"name":"contentLength","abstract":"

    Length of content within the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC10isEditableSbvp":{"name":"isEditable","abstract":"

    Determines if the EditorView is editable or not.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC7isEmptySbvp":{"name":"isEmpty","abstract":"

    Determines if the editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17currentLayoutLineAA0bF0VSgvp":{"name":"currentLayoutLine","abstract":"

    Current line information based the caret position or selected range. If the selected range spans across multiple","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15firstLayoutLineAA0bF0VSgvp":{"name":"firstLayoutLine","abstract":"

    First line of content based on layout in the Editor. Nil if editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14lastLayoutLineAA0bF0VSgvp":{"name":"lastLayoutLine","abstract":"

    Last line of content based on layout in the Editor. Nil if editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12selectedTextSo18NSAttributedStringCvp":{"name":"selectedText","abstract":"

    Selected text in the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)backgroundColor":{"name":"backgroundColor","abstract":"

    Background color for the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)font":{"name":"font","abstract":"

    Default font to be used by the Editor. A font may be overridden on whole or part of content in EditorView by an EditorCommand or","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)paragraphStyle":{"name":"paragraphStyle","abstract":"

    Default paragraph style to be used by the Editor. The style may be overridden on whole or part of content in","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)textColor":{"name":"textColor","abstract":"

    Default text color to be used by the Editor. The color may be overridden on whole or part of content in","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC9maxHeightAA0bE0Ovp":{"name":"maxHeight","abstract":"

    Maximum height that the EditorView can expand to. After reaching the maximum specified height, the editor becomes scrollable.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC24forceApplyAttributedTextSbvp":{"name":"forceApplyAttributedText","abstract":"

    Forces setting attributed text in EditorView even if it is not","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14attributedTextSo18NSAttributedStringCvp":{"name":"attributedText","abstract":"

    Text to be set in the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13selectedRangeSo8_NSRangeVvp":{"name":"selectedRange","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16typingAttributesSDySo21NSAttributedStringKeyaypGvp":{"name":"typingAttributes","abstract":"

    Typing attributes to be used. Automatically resets when the selection changes.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    An object interested in observing the changes in bounds of the Editor, typically an Attachment.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13contentOffsetSo7CGPointVvp":{"name":"contentOffset","abstract":"

    Gets and sets the content offset.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18linkTextAttributesSDySo21NSAttributedStringKeyaypGSgvp":{"name":"linkTextAttributes","abstract":"

    The attributes to apply to links.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12textEndRangeSo8_NSRangeVvp":{"name":"textEndRange","abstract":"

    Range of end of text in the EditorView. The range has always has length of 0.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC25isContainedInAnAttachmentSbvp":{"name":"isContainedInAnAttachment","abstract":"

    Determines if the current Editor is contained in an attachment

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11contentNameSo015PREditorContentE0CSgvp":{"name":"contentName","abstract":"

    Name of the content if the Editor is contained within an Attachment.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12visibleRangeSo8_NSRangeVvp":{"name":"visibleRange","abstract":"

    Returns the visible text range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19containerAttachmentAA0E0CSgvp":{"name":"containerAttachment","abstract":"

    Attachment containing the current Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12nestingLevelSivp":{"name":"nestingLevel","abstract":"

    Nesting level of current Editor within other attachments containing Editors.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC04rootB0ACvp":{"name":"rootEditor","abstract":"

    Returns the root editor of the current Editor. Returns self where the current editor is not contained within an Attachment.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC06parentB0ACSgvp":{"name":"parentEditor","abstract":"

    EditorView containing the current EditorView in an Attachment

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5clearyyF":{"name":"clear()","abstract":"

    Clears the contents in the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC22autocapitalizationTypeSo024UITextAutocapitalizationE0Vvp":{"name":"autocapitalizationType","abstract":"

    The auto-capitalization style for the text object.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18autocorrectionTypeSo020UITextAutocorrectionE0Vvp":{"name":"autocorrectionType","abstract":"

    The autocorrection style for the text object.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17spellCheckingTypeSo011UITextSpelleF0Vvp":{"name":"spellCheckingType","abstract":"

    The spell-checking style for the text object.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15smartQuotesTypeSo011UITextSmarteF0Vvp":{"name":"smartQuotesType","abstract":"

    The configuration state for smart quotes.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15smartDashesTypeSo011UITextSmarteF0Vvp":{"name":"smartDashesType","abstract":"

    The configuration state for smart dashes.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC21smartInsertDeleteTypeSo011UITextSmartefG0Vvp":{"name":"smartInsertDeleteType","abstract":"

    The configuration state for the smart insertion and deletion of space characters.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12keyboardTypeSo010UIKeyboardE0Vvp":{"name":"keyboardType","abstract":"

    The keyboard style associated with the text object.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18keyboardAppearanceSo010UIKeyboardE0Vvp":{"name":"keyboardAppearance","abstract":"

    The appearance style of the keyboard that is associated with the text object

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13returnKeyTypeSo08UIReturneF0Vvp":{"name":"returnKeyType","abstract":"

    The visible title of the Return key.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC29enablesReturnKeyAutomaticallySbvp":{"name":"enablesReturnKeyAutomatically","abstract":"

    A Boolean value indicating whether the Return key is automatically enabled when the user is entering text.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17isSecureTextEntrySbvp":{"name":"isSecureTextEntry","abstract":"

    Identifies whether the text object should disable text copying and in some cases hide the text being entered.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15textContentTypeSo06UITexteF0aSgvp":{"name":"textContentType","abstract":"

    The semantic meaning expected by a text input area.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC27allowsEditingTextAttributesSbvp":{"name":"allowsEditingTextAttributes","abstract":"

    A Boolean value indicating whether the text view allows the user to edit style information.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12isSelectableSbvp":{"name":"isSelectable","abstract":"

    A Boolean value indicating whether the receiver is selectable.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textDragDelegateSo06UITexteF0_pSgvp":{"name":"textDragDelegate","abstract":"

    A text drag delegate object for customizing the drag source behavior of a text view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textDropDelegateSo06UITexteF0_pSgvp":{"name":"textDropDelegate","abstract":"

    The text drop delegate for interacting with a drop activity in the text view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)didMoveToWindow":{"name":"didMoveToWindow()","abstract":"

    Subclasses can override it to perform additional actions whenever the window changes.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)sizeThatFits:":{"name":"sizeThatFits(_:)","abstract":"

    Asks the view to calculate and return the size that best fits the specified size.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)becomeFirstResponder":{"name":"becomeFirstResponder()","abstract":"

    Asks UIKit to make this object the first responder in its window.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11markedRangeSo8_NSRangeVSgvp":{"name":"markedRange","abstract":"

    The range of currently marked text in a document.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13setAttributes_2atySDySo21NSAttributedStringKeyaypG_So8_NSRangeVtF":{"name":"setAttributes(_:at:)","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC21getFullAttributedText5using2inSo18NSAttributedStringCAA27AttachmentContentIdentifierV_So8_NSRangeVSgtF":{"name":"getFullAttributedText(using:in:)","abstract":"

    Returns the full attributed text contained in the EditorView along with the ones in editors nested in contained Attachments.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC27setNeedsAsyncTextResolutionyyF":{"name":"setNeedsAsyncTextResolution()","abstract":"

    Sets async text resolution to resolve on next text layout pass.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC24resolveAsyncTextIfNeededyyF":{"name":"resolveAsyncTextIfNeeded()","abstract":"

    Invokes async text resolution to resolve on demand.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16rangeOfCharacter2atSo8_NSRangeVSgSo7CGPointV_tF":{"name":"rangeOfCharacter(at:)","abstract":"

    Returns the range of character at the given point

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19contentLinesInRangeySayAA0B4LineVGSo8_NSRangeVF":{"name":"contentLinesInRange(_:)","abstract":"

    Gets the lines separated by newline characters from the given range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19previousContentLine4fromAA0bF0VSgSi_tF":{"name":"previousContentLine(from:)","abstract":"

    Gets the previous line of content from the given location. A content line is defined by the presence of a","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15nextContentLine4fromAA0bF0VSgSi_tF":{"name":"nextContentLine(from:)","abstract":"

    Gets the next line of content from the given location. A content line is defined by the presence of a","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15layoutLineAfteryAA0bE0VSgAFF":{"name":"layoutLineAfter(_:)","abstract":"

    Gets the line preceding the given line. Nil if the given line is invalid or is first line

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16layoutLineBeforeyAA0bE0VSgAFF":{"name":"layoutLineBefore(_:)","abstract":"

    Gets the line before the given line. Nil if the given line is invalid or is first line

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5rects3forSaySo6CGRectVGSo8_NSRangeV_tF":{"name":"rects(for:)","abstract":"

    Returns the rectangles for line fragments spanned by the range. Based on the span of the range,","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC9caretRect3forSo6CGRectVSi_tF":{"name":"caretRect(for:)","abstract":"

    Returns the caret rectangle for given position in the editor content.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC4word2atSo18NSAttributedStringCSgSi_tF":{"name":"word(at:)","abstract":"

    Gets the word from text at given location in editor content

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17attributeRangeFor_2atSo8_NSRangeVSgSo21NSAttributedStringKeya_SitF":{"name":"attributeRangeFor(_:at:)","abstract":"

    Gets the full range of attribute at given location.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14deleteBackwardyyF":{"name":"deleteBackward()","abstract":"

    Deletes text backwards

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16insertAttachment2in10attachmentySo8_NSRangeV_AA0E0CtF":{"name":"insertAttachment(in:attachment:)","abstract":"

    Inserts an Attachment in the EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8setFocusyyF":{"name":"setFocus()","abstract":"

    Sets the focus in the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11resignFocusyyF":{"name":"resignFocus()","abstract":"

    Makes the EditorView lose focus.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20scrollRangeToVisibleyySo8_NSRangeVF":{"name":"scrollRangeToVisible(_:)","abstract":"

    Makes the EditorView scroll to given range such that it is visible. No-op if the range is already visible.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19scrollRectToVisible_8animatedySo6CGRectV_SbtF":{"name":"scrollRectToVisible(_:animated:)","abstract":"

    Makes the EditorView scroll to given range such that it is visible. No-op if the range is already visible.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8contents2inSayAA0B7ContentVGSo8_NSRangeVSg_tF":{"name":"contents(in:)","abstract":"

    Gets the contents within the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17transformContents2in5usingSay11EncodedTypeQzGSo8_NSRangeVSg_xtAA0B15ContentEncodingRzlF":{"name":"transformContents(in:using:)","abstract":"

    Transforms EditorContent into given type. This function can also be used to encode content into a different type for e.g. encoding the contents to JSON. Encoding","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17replaceCharacters2in4withySo8_NSRangeV_So18NSAttributedStringCtF":{"name":"replaceCharacters(in:with:)","abstract":"

    Replaces the given range of content with the attributedString provided.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17replaceCharacters2in4withySo8_NSRangeV_SStF":{"name":"replaceCharacters(in:with:)","abstract":"

    Replaces the characters in the given range with the string provided.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16appendCharactersyySo18NSAttributedStringCF":{"name":"appendCharacters(_:)","abstract":"

    Appends the given attributed text to the end of content in EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16appendCharactersyySSF":{"name":"appendCharacters(_:)","abstract":"

    Appends the given attributed text to the end of content in EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17registerProcessoryyAA14TextProcessing_pF":{"name":"registerProcessor(_:)","abstract":"

    Registers the given text processor with the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19unregisterProcessoryyAA14TextProcessing_pF":{"name":"unregisterProcessor(_:)","abstract":"

    Unregisters the given text processor from the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18registerProcessorsyySayAA14TextProcessing_pGF":{"name":"registerProcessors(_:)","abstract":"

    Registers the given text processors with the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20unregisterProcessorsyySayAA14TextProcessing_pGF":{"name":"unregisterProcessors(_:)","abstract":"

    Unregisters the given text processors from the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16registerCommandsyySayAA0B7Command_pGF":{"name":"registerCommands(_:)","abstract":"

    Registers the given commands with the Editor. Only registered commands can be executed if any is added to the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18unregisterCommandsyySayAA0B7Command_pGF":{"name":"unregisterCommands(_:)","abstract":"

    Unregisters the given commands from the Editor. When all commands are unregistered, any command can be executed on the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15registerCommandyyAA0bE0_pF":{"name":"registerCommand(_:)","abstract":"

    Registers the given command with the Editor. Only registered commands can be executed if any is added to the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17unregisterCommandyyAA0bE0_pF":{"name":"unregisterCommand(_:)","abstract":"

    Unregisters the given command from the Editor. When all commands are unregistered, any command can be executed on the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)canPerformAction:withSender:":{"name":"canPerformAction(_:withSender:)","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20canPerformMenuAction_10withSenderSb10ObjectiveC8SelectorV_ypSgtF":{"name":"canPerformMenuAction(_:withSender:)","abstract":"

    Determines if the given menu action can be invoked.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5paste16attributedString4intoSbSo012NSAttributedF0C_So8_NSRangeVtF":{"name":"paste(attributedString:into:)","abstract":"

    This method attempt to simulate the paste method but with explicitly provided attributed string and insertion range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13addAttributes_2atySDySo21NSAttributedStringKeyaypG_So8_NSRangeVtF":{"name":"addAttributes(_:at:)","abstract":"

    Adds given attributes to the range provided. If the range already contains a value for an attribute being provided,","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16removeAttributes_2atySaySo21NSAttributedStringKeyaG_So8_NSRangeVtF":{"name":"removeAttributes(_:at:)","abstract":"

    Removes the given attributes from the range provided. If the attribute does not exist in the range, it will be a no-op.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12addAttribute_5value2atySo21NSAttributedStringKeya_ypSo8_NSRangeVtF":{"name":"addAttribute(_:value:at:)","abstract":"

    Adds given attribute to the range provided. If the attribute already exists in the range, it will be overwritten with the new value provided here.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15removeAttribute_2atySo21NSAttributedStringKeya_So8_NSRangeVtF":{"name":"removeAttribute(_:at:)","abstract":"

    Removes the attribute from given range. If the attribute does not exist in the range, it is a no-op.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16resolveAsyncTextyyF":{"name":"resolveAsyncText()","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19isCommandRegisteredySbAA0E4NameVF":{"name":"isCommandRegistered(_:)","abstract":"

    Determines if the given command can be executed on the current editor. The command is allowed to be executed if","parent_name":"EditorView"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Background color

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC013roundedCornerC0AA07RoundedeC0Ovp":{"name":"roundedCornerStyle","abstract":"

    Rounding style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6borderAA06BorderC0CSgvp":{"name":"border","abstract":"

    Optional border style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6shadowAA06ShadowC0CSgvp":{"name":"shadow","abstract":"

    Optional shadow style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC18hasSquaredOffJoinsSbvp":{"name":"hasSquaredOffJoins","abstract":"

    Determines if the background has squared off joins at the point of wrapping of content.","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC10heightModeAA0bE0Ovp":{"name":"heightMode","abstract":"

    Defines if the background should be drawn based on height of text range with style, or that of the height of line fragment containing","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC9widthModeAA0bE0Ovp":{"name":"widthMode","abstract":"

    Defines if the background should be drawn based on width of text range with style, or that of the entire width of line fragment containing","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6insetsSo12UIEdgeInsetsVvp":{"name":"insets","abstract":"

    Insets for drawn background. Defaults to .zero

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC5color013roundedCornerC06border6shadow18hasSquaredOffJoins10heightMode05widthN06insetsACSo7UIColorC_AA07RoundedfC0OAA06BorderC0CSgAA06ShadowC0CSgSbAA0bN0OAWSo12UIEdgeInsetsVtcfc":{"name":"init(color:roundedCornerStyle:border:shadow:hasSquaredOffJoins:heightMode:widthMode:insets:)","abstract":"

    Undocumented

    ","parent_name":"BackgroundStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Color of border

    ","parent_name":"BorderStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC9lineWidth14CoreFoundation7CGFloatVvp":{"name":"lineWidth","abstract":"

    Width of the border

    ","parent_name":"BorderStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC9lineWidth5colorAC14CoreFoundation7CGFloatV_So7UIColorCtcfc":{"name":"init(lineWidth:color:)","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Color of the shadow

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC6offsetSo6CGSizeVvp":{"name":"offset","abstract":"

    Shadow offset

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC4blur14CoreFoundation7CGFloatVvp":{"name":"blur","abstract":"

    Shadow blur

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC5color6offset4blurACSo7UIColorC_So6CGSizeV14CoreFoundation7CGFloatVtcfc":{"name":"init(color:offset:blur:)","abstract":"

    Undocumented

    ","parent_name":"ShadowStyle"},"Classes/Attachment.html#/s:6Proton10AttachmentC18selectBeforeDeleteSbvp":{"name":"selectBeforeDelete","abstract":"

    Governs if the attachment should be selected before being deleted. When true, tapping the backspace key the first time on range containing Attachment will only","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6stringSo18NSAttributedStringCvp":{"name":"string","abstract":"

    Attributed string representation of the Attachment. This can be used directly to replace a range of text in EditorView

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC4nameSo19PREditorContentNameCSgvp":{"name":"name","abstract":"

    Name of the content contained within the Attachment

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC14contentEditorsSayAA10EditorViewCGvp":{"name":"contentEditors","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC19containerEditorViewAA0dE0CSgvp":{"name":"containerEditorView","abstract":"

    EditorView containing this attachment

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC14offsetProviderAA0B15OffsetProviding_pSgvp":{"name":"offsetProvider","abstract":"

    Offsets for the attachment. Can be used to align attachment with the text. Defaults to .zero

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC20containerContentNameSo08PREditordE0CSgvp":{"name":"containerContentName","abstract":"

    Name of the content for the EditorView

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC11contentViewSo6UIViewCSgvp":{"name":"contentView","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC15containerBoundsSo6CGRectVSgvp":{"name":"containerBounds","abstract":"

    Bounds of the container

    ","parent_name":"Attachment"},"Classes/Attachment.html#/c:@M@Proton@objc(cs)Attachment(py)bounds":{"name":"bounds","abstract":"

    The bounds rectangle, which describes the attachment’s location and size in its own coordinate system.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC5imageAcA0B5ImageV_tcfc":{"name":"init(image:)","abstract":"

    Initializes an attachment with the image provided.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC_4sizeAcA0B15TypeIdentifying_AA013EditorContentE0So6UIViewCXc_AA0B4SizeOtcfc":{"name":"init(_:size:)","abstract":"

    Initializes the attachment with the given content view

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC15didChangeBounds_03oldE0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","abstract":"

    Causes invalidation of layout of the attachment when the containing view bounds are changed

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC19removeFromContaineryyF":{"name":"removeFromContainer()","abstract":"

    Removes this attachment from the EditorView it is contained in.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC16rangeInContainerSo8_NSRangeVSgyF":{"name":"rangeInContainer()","abstract":"

    Range of this attachment in it’s container

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC32addedAttributesOnContainingRange16rangeInContainer10attributesySo8_NSRangeV_SDySo21NSAttributedStringKeyaypGtF":{"name":"addedAttributesOnContainingRange(rangeInContainer:attributes:)","abstract":"

    Invoked when attributes are added in the containing EditorView in the range of string in which this attachment is contained.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC36removedAttributesFromContainingRange16rangeInContainer10attributesySo8_NSRangeV_SaySo21NSAttributedStringKeyaGtF":{"name":"removedAttributesFromContainingRange(rangeInContainer:attributes:)","parent_name":"Attachment"},"Classes/Attachment.html#/c:@M@Proton@objc(cs)Attachment(im)attachmentBoundsForTextContainer:proposedLineFragment:glyphPosition:characterIndex:":{"name":"attachmentBounds(for:proposedLineFragment:glyphPosition:characterIndex:)","abstract":"

    Returns the calculated bounds for the attachment based on size rule and content view provided during initialization.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6update4withyAA0B5ImageV_tF":{"name":"update(with:)","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6update_4sizeyAA0B15TypeIdentifying_AA013EditorContentF0So6UIViewCXc_AA0B4SizeOtF":{"name":"update(_:size:)","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC40getFullTextRangeIdentificationAttributesSDySo21NSAttributedStringKeyaypGyF":{"name":"getFullTextRangeIdentificationAttributes()","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC16invalidateLayoutyyF":{"name":"invalidateLayout()","abstract":"

    Invalidates the current layout and triggers a layout update.

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

    An attachment can be used as a container for any view object. Based on the AttachmentSize provided, the attachment automatically renders itself alongside the text in EditorView."},"Classes/ShadowStyle.html":{"name":"ShadowStyle","abstract":"

    Shadow style for backgroundStyle attribute

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

    Border style for backgroundStyle attribute

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

    Style for background color attribute. Adding backgroundStyle attribute will add border, background and shadow"},"Classes/EditorView.html":{"name":"EditorView","abstract":"

    A scrollable, multiline text region capable of resizing itself based of the height of the content. Maximum height of EditorView"},"Classes/EditorViewContext.html":{"name":"EditorViewContext","abstract":"

    Describes the context for the EditorView. A context is used to execute the commands using EditorCommandExecutor. In a typical scenario, where there are"},"Classes/AttributesToggleCommand.html":{"name":"AttributesToggleCommand","abstract":"

    Editor command that toggles given attributes in selected range in the Editor.

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

    Editor command that toggles Bold attribute to the selected range in the Editor.

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

    Editor command that toggles given font trait to the selected range in the Editor.

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

    Editor command that toggles Italics attribute to the selected range in the Editor.

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

    Command that can be used to toggle list attributes of selected range of text."},"Classes/ListIndentCommand.html":{"name":"ListIndentCommand","abstract":"

    Command that can be used to toggle list indentation of selected range of text.

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

    Command that can be used to toggle list indentation of selected range of text.

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

    Undocumented

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

    Undocumented

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

    EditorCommandExecutor manages all the EditorView in the main EditorView. Sub editors may have been added as Attachment in the EditorView."},"Classes/GridCell.html":{"name":"GridCell","abstract":"

    Denotes a cell in the GridView

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

    A view that provides a tabular structure where each cell is an EditorView."},"Classes/ListTextProcessor.html":{"name":"ListTextProcessor","abstract":"

    Text process capable of processing keyboard inputs specific to lists. ListTextProcessor only works after a range of text"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions 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.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/Proton.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/Proton.docset/Contents/Resources/Documents/undocumented.json index 713783b4..30ca0f82 100644 --- a/docs/docsets/Proton.docset/Contents/Resources/Documents/undocumented.json +++ b/docs/docsets/Proton.docset/Contents/Resources/Documents/undocumented.json @@ -30,25 +30,39 @@ }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Attachment/Attachment.swift", - "line": 157, + "line": 77, + "symbol": "Attachment.contentEditors", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Attachment/Attachment.swift", + "line": 163, "symbol": "Attachment.contentView", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Attachment/Attachment.swift", - "line": 410, + "line": 417, "symbol": "Attachment.update(with:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Attachment/Attachment.swift", - "line": 418, + "line": 425, "symbol": "Attachment.update(_:size:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, + { + "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Attachment/Attachment.swift", + "line": 431, + "symbol": "Attachment.getFullTextRangeIdentificationAttributes()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Attachment/Focusable.swift", "line": 28, @@ -224,6 +238,13 @@ "symbol_kind": "source.lang.swift.decl.associatedtype", "warning": "undocumented" }, + { + "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Decoding/EditorContentDecoding.swift", + "line": 38, + "symbol": "EditorContentDecoding.DecodingContext", + "symbol_kind": "source.lang.swift.decl.associatedtype", + "warning": "undocumented" + }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorContent.swift", "line": 27, @@ -422,99 +443,120 @@ }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 120, + "line": 55, + "symbol": "AttachmentContentIdentifier.openingID", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", + "line": 56, + "symbol": "AttachmentContentIdentifier.closingID", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", + "line": 135, "symbol": "EditorView.textInteractions", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 125, + "line": 140, "symbol": "EditorView.textViewGestures", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 130, + "line": 145, "symbol": "EditorView.textDragInteractionEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 135, + "line": 150, "symbol": "EditorView.bounds", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 209, + "line": 224, "symbol": "EditorView.init(coder:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 228, + "line": 243, "symbol": "EditorView.selectedTextRange", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 248, + "line": 263, "symbol": "EditorView.verticalScrollIndicatorInsets", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 253, + "line": 268, "symbol": "EditorView.keyboardDismissMode", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 258, + "line": 273, "symbol": "EditorView.isScrollEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 401, + "line": 416, "symbol": "EditorView.selectedRange", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 643, + "line": 672, "symbol": "EditorView.setAttributes(_:at:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 761, - "symbol": "EditorView.deleteBackward()", + "line": 992, + "symbol": "EditorView.canPerformAction(_:withSender:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 922, - "symbol": "EditorView.canPerformAction(_:withSender:)", + "line": 1231, + "symbol": "EditorView.resolveAsyncText()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { - "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 1157, - "symbol": "EditorView.resolveAsyncText()", + "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorViewDelegate.swift", + "line": 89, + "symbol": "EditorViewDelegate.editor(_:didLayout:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorViewDelegate.swift", + "line": 102, + "symbol": "EditorViewDelegate.editor(_:didLayout:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, @@ -994,6 +1036,13 @@ "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, + { + "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Helpers/NSAttributedString+Content.swift", + "line": 31, + "symbol": "NSAttributedString.addingAttributes(_:to:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Helpers/NSRangeExtensions.swift", "line": 31, diff --git a/docs/docsets/Proton.docset/Contents/Resources/docSet.dsidx b/docs/docsets/Proton.docset/Contents/Resources/docSet.dsidx index 90ecf99d6ce64a6c91c6b4c877da778dbfca6e36..85d054c3ea1401f578281254d2607fee10f89fa5 100644 GIT binary patch delta 13068 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 GFaHNXE7v># delta 12253 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 diff --git a/docs/docsets/Proton.tgz b/docs/docsets/Proton.tgz index a79b080b352e48df5b3721f64df583108eb14fa7..e61960db0d8db5c44407caec967227f935bd17b0 100644 GIT binary patch literal 273135 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 literal 271533 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 z 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%0AGFQ3yHmSlXH;*Uk0N07gBWBU?dkScnf#WV$b1R6 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 z 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%0Dk zXjiWoO6vk|08|z&oL2dxutg#AOs~t9P<6Tf+CtFfKoA`3qK`JTEB>W0CuG?(m79Ji z@kS84fJ+<-J55#!*lwqZ#~!cZrRf{=%OHBm{P!=jrT6D%C04^y#9>0YC~f+E1wNav@Z70_*O~u*Hi`;%HKTfh5l@KelB{ z&1&XcMu}esI3w2=`ehXgVj3Z%B5G61=m3*NfsiL(J1mrHC$(o8PDim?M(|`YOi&%V z{PZ1NW6Mop7`IL$!k4E)7#|F~Jx_FA8CKbQwcXJ=49lIZx7w=*?drqt%zb&%aLfBk zlojAN#osbdPpxF3iX+U*mdfyB7EF1ZN~1lQ5MV>623x*dHV`Ja-;OB$YG@sE_K)tI zY{m#lu6BeBvEs`tMPi(9u}kSY?_=VO@79lrt^3*VW;)f-Kq_)K#Jn?(AM*%s2<&5! zg>_6!$sP{HRl1{)-@L~y1(v97ge@grLJ>~yXDf^qF0<{xoO@2j-5>@@{n)}ZeU-AC z7z8N0)+44$t@m_vV7bA|Jo;fLNc@tHfCr1j!mUS;X~yt&EsSXU+xW80-;>p`!!#>`fbuU4Fq-Oyvt7s?P|_JA^tPSD58e$c&h#-aZzrY0%y3`IO4 zwD&^1b1sYa%uXkx2N}?(CD-&rxdYaGN{J$LSB=$BUo>MVRF!6q7}aQ@mJ<>fNwcL>?kQ}+n<&f1oK9@lw<<0Rs`myz5Pu>jrbWtI$- zt7B$u!$QS#;ZW31^zX(87wDy;5qF0U}x%6h}= zbjotCvkI)Wa55{6s53hIthYX@Iq#rtmsq=A#u)Na1P>(p*nRYrdiy{Izg1Yjj3yxo z8db12unqNCu&q1RefYwo?6$5A52zr`#Y0EXst?7gHGI#|H?FV4M;Up%UwebQhhsQK zVVG_@!SJ_uk%~BA1uyFG?98Q)QDO=WE<0?3V2{WKhf)nzOCwv{G1KT9ZU<6h;Ics; zj<1popXQX-I$`7TcrMZ@CpRotc%QI`KC$M2HAC=b?P<8jrf8LdiHQe8zHZQy0g9E7!D0HMLV?H9 zd~?~Y2gWLSd{{mzrk0rG#ZYX5xQCLa`BW8Uz&kpbQIp4xOA}1F$=YnbW-NtRy;V~% zc`8ZnYKBtmHYlY6^^yof{?)eExSZQ^k_cg{U%I($a;LQTLP#yKXiJ@yJfXcX7Sndt zl~N+z(w4Hnt~JHdvxV~BlA_ot{f(vINoDI@D|b>;n=@QQxj3@HSD=y@V`SYZvEuit z%$c2hk~^wZG<~&_RhcJWIOV5m`5*|N|&jTYD%-`t5VlEwX#+0(qc=)v6?qu zQ*Lz}R$Z=u@xo?)Cyvf{#6781RVdKspt#{x6BhI=eoDDnIYQ5v2+Gt2j7)8U0(Hql z&ot<#d89;=VIGozGO~)Ets}`JBgN?1qIB%D0*;c19tP&q5OJ}A3dTxBTAlz(UuFgR>bw^=_1ND zWQG+p-FY^`6<>5iB26>A3RL$Mu({fW_mB)2t+j!+Om!2jVL*hu;@IG zJV#^k3sGDt%K6=weB-+8rM0ZTDzMqHt%eb9#>vZwrUo+yhVn;n^95%I3@`DU`5M+*>5wpjTiR$#SLXkJ&hw*(jJ9 ztPUGPT@%rUP=A#@@@4fyu|P|3MXa_o93e_hMrFgR^K(c58_X(rWv`m;}Z}te0 zRN44Ia#>OXkEa!I1!-(}!A}&$oF)O^oYXaNev#r(aJby6fy2{^jn2|oP;@(Cp&2@l z*#^}jgtj4lq5cf%T`F&D9ZZuY{~y5}&CL1?{%SNTM)$s=@I2aLqc}wFwX89Mh+$am zvjMq>^7?F-G|XgN0Uwh-4k0F?m1(3T5+4&nvJnyUYaK=~TG!#>K@ z$P)j>7bFYcRl3^?2lcs**SpL|mTvozmlR8#CB4wsHk$;M81LCL-vo~z72`x>EP)UX z(>;o<=N#~p86kFR&7t4@a_O_><8$bcsI@WWlq%)=)S(J($(XFX_@R-;onO6yx_{Mg z5c2BwF0r!uDgZ`6xxb~{_ze(Hj^$ZngzVuSMeM#s+jY=XNzvR1;?r!KTn`t>(uN)i z=3DHAvyKydFb&cw`i8em4c z3KSX-BoMawXT3z2z{uW{qYk(bbfkG<&2NQ~UuHYperZ^f2COP=7KvkGTo^oGf9m2(uoKF-8YRA0z)FOw!qCZ`)k22!2u15$tcqbl1W=WDV98yR!_D-| z%JYzb?D`k_CH786BW#8UA+@q==f7jWs$YyF2CG7;KVrXy4Zajh;4UWkYl`(*zVhb*e zWy4A7Py?2ifF1Q@WR-4(%Pmn1LoBWpc_AdHp$8|sv}KL>hQ{W(KLVDG8Oq1%^)gi1 zaXG-oI1{2#j+#s<{>EC8W{T4L#b@%%j6*p|9dOEG(WPq)yRr3h1!%qRlFj+cx`t*pgg|8TDCA{?agyES!tNgveo zO{!9q8_8AEA*QaMv_m>{Z9P_&-R2W08WztIswk+}(0v}EfPi!_Hx+S*4TRRe{{}J-nj}Y+Ai~k{>NP4xT;zzOjM9 zC6c5DKQgD?k%7nTCH>62mMyR>@-aOSuXH-41HJh)V!U?2nMlOraUzI>jSc{C>zWqx zy_FMD3?h_; zXFeaD1EHpjKpO8|rtI7qUd>Kt7|q$00iv^b)EMd>v|f;4LI4z&enCCSmo07f_RqGB z&gP=0YlEQE#MCoU*ripvEa(gmt`_%%V4>OsB2q*X9_XYlCgI6tN-0DPTJEu=5_snrp<^r#A}9!3VH9LxV$X&Mo@016!&^kc ze2yW^8H5)=&#vxeD} zF^EP6$eu@#@m#v_+UpaF?VNhf+nzsllEeb()A$3%xkyu9gbi88%CCqG^5?_fQl}dj zOk3&rNs`kt@E<>lp-3lIzfxrvUESXuF8AYy3wwLMy`OevlrAK7QP)^dWA(*~>UdrQ z;{q)!+gqr|bw)^!8SWWPrCapM?)F%{dw59K#UMhm+NPxC@L=T>irXf1K@e z((2*mo>3N7#_7tm^Ejk$c~I{6`hjtW!?wNtAOkT*n6h!fwQj#X2)wpkQ~Pa0@u1Q0 z=>Q|Y4qZfQ%^ecW^l}`MN*hV+hfs&~o!3#!uSVEie2h?`?|MEAgcR?L`Ncb98GJkx z6y$d4_8bLQG*<=G{6S)W+3Xh~_XG1S(l(E@?s4a6>+HTi#NbD69@d3d#dyXm)rH%D z%R*ExQ5W{Y!N8&OI;dB@Fd^L&z*(muf17r{9S2U5!f^OwyuQ3Jq z<8xl)@_K~Vo-ZYvc%KIE2^uNGzQGt1L4U(u2lxeUx#rCv;!fo`w&Z0H!l63BT@#!h z`aJYIUc+w#x%g43qFpUjN^fXp?hJW&;=bSMG}=C1)?1<`4Kbq=Z;fsz!V8JU86va& zI!lgON}$vCxPq*MdqIbpRmuM&5R62$?*~wH$ zSh}oa@a-UTu-IPGDVuGCn+(X=`K#=~vfOf)ieDjxGdc~WW8PNd`^{!fs0!}nqYJN0 z>oxibyaZgj74-Zj^SeGSfKrwXDy?%WNTRcj1?w;MRjuokVPVg`LVV>Cu}OWI$}>H^ zVTy_%HYx3Tk3gT#91WnV7zp45UHWmzzMm;;W*`;#6y<45*%x1X)kI_5t(G+TOsAx) zE)Lu$nR6!9vb9A?JeV7$Wd?$*0-^#KWXdD-Jn{%JN{-rPY*IWd_$*{jk!9|^m_`+H2HR_nYbm7#eYiB{524-1XYy!0etpIPAdSUU>fdhvW z6%m;m>4ch^S3a_g>s9JLw{nEI73FM&5nk?|mf)*nTt0%Y(wvMeU%Ge}bK@(vFdgxz zZOnH-y}gVD#=qo)7>|1&?2;M5emS#aiFMSFu$67ChSW#aQVCr+4!|72fS(R6PHw3a z#7Pask$x>m{4Tq1rWIT*9XrB!XyQy^5xiMUl!4h z(<DCpU-soo4w6qQv&j!;pzUd+K}Wm{VqOEJL+bjJ>+zge~X%+N&Vk)d9^> z0J@6;zAg~3leEod`8pJzbEpmkVh(E}lBhbOVU{MIOj`D~z^FDj@>f|FP(hIHhMWny$KIV3`z^R<@du_34Wax-a(eqAiK>nCBe@bBc#+p{Op!R zlU3;4S{TNJq8XzZHebSE=9P7r9BDR!PP5@f%{iJQbrLP>BC&qy;)%txi|0Nu)F!-L zsdv48+CQB`rXM=-7&atwkoK23|AAS!lIvf1BA~)#K0O54_m+_XJcmS@=VpKm89SW8nn=1=5wsI zd?fWsXR}UavcMqpG1v%t&2XdM2^$_iGbNyq3jiQm0E+(}wal{r*}Knp@;|Wx;PRu( z{`e`D|DTNR-B_VM`xV# zc@@I6F-CRnETy$IY>(AjXjvvhnslDD0 z`hF+q(G}2TAGvS0>qk`ulnA{R|xde3%lAsg2*SE#b`i2+vQsDi{_3ZI3=#O7VDIx6mhY#}~R7`(@jN99M z7fn>|@t|p@2Cjrb)0uHy*WcPgD-HfSUMkJ`Y@Ztga#d0=X+uk^CTNvKv8}DNvWoEL zoQGAgOlpqHCD;b2jGzdSb9^-tsc5r<`l^9DGaoDn``dglHN^(9=SIuHN;P)<<=)CX zv`S}{2k>2NbQIl2}RFct5Cc zd_K)?xgs1mK}-bQ^nG!ksLxX3LBAhH36#PJ;7&;0!<(=eeB0YX>p`rZK}F!A-%?Oo zO@Mx`v&ev91K&ZCR2uN4l$)@GRn{{)4eCZ}b@f+6pwGxHO_$WvRup!#lpyCxQm4JQ z^R05Oo(keSf?=)AGL)2HTBCFW{UfMA3TQbT&+}xDgzAJ;0<)nfA0rG`$}zxZrf93& zs|MAiqIE;w;vtFARc3sKf^#@Ie7Ky)la9)%TwkXY%vbVwM(~#WBs&Gz2{mR(jg5rv z^D$*~?fQbi)9EoYpDZX@<`W=&t=?sSIayh856*0pyMbEW42P>O_8i^o0S3&DQK2%- zdg#ZXhiXqAomlO56;V&_GKUZNidV(%O!4f^Uw;Zm_drr`E0$J|x;ke!(#O<oi7SbH6t+-VAuUhX_Z(P zaP9!+d^Dx6DX?r*q$uj4s=hBN*>=>ft(;%0ZceJvZQVMQo!A^R(*GTy=ZtEFD0uM%#-{B;~MD?YLph z!%hwA6oRv?AO^(Cz885(7*)2mLf7pPayrLmSVavt3n`M=e4{S5%-vWRICJiIrgdmQvE+MFpQ)`(O~ZR32CIZD)=RH(88EV~ zUqlqhP)>xipBrIwbss*giq_>4hL7Edf`slTy$ZSUM_Nt_ z+H+26iez~*a=X!xE-dqmD{i9o78_k`iEQV>2$qKr{Q7X1YiVfz;a_}qwS*yeT2@5bc1Ws1__spkDuw4xKt+l zhE^=Aq9t<8%Sj4z>9pnr$V&w7Fx1lQKNu)tI2XZBdOhqY0^)!oY97S|_&TX*0nF%X zq;(->fsjEZU?z$&j+16GN6s*JZ8Rc)oKNacG2uJOVqIdRTl48~x}oz?mf_lc(jRh0QHU0@-C9-BUl3qG^vYO64#7!yc7 z)PE4*foYv@CaKO^8yV=PfK)|L>*35D#i3{+nU8S2QI@SV=W?_HOVu*!&NK7zg48@> zu|kDz08&y689+;!=j-u7*9{LJW(zX=T`J*sCAT1lm5OK=S3hqd6fJnrLXVMlxa_Sk zo!k*Am2KbcZKr~T4Hr3$6-kEmQjd0rKXplF$7KTS$dWEs`MVIS~V)%FTkI90~O zy+@mb#|O|Nyo|v=*kZw8f0;bLG`istzr6KckPMnWNGH0Q3Sukk0V}J(FC>aHVMJR{ zS#?)v+oCEVUh^)@s9J3`GUlB=3K~#UOMo;<)^2q|C=*N{tpJ_sdfd?`(Bg9p=202Q z7qxm2jjHi6{29^DgDwzmMbwu}jZ~wMb%gE57J7#dcNXILO6W$* zgB5rgEQ918E_lZW(5<=fn0LHGKU~*Cf}g^CFepzzJ{%j&RmB`B%QJQ)4!S|d1F?70 zsyRYmA!(W^Yyw4P&@IelpM=Eq)!|JC4f!$G(u`9ccoxVEQEKYS! z=JRSAteOV?M9knXXc@DyhM}6sEiHf6^Mi1(0@>h!es979%#JDXZgb^{63&q+{vIDg zxAfU^X{t9>svIv(#Zx_)7@3r*QW?MD@lXloQ}!*E>1e4zwc#o^a)7$qR-XrzYEymo zD%FU-ktD7=y`Lpp#1(UiW$@iP^ctz&$n_D1bR3L5L zovy>zRd>4VC0lEqt>79aZ>SBH$^t>1_}WV4GoP6~RH{^8)UtdQdlyJlZd~15!AzHV zlLGsdO{jcH!og{Ki+>?GZy_CTAprw4@B~D=MfAD_l)6P!y2a^pOZ*L^EuzLPPKaBa z1h+WxZ4udR5yfpWTH8V@!=9d&z!0Hr5shsTfo&0OZ6R43-$8JF1RVZE zkaY_~UTg*U$Ll3qG{Lv%5B>`WTL>n$gEa$q2r~8->s?Dnbt?gQ!XBnxkb?*hm)z-2 z2fojbg8apln+Wj~&B@iU>Qx8T4(*@_tMHRz`HL_)cIEB4GoTbyOPeLvjY+nNfvLTO zPUFntG^Jd#TY=fqhxxHt4eN;?C(!Eg$VKmRI;T|*tEEG;hmMvibDnrlRi-&Skprvh zLRDANs#p&e-H=^31Cn*~qkO`K?=Q?UrZKbA7vFf*8gERG?&8Rb*EV z;*L!EEcfBJw{yM?t_{@ka>*-IOCCuG@D&ac{BA^H9ODl(L*aL)Lw~zrOz%5!h+kd$ z6ZY2eyGMVT^mh~gMpPwLgN4?7`a||e`sHJZHEM7T3pA*T1{rYhM>yzUZB5@p5Sjr! zg!IS9TKynt6LdbEF)iWgEdGVnfvk#uqY$B7_p!=#s<`bn>2FMbQBEqg*`J90r58b$ z{?c#I=IAePA;5nv{L`a92?9kqgM|Lz&sPV8s*dmRZ~7Zt_W4%_VeESJ7t^}v0E6EQ z#a&jsi|>1~r@fH=u%GxoY|$U~HzACM><`sXIYVAJ9MInld=Hes5@V0>8WSM!7eS8+ z9dVlvKpc?pTcR#ea5lpM z`x}*3hI0eWb*Q926K~*tMkZ}cavtM5!Rw|!`T0RVT&9GUxsroLsW4;xOzpfn zR?yCSog!5RRctxF=yyHnac_Mts>1R&mu#=hOGg5>48?A*-Vgg_vi#CsE`Klf9YKP1 zSvudwoT)IMgSd`OF`76Yy6WSyw=xIIbOyRi4i}WMS=UwD#Km2qx|vFqTZ>t*!fdbN zx}HFtWEHXv&RLujXt6x#X7kblT6&_C=}Coc+G?;ut`+7`#$M|En$P8R2iwd_n(5o1 zpl^d=eXGr;z1yx-wV|3ld|0cDK{QT{3cd`3!s^qZ*8p&5i_qCALT6_8WkU9mp z?A&M1x3g1VmT$dR+u12lZR#nrmHB3FQZ)2_H(^pV3MWN##ci1I-zey8W5mw3r_}Bq z#qP=t{~*VF41R((UW|r(;5;*EW*5Arw-C?w(hVk5VStVFpkuY!c}6I>nH2GUhbvG; zly=f9m~F}=@~TP&1JDTumL830zg%9aCcr`ak>3igl2Hp0Ox`mq^NG$kao3*sCUjr- z;8KWR@e!Gi^f`ojN}aW&P?gU{R=laCt|)BxuBUC=EyoBJqXiChS|{_c0v=19P{9Ih z;oz&*R3oPHj!M#!4}?_7>}f@c^mooB=CgU&)Y-vP9UCVn*p*hob4a zjjb)3a}D;cv^U4Adn?_G?PddO16T5`GxCD|WH9Hrh>yR67 zN9qDx&C^UWWUQIqk)u0_! zXgYZxkNBZ)j$c3!VQz(Q+v&N1bI+AU?YLIBfoaa*4mHnJF%K5ZMSJBZ-`MzyWFug^E!P8~7` z`^j-_d{bAXa))X6*BN|s9S-PrWp0_hT9IHi0j%aiLx9s1;I!NZtYz~oyW1i^j=pO& zM&KUgrmInAD$A7n6(Q0x4IWQlZAxC=K`s^Jjv0CCvm@FfsebYFi!Uu+Jbfx9k1l}Q zUFc+nq${Al;)++x(8qB3%8H7=?KK$S%iE%^b*O87LBKMzX zSE?_%8+GQ=UmXXa>ScEWK&mcjqSWO|^|X6+sx)1ix>7ysrl%8@2wy6OtOx>Gz3sNy zNs02=N>!e7LlltBLSjN57pYX!st@L?zHssU^NY_dUPA1n%N^7p9EV$z57rTj86S%5kep)hoDbd3pKL%Dn7P`2r{v z=T|Dn@h>m&0{W>_T&=6sE7iry+y(NgWe?j31|CUbyGybnk0Hj(kO*)CO!26<9GlzQ znPDg()cdDX{G&{pHZ&_LyOKPT}Vot@I)7jNLCyR^jMWsnhtS|(?yEEf)B=l_zukIPacB-uS9(JTq86 z4~-hgB1NRFUR#COTBUl*eU+cL!#-VfSob$P9B!7^2Jq|Syi<% z5Y;u9K{*#I^_;$LizZXC(RPC2`Zfqb@CWx3G_lYo?j#xc(zESS4BX85iE<(V#DfI9 z)3{FXpV{*(FSBH)8^lC&?92uaC?d~p_)UIn!#O#KP&#*bb*LlK3H~FcDcQzU=}3BR znbpcGx+W^Z{E3oZ(J7fJLK;6hVzz^5#mo_n<(ZXg6TW6wfN`{SA+Fr4Z0j|JhMGdG zsl{sQvzk1yv(o}Gbh)+S_QeeI)ZHB}t0#hXB3K)z${Yo_efc-reOly0YCW0 zTx;0@0h={p6?lY;S32|K5gZm14Y3SO5kbSAM+erLjheayGUXYJ$&5Z;%6=WaWZ{?6 z#PnRAa^x$c+UQ4n*h@VYf-#He*2!?tON9IR>Y7`B_G$k6@~k^sKgt0Cs9Eo3^y7oC zw1dRQplICTKCc`{+6j7f6nt|5!bHY*8A*tVaZm^L8qgKz$n+6;z=TT%{z`f*G!N67)&+lI=D5Ju%$$F0RzA(niC>n^ z0aEkGfJ94n?F5u^xFT7WXk5vhQdWB<`Y36blz8l>fe5DD*{ng^a2%zFhfzFN!(F&i z_pefzvJly+cibzZgF2*FJFZU1<$+Yq$kGkUUQUxkrK+73i324}Yw6l_1&>B7 zn7N1m{fa>Ix@*pey5v>2FJFMlIzIy3kgXVW$N-$o#Mjjoye@5l*hV3nbq^Oc+X7`1}Ao#;(X{1h1voN2)q(x&-m&6%6>S6gB%~}xC7iD!;=+sykZ)~l5HyMEv*mE+lFUBey)tSf002s7TJJl=snny^{zXcCxUi$<;%q5!A%r-7WY zE#PkH%-LIE28*q&SrF5*>p{rXJ0;U5^l)>bIln0et6RNNU5DA$Ufx8zP=lF)jOHQE zvQnc(4-#?Li6TarCf?N*!%~Fgcolb(=DJiv^@`hlqFffM<$(x_YULzuOihX})CA?{}2r<<(i#3kSWp9kdb|&r7*Bh#kO_ zR+!vb!PG~r(5%mV7EoLhe8(n{0VhQ_4V1)qjIC{L-88l%4K6YolUz-G;~HMgWv6-B#jJVAwg4)f?IC=)a z*miI>K$blMmMH>_RNkR{KDZUP>*HS@J%Cn!;UXU}5Y(_&Dr#|4N<%7nC6H~*9IXHY z&by^dRv9cUjzKsS0WLAjZX$wP`n@KLX_+aS;>wj?P$Jh^|Eg~Yfzg5FuELfmR$7(6 z(xNePvu79!+YJLr1kQ*XUf(|n6GmKN6?2PZ+PW=_i%MNuegN*0e>Is;<}1*5Cg@qK zr0JCR%FH;hrjUzZ1<)hzP-*Lk8gErZILPNh2TbmvDlo~XI1V_T?vJKs7~8uJHc#Yj7%3weEjG^H`2KSJ3BR3a^1*QnC1YTocVv$Y#Jesf}KJdqxwI)xAhb8 zP{mVN@!`X>E--UZSK3a#KEV*okSV`)i^!o zbP87+zQ8rx`Fv?wZVQSs7M3rEe50TkPOJH*-|_~XWR7X9CI4#QZ{YO`EC_<*@p}kD z{7KH)P760$Fqkj(cAj~2MEaRkSjmGax5UEaUcvbO=-EM;$k(Zwb-!m$Am}{A^()j< zb8}nAlyQ(WlFW|NbvaOY%#OwhINe;LlSYA6B(*xslTS7w9r*7URR{|iuONee47%G0 z*L&n~CdxQr-zN^K;&487qZt8_{GgwOhAAYrMgbJ77={}Mo+vH4u zBmQrI526=MUe5VJsM?qsuHjyQHH2{qpjKI5wQ~YQw zXrJOAI>qlTm(E*x9s;S;=I0)hINMO&r|o^(X0)xl^_RqB$rTs-0T3Vo96rpx>t45c zoc%*0^Sj}53&^4_5k-iaky!&5Y z^{!pp9PjeiKclNrpMCmi+x@RIPdFoWlPtH8KfB)+wKGW0ACvi~u<*)JF^z?d= zvj8ej zG}Yp`&h;aV*pAFOEw2;%+XsS{Q|8l==WTj%+d1euM?hntx!XL#uB#SKzS7(GG>iO> zX0|v+_h@GdiaA)pkpuE_Yeu)MT>ydZpl9v&yeq*vnl(^;h)%3yUCc&2eYFub{b^X< z#%h^L4Q={>;3ZBHuCI6e#l-KH4}t1(x#}Ehuvy63MPBOlf-XhqJ~fEMCEZWX%;25e zRHn`<;rEc!9!M?h`#pBgxTp{J#hd;m%397jUCAPdBi$>zt;XHVjOy(Z(}ZRWvE}pmUoJOu=zy2LxL4!V6Zg@p8y#+o)Tc52w(&&U<2sTo)OEhks36KxdaLbbrg08 zzE3ehiY5^suak)D*nvrbaK@q|Tv)Ecz~SIB41qWWQweg=1f%QTa9SNIm%O=Nn53gv zvW#OogaTy8b=i&y^^Et&Iz2h*a?n5JUGhH-BM!VAXBP3@(q%x`)e^e5assA050#O| zfHSp$#C-I9bIPk#hu`l}aol6PX)0c4b(Z<-dV+!~qYGK4$_qG1$o-DD`2t1}gN8(% zI2fFBc57?U-^)iTRbGUI)AK!&M)`6jUqv7}%rSnB&)clil?u$*N4=Gr_P_e^cNRS zJ2;ZZ4lLl8(}5+#E&09DF`(&%w(m8M5s@z>LDKP$sTAN4S%5&;f)r2!7p7SrmY;Zf zy%#gT@_74hhF@ z3B~afy+%8XO3;KSt0GcyOGWgg7C?9aNX~&5n!y#(0GF9+8m+XJ6G8I)V68NLjL-mpu>=H7heYYO4vWkJnOb4gb)pc_ z%SIVmp~amVmjfU6v|>;&==BGQGPz0)1)^_<6b+-aL?tDfNH_rM@e;2l=}`k@8X-}j zp9b*d5T*}|+QjINGPW=xLDMba7Iw1{4Z3TwI_$+`uCOalDTL#LbvDo$sH6=QB`Kp- znoi3V(XZ@jU-UEW@+h4I1y$sUL48~EG~ym~#7oFmTaUs)Ki27>6XbH#a0X|GUBMS$ z=sCvtlZGf;+qJ}tFUOgxEkIz_Tuvh((l3Xqyis z-tW^_{l)-IObi<1yNSXjC3gV~CQKXxQZ}w8IY4;&gy1;?tzC+|ATdpB^UDcA_Ph{b zFOgcS!ex3jA*dD;uM;$49UeV#LXeyd;tX1plnKIsV*p|WD9f>&p5uN*<D(%qDLYv6D*3XycAsXbMi7KKIE~>!f^>5 z=(BKO;zZy`LWEz0VS6{d1#aY%B4>bn&*A8*QtQ8qzS_CDSuM~ z0G=n(I?4-YfuFtLMVEb5h)5GB0>?$16Fw+xQBPN)@-H48&%Fx78PnNnK2$Q{k+5Ca z`t-RaX$feu^XDAG{ELS@nngfOr&PZC`PDC~ zlWSfhlSz|?qM<;$7os44KcK@&{pTdmkfO1=^pLCd_KB!t{(e9F&aE%RbhFcAR% zYdW5LhHaC~9(@k|A-Fhr0pw=oabk#i4n>dn{95csS5hoxQYQw@sZE%qL4!4)r7H8w ziNU5>mQB{?i9Z`gTIb%qn-<`d*N+Ci+}4JY zK4FMZeLE9IT`x&UfI@DNp*3@s3B!qUjgjEg7ZZjFhwGHzp)h{A4I=SkVlbTv8-v(e zliG@Weq;;tlZ!oO{uC>-_B=7fWHuDc+YA$jrf}jFXPP*y20}NzniyP5EK0op3BSj} zJqXn_n?5m!bUoCloIWyz3>5Z3BZ*V>9i9f!qj8quuuPxmZAuLyt63OcJ>+pzpwiZ3 zyUsW?<0FDNkIP3P$mXCktlq|V6M~C0#B|ISyPmY5m|jf?D!vloDJ|jEmZnSyhEsvp z4SUV!2Az(d*w}1wrU^l+(X~mKo+uo+1CkM%dy^V7CRLfq+4ycka3Km(;YDs2sfiPV zB&M@J%9a&APOx=;5X6va2+=o2O1t5K#OUHiGqkRJQ`_aL3^r(41$$OxUreexd z-!4o;PvnCaB|)R(i%xdEpjYD__^Nk3-s~KNJ*@?vCVleRW0sQJvl-tuNXYg^@&0f6 z@PoMynNY0c#FJSASZEB{_~D{V*?uIuDbGYXbYQ1+YynN2#}?wgC;M}`SvrQtIv1uf z^_Y`;Nk7eRldMCZAydC}Y|dKxrA4LO!Zd?!8hUW-KprXTIg*0Jh5oSGkn7-lPlqTW}4}3I|E-cUsPxhq3731sxnFj}-AFj&?gQ zcvpk&psT!QxYhANNe8;#CWgm>W`Iplbd&)Sz5}@M*5a@OjDv@(3?pZ4Q@kA{VXfnB zhJyr~g|a}jpn5usJq!Vp1nih@QOiycJ8^*5phH_thpGT*TVb@}Ma=`4)&L*?wn5C! z54SO%4=>VUq6NM{ya82_@_xT?ssFErt6&&VTT_>U73N z;|8NoU4z{k{YWiiZEDmtrLd*K`t=eX2DtDViM4vh zGl7**s3eE#XVW<7u_p`#&p1{S*;pSmRvudcgQ&1P?69HJ2`&Sp_4`~jGmdzg}L|Sy$3%HSUk|zThYAusI#{f}~8X&GFXeDi4_nkJ&i|!i9~sNYF5QsO&TB zJ!II6fa<{O1lN2P@=`aT>@({Hnn}@SGW_%r%j=8oMbt4p| zW7qsBw7^h(tk<6h?|R(!BGf*Oov2J^nJZd)=q=0{JObJEflX&~pukaI{Vo4wjNnGGT{0gEnxn ze}-bT)v!H;bBXSZ0LJh>LyjRs`v}HfvX+nb=%4T7k_W@j`=by*ynOV zJ!A#W0CLNGnqJ_1Ulkiy72^^69Ykza2*AnDc|lXU4AGp|+ClBcVLDDPOoUQoQGd>b zxF5>d#-%na3)FIeHw1Jx9VEAa@hH0CX`>B|D_nD=_-uBHntjTXF-6dQZz-JpSU%1O zQJS7n38 zy6t`It9UhZNgiW1KhRRGxAKq|?FV8}`^);!5@T$MrCVUleTTKjkC|u5e@wP+ip{pq z;vY8_|0MGr^_vudYbpHLDi786@&mJVt>%Z#)rr}^UO<&ry$usGxOjK zJ6He1X4<3lD3@iQeeWUrzSL%yhsStO3{j1Cp({WQ%z~c)t>es>g4wIx5u8hq+Opw(+nRrBOSiX4_wV_HgxC5{4x5 zP2#$TPm#*@7ar$PS(P5Qt$=+#t-cz8PhSb*05tl&H}|U*KXm3?)C=|9K1bd|j(pKi z22qch`8kq#tf$n}zh|CTKC6}dIlWFCiZDpzr%UH@yu|T<1@a?P;oALS4{C#YzN$mSIToj5|lqKJ%r9*PS#g=wH z0r-N11oR8fSr4xGJ+|&t9iUS5@Wmi{3_?K_<$&jz;|!@H&u#3lDZJ<;*OYX&?vW+z zzGHU}F=XwpSQGbd;s@At16dQI{-EyHDLF{e!+N}?mKTW%;z6U$%v>s*LF_bu14e%H0N)eIf^F8P4x9^X zVc!W_3P4boIBdr&*jhme@td1UB)g@xWKZNawIvXY zL{kr4ejB^1W_U@ElR)o_b(0Y504iWJ9iwPh96xGb{&^JgT)kyfUCRjV3; zd*MctsdLj=YUHz#8bifIi0o+3966ZElJ_7c7dRY!Sfy0V#3eoK)yJIArLK8-?Zx`J z^5lFme(-vvKr!!=CWwjLl$NziMAzr7FM{vH3riagNUUZC!=>bauxc0&k~Uos!_Dw` zT8@ue%fu-1p}E-oW@wE=i$BdG#cM_%v<0ll616?%=HjRuDg5}epIhGkX9+s`BKUyO zg({&!eFhW@-%bEBk?ry$o^3r{4CWtuOx{FnD9b<5G_WlqzXTTtHVC)KPpfBeelbOk z^1T*lWSk0!v%pVpVvk)M67lBSJbbHNl^rmyBDznQG@Lb2Q^h?7h2*Su-6;2c!XCZ+ zmfGmhNO=B!en=D; z?%v;zBOHKbkfR?wj$HdRD}nJPFW{?n=7RF{_D;H(r6G)Lz-H=u*66tJ8p38HqSKWE zX+oUoG|`WqEAD41vYLwEkJ%JW1&g0h4vsqrv8%S~uW%7LmO3F25Gm1aGZvL#VB2H* ziP*b*b}+G@#8(*GDw2S!^BakgGbvKDRZmtqsB%KfNRNW4!LGpY3M>{#`a`hi8FuJVdL zi||mik9+bB-#~Xo9fh(ZjKu_Aw0$Ji-Z)MTWqlFM)!m3(YOUoRwlmmM-`#=eGG#F5 z6mg{Lk7$vvM@GQ=Ao1+(N*(Zo*Mlm``(r>tAwzz@4q8p%+8M~(UVVZr@hFIM z31F6JH`NkyDhBYe^D(W=%=Sa^3~Rx-^{}nh6ls<cWQ2$rVYM=h+ue3BHjB$I zr^C+k^XI~IL{*FUhS(U8we#7&i@)4#on3lqel@;k=l=0MHlIpPf4NY(FI<7=o7UQ3 zHUIDVg7MK=>Z|P)Z9GBdnn!Kth_V^7`jhSH;?(srXaF64?LtR3kDj5Q-a}-rn_}5 z^xk+BWK*ps%wNS8^Y#($jfIr+)$e9bUx)j$?zzifABonzS1oO?ZRUZ$8;>y#%zZ)( z6e&K;dDi|pe%sprpzo%^X=DMXHZpNChPc(IGn#Vs;?)ke)-20z(2*wE7hEB#eTl~B z<-XitpKi2qdHgVs(=n3#RCOgOm{F3#I-M>6x?ZlzWMeTMJl=a<(uNUMq!|e^}7>B&!1m<^|b0abt2K<=fWf$ zLt7W08e1?7qGQtsK>8|^&dNH|(pL=5!xh$`hlHDPo>345#^a?1$FbotKmdyxC{b#U zp1OC2ZX@x|Bxq|DB%sMn{5kN4I9mMTb5=khQXu^$@}iuN`3${~cWk9UJddO!v>QL# zVn+Apq9GHJbBGTOrwSf%RbzlzLjvdbq@pM_%dZSvaD?MTk8BCc;n|m-tjHNFOMKBI z(1eylfSQG+LWh}HS1&2VcUDP6b2qmq%uYvPf8!Xz!>Eap7V8LX{TOE~baIrmMFVXX z5LO?uZ=DjqG9{#B&=Fef3mNZrP#ju^WOiS?hSh%;%(0BG!}dL7Ew@F5cui91aPY{c zFMR6*+YlL!PGDuhA={zCW1LHZ?IRI+QtDCAzsCpnm%)UjYU(6}y!6%`sA zS^NSGqmYZjXP(zA6Oa9+B*NC0hjgUMOJkHePXVUl_ux51v__buLKeyw^C0dZEDF;= z<{cb=5703e`eP49ACc?uX!HLQS)2{(kt2Z12FKl!g()d+Sw`Smz?Auxj)6eZuk(=T z7VO@AIzM)2C8F3BEE=fv@t@FQVsn_e^G0l$cL&!AoG`B6t4-#6ywo_vPck|t$mO@J z&bQCT#~K;CeT|Njk8FhiK*W5uKzvGZXU7Jk`{+%vvwE`bdc$VDxx6G%WUw;5N>OA{ zQVJEN(U#$7hWg5D^~*OTERckq>?A4aF&$h&T`UkV_*Pf&YX&JB&p!z+-bP1;kw{V( z!7)$Kh_2^#(`g8Io44g09V3Vg-2&dnNuu7qIIMXVa4XJFnY~C$jv|@{x z&$|_VHEN12%v&UX-U@zVpBhA0F7%paX{&2bEF31w{z)M5g(fW$)w4XScwS*W^|GYK zg0p_)T6WQyM^2G&GjkvG>4rMzReXAiWyBBrQ%NWKZ58);U*2Z39&8BvV+(Q{9$)=? z7gx(4oLMh<^CrF^O?IC&d44!LPgApml##0hkyCbGxx~Vhk&{SDd7%rkSGw`p9%RVoHZsD!gJbEAxd;y+%2!vx4V?im|DSsFpNyp7He!9t!W`FH7!b zTXxj@HW8GBw^mC?r(?MFQ<|1l_tru0xjeeZD5WM>q1_9!p$S_o;s)Jat{d$~uQ~yH zB%pxi6x|}@ufnyXIu2G6!|Z)7T_spui*Ie#B9kXkC9N^tcRQT+9`s-Qu4I{Wb=Ujf zaixw{uBMLJoNlt7CE}_omtHcWOsEsw^7Scblqc(b z4;mN0L)(qd>j=#uEAy6w4o$-j_P9$s>OK;K49|;m)aDXG9@o<){)sL*A`#Bj7#ay!M0B~B=OLJ zj}wBXbEeAQW^r;=FOaV9_bQAuaQZ2x3wTjFL}DtK6_+;qLM;I+()V@AH&()(h0!?I zg{iXo)>z3F*S;Rpal;Gk&IUoirq!)%OF-^PpsP@kO&?*cGS8>4+Oq3vy1(h{6w17L%qbD)dSS_Z$mxRe$&aG z-B9>U$u`4ad;yQP-6W+XYlce@ zI~>wDu6z`PVD=^pyAM$)O9{S%42^>DFr9SPLD3o++&xnD5*R=nDsnpw9GIZ8k!->! zOyNG~Hd7-W!+MEOhF2oWbhJ+m$vQDmCMK34C?; z{6f+AwTQO8<(G~yOnfxTs%n{N_=O!w!!)@#D!q%`A_1?11g5Zx{veH#w;K)ZuiInN z4etKvL_CN6`pk1=C{wuNc2RV%y;G)3N8}I!3h-WA|P>lx6rhMMm`i; zZL1M%a{he6aDJ}NF8qfUv{=pd@0z~CMqWjJ{Xc2%S(PMr0JYzE>M+7gH9Hu!s~{L1 z!>UO>c+7{uO%eYvshM)7!ze|dB!`7`grXz^vKTxTg$FIE3vrCu*(Z7oOxnX^XIA2( zIcit2L}T5Fx=D*UK7SCcw(=-Zt#Ew?baIW*?so;;K>6!kj;;sb; zd_R~#bTShtFhG_E*<7Yl8IGRdY{&bdcA|UKGrAeIwvhpzis@ZNVf$Nw%?z@}W0SI% z@kM4C>P<}Ub4(b+liw4&F-d}30+YS}a)HNh`HRJu)}u&F6e<3KuJ#r+2Ax>VWLDfTmQkBf3k9cN z!kRgP9p~T#B|!>Dfos`^R{kQX*Xiz!7x}YCbldQ&#*Y@udOf*(rayBn0kkaMq!`Sf zt|GD|&VQ=XnkOZ#@sJqOJEr)+dwDWy$=ju5n%eATjJ7T51zXN zX&a}xU+%vK>^$2>&d6TB@y_Rd106}LG9kpAF~XaP1_Oobrel-p6Cs;}biCHIdbrQ&Vdxc@ zEf*KxK5s^MjIR1qvJF>&H&?a_zt!s4oOW_X?)zou>LD@i1A3-jQs3#KJ{Ny)O8|Nr z)IgxX280Z(Nb0IMlsU*WlJ7(E`gAJpYqfkRx`ZJ2){_QMr65^0oMdAI!W|qJif?4<7`R8e!M)EIH z<8rqDUseAoSRyk8$}s*Vtm6Mz;1CBLf}tyf`JaWgJkHR7;@$a_ZieSR^zA zT>p{#N1fXVOMgS{yFi+O;p*l#rPa#P^Z;Hgxf+J=i6PX<*Gu!s*AIy^+I(zLH^Y&d zfxw<$=A^$++N4NP0)CqGcY|Tu`hVWW_iNK2q*OgIk{LaSVa0Ia$QWJY+{%l;I-B47V8L1hfhBx_Q*64?82 zLF2B(E2ff|aldgrTQ^iCv{mwfI=y*vnU;|7E0i%NdF54l^)IA})mw1YOWhf`b56GC zh+D^L9cHKsr7c4bW3cU+^~eEO51&zq#FMEh_KYiMEhmv$M2;oVQIJs$N22gwJdW&9 z65~yHXWYnbd*SzzPhVuTr-RtYo6JLt*zLv%t{2v*=)txpcaCT zmv=Jvd20{r#hNf`rrzTEx+F_WScqz|GV_b;B3I#VmKEd*Evu5ytS0G;C6}VPX__6C zMc54$R)41V=N!}9CTe0VeQj zNTFpgAsZVEP~mhn@m`A7`>0)u=BMS!qF!t><^Jr1(t;AZ1EDM%0Cg)O}j{5^)@vPA0988xDFVcU7$8ja9 z@f8vIAJ`0b1Vw8kdfH#OAVP!kv@1r36#|}y>>&uS#`x?BNL%nOQ9+shQ2vn#jW8O!BFrrk^B;IKJ+oBfHRLf#I6NX1HoECa*fQ|J(o$xlhw$a6%jAgFb4Gxyi*! zm{;uv9IlbKd_q~~gPt|9w>ov+12JUX&X=$KnD&5T46i|V32*biwa8_ekHVNN>=7c{#wsN zuA=FLGUvf?`J#>j#DQGFG~rj#Pg^12*!f_?Pw8NkiPGB?9b6(Y76Rg^`0JP3K{Avp!1c_cYxqTy{pQj5>ec_~>O) z3txqs=(OZ9V{DO$TG)4rWw%s17{eP>N?;faCUF~4_QSJ?IxwWBJi{1zs*KFzps*LTv4q6Vp0)RLQK{ zvH(_&LU=;i%6jMf=L~$!!s=Zo&yZ+v>tyuFc@*hNVQL0}7L=QS0gM}fBue#>rX|Zs zp3V|SK;6NRP*xvFWfZdB*SC_%m3D%zphtB5mZPA8em7i0%0)6n9>bt4MOuQs5i;b9 z6lkb@y+qhZ{s2B^;4&}Z7~T35X-YCiW;+mTa(QF%WK(;5_U#gvY+;L$m;MR_LuhJ+ z&m3bv(z{-}n_8laQ~h8abk!(Mby6&)0?V9bAl~T5me`s))C`q^JgHG zL% zE~vKQ@X>8E;qYBF{NeD~+h6xY$QjxH5|_m9r2n?oU4Tejj(?Fr_&PGdKac^4|3WTj zMRY6%LnQt~POxZ1bxt~xNEuyBBT=yN9P={^KpgYOss9JE3zGOBJf&Pj=Va`TgLI}0?&>X79y@teny8aCo-$z29d{A5w2?`@(#bBq1v9Qqypde6^fuR z)yIK-o{u#@DLT=(whVp-zrm^DfPJKWG z_i0lWXuXz3{zoY0n4H9T8IGX`oL$Z?^k85`vRQ9X)`f~ zZ`ewas5ZuklG~7;7%TIxIz%IG`e8TktrQDsX55o|k0G}i^wr0FL!n`QbGSnr>7Bj{ zb)yH3>3%IS?Q(!&f8azmCf(rCd}uQi2Q`Dw9OZOG8x<}wH%msJx|vI&^1QgUaULzfs$gs8UgUI&Qqv?#O_BjS-?ZkAY#@9t#@mIR#J4_O**-#pr#f+Sa+`ZB5-Wrb2bB-c8@jX@P-9(wFqw*8!f|Mga zNJ`XQoX$-x#~Pn^V&%LQrgF76gwbjkX-nnqc;`V>RuQSa6;^d+ucNDXmRGGtTo>E% z_oH=Eq*4oxZ7et^g1ZubPI%tkjONR9#(&6G3@-QbY##QP4i&F3 zlxFlWqN!;|0$hF#7i=DDQQdg`iaA!9KCBIO!Z~ypf(|1On}_eTbHJ`Aeo)%7dQPZ9 z1Vq|(F;@nPbtKR!urS~pvEw2T+zF0#Y6 zc7sLD@s3oGbSWsT?lIH9u<3qo-kJA&h4S0S9jR-qb>ZjE9A9WnaXW{tPho8X2GZW- zJ_lA#k*5Uo8_xnOeE;}a&cIEUaKwSi39S!4g5HVOqWz-&?b{(Gxj;{+F`vEr%XH54~1 zL5e30&0V_!TnRj2;k*}Jw_e+FO>v>1OwPxFyMR+`2AWC_Im*%ai(QCN)F1=;12x(s z6d*TIgQ?gSW7x0T;PcP$zF@ANo?f=`+cDz@XXIy96-d-uRDAB@$TTo$g?9^Fv=}xW zm*QM{P8afH({I-m;vDnnHbE3o%y2SKIiuR*9OLfu8D|~Ko%V50KUW)PnMd7bNg@w< zG8RDZ^BpUNIOecSu?>0JWgPR3Cc@A+;|085C=h23pbCmD9@`BY3ui z-=ox5xC0e=X88~U0`L&1hK8|>BIKS{jGyX`RxKQ#nA?l2jR&F^u8_cM%v1TUp*=tc z?Ddg>Q}ppQhF|IGnSL=2a`nbr?6}P|p;^vm_5>HxnoGjGiS8 zP1ZMZ?ZR>PP@0R+C5j`Vg*qk9h1Ax*4h1eHh+sRk6L5W^1@*w|B|&Ys{d_q5(1GDi2owVC{G^1!~TIV z3;zqz`q6}fj=>^~`XACHK8Awc#Apf>OD7wI5SN`Pp%#*zVU7GBXgv@0e{jOV(UL<^<(ye5J{A_ltVj*)kxO7MW~=+EiP8^bLm-b9Lo zvIjznG*fa%f~4qs9u6MNE%XnOQx5sJWji0hEo8bt@*gA+ZY${U4+IhYzhLc72ML0_ z4)%YvHH#zefh^`j0F3~BeE+{bzCQ|dnPUbDG>oG^9E~_Z-cgwdK^|wBC;`bJsL20I ztdi0Gf4o`>g1oBpRb(hw>dM=71JFf25i5dcDi8aUY4+Tcs3}+qnU?(UtGdrVXH27d zMs&80F^Mc1K-uplXu6~RE>Nl6SO*l|aOX+$Q`Lsy6JhZMGGCNEXi{IrKlDwp#7)py z=LFJ-VeiYwJ2!6)S~f$28u0LEFXyEjD<^>wrYLsiytY9ANjtUF%)SvPfS_?E_l!zh zIY)J>fLHt6hK+A4oSG|TPi0Ann!v?~irXiD?1lE(vCl2>NJLOoWY$yUjr+&lLjCf< zZeDGtTMuB{u2_34BbM;hlMByGQy(KxZ$oY)wJex(wB^vmLoD%#P_Z*_4gAJ4=ZYmoS)3l_9 z?YIC8?~+h=_yCH9pUhnM`-H8u8mxAnjQ*e87kgm?(wOXd;SLzO{85URqjZYw!vXcm z-#uphHmAZNDSOJP=P|B2SbX0eLNC7_M>GlrtV9-?bu`_|fwafnRQXrAaMmyz@vx>i zeKaK}5ehr;cuULULz}gcT$hWGfaQ(_i$V(g7W`->{jkP!Ey;^!eOvxmB#HQ3Bi14L zum&!x_j`uaK>B;g-mK9+I9i0x@_Mjp=pp>Xua`wZ{1|iw4c$>+n;(8h3&9It{7pQ( zV%F=Uz5){uD6bqnu7kef7wUh>GG)2Qzpa*2p^If!tACL|cq=jYKafz^|3cOZLsn|T z-y{De49cM^wLs_ZVj1ZCJW8%z zB*_QeUQfkSZ8@Ye=4Z2uDe2$-AKnk^Q!=DqKc8xwnd~97VD@^jW<#H9!#^XRYBT48 zo@#-k)?XmmU&8qf^WRpB9P}RW8v%d+2O0j^@!tE7LQYwfe<4dm41<2+Z|eUN+j!PN zziMEHrAG~zVbMqZY^H%j`D~6N`#+#%P7AUB!P9Aha9QNP%B+FI(PxGN;lGN>KF;&^ zd(1lPJ(!x8uTuh7%X{Pe3%K}n-A$giVSkx zLI|$VyJ=N}qX*)|8a_HwPiWzO{sM|LBF0jTY4%&|)~HE2F_RIzQSt`^rx1vTvN0HZjwmnZd4iyGC#A%- zo!J>1>%1DfF$%xGd;mH{K+(q56X`)iZ@LWNaF&J*Y*-sSB}3vi%>%M2Lo+g}3U~I; zS>YyRjJ3jQ5H49(DU)sDsx~lcS89|@R<|BXU806WK%G~YE@2DNvLkUy8c=$fL*t}# z0JUPo%RLoxN9OB1FafBxR$e#2LyfYrFp$Co?gHHq(%_zO%VxgMENAJENv9MSiSA6x zmcAvOiT0rDDr~zaFOZs-_$Z5)Z z?z0x3qQ*(o>|vNSB(Qi@Y5IP+}qAhs!bt0RZ4L9D@UnrAhswUw_B zJmSGkMs$=Y_B??XUEl{YJd}MytvNc~Rebu!UNDk(h}WaoeJWrl^zSVO1ycyiAK#`r z662fr&eU~1IPTJAx@Dqv!^tyBD}j}GLVlRQk+0;bL|ZzrOgkAZ{g9MQ2+8}pQ1{hE zvbi>M@Ht#<1xxBsn>lhq?K4tKBTiKg{-^z>Tv82FRB@ot4_d1;k;6!ILPzX{TIrs$ z68)|e0!;*4lK{VmBF4d@?i$a&^0d>4AcScD09y`{SD|Py+(`s)s~{`z9-U!W7v82Q zZ63=95L^@T0iKm$4%5ESu;pD8K97&h9tem7%$}dFFP6dr z+a$T$84B=piGWWb_hSjRH@yx&U%`8{SW0r@XUthU7U zh?4t&=xwPHbLx2slWwQ6!Xp+GefWSU+3mk^(?ih16W!j0cvr5ej#ZqxK3%1C3{ZT| zaDr@H&6;%bs!fPsI-@|o)M`i}#!Qu#m#&23U1#E77X#Im)l^fhd(FF&`Gz;+ZNDM& z!j;sD;);hOXWO&nzSb&!O+EZAlZ>uWjU3`!oJ7aF#I))Gx{8@WcZE-<#2rN67pY3WspSy z{$EHI-v2m%(@}qg|E8n<1JnPTjsj{zHhwdV5{v>Y1JhCawZL@Lel0K^^_TrO9rg4# z9rYhTstn=3#{Vnwk2(FyB!j>5|FwN?BTwuQ)iVJ12Rinp73nfHEF?Mh9|yEz^`o;s0ek5JKGOjmlO0bjDfu--%4e$WdYukqBv78L4B z75@_Ep4)KGZpmtzbPJS%8C2?RFdEt?ie>NEw+bJ&&9-sXvB4iIPXimxhY zAY&q8G=}6wa(rgsPf1nm@MMqe{!XOMsol4Ob4&ivQ+SXbRPzt~;f6RQp`uJT>yS|b z(^;Z37%;s3bOuTCgpcyh(d1Hzal67oL+Sg^eN-weGI5~BM<8SZCf?+za{hskMWKC~ zU$A}<3DcD1^zy+-f7kFppF1_k~VnHd(G?f{Y2_ zT3RwTccAzqOp9CSuI+qaqEgLz(7`X0B7wC@^7F$+5`=jqZrxx+Jbe7LST~5cG0JcJ zMF__^qB=?CRuIM9ld9vsJsjdOMw8oNQk1!uSU`U~IQF}{o$W2JE56a68LJtMUu$lY zITR71M==xcL@bX_b9PbfrJU#uk3L3Mr8)yXmsYKj5WdDiels`#a`VzS(jV5Z^hn(^B&9zeFwPcn2~Rd${s;pU%+Hbg-Glp*VJ7gIjl?v1{B9piFh zF5G57v~i_*?R#oAE7aDXcc!*@n1F=yjNB0TECi*SDvWH~A52F6g~)@5QHGu%Gfe1_ zkcdoYBaL|kgXj!&3U~!GS>Z@#3tAk%D*%KXJ%Lk0Fci}-&KtO39`oKq(77eBGn;RH zmq_zY^+h@isu(=V!vP)f=~D!WbtHIa3r|PYk*2p%1U4;6ksv%m{Exyz z#OtwbCX{KP8Z{y{vBwnFqd`s|q&9L>J4pi=0WB-m%bD~?w`QlckU&wU~`;uKcH{anIvVAbM`c zIhV&34MR!Xs}GF4J*bw9nKp2=_t>bpk6(MLma&??L4FZ5ocNS)StuXcLQ zc&ejFjfmS!t$+PV1Cia606GqxnqkW0K2UtM(J@7cf3RzDp%dv`%Ea~NLE@3gj;G-5 zQ(-^!=~w(Q!IG2Fa!TwBmm>q0Lj~*c(WV+OBlMXp-`SSg#uSuuOhX;AHJ(q5hL4Y_y2%1pJY?*pPdaJh1gV7Yz&niplo*R7p5y1p2leeXU9WN3Xr<^0 z?08d8!^=Cb^yS={wFDVb#%|7B;16O+hGuIOD-Qw|QEjEYJ~KEd)!Rtwy;RL$U>rQZ zG4(XQWSczK_NNz-Ca=tvkm9Ej2m#nj$h!Lh^i^w`6r}!OlPMhmX>bJ6S)j5^ zC*q5@D{%{Y-cZ9rj!pw>{*lL zLV?D02>F?^0QA->%Dg{r#MEk+T12iErkqx$4Z9Rt%-trxp)}&ZSXkMaSsjUnWB#DL zUG|nEr$C}iaefA6(xy^zAG(4DH$7W7zP)sQOo;hnA*{E>%_NDG12~oE=4SnqFcD<5 zL4o`^@oels@;9bP9xnah{R;dqZ&uYO7QEciiS0Zib(?O8QeMsprkJ_F#7UfQzKtB$ zu9^!tIG}CXPjTz+%m#6`fxP?j(LU7_k_QGEjqoT4yvz~`M3i5StSbiHa?iM-b9FV~ zSwDW0x%@CqmXzP>zc-z1XancOb7+rCw%j#l%0BxYOE6lRep>!VyNy#VaAab^cRojH z`3~GDrVaZCDyKZqW zLv6?!(-nEv5t_V#9&LN`UDNW{Li0%P7Chq9vt~_K8oQT$R*rWmdf*upJqUtIn!MF! z`5fH#9!t*V&`~(8&b_)-)sW%Lm`Sh~b$gAADAek;5LNaoOXW*$9@X;+{qS~TIr5>J zh7>Jr;~=x!!Eci^n{Cr2mn`kSo~<}<{ka=cZ%Tp=lz#TlZc3K0AKT^x($Si3j#ISU zjXOx+$bJ+`(^BG5Ty_i4Y--7E%GTf{wjM~Z_T#&~W*pM)Fuk2|U#Hd2_h6(A*uTnU z;TGXpJc7y;BNdP3VFrDa{pf#TTXK`D6thVwum{{3T;V+b?w@n{>P#PWgR^aHetq%I zjgV^|<>TLH5tvVfXO)`0e5O`F&w3A){$fA7lA!S=53E)Nr3;}TVl?Nr^+F40A%0_0 z)(5Ip#CE7jeL;&@JQm;BuKKQsJT&#iGL?+7dD;ptt*Tv&#~H`z==%^)XUnPwtDX1D z^Gmd&%(KGP_)@=kb(ij_@)l|{$XEiD=_oH}KMFURL`Ir-Z#(xag1_^D0;*V&d_ntn z_?njCK%4FuT{-g`(d;h2;+i0%02cR`{MDwgfk<(59* z>vc z?x^JWeXPPL>T31an&tJSG1nCIr3KV1cUJ3{mEZe^skeV8q30|A?qz!AFHTA9A5>Rl zDqHtZPY=f%4@%TuRNUR$47`j&Gk^cxQ( zve?UCw7dH?^99Svs1fm!pd4I>!<0gXEtnU2`}^SOdxyPSl)0_;k7Ij+S&|{9kMmGH z9;7?WZg5}oIb;2@RiGPQOwOh>-qXJq`~FQ(;AhHhwxZrQk1sV^#8QyL+uzWz5G$j? zf3w(*^sO2CX+aG$H$yp_$kG}24N-*YxDYWzGO51sP%k!zfkJ_WDf57}VT!rGC zdx>d$`vZp`UsvrBnV3ULPFu*)bSHUl%o2x;zLw6;$a-^r=N*`W9=i^x2EpfUHp~dh zgWy0tjb_`Cjug09;Jbj?-JbwD&U_S{CR|h`j%M1P{ev-L>Nai6jkyqL zCp-!KO%D@jS@o)0T_+urN-MR~)1Tcgy3E$?U=Q%?3Mf!lwx2TK3e_sAt=`wl8_C}p z8}^}A0a8(n!NURb?lp4GcvN^o4}fL+44L%EE02=!ZLr~cu#12;|D_r7<-qviL|7Zs zSc{Hx52AD?hHaDcOBg((41ve_KFRXXVxsAJ%%A|S9qSrm43uc*^1d?d4mT8{64FM- zIg?WNYAB(DS^wT@YC$uV`UUzereZAs;M00|tM+HjWb?h!wJ$%8z%x%~ zPzV9sK$g5EcL-5tFr*Y4Xlq*4`$?iG&Ziuj;XE(TRzPCXB#JfSMR76q9kWAGU+Xd_ z^cnY2l0eF0?noet(3VTe7WK={ij#{#m$0TCedJzCCrz9>21EVzy!?BKWw*8pzoHMW z@wV=n@6NdYnNeRgSohY;PwxfRg{nFH6_xpWtyvZ{%vNvIUuF0ad<%?t3yfR+D{!*~ zStTJ(l4HPWgT&Kb%K*XHeHWE9JQx)r!=2&WCGsi#%*NHe8 zD34PR!LurN%fyXQ5WYZ)L`{|V8oRoi+JfsOK~f%CP4*fh2kztXdBGJ*wO20gTM{7M zHg+s8vPPpl5Bq~S-L0^d2-1Nap$ct-XoJ5Z)`l8xBriST7-s>>Z+deAl?exoN_oef z?NY}ct5UC#O%F>9&^X9NZZ5EFLvFS+&VKLczfXj@sLF$tS{6M^th4o~Xca%D;GdPT z`y5Q|b7sTrc-gW7cr%pbBwy`bIoj>h_}wH_ah;0O z#+~GKouw0oGCO%W$|bQ)sx#|T*u`v~4TAmf^}KCPuf#uI(v&fRH?`u5qNL*cKN zQKZ(-2A*bIQK^4?Y%q&X)g0Lb9pZ109@v8pO*Ljd8h=b*g035Lv__q2ul&@Yyt#sU z=7Q3Y_U-t2-s7aZd^C0DK9Z1F&TBlH`r*}QVoJ^11vtN7;UO&geLC$@U5$O!g4~*9 zQKxIxrSzGwO@eQ)jCdR*BjP%(f~4eS(soA(Vm!w&u7#d@6DRA=W<^J>&?(BcLq+75 z2O|?r93AWmHP$s49|2O-SuBvaa!MdTD8LbdF2%fkkr5HGXB7+twNm_JU7`ITgfTBjfzuh1}&CX&(AtTar)SSV@8|Fszbx%++=T9ad ze{QetkE?;f!atE61G_tW$qD^S6O#p?SwX;W##>A4PNRoXY!;;KY=Lfm!%H4~{ZbBn zMJ6Ye-5Xk zQ3p-;Rm#Se=P+VHo@l#JR@u45@z>}tapDpcBI^gMyFXk8D(gQsjWFHOW#}5w>-my+ z5yuFLD6r)>2AJFX#5ux{IU9WDIMx;DA2M|G?eGugUWbZvHA~(xW4bF|D>6W2WjNNH zu5aajq<f7lZm?YK~6q9u<$K< zvmdux%W-^0PuxfGR&j`(+W09vP%@JBM*$vX37kDoP+Z4ScFV()V4+mI4~Bfvt!T;$ zjc6^Nw>4hKlgG7nY)0laDKi?Odlouj^vSCa^eq#` zljnp`uxn-k%CD z2uu8u8o;?KsIqzv6}2a4U|^sN1NGjoijv?qyX#N}CpV7D;Ks*k-C=Ry0Xsq!@;rd<2eOun~g5 zr7}dtL|F;Qcl(=sf{g$I*~>v&HjVFBK2R$mJpUMYBP_7UY?a}1AnWVG zF}U*H7$x@JiEmAu^mtWRlV&~kSh73 zfz)Y+&~D3v(mWeNKz*fDfb;(`bXoC&2c}OL*G6~{6iovD6U-VgsH>dY>zUg={zCD-XFkYmMbe16rdU6b>aMBMR6ya4(iR8P8q~ceY?3ED z@{@n7&DB;yL8xY9*4E(RWow3snY%j2zM7?&K;ACtWR!hpe&N2lGCR4rg!!-H(PJdi zIcnG>WQavIdIpr5*UTTr_HcOFP~xhO?H=N+#a>5*E^Gff78~xN8LqL8j#~98M?nJ_ zTihJlapWol%AhU-6?pfglY_wKA`M;IvL~FL&mM#!Y_LgP4H3`jT>z0`AP2(YH@_~l zAkY4L-SqlA5_uix^bjkDpHyNer77?2EnIApP1B*w*w+)3iVRSdfD%z}^9 z`Hcj`jeBn+a`x@Xk~~H+sb5JPi(%KQ-f@Sz$04)$QBV*zA9FYhyf zsYUZZE)RD2XCY?wMAJY>h{D16&er?Os!!bD--MxbBO&jD{weBIQ94vfaw=+lYz5@s zp6lKjWkSmS1w`+~zHSFLmCZ%Fy2{b zlsV3LKHSY59PQA`3IRXi#-3clH5Nff_aQjI@pJ&GD-pEKzSlMzg;b6^d@2QaQ_Fb- z&9$l^Fq+Kf`);eJuWPO_0B~Sq5D#TracI^_?0DlC>_|ri!vU{O9>RbGQKD8C7Z2+BIBMq1^44b!vBK3XY zj%1|MRIfCNRM3m}{CbHPNoXUK--CRFO6B(JLKcmE+9VTwM9Xo$oDFv-m5lTtWTMv_ z>2hw;aQ(Kgc(r?;naU@!NnR7`@Gn#ki4T(NW~J5%>~%9pLpkeVyL; zz#mlJ0p~M0Jxc_f05sBw@#8R7(MK=Fj3@cO=xs)yC@~+SKZ7qJ*8`Fk_B6U4*w;t7 zl=H%m@@aET8A6o=1`hu!%V48f~!NZURw zNjvIc^SXXj5%gY6kG9F?K))<;#zb-aZ#>{*$!{6#J38cD0+p$ME9tW);x zj$Q!D#DNGOR;F}h5`&$L*h|oQxd{rN_Q!99x@qS_5oE;UHcQ~IVU_(% z5PO+1_XGZcT#AIVg2@Eb|RfeJv(~1rdUzC{_Ijl6}68ecT2$WOSK3^Yy$r!?yy@rZc!Tz_ z{_h0{1N=)*Qu?}+7v{6zn6TecZOeL)e9(g2FRv|iRHlu-3ZNT@5RUtr*CCvgaIKPL zUSw|m9zl|t<5C8Q_~#do1Jx#U*-i?eZF-+HS|sHF%j)s=hnS+Vzy7U{1A=OY$}>Gc zIJS=efbrejreAtaUjd?2h&Y2H1gm0hdZAwK#Fwa9b*s=uT1NVTZ@o5uK{7iSpA15o zxQWu8N~*eY$v8n{>3xi_JwQzu2_gFIQ9%Z1XOE40}G&Ide*|xm>f%&rNN& zZhTlmqQqg3US}LX7xBBQe>LWIqiU~TG=WUKv{WJnx=LJaWscZ%bz-kr&sebOl*38%&s8z-1Rj^+nNA9<3y5_$6W*s!%_A%1bEi%eevdi)ci8$9fBo{$9TY%}XP}-{!IH z5|bPuVo8Q~{en=jTqF_HG{u(kD;-PPI_JX^99s0io?FUzb)ad6Oa%8t=t!t~B=CNx z4E{rZ`b_Ia%1bUOEr*qCeZnRMlExGdnyBxKo={6)X0>RLUkW)QN?`dr3q_^VwUVUD z#0vs0#{foLj5_l;DCYGzG6_gT9SK*Yk(2}9l7pVnKZ>f_lZyIszZTN@kx3~;=vUCz zT%6`?X}eQ-yHWjWIyJ7zxQMwXeo0N$Kq+kGrGL>?1uU(ykNJ?19FSD)7!J-W_0iP~ zB>u)_RDYApN(y&=_KgLetsk{7;sPC{bD?d5J1@@~h;TI6)(KLZQ_R$sF{K#dQ|0+X zc-q%B6tdfzRqwcNFnA`Q?^|sR`=$z`GD&nQ4Ebasb1YbrvB8tinJ}FnR zN+~vTA`3VA>Jd#e1AAREuG4)TgJ=kEyaXmlEa7kGQ@FGW+p8WBTE5>ixcGA=n+*q{ z4m#I5@A#4EPRJ=Gl$&Sy>n*I7!SR1CX;*wT2>y_+b6bBGc6)!f^w4maFW|3IyNu8Bt#^5-(8mur58k1} zwv!5jjjyT-}2rGXCnSpOLO{uNB zS5}1#d{sDzf85C|`7|q@Ft3>-G3M3b8z+QGYVAvI@=)j0s534O7Qo8o4Wff)Yzdkd z?z?3oQk&y%&qlc$zD7!6L5c=h&KT0MRD~dB@Ag_0?o>nT8BR%S=;jndMH4}cu?1cI zyIHVSUWnw|T$!3@XOR0RClg^^ZoKJ;1V9lL*0u~qfw^M(07c)(1suavYnp~s?c6E< z#AW?&K?_6xP-z-CsQpH;-0ypOhgtN~5U6)-z3VCmmX}*wu;^)atx2b}UGk)Vru8aQ zA-LSuA#-xusw!9t!VFCFoeo>gx9y>Yn_BsrII$e3$=e1Lt;YssnsDthn#F?kkiVc6 zwcxoAQ}WX!=_(#dtM1nt3lgWpkCh8OHdzg9mKLRhLMX-f;8nz|;2+z~mdza0DcjWs zn6oVM=G?h0MIJC$5obky#jt`+1XekM6!WYnTFOu{0aQo9l;lLLtuQSC#K81EYsx}B zY4~E{8Qj%S+`n|Wz$)OgnhN@Y@PgDW|G-KsZHGaqm&v9D<{hnOAC1}cL(t3Jnf1JbKx^1t zzf_tM9=g;4r972P$5&!l=eve1k}DBK8j?OsBupCfSU@?+GiNSMD(;%6T>t_S;7mF; z?Z8M`FBNdE5+HX57?hl%3>fqY05xyw&Vb(uB`IB^_AUYAW6Fq_XuB~6%(1dq$xDY z8q0-Jo=;X*IQ#&9lxGrxER6~O^oOCME-Z~Lmdq2vp77y>F>AA=SrR7!4xuia-J|bS zyw0kN!?QTAbKr7+jw2h?L9_aV!%yclmTs(!Q@N57Mxrjf#2vy`lzLXyrGm}#PT$0bWuP4bT=8~Tqlq^O9wWf`NT+?aWy-Pk{2R2;vcS(zT%q& z_1WiTcLKM0qY@>-1X*l@+88&Xx5y`-aq1d>e5jWf~97KVILGHH4U=DF?p( zuN`Jw02pSd2HL;@MRoGRmQn-mK zk<>PwtfTtMcQ8cE@?JC>I3$Z`^l~UM#Q2rep5Di;5Ft~Okw2Zvc*soiyclQ8@t{iu zgIc>5+^`H@zo4|q&AjzHM2Px8hC}!#ubenji;frto{!Pxn>ce^m8z5b#DwaE*3Df@ zN5(eV-8Z%c?FVo33PLJAZZf2>QohC>zy5Oj01NzJoUh(Ab^#TPlT320)Bk@V92)Xv!X7d6)(` z+5`-yxMc(T?*a`}&O^2pU&=4X^!MeYR|aByX^w0mz=eEre9k3D=NU$f6o2xX*FK7M z;5c(en4hA;NQiCA!2)aOtq_SjLvVjVndfgUn5rDSmr)9O36QZV%F8yA8?wJ8ia&qw zwpEyGAG%L`1EaF=?55}GS9uZZb$OpRRs)PR(Q;Ud~_Z9dk>;f`Oveu(2NK%A$qn_ zjjl?29jbc)PBB+laScH{#ybi#olQ8qev-;o9)*gABWt48D})>$%I}h0#0cWFBMF@- zTG)ji)}^#whM~kJ4#BQ#&yLG=wAN|f_T8!3V~P8Z?QNk)YL6`lcxrVTT#b1dZjhSF zli)tjxP4?uHf1v_KU@poOUR9kyi9D1M>bOgXo76K-g3&m%(!wue>BG>x60VEeAt?~ zIczn+TFddAI_Rw32|X6FwHmXQQrWn|f1J(yysZuiT1654wGVU51cN z>mG-k7}Tbvxwp)vx#(!FtuSjWTs~W6W-)A`5O-&iqRf#2j4?JX5a@|?eQbltGn^LA zl0|S%)lc{n5c`$HVrAx7+7?Ozmsl{e(^K9$CLb0@F4F}m0>-MP0w{

    F&kqfwWl! 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

    diff --git a/docs/search.json b/docs/search.json index 5551821d..9a46a355 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Typealiases.html#/s:6Proton10Attributesa":{"name":"Attributes","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton14AttachmentViewa":{"name":"AttachmentView","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton25AttachmentViewIdentifyinga":{"name":"AttachmentViewIdentifying","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton22TextProcessingPrioritya":{"name":"TextProcessingPriority","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton9Processeda":{"name":"Processed","abstract":"

    Undocumented

    "},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5colorSo7UIColorCvp":{"name":"color","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5width14CoreFoundation7CGFloatVvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5color5widthAESo7UIColorC_14CoreFoundation7CGFloatVtcfc":{"name":"init(color:width:)","abstract":"

    Undocumented

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

    Border style for individual cells. This may be used to override the style provided in the GridStyle for individual cells

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV15backgroundColorSo7UIColorCSgvp":{"name":"backgroundColor","abstract":"

    Default background color for the cell.

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV9textColorSo7UIColorCSgvp":{"name":"textColor","abstract":"

    Default text color for the cell

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV4fontSo6UIFontCSgvp":{"name":"font","abstract":"

    Default font for the cell

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV06borderD0AC06BorderD0VSgvp":{"name":"borderStyle","abstract":"

    Undocumented

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV15backgroundColor04textF04font06borderD0ACSo7UIColorCSg_AJSo6UIFontCSgAC06BorderD0VSgtcfc":{"name":"init(backgroundColor:textColor:font:borderStyle:)","abstract":"

    Undocumented

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV6merged5style5otherA2C_ACtFZ":{"name":"merged(style:other:)","abstract":"

    Creates a merged styles from given styles with precedence to the first style and any missing values used from the second style

    ","parent_name":"GridCellStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderColorSo7UIColorCvp":{"name":"borderColor","abstract":"

    Border color for grid

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderWidth14CoreFoundation7CGFloatVvp":{"name":"borderWidth","abstract":"

    Border width for the grid

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV7defaultACvpZ":{"name":"default","abstract":"

    Default style

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderColor0D5WidthACSo7UIColorC_14CoreFoundation7CGFloatVtcfc":{"name":"init(borderColor:borderWidth:)","abstract":"

    Undocumented

    ","parent_name":"GridStyle"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV5styleAA0B5StyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV23boundsLimitShadowColorsAA08GradientG0Vvp":{"name":"boundsLimitShadowColors","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV07columnsC0SayAA0b6ColumnC0VGvp":{"name":"columnsConfiguration","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV04rowsC0SayAA0b3RowC0VGvp":{"name":"rowsConfiguration","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV20collapsedColumnWidth14CoreFoundation7CGFloatVvp":{"name":"collapsedColumnWidth","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV18collapsedRowHeight14CoreFoundation7CGFloatVvp":{"name":"collapsedRowHeight","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV07columnsC004rowsC05style23boundsLimitShadowColors20collapsedColumnWidth0K9RowHeightACSayAA0blC0VG_SayAA0bnC0VGAA0B5StyleVAA08GradientJ0V14CoreFoundation7CGFloatVAVtcfc":{"name":"init(columnsConfiguration:rowsConfiguration:style:boundsLimitShadowColors:collapsedColumnWidth:collapsedRowHeight:)","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV15numberOfColumnsSivp":{"name":"numberOfColumns","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV12numberOfRowsSivp":{"name":"numberOfRows","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV7primarySo7UIColorCvp":{"name":"primary","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV9secondarySo7UIColorCvp":{"name":"secondary","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV7primary9secondaryACSo7UIColorC_AGtcfc":{"name":"init(primary:secondary:)","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV13initialHeight14CoreFoundation7CGFloatVvp":{"name":"initialHeight","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV5styleAA0B9CellStyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV13initialHeight5styleAC14CoreFoundation7CGFloatV_AA0B9CellStyleVtcfc":{"name":"init(initialHeight:style:)","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5widthAA0bC5WidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5styleAA0B9CellStyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5width5styleAcA0bC5WidthO_AA0B9CellStyleVtcfc":{"name":"init(width:style:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingV11EncodedTypea":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingVyACyxGqd__c11EncodedTypeQyd__RszAA0eF0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes the Encoder

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingV6encode4name4viewxSo08PREditorD4NameC_So6UIViewCtF":{"name":"encode(name:view:)","abstract":"

    Encodes contents based on concrete encoder provided during initialization

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingV11EncodedTypea":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AnyEditorTextEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingVyACyxGqd__c11EncodedTypeQyd__RszAA0cdE0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes the Encoder

    ","parent_name":"AnyEditorTextEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingV6encode4name6stringxSo19PREditorContentNameC_So18NSAttributedStringCtF":{"name":"encode(name:string:)","abstract":"

    Encodes contents based on concrete encoder provided during initialization

    ","parent_name":"AnyEditorTextEncoding"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV11indentation14CoreFoundation7CGFloatVvp":{"name":"indentation","abstract":"

    Indentation of line

    ","parent_name":"LineFormatting"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV13spacingBefore14CoreFoundation7CGFloatVvp":{"name":"spacingBefore","abstract":"

    Vertical spacing before the line

    ","parent_name":"LineFormatting"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV11indentation13spacingBeforeAC14CoreFoundation7CGFloatV_AHtcfc":{"name":"init(indentation:spacingBefore:)","abstract":"

    Initializes

    ","parent_name":"LineFormatting"},"Structs/EditorLine.html#/s:6Proton10EditorLineV4textSo18NSAttributedStringCvp":{"name":"text","abstract":"

    Text contained in the current line.

    ","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV5rangeSo8_NSRangeVvp":{"name":"range","abstract":"

    Range of text in the EditorView for the current line.

    ","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV10startsWithySbSSF":{"name":"startsWith(_:)","abstract":"

    Determines if the current line starts with given text.","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV8endsWithySbSSF":{"name":"endsWith(_:)","abstract":"

    Determines if the current line ends with given text.","parent_name":"EditorLine"},"Structs/AttachmentContentIdentifier.html#/s:6Proton27AttachmentContentIdentifierV9openingIDSo18NSAttributedStringCvp":{"name":"openingID","abstract":"

    Undocumented

    ","parent_name":"AttachmentContentIdentifier"},"Structs/AttachmentContentIdentifier.html#/s:6Proton27AttachmentContentIdentifierV9closingIDSo18NSAttributedStringCvp":{"name":"closingID","abstract":"

    Undocumented

    ","parent_name":"AttachmentContentIdentifier"},"Structs/EditorContent.html#/s:6Proton13EditorContentV4typeAA0bC4TypeOvp":{"name":"type","abstract":"

    Type of EditorContent

    ","parent_name":"EditorContent"},"Structs/EditorContent.html#/s:6Proton13EditorContentV14enclosingRangeSo8_NSRangeVSgvp":{"name":"enclosingRange","abstract":"

    Range within the Editor for this content

    ","parent_name":"EditorContent"},"Structs/EditorContent.html#/s:6Proton13EditorContentV4Namea":{"name":"Name","abstract":"

    Name for the content within the Editor. All the content (text and attachments) must have","parent_name":"EditorContent"},"Structs/AnyEditorContentDecoding.html#/s:6Proton24AnyEditorContentDecodingVyACyxq_Gqd__c12TypeToDecodeQyd__Rsz0E7ContextQyd__Rs_AA0cdE0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes AnyEditorContentDecoding

    ","parent_name":"AnyEditorContentDecoding"},"Structs/AnyEditorContentDecoding.html#/s:6Proton24AnyEditorContentDecodingV6decode4mode7maxSize5value7contextSo18NSAttributedStringCAA0cD4ModeO_So6CGSizeVxq_tF":{"name":"decode(mode:maxSize:value:context:)","abstract":"

    Decodes the given value to NSAttributedString

    ","parent_name":"AnyEditorContentDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingV4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingVyACyxGqd__c12TypeToDecodeQyd__RszAA010AttributesD0Rd__lufc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingV6decodeySDySo21NSAttributedStringKeyaypGxF":{"name":"decode(_:)","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/SquareBulletSequenceGenerator.html#/s:6Proton29SquareBulletSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"SquareBulletSequenceGenerator"},"Structs/SquareBulletSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"SquareBulletSequenceGenerator"},"Structs/DiamondBulletSequenceGenerator.html#/s:6Proton30DiamondBulletSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"DiamondBulletSequenceGenerator"},"Structs/DiamondBulletSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"DiamondBulletSequenceGenerator"},"Structs/NumericSequenceGenerator.html#/s:6Proton24NumericSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"NumericSequenceGenerator"},"Structs/NumericSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"NumericSequenceGenerator"},"Structs/ListParser.html#/s:6Proton10ListParserV5parse4list6indentSo18NSAttributedStringCSayAA0B4ItemVG_14CoreFoundation7CGFloatVtFZ":{"name":"parse(list:indent:)","abstract":"

    Parses an array of list items into an NSAttributedString representation. NewLines are automatically added between each list item in the attributed string representation.

    ","parent_name":"ListParser"},"Structs/ListParser.html#/s:6Proton10ListParserV5parse16attributedString6indentSaySo8_NSRangeV5range_AA0B4ItemV04listJ0tGSo012NSAttributedF0C_14CoreFoundation7CGFloatVtFZ":{"name":"parse(attributedString:indent:)","abstract":"

    Parses NSAttributedString to list items

    ","parent_name":"ListParser"},"Structs/ListItem.html#/s:6Proton8ListItemV4textSo18NSAttributedStringCvp":{"name":"text","abstract":"

    Text of the list item. All attributes are preserved as is.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV5levelSivp":{"name":"level","abstract":"

    Level of the list item. This is used with indent to get paragraphStyle to be applied with appropriate indentation of the list items.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV14attributeValueypvp":{"name":"attributeValue","abstract":"

    Attribute value of the list item.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV4text5level14attributeValueACSo18NSAttributedStringC_Siyptcfc":{"name":"init(text:level:attributeValue:)","abstract":"

    Creates a ListItem

    ","parent_name":"ListItem"},"Structs/CommandName.html#/s:6Proton11CommandNameV8rawValueSSvp":{"name":"rawValue","abstract":"

    Name of the command. Must be unique across different types of commands.

    ","parent_name":"CommandName"},"Structs/CommandName.html#/s:6Proton11CommandNameVyACSScfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"CommandName"},"Structs/CommandName.html#/s:SY8rawValuexSg03RawB0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"CommandName"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4nameSo19PREditorContentNameCvp":{"name":"name","abstract":"

    Content name for the image

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV5imageSo7UIImageCvp":{"name":"image","abstract":"

    Image content

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4sizeSo6CGSizeVvp":{"name":"size","abstract":"

    Size of the image

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4typeAA0B4TypeOvp":{"name":"type","abstract":"

    Denotes if the image is block content or an inline

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4name5image4size4typeACSo19PREditorContentNameC_So7UIImageCSo6CGSizeVAA0B4TypeOtcfc":{"name":"init(name:image:size:type:)","abstract":"

    Initializes the Block Content image

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

    Describes an image for which can be used in an Attachment

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

    Identifies an EditorCommand or a RendererCommand

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

    Represents an item in the list. This structure may be used to create NSAttributedString from items in an array of ListItem. Alternatively, NSAttributedString may also be parsed to get an array of ListItems.

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

    Provides helper function to convert between NSAttributedString and [ListItem]

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

    Simple numeric sequence generator.

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

    Simple bullet sequence generator that returns a diamond symbol.

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

    Simple bullet sequence generator that returns a square symbol.

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

    A type-erased implementation of AttributesDecoding

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

    A type-erased implementation of EditorContentDecoding

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

    Defines a content type for Editor. This may be used to serialize the contents of an Editor via enumerating through the contents of the Editor.

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

    Describes opening and closing separators for EditorViewgetFullAttributedText(:) function.

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

    Representation of a line of text in EditorView. A line is defined as a single fragment starting from the beginning of"},"Structs/LineFormatting.html":{"name":"LineFormatting","abstract":"

    Describes the formatting of a line of text. While general purpose in nature, this is"},"Structs/AnyEditorTextEncoding.html":{"name":"AnyEditorTextEncoding","abstract":"

    /// A type-erased implementation of EditorTextEncoding

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

    A type-erased implementation of AttachmentEncoding.

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Style configuration for the grid

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

    Style configuration for the GridCell

    "},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP4nameSSvp":{"name":"name","abstract":"

    Name of the TextProcessor

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP8prioritySivp":{"name":"priority","abstract":"

    Priority of the TextProcessor. An EditorView can have multiple TextProcessors registered. These will be executed in the order of Priority.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP13shouldProcess_0deB2In011replacementB0SbAA10EditorViewC_So8_NSRangeVSStF":{"name":"shouldProcess(_:shouldProcessTextIn:replacementText:)","abstract":"

    Determines if the text should be changed in the editor.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP11willProcess07deletedB008insertedB0ySo18NSAttributedStringC_AHtF":{"name":"willProcess(deletedText:insertedText:)","abstract":"

    Invoked before changes are processed by the editor.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP7process6editor5range14changeInLengthSbAA10EditorViewC_So8_NSRangeVSitF":{"name":"process(editor:range:changeInLength:)","abstract":"

    Allows to change attributes and text in the EditorView as the text is changed.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP22handleKeyWithModifiers6editor3key13modifierFlags5rangeyAA10EditorViewC_AA0mE0OSo013UIKeyModifierK0VSo8_NSRangeVtF":{"name":"handleKeyWithModifiers(editor:key:modifierFlags:range:)","abstract":"

    Allows to change attributes and text in the EditorView as the text is changed.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP18processInterrupted6editor2atyAA10EditorViewC_So8_NSRangeVtF":{"name":"processInterrupted(editor:at:)","abstract":"

    Fired when processing has been interrupted by another TextProcessor running in the same pass. This allows TextProcessor to revert","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP20selectedRangeChanged6editor03oldE003newE0yAA10EditorViewC_So8_NSRangeVSgALtF":{"name":"selectedRangeChanged(editor:oldRange:newRange:)","abstract":"

    Notifies the processor that the selected range has changed in the EditorView due to a reason other than typing text","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP10didProcess6editoryAA10EditorViewC_tF":{"name":"didProcess(editor:)","abstract":"

    Invoked after the text has been processed in the Editor.

    ","parent_name":"TextProcessing"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_17didReceiveFocusAt2inyAA0bC0C_So8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didReceiveFocusAt:in:)","abstract":"

    Invoked when EditorView within the cell receives focus

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didLoseFocusFrom2inyAA0bC0C_So8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didLoseFocusFrom:in:)","abstract":"

    Invoked when EditorView within the cell loses focus

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didTapAtLocation14characterRange2inyAA0bC0C_So7CGPointVSo8_NSRangeVSgAA0B4CellCtF":{"name":"gridView(_:didTapAtLocation:characterRange:in:)","abstract":"

    Invoked when tap event occurs within the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_20didChangeSelectionAt10attributes11contentType2inyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCAA0B4CellCtF":{"name":"gridView(_:didChangeSelectionAt:attributes:contentType:in:)","abstract":"

    Invoked on selection changes with in the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_15didChangeBounds2inyAA0bC0C_So6CGRectVAA0B4CellCtF":{"name":"gridView(_:didChangeBounds:in:)","abstract":"

    Invoked on change of bounds of the Editor within the cell

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_14didSelectCellsyAA0bC0C_SayAA0B4CellCGtF":{"name":"gridView(_:didSelectCells:)","abstract":"

    Invoked when selection of cells is changed.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didUnselectCellsyAA0bC0C_SayAA0B4CellCGtF":{"name":"gridView(_:didUnselectCells:)","abstract":"

    Invoked when selection of cells is changed.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_13didReceiveKey2at2inyAA0bC0C_AA06EditorH0OSo8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didReceiveKey:at:in:)","abstract":"

    Invoked when special keys are intercepted in the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_23shouldChangeColumnWidth3forSbAA0bC0C_14CoreFoundation7CGFloatVSitF":{"name":"gridView(_:shouldChangeColumnWidth:for:)","abstract":"

    Invoked when a column in GridView is resized.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_13didLayoutCellyAA0bC0C_AA0bH0CtF":{"name":"gridView(_:didLayoutCell:)","abstract":"

    Undocumented

    ","parent_name":"GridViewDelegate"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP1TQa":{"name":"T","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP12textEncodersSDySo08PREditorC4NameCAA03AnyB12TextEncodingVy1TQzGGvp":{"name":"textEncoders","abstract":"

    Encoders for text content i.e. NSAttributedString based content

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP18attachmentEncodersSDySo08PREditorC4NameCAA03AnybC18AttachmentEncodingVy1TQzGGvp":{"name":"attachmentEncoders","abstract":"

    Encoders for attachment types

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP6encodey1TQzSgAA0bC0VF":{"name":"encode(_:)","abstract":"

    Encodes the given content.

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoding.html#/s:6Proton21EditorContentEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoding"},"Protocols/EditorContentEncoding.html#/s:6Proton21EditorContentEncodingP6encodey11EncodedTypeQzSgAA0bC0VF":{"name":"encode(_:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoding"},"Protocols/AttachmentEncoding.html#/s:6Proton18AttachmentEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AttachmentEncoding"},"Protocols/AttachmentEncoding.html#/s:6Proton18AttachmentEncodingP6encode4name4view11EncodedTypeQzSo19PREditorContentNameC_So6UIViewCtF":{"name":"encode(name:view:)","abstract":"

    Encodes given Attachment content view to given type

    ","parent_name":"AttachmentEncoding"},"Protocols/EditorTextEncoding.html#/s:6Proton18EditorTextEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"EditorTextEncoding"},"Protocols/EditorTextEncoding.html#/s:6Proton18EditorTextEncodingP6encode4name6string11EncodedTypeQzSo19PREditorContentNameC_So18NSAttributedStringCtF":{"name":"encode(name:string:)","abstract":"

    Encodes the given attributed string to EncodedType

    ","parent_name":"EditorTextEncoding"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","abstract":"

    Identifies a command. This value is used to maintain unique registrations of commands in an Editor. Adding a command with the same name","parent_name":"EditorCommand"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP10canExecute2onSbAA0B4ViewC_tF":{"name":"canExecute(on:)","abstract":"

    Determines if the current command can be executed on the given EditorView. When a command is executed using EditorCommandExecutor, it ensures","parent_name":"EditorCommand"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","abstract":"

    Execute the command on the given EditorView. You may use selectedRange property of EditorView if the command operates on","parent_name":"EditorCommand"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_12shouldHandle2at7handledyAA0bC0C_AA0B3KeyOSo8_NSRangeVSbztF":{"name":"editor(_:shouldHandle:at:handled:)","abstract":"

    Invoked when a special key like enter, tab etc. is intercepted in the Editor

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_13didReceiveKey2atyAA0bC0C_AA0bH0OSo8_NSRangeVtF":{"name":"editor(_:didReceiveKey:at:)","abstract":"

    Invoked when a special key like enter, tab etc. is entered in the Editor

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_17didReceiveFocusAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didReceiveFocusAt:)","abstract":"

    Invoked when editor receives focus.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_16didLoseFocusFromyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didLoseFocusFrom:)","abstract":"

    Invoked when editor loses the focus.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_15didChangeTextAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didChangeTextAt:)","abstract":"

    Invoked when text is changed in editor.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_20didChangeSelectionAt10attributes11contentTypeyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCtF":{"name":"editor(_:didChangeSelectionAt:attributes:contentType:)","abstract":"

    Invoked when the selection range changes in the editor as a result of moving the cursor using keys/mouse or taps.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_20didExecuteProcessors2atyAA0bC0C_SayAA14TextProcessing_pGSo8_NSRangeVtF":{"name":"editor(_:didExecuteProcessors:at:)","abstract":"

    Invoked when text processors are executed in the editor.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_13didChangeSize08previousH0yAA0bC0C_So6CGSizeVAJtF":{"name":"editor(_:didChangeSize:previousSize:)","abstract":"

    Invoked when the size of EditorView changes.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_16didTapAtLocation14characterRangeyAA0bC0C_So7CGPointVSo8_NSRangeVSgtF":{"name":"editor(_:didTapAtLocation:characterRange:)","abstract":"

    Invoked when a location within the EditorView is tapped.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_9didLayoutyAA0bC0C_So18NSAttributedStringCtF":{"name":"editor(_:didLayout:)","abstract":"

    Undocumented

    ","parent_name":"EditorViewDelegate"},"Protocols/BoundsObserving.html#/s:6Proton15BoundsObservingP09didChangeB0_03oldB0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","abstract":"

    Lets the observer know that bounds of current object have changed

    ","parent_name":"BoundsObserving"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP6editorAA0bD0Cvp":{"name":"editor","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP14attributedTextSo18NSAttributedStringCvp":{"name":"attributedText","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP9maxHeightAA0bF0Ovp":{"name":"maxHeight","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP8delegateAA0bD8Delegate_pSgvp":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP20becomeFirstResponderSbyF":{"name":"becomeFirstResponder()","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewPAAE8setFocusyyF":{"name":"setFocus()","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/AttachmentTypeIdentifying.html#/s:6Proton25AttachmentTypeIdentifyingP4typeAA0bC0Ovp":{"name":"type","abstract":"

    Undocumented

    ","parent_name":"AttachmentTypeIdentifying"},"Protocols/EditorContentIdentifying.html#/s:6Proton24EditorContentIdentifyingP4nameSo08PREditorC4NameCvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"EditorContentIdentifying"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP12TypeToDecodeQa":{"name":"TypeToDecode","abstract":"

    Undocumented

    ","parent_name":"EditorContentDecoding"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP0D7ContextQa":{"name":"DecodingContext","abstract":"

    Undocumented

    ","parent_name":"EditorContentDecoding"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP6decode4mode7maxSize5value7contextSo18NSAttributedStringCAA0bC4ModeO_So6CGSizeV12TypeToDecodeQz0D7ContextQztF":{"name":"decode(mode:maxSize:value:context:)","abstract":"

    Decodes the given value to NSAttributedString

    ","parent_name":"EditorContentDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP12TypeToDecodeQa":{"name":"TypeToDecode","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP6decodeySDySo21NSAttributedStringKeyaypG12TypeToDecodeQzF":{"name":"decode(_:)","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/SequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","abstract":"

    Returns a value representing the given index.

    ","parent_name":"SequenceGenerator"},"Protocols/EditorListFormattingProvider.html#/s:6Proton28EditorListFormattingProviderP08listLineD0AA0gD0Vvp":{"name":"listLineFormatting","abstract":"

    Line formatting to be used for a list item.

    ","parent_name":"EditorListFormattingProvider"},"Protocols/EditorListFormattingProvider.html#/s:6Proton28EditorListFormattingProviderP17listLineMarkerFor6editor5index5level13previousLevel14attributeValueAA0cgH0OAA0B4ViewC_S3iypSgtF":{"name":"listLineMarkerFor(editor:index:level:previousLevel:attributeValue:)","abstract":"

    Returns the marker to be drawn for list item (bullet/number etc.) for given parameters.

    ","parent_name":"EditorListFormattingProvider"},"Protocols/Focusable.html#/s:6Proton9FocusableP8setFocusyyF":{"name":"setFocus()","abstract":"

    Undocumented

    ","parent_name":"Focusable"},"Protocols/AttachmentOffsetProviding.html#/s:6Proton25AttachmentOffsetProvidingP6offset3for2in20proposedLineFragment13glyphPosition14characterIndexSo7CGPointVAA0B0C_So15NSTextContainerCSo6CGRectVAKSitF":{"name":"offset(for:in:proposedLineFragment:glyphPosition:characterIndex:)","abstract":"

    Undocumented

    ","parent_name":"AttachmentOffsetProviding"},"Protocols/DynamicBoundsProviding.html#/s:6Proton22DynamicBoundsProvidingP7sizeFor10attachment13containerSize8lineRectSo6CGSizeVAA10AttachmentC_AISo6CGRectVtF":{"name":"sizeFor(attachment:containerSize:lineRect:)","abstract":"

    Undocumented

    ","parent_name":"DynamicBoundsProviding"},"Protocols/AsyncTextResolving.html#/s:6Proton18AsyncTextResolvingP4nameSSvp":{"name":"name","abstract":"

    Name of the Resolver. This name must be applied to the range of text that requires async resolution with attribute key: .asyncTextResolver

    ","parent_name":"AsyncTextResolving"},"Protocols/AsyncTextResolving.html#/s:6Proton18AsyncTextResolvingP7resolve5using5range6string10completionyAA10EditorViewC_So8_NSRangeVSo18NSAttributedStringCyAA0bcD6ResultOctF":{"name":"resolve(using:range:string:completion:)","abstract":"

    Resolves the string to a different representation

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

    An object capable of resolving text asynchronously to another representation. New representation may contain change in attributes or the string itself.

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

    Describes an object (typically attachment view) that may change size during the layout pass

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

    Describes an object capable of providing offsets for the Attachment. The value is used to offset the Attachment when rendered alongside the text. This may"},"Protocols/Focusable.html":{"name":"Focusable","abstract":"

    Describes an object capable of gaining focus.

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

    Describes an object capable of providing style and formatting information for rendering lists in EditorView.

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

    Represents a Sequence generator that can return a value based on given index."},"Protocols/AttributesDecoding.html":{"name":"AttributesDecoding","abstract":"

    An object capable of decoding attributes for use in NSAttributedString

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

    An object capable of decoding the given type of content into NSAttributedString for using in EditorView or the RendererView.

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

    Identifies a content type within the Editor

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

    Undocumented

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

    Describes a view contained in Attachment that contains a single EditorView."},"Protocols/BoundsObserving.html":{"name":"BoundsObserving","abstract":"

    Describes an object interested in observing the bounds of a view. Attachment is BoundsObserving and reacts to"},"Protocols/EditorViewDelegate.html":{"name":"EditorViewDelegate","abstract":"

    Describes an object interested in listening to events raised from EditorView

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

    Describes a command that can be executed on EditorView. A command may be invoked directly on the editor by providing an instance."},"Protocols/EditorTextEncoding.html":{"name":"EditorTextEncoding","abstract":"

    Describes an encoder for a content type in Editor. This can be used in conjunction with AnyEditorTextEncoding"},"Protocols/AttachmentEncoding.html":{"name":"AttachmentEncoding","abstract":"

    Describes an object capable of encoding contents of at Attachment

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

    An object capable of encoding EditorContent to given type.

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

    A generic encoder for encoding EditorContent. You may create encoders for individual types of contents in the Editor, and"},"Protocols/GridViewDelegate.html":{"name":"GridViewDelegate","abstract":"

    An object capable of handing GridView events

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

    An object capable of intercepting and modifying the text and attributes in an EditorView when registered with the EditorView.

    "},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE9exclusiveSivpZ":{"name":"exclusive","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE4highSivpZ":{"name":"high","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE6mediumSivpZ":{"name":"medium","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE3lowSivpZ":{"name":"low","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/UITextRange.html#/s:So11UITextRangeC6ProtonE9toNSRange2inSo01_E0VSgSo0A5Input_p_tF":{"name":"toNSRange(in:)","abstract":"

    Converts this range to NSRange. Returns nil if range cannot be converted.

    ","parent_name":"UITextRange"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6traitsSo0A24DescriptorSymbolicTraitsVvp":{"name":"traits","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6isBoldSbvp":{"name":"isBold","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE9isItalicsSbvp":{"name":"isItalics","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE12isMonoSpacedSbvp":{"name":"isMonoSpaced","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE12isAppleEmojiSbvp":{"name":"isAppleEmoji","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE9textStyleSo0a4TextD0avp":{"name":"textStyle","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE21isNonDynamicTextStyleSbvp":{"name":"isNonDynamicTextStyle","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE8contains5traitSbSo0A24DescriptorSymbolicTraitsV_tF":{"name":"contains(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE7toggled5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"toggled(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6adding5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"adding(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE8removing5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"removing(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/String.html#/s:SS6ProtonE11makeNSRange4fromSo01_C0VSnySS5IndexVG_tF":{"name":"makeNSRange(from:)","abstract":"

    Converts given Range to NSRange in this string.

    ","parent_name":"String"},"Extensions/String.html#/s:SS6ProtonE16rangeFromNSRange0B0SnySS5IndexVGSgSo01_D0V_tF":{"name":"rangeFromNSRange(range:)","abstract":"

    Created String Range from given NSRange. Returns nil if range cannot be converted.

    ","parent_name":"String"},"Extensions/String.html#/s:SS6ProtonE8rangesOf12characterSetSaySnySS5IndexVGG10Foundation09CharacterE0V_tF":{"name":"rangesOf(characterSet:)","abstract":"

    Returns ranges of given CharacterSet in this string.

    ","parent_name":"String"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE4zeroABvpZ":{"name":"zero","abstract":"

    Range with 0 location and length

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE19firstCharacterRangeABvp":{"name":"firstCharacterRange","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE18lastCharacterRangeABvp":{"name":"lastCharacterRange","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE12nextPositionABvp":{"name":"nextPosition","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE11endLocationSivp":{"name":"endLocation","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE11toTextRange9textInputSo06UITextE0CSgSo0hG0_p_tF":{"name":"toTextRange(textInput:)","abstract":"

    Converts the range to UITextRange in given UITextInput. Returns nil if the range is invalid in the UITextInput.

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE9isValidInySbSo11UITextInput_pF":{"name":"isValidIn(_:)","abstract":"

    Checks if the range is valid in given UITextInput

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE9shiftedByyABSiF":{"name":"shiftedBy(_:)","abstract":"

    Shifts the range with given shift value

    ","parent_name":"NSRange"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonEyABSScfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE9paragraphABvpZ":{"name":"paragraph","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE8viewOnlyABvpZ":{"name":"viewOnly","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE7newlineABvpZ":{"name":"newline","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE4textABvpZ":{"name":"text","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE7unknownABvpZ":{"name":"unknown","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/NSParagraphStyle.html#/s:So16NSParagraphStyleC6ProtonE016mutableParagraphB0So09NSMutableeB0Cvp":{"name":"mutableParagraphStyle","abstract":"

    Creates a mutable copy of current style

    ","parent_name":"NSParagraphStyle"},"Extensions/NSParagraphStyle.html#/s:So16NSParagraphStyleC6ProtonE14lineFormattingAC04LineE0Vvp":{"name":"lineFormatting","abstract":"

    Returns LineFormatting based on current style

    ","parent_name":"NSParagraphStyle"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE9textBlockABvpZ":{"name":"textBlock","abstract":"

    Applying this attribute makes the range of text act as a single block/unit.","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE16blockContentTypeABvpZ":{"name":"blockContentType","abstract":"

    Identifies block based attributes. A block acts as a container for other content types. For e.g. a Paragraph is a block content","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE17inlineContentTypeABvpZ":{"name":"inlineContentType","abstract":"

    Identifies inline content attributes. An inline acts as a content in another content types. For e.g. an emoji is an inline content","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE15backgroundStyleABvpZ":{"name":"backgroundStyle","abstract":"

    Additional style attribute for background color. Using this attribute in addition to backgroundColor attribute allows applying","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE8listItemABvpZ":{"name":"listItem","abstract":"

    Attribute denoting the range as a list item. This attribute enables use of ListTextProcessor to indent/outdent list","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE18skipNextListMarkerABvpZ":{"name":"skipNextListMarker","abstract":"

    When applied to a new line char alongside listItem attribute, skips the rendering of list marker on subsequent line.

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE16lockedAttributesABvpZ":{"name":"lockedAttributes","abstract":"

    Array of NSAttributedString.Key that must be locked in the applied range.

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE17asyncTextResolverABvpZ":{"name":"asyncTextResolver","abstract":"

    Undocumented

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html":{"name":"Key","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9asMutableSo019NSMutableAttributedB0Cvp":{"name":"asMutable","abstract":"

    Creates a mutable copy

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16addingAttributes_2toABSDySo0aB3KeyaypG_So8_NSRangeVSgtF":{"name":"addingAttributes(_:to:)","abstract":"

    Undocumented

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE17enumerateContents2ins11AnySequenceVyAC13EditorContentVGSo8_NSRangeVSg_tF":{"name":"enumerateContents(in:)","abstract":"

    Enumerates block contents in given range.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE23enumerateInlineContents2ins11AnySequenceVyAC13EditorContentVGSo8_NSRangeVSg_tF":{"name":"enumerateInlineContents(in:)","abstract":"

    Enumerates only inline content in given range.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16rangeOfCharacter4fromSo8_NSRangeVSg10Foundation0F3SetV_tF":{"name":"rangeOfCharacter(from:)","abstract":"

    Returns in range of CharacterSet from this string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9fullRangeSo8_NSRangeVvp":{"name":"fullRange","abstract":"

    Full range of this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16attachmentRangesSayAC10AttachmentC0D0_So8_NSRangeV5rangetGvp":{"name":"attachmentRanges","abstract":"

    Collection of all the attachments with containing ranges in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE8rangeFor10attachmentSo8_NSRangeVSgAC10AttachmentC_tF":{"name":"rangeFor(attachment:)","abstract":"

    Range of given attachment in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE8rangesOf12characterSetSaySo8_NSRangeVG10Foundation09CharacterG0V_tF":{"name":"rangesOf(characterSet:)","abstract":"

    Ranges of CharacterSet in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE26reverseAttributedSubstring4fromABSgSo8_NSRangeV_tF":{"name":"reverseAttributedSubstring(from:)","abstract":"

    Attributed substring in reverse direction.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE7rangeOf9attribute16startingLocation13reverseLookupSo8_NSRangeVSgSo0aB3Keya_SiSbtF":{"name":"rangeOf(attribute:startingLocation:reverseLookup:)","abstract":"

    Gets the next range of attribute starting at the given location in direction based on reverse lookup flag

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE7rangeOf9attribute2atSo8_NSRangeVSgSo0aB3Keya_SitF":{"name":"rangeOf(attribute:at:)","abstract":"

    Gets the complete range of attribute at the given location. The attribute is looked up in both forward and","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE14attributeValue3for2atxSgSo0aB3Keya_SitlF":{"name":"attributeValue(for:at:)","abstract":"

    Gets the value of attribute at the given location, if present.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9substring4fromSSSo8_NSRangeV_tF":{"name":"substring(from:)","abstract":"

    Alternative to attributedSubstring(from:_).string","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html":{"name":"NSAttributedString"},"Extensions/NSParagraphStyle.html":{"name":"NSParagraphStyle"},"Extensions/EditorContentName.html":{"name":"EditorContentName"},"Extensions/NSRange.html":{"name":"NSRange"},"Extensions/String.html":{"name":"String"},"Extensions/UIFont.html":{"name":"UIFont"},"Extensions/UITextRange.html":{"name":"UITextRange"},"Extensions/TextProcessingPriority.html":{"name":"TextProcessingPriority","abstract":"

    Undocumented

    "},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO5fixedyAC14CoreFoundation7CGFloatVcACmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO10fractionalyAC14CoreFoundation7CGFloatVcACmF":{"name":"fractional(_:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO5value7basedOn14CoreFoundation7CGFloatVAH_tF":{"name":"value(basedOn:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridViewError.html#/s:6Proton13GridViewErrorO26failedToInsertInFrozenRowsyA2CmF":{"name":"failedToInsertInFrozenRows","abstract":"

    Undocumented

    ","parent_name":"GridViewError"},"Enums/GridViewError.html#/s:6Proton13GridViewErrorO29failedToInsertInFrozenColumnsyA2CmF":{"name":"failedToInsertInFrozenColumns","abstract":"

    Undocumented

    ","parent_name":"GridViewError"},"Enums/Indentation.html#/s:6Proton11IndentationO6indentyA2CmF":{"name":"indent","abstract":"

    Undocumented

    ","parent_name":"Indentation"},"Enums/Indentation.html#/s:6Proton11IndentationO7outdentyA2CmF":{"name":"outdent","abstract":"

    Undocumented

    ","parent_name":"Indentation"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO7defaultyA2CmF":{"name":"default","abstract":"

    Default controlled via autolayout.

    ","parent_name":"EditorHeight"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO3maxyAC14CoreFoundation7CGFloatVcACmF":{"name":"max(_:)","abstract":"

    Maximum height editor is allowed to grow to before it starts scrolling

    ","parent_name":"EditorHeight"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO8infiniteyA2CmF":{"name":"infinite","abstract":"

    Boundless height.

    ","parent_name":"EditorHeight"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO4textyACSo08PREditorC4NameC_So18NSAttributedStringCtcACmF":{"name":"text(name:attributedString:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO10attachmentyACSo08PREditorC4NameC_AA10AttachmentCSo6UIViewCAA0hD0OtcACmF":{"name":"attachment(name:attachment:contentView:type:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO8viewOnlyyA2CmF":{"name":"viewOnly","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/AttachmentType.html#/s:6Proton14AttachmentTypeO5blockyA2CmF":{"name":"block","abstract":"

    Undocumented

    ","parent_name":"AttachmentType"},"Enums/AttachmentType.html#/s:6Proton14AttachmentTypeO6inlineyA2CmF":{"name":"inline","abstract":"

    Undocumented

    ","parent_name":"AttachmentType"},"Enums/EditorContentMode.html#/s:6Proton17EditorContentModeO6editoryA2CmF":{"name":"editor","abstract":"

    Undocumented

    ","parent_name":"EditorContentMode"},"Enums/EditorContentMode.html#/s:6Proton17EditorContentModeO8rendereryA2CmF":{"name":"renderer","abstract":"

    Undocumented

    ","parent_name":"EditorContentMode"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO5enteryA2CmF":{"name":"enter","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO9backspaceyA2CmF":{"name":"backspace","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO3tabyA2CmF":{"name":"tab","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/ListLineMarker.html#/s:6Proton14ListLineMarkerO6stringyACSo18NSAttributedStringCcACmF":{"name":"string(_:)","abstract":"

    Undocumented

    ","parent_name":"ListLineMarker"},"Enums/ListLineMarker.html#/s:6Proton14ListLineMarkerO5imageyACSo7UIImageC_So6CGSizeVtcACmF":{"name":"image(_:size:)","abstract":"

    Undocumented

    ","parent_name":"ListLineMarker"},"Enums/BackgroundMode.html#/s:6Proton14BackgroundModeO9matchTextyA2CmF":{"name":"matchText","abstract":"

    Background matches the height/width of text

    ","parent_name":"BackgroundMode"},"Enums/BackgroundMode.html#/s:6Proton14BackgroundModeO9matchLineyA2CmF":{"name":"matchLine","abstract":"

    Background matches entire line irrespective of font height/used character width in the given line

    ","parent_name":"BackgroundMode"},"Enums/RoundedCornerStyle.html#/s:6Proton18RoundedCornerStyleO8absoluteyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"absolute(value:)","abstract":"

    Rounding based on an absolute value for corner radii

    ","parent_name":"RoundedCornerStyle"},"Enums/RoundedCornerStyle.html#/s:6Proton18RoundedCornerStyleO8relativeyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"relative(percent:)","abstract":"

    Rounding based on relative percent value of the content height. For e.g. 50% would provide a capsule appearance","parent_name":"RoundedCornerStyle"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO12matchContentyA2CmF":{"name":"matchContent","abstract":"

    Matches the size of the content view of attachment. Content view must provide size to Attachment using didChangeBounds(:).

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO9fullWidthyA2CmF":{"name":"fullWidth","abstract":"

    Takes up full width of the containing EditorView. Resizes automatically when size of the container changes for e.g. when device is rotated. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO5fixedyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"fixed(width:)","abstract":"

    Fixed width attachment irrespective of content size of the contained view. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO5rangeyAC14CoreFoundation7CGFloatV_AGtcACmF":{"name":"range(minWidth:maxWidth:)","abstract":"

    Width of attachment is locked between the min and max. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO7percentyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"percent(width:)","abstract":"

    Width in percent based on the size of containing EditorView. Absolute value of width changes if the size of the container changes for e.g. when device is rotated. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AsyncTextResolvingResult.html#/s:6Proton24AsyncTextResolvingResultO5applyyACSo18NSAttributedStringC_So8_NSRangeVtcACmF":{"name":"apply(_:range:)","abstract":"

    Undocumented

    ","parent_name":"AsyncTextResolvingResult"},"Enums/AsyncTextResolvingResult.html#/s:6Proton24AsyncTextResolvingResultO7discardyA2CmF":{"name":"discard","abstract":"

    Undocumented

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

    Result type for async text resolution

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

    Rendering size of the Attachment

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

    Rounding style for backgroundStyle attribute

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

    Defines the mode for height/width used for the background for the text

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

    Marker for the list item

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

    Undocumented

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

    Content mode for Editor. This may be used while decoding the content for the Editor/Renderer to let the Decoder know"},"Enums/AttachmentType.html":{"name":"AttachmentType","abstract":"

    Type of attachment

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

    Type of EditorContent

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

    Defines the height for the Editor

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP4nameSSvp":{"name":"name","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton17ListTextProcessorCACycfc":{"name":"init()","abstract":"

    Initializes text processor.

    ","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton17ListTextProcessorC8prioritySivp":{"name":"priority","abstract":"

    Priority of the text processor.

    ","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP13shouldProcess_0deB2In011replacementB0SbAA10EditorViewC_So8_NSRangeVSStF":{"name":"shouldProcess(_:shouldProcessTextIn:replacementText:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP18processInterrupted6editor2atyAA10EditorViewC_So8_NSRangeVtF":{"name":"processInterrupted(editor:at:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP7process6editor5range14changeInLengthSbAA10EditorViewC_So8_NSRangeVSitF":{"name":"process(editor:range:changeInLength:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP22handleKeyWithModifiers6editor3key13modifierFlags5rangeyAA10EditorViewC_AA0mE0OSo013UIKeyModifierK0VSo8_NSRangeVtF":{"name":"handleKeyWithModifiers(editor:key:modifierFlags:range:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP10didProcess6editoryAA10EditorViewC_tF":{"name":"didProcess(editor:)","parent_name":"ListTextProcessor"},"Classes/GridView.html#/s:6Proton8GridViewC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    Delegate for GridView which can be used to handle cell specific EditorView events

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC30isColumnResizingHandlesVisibleSbvp":{"name":"isColumnResizingHandlesVisible","abstract":"

    Determines if column resizing handles are visible or not.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    Bounds observer for the GridView. Typically, this will be the Attachment that hosts the GridView.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14selectionColorSo7UIColorCSgvp":{"name":"selectionColor","abstract":"

    Selection color for the GridView. Defaults to tintColor

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10isSelectedSbvp":{"name":"isSelected","abstract":"

    Determines if GridView is selected or not.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC22isFreeScrollingEnabledSbvp":{"name":"isFreeScrollingEnabled","abstract":"

    Allows scrolling grid in any direction. Defaults to false","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC20frozenColumnMaxIndexSiSgvp":{"name":"frozenColumnMaxIndex","abstract":"

    Maximum index up till which columns are frozen. Columns are frozen from 0 to this index value.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC17frozenRowMaxIndexSiSgvp":{"name":"frozenRowMaxIndex","abstract":"

    Maximum index up till which rows are frozen. Rows are frozen from 0 to this index value.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC21containsFrozenColumnsSbvp":{"name":"containsFrozenColumns","abstract":"

    Determines if there are any frozen columns in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC18containsFrozenRowsSbvp":{"name":"containsFrozenRows","abstract":"

    Determines if there are any frozen rows in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5cellsSayAA0B4CellCGvp":{"name":"cells","abstract":"

    Collection of cells contained in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC13selectedCellsSayAA0B4CellCGvp":{"name":"selectedCells","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC15numberOfColumnsSivp":{"name":"numberOfColumns","abstract":"

    Number of columns in the GridView.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12numberOfRowsSivp":{"name":"numberOfRows","abstract":"

    Number of rows in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6configAcA0B13ConfigurationV_tcfc":{"name":"init(config:)","abstract":"

    Initializes GridView using the provided configuration.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6config5cellsAcA0B13ConfigurationV_SayAA0B4CellCGtcfc":{"name":"init(config:cells:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC17setColumnResizingyySbF":{"name":"setColumnResizing(_:)","abstract":"

    Enables or disables column resizing

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC24isCellSelectionMergeableySbSayAA0bE0CGF":{"name":"isCellSelectionMergeable(_:)","abstract":"

    Determines if the collection of cells can be merged. For cells to be mergable, they need to","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5merge5cellsySayAA0B4CellCG_tF":{"name":"merge(cells:)","abstract":"

    Merges the cells if the collection is mergeable.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5split4cellyAA0B4CellC_tF":{"name":"split(cell:)","abstract":"

    Splits the cell into original constituent cells from earlier Merge operation.","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC9insertRow2at13configurations6ResultOySayAA0B4CellCGAA0bC5ErrorOGSi_AA0bE13ConfigurationVtF":{"name":"insertRow(at:configuration:)","abstract":"

    Inserts a new row at given index.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12insertColumn2at13configurations6ResultOySayAA0B4CellCGAA0bC5ErrorOGSi_AA0bE13ConfigurationVtF":{"name":"insertColumn(at:configuration:)","abstract":"

    Inserts a new column at given index.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC9deleteRow2atySi_tF":{"name":"deleteRow(at:)","abstract":"

    Deletes the row at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12deleteColumn2atySi_tF":{"name":"deleteColumn(at:)","abstract":"

    Deletes the column at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC13freezeColumns4upToySi_tF":{"name":"freezeColumns(upTo:)","abstract":"

    Freezes all the columns from 0 to the index provided

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10freezeRows4upToySi_tF":{"name":"freezeRows(upTo:)","abstract":"

    Freezes all the rows from 0 to the index provided

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC15unfreezeColumnsyyF":{"name":"unfreezeColumns()","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12unfreezeRowsyyF":{"name":"unfreezeRows()","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC11collapseRow2atySi_tF":{"name":"collapseRow(at:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6cellAt8rowIndex06columnG0AA0B4CellCSgSi_SitF":{"name":"cellAt(rowIndex:columnIndex:)","abstract":"

    Gets the cell at given row and column index. Indexes may be contained in a merged cell.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14scrollToCellAt8rowIndex06columnI08animatedySi_SiSbtF":{"name":"scrollToCellAt(rowIndex:columnIndex:animated:)","abstract":"

    Scrolls the cell at given index into viewable area. Indexes may be contained in a merged cell.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10applyStyle_5toRowyAA0b4CellE0V_SitF":{"name":"applyStyle(_:toRow:)","abstract":"

    Applies style to row at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10applyStyle_8toColumnyAA0b4CellE0V_SitF":{"name":"applyStyle(_:toColumn:)","abstract":"

    Applies style to column at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/c:@CM@Proton@objc(cs)GridView(im)scrollViewDidScroll:":{"name":"scrollViewDidScroll(_:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridCell.html#/s:6Proton8GridCellC7rowSpanSaySiGvp":{"name":"rowSpan","abstract":"

    Row indexes spanned by the cell. In case of a merged cell, this will contain all the rows= indexes which are merged.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10columnSpanSaySiGvp":{"name":"columnSpan","abstract":"

    Column indexes spanned by the cell. In case of a merged cell, this will contain all the column indexes which are merged.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC5frameSo6CGRectVvp":{"name":"frame","abstract":"

    Frame of the cell within GridView

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10isSelectedSbvp":{"name":"isSelected","abstract":"

    Sets the cell selected

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC6editorAA10EditorViewCvp":{"name":"editor","abstract":"

    Editor within the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC12isSplittableSbvp":{"name":"isSplittable","abstract":"

    Denotes if the cell can be split i.e. is a merged cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11contentSizeSo6CGSizeVvp":{"name":"contentSize","abstract":"

    Content size of the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11contentViewSo6UIViewCvp":{"name":"contentView","abstract":"

    Content view for the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC9gridStyleAA0bE0Vvp":{"name":"gridStyle","abstract":"

    Undocumented

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC7rowSpan06columnE013initialHeight5style9gridStyleACSaySiG_AI14CoreFoundation7CGFloatVAA0bcK0VAA0bK0Vtcfc":{"name":"init(rowSpan:columnSpan:initialHeight:style:gridStyle:)","abstract":"

    Undocumented

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC8setFocusyyF":{"name":"setFocus()","abstract":"

    Sets the focus in the Editor within the cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11removeFocusyyF":{"name":"removeFocus()","abstract":"

    Removes the focus from the Editor within the cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10applyStyleyyAA0bcE0VF":{"name":"applyStyle(_:)","abstract":"

    Applies the given style to the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton15BoundsObservingP09didChangeB0_03oldB0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_17didReceiveFocusAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didReceiveFocusAt:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_16didLoseFocusFromyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didLoseFocusFrom:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_16didTapAtLocation14characterRangeyAA0bC0C_So7CGPointVSo8_NSRangeVSgtF":{"name":"editor(_:didTapAtLocation:characterRange:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_20didChangeSelectionAt10attributes11contentTypeyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCtF":{"name":"editor(_:didChangeSelectionAt:attributes:contentType:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_13didReceiveKey2atyAA0bC0C_AA0bH0OSo8_NSRangeVtF":{"name":"editor(_:didReceiveKey:at:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"GridCell"},"Classes/EditorCommandExecutor.html#/s:6Proton21EditorCommandExecutorC7contextAcA0B11ViewContextC_tcfc":{"name":"init(context:)","abstract":"

    Initializes the EditorCommandExecutor

    ","parent_name":"EditorCommandExecutor"},"Classes/EditorCommandExecutor.html#/s:6Proton21EditorCommandExecutorC7executeyyAA0bC0_pF":{"name":"execute(_:)","abstract":"

    Executes the given command on the active EditorView having the same Context as the Command Executor. EditorCommand will be executed only","parent_name":"EditorCommandExecutor"},"Classes/UnderlineCommand.html#/s:6Proton16UnderlineCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"UnderlineCommand"},"Classes/StrikethroughCommand.html#/s:6Proton20StrikethroughCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"StrikethroughCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListOutdentCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandC4nameAA0D4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListOutdentCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Outdents a list item if it supports reversing indentation. When applied on an item at first level, it will remove item from the list.","parent_name":"ListOutdentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListIndentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandC4nameAA0D4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListIndentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Indents a list item if it supports indentation (e.g. unsupported item may mean item at first level)","parent_name":"ListIndentCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC4nameAA0C4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC14attributeValueypSgvp":{"name":"attributeValue","abstract":"

    Value to be set for attribute .listItem when applying to a range of text.","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Executes the command with value of attributeValue for .listItem attribute. If the attributeValue is nil, executing","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC7execute2on14attributeValueyAA10EditorViewC_ypSgtF":{"name":"execute(on:attributeValue:)","abstract":"

    Executes the command with value of attributeValue for .listItem attribute.

    ","parent_name":"ListCommand"},"Classes/ItalicsCommand.html#/s:6Proton14ItalicsCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ItalicsCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton22FontTraitToggleCommandC5traitSo30UIFontDescriptorSymbolicTraitsVvp":{"name":"trait","abstract":"

    Undocumented

    ","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton22FontTraitToggleCommandC4name5traitAcA0E4NameV_So30UIFontDescriptorSymbolicTraitsVtcfc":{"name":"init(name:trait:)","abstract":"

    Undocumented

    ","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","parent_name":"FontTraitToggleCommand"},"Classes/BoldCommand.html#/s:6Proton11BoldCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"BoldCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton23AttributesToggleCommandC10attributesSDySo21NSAttributedStringKeyaypGvp":{"name":"attributes","abstract":"

    Undocumented

    ","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton23AttributesToggleCommandC4name10attributesAcA0D4NameV_SDySo21NSAttributedStringKeyaypGtcfc":{"name":"init(name:attributes:)","abstract":"

    Undocumented

    ","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","parent_name":"AttributesToggleCommand"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC2idSSvp":{"name":"id","abstract":"

    Identifies the EditorViewContextuniquely.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC4nameSSvp":{"name":"name","abstract":"

    Friendly name for the context. It is possible to create multiple EditorViewContext using the same name.","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    EditorView delegate at context level. This delegate will be notified about events in all the Editors that share this particular context.","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC6sharedACvpZ":{"name":"shared","abstract":"

    Default shared context. Use this in case there is only a single EditorView on the screen at the root level.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC06activebC0AA0bC0CSgvp":{"name":"activeEditorView","abstract":"

    EditorView for this context that is currently active.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC4nameACSS_tcfc":{"name":"init(name:)","abstract":"

    Initializes a new context

    ","parent_name":"EditorViewContext"},"Classes/EditorView.html#/s:6Proton10EditorViewC06editorC7ContextAA0bcE0Cvp":{"name":"editorViewContext","abstract":"

    Context for the current Editor

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textInteractionsSaySo17UITextInteractionCGvp":{"name":"textInteractions","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC04textC8GesturesSaySo19UIGestureRecognizerCGvp":{"name":"textViewGestures","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC26textDragInteractionEnabledSbvp":{"name":"textDragInteractionEnabled","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)bounds":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    An object interested in responding to editing and focus related events in the EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC22listFormattingProviderAA0b4ListeF0_pSgvp":{"name":"listFormattingProvider","abstract":"

    List formatting provider to be used for rendering lists in the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18registeredCommandsSayAA0B7Command_pGSgvp":{"name":"registeredCommands","abstract":"

    List of commands supported by the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18asyncTextResolversSayAA05AsyncE9Resolving_pGvp":{"name":"asyncTextResolvers","abstract":"

    Async Text Resolvers supported by the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5frame7context16allowAutogrowingACSo6CGRectV_AA0bC7ContextCSbtcfc":{"name":"init(frame:context:allowAutogrowing:)","abstract":"

    Initializes the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC020editorInputAccessoryC0So6UIViewCSgvp":{"name":"editorInputAccessoryView","abstract":"

    Input accessory view to be used

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC011editorInputC0So6UIViewCSgvp":{"name":"editorInputView","abstract":"

    Input view to be used

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

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20registeredProcessorsSayAA14TextProcessing_pGvp":{"name":"registeredProcessors","abstract":"

    List of all the registered TextProcessors in the EditorView. This may be used by nested EditorView to inherit all the","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17selectedTextRangeSo06UITextF0CSgvp":{"name":"selectedTextRange","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15placeholderTextSo18NSAttributedStringCSgvp":{"name":"placeholderText","abstract":"

    Placeholder text for the EditorView. The value can contain any attributes which is natively","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12contentInsetSo12UIEdgeInsetsVvp":{"name":"contentInset","abstract":"

    Gets or sets insets for additional scroll area around the content. Default value is UIEdgeInsetsZero.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC29verticalScrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"verticalScrollIndicatorInsets","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19keyboardDismissModeSo08UIScrollc8KeyboardeF0Vvp":{"name":"keyboardDismissMode","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15isScrollEnabledSbvp":{"name":"isScrollEnabled","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18textContainerInsetSo12UIEdgeInsetsVvp":{"name":"textContainerInset","abstract":"

    Gets or sets the insets for the text container’s layout area within the editor’s content area

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17dataDetectorTypesSo06UIDataeF0Vvp":{"name":"dataDetectorTypes","abstract":"

    The types of data converted to tappable URLs in the editor view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13contentLengthSivp":{"name":"contentLength","abstract":"

    Length of content within the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC10isEditableSbvp":{"name":"isEditable","abstract":"

    Determines if the EditorView is editable or not.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC7isEmptySbvp":{"name":"isEmpty","abstract":"

    Determines if the editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17currentLayoutLineAA0bF0VSgvp":{"name":"currentLayoutLine","abstract":"

    Current line information based the caret position or selected range. If the selected range spans across multiple","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15firstLayoutLineAA0bF0VSgvp":{"name":"firstLayoutLine","abstract":"

    First line of content based on layout in the Editor. Nil if editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14lastLayoutLineAA0bF0VSgvp":{"name":"lastLayoutLine","abstract":"

    Last line of content based on layout in the Editor. Nil if editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12selectedTextSo18NSAttributedStringCvp":{"name":"selectedText","abstract":"

    Selected text in the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)backgroundColor":{"name":"backgroundColor","abstract":"

    Background color for the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)font":{"name":"font","abstract":"

    Default font to be used by the Editor. A font may be overridden on whole or part of content in EditorView by an EditorCommand or","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)paragraphStyle":{"name":"paragraphStyle","abstract":"

    Default paragraph style to be used by the Editor. The style may be overridden on whole or part of content in","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)textColor":{"name":"textColor","abstract":"

    Default text color to be used by the Editor. The color may be overridden on whole or part of content in","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC9maxHeightAA0bE0Ovp":{"name":"maxHeight","abstract":"

    Maximum height that the EditorView can expand to. After reaching the maximum specified height, the editor becomes scrollable.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14attributedTextSo18NSAttributedStringCvp":{"name":"attributedText","abstract":"

    Text to be set in the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13selectedRangeSo8_NSRangeVvp":{"name":"selectedRange","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16typingAttributesSDySo21NSAttributedStringKeyaypGvp":{"name":"typingAttributes","abstract":"

    Typing attributes to be used. Automatically resets when the selection changes.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    An object interested in observing the changes in bounds of the Editor, typically an Attachment.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13contentOffsetSo7CGPointVvp":{"name":"contentOffset","abstract":"

    Gets and sets the content offset.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18linkTextAttributesSDySo21NSAttributedStringKeyaypGSgvp":{"name":"linkTextAttributes","abstract":"

    The attributes to apply to links.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12textEndRangeSo8_NSRangeVvp":{"name":"textEndRange","abstract":"

    Range of end of text in the EditorView. The range has always has length of 0.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC25isContainedInAnAttachmentSbvp":{"name":"isContainedInAnAttachment","abstract":"

    Determines if the current Editor is contained in an attachment

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11contentNameSo015PREditorContentE0CSgvp":{"name":"contentName","abstract":"

    Name of the content if the Editor is contained within an Attachment.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12visibleRangeSo8_NSRangeVvp":{"name":"visibleRange","abstract":"

    Returns the visible text range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19containerAttachmentAA0E0CSgvp":{"name":"containerAttachment","abstract":"

    Attachment containing the current Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12nestingLevelSivp":{"name":"nestingLevel","abstract":"

    Nesting level of current Editor within other attachments containing Editors.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC04rootB0ACvp":{"name":"rootEditor","abstract":"

    Returns the root editor of the current Editor. Returns self where the current editor is not contained within an Attachment.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC06parentB0ACSgvp":{"name":"parentEditor","abstract":"

    EditorView containing the current EditorView in an Attachment

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5clearyyF":{"name":"clear()","abstract":"

    Clears the contents in the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC22autocapitalizationTypeSo024UITextAutocapitalizationE0Vvp":{"name":"autocapitalizationType","abstract":"

    The auto-capitalization style for the text object.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18autocorrectionTypeSo020UITextAutocorrectionE0Vvp":{"name":"autocorrectionType","abstract":"

    The autocorrection style for the text object.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17spellCheckingTypeSo011UITextSpelleF0Vvp":{"name":"spellCheckingType","abstract":"

    The spell-checking style for the text object.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15smartQuotesTypeSo011UITextSmarteF0Vvp":{"name":"smartQuotesType","abstract":"

    The configuration state for smart quotes.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15smartDashesTypeSo011UITextSmarteF0Vvp":{"name":"smartDashesType","abstract":"

    The configuration state for smart dashes.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC21smartInsertDeleteTypeSo011UITextSmartefG0Vvp":{"name":"smartInsertDeleteType","abstract":"

    The configuration state for the smart insertion and deletion of space characters.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12keyboardTypeSo010UIKeyboardE0Vvp":{"name":"keyboardType","abstract":"

    The keyboard style associated with the text object.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18keyboardAppearanceSo010UIKeyboardE0Vvp":{"name":"keyboardAppearance","abstract":"

    The appearance style of the keyboard that is associated with the text object

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13returnKeyTypeSo08UIReturneF0Vvp":{"name":"returnKeyType","abstract":"

    The visible title of the Return key.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC29enablesReturnKeyAutomaticallySbvp":{"name":"enablesReturnKeyAutomatically","abstract":"

    A Boolean value indicating whether the Return key is automatically enabled when the user is entering text.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17isSecureTextEntrySbvp":{"name":"isSecureTextEntry","abstract":"

    Identifies whether the text object should disable text copying and in some cases hide the text being entered.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15textContentTypeSo06UITexteF0aSgvp":{"name":"textContentType","abstract":"

    The semantic meaning expected by a text input area.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC27allowsEditingTextAttributesSbvp":{"name":"allowsEditingTextAttributes","abstract":"

    A Boolean value indicating whether the text view allows the user to edit style information.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12isSelectableSbvp":{"name":"isSelectable","abstract":"

    A Boolean value indicating whether the receiver is selectable.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textDragDelegateSo06UITexteF0_pSgvp":{"name":"textDragDelegate","abstract":"

    A text drag delegate object for customizing the drag source behavior of a text view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textDropDelegateSo06UITexteF0_pSgvp":{"name":"textDropDelegate","abstract":"

    The text drop delegate for interacting with a drop activity in the text view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)sizeThatFits:":{"name":"sizeThatFits(_:)","abstract":"

    Asks the view to calculate and return the size that best fits the specified size.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)becomeFirstResponder":{"name":"becomeFirstResponder()","abstract":"

    Asks UIKit to make this object the first responder in its window.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11markedRangeSo8_NSRangeVSgvp":{"name":"markedRange","abstract":"

    The range of currently marked text in a document.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13setAttributes_2atySDySo21NSAttributedStringKeyaypG_So8_NSRangeVtF":{"name":"setAttributes(_:at:)","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC21getFullAttributedText5usingSo18NSAttributedStringCAA27AttachmentContentIdentifierV_tF":{"name":"getFullAttributedText(using:)","abstract":"

    Returns the full attributed text contained in the EditorView along with the ones in editors nested in contained Attachments.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC27setNeedsAsyncTextResolutionyyF":{"name":"setNeedsAsyncTextResolution()","abstract":"

    Sets async text resolution to resolve on next text layout pass.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC24resolveAsyncTextIfNeededyyF":{"name":"resolveAsyncTextIfNeeded()","abstract":"

    Invokes async text resolution to resolve on demand.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16rangeOfCharacter2atSo8_NSRangeVSgSo7CGPointV_tF":{"name":"rangeOfCharacter(at:)","abstract":"

    Returns the range of character at the given point

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19contentLinesInRangeySayAA0B4LineVGSo8_NSRangeVF":{"name":"contentLinesInRange(_:)","abstract":"

    Gets the lines separated by newline characters from the given range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19previousContentLine4fromAA0bF0VSgSi_tF":{"name":"previousContentLine(from:)","abstract":"

    Gets the previous line of content from the given location. A content line is defined by the presence of a","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15nextContentLine4fromAA0bF0VSgSi_tF":{"name":"nextContentLine(from:)","abstract":"

    Gets the next line of content from the given location. A content line is defined by the presence of a","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15layoutLineAfteryAA0bE0VSgAFF":{"name":"layoutLineAfter(_:)","abstract":"

    Gets the line preceding the given line. Nil if the given line is invalid or is first line

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16layoutLineBeforeyAA0bE0VSgAFF":{"name":"layoutLineBefore(_:)","abstract":"

    Gets the line before the given line. Nil if the given line is invalid or is first line

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5rects3forSaySo6CGRectVGSo8_NSRangeV_tF":{"name":"rects(for:)","abstract":"

    Returns the rectangles for line fragments spanned by the range. Based on the span of the range,","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC9caretRect3forSo6CGRectVSi_tF":{"name":"caretRect(for:)","abstract":"

    Returns the caret rectangle for given position in the editor content.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC4word2atSo18NSAttributedStringCSgSi_tF":{"name":"word(at:)","abstract":"

    Gets the word from text at given location in editor content

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17attributeRangeFor_2atSo8_NSRangeVSgSo21NSAttributedStringKeya_SitF":{"name":"attributeRangeFor(_:at:)","abstract":"

    Gets the full range of attribute at given location.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14deleteBackwardyyF":{"name":"deleteBackward()","abstract":"

    Deletes text backwards

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16insertAttachment2in10attachmentySo8_NSRangeV_AA0E0CtF":{"name":"insertAttachment(in:attachment:)","abstract":"

    Inserts an Attachment in the EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8setFocusyyF":{"name":"setFocus()","abstract":"

    Sets the focus in the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11resignFocusyyF":{"name":"resignFocus()","abstract":"

    Makes the EditorView lose focus.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20scrollRangeToVisibleyySo8_NSRangeVF":{"name":"scrollRangeToVisible(_:)","abstract":"

    Makes the EditorView scroll to given range such that it is visible. No-op if the range is already visible.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19scrollRectToVisible_8animatedySo6CGRectV_SbtF":{"name":"scrollRectToVisible(_:animated:)","abstract":"

    Makes the EditorView scroll to given range such that it is visible. No-op if the range is already visible.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8contents2inSayAA0B7ContentVGSo8_NSRangeVSg_tF":{"name":"contents(in:)","abstract":"

    Gets the contents within the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17transformContents2in5usingSay11EncodedTypeQzGSo8_NSRangeVSg_xtAA0B15ContentEncodingRzlF":{"name":"transformContents(in:using:)","abstract":"

    Transforms EditorContent into given type. This function can also be used to encode content into a different type for e.g. encoding the contents to JSON. Encoding","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17replaceCharacters2in4withySo8_NSRangeV_So18NSAttributedStringCtF":{"name":"replaceCharacters(in:with:)","abstract":"

    Replaces the given range of content with the attributedString provided.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17replaceCharacters2in4withySo8_NSRangeV_SStF":{"name":"replaceCharacters(in:with:)","abstract":"

    Replaces the characters in the given range with the string provided.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16appendCharactersyySo18NSAttributedStringCF":{"name":"appendCharacters(_:)","abstract":"

    Appends the given attributed text to the end of content in EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16appendCharactersyySSF":{"name":"appendCharacters(_:)","abstract":"

    Appends the given attributed text to the end of content in EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17registerProcessoryyAA14TextProcessing_pF":{"name":"registerProcessor(_:)","abstract":"

    Registers the given text processor with the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19unregisterProcessoryyAA14TextProcessing_pF":{"name":"unregisterProcessor(_:)","abstract":"

    Unregisters the given text processor from the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18registerProcessorsyySayAA14TextProcessing_pGF":{"name":"registerProcessors(_:)","abstract":"

    Registers the given text processors with the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20unregisterProcessorsyySayAA14TextProcessing_pGF":{"name":"unregisterProcessors(_:)","abstract":"

    Unregisters the given text processors from the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16registerCommandsyySayAA0B7Command_pGF":{"name":"registerCommands(_:)","abstract":"

    Registers the given commands with the Editor. Only registered commands can be executed if any is added to the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18unregisterCommandsyySayAA0B7Command_pGF":{"name":"unregisterCommands(_:)","abstract":"

    Unregisters the given commands from the Editor. When all commands are unregistered, any command can be executed on the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15registerCommandyyAA0bE0_pF":{"name":"registerCommand(_:)","abstract":"

    Registers the given command with the Editor. Only registered commands can be executed if any is added to the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17unregisterCommandyyAA0bE0_pF":{"name":"unregisterCommand(_:)","abstract":"

    Unregisters the given command from the Editor. When all commands are unregistered, any command can be executed on the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)canPerformAction:withSender:":{"name":"canPerformAction(_:withSender:)","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20canPerformMenuAction_10withSenderSb10ObjectiveC8SelectorV_ypSgtF":{"name":"canPerformMenuAction(_:withSender:)","abstract":"

    Determines if the given menu action can be invoked.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5paste16attributedString4intoSbSo012NSAttributedF0C_So8_NSRangeVtF":{"name":"paste(attributedString:into:)","abstract":"

    This method attempt to simulate the paste method but with explicitly provided attributed string and insertion range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13addAttributes_2atySDySo21NSAttributedStringKeyaypG_So8_NSRangeVtF":{"name":"addAttributes(_:at:)","abstract":"

    Adds given attributes to the range provided. If the range already contains a value for an attribute being provided,","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16removeAttributes_2atySaySo21NSAttributedStringKeyaG_So8_NSRangeVtF":{"name":"removeAttributes(_:at:)","abstract":"

    Removes the given attributes from the range provided. If the attribute does not exist in the range, it will be a no-op.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12addAttribute_5value2atySo21NSAttributedStringKeya_ypSo8_NSRangeVtF":{"name":"addAttribute(_:value:at:)","abstract":"

    Adds given attribute to the range provided. If the attribute already exists in the range, it will be overwritten with the new value provided here.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15removeAttribute_2atySo21NSAttributedStringKeya_So8_NSRangeVtF":{"name":"removeAttribute(_:at:)","abstract":"

    Removes the attribute from given range. If the attribute does not exist in the range, it is a no-op.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16resolveAsyncTextyyF":{"name":"resolveAsyncText()","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19isCommandRegisteredySbAA0E4NameVF":{"name":"isCommandRegistered(_:)","abstract":"

    Determines if the given command can be executed on the current editor. The command is allowed to be executed if","parent_name":"EditorView"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Background color

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC013roundedCornerC0AA07RoundedeC0Ovp":{"name":"roundedCornerStyle","abstract":"

    Rounding style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6borderAA06BorderC0CSgvp":{"name":"border","abstract":"

    Optional border style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6shadowAA06ShadowC0CSgvp":{"name":"shadow","abstract":"

    Optional shadow style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC18hasSquaredOffJoinsSbvp":{"name":"hasSquaredOffJoins","abstract":"

    Determines if the background has squared off joins at the point of wrapping of content.","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC10heightModeAA0bE0Ovp":{"name":"heightMode","abstract":"

    Defines if the background should be drawn based on height of text range with style, or that of the height of line fragment containing","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC9widthModeAA0bE0Ovp":{"name":"widthMode","abstract":"

    Defines if the background should be drawn based on width of text range with style, or that of the entire width of line fragment containing","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6insetsSo12UIEdgeInsetsVvp":{"name":"insets","abstract":"

    Insets for drawn background. Defaults to .zero

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC5color013roundedCornerC06border6shadow18hasSquaredOffJoins10heightMode05widthN06insetsACSo7UIColorC_AA07RoundedfC0OAA06BorderC0CSgAA06ShadowC0CSgSbAA0bN0OAWSo12UIEdgeInsetsVtcfc":{"name":"init(color:roundedCornerStyle:border:shadow:hasSquaredOffJoins:heightMode:widthMode:insets:)","abstract":"

    Undocumented

    ","parent_name":"BackgroundStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Color of border

    ","parent_name":"BorderStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC9lineWidth14CoreFoundation7CGFloatVvp":{"name":"lineWidth","abstract":"

    Width of the border

    ","parent_name":"BorderStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC9lineWidth5colorAC14CoreFoundation7CGFloatV_So7UIColorCtcfc":{"name":"init(lineWidth:color:)","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Color of the shadow

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC6offsetSo6CGSizeVvp":{"name":"offset","abstract":"

    Shadow offset

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC4blur14CoreFoundation7CGFloatVvp":{"name":"blur","abstract":"

    Shadow blur

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC5color6offset4blurACSo7UIColorC_So6CGSizeV14CoreFoundation7CGFloatVtcfc":{"name":"init(color:offset:blur:)","abstract":"

    Undocumented

    ","parent_name":"ShadowStyle"},"Classes/Attachment.html#/s:6Proton10AttachmentC18selectBeforeDeleteSbvp":{"name":"selectBeforeDelete","abstract":"

    Governs if the attachment should be selected before being deleted. When true, tapping the backspace key the first time on range containing Attachment will only","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6stringSo18NSAttributedStringCvp":{"name":"string","abstract":"

    Attributed string representation of the Attachment. This can be used directly to replace a range of text in EditorView

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC4nameSo19PREditorContentNameCSgvp":{"name":"name","abstract":"

    Name of the content contained within the Attachment

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC14contentEditorsSayAA10EditorViewCGvp":{"name":"contentEditors","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC19containerEditorViewAA0dE0CSgvp":{"name":"containerEditorView","abstract":"

    EditorView containing this attachment

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC14offsetProviderAA0B15OffsetProviding_pSgvp":{"name":"offsetProvider","abstract":"

    Offsets for the attachment. Can be used to align attachment with the text. Defaults to .zero

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC20containerContentNameSo08PREditordE0CSgvp":{"name":"containerContentName","abstract":"

    Name of the content for the EditorView

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC11contentViewSo6UIViewCSgvp":{"name":"contentView","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC15containerBoundsSo6CGRectVSgvp":{"name":"containerBounds","abstract":"

    Bounds of the container

    ","parent_name":"Attachment"},"Classes/Attachment.html#/c:@M@Proton@objc(cs)Attachment(py)bounds":{"name":"bounds","abstract":"

    The bounds rectangle, which describes the attachment’s location and size in its own coordinate system.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC5imageAcA0B5ImageV_tcfc":{"name":"init(image:)","abstract":"

    Initializes an attachment with the image provided.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC_4sizeAcA0B15TypeIdentifying_AA013EditorContentE0So6UIViewCXc_AA0B4SizeOtcfc":{"name":"init(_:size:)","abstract":"

    Initializes the attachment with the given content view

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC15didChangeBounds_03oldE0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","abstract":"

    Causes invalidation of layout of the attachment when the containing view bounds are changed

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC19removeFromContaineryyF":{"name":"removeFromContainer()","abstract":"

    Removes this attachment from the EditorView it is contained in.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC16rangeInContainerSo8_NSRangeVSgyF":{"name":"rangeInContainer()","abstract":"

    Range of this attachment in it’s container

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC32addedAttributesOnContainingRange16rangeInContainer10attributesySo8_NSRangeV_SDySo21NSAttributedStringKeyaypGtF":{"name":"addedAttributesOnContainingRange(rangeInContainer:attributes:)","abstract":"

    Invoked when attributes are added in the containing EditorView in the range of string in which this attachment is contained.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC36removedAttributesFromContainingRange16rangeInContainer10attributesySo8_NSRangeV_SaySo21NSAttributedStringKeyaGtF":{"name":"removedAttributesFromContainingRange(rangeInContainer:attributes:)","parent_name":"Attachment"},"Classes/Attachment.html#/c:@M@Proton@objc(cs)Attachment(im)attachmentBoundsForTextContainer:proposedLineFragment:glyphPosition:characterIndex:":{"name":"attachmentBounds(for:proposedLineFragment:glyphPosition:characterIndex:)","abstract":"

    Returns the calculated bounds for the attachment based on size rule and content view provided during initialization.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6update4withyAA0B5ImageV_tF":{"name":"update(with:)","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6update_4sizeyAA0B15TypeIdentifying_AA013EditorContentF0So6UIViewCXc_AA0B4SizeOtF":{"name":"update(_:size:)","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC40getFullTextRangeIdentificationAttributesSDySo21NSAttributedStringKeyaypGyF":{"name":"getFullTextRangeIdentificationAttributes()","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC16invalidateLayoutyyF":{"name":"invalidateLayout()","abstract":"

    Invalidates the current layout and triggers a layout update.

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

    An attachment can be used as a container for any view object. Based on the AttachmentSize provided, the attachment automatically renders itself alongside the text in EditorView."},"Classes/ShadowStyle.html":{"name":"ShadowStyle","abstract":"

    Shadow style for backgroundStyle attribute

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

    Border style for backgroundStyle attribute

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

    Style for background color attribute. Adding backgroundStyle attribute will add border, background and shadow"},"Classes/EditorView.html":{"name":"EditorView","abstract":"

    A scrollable, multiline text region capable of resizing itself based of the height of the content. Maximum height of EditorView"},"Classes/EditorViewContext.html":{"name":"EditorViewContext","abstract":"

    Describes the context for the EditorView. A context is used to execute the commands using EditorCommandExecutor. In a typical scenario, where there are"},"Classes/AttributesToggleCommand.html":{"name":"AttributesToggleCommand","abstract":"

    Editor command that toggles given attributes in selected range in the Editor.

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

    Editor command that toggles Bold attribute to the selected range in the Editor.

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

    Editor command that toggles given font trait to the selected range in the Editor.

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

    Editor command that toggles Italics attribute to the selected range in the Editor.

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

    Command that can be used to toggle list attributes of selected range of text."},"Classes/ListIndentCommand.html":{"name":"ListIndentCommand","abstract":"

    Command that can be used to toggle list indentation of selected range of text.

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

    Command that can be used to toggle list indentation of selected range of text.

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

    Undocumented

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

    Undocumented

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

    EditorCommandExecutor manages all the EditorView in the main EditorView. Sub editors may have been added as Attachment in the EditorView."},"Classes/GridCell.html":{"name":"GridCell","abstract":"

    Denotes a cell in the GridView

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

    A view that provides a tabular structure where each cell is an EditorView."},"Classes/ListTextProcessor.html":{"name":"ListTextProcessor","abstract":"

    Text process capable of processing keyboard inputs specific to lists. ListTextProcessor only works after a range of text"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions 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.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file +{"Typealiases.html#/s:6Proton10Attributesa":{"name":"Attributes","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton14AttachmentViewa":{"name":"AttachmentView","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton25AttachmentViewIdentifyinga":{"name":"AttachmentViewIdentifying","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton22TextProcessingPrioritya":{"name":"TextProcessingPriority","abstract":"

    Undocumented

    "},"Typealiases.html#/s:6Proton9Processeda":{"name":"Processed","abstract":"

    Undocumented

    "},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5colorSo7UIColorCvp":{"name":"color","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5width14CoreFoundation7CGFloatVvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Structs/GridCellStyle/BorderStyle.html#/s:6Proton13GridCellStyleV06BorderD0V5color5widthAESo7UIColorC_14CoreFoundation7CGFloatVtcfc":{"name":"init(color:width:)","abstract":"

    Undocumented

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

    Border style for individual cells. This may be used to override the style provided in the GridStyle for individual cells

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV15backgroundColorSo7UIColorCSgvp":{"name":"backgroundColor","abstract":"

    Default background color for the cell.

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV9textColorSo7UIColorCSgvp":{"name":"textColor","abstract":"

    Default text color for the cell

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV4fontSo6UIFontCSgvp":{"name":"font","abstract":"

    Default font for the cell

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV06borderD0AC06BorderD0VSgvp":{"name":"borderStyle","abstract":"

    Undocumented

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV15backgroundColor04textF04font06borderD0ACSo7UIColorCSg_AJSo6UIFontCSgAC06BorderD0VSgtcfc":{"name":"init(backgroundColor:textColor:font:borderStyle:)","abstract":"

    Undocumented

    ","parent_name":"GridCellStyle"},"Structs/GridCellStyle.html#/s:6Proton13GridCellStyleV6merged5style5otherA2C_ACtFZ":{"name":"merged(style:other:)","abstract":"

    Creates a merged styles from given styles with precedence to the first style and any missing values used from the second style

    ","parent_name":"GridCellStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderColorSo7UIColorCvp":{"name":"borderColor","abstract":"

    Border color for grid

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderWidth14CoreFoundation7CGFloatVvp":{"name":"borderWidth","abstract":"

    Border width for the grid

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV7defaultACvpZ":{"name":"default","abstract":"

    Default style

    ","parent_name":"GridStyle"},"Structs/GridStyle.html#/s:6Proton9GridStyleV11borderColor0D5WidthACSo7UIColorC_14CoreFoundation7CGFloatVtcfc":{"name":"init(borderColor:borderWidth:)","abstract":"

    Undocumented

    ","parent_name":"GridStyle"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV5styleAA0B5StyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV23boundsLimitShadowColorsAA08GradientG0Vvp":{"name":"boundsLimitShadowColors","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV07columnsC0SayAA0b6ColumnC0VGvp":{"name":"columnsConfiguration","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV04rowsC0SayAA0b3RowC0VGvp":{"name":"rowsConfiguration","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV20collapsedColumnWidth14CoreFoundation7CGFloatVvp":{"name":"collapsedColumnWidth","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV18collapsedRowHeight14CoreFoundation7CGFloatVvp":{"name":"collapsedRowHeight","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV07columnsC004rowsC05style23boundsLimitShadowColors20collapsedColumnWidth0K9RowHeightACSayAA0blC0VG_SayAA0bnC0VGAA0B5StyleVAA08GradientJ0V14CoreFoundation7CGFloatVAVtcfc":{"name":"init(columnsConfiguration:rowsConfiguration:style:boundsLimitShadowColors:collapsedColumnWidth:collapsedRowHeight:)","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV15numberOfColumnsSivp":{"name":"numberOfColumns","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GridConfiguration.html#/s:6Proton17GridConfigurationV12numberOfRowsSivp":{"name":"numberOfRows","abstract":"

    Undocumented

    ","parent_name":"GridConfiguration"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV7primarySo7UIColorCvp":{"name":"primary","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV9secondarySo7UIColorCvp":{"name":"secondary","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GradientColors.html#/s:6Proton14GradientColorsV7primary9secondaryACSo7UIColorC_AGtcfc":{"name":"init(primary:secondary:)","abstract":"

    Undocumented

    ","parent_name":"GradientColors"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV13initialHeight14CoreFoundation7CGFloatVvp":{"name":"initialHeight","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV5styleAA0B9CellStyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridRowConfiguration.html#/s:6Proton20GridRowConfigurationV13initialHeight5styleAC14CoreFoundation7CGFloatV_AA0B9CellStyleVtcfc":{"name":"init(initialHeight:style:)","abstract":"

    Undocumented

    ","parent_name":"GridRowConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5widthAA0bC5WidthOvp":{"name":"width","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5styleAA0B9CellStyleVvp":{"name":"style","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/GridColumnConfiguration.html#/s:6Proton23GridColumnConfigurationV5width5styleAcA0bC5WidthO_AA0B9CellStyleVtcfc":{"name":"init(width:style:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnConfiguration"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingV11EncodedTypea":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingVyACyxGqd__c11EncodedTypeQyd__RszAA0eF0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes the Encoder

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorContentAttachmentEncoding.html#/s:6Proton34AnyEditorContentAttachmentEncodingV6encode4name4viewxSo08PREditorD4NameC_So6UIViewCtF":{"name":"encode(name:view:)","abstract":"

    Encodes contents based on concrete encoder provided during initialization

    ","parent_name":"AnyEditorContentAttachmentEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingV11EncodedTypea":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AnyEditorTextEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingVyACyxGqd__c11EncodedTypeQyd__RszAA0cdE0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes the Encoder

    ","parent_name":"AnyEditorTextEncoding"},"Structs/AnyEditorTextEncoding.html#/s:6Proton21AnyEditorTextEncodingV6encode4name6stringxSo19PREditorContentNameC_So18NSAttributedStringCtF":{"name":"encode(name:string:)","abstract":"

    Encodes contents based on concrete encoder provided during initialization

    ","parent_name":"AnyEditorTextEncoding"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV11indentation14CoreFoundation7CGFloatVvp":{"name":"indentation","abstract":"

    Indentation of line

    ","parent_name":"LineFormatting"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV13spacingBefore14CoreFoundation7CGFloatVvp":{"name":"spacingBefore","abstract":"

    Vertical spacing before the line

    ","parent_name":"LineFormatting"},"Structs/LineFormatting.html#/s:6Proton14LineFormattingV11indentation13spacingBeforeAC14CoreFoundation7CGFloatV_AHtcfc":{"name":"init(indentation:spacingBefore:)","abstract":"

    Initializes

    ","parent_name":"LineFormatting"},"Structs/EditorLine.html#/s:6Proton10EditorLineV4textSo18NSAttributedStringCvp":{"name":"text","abstract":"

    Text contained in the current line.

    ","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV5rangeSo8_NSRangeVvp":{"name":"range","abstract":"

    Range of text in the EditorView for the current line.

    ","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV10startsWithySbSSF":{"name":"startsWith(_:)","abstract":"

    Determines if the current line starts with given text.","parent_name":"EditorLine"},"Structs/EditorLine.html#/s:6Proton10EditorLineV8endsWithySbSSF":{"name":"endsWith(_:)","abstract":"

    Determines if the current line ends with given text.","parent_name":"EditorLine"},"Structs/AttachmentContentIdentifier.html#/s:6Proton27AttachmentContentIdentifierV9openingIDSo18NSAttributedStringCvp":{"name":"openingID","abstract":"

    Undocumented

    ","parent_name":"AttachmentContentIdentifier"},"Structs/AttachmentContentIdentifier.html#/s:6Proton27AttachmentContentIdentifierV9closingIDSo18NSAttributedStringCvp":{"name":"closingID","abstract":"

    Undocumented

    ","parent_name":"AttachmentContentIdentifier"},"Structs/EditorContent.html#/s:6Proton13EditorContentV4typeAA0bC4TypeOvp":{"name":"type","abstract":"

    Type of EditorContent

    ","parent_name":"EditorContent"},"Structs/EditorContent.html#/s:6Proton13EditorContentV14enclosingRangeSo8_NSRangeVSgvp":{"name":"enclosingRange","abstract":"

    Range within the Editor for this content

    ","parent_name":"EditorContent"},"Structs/EditorContent.html#/s:6Proton13EditorContentV4Namea":{"name":"Name","abstract":"

    Name for the content within the Editor. All the content (text and attachments) must have","parent_name":"EditorContent"},"Structs/AnyEditorContentDecoding.html#/s:6Proton24AnyEditorContentDecodingVyACyxq_Gqd__c12TypeToDecodeQyd__Rsz0E7ContextQyd__Rs_AA0cdE0Rd__lufc":{"name":"init(_:)","abstract":"

    Initializes AnyEditorContentDecoding

    ","parent_name":"AnyEditorContentDecoding"},"Structs/AnyEditorContentDecoding.html#/s:6Proton24AnyEditorContentDecodingV6decode4mode7maxSize5value7contextSo18NSAttributedStringCAA0cD4ModeO_So6CGSizeVxq_tKF":{"name":"decode(mode:maxSize:value:context:)","abstract":"

    Decodes the given value to NSAttributedString

    ","parent_name":"AnyEditorContentDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingV4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingVyACyxGqd__c12TypeToDecodeQyd__RszAA010AttributesD0Rd__lufc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/AnyAttributeDecoding.html#/s:6Proton20AnyAttributeDecodingV6decodeySDySo21NSAttributedStringKeyaypGxF":{"name":"decode(_:)","abstract":"

    Undocumented

    ","parent_name":"AnyAttributeDecoding"},"Structs/SquareBulletSequenceGenerator.html#/s:6Proton29SquareBulletSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"SquareBulletSequenceGenerator"},"Structs/SquareBulletSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"SquareBulletSequenceGenerator"},"Structs/DiamondBulletSequenceGenerator.html#/s:6Proton30DiamondBulletSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"DiamondBulletSequenceGenerator"},"Structs/DiamondBulletSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"DiamondBulletSequenceGenerator"},"Structs/NumericSequenceGenerator.html#/s:6Proton24NumericSequenceGeneratorVACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"NumericSequenceGenerator"},"Structs/NumericSequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","parent_name":"NumericSequenceGenerator"},"Structs/ListParser.html#/s:6Proton10ListParserV5parse4list6indentSo18NSAttributedStringCSayAA0B4ItemVG_14CoreFoundation7CGFloatVtFZ":{"name":"parse(list:indent:)","abstract":"

    Parses an array of list items into an NSAttributedString representation. NewLines are automatically added between each list item in the attributed string representation.

    ","parent_name":"ListParser"},"Structs/ListParser.html#/s:6Proton10ListParserV5parse16attributedString6indentSaySo8_NSRangeV5range_AA0B4ItemV04listJ0tGSo012NSAttributedF0C_14CoreFoundation7CGFloatVtFZ":{"name":"parse(attributedString:indent:)","abstract":"

    Parses NSAttributedString to list items

    ","parent_name":"ListParser"},"Structs/ListItem.html#/s:6Proton8ListItemV4textSo18NSAttributedStringCvp":{"name":"text","abstract":"

    Text of the list item. All attributes are preserved as is.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV5levelSivp":{"name":"level","abstract":"

    Level of the list item. This is used with indent to get paragraphStyle to be applied with appropriate indentation of the list items.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV14attributeValueypvp":{"name":"attributeValue","abstract":"

    Attribute value of the list item.

    ","parent_name":"ListItem"},"Structs/ListItem.html#/s:6Proton8ListItemV4text5level14attributeValueACSo18NSAttributedStringC_Siyptcfc":{"name":"init(text:level:attributeValue:)","abstract":"

    Creates a ListItem

    ","parent_name":"ListItem"},"Structs/CommandName.html#/s:6Proton11CommandNameV8rawValueSSvp":{"name":"rawValue","abstract":"

    Name of the command. Must be unique across different types of commands.

    ","parent_name":"CommandName"},"Structs/CommandName.html#/s:6Proton11CommandNameVyACSScfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"CommandName"},"Structs/CommandName.html#/s:SY8rawValuexSg03RawB0Qz_tcfc":{"name":"init(rawValue:)","parent_name":"CommandName"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4nameSo19PREditorContentNameCvp":{"name":"name","abstract":"

    Content name for the image

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV5imageSo7UIImageCvp":{"name":"image","abstract":"

    Image content

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4sizeSo6CGSizeVvp":{"name":"size","abstract":"

    Size of the image

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4typeAA0B4TypeOvp":{"name":"type","abstract":"

    Denotes if the image is block content or an inline

    ","parent_name":"AttachmentImage"},"Structs/AttachmentImage.html#/s:6Proton15AttachmentImageV4name5image4size4typeACSo19PREditorContentNameC_So7UIImageCSo6CGSizeVAA0B4TypeOtcfc":{"name":"init(name:image:size:type:)","abstract":"

    Initializes the Block Content image

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

    Describes an image for which can be used in an Attachment

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

    Identifies an EditorCommand or a RendererCommand

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

    Represents an item in the list. This structure may be used to create NSAttributedString from items in an array of ListItem. Alternatively, NSAttributedString may also be parsed to get an array of ListItems.

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

    Provides helper function to convert between NSAttributedString and [ListItem]

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

    Simple numeric sequence generator.

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

    Simple bullet sequence generator that returns a diamond symbol.

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

    Simple bullet sequence generator that returns a square symbol.

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

    A type-erased implementation of AttributesDecoding

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

    A type-erased implementation of EditorContentDecoding

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

    Defines a content type for Editor. This may be used to serialize the contents of an Editor via enumerating through the contents of the Editor.

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

    Describes opening and closing separators for EditorViewgetFullAttributedText(:) function.

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

    Representation of a line of text in EditorView. A line is defined as a single fragment starting from the beginning of"},"Structs/LineFormatting.html":{"name":"LineFormatting","abstract":"

    Describes the formatting of a line of text. While general purpose in nature, this is"},"Structs/AnyEditorTextEncoding.html":{"name":"AnyEditorTextEncoding","abstract":"

    /// A type-erased implementation of EditorTextEncoding

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

    A type-erased implementation of AttachmentEncoding.

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Undocumented

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

    Style configuration for the grid

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

    Style configuration for the GridCell

    "},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP4nameSSvp":{"name":"name","abstract":"

    Name of the TextProcessor

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP8prioritySivp":{"name":"priority","abstract":"

    Priority of the TextProcessor. An EditorView can have multiple TextProcessors registered. These will be executed in the order of Priority.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP13shouldProcess_0deB2In011replacementB0SbAA10EditorViewC_So8_NSRangeVSStF":{"name":"shouldProcess(_:shouldProcessTextIn:replacementText:)","abstract":"

    Determines if the text should be changed in the editor.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP11willProcess07deletedB008insertedB0ySo18NSAttributedStringC_AHtF":{"name":"willProcess(deletedText:insertedText:)","abstract":"

    Invoked before changes are processed by the editor.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP7process6editor5range14changeInLengthSbAA10EditorViewC_So8_NSRangeVSitF":{"name":"process(editor:range:changeInLength:)","abstract":"

    Allows to change attributes and text in the EditorView as the text is changed.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP22handleKeyWithModifiers6editor3key13modifierFlags5rangeyAA10EditorViewC_AA0mE0OSo013UIKeyModifierK0VSo8_NSRangeVtF":{"name":"handleKeyWithModifiers(editor:key:modifierFlags:range:)","abstract":"

    Allows to change attributes and text in the EditorView as the text is changed.

    ","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP18processInterrupted6editor2atyAA10EditorViewC_So8_NSRangeVtF":{"name":"processInterrupted(editor:at:)","abstract":"

    Fired when processing has been interrupted by another TextProcessor running in the same pass. This allows TextProcessor to revert","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP20selectedRangeChanged6editor03oldE003newE0yAA10EditorViewC_So8_NSRangeVSgALtF":{"name":"selectedRangeChanged(editor:oldRange:newRange:)","abstract":"

    Notifies the processor that the selected range has changed in the EditorView due to a reason other than typing text","parent_name":"TextProcessing"},"Protocols/TextProcessing.html#/s:6Proton14TextProcessingP10didProcess6editoryAA10EditorViewC_tF":{"name":"didProcess(editor:)","abstract":"

    Invoked after the text has been processed in the Editor.

    ","parent_name":"TextProcessing"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_17didReceiveFocusAt2inyAA0bC0C_So8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didReceiveFocusAt:in:)","abstract":"

    Invoked when EditorView within the cell receives focus

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didLoseFocusFrom2inyAA0bC0C_So8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didLoseFocusFrom:in:)","abstract":"

    Invoked when EditorView within the cell loses focus

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didTapAtLocation14characterRange2inyAA0bC0C_So7CGPointVSo8_NSRangeVSgAA0B4CellCtF":{"name":"gridView(_:didTapAtLocation:characterRange:in:)","abstract":"

    Invoked when tap event occurs within the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_20didChangeSelectionAt10attributes11contentType2inyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCAA0B4CellCtF":{"name":"gridView(_:didChangeSelectionAt:attributes:contentType:in:)","abstract":"

    Invoked on selection changes with in the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_15didChangeBounds2inyAA0bC0C_So6CGRectVAA0B4CellCtF":{"name":"gridView(_:didChangeBounds:in:)","abstract":"

    Invoked on change of bounds of the Editor within the cell

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_14didSelectCellsyAA0bC0C_SayAA0B4CellCGtF":{"name":"gridView(_:didSelectCells:)","abstract":"

    Invoked when selection of cells is changed.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_16didUnselectCellsyAA0bC0C_SayAA0B4CellCGtF":{"name":"gridView(_:didUnselectCells:)","abstract":"

    Invoked when selection of cells is changed.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_13didReceiveKey2at2inyAA0bC0C_AA06EditorH0OSo8_NSRangeVAA0B4CellCtF":{"name":"gridView(_:didReceiveKey:at:in:)","abstract":"

    Invoked when special keys are intercepted in the Editor contained in the cell.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_23shouldChangeColumnWidth3forSbAA0bC0C_14CoreFoundation7CGFloatVSitF":{"name":"gridView(_:shouldChangeColumnWidth:for:)","abstract":"

    Invoked when a column in GridView is resized.

    ","parent_name":"GridViewDelegate"},"Protocols/GridViewDelegate.html#/s:6Proton16GridViewDelegateP04gridC0_13didLayoutCellyAA0bC0C_AA0bH0CtF":{"name":"gridView(_:didLayoutCell:)","abstract":"

    Undocumented

    ","parent_name":"GridViewDelegate"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP1TQa":{"name":"T","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP12textEncodersSDySo08PREditorC4NameCAA03AnyB12TextEncodingVy1TQzGGvp":{"name":"textEncoders","abstract":"

    Encoders for text content i.e. NSAttributedString based content

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP18attachmentEncodersSDySo08PREditorC4NameCAA03AnybC18AttachmentEncodingVy1TQzGGvp":{"name":"attachmentEncoders","abstract":"

    Encoders for attachment types

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoder.html#/s:6Proton20EditorContentEncoderP6encodey1TQzSgAA0bC0VF":{"name":"encode(_:)","abstract":"

    Encodes the given content.

    ","parent_name":"EditorContentEncoder"},"Protocols/EditorContentEncoding.html#/s:6Proton21EditorContentEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoding"},"Protocols/EditorContentEncoding.html#/s:6Proton21EditorContentEncodingP6encodey11EncodedTypeQzSgAA0bC0VF":{"name":"encode(_:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentEncoding"},"Protocols/AttachmentEncoding.html#/s:6Proton18AttachmentEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"AttachmentEncoding"},"Protocols/AttachmentEncoding.html#/s:6Proton18AttachmentEncodingP6encode4name4view11EncodedTypeQzSo19PREditorContentNameC_So6UIViewCtF":{"name":"encode(name:view:)","abstract":"

    Encodes given Attachment content view to given type

    ","parent_name":"AttachmentEncoding"},"Protocols/EditorTextEncoding.html#/s:6Proton18EditorTextEncodingP11EncodedTypeQa":{"name":"EncodedType","abstract":"

    Undocumented

    ","parent_name":"EditorTextEncoding"},"Protocols/EditorTextEncoding.html#/s:6Proton18EditorTextEncodingP6encode4name6string11EncodedTypeQzSo19PREditorContentNameC_So18NSAttributedStringCtF":{"name":"encode(name:string:)","abstract":"

    Encodes the given attributed string to EncodedType

    ","parent_name":"EditorTextEncoding"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","abstract":"

    Identifies a command. This value is used to maintain unique registrations of commands in an Editor. Adding a command with the same name","parent_name":"EditorCommand"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP10canExecute2onSbAA0B4ViewC_tF":{"name":"canExecute(on:)","abstract":"

    Determines if the current command can be executed on the given EditorView. When a command is executed using EditorCommandExecutor, it ensures","parent_name":"EditorCommand"},"Protocols/EditorCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","abstract":"

    Execute the command on the given EditorView. You may use selectedRange property of EditorView if the command operates on","parent_name":"EditorCommand"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_12shouldHandle2at7handledyAA0bC0C_AA0B3KeyOSo8_NSRangeVSbztF":{"name":"editor(_:shouldHandle:at:handled:)","abstract":"

    Invoked when a special key like enter, tab etc. is intercepted in the Editor

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_13didReceiveKey2atyAA0bC0C_AA0bH0OSo8_NSRangeVtF":{"name":"editor(_:didReceiveKey:at:)","abstract":"

    Invoked when a special key like enter, tab etc. is entered in the Editor

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_17didReceiveFocusAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didReceiveFocusAt:)","abstract":"

    Invoked when editor receives focus.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_16didLoseFocusFromyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didLoseFocusFrom:)","abstract":"

    Invoked when editor loses the focus.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_15didChangeTextAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didChangeTextAt:)","abstract":"

    Invoked when text is changed in editor.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_20didChangeSelectionAt10attributes11contentTypeyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCtF":{"name":"editor(_:didChangeSelectionAt:attributes:contentType:)","abstract":"

    Invoked when the selection range changes in the editor as a result of moving the cursor using keys/mouse or taps.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_20didExecuteProcessors2atyAA0bC0C_SayAA14TextProcessing_pGSo8_NSRangeVtF":{"name":"editor(_:didExecuteProcessors:at:)","abstract":"

    Invoked when text processors are executed in the editor.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_13didChangeSize08previousH0yAA0bC0C_So6CGSizeVAJtF":{"name":"editor(_:didChangeSize:previousSize:)","abstract":"

    Invoked when the size of EditorView changes.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_16didTapAtLocation14characterRangeyAA0bC0C_So7CGPointVSo8_NSRangeVSgtF":{"name":"editor(_:didTapAtLocation:characterRange:)","abstract":"

    Invoked when a location within the EditorView is tapped.

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_9didLayoutyAA0bC0C_So18NSAttributedStringCtF":{"name":"editor(_:didLayout:)","abstract":"

    Invoked whenever layout pass completes as a result of changing or text or attributes

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_21willSetAttributedTextyAA0bC0C_So18NSAttributedStringCtF":{"name":"editor(_:willSetAttributedText:)","abstract":"

    Invoked before attributedText is set on the EditorView

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor_20didSetAttributedTextyAA0bC0C_So18NSAttributedStringCtF":{"name":"editor(_:didSetAttributedText:)","abstract":"

    Invoked after attributedText is set on the EditorView

    ","parent_name":"EditorViewDelegate"},"Protocols/EditorViewDelegate.html#/s:6Proton18EditorViewDelegateP6editor01_E07isReadyyAA0bC0C_SbtF":{"name":"editor(_editor:isReady:)","abstract":"

    Invoked when Editor has been added to the view hierarchy and is ready to receive events.

    ","parent_name":"EditorViewDelegate"},"Protocols/BoundsObserving.html#/s:6Proton15BoundsObservingP09didChangeB0_03oldB0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","abstract":"

    Lets the observer know that bounds of current object have changed

    ","parent_name":"BoundsObserving"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP6editorAA0bD0Cvp":{"name":"editor","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP14attributedTextSo18NSAttributedStringCvp":{"name":"attributedText","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP9maxHeightAA0bF0Ovp":{"name":"maxHeight","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP8delegateAA0bD8Delegate_pSgvp":{"name":"delegate","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewP20becomeFirstResponderSbyF":{"name":"becomeFirstResponder()","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/EditorContentView.html#/s:6Proton17EditorContentViewPAAE8setFocusyyF":{"name":"setFocus()","abstract":"

    Undocumented

    ","parent_name":"EditorContentView"},"Protocols/AttachmentTypeIdentifying.html#/s:6Proton25AttachmentTypeIdentifyingP4typeAA0bC0Ovp":{"name":"type","abstract":"

    Undocumented

    ","parent_name":"AttachmentTypeIdentifying"},"Protocols/EditorContentIdentifying.html#/s:6Proton24EditorContentIdentifyingP4nameSo08PREditorC4NameCvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"EditorContentIdentifying"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP12TypeToDecodeQa":{"name":"TypeToDecode","abstract":"

    Undocumented

    ","parent_name":"EditorContentDecoding"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP0D7ContextQa":{"name":"DecodingContext","abstract":"

    Undocumented

    ","parent_name":"EditorContentDecoding"},"Protocols/EditorContentDecoding.html#/s:6Proton21EditorContentDecodingP6decode4mode7maxSize5value7contextSo18NSAttributedStringCAA0bC4ModeO_So6CGSizeV12TypeToDecodeQz0D7ContextQztKF":{"name":"decode(mode:maxSize:value:context:)","abstract":"

    Decodes the given value to NSAttributedString

    ","parent_name":"EditorContentDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP12TypeToDecodeQa":{"name":"TypeToDecode","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP4nameSSvp":{"name":"name","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/AttributesDecoding.html#/s:6Proton18AttributesDecodingP6decodeySDySo21NSAttributedStringKeyaypG12TypeToDecodeQzF":{"name":"decode(_:)","abstract":"

    Undocumented

    ","parent_name":"AttributesDecoding"},"Protocols/SequenceGenerator.html#/s:6Proton17SequenceGeneratorP5value2atAA14ListLineMarkerOSi_tF":{"name":"value(at:)","abstract":"

    Returns a value representing the given index.

    ","parent_name":"SequenceGenerator"},"Protocols/EditorListFormattingProvider.html#/s:6Proton28EditorListFormattingProviderP08listLineD0AA0gD0Vvp":{"name":"listLineFormatting","abstract":"

    Line formatting to be used for a list item.

    ","parent_name":"EditorListFormattingProvider"},"Protocols/EditorListFormattingProvider.html#/s:6Proton28EditorListFormattingProviderP17listLineMarkerFor6editor5index5level13previousLevel14attributeValueAA0cgH0OAA0B4ViewC_S3iypSgtF":{"name":"listLineMarkerFor(editor:index:level:previousLevel:attributeValue:)","abstract":"

    Returns the marker to be drawn for list item (bullet/number etc.) for given parameters.

    ","parent_name":"EditorListFormattingProvider"},"Protocols/Focusable.html#/s:6Proton9FocusableP8setFocusyyF":{"name":"setFocus()","abstract":"

    Undocumented

    ","parent_name":"Focusable"},"Protocols/AttachmentOffsetProviding.html#/s:6Proton25AttachmentOffsetProvidingP6offset3for2in20proposedLineFragment13glyphPosition14characterIndexSo7CGPointVAA0B0C_So15NSTextContainerCSo6CGRectVAKSitF":{"name":"offset(for:in:proposedLineFragment:glyphPosition:characterIndex:)","abstract":"

    Undocumented

    ","parent_name":"AttachmentOffsetProviding"},"Protocols/DynamicBoundsProviding.html#/s:6Proton22DynamicBoundsProvidingP7sizeFor10attachment13containerSize8lineRectSo6CGSizeVAA10AttachmentC_AISo6CGRectVtF":{"name":"sizeFor(attachment:containerSize:lineRect:)","abstract":"

    Undocumented

    ","parent_name":"DynamicBoundsProviding"},"Protocols/AsyncTextResolving.html#/s:6Proton18AsyncTextResolvingP4nameSSvp":{"name":"name","abstract":"

    Name of the Resolver. This name must be applied to the range of text that requires async resolution with attribute key: .asyncTextResolver

    ","parent_name":"AsyncTextResolving"},"Protocols/AsyncTextResolving.html#/s:6Proton18AsyncTextResolvingP7resolve5using5range6string10completionyAA10EditorViewC_So8_NSRangeVSo18NSAttributedStringCyAA0bcD6ResultOctF":{"name":"resolve(using:range:string:completion:)","abstract":"

    Resolves the string to a different representation

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

    An object capable of resolving text asynchronously to another representation. New representation may contain change in attributes or the string itself.

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

    Describes an object (typically attachment view) that may change size during the layout pass

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

    Describes an object capable of providing offsets for the Attachment. The value is used to offset the Attachment when rendered alongside the text. This may"},"Protocols/Focusable.html":{"name":"Focusable","abstract":"

    Describes an object capable of gaining focus.

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

    Describes an object capable of providing style and formatting information for rendering lists in EditorView.

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

    Represents a Sequence generator that can return a value based on given index."},"Protocols/AttributesDecoding.html":{"name":"AttributesDecoding","abstract":"

    An object capable of decoding attributes for use in NSAttributedString

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

    An object capable of decoding the given type of content into NSAttributedString for using in EditorView or the RendererView.

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

    Identifies a content type within the Editor

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

    Undocumented

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

    Describes a view contained in Attachment that contains a single EditorView."},"Protocols/BoundsObserving.html":{"name":"BoundsObserving","abstract":"

    Describes an object interested in observing the bounds of a view. Attachment is BoundsObserving and reacts to"},"Protocols/EditorViewDelegate.html":{"name":"EditorViewDelegate","abstract":"

    Describes an object interested in listening to events raised from EditorView

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

    Describes a command that can be executed on EditorView. A command may be invoked directly on the editor by providing an instance."},"Protocols/EditorTextEncoding.html":{"name":"EditorTextEncoding","abstract":"

    Describes an encoder for a content type in Editor. This can be used in conjunction with AnyEditorTextEncoding"},"Protocols/AttachmentEncoding.html":{"name":"AttachmentEncoding","abstract":"

    Describes an object capable of encoding contents of at Attachment

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

    An object capable of encoding EditorContent to given type.

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

    A generic encoder for encoding EditorContent. You may create encoders for individual types of contents in the Editor, and"},"Protocols/GridViewDelegate.html":{"name":"GridViewDelegate","abstract":"

    An object capable of handing GridView events

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

    An object capable of intercepting and modifying the text and attributes in an EditorView when registered with the EditorView.

    "},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE9exclusiveSivpZ":{"name":"exclusive","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE4highSivpZ":{"name":"high","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE6mediumSivpZ":{"name":"medium","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/TextProcessingPriority.html#/s:Si6ProtonE3lowSivpZ":{"name":"low","abstract":"

    Undocumented

    ","parent_name":"TextProcessingPriority"},"Extensions/UITextRange.html#/s:So11UITextRangeC6ProtonE9toNSRange2inSo01_E0VSgSo0A5Input_p_tF":{"name":"toNSRange(in:)","abstract":"

    Converts this range to NSRange. Returns nil if range cannot be converted.

    ","parent_name":"UITextRange"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6traitsSo0A24DescriptorSymbolicTraitsVvp":{"name":"traits","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6isBoldSbvp":{"name":"isBold","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE9isItalicsSbvp":{"name":"isItalics","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE12isMonoSpacedSbvp":{"name":"isMonoSpaced","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE12isAppleEmojiSbvp":{"name":"isAppleEmoji","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE9textStyleSo0a4TextD0avp":{"name":"textStyle","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE21isNonDynamicTextStyleSbvp":{"name":"isNonDynamicTextStyle","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE8contains5traitSbSo0A24DescriptorSymbolicTraitsV_tF":{"name":"contains(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE7toggled5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"toggled(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE6adding5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"adding(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/UIFont.html#/s:So6UIFontC6ProtonE8removing5traitABSo0A24DescriptorSymbolicTraitsV_tF":{"name":"removing(trait:)","abstract":"

    Undocumented

    ","parent_name":"UIFont"},"Extensions/String.html#/s:SS6ProtonE11makeNSRange4fromSo01_C0VSnySS5IndexVG_tF":{"name":"makeNSRange(from:)","abstract":"

    Converts given Range to NSRange in this string.

    ","parent_name":"String"},"Extensions/String.html#/s:SS6ProtonE16rangeFromNSRange0B0SnySS5IndexVGSgSo01_D0V_tF":{"name":"rangeFromNSRange(range:)","abstract":"

    Created String Range from given NSRange. Returns nil if range cannot be converted.

    ","parent_name":"String"},"Extensions/String.html#/s:SS6ProtonE8rangesOf12characterSetSaySnySS5IndexVGG10Foundation09CharacterE0V_tF":{"name":"rangesOf(characterSet:)","abstract":"

    Returns ranges of given CharacterSet in this string.

    ","parent_name":"String"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE4zeroABvpZ":{"name":"zero","abstract":"

    Range with 0 location and length

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE19firstCharacterRangeABvp":{"name":"firstCharacterRange","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE18lastCharacterRangeABvp":{"name":"lastCharacterRange","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE12nextPositionABvp":{"name":"nextPosition","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE11endLocationSivp":{"name":"endLocation","abstract":"

    Undocumented

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE11toTextRange9textInputSo06UITextE0CSgSo0hG0_p_tF":{"name":"toTextRange(textInput:)","abstract":"

    Converts the range to UITextRange in given UITextInput. Returns nil if the range is invalid in the UITextInput.

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE9isValidInySbSo11UITextInput_pF":{"name":"isValidIn(_:)","abstract":"

    Checks if the range is valid in given UITextInput

    ","parent_name":"NSRange"},"Extensions/NSRange.html#/s:So8_NSRangeV6ProtonE9shiftedByyABSiF":{"name":"shiftedBy(_:)","abstract":"

    Shifts the range with given shift value

    ","parent_name":"NSRange"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonEyABSScfc":{"name":"init(_:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE9paragraphABvpZ":{"name":"paragraph","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE8viewOnlyABvpZ":{"name":"viewOnly","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE7newlineABvpZ":{"name":"newline","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE4textABvpZ":{"name":"text","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/EditorContentName.html#/s:So19PREditorContentNameC6ProtonE7unknownABvpZ":{"name":"unknown","abstract":"

    Undocumented

    ","parent_name":"EditorContentName"},"Extensions/NSParagraphStyle.html#/s:So16NSParagraphStyleC6ProtonE016mutableParagraphB0So09NSMutableeB0Cvp":{"name":"mutableParagraphStyle","abstract":"

    Creates a mutable copy of current style

    ","parent_name":"NSParagraphStyle"},"Extensions/NSParagraphStyle.html#/s:So16NSParagraphStyleC6ProtonE14lineFormattingAC04LineE0Vvp":{"name":"lineFormatting","abstract":"

    Returns LineFormatting based on current style

    ","parent_name":"NSParagraphStyle"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE9textBlockABvpZ":{"name":"textBlock","abstract":"

    Applying this attribute makes the range of text act as a single block/unit.","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE16blockContentTypeABvpZ":{"name":"blockContentType","abstract":"

    Identifies block based attributes. A block acts as a container for other content types. For e.g. a Paragraph is a block content","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE17inlineContentTypeABvpZ":{"name":"inlineContentType","abstract":"

    Identifies inline content attributes. An inline acts as a content in another content types. For e.g. an emoji is an inline content","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE15backgroundStyleABvpZ":{"name":"backgroundStyle","abstract":"

    Additional style attribute for background color. Using this attribute in addition to backgroundColor attribute allows applying","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE8listItemABvpZ":{"name":"listItem","abstract":"

    Attribute denoting the range as a list item. This attribute enables use of ListTextProcessor to indent/outdent list","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE18skipNextListMarkerABvpZ":{"name":"skipNextListMarker","abstract":"

    When applied to a new line char alongside listItem attribute, skips the rendering of list marker on subsequent line.

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE16lockedAttributesABvpZ":{"name":"lockedAttributes","abstract":"

    Array of NSAttributedString.Key that must be locked in the applied range.

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html#/s:So21NSAttributedStringKeya6ProtonE17asyncTextResolverABvpZ":{"name":"asyncTextResolver","abstract":"

    Undocumented

    ","parent_name":"Key"},"Extensions/NSAttributedString/Key.html":{"name":"Key","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9asMutableSo019NSMutableAttributedB0Cvp":{"name":"asMutable","abstract":"

    Creates a mutable copy

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16addingAttributes_2toABSDySo0aB3KeyaypG_So8_NSRangeVSgtF":{"name":"addingAttributes(_:to:)","abstract":"

    Undocumented

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE17enumerateContents2ins11AnySequenceVyAC13EditorContentVGSo8_NSRangeVSg_tF":{"name":"enumerateContents(in:)","abstract":"

    Enumerates block contents in given range.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE23enumerateInlineContents2ins11AnySequenceVyAC13EditorContentVGSo8_NSRangeVSg_tF":{"name":"enumerateInlineContents(in:)","abstract":"

    Enumerates only inline content in given range.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16rangeOfCharacter4fromSo8_NSRangeVSg10Foundation0F3SetV_tF":{"name":"rangeOfCharacter(from:)","abstract":"

    Returns in range of CharacterSet from this string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9fullRangeSo8_NSRangeVvp":{"name":"fullRange","abstract":"

    Full range of this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE16attachmentRangesSayAC10AttachmentC0D0_So8_NSRangeV5rangetGvp":{"name":"attachmentRanges","abstract":"

    Collection of all the attachments with containing ranges in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE8rangeFor10attachmentSo8_NSRangeVSgAC10AttachmentC_tF":{"name":"rangeFor(attachment:)","abstract":"

    Range of given attachment in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE8rangesOf12characterSetSaySo8_NSRangeVG10Foundation09CharacterG0V_tF":{"name":"rangesOf(characterSet:)","abstract":"

    Ranges of CharacterSet in this attributed string.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE26reverseAttributedSubstring4fromABSgSo8_NSRangeV_tF":{"name":"reverseAttributedSubstring(from:)","abstract":"

    Attributed substring in reverse direction.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE7rangeOf9attribute16startingLocation13reverseLookupSo8_NSRangeVSgSo0aB3Keya_SiSbtF":{"name":"rangeOf(attribute:startingLocation:reverseLookup:)","abstract":"

    Gets the next range of attribute starting at the given location in direction based on reverse lookup flag

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE7rangeOf9attribute2atSo8_NSRangeVSgSo0aB3Keya_SitF":{"name":"rangeOf(attribute:at:)","abstract":"

    Gets the complete range of attribute at the given location. The attribute is looked up in both forward and","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE14attributeValue3for2atxSgSo0aB3Keya_SitlF":{"name":"attributeValue(for:at:)","abstract":"

    Gets the value of attribute at the given location, if present.

    ","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html#/s:So18NSAttributedStringC6ProtonE9substring4fromSSSo8_NSRangeV_tF":{"name":"substring(from:)","abstract":"

    Alternative to attributedSubstring(from:_).string","parent_name":"NSAttributedString"},"Extensions/NSAttributedString.html":{"name":"NSAttributedString"},"Extensions/NSParagraphStyle.html":{"name":"NSParagraphStyle"},"Extensions/EditorContentName.html":{"name":"EditorContentName"},"Extensions/NSRange.html":{"name":"NSRange"},"Extensions/String.html":{"name":"String"},"Extensions/UIFont.html":{"name":"UIFont"},"Extensions/UITextRange.html":{"name":"UITextRange"},"Extensions/TextProcessingPriority.html":{"name":"TextProcessingPriority","abstract":"

    Undocumented

    "},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO5fixedyAC14CoreFoundation7CGFloatVcACmF":{"name":"fixed(_:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO10fractionalyAC14CoreFoundation7CGFloatVcACmF":{"name":"fractional(_:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridColumnWidth.html#/s:6Proton15GridColumnWidthO5value7basedOn14CoreFoundation7CGFloatVAH_tF":{"name":"value(basedOn:)","abstract":"

    Undocumented

    ","parent_name":"GridColumnWidth"},"Enums/GridViewError.html#/s:6Proton13GridViewErrorO26failedToInsertInFrozenRowsyA2CmF":{"name":"failedToInsertInFrozenRows","abstract":"

    Undocumented

    ","parent_name":"GridViewError"},"Enums/GridViewError.html#/s:6Proton13GridViewErrorO29failedToInsertInFrozenColumnsyA2CmF":{"name":"failedToInsertInFrozenColumns","abstract":"

    Undocumented

    ","parent_name":"GridViewError"},"Enums/Indentation.html#/s:6Proton11IndentationO6indentyA2CmF":{"name":"indent","abstract":"

    Undocumented

    ","parent_name":"Indentation"},"Enums/Indentation.html#/s:6Proton11IndentationO7outdentyA2CmF":{"name":"outdent","abstract":"

    Undocumented

    ","parent_name":"Indentation"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO7defaultyA2CmF":{"name":"default","abstract":"

    Default controlled via autolayout.

    ","parent_name":"EditorHeight"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO3maxyAC14CoreFoundation7CGFloatVcACmF":{"name":"max(_:)","abstract":"

    Maximum height editor is allowed to grow to before it starts scrolling

    ","parent_name":"EditorHeight"},"Enums/EditorHeight.html#/s:6Proton12EditorHeightO8infiniteyA2CmF":{"name":"infinite","abstract":"

    Boundless height.

    ","parent_name":"EditorHeight"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO4textyACSo08PREditorC4NameC_So18NSAttributedStringCtcACmF":{"name":"text(name:attributedString:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO10attachmentyACSo08PREditorC4NameC_AA10AttachmentCSo6UIViewCAA0hD0OtcACmF":{"name":"attachment(name:attachment:contentView:type:)","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/EditorContentType.html#/s:6Proton17EditorContentTypeO8viewOnlyyA2CmF":{"name":"viewOnly","abstract":"

    Undocumented

    ","parent_name":"EditorContentType"},"Enums/AttachmentType.html#/s:6Proton14AttachmentTypeO5blockyA2CmF":{"name":"block","abstract":"

    Undocumented

    ","parent_name":"AttachmentType"},"Enums/AttachmentType.html#/s:6Proton14AttachmentTypeO6inlineyA2CmF":{"name":"inline","abstract":"

    Undocumented

    ","parent_name":"AttachmentType"},"Enums/EditorContentMode.html#/s:6Proton17EditorContentModeO6editoryA2CmF":{"name":"editor","abstract":"

    Undocumented

    ","parent_name":"EditorContentMode"},"Enums/EditorContentMode.html#/s:6Proton17EditorContentModeO8rendereryA2CmF":{"name":"renderer","abstract":"

    Undocumented

    ","parent_name":"EditorContentMode"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO5enteryA2CmF":{"name":"enter","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO9backspaceyA2CmF":{"name":"backspace","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/EditorKey.html#/s:6Proton9EditorKeyO3tabyA2CmF":{"name":"tab","abstract":"

    Undocumented

    ","parent_name":"EditorKey"},"Enums/ListLineMarker.html#/s:6Proton14ListLineMarkerO6stringyACSo18NSAttributedStringCcACmF":{"name":"string(_:)","abstract":"

    Undocumented

    ","parent_name":"ListLineMarker"},"Enums/ListLineMarker.html#/s:6Proton14ListLineMarkerO5imageyACSo7UIImageC_So6CGSizeVtcACmF":{"name":"image(_:size:)","abstract":"

    Undocumented

    ","parent_name":"ListLineMarker"},"Enums/BackgroundMode.html#/s:6Proton14BackgroundModeO9matchTextyA2CmF":{"name":"matchText","abstract":"

    Background matches the height/width of text

    ","parent_name":"BackgroundMode"},"Enums/BackgroundMode.html#/s:6Proton14BackgroundModeO9matchLineyA2CmF":{"name":"matchLine","abstract":"

    Background matches entire line irrespective of font height/used character width in the given line

    ","parent_name":"BackgroundMode"},"Enums/RoundedCornerStyle.html#/s:6Proton18RoundedCornerStyleO8absoluteyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"absolute(value:)","abstract":"

    Rounding based on an absolute value for corner radii

    ","parent_name":"RoundedCornerStyle"},"Enums/RoundedCornerStyle.html#/s:6Proton18RoundedCornerStyleO8relativeyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"relative(percent:)","abstract":"

    Rounding based on relative percent value of the content height. For e.g. 50% would provide a capsule appearance","parent_name":"RoundedCornerStyle"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO12matchContentyA2CmF":{"name":"matchContent","abstract":"

    Matches the size of the content view of attachment. Content view must provide size to Attachment using didChangeBounds(:).

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO9fullWidthyA2CmF":{"name":"fullWidth","abstract":"

    Takes up full width of the containing EditorView. Resizes automatically when size of the container changes for e.g. when device is rotated. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO5fixedyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"fixed(width:)","abstract":"

    Fixed width attachment irrespective of content size of the contained view. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO5rangeyAC14CoreFoundation7CGFloatV_AGtcACmF":{"name":"range(minWidth:maxWidth:)","abstract":"

    Width of attachment is locked between the min and max. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AttachmentSize.html#/s:6Proton14AttachmentSizeO7percentyAC14CoreFoundation7CGFloatV_tcACmF":{"name":"percent(width:)","abstract":"

    Width in percent based on the size of containing EditorView. Absolute value of width changes if the size of the container changes for e.g. when device is rotated. Height is dynamic based on content.

    ","parent_name":"AttachmentSize"},"Enums/AsyncTextResolvingResult.html#/s:6Proton24AsyncTextResolvingResultO5applyyACSo18NSAttributedStringC_So8_NSRangeVtcACmF":{"name":"apply(_:range:)","abstract":"

    Undocumented

    ","parent_name":"AsyncTextResolvingResult"},"Enums/AsyncTextResolvingResult.html#/s:6Proton24AsyncTextResolvingResultO7discardyA2CmF":{"name":"discard","abstract":"

    Undocumented

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

    Result type for async text resolution

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

    Rendering size of the Attachment

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

    Rounding style for backgroundStyle attribute

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

    Defines the mode for height/width used for the background for the text

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

    Marker for the list item

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

    Undocumented

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

    Content mode for Editor. This may be used while decoding the content for the Editor/Renderer to let the Decoder know"},"Enums/AttachmentType.html":{"name":"AttachmentType","abstract":"

    Type of attachment

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

    Type of EditorContent

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

    Defines the height for the Editor

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

    Undocumented

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

    Undocumented

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

    Undocumented

    "},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP4nameSSvp":{"name":"name","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton17ListTextProcessorCACycfc":{"name":"init()","abstract":"

    Initializes text processor.

    ","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton17ListTextProcessorC8prioritySivp":{"name":"priority","abstract":"

    Priority of the text processor.

    ","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP13shouldProcess_0deB2In011replacementB0SbAA10EditorViewC_So8_NSRangeVSStF":{"name":"shouldProcess(_:shouldProcessTextIn:replacementText:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP18processInterrupted6editor2atyAA10EditorViewC_So8_NSRangeVtF":{"name":"processInterrupted(editor:at:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP7process6editor5range14changeInLengthSbAA10EditorViewC_So8_NSRangeVSitF":{"name":"process(editor:range:changeInLength:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP22handleKeyWithModifiers6editor3key13modifierFlags5rangeyAA10EditorViewC_AA0mE0OSo013UIKeyModifierK0VSo8_NSRangeVtF":{"name":"handleKeyWithModifiers(editor:key:modifierFlags:range:)","parent_name":"ListTextProcessor"},"Classes/ListTextProcessor.html#/s:6Proton14TextProcessingP10didProcess6editoryAA10EditorViewC_tF":{"name":"didProcess(editor:)","parent_name":"ListTextProcessor"},"Classes/GridView.html#/s:6Proton8GridViewC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    Delegate for GridView which can be used to handle cell specific EditorView events

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC30isColumnResizingHandlesVisibleSbvp":{"name":"isColumnResizingHandlesVisible","abstract":"

    Determines if column resizing handles are visible or not.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    Bounds observer for the GridView. Typically, this will be the Attachment that hosts the GridView.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14selectionColorSo7UIColorCSgvp":{"name":"selectionColor","abstract":"

    Selection color for the GridView. Defaults to tintColor

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10isSelectedSbvp":{"name":"isSelected","abstract":"

    Determines if GridView is selected or not.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC22isFreeScrollingEnabledSbvp":{"name":"isFreeScrollingEnabled","abstract":"

    Allows scrolling grid in any direction. Defaults to false","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC20frozenColumnMaxIndexSiSgvp":{"name":"frozenColumnMaxIndex","abstract":"

    Maximum index up till which columns are frozen. Columns are frozen from 0 to this index value.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC17frozenRowMaxIndexSiSgvp":{"name":"frozenRowMaxIndex","abstract":"

    Maximum index up till which rows are frozen. Rows are frozen from 0 to this index value.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC21containsFrozenColumnsSbvp":{"name":"containsFrozenColumns","abstract":"

    Determines if there are any frozen columns in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC18containsFrozenRowsSbvp":{"name":"containsFrozenRows","abstract":"

    Determines if there are any frozen rows in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5cellsSayAA0B4CellCGvp":{"name":"cells","abstract":"

    Collection of cells contained in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC13selectedCellsSayAA0B4CellCGvp":{"name":"selectedCells","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC15numberOfColumnsSivp":{"name":"numberOfColumns","abstract":"

    Number of columns in the GridView.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12numberOfRowsSivp":{"name":"numberOfRows","abstract":"

    Number of rows in the GridView

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6configAcA0B13ConfigurationV_tcfc":{"name":"init(config:)","abstract":"

    Initializes GridView using the provided configuration.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6config5cellsAcA0B13ConfigurationV_SayAA0B4CellCGtcfc":{"name":"init(config:cells:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC17setColumnResizingyySbF":{"name":"setColumnResizing(_:)","abstract":"

    Enables or disables column resizing

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC24isCellSelectionMergeableySbSayAA0bE0CGF":{"name":"isCellSelectionMergeable(_:)","abstract":"

    Determines if the collection of cells can be merged. For cells to be mergable, they need to","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5merge5cellsySayAA0B4CellCG_tF":{"name":"merge(cells:)","abstract":"

    Merges the cells if the collection is mergeable.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC5split4cellyAA0B4CellC_tF":{"name":"split(cell:)","abstract":"

    Splits the cell into original constituent cells from earlier Merge operation.","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC9insertRow2at13configurations6ResultOySayAA0B4CellCGAA0bC5ErrorOGSi_AA0bE13ConfigurationVtF":{"name":"insertRow(at:configuration:)","abstract":"

    Inserts a new row at given index.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12insertColumn2at13configurations6ResultOySayAA0B4CellCGAA0bC5ErrorOGSi_AA0bE13ConfigurationVtF":{"name":"insertColumn(at:configuration:)","abstract":"

    Inserts a new column at given index.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC9deleteRow2atySi_tF":{"name":"deleteRow(at:)","abstract":"

    Deletes the row at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12deleteColumn2atySi_tF":{"name":"deleteColumn(at:)","abstract":"

    Deletes the column at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC13freezeColumns4upToySi_tF":{"name":"freezeColumns(upTo:)","abstract":"

    Freezes all the columns from 0 to the index provided

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10freezeRows4upToySi_tF":{"name":"freezeRows(upTo:)","abstract":"

    Freezes all the rows from 0 to the index provided

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC15unfreezeColumnsyyF":{"name":"unfreezeColumns()","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC12unfreezeRowsyyF":{"name":"unfreezeRows()","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC11collapseRow2atySi_tF":{"name":"collapseRow(at:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC6cellAt8rowIndex06columnG0AA0B4CellCSgSi_SitF":{"name":"cellAt(rowIndex:columnIndex:)","abstract":"

    Gets the cell at given row and column index. Indexes may be contained in a merged cell.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC14scrollToCellAt8rowIndex06columnI08animatedySi_SiSbtF":{"name":"scrollToCellAt(rowIndex:columnIndex:animated:)","abstract":"

    Scrolls the cell at given index into viewable area. Indexes may be contained in a merged cell.

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10applyStyle_5toRowyAA0b4CellE0V_SitF":{"name":"applyStyle(_:toRow:)","abstract":"

    Applies style to row at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/s:6Proton8GridViewC10applyStyle_8toColumnyAA0b4CellE0V_SitF":{"name":"applyStyle(_:toColumn:)","abstract":"

    Applies style to column at given index

    ","parent_name":"GridView"},"Classes/GridView.html#/c:@CM@Proton@objc(cs)GridView(im)scrollViewDidScroll:":{"name":"scrollViewDidScroll(_:)","abstract":"

    Undocumented

    ","parent_name":"GridView"},"Classes/GridCell.html#/s:6Proton8GridCellC7rowSpanSaySiGvp":{"name":"rowSpan","abstract":"

    Row indexes spanned by the cell. In case of a merged cell, this will contain all the rows= indexes which are merged.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10columnSpanSaySiGvp":{"name":"columnSpan","abstract":"

    Column indexes spanned by the cell. In case of a merged cell, this will contain all the column indexes which are merged.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC5frameSo6CGRectVvp":{"name":"frame","abstract":"

    Frame of the cell within GridView

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10isSelectedSbvp":{"name":"isSelected","abstract":"

    Sets the cell selected

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC6editorAA10EditorViewCvp":{"name":"editor","abstract":"

    Editor within the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC12isSplittableSbvp":{"name":"isSplittable","abstract":"

    Denotes if the cell can be split i.e. is a merged cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11contentSizeSo6CGSizeVvp":{"name":"contentSize","abstract":"

    Content size of the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11contentViewSo6UIViewCvp":{"name":"contentView","abstract":"

    Content view for the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC9gridStyleAA0bE0Vvp":{"name":"gridStyle","abstract":"

    Undocumented

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC7rowSpan06columnE013initialHeight5style9gridStyleACSaySiG_AI14CoreFoundation7CGFloatVAA0bcK0VAA0bK0Vtcfc":{"name":"init(rowSpan:columnSpan:initialHeight:style:gridStyle:)","abstract":"

    Undocumented

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC8setFocusyyF":{"name":"setFocus()","abstract":"

    Sets the focus in the Editor within the cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC11removeFocusyyF":{"name":"removeFocus()","abstract":"

    Removes the focus from the Editor within the cell.

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton8GridCellC10applyStyleyyAA0bcE0VF":{"name":"applyStyle(_:)","abstract":"

    Applies the given style to the cell

    ","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton15BoundsObservingP09didChangeB0_03oldB0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_17didReceiveFocusAtyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didReceiveFocusAt:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_16didLoseFocusFromyAA0bC0C_So8_NSRangeVtF":{"name":"editor(_:didLoseFocusFrom:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_16didTapAtLocation14characterRangeyAA0bC0C_So7CGPointVSo8_NSRangeVSgtF":{"name":"editor(_:didTapAtLocation:characterRange:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_20didChangeSelectionAt10attributes11contentTypeyAA0bC0C_So8_NSRangeVSDySo21NSAttributedStringKeyaypGSo19PREditorContentNameCtF":{"name":"editor(_:didChangeSelectionAt:attributes:contentType:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:6Proton18EditorViewDelegateP6editor_13didReceiveKey2atyAA0bC0C_AA0bH0OSo8_NSRangeVtF":{"name":"editor(_:didReceiveKey:at:)","parent_name":"GridCell"},"Classes/GridCell.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"GridCell"},"Classes/EditorCommandExecutor.html#/s:6Proton21EditorCommandExecutorC7contextAcA0B11ViewContextC_tcfc":{"name":"init(context:)","abstract":"

    Initializes the EditorCommandExecutor

    ","parent_name":"EditorCommandExecutor"},"Classes/EditorCommandExecutor.html#/s:6Proton21EditorCommandExecutorC7executeyyAA0bC0_pF":{"name":"execute(_:)","abstract":"

    Executes the given command on the active EditorView having the same Context as the Command Executor. EditorCommand will be executed only","parent_name":"EditorCommandExecutor"},"Classes/UnderlineCommand.html#/s:6Proton16UnderlineCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"UnderlineCommand"},"Classes/StrikethroughCommand.html#/s:6Proton20StrikethroughCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"StrikethroughCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListOutdentCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandC4nameAA0D4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListOutdentCommand"},"Classes/ListOutdentCommand.html#/s:6Proton18ListOutdentCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Outdents a list item if it supports reversing indentation. When applied on an item at first level, it will remove item from the list.","parent_name":"ListOutdentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListIndentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandC4nameAA0D4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListIndentCommand"},"Classes/ListIndentCommand.html#/s:6Proton17ListIndentCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Indents a list item if it supports indentation (e.g. unsupported item may mean item at first level)","parent_name":"ListIndentCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC4nameAA0C4NameVvp":{"name":"name","abstract":"

    Name of the command

    ","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC14attributeValueypSgvp":{"name":"attributeValue","abstract":"

    Value to be set for attribute .listItem when applying to a range of text.","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC7execute2onyAA10EditorViewC_tF":{"name":"execute(on:)","abstract":"

    Executes the command with value of attributeValue for .listItem attribute. If the attributeValue is nil, executing","parent_name":"ListCommand"},"Classes/ListCommand.html#/s:6Proton11ListCommandC7execute2on14attributeValueyAA10EditorViewC_ypSgtF":{"name":"execute(on:attributeValue:)","abstract":"

    Executes the command with value of attributeValue for .listItem attribute.

    ","parent_name":"ListCommand"},"Classes/ItalicsCommand.html#/s:6Proton14ItalicsCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"ItalicsCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton22FontTraitToggleCommandC5traitSo30UIFontDescriptorSymbolicTraitsVvp":{"name":"trait","abstract":"

    Undocumented

    ","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton22FontTraitToggleCommandC4name5traitAcA0E4NameV_So30UIFontDescriptorSymbolicTraitsVtcfc":{"name":"init(name:trait:)","abstract":"

    Undocumented

    ","parent_name":"FontTraitToggleCommand"},"Classes/FontTraitToggleCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","parent_name":"FontTraitToggleCommand"},"Classes/BoldCommand.html#/s:6Proton11BoldCommandCACycfc":{"name":"init()","abstract":"

    Undocumented

    ","parent_name":"BoldCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton23AttributesToggleCommandC10attributesSDySo21NSAttributedStringKeyaypGvp":{"name":"attributes","abstract":"

    Undocumented

    ","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton13EditorCommandP4nameAA0C4NameVvp":{"name":"name","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton23AttributesToggleCommandC4name10attributesAcA0D4NameV_SDySo21NSAttributedStringKeyaypGtcfc":{"name":"init(name:attributes:)","abstract":"

    Undocumented

    ","parent_name":"AttributesToggleCommand"},"Classes/AttributesToggleCommand.html#/s:6Proton13EditorCommandP7execute2onyAA0B4ViewC_tF":{"name":"execute(on:)","parent_name":"AttributesToggleCommand"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC2idSSvp":{"name":"id","abstract":"

    Identifies the EditorViewContextuniquely.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC4nameSSvp":{"name":"name","abstract":"

    Friendly name for the context. It is possible to create multiple EditorViewContext using the same name.","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    EditorView delegate at context level. This delegate will be notified about events in all the Editors that share this particular context.","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC6sharedACvpZ":{"name":"shared","abstract":"

    Default shared context. Use this in case there is only a single EditorView on the screen at the root level.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC06activebC0AA0bC0CSgvp":{"name":"activeEditorView","abstract":"

    EditorView for this context that is currently active.

    ","parent_name":"EditorViewContext"},"Classes/EditorViewContext.html#/s:6Proton17EditorViewContextC4nameACSS_tcfc":{"name":"init(name:)","abstract":"

    Initializes a new context

    ","parent_name":"EditorViewContext"},"Classes/EditorView.html#/s:6Proton10EditorViewC06editorC7ContextAA0bcE0Cvp":{"name":"editorViewContext","abstract":"

    Context for the current Editor

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textInteractionsSaySo17UITextInteractionCGvp":{"name":"textInteractions","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC04textC8GesturesSaySo19UIGestureRecognizerCGvp":{"name":"textViewGestures","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC26textDragInteractionEnabledSbvp":{"name":"textDragInteractionEnabled","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)bounds":{"name":"bounds","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

    An object interested in responding to editing and focus related events in the EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC22listFormattingProviderAA0b4ListeF0_pSgvp":{"name":"listFormattingProvider","abstract":"

    List formatting provider to be used for rendering lists in the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18registeredCommandsSayAA0B7Command_pGSgvp":{"name":"registeredCommands","abstract":"

    List of commands supported by the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18asyncTextResolversSayAA05AsyncE9Resolving_pGvp":{"name":"asyncTextResolvers","abstract":"

    Async Text Resolvers supported by the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5frame7context16allowAutogrowingACSo6CGRectV_AA0bC7ContextCSbtcfc":{"name":"init(frame:context:allowAutogrowing:)","abstract":"

    Initializes the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC020editorInputAccessoryC0So6UIViewCSgvp":{"name":"editorInputAccessoryView","abstract":"

    Input accessory view to be used

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC011editorInputC0So6UIViewCSgvp":{"name":"editorInputView","abstract":"

    Input view to be used

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

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20registeredProcessorsSayAA14TextProcessing_pGvp":{"name":"registeredProcessors","abstract":"

    List of all the registered TextProcessors in the EditorView. This may be used by nested EditorView to inherit all the","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17selectedTextRangeSo06UITextF0CSgvp":{"name":"selectedTextRange","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15placeholderTextSo18NSAttributedStringCSgvp":{"name":"placeholderText","abstract":"

    Placeholder text for the EditorView. The value can contain any attributes which is natively","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12contentInsetSo12UIEdgeInsetsVvp":{"name":"contentInset","abstract":"

    Gets or sets insets for additional scroll area around the content. Default value is UIEdgeInsetsZero.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC29verticalScrollIndicatorInsetsSo06UIEdgeG0Vvp":{"name":"verticalScrollIndicatorInsets","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19keyboardDismissModeSo08UIScrollc8KeyboardeF0Vvp":{"name":"keyboardDismissMode","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15isScrollEnabledSbvp":{"name":"isScrollEnabled","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18textContainerInsetSo12UIEdgeInsetsVvp":{"name":"textContainerInset","abstract":"

    Gets or sets the insets for the text container’s layout area within the editor’s content area

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17dataDetectorTypesSo06UIDataeF0Vvp":{"name":"dataDetectorTypes","abstract":"

    The types of data converted to tappable URLs in the editor view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13contentLengthSivp":{"name":"contentLength","abstract":"

    Length of content within the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC10isEditableSbvp":{"name":"isEditable","abstract":"

    Determines if the EditorView is editable or not.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC7isEmptySbvp":{"name":"isEmpty","abstract":"

    Determines if the editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17currentLayoutLineAA0bF0VSgvp":{"name":"currentLayoutLine","abstract":"

    Current line information based the caret position or selected range. If the selected range spans across multiple","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15firstLayoutLineAA0bF0VSgvp":{"name":"firstLayoutLine","abstract":"

    First line of content based on layout in the Editor. Nil if editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14lastLayoutLineAA0bF0VSgvp":{"name":"lastLayoutLine","abstract":"

    Last line of content based on layout in the Editor. Nil if editor is empty.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12selectedTextSo18NSAttributedStringCvp":{"name":"selectedText","abstract":"

    Selected text in the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)backgroundColor":{"name":"backgroundColor","abstract":"

    Background color for the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)font":{"name":"font","abstract":"

    Default font to be used by the Editor. A font may be overridden on whole or part of content in EditorView by an EditorCommand or","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)paragraphStyle":{"name":"paragraphStyle","abstract":"

    Default paragraph style to be used by the Editor. The style may be overridden on whole or part of content in","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(py)textColor":{"name":"textColor","abstract":"

    Default text color to be used by the Editor. The color may be overridden on whole or part of content in","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC9maxHeightAA0bE0Ovp":{"name":"maxHeight","abstract":"

    Maximum height that the EditorView can expand to. After reaching the maximum specified height, the editor becomes scrollable.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC24forceApplyAttributedTextSbvp":{"name":"forceApplyAttributedText","abstract":"

    Forces setting attributed text in EditorView even if it is not","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14attributedTextSo18NSAttributedStringCvp":{"name":"attributedText","abstract":"

    Text to be set in the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13selectedRangeSo8_NSRangeVvp":{"name":"selectedRange","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16typingAttributesSDySo21NSAttributedStringKeyaypGvp":{"name":"typingAttributes","abstract":"

    Typing attributes to be used. Automatically resets when the selection changes.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14boundsObserverAA15BoundsObserving_pSgvp":{"name":"boundsObserver","abstract":"

    An object interested in observing the changes in bounds of the Editor, typically an Attachment.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13contentOffsetSo7CGPointVvp":{"name":"contentOffset","abstract":"

    Gets and sets the content offset.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18linkTextAttributesSDySo21NSAttributedStringKeyaypGSgvp":{"name":"linkTextAttributes","abstract":"

    The attributes to apply to links.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12textEndRangeSo8_NSRangeVvp":{"name":"textEndRange","abstract":"

    Range of end of text in the EditorView. The range has always has length of 0.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC25isContainedInAnAttachmentSbvp":{"name":"isContainedInAnAttachment","abstract":"

    Determines if the current Editor is contained in an attachment

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11contentNameSo015PREditorContentE0CSgvp":{"name":"contentName","abstract":"

    Name of the content if the Editor is contained within an Attachment.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12visibleRangeSo8_NSRangeVvp":{"name":"visibleRange","abstract":"

    Returns the visible text range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19containerAttachmentAA0E0CSgvp":{"name":"containerAttachment","abstract":"

    Attachment containing the current Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12nestingLevelSivp":{"name":"nestingLevel","abstract":"

    Nesting level of current Editor within other attachments containing Editors.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC04rootB0ACvp":{"name":"rootEditor","abstract":"

    Returns the root editor of the current Editor. Returns self where the current editor is not contained within an Attachment.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC06parentB0ACSgvp":{"name":"parentEditor","abstract":"

    EditorView containing the current EditorView in an Attachment

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5clearyyF":{"name":"clear()","abstract":"

    Clears the contents in the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC22autocapitalizationTypeSo024UITextAutocapitalizationE0Vvp":{"name":"autocapitalizationType","abstract":"

    The auto-capitalization style for the text object.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18autocorrectionTypeSo020UITextAutocorrectionE0Vvp":{"name":"autocorrectionType","abstract":"

    The autocorrection style for the text object.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17spellCheckingTypeSo011UITextSpelleF0Vvp":{"name":"spellCheckingType","abstract":"

    The spell-checking style for the text object.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15smartQuotesTypeSo011UITextSmarteF0Vvp":{"name":"smartQuotesType","abstract":"

    The configuration state for smart quotes.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15smartDashesTypeSo011UITextSmarteF0Vvp":{"name":"smartDashesType","abstract":"

    The configuration state for smart dashes.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC21smartInsertDeleteTypeSo011UITextSmartefG0Vvp":{"name":"smartInsertDeleteType","abstract":"

    The configuration state for the smart insertion and deletion of space characters.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12keyboardTypeSo010UIKeyboardE0Vvp":{"name":"keyboardType","abstract":"

    The keyboard style associated with the text object.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18keyboardAppearanceSo010UIKeyboardE0Vvp":{"name":"keyboardAppearance","abstract":"

    The appearance style of the keyboard that is associated with the text object

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13returnKeyTypeSo08UIReturneF0Vvp":{"name":"returnKeyType","abstract":"

    The visible title of the Return key.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC29enablesReturnKeyAutomaticallySbvp":{"name":"enablesReturnKeyAutomatically","abstract":"

    A Boolean value indicating whether the Return key is automatically enabled when the user is entering text.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17isSecureTextEntrySbvp":{"name":"isSecureTextEntry","abstract":"

    Identifies whether the text object should disable text copying and in some cases hide the text being entered.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15textContentTypeSo06UITexteF0aSgvp":{"name":"textContentType","abstract":"

    The semantic meaning expected by a text input area.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC27allowsEditingTextAttributesSbvp":{"name":"allowsEditingTextAttributes","abstract":"

    A Boolean value indicating whether the text view allows the user to edit style information.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12isSelectableSbvp":{"name":"isSelectable","abstract":"

    A Boolean value indicating whether the receiver is selectable.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textDragDelegateSo06UITexteF0_pSgvp":{"name":"textDragDelegate","abstract":"

    A text drag delegate object for customizing the drag source behavior of a text view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16textDropDelegateSo06UITexteF0_pSgvp":{"name":"textDropDelegate","abstract":"

    The text drop delegate for interacting with a drop activity in the text view.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)didMoveToWindow":{"name":"didMoveToWindow()","abstract":"

    Subclasses can override it to perform additional actions whenever the window changes.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)sizeThatFits:":{"name":"sizeThatFits(_:)","abstract":"

    Asks the view to calculate and return the size that best fits the specified size.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)becomeFirstResponder":{"name":"becomeFirstResponder()","abstract":"

    Asks UIKit to make this object the first responder in its window.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11markedRangeSo8_NSRangeVSgvp":{"name":"markedRange","abstract":"

    The range of currently marked text in a document.","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13setAttributes_2atySDySo21NSAttributedStringKeyaypG_So8_NSRangeVtF":{"name":"setAttributes(_:at:)","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC21getFullAttributedText5using2inSo18NSAttributedStringCAA27AttachmentContentIdentifierV_So8_NSRangeVSgtF":{"name":"getFullAttributedText(using:in:)","abstract":"

    Returns the full attributed text contained in the EditorView along with the ones in editors nested in contained Attachments.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC27setNeedsAsyncTextResolutionyyF":{"name":"setNeedsAsyncTextResolution()","abstract":"

    Sets async text resolution to resolve on next text layout pass.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC24resolveAsyncTextIfNeededyyF":{"name":"resolveAsyncTextIfNeeded()","abstract":"

    Invokes async text resolution to resolve on demand.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16rangeOfCharacter2atSo8_NSRangeVSgSo7CGPointV_tF":{"name":"rangeOfCharacter(at:)","abstract":"

    Returns the range of character at the given point

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19contentLinesInRangeySayAA0B4LineVGSo8_NSRangeVF":{"name":"contentLinesInRange(_:)","abstract":"

    Gets the lines separated by newline characters from the given range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19previousContentLine4fromAA0bF0VSgSi_tF":{"name":"previousContentLine(from:)","abstract":"

    Gets the previous line of content from the given location. A content line is defined by the presence of a","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15nextContentLine4fromAA0bF0VSgSi_tF":{"name":"nextContentLine(from:)","abstract":"

    Gets the next line of content from the given location. A content line is defined by the presence of a","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15layoutLineAfteryAA0bE0VSgAFF":{"name":"layoutLineAfter(_:)","abstract":"

    Gets the line preceding the given line. Nil if the given line is invalid or is first line

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16layoutLineBeforeyAA0bE0VSgAFF":{"name":"layoutLineBefore(_:)","abstract":"

    Gets the line before the given line. Nil if the given line is invalid or is first line

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5rects3forSaySo6CGRectVGSo8_NSRangeV_tF":{"name":"rects(for:)","abstract":"

    Returns the rectangles for line fragments spanned by the range. Based on the span of the range,","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC9caretRect3forSo6CGRectVSi_tF":{"name":"caretRect(for:)","abstract":"

    Returns the caret rectangle for given position in the editor content.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC4word2atSo18NSAttributedStringCSgSi_tF":{"name":"word(at:)","abstract":"

    Gets the word from text at given location in editor content

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17attributeRangeFor_2atSo8_NSRangeVSgSo21NSAttributedStringKeya_SitF":{"name":"attributeRangeFor(_:at:)","abstract":"

    Gets the full range of attribute at given location.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC14deleteBackwardyyF":{"name":"deleteBackward()","abstract":"

    Deletes text backwards

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16insertAttachment2in10attachmentySo8_NSRangeV_AA0E0CtF":{"name":"insertAttachment(in:attachment:)","abstract":"

    Inserts an Attachment in the EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8setFocusyyF":{"name":"setFocus()","abstract":"

    Sets the focus in the EditorView

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC11resignFocusyyF":{"name":"resignFocus()","abstract":"

    Makes the EditorView lose focus.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20scrollRangeToVisibleyySo8_NSRangeVF":{"name":"scrollRangeToVisible(_:)","abstract":"

    Makes the EditorView scroll to given range such that it is visible. No-op if the range is already visible.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19scrollRectToVisible_8animatedySo6CGRectV_SbtF":{"name":"scrollRectToVisible(_:animated:)","abstract":"

    Makes the EditorView scroll to given range such that it is visible. No-op if the range is already visible.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC8contents2inSayAA0B7ContentVGSo8_NSRangeVSg_tF":{"name":"contents(in:)","abstract":"

    Gets the contents within the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17transformContents2in5usingSay11EncodedTypeQzGSo8_NSRangeVSg_xtAA0B15ContentEncodingRzlF":{"name":"transformContents(in:using:)","abstract":"

    Transforms EditorContent into given type. This function can also be used to encode content into a different type for e.g. encoding the contents to JSON. Encoding","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17replaceCharacters2in4withySo8_NSRangeV_So18NSAttributedStringCtF":{"name":"replaceCharacters(in:with:)","abstract":"

    Replaces the given range of content with the attributedString provided.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17replaceCharacters2in4withySo8_NSRangeV_SStF":{"name":"replaceCharacters(in:with:)","abstract":"

    Replaces the characters in the given range with the string provided.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16appendCharactersyySo18NSAttributedStringCF":{"name":"appendCharacters(_:)","abstract":"

    Appends the given attributed text to the end of content in EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16appendCharactersyySSF":{"name":"appendCharacters(_:)","abstract":"

    Appends the given attributed text to the end of content in EditorView.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17registerProcessoryyAA14TextProcessing_pF":{"name":"registerProcessor(_:)","abstract":"

    Registers the given text processor with the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19unregisterProcessoryyAA14TextProcessing_pF":{"name":"unregisterProcessor(_:)","abstract":"

    Unregisters the given text processor from the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18registerProcessorsyySayAA14TextProcessing_pGF":{"name":"registerProcessors(_:)","abstract":"

    Registers the given text processors with the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20unregisterProcessorsyySayAA14TextProcessing_pGF":{"name":"unregisterProcessors(_:)","abstract":"

    Unregisters the given text processors from the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16registerCommandsyySayAA0B7Command_pGF":{"name":"registerCommands(_:)","abstract":"

    Registers the given commands with the Editor. Only registered commands can be executed if any is added to the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC18unregisterCommandsyySayAA0B7Command_pGF":{"name":"unregisterCommands(_:)","abstract":"

    Unregisters the given commands from the Editor. When all commands are unregistered, any command can be executed on the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15registerCommandyyAA0bE0_pF":{"name":"registerCommand(_:)","abstract":"

    Registers the given command with the Editor. Only registered commands can be executed if any is added to the Editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC17unregisterCommandyyAA0bE0_pF":{"name":"unregisterCommand(_:)","abstract":"

    Unregisters the given command from the Editor. When all commands are unregistered, any command can be executed on the editor.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/c:@M@Proton@objc(cs)EditorView(im)canPerformAction:withSender:":{"name":"canPerformAction(_:withSender:)","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC20canPerformMenuAction_10withSenderSb10ObjectiveC8SelectorV_ypSgtF":{"name":"canPerformMenuAction(_:withSender:)","abstract":"

    Determines if the given menu action can be invoked.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC5paste16attributedString4intoSbSo012NSAttributedF0C_So8_NSRangeVtF":{"name":"paste(attributedString:into:)","abstract":"

    This method attempt to simulate the paste method but with explicitly provided attributed string and insertion range.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC13addAttributes_2atySDySo21NSAttributedStringKeyaypG_So8_NSRangeVtF":{"name":"addAttributes(_:at:)","abstract":"

    Adds given attributes to the range provided. If the range already contains a value for an attribute being provided,","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16removeAttributes_2atySaySo21NSAttributedStringKeyaG_So8_NSRangeVtF":{"name":"removeAttributes(_:at:)","abstract":"

    Removes the given attributes from the range provided. If the attribute does not exist in the range, it will be a no-op.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC12addAttribute_5value2atySo21NSAttributedStringKeya_ypSo8_NSRangeVtF":{"name":"addAttribute(_:value:at:)","abstract":"

    Adds given attribute to the range provided. If the attribute already exists in the range, it will be overwritten with the new value provided here.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC15removeAttribute_2atySo21NSAttributedStringKeya_So8_NSRangeVtF":{"name":"removeAttribute(_:at:)","abstract":"

    Removes the attribute from given range. If the attribute does not exist in the range, it is a no-op.

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC16resolveAsyncTextyyF":{"name":"resolveAsyncText()","abstract":"

    Undocumented

    ","parent_name":"EditorView"},"Classes/EditorView.html#/s:6Proton10EditorViewC19isCommandRegisteredySbAA0E4NameVF":{"name":"isCommandRegistered(_:)","abstract":"

    Determines if the given command can be executed on the current editor. The command is allowed to be executed if","parent_name":"EditorView"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Background color

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC013roundedCornerC0AA07RoundedeC0Ovp":{"name":"roundedCornerStyle","abstract":"

    Rounding style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6borderAA06BorderC0CSgvp":{"name":"border","abstract":"

    Optional border style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6shadowAA06ShadowC0CSgvp":{"name":"shadow","abstract":"

    Optional shadow style for the background

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC18hasSquaredOffJoinsSbvp":{"name":"hasSquaredOffJoins","abstract":"

    Determines if the background has squared off joins at the point of wrapping of content.","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC10heightModeAA0bE0Ovp":{"name":"heightMode","abstract":"

    Defines if the background should be drawn based on height of text range with style, or that of the height of line fragment containing","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC9widthModeAA0bE0Ovp":{"name":"widthMode","abstract":"

    Defines if the background should be drawn based on width of text range with style, or that of the entire width of line fragment containing","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC6insetsSo12UIEdgeInsetsVvp":{"name":"insets","abstract":"

    Insets for drawn background. Defaults to .zero

    ","parent_name":"BackgroundStyle"},"Classes/BackgroundStyle.html#/s:6Proton15BackgroundStyleC5color013roundedCornerC06border6shadow18hasSquaredOffJoins10heightMode05widthN06insetsACSo7UIColorC_AA07RoundedfC0OAA06BorderC0CSgAA06ShadowC0CSgSbAA0bN0OAWSo12UIEdgeInsetsVtcfc":{"name":"init(color:roundedCornerStyle:border:shadow:hasSquaredOffJoins:heightMode:widthMode:insets:)","abstract":"

    Undocumented

    ","parent_name":"BackgroundStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Color of border

    ","parent_name":"BorderStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC9lineWidth14CoreFoundation7CGFloatVvp":{"name":"lineWidth","abstract":"

    Width of the border

    ","parent_name":"BorderStyle"},"Classes/BorderStyle.html#/s:6Proton11BorderStyleC9lineWidth5colorAC14CoreFoundation7CGFloatV_So7UIColorCtcfc":{"name":"init(lineWidth:color:)","abstract":"

    Undocumented

    ","parent_name":"BorderStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC5colorSo7UIColorCvp":{"name":"color","abstract":"

    Color of the shadow

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC6offsetSo6CGSizeVvp":{"name":"offset","abstract":"

    Shadow offset

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC4blur14CoreFoundation7CGFloatVvp":{"name":"blur","abstract":"

    Shadow blur

    ","parent_name":"ShadowStyle"},"Classes/ShadowStyle.html#/s:6Proton11ShadowStyleC5color6offset4blurACSo7UIColorC_So6CGSizeV14CoreFoundation7CGFloatVtcfc":{"name":"init(color:offset:blur:)","abstract":"

    Undocumented

    ","parent_name":"ShadowStyle"},"Classes/Attachment.html#/s:6Proton10AttachmentC18selectBeforeDeleteSbvp":{"name":"selectBeforeDelete","abstract":"

    Governs if the attachment should be selected before being deleted. When true, tapping the backspace key the first time on range containing Attachment will only","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6stringSo18NSAttributedStringCvp":{"name":"string","abstract":"

    Attributed string representation of the Attachment. This can be used directly to replace a range of text in EditorView

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC4nameSo19PREditorContentNameCSgvp":{"name":"name","abstract":"

    Name of the content contained within the Attachment

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC14contentEditorsSayAA10EditorViewCGvp":{"name":"contentEditors","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC19containerEditorViewAA0dE0CSgvp":{"name":"containerEditorView","abstract":"

    EditorView containing this attachment

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC14offsetProviderAA0B15OffsetProviding_pSgvp":{"name":"offsetProvider","abstract":"

    Offsets for the attachment. Can be used to align attachment with the text. Defaults to .zero

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC20containerContentNameSo08PREditordE0CSgvp":{"name":"containerContentName","abstract":"

    Name of the content for the EditorView

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC11contentViewSo6UIViewCSgvp":{"name":"contentView","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC15containerBoundsSo6CGRectVSgvp":{"name":"containerBounds","abstract":"

    Bounds of the container

    ","parent_name":"Attachment"},"Classes/Attachment.html#/c:@M@Proton@objc(cs)Attachment(py)bounds":{"name":"bounds","abstract":"

    The bounds rectangle, which describes the attachment’s location and size in its own coordinate system.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC5imageAcA0B5ImageV_tcfc":{"name":"init(image:)","abstract":"

    Initializes an attachment with the image provided.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC_4sizeAcA0B15TypeIdentifying_AA013EditorContentE0So6UIViewCXc_AA0B4SizeOtcfc":{"name":"init(_:size:)","abstract":"

    Initializes the attachment with the given content view

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC15didChangeBounds_03oldE0ySo6CGRectV_AGtF":{"name":"didChangeBounds(_:oldBounds:)","abstract":"

    Causes invalidation of layout of the attachment when the containing view bounds are changed

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC19removeFromContaineryyF":{"name":"removeFromContainer()","abstract":"

    Removes this attachment from the EditorView it is contained in.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC16rangeInContainerSo8_NSRangeVSgyF":{"name":"rangeInContainer()","abstract":"

    Range of this attachment in it’s container

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC32addedAttributesOnContainingRange16rangeInContainer10attributesySo8_NSRangeV_SDySo21NSAttributedStringKeyaypGtF":{"name":"addedAttributesOnContainingRange(rangeInContainer:attributes:)","abstract":"

    Invoked when attributes are added in the containing EditorView in the range of string in which this attachment is contained.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC36removedAttributesFromContainingRange16rangeInContainer10attributesySo8_NSRangeV_SaySo21NSAttributedStringKeyaGtF":{"name":"removedAttributesFromContainingRange(rangeInContainer:attributes:)","parent_name":"Attachment"},"Classes/Attachment.html#/c:@M@Proton@objc(cs)Attachment(im)attachmentBoundsForTextContainer:proposedLineFragment:glyphPosition:characterIndex:":{"name":"attachmentBounds(for:proposedLineFragment:glyphPosition:characterIndex:)","abstract":"

    Returns the calculated bounds for the attachment based on size rule and content view provided during initialization.

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6update4withyAA0B5ImageV_tF":{"name":"update(with:)","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC6update_4sizeyAA0B15TypeIdentifying_AA013EditorContentF0So6UIViewCXc_AA0B4SizeOtF":{"name":"update(_:size:)","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC40getFullTextRangeIdentificationAttributesSDySo21NSAttributedStringKeyaypGyF":{"name":"getFullTextRangeIdentificationAttributes()","abstract":"

    Undocumented

    ","parent_name":"Attachment"},"Classes/Attachment.html#/s:6Proton10AttachmentC16invalidateLayoutyyF":{"name":"invalidateLayout()","abstract":"

    Invalidates the current layout and triggers a layout update.

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

    An attachment can be used as a container for any view object. Based on the AttachmentSize provided, the attachment automatically renders itself alongside the text in EditorView."},"Classes/ShadowStyle.html":{"name":"ShadowStyle","abstract":"

    Shadow style for backgroundStyle attribute

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

    Border style for backgroundStyle attribute

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

    Style for background color attribute. Adding backgroundStyle attribute will add border, background and shadow"},"Classes/EditorView.html":{"name":"EditorView","abstract":"

    A scrollable, multiline text region capable of resizing itself based of the height of the content. Maximum height of EditorView"},"Classes/EditorViewContext.html":{"name":"EditorViewContext","abstract":"

    Describes the context for the EditorView. A context is used to execute the commands using EditorCommandExecutor. In a typical scenario, where there are"},"Classes/AttributesToggleCommand.html":{"name":"AttributesToggleCommand","abstract":"

    Editor command that toggles given attributes in selected range in the Editor.

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

    Editor command that toggles Bold attribute to the selected range in the Editor.

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

    Editor command that toggles given font trait to the selected range in the Editor.

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

    Editor command that toggles Italics attribute to the selected range in the Editor.

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

    Command that can be used to toggle list attributes of selected range of text."},"Classes/ListIndentCommand.html":{"name":"ListIndentCommand","abstract":"

    Command that can be used to toggle list indentation of selected range of text.

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

    Command that can be used to toggle list indentation of selected range of text.

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

    Undocumented

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

    Undocumented

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

    EditorCommandExecutor manages all the EditorView in the main EditorView. Sub editors may have been added as Attachment in the EditorView."},"Classes/GridCell.html":{"name":"GridCell","abstract":"

    Denotes a cell in the GridView

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

    A view that provides a tabular structure where each cell is an EditorView."},"Classes/ListTextProcessor.html":{"name":"ListTextProcessor","abstract":"

    Text process capable of processing keyboard inputs specific to lists. ListTextProcessor only works after a range of text"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions 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.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index 30ca0f82..8bba7872 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -457,109 +457,95 @@ }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 135, + "line": 140, "symbol": "EditorView.textInteractions", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 140, + "line": 145, "symbol": "EditorView.textViewGestures", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 145, + "line": 150, "symbol": "EditorView.textDragInteractionEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 150, + "line": 155, "symbol": "EditorView.bounds", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 224, + "line": 229, "symbol": "EditorView.init(coder:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 243, + "line": 248, "symbol": "EditorView.selectedTextRange", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 263, + "line": 268, "symbol": "EditorView.verticalScrollIndicatorInsets", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 268, + "line": 273, "symbol": "EditorView.keyboardDismissMode", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 273, + "line": 278, "symbol": "EditorView.isScrollEnabled", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 416, + "line": 435, "symbol": "EditorView.selectedRange", "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 672, + "line": 703, "symbol": "EditorView.setAttributes(_:at:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 992, + "line": 1025, "symbol": "EditorView.canPerformAction(_:withSender:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorView.swift", - "line": 1231, + "line": 1264, "symbol": "EditorView.resolveAsyncText()", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, - { - "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorViewDelegate.swift", - "line": 89, - "symbol": "EditorViewDelegate.editor(_:didLayout:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/Editor/EditorViewDelegate.swift", - "line": 102, - "symbol": "EditorViewDelegate.editor(_:didLayout:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, { "file": "/Users/rkwatra/Documents/practice/proton/Proton/Sources/Swift/EditorCommand/Commands/AttributesToggleCommand.swift", "line": 25,