diff --git a/.jazzy.yaml b/.jazzy.yaml index 7f901e9db..0cd8553e4 100644 --- a/.jazzy.yaml +++ b/.jazzy.yaml @@ -6,5 +6,5 @@ readme: README.md module: SwiftCurrent author_url: https://github.com/wwt/SwiftCurrent github_url: https://github.com/wwt/SwiftCurrent -sourcekitten_sourcefile: workflow-docs.json,workflowuikit-docs.json +sourcekitten_sourcefile: swiftcurrent-docs.json,swiftcurrentuikit-docs.json author: WWT and Tyler Thompson \ No newline at end of file diff --git a/docs/Classes.html b/docs/Classes.html index 106825f43..a8ae5412a 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -226,7 +226,7 @@

Classes

diff --git a/docs/Classes/AnyFlowRepresentable.html b/docs/Classes/AnyFlowRepresentable.html index c979a7c13..2ad62b014 100644 --- a/docs/Classes/AnyFlowRepresentable.html +++ b/docs/Classes/AnyFlowRepresentable.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -237,7 +237,7 @@

Parameters

diff --git a/docs/Classes/AnyWorkflow.html b/docs/Classes/AnyWorkflow.html index 0c7c5525e..cb2060d82 100644 --- a/docs/Classes/AnyWorkflow.html +++ b/docs/Classes/AnyWorkflow.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -315,7 +315,7 @@

Parameters

diff --git a/docs/Classes/AnyWorkflow/Element.html b/docs/Classes/AnyWorkflow/Element.html index 81f0a6966..2c87fe1e1 100644 --- a/docs/Classes/AnyWorkflow/Element.html +++ b/docs/Classes/AnyWorkflow/Element.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -148,7 +148,7 @@

Element

diff --git a/docs/Classes/AnyWorkflow/InstanceNode.html b/docs/Classes/AnyWorkflow/InstanceNode.html deleted file mode 100644 index 0730434dc..000000000 --- a/docs/Classes/AnyWorkflow/InstanceNode.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - InstanceNode Type Alias Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.0.0 Docs - - (91% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- - -
- - - - diff --git a/docs/Classes/AnyWorkflow/PassedArgs.html b/docs/Classes/AnyWorkflow/PassedArgs.html index 04924a49d..c865d5174 100644 --- a/docs/Classes/AnyWorkflow/PassedArgs.html +++ b/docs/Classes/AnyWorkflow/PassedArgs.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

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

Return Value

diff --git a/docs/Classes/FlowPersistence.html b/docs/Classes/FlowPersistence.html index ecbcd3cc8..fb9f38e37 100644 --- a/docs/Classes/FlowPersistence.html +++ b/docs/Classes/FlowPersistence.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

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

Declaration

diff --git a/docs/Classes/FlowRepresentableMetadata.html b/docs/Classes/FlowRepresentableMetadata.html index 7dd61536c..0f27d5a46 100644 --- a/docs/Classes/FlowRepresentableMetadata.html +++ b/docs/Classes/FlowRepresentableMetadata.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -281,7 +281,7 @@

Parameters

diff --git a/docs/Classes/LaunchStyle.html b/docs/Classes/LaunchStyle.html index 3edb1b6a0..6dd13dfd7 100644 --- a/docs/Classes/LaunchStyle.html +++ b/docs/Classes/LaunchStyle.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -222,7 +222,7 @@

Declaration

diff --git a/docs/Classes/LaunchStyle/PresentationType.html b/docs/Classes/LaunchStyle/PresentationType.html index a4bcd3cb9..d527e0b94 100644 --- a/docs/Classes/LaunchStyle/PresentationType.html +++ b/docs/Classes/LaunchStyle/PresentationType.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -334,7 +334,7 @@

Declaration

diff --git a/docs/Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html b/docs/Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html index 076af45cb..198db9bee 100644 --- a/docs/Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html +++ b/docs/Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -422,7 +422,7 @@

Declaration

diff --git a/docs/Classes/LinkedList.html b/docs/Classes/LinkedList.html index c16f1b3ff..503c8aa99 100644 --- a/docs/Classes/LinkedList.html +++ b/docs/Classes/LinkedList.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -1901,7 +1901,7 @@

Parameters

diff --git a/docs/Classes/LinkedList/Element.html b/docs/Classes/LinkedList/Element.html index 8817c20d0..7b431d275 100644 --- a/docs/Classes/LinkedList/Element.html +++ b/docs/Classes/LinkedList/Element.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -147,7 +147,7 @@

Element

diff --git a/docs/Classes/LinkedList/Iterator.html b/docs/Classes/LinkedList/Iterator.html index e17b23688..c4d6f9c8b 100644 --- a/docs/Classes/LinkedList/Iterator.html +++ b/docs/Classes/LinkedList/Iterator.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -147,7 +147,7 @@

Iterator

diff --git a/docs/Classes/LinkedList/Node.html b/docs/Classes/LinkedList/Node.html index ea0bd6cd5..4e47ff2c1 100644 --- a/docs/Classes/LinkedList/Node.html +++ b/docs/Classes/LinkedList/Node.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -484,7 +484,7 @@

Declaration

diff --git a/docs/Classes/LinkedList/Node/TraversalDirection.html b/docs/Classes/LinkedList/Node/TraversalDirection.html index 643c44335..18d641a01 100644 --- a/docs/Classes/LinkedList/Node/TraversalDirection.html +++ b/docs/Classes/LinkedList/Node/TraversalDirection.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -206,7 +206,7 @@

Declaration

diff --git a/docs/Classes/LinkedList/Node/Value.html b/docs/Classes/LinkedList/Node/Value.html index 4f7360626..7493f378d 100644 --- a/docs/Classes/LinkedList/Node/Value.html +++ b/docs/Classes/LinkedList/Node/Value.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -148,7 +148,7 @@

Value

diff --git a/docs/Classes/UIKitPresenter.html b/docs/Classes/UIKitPresenter.html index 24223c88c..c8bf89ba3 100644 --- a/docs/Classes/UIKitPresenter.html +++ b/docs/Classes/UIKitPresenter.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -398,7 +398,7 @@

Parameters

diff --git a/docs/Classes/UIWorkflowItem.html b/docs/Classes/UIWorkflowItem.html index 421c47793..d8b0a37f0 100644 --- a/docs/Classes/UIWorkflowItem.html +++ b/docs/Classes/UIWorkflowItem.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -166,7 +166,7 @@

Example

diff --git a/docs/Classes/Workflow.html b/docs/Classes/Workflow.html index f088eb406..84139d8bb 100644 --- a/docs/Classes/Workflow.html +++ b/docs/Classes/Workflow.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -2117,7 +2117,7 @@

Return Value

diff --git a/docs/Enums.html b/docs/Enums.html index d9c41c898..9b83bf8cc 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -154,7 +154,7 @@

Enumerations

diff --git a/docs/Enums/WorkflowError.html b/docs/Enums/WorkflowError.html index cd5a8c4d5..3eb6ab566 100644 --- a/docs/Enums/WorkflowError.html +++ b/docs/Enums/WorkflowError.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -179,7 +179,7 @@

Declaration

diff --git a/docs/Extensions.html b/docs/Extensions.html index d9e5152ce..bd115178f 100644 --- a/docs/Extensions.html +++ b/docs/Extensions.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -154,7 +154,7 @@

Extensions

diff --git a/docs/Extensions/UIViewController.html b/docs/Extensions/UIViewController.html index 2607c60f2..da33ff269 100644 --- a/docs/Extensions/UIViewController.html +++ b/docs/Extensions/UIViewController.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -318,7 +318,7 @@

Parameters

diff --git a/docs/Protocols.html b/docs/Protocols.html index ab5e86baa..791ca685b 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -172,7 +172,7 @@

Protocols

diff --git a/docs/Protocols/FlowRepresentable.html b/docs/Protocols/FlowRepresentable.html index b2ebc25b4..4c55bc960 100644 --- a/docs/Protocols/FlowRepresentable.html +++ b/docs/Protocols/FlowRepresentable.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -603,7 +603,7 @@

Parameters

diff --git a/docs/Protocols/OrchestrationResponder.html b/docs/Protocols/OrchestrationResponder.html index 163453bdf..ca5a89f4e 100644 --- a/docs/Protocols/OrchestrationResponder.html +++ b/docs/Protocols/OrchestrationResponder.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

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

Parameters

diff --git a/docs/Protocols/StoryboardLoadable.html b/docs/Protocols/StoryboardLoadable.html index 986f4ddd1..5265e1683 100644 --- a/docs/Protocols/StoryboardLoadable.html +++ b/docs/Protocols/StoryboardLoadable.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -286,7 +286,7 @@

Parameters

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes.html index 106825f43..a8ae5412a 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -226,7 +226,7 @@

Classes

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyFlowRepresentable.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyFlowRepresentable.html index c979a7c13..2ad62b014 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyFlowRepresentable.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyFlowRepresentable.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -237,7 +237,7 @@

Parameters

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow.html index 0c7c5525e..cb2060d82 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -315,7 +315,7 @@

Parameters

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow/Element.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow/Element.html index 81f0a6966..2c87fe1e1 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow/Element.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow/Element.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -148,7 +148,7 @@

Element

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow/InstanceNode.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow/InstanceNode.html deleted file mode 100644 index 0730434dc..000000000 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow/InstanceNode.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - InstanceNode Type Alias Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.0.0 Docs - - (91% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- - -
- - - - diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow/PassedArgs.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow/PassedArgs.html index 04924a49d..c865d5174 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow/PassedArgs.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/AnyWorkflow/PassedArgs.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

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

Return Value

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/FlowPersistence.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/FlowPersistence.html index ecbcd3cc8..fb9f38e37 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/FlowPersistence.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/FlowPersistence.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

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

Declaration

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/FlowRepresentableMetadata.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/FlowRepresentableMetadata.html index 7dd61536c..0f27d5a46 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/FlowRepresentableMetadata.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/FlowRepresentableMetadata.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -281,7 +281,7 @@

Parameters

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle.html index 3edb1b6a0..6dd13dfd7 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -222,7 +222,7 @@

Declaration

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType.html index a4bcd3cb9..d527e0b94 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -334,7 +334,7 @@

Declaration

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html index 076af45cb..198db9bee 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -422,7 +422,7 @@

Declaration

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList.html index c16f1b3ff..503c8aa99 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -1901,7 +1901,7 @@

Parameters

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Element.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Element.html index 8817c20d0..7b431d275 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Element.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Element.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -147,7 +147,7 @@

Element

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Iterator.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Iterator.html index e17b23688..c4d6f9c8b 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Iterator.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Iterator.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -147,7 +147,7 @@

Iterator

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node.html index ea0bd6cd5..4e47ff2c1 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -484,7 +484,7 @@

Declaration

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node/TraversalDirection.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node/TraversalDirection.html index 643c44335..18d641a01 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node/TraversalDirection.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node/TraversalDirection.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -206,7 +206,7 @@

Declaration

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node/Value.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node/Value.html index 4f7360626..7493f378d 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node/Value.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/LinkedList/Node/Value.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -148,7 +148,7 @@

Value

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/UIKitPresenter.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/UIKitPresenter.html index 24223c88c..c8bf89ba3 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/UIKitPresenter.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/UIKitPresenter.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -398,7 +398,7 @@

Parameters

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/UIWorkflowItem.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/UIWorkflowItem.html index 421c47793..d8b0a37f0 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/UIWorkflowItem.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/UIWorkflowItem.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -166,7 +166,7 @@

Example

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/Workflow.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/Workflow.html index f088eb406..84139d8bb 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/Workflow.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Classes/Workflow.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -2117,7 +2117,7 @@

Return Value

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Enums.html index d9c41c898..9b83bf8cc 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Enums.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -154,7 +154,7 @@

Enumerations

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Enums/WorkflowError.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Enums/WorkflowError.html index cd5a8c4d5..3eb6ab566 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Enums/WorkflowError.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Enums/WorkflowError.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -179,7 +179,7 @@

Declaration

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Extensions.html index d9e5152ce..bd115178f 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Extensions.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Extensions.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -154,7 +154,7 @@

Extensions

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Extensions/UIViewController.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Extensions/UIViewController.html index 2607c60f2..da33ff269 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Extensions/UIViewController.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Extensions/UIViewController.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -318,7 +318,7 @@

Parameters

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols.html index ab5e86baa..791ca685b 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -172,7 +172,7 @@

Protocols

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/FlowRepresentable.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/FlowRepresentable.html index b2ebc25b4..4c55bc960 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/FlowRepresentable.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/FlowRepresentable.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -603,7 +603,7 @@

Parameters

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/OrchestrationResponder.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/OrchestrationResponder.html index 163453bdf..ca5a89f4e 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/OrchestrationResponder.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/OrchestrationResponder.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

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

Parameters

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/StoryboardLoadable.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/StoryboardLoadable.html index 986f4ddd1..5265e1683 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/StoryboardLoadable.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/Protocols/StoryboardLoadable.html @@ -21,7 +21,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -286,7 +286,7 @@

Parameters

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/badge.svg b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/badge.svg deleted file mode 100644 index 685c5e11b..000000000 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/badge.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - documentation - - - documentation - - - 92% - - - 92% - - - diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/index.html b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/index.html index 06bcf3d00..f937f4c28 100644 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/index.html @@ -20,7 +20,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -129,8 +129,7 @@

Build Status Pod Version -Quality Gate -Coverage

+codecov

Welcome

SwiftCurrent is a library that lets you easily manage journeys through your Swift application.

@@ -192,7 +191,7 @@

Deep Dive

diff --git a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/undocumented.json deleted file mode 100644 index 48d30d0b2..000000000 --- a/docs/docsets/SwiftCurrent.docset/Contents/Resources/Documents/undocumented.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "warnings": [ - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent/LinkedList/LinkedList.swift", - "line": 19, - "symbol": "LinkedList.Index", - "symbol_kind": "source.lang.swift.decl.typealias", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent/LinkedList/LinkedList.swift", - "line": 20, - "symbol": "LinkedList.SubSequence", - "symbol_kind": "source.lang.swift.decl.typealias", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent/Models/Workflow.swift", - "line": 139, - "symbol": "Workflow._abandon()", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent/Models/_WorkflowItem.swift", - "line": 12, - "symbol": "_WorkflowItem", - "symbol_kind": "source.lang.swift.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent/Protocols/FlowRepresentable.swift", - "line": 79, - "symbol": "FlowRepresentable._factory(_:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent/Protocols/FlowRepresentable.swift", - "line": 82, - "symbol": "FlowRepresentable._factory(_:with:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent/Protocols/FlowRepresentable.swift", - "line": 101, - "symbol": "FlowRepresentable._workflowUnderlyingInstance", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent/Protocols/FlowRepresentable.swift", - "line": 111, - "symbol": "FlowRepresentable._factory(_:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent/Protocols/FlowRepresentable.swift", - "line": 114, - "symbol": "FlowRepresentable._factory(_:with:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent/TypeErased/AnyWorkflow.swift", - "line": 37, - "symbol": "AnyWorkflow._abandon()", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent/TypeErased/AnyWorkflow.swift", - "line": 46, - "symbol": "AnyWorkflow.last(where:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent_UIKit/StoryboardLoadable.swift", - "line": 65, - "symbol": "StoryboardLoadable._factory(_:with:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent_UIKit/StoryboardLoadable.swift", - "line": 81, - "symbol": "StoryboardLoadable._factory(_:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent_UIKit/UIWorkflowItem.swift", - "line": 38, - "symbol": "UIWorkflowItem.WorkflowInput", - "symbol_kind": "source.lang.swift.decl.typealias", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent_UIKit/UIWorkflowItem.swift", - "line": 39, - "symbol": "UIWorkflowItem.WorkflowOutput", - "symbol_kind": "source.lang.swift.decl.typealias", - "warning": "undocumented" - }, - { - "file": "/Users/tylerthompson/workspace/Workflow/Sources/SwiftCurrent_UIKit/UIWorkflowItem.swift", - "line": 41, - "symbol": "UIWorkflowItem._workflowPointer", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - } - ], - "source_directory": "/Users/tylerthompson/workspace/Workflow" -} \ No newline at end of file diff --git a/docs/docsets/SwiftCurrent.tgz b/docs/docsets/SwiftCurrent.tgz index 14343776b..d1e659040 100644 Binary files a/docs/docsets/SwiftCurrent.tgz and b/docs/docsets/SwiftCurrent.tgz differ diff --git a/docs/docsets/Workflow.docset/Contents/Info.plist b/docs/docsets/Workflow.docset/Contents/Info.plist deleted file mode 100644 index 11a4db26b..000000000 --- a/docs/docsets/Workflow.docset/Contents/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleIdentifier - com.jazzy.workflow - CFBundleName - Workflow - DocSetPlatformFamily - workflow - isDashDocset - - dashIndexFilePath - index.html - isJavaScriptEnabled - - DashDocSetFamily - dashtoc - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes.html deleted file mode 100644 index 3c3f6dc29..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - Classes Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- - -
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyFlowRepresentable.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyFlowRepresentable.html deleted file mode 100644 index 870a227ca..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyFlowRepresentable.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - AnyFlowRepresentable Class Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

AnyFlowRepresentable

-
-
- -
public class AnyFlowRepresentable
- -
-
-

A type erased FlowRepresentable.

- -
-
- -
-
-
- -
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow.html deleted file mode 100644 index dbd3235d2..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - AnyWorkflow Class Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

AnyWorkflow

-
-
- -
public class AnyWorkflow
-
extension AnyWorkflow: Sequence
- -
-
-

A type erased Workflow.

- -
-
- -
-
-
-
    -
  • -
    - - - - Element - -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    The OrchestrationResponder of the wrapped Workflow.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public internal(set) var orchestrationResponder: OrchestrationResponder? { get set }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - count - -
    -
    -
    -
    -
    -
    -

    The count of the wrapped Workflow.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var count: Int { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - init(_:) - -
    -
    -
    -
    -
    -
    -

    Creates a type erased Workflow.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init<F>(_ workflow: Workflow<F>) where F : FlowRepresentable
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - PassedArgs - -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Called when the workflow should be terminated, and the app should return to the point before the workflow was launched.

    -
    -

    Important

    - In order to dismiss UIKit views the workflow must have an OrchestrationResponder that is a UIKitPresenter. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func abandon(animated: Bool = true, onFinish: (() -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - animated - - -
    -

    a boolean indicating whether abandoning the workflow should be animated.

    -
    -
    - - onFinish - - -
    -

    a callback after the workflow has been abandoned.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow/Element.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow/Element.html deleted file mode 100644 index 46784a316..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow/Element.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - Element Type Alias Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- - -
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow/InstanceNode.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow/InstanceNode.html deleted file mode 100644 index 0730434dc..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow/InstanceNode.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - InstanceNode Type Alias Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.0.0 Docs - - (91% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- - -
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow/PassedArgs.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow/PassedArgs.html deleted file mode 100644 index fd8d7427e..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/AnyWorkflow/PassedArgs.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - PassedArgs Enumeration Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

PassedArgs

-
-
- -
public enum PassedArgs
- -
-
-

A type that represents either a type erased value or no value.

- -
-
- -
-
-
-
    -
  • -
    - - - - none - -
    -
    -
    -
    -
    -
    -

    No arguments are passed forward.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case none
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - args(_:) - -
    -
    -
    -
    -
    -
    -

    The type erased value passed forward.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case args(Any?)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Performs a coalescing operation, returning the type erased value of a PassedArgs instance or a default value.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func extractArgs(defaultValue: Any?) -> Any?
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - defaultValue - - -
    -

    the default value to use if there are no args.

    -
    -
    -
    -
    -

    Return Value

    -

    type erased value of a PassedArgs instance or a default value.

    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/FlowPersistence.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/FlowPersistence.html deleted file mode 100644 index a650a0a65..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/FlowPersistence.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - FlowPersistence Class Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

FlowPersistence

-
-
- -
public final class FlowPersistence
-
extension FlowPersistence: Equatable
- -
-
-

An extendable class that indicates how a FlowRepresentable should be persisted.

-

Discussion

- -

Used when you are creating a Workflow.

- -
-
- -
-
-
-
    -
  • -
    - - - - default - -
    -
    -
    -
    -
    -
    -

    Indicates a FlowRepresentable in a Workflow should persist based on its shouldLoad function.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let `default`: FlowPersistence
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - persistWhenSkipped - -
    -
    -
    -
    -
    -
    -

    Indicates a FlowRepresentable in a Workflow whose shouldLoad function returns false, should still be persisted in the workflow.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let persistWhenSkipped: FlowPersistence
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Indicates a FlowRepresentable in a Workflow whose shouldLoad function returns true, should be removed from the workflow after proceeding forward.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let removedAfterProceeding: FlowPersistence
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - new - -
    -
    -
    -
    -
    -
    -

    A new instance of FlowPersistence; only use for extending cases of FlowPersistence.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static var new: FlowPersistence { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - hiddenInitially - -
    -
    -
    -
    -
    -
    -

    Indicates a FlowRepresentable in a Workflow whose shouldLoad function returns false, should be persisted in the workflow for backwards navigation.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let hiddenInitially: FlowPersistence
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/FlowRepresentableMetadata.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/FlowRepresentableMetadata.html deleted file mode 100644 index 9f5d76a5a..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/FlowRepresentableMetadata.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - FlowRepresentableMetadata Class Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

FlowRepresentableMetadata

-
-
- -
public class FlowRepresentableMetadata
- -
-
-

Data about a FlowRepresentable.

-

Discussion

- -

Every time a Workflow is created, the defining characteristics about a FlowRepresentable are stored in the FlowRepresentableMetadata to be used later.

- -
-
- -
-
-
- -
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LaunchStyle.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LaunchStyle.html deleted file mode 100644 index 5c2d7975b..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LaunchStyle.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - LaunchStyle Class Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

LaunchStyle

-
-
- -
public final class LaunchStyle
-
extension LaunchStyle: Equatable
- -
-
-

An extendable class that indicates how a FlowRepresentable should be launched.

-

Discussion

- -

Used when you are creating a Workflow.

- -
-
- -
-
-
-
    -
  • -
    - - - - default - -
    -
    -
    -
    -
    -
    -

    The launch style used if you do not specify one; behavior is dependent on responder.

    -

    Discussion

    - -

    The launch style behavior is dependent on the responder. For example: SwiftUI and UIKit presenters will think .default means something contextual to themselves, but it won’t necessarily be the same between them.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static let `default`: LaunchStyle
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - new - -
    -
    -
    -
    -
    -
    -

    A new instance of LaunchStyle; only use for extending cases of LaunchStyle.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static var new: LaunchStyle { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - PresentationType - -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType.html deleted file mode 100644 index 58cfa8046..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType.html +++ /dev/null @@ -1,342 +0,0 @@ - - - - PresentationType Enumeration Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

PresentationType

-
-
- -
public enum PresentationType : RawRepresentable
-
extension LaunchStyle.PresentationType: Equatable
- -
-
-

A type indicating how a FlowRepresentable should be presented.

- -
-
- -
-
-
-
    -
  • -
    - - - - default - -
    -
    -
    -
    -
    -
    -

    Indicates a FlowRepresentable can be launched contextually.

    -
    -

    Important

    - If there’s already a navigation stack, it will be used; otherwise views will present modally. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case `default`
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - navigationStack - -
    -
    -
    -
    -
    -
    -

    Indicates a FlowRepresentable should be launched in a navigation stack of some kind (For example with UIKit this would use a UINavigationController).

    -
    -

    Important

    - If no current navigation stack is available, one will be created. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case navigationStack
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - modal(_:) - -
    -
    -
    -
    -
    -
    -

    Indicates a FlowRepresentable should be launched modally.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case modal(ModalPresentationStyle)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - modal - -
    -
    -
    -
    -
    -
    -

    An alias for PresentationType.modal(.default).

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public static var modal: PresentationType { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - init(rawValue:) - -
    -
    -
    -
    -
    -
    -

    Creates a PresentationType from a LaunchStyle, or returns nil if no mapping exists.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init?(rawValue: LaunchStyle)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - rawValue - -
    -
    -
    -
    -
    -
    -

    The corresponding LaunchStyle for this PresentationType

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var rawValue: LaunchStyle { get }
    - -
    -
    -
    -
    -
  • -
  • - -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html deleted file mode 100644 index dd66facc8..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html +++ /dev/null @@ -1,430 +0,0 @@ - - - - ModalPresentationStyle Enumeration Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

ModalPresentationStyle

-
-
- -
public enum ModalPresentationStyle
- -
-
-

Modal presentation styles available when presenting view controllers.

- -
-
- -
-
-
-
    -
  • -
    - - - - default - -
    -
    -
    -
    -
    -
    -

    The default presentation style chosen by the system.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case `default`
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - fullScreen - -
    -
    -
    -
    -
    -
    -

    A presentation style in which the presented view covers the screen.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case fullScreen
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - pageSheet - -
    -
    -
    -
    -
    -
    -

    A presentation style that partially covers the underlying content.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case pageSheet
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - formSheet - -
    -
    -
    -
    -
    -
    -

    A presentation style that displays the content centered in the screen.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case formSheet
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - currentContext - -
    -
    -
    -
    -
    -
    -

    A presentation style where the content is displayed over another view controller’s content.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case currentContext
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - custom - -
    -
    -
    -
    -
    -
    -

    A custom view presentation style that is managed by a custom presentation controller and one or more custom animator objects.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case custom
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - overFullScreen - -
    -
    -
    -
    -
    -
    -

    A view presentation style in which the presented view covers the screen.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case overFullScreen
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - overCurrentContext - -
    -
    -
    -
    -
    -
    -

    A presentation style where the content is displayed over another view controller’s content.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case overCurrentContext
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - popover - -
    -
    -
    -
    -
    -
    -

    A presentation style where the content is displayed in a popover view.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case popover
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - automatic - -
    -
    -
    -
    -
    -
    -

    The default presentation style chosen by the system.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case automatic
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList.html deleted file mode 100644 index de200b22d..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList.html +++ /dev/null @@ -1,1909 +0,0 @@ - - - - LinkedList Class Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

LinkedList

-
-
- -
public class LinkedList<Value> : Sequence, CustomStringConvertible
-
extension LinkedList: Equatable where Value: Equatable
- -
-
-

A doubly linked list.

-

Discussion

- -

A workflow is ultimately a doubly linked list. This is the underlying sequence type used.

- -
-
- -
-
-
-
    -
  • -
    - - - - Element - -
    -
  • -
  • -
    - - - - Iterator - -
    -
  • -
  • -
    - - - - startIndex - -
    -
    -
    -
    -
    -
    -

    The beginning index of the linked list (0 indexed).

    -
    -

    Complexity

    - O(1) - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var startIndex: LinkedList.Index { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - endIndex - -
    -
    -
    -
    -
    -
    -

    The last index in the list.

    -
    -

    Complexity

    - O(n). The linked list must traverse to the end. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var endIndex: LinkedList.Index { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - description - -
    -
    -
    -
    -
    -
    -

    A textual representation of the linked list and its elements.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var description: String { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - isEmpty - -
    -
    -
    -
    -
    -
    -

    A boolean to indicate whether the linked list contains any values.

    -
    -

    Complexity

    - O(1) - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var isEmpty: Bool { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - count - -
    -
    -
    -
    -
    -
    -

    The number of elements in the linked list.

    -
    -

    Complexity

    - O(n). The linked list must traverse to the end to determine the count. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var count: LinkedList.Index { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - first - -
    -
    -
    -
    -
    -
    -

    The first node in the linked list.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var first: Element?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - last - -
    -
    -
    -
    -
    -
    -

    The last node in the linked list.

    -
    -

    Complexity

    - O(n). The linked list must traverse to the end. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var last: Element? { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - init(_:) - -
    -
    -
    -
    -
    -
    -

    Creates a copy of a LinkedList by providing the first node and copying it.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public required init(_ node: Element? = nil)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - init(withoutCopying:) - -
    -
    -
    -
    -
    -
    -

    Creates a LinkedList by providing the first node in the list.

    -
    -

    Important

    - This can potentially cause memory retention issues, you are passing a reference, be aware. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public required init(withoutCopying node: Element?)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - makeIterator() - -
    -
    -
    -
    -
    -
    -

    Returns an iterator over the elements of this sequence.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func makeIterator() -> Iterator
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - last(where:) - -
    -
    -
    -
    -
    -
    -

    Returns the last element of the sequence that satisfies the given -predicate.

    -
    -

    Complexity

    - O(n). The linked list must traverse to the end. - -
    -

    Example

    - -

    This example uses the last(where:) method to find the last -negative number in an array of integers:

    -
    let numbers = LinkedList([3, 7, 4, -2, 9, -6, 10, 1])
    -if let lastNegative = numbers.last(where: { $0.value < 0 }) {
    -   print("The last negative number is \(lastNegative).")
    -}
    -// Prints "The last negative number is -6."
    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func last(where predicate: (Element) throws -> Bool) rethrows -> Element?
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - predicate - - -
    -

    A closure that takes an element of the sequence as -its argument and returns a Boolean value indicating whether the -element is a match.

    -
    -
    -
    -
    -

    Return Value

    -

    The last element of the sequence that satisfies predicate, -or nil if there is no element that satisfies predicate.

    -
    -
    -
    -
  • -
  • -
    - - - - append(_:) - -
    -
    -
    -
    -
    -
    -

    Appends a new node to the end of the linked list.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func append(_ element: Value)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - element - - -
    -

    the concrete value that should be appended.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - append(contentsOf:) - -
    -
    -
    -
    -
    -
    -

    Appends a collection of nodes to the end of the linked list.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func append<S>(contentsOf newElements: S) where Value == S.Element, S : Sequence
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - newElements - - -
    -

    a sequence of concrete elements that should be appended.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - insert(_:atIndex:) - -
    -
    -
    -
    -
    -
    -

    Inserts a new node at a specified location.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func insert(_ element: Value, atIndex i: Index)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - element - - -
    -

    the concrete value that should be inserted.

    -
    -
    - - i - - -
    -

    the index the value should be inserted at.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Inserts a sequence of new nodes at a specified location.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func insert<C>(contentsOf newElements: C, at i: Index) where Value == C.Element, C : Collection
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - newElements - - -
    -

    a sequence of concrete values that should be inserted.

    -
    -
    - - i - - -
    -

    the index the sequence should be inserted at.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - remove(at:) - -
    -
    -
    -
    -
    -
    -

    Removes a node at the specified index.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    -

    Important

    - If you pass an index greater than the count of the LinkedList this will be a NO-OP. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func remove(at i: Index)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - i - - -
    -

    the index the value should be removed from.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - remove(where:) - -
    -
    -
    -
    -
    -
    -

    Removes a node at the specified index.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func remove(where predicate: (Element) -> Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - predicate - - -
    -

    a closure indicating whether that node should be removed.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - removeFirst(_:) - -
    -
    -
    -
    -
    -
    -

    Removes the first n nodes from the linked list.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    -

    Important

    - If you pass a value greater than the count of the linked list you will remove all items. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeFirst(_ n: Int = 1)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - n - - -
    -

    the number of nodes that should be removed.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - removeLast(_:) - -
    -
    -
    -
    -
    -
    -

    Removes the last n nodes from the linked list.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    -

    Important

    - If you pass a value greater than the count of the linked list you will remove all items. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeLast(_ n: Int = 1)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - n - - -
    -

    the number of nodes that should be removed.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - popLast() - -
    -
    -
    -
    -
    -
    -

    Removes the last node from the linked list; returns the removed concrete type.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func popLast() -> Value?
    - -
    -
    -
    -

    Return Value

    -

    the concrete type the node encapsulated that was removed; nil if no node exists.

    -
    -
    -
    -
  • -
  • -
    - - - - removeAll() - -
    -
    -
    -
    -
    -
    -

    Removes all nodes from the linked list.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeAll()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - swapAt(_:_:) - -
    -
    -
    -
    -
    -
    -

    Swaps the concrete values of 2 nodes.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    -

    Important

    - If you call this with an invalid index you will cause a fatalError and stop execution of the process. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func swapAt(_ i: Int, _ j: Int)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - i - - -
    -

    the index of the first item to be swapped.

    -
    -
    - - j - - -
    -

    the index of the second item to be swapped.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Replaces the concrete value of the node at the specified index.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    -

    Important

    - If you call this with an invalid index this will be a NO-OP. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func replace(atIndex index: Int, withItem newItem: Value)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - index - - -
    -

    the index of the node with the value to be replaced.

    -
    -
    - - newItem - - -
    -

    the concrete value that should replace the old value.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - reverse() - -
    -
    -
    -
    -
    -
    -

    Reverses the linked list.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func reverse()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - sort(by:) - -
    -
    -
    -
    -
    -
    -

    Sorts the linked list.

    -
    -

    Important

    - This operation mutates the original LinkedList. - -
    -

    Important

    - This will not mutate any references to nodes you have, for memory and performance reasons this sorts the LinkedList without modifying original nodes. - -
    -

    Complexity

    - O(n log(n)) This uses Merge Sort under the covers and is more performant than the built in alternative. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func sort(by comparator: (Value, Value) -> Bool)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - comparator - - -
    -

    a closure that takes in 2 concrete types and indicates how they should be sorted.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - Node - -
    -
  • -
  • -
    - - - - reversed() - -
    -
    -
    -
    -
    -
    -

    Returns a new version of the LinkedList with all elements reversed.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func reversed() -> LinkedList<Value>
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Returns a new version of the linked list with a specific element replaced.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func replacing(atIndex index: Int, withItem newItem: Value) -> LinkedList<Value>
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - index - - -
    -

    the index of the node whose concrete value should be replaced.

    -
    -
    - - newItem - - -
    -

    the concrete value to replace.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - sorted(by:) - -
    -
    -
    -
    -
    -
    -

    Returns a new, sorted version of the linked list.

    -
    -

    Complexity

    - O(n log(n)) This uses Merge Sort under the covers and is more performant than the built in alternative. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func sorted(by comparator: (Value, Value) -> Bool) -> LinkedList<Value>
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - comparator - - -
    -

    a closure that takes in 2 concrete types and indicates how they should be sorted.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - dropFirst(_:) - -
    -
    -
    -
    -
    -
    -

    Returns a new version of the linked list without the first n items.

    -
    -

    Important

    - If you pass in an index that is out of the range of the linked list an empty LinkedList will be returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func dropFirst(_ n: Int = 1) -> SubSequence
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - n - - -
    -

    the number of items to drop from the start of the list.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - dropLast(_:) - -
    -
    -
    -
    -
    -
    -

    Returns a new version of the linked list without the last n items.

    -
    -

    Important

    - If you pass in an index that is out of the range of the linked list an empty LinkedList will be returned. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func dropLast(_ n: Int = 1) -> SubSequence
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - n - - -
    -

    the number of items to drop from the end of the list.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - drop(while:) - -
    -
    -
    -
    -
    -
    -

    Returns a linked list by skipping elements while predicate returns true and returning the remaining elements.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func drop(while predicate: (Value) throws -> Bool) rethrows -> SubSequence
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - predicate - - -
    -

    a closure that takes a concrete type of the node as its argument and returns true if the element should be skipped or false if it should be included. Once the predicate returns false it will not be called again.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - prefix(_:) - -
    -
    -
    -
    -
    -
    -

    Returns a new version of the linked list with just the first n items.

    -
    -

    Important

    - If you pass in an index that is greater than the size of the linked list you’ll get the full list. If you send in an index of 0 or smaller, you’ll get an empty list back. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func prefix(_ maxLength: Int) -> SubSequence
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - maxLength - - -
    -

    the number of items to return.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - prefix(while:) - -
    -
    -
    -
    -
    -
    -

    Returns a linked list containing the initial elements until predicate returns false and skipping the remaining elements.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func prefix(while predicate: (Value) throws -> Bool) rethrows -> SubSequence
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - predicate - - -
    -

    a closure that takes a concrete type of the node as its argument and returns true if the element should be included or false if it should be excluded. Once the predicate returns false it will not be called again.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - suffix(_:) - -
    -
    -
    -
    -
    -
    -

    Returns a new version of the linked list with just the last n items.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func suffix(_ maxLength: Int) -> SubSequence
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - maxLength - - -
    -

    the number of items to return.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- - -
- -

Available where Value: Comparable

-

-
-
-
    -
  • -
    - - - - sort() - -
    -
    -
    -
    -
    -
    -

    Sorts the linked list in place using a merge sort.

    -
    -

    Important

    - This will not mutate any references to nodes you have, for memory and performance reasons this sorts the LinkedList without modifying original nodes. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func sort()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - sorted() - -
    -
    -
    -
    -
    -
    -

    Returns a sorted version of the linked list.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func sorted() -> LinkedList<Value>
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - max() - -
    -
    -
    -
    -
    -
    -

    Returns the maximum concrete value in the linked list; nil if there is none.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func max() -> Value?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - min() - -
    -
    -
    -
    -
    -
    -

    Returns the minimum concrete value in the linked list; nil if there is none.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func min() -> Value?
    - -
    -
    -
    -
    -
  • -
-
-
-
- - -
- -

Available where Value: Equatable

-

-
-
-
    -
  • -
    - - - - contains(_:) - -
    -
    -
    -
    -
    -
    -

    Returns a boolean indicating whether the given value is present in the linked list.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func contains(_ element: Element.Value) -> Bool
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - element - - -
    -

    the value to check against the linked list.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Element.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Element.html deleted file mode 100644 index 8805bae9d..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Element.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - Element Type Alias Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Element

-
-
- -
public typealias Element = LinkedList.Node<Value>
- -
-
- -
-
- -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Iterator.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Iterator.html deleted file mode 100644 index 0c51275a0..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Iterator.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - Iterator Type Alias Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Iterator

-
-
- -
public typealias Iterator = LinkedListIterator<Element>
- -
-
- -
-
- -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Node.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Node.html deleted file mode 100644 index d15bf2294..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Node.html +++ /dev/null @@ -1,492 +0,0 @@ - - - - Node Class Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Node

-
-
- -
open class Node<T>
- -
-
-

A type to hold onto elements in a LinkedList.

-

Discussion

- -

These nodes hold onto a value, the next node, and the previous node.

- -
-
- -
-
-
-
    -
  • -
    - - - - Value - -
    -
  • -
  • -
    - - - - value - -
    -
    -
    -
    -
    -
    -

    The concrete value the node is holding on to.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var value: Value
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - next - -
    -
    -
    -
    -
    -
    -

    An optional reference to the next node in the LinkedList.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var next: Node<Value>?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - previous - -
    -
    -
    -
    -
    -
    -

    An optional reference to the previous node in the LinkedList.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var previous: Node<Value>?
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - TraversalDirection - -
    -
  • -
  • -
    - - - - traverse(_:) - -
    -
    -
    -
    -
    -
    -

    A method to move N spaces forwards or backwards through the nodes.

    -
    -

    Important

    - If the distance is out of bounds nil will be returned - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func traverse(_ distance: Int) -> Node<T>?
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - distance - - -
    -

    an integer indicating how far to move through the nodes.

    -
    -
    -
    -
    -

    Return Value

    -

    the node at the indicated distance; nil if distance is out of bounds.

    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    A method to move forward through the nodes until a precondition is met.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func traverse(direction: TraversalDirection = .forward, until: ((Node<T>) -> Bool)) -> Node<T>?
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - direction - - -
    -

    an enum indicating whether to traverse forward or backwards, defaults to TraversalDirection.forward.

    -
    -
    - - until - - -
    -

    a closure that takes in a node and returns a boolean to indicate whether traversal should continue. Once until returns true, it is not called again.

    -
    -
    -
    -
    -

    Return Value

    -

    the node when traversal finishes; nil if none found.

    -
    -
    -
    -
  • -
  • -
    - - - - traverseToEnd() - -
    -
    -
    -
    -
    -
    -

    A method to move forward through the nodes until there is no next.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func traverseToEnd() -> Node<T>
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - traverseToBeginning() - -
    -
    -
    -
    -
    -
    -

    A method to move backwards through the nodes until there is no previous.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func traverseToBeginning() -> Node<T>
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - position - -
    -
    -
    -
    -
    -
    -

    A nodes position in the LinkedList

    -
    -

    Complexity

    - O(n) this has a worst case of having to traverse the entire list to determine its position. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var position: Int { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - copy() - -
    -
    -
    -
    -
    -
    -

    Creates an exact replica of the node, including the next and previous values, this essentially deep copies the entire LinkedList.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open func copy() -> Node<T>
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Node/TraversalDirection.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Node/TraversalDirection.html deleted file mode 100644 index e0646819c..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Node/TraversalDirection.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - TraversalDirection Enumeration Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

TraversalDirection

-
-
- -
public enum TraversalDirection
- -
-
-

An enumeration indicating whether you’d like to traverse forwards or backwards through the LinkedList.

- -
-
- -
-
-
-
    -
  • -
    - - - - forward - -
    -
    -
    -
    -
    -
    -

    Traverse “forward” i.e. traverse by calling next.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case forward
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - backward - -
    -
    -
    -
    -
    -
    -

    Traverse “backward” i.e. traverse by calling previous.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case backward
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Node/Value.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Node/Value.html deleted file mode 100644 index 2e5e2e2f6..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/LinkedList/Node/Value.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - Value Type Alias Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Value

-
-
- -
public typealias Value = T
- -
-
-

A typealias that is equivalent to the specialized type in the LinkedList.

- -
-
- -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/UIKitPresenter.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/UIKitPresenter.html deleted file mode 100644 index a9eb99b20..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/UIKitPresenter.html +++ /dev/null @@ -1,406 +0,0 @@ - - - - UIKitPresenter Class Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

UIKitPresenter

-
-
- -
open class UIKitPresenter : OrchestrationResponder
- -
-
-

An OrchestrationResponder that interacts with UIKit.

- -
-
- -
-
-
-
    -
  • -
    - - - - init(_:launchStyle:) - -
    -
    -
    -
    -
    -
    -

    Creates a UIKitPresenter that can respond to a Workflow‘s actions.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public init(_ viewController: UIViewController, launchStyle: LaunchStyle.PresentationType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - viewController - - -
    -

    the UIViewController that a Workflow should launch from.

    -
    -
    - - launchStyle - - -
    -

    the LaunchStyle.PresentationType to use to launch the Workflow.

    -
    -
    -
    -
    -
    -
  • -
  • -
    - - - - launch(to:) - -
    -
    -
    -
    -
    -
    -

    Launches a FlowRepresentable that is also a UIViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func launch(to: AnyWorkflow.Element)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - proceed(to:from:) - -
    -
    -
    -
    -
    -
    -

    Proceeds in the Workflow by presenting the next FlowRepresentable that is also a UIViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func proceed(to: AnyWorkflow.Element,
    -                    from: AnyWorkflow.Element)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - backUp(from:to:) - -
    -
    -
    -
    -
    -
    -

    Back up in the Workflow by dismissing or popping the FlowRepresentable that is also a UIViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func backUp(from: AnyWorkflow.Element,
    -                   to: AnyWorkflow.Element)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - abandon(_:onFinish:) - -
    -
    -
    -
    -
    -
    -

    Abandons the Workflow by dismissing all UIViewController‘s currently displayed by this presenter.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func abandon(_ workflow: AnyWorkflow, onFinish: (() -> Void)?)
    - -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    Completes the workflow, making the callback at the appropriate time for UIKit.

    -

    Discussion

    - -

    If the last view of the workflow has a persistence of .removedAfterProceeding, then the view will be removed before completing.

    -
    -

    Important

    - complete is called when proceeding through the last view of the Workflow. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func complete(_ workflow: AnyWorkflow, passedArgs: AnyWorkflow.PassedArgs, onFinish: ((AnyWorkflow.PassedArgs) -> Void)?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - workflow - - -
    -

    AnyWorkflow being completed.

    -
    -
    - - passedArgs - - -
    -

    arguments to pass to onFinish.

    -
    -
    - - onFinish - - -
    -

    closure provided when launching workflow.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/UIWorkflowItem.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/UIWorkflowItem.html deleted file mode 100644 index 43ce7e7c8..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/UIWorkflowItem.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - UIWorkflowItem Class Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

UIWorkflowItem

-
-
- -
open class UIWorkflowItem<I, O> : UIViewController
- -
-
-

A subclass of UIViewController designed for convenience. This does NOT have to be used, it simply removes some of the boilerplate that normally comes with a FlowRepresentable.

-

Discussion

- -

If you would like the same convenience for other UIKit types, this class is very straightforward to create:

-
open class UITableViewWorkflowItem<I, O>: UITableViewController {
-    public typealias WorkflowInput = I
-    public typealias WorkflowOutput = O
-
-    public weak var _workflowPointer: AnyFlowRepresentable?
-}
-
-

Example

-
class SomeFlowRepresentable: UIWorkflowItem<String, Never>, FlowRepresentable { // WorkflowInput of String, Output of Never
-   var name: String
-   required init(with name: String) {
-       self.name = name
-   }
-}
-
- -
-
- -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/Workflow.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/Workflow.html deleted file mode 100644 index 483357ce9..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Classes/Workflow.html +++ /dev/null @@ -1,2125 +0,0 @@ - - - - Workflow Class Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Workflow

-
-
- -
public final class Workflow<F> : LinkedList<_WorkflowItem> where F : FlowRepresentable
- -
-
-

A doubly linked list of FlowRepresentableMetadatas; used to define a process.

-

Discussion

- -

In a sufficiently complex application it may make sense to create a structure to hold onto all the workflows in an application.

- -
-
- -
-
-
- -
-
-
- - -
- -

Available where F.WorkflowOutput == Never

-

-
-
- -
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Enums.html deleted file mode 100644 index 52e651538..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Enums.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - Enumerations Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Enumerations

-

The following enumerations are available globally.

- -
-
- -
-
-
- -
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Enums/WorkflowError.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Enums/WorkflowError.html deleted file mode 100644 index b4cd3bc75..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Enums/WorkflowError.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - WorkflowError Enumeration Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

WorkflowError

-
-
- -
public enum WorkflowError : Error
- -
-
-

Describes errors in a Workflow.

- -
-
- -
-
-
-
    -
  • -
    - - - - failedToBackUp - -
    -
    -
    -
    -
    -
    -

    An error indicating workflow could not back up.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    case failedToBackUp
    - -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Extensions.html deleted file mode 100644 index a025fc11c..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Extensions.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - Extensions Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

Extensions

-

The following extensions are available globally.

- -
-
- -
-
-
- -
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Extensions/UIViewController.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Extensions/UIViewController.html deleted file mode 100644 index 5c6118fac..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Extensions/UIViewController.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - UIViewController Extension Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

UIViewController

-
-
- -
extension UIViewController
- -
-
- -
-
- -
-
-
-
    -
  • - -
    -
    -
    -
    -
    -

    When using UIKit this is how you launch a workflow

    -
    -

    Note

    - In the background this applies a UIKitPresenter, if you call launch on workflow directly you’ll need to apply one yourself - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func launchInto<F>(_ workflow: Workflow<F>,
    -                          args: Any? = nil,
    -                          withLaunchStyle launchStyle: LaunchStyle.PresentationType = .default,
    -                          onFinish: ((AnyWorkflow.PassedArgs) -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - -
    - - workflow - - -
    -

    Workflow to launch

    -
    -
    - - args - - -
    -

    Args to pass to the first FlowRepresentable

    -
    -
    - - launchStyle - - -
    -

    The PresentationType used to launch the workflow

    -
    -
    - - onFinish - - -
    -

    A callback that is called when the last item in the workflow proceeds; called with the AnyWorkflow.PassedArgs the workflow finished with.

    -
    -
    -
    -
    -
    -
  • -
  • - -
    -
    -
    -
    -
    -

    When using UIKit this is how you launch a workflow

    -
    -

    Note

    - In the background this applies a UIKitPresenter, if you call launch on workflow directly you’ll need to apply one yourself - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func launchInto<F>(_ workflow: Workflow<F>,
    -                          withLaunchStyle launchStyle: LaunchStyle.PresentationType = .default,
    -                          onFinish: ((AnyWorkflow.PassedArgs) -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - workflow - - -
    -

    Workflow to launch

    -
    -
    - - launchStyle - - -
    -

    The PresentationType used to launch the workflow

    -
    -
    - - onFinish - - -
    -

    A callback that is called when the last item in the workflow proceeds; called with the AnyWorkflow.PassedArgs the workflow finished with.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols.html deleted file mode 100644 index 7e19ea14e..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - Protocols Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- - -
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols/FlowRepresentable.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols/FlowRepresentable.html deleted file mode 100644 index 6aaaee1df..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols/FlowRepresentable.html +++ /dev/null @@ -1,611 +0,0 @@ - - - - FlowRepresentable Protocol Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

FlowRepresentable

-
-
- -
public protocol FlowRepresentable
- -
-
-

A component in a Workflow; should be independent of the workflow context.

-

Discussion

- -

It’s important to make sure your FlowRepresentable is not dependent on other FlowRepresentables. -It’s okay to specify that a certain kind of data needs to be passed in and passed out, but keep your FlowRepresentable from knowing what came before, or what’s likely to come after. -In that way you’ll end up with pieces of a workflow that can be moved or put into multiple places with ease.

-
-

Important

- Declare an input type of Never when the FlowRepresentable will ignore data passed in from the Workflow. An output type of Never means data will not be passed forward. - -
-

Important

- A _workflowPointer has to be declared as a property on the type conforming to FlowRepresentable but it is set by the Workflow, and should not be set by anything else. - -
-

Important

- If you create a superclass that is a FlowRepresentable and expect subclasses to be able to define their own methods, such as shouldLoad, the superclass should declare those methods, and the subclasses should override them. Otherwise you will find the subclasses do not behave as expected. - -
-

Example

- -

A FlowRepresentable with a WorkflowInput of String and a WorkflowOutput of Never

-
class FR1: FlowRepresentable { // Mark this class as `final` to avoid the required keyword on init
-   weak var _workflowPointer: AnyFlowRepresentable?
-   required init(with name: String) { }
-}
-
- -

A FlowRepresentable with a WorkflowInput of Never and a WorkflowOutput of Never

-
final class FR1: FlowRepresentable { // Classes synthesize an empty initializer already, you are good!
-   weak var _workflowPointer: AnyFlowRepresentable?
-}
-
-

Note

- -

Declaring your own custom initializer can result in a compiler error with an unfriendly message

-
class FR1: FlowRepresentable { // Results in compiler error for 'init()' being unavailable
-   weak var _workflowPointer: AnyFlowRepresentable?
-   init(myCustomInitializer property: Int) { }
-   // required init() { } // declare your own init() to satisfy the protocol requirements and handle the compiler error
-}
-
- -
-
- -
-
-
-
    -
  • -
    - - - - WorkflowInput - -
    -
    -
    -
    -
    -
    -

    The type of data coming into the FlowRepresentable; defaulted to Never; Nevermeans the FlowRepresentable will ignore data passed in from the Workflow.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    associatedtype WorkflowInput = Never
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - WorkflowOutput - -
    -
    -
    -
    -
    -
    -

    The type of data passed forward from the FlowRepresentable; defaulted to Never; Never means data will not be passed forward.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    associatedtype WorkflowOutput = Never
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - _workflowPointer - -
    -
    -
    -
    -
    -
    -

    A pointer to the AnyFlowRepresentable that erases this FlowRepresentable; will automatically be set.

    -

    Discussion

    - -

    This property is automatically set by a Workflow, it simply needs to be declared on a FlowRepresentable. -In order for a FlowRepresentable to have access to the Workflow that launched it, store the closures for proceeding forward and backward, and provide type safety, it needs this property available for writing.

    -

    Note

    - -

    While not strictly necessary it would be wise to declare this property as weak.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    var _workflowPointer: AnyFlowRepresentable? { get set }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - init() - -
    -
    -
    -
    -
    -
    -

    Creates a FlowRepresentable.

    -

    Note

    - -

    This is auto synthesized by FlowRepresentable, and is only called when WorkflowInput is Never.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    init()
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - init(with:) - -
    -
    -
    -
    -
    -
    -

    Creates a FlowRepresentable with the specified WorkflowInput.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    init(with args: WorkflowInput)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - shouldLoad() - - - Default implementation - -
    -
    -
    -
    -
    -
    -

    Returns a Boolean indicating the Workflow should load the FlowRepresentable; defaults to true.

    -

    Discussion

    - -

    This method is called after init but before any other lifecycle events. It is non-mutating and should not change the FlowRepresentable.

    -
    -

    Important

    - If you create a superclass that is a FlowRepresentable and expect subclasses to define their own shouldLoad the superclass should declare shouldLoad, and the subclasses should override it. Otherwise you will find the subclasses do not behave as expected. - -
    -

    Note

    - -

    Returning false can have different behaviors depending on the FlowPersistence.

    - -
    -

    Default Implementation

    -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func shouldLoad() -> Bool
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - workflow - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Access to the AnyWorkflow controlling the FlowRepresentable.

    -

    Discussion

    - -

    A common use case may be a FlowRepresentable that wants to abandon the Workflow it’s in.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public var workflow: AnyWorkflow? { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - proceedInWorkflow(_:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Moves forward while passing arguments forward in the Workflow; if at the end, calls the onFinish closure used when launching the workflow.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func proceedInWorkflow(_ args: WorkflowOutput)
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - backUpInWorkflow() - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Backs up in the Workflow.

    -
    -

    Throws

    - WorkflowError when the Workflow is unable to back up. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func backUpInWorkflow() throws
    - -
    -
    -
    -
    -
  • -
-
-
-
- - -
- -

Available where WorkflowOutput == Never

-

-
-
-
    -
  • -
    - - - - proceedInWorkflow() - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Moves forward in the Workflow; if at the end, calls the onFinish closure used when launching the workflow.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func proceedInWorkflow()
    - -
    -
    -
    -
    -
  • -
-
-
-
- - -
- -

Available where Self: UIViewController

-

-
-
-
    -
  • -
    - - - - abandonWorkflow(animated:onFinish:) - - - Extension method - -
    -
    -
    -
    -
    -
    -

    Called when the current workflow should be terminated, and the app should return to the point before the workflow was launched

    -
    -

    Note

    - In order to dismiss UIKit views the workflow must have an OrchestrationResponder that is a UIKitPresenter. - -
    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func abandonWorkflow(animated: Bool = true, onFinish: (() -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - animated - - -
    -

    A boolean indicating whether abandoning the workflow should be animated

    -
    -
    - - onFinish - - -
    -

    A callback after the workflow has been abandoned.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols/OrchestrationResponder.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols/OrchestrationResponder.html deleted file mode 100644 index a8f2c2e8c..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols/OrchestrationResponder.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - OrchestrationResponder Protocol Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

OrchestrationResponder

-
-
- -
public protocol OrchestrationResponder
- -
-
-

A type capable of responding to Workflow actions.

- -
-
- -
-
-
- -
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols/StoryboardLoadable.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols/StoryboardLoadable.html deleted file mode 100644 index 5ff9e8c81..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/Protocols/StoryboardLoadable.html +++ /dev/null @@ -1,294 +0,0 @@ - - - - StoryboardLoadable Protocol Reference - - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
-

StoryboardLoadable

-
-
- -
@available(iOS 13.0, *)
-public protocol StoryboardLoadable : UIViewController, FlowRepresentable
- -
-
-

A protocol indicating this a FlowRepresentable that should be loaded from a storyboard.

-

Discussion

- -

If you use storyboards in your app and are on iOS 13 or greater StoryboardLoadable provides the best consumer experience for creating your FlowRepresentable.

- -

If you use the convention where the storyboard identifiers are the same name as the UIViewController class you can write an extension so your code makes that assumption.

- -

It may also be a good idea to make your own protocols for each of your storyboards, for the sake of clarity in your code.

-

Example

-
extension StoryboardLoadable {
-   static var storyboardId: String { String(describing: Self.self) }
-}
-
-protocol MainStoryboardLoadable: StoryboardLoadable { }
-extension MainStoryboardLoadable {
-   static var storyboard: UIStoryboard { UIStoryboard(name: "main", bundle: Bundle.main) }
-}
-
- -
-
- -
-
-
-
    -
  • -
    - - - - storyboardId - -
    -
    -
    -
    -
    -
    -

    Identifier used to retrieve the UIViewController from storyboard.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    static var storyboardId: String { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - storyboard - -
    -
    -
    -
    -
    -
    -

    Storyboard used to retrieve the UIViewController.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    static var storyboard: UIStoryboard { get }
    - -
    -
    -
    -
    -
  • -
  • -
    - - - - init(coder:with:) - -
    -
    -
    -
    -
    -
    -

    Creates the specified view controller from the storyboard and initializes it using your custom initialization code.

    -

    Discussion

    - -

    This UIKit initializer can be used to pass arguments to the FlowRepresentable. -If you return nil, this creates the view controller using the default init(coder:) method.

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    init?(coder: NSCoder, with args: WorkflowInput)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - coder - - -
    -

    An unarchiver object.

    -
    -
    - - with - - -
    -

    WorkflowInput data provided by encompassing Workflow; parameter can be renamed.

    -
    -
    -
    -
    -
    -
  • -
-
-
-
- -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/badge.svg b/docs/docsets/Workflow.docset/Contents/Resources/Documents/badge.svg deleted file mode 100644 index 685c5e11b..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/badge.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - documentation - - - documentation - - - 92% - - - 92% - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/css/highlight.css b/docs/docsets/Workflow.docset/Contents/Resources/Documents/css/highlight.css deleted file mode 100644 index d0db0e13b..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/css/highlight.css +++ /dev/null @@ -1,200 +0,0 @@ -/* Credit to https://gist.github.com/wataru420/2048287 */ -.highlight { - /* Comment */ - /* Error */ - /* Keyword */ - /* Operator */ - /* Comment.Multiline */ - /* Comment.Preproc */ - /* Comment.Single */ - /* Comment.Special */ - /* Generic.Deleted */ - /* Generic.Deleted.Specific */ - /* Generic.Emph */ - /* Generic.Error */ - /* Generic.Heading */ - /* Generic.Inserted */ - /* Generic.Inserted.Specific */ - /* Generic.Output */ - /* Generic.Prompt */ - /* Generic.Strong */ - /* Generic.Subheading */ - /* Generic.Traceback */ - /* Keyword.Constant */ - /* Keyword.Declaration */ - /* Keyword.Pseudo */ - /* Keyword.Reserved */ - /* Keyword.Type */ - /* Literal.Number */ - /* Literal.String */ - /* Name.Attribute */ - /* Name.Builtin */ - /* Name.Class */ - /* Name.Constant */ - /* Name.Entity */ - /* Name.Exception */ - /* Name.Function */ - /* Name.Namespace */ - /* Name.Tag */ - /* Name.Variable */ - /* Operator.Word */ - /* Text.Whitespace */ - /* Literal.Number.Float */ - /* Literal.Number.Hex */ - /* Literal.Number.Integer */ - /* Literal.Number.Oct */ - /* Literal.String.Backtick */ - /* Literal.String.Char */ - /* Literal.String.Doc */ - /* Literal.String.Double */ - /* Literal.String.Escape */ - /* Literal.String.Heredoc */ - /* Literal.String.Interpol */ - /* Literal.String.Other */ - /* Literal.String.Regex */ - /* Literal.String.Single */ - /* Literal.String.Symbol */ - /* Name.Builtin.Pseudo */ - /* Name.Variable.Class */ - /* Name.Variable.Global */ - /* Name.Variable.Instance */ - /* Literal.Number.Integer.Long */ } - .highlight .c { - color: #999988; - font-style: italic; } - .highlight .err { - color: #a61717; - background-color: #e3d2d2; } - .highlight .k { - color: #000000; - font-weight: bold; } - .highlight .o { - color: #000000; - font-weight: bold; } - .highlight .cm { - color: #999988; - font-style: italic; } - .highlight .cp { - color: #999999; - font-weight: bold; } - .highlight .c1 { - color: #999988; - font-style: italic; } - .highlight .cs { - color: #999999; - font-weight: bold; - font-style: italic; } - .highlight .gd { - color: #000000; - background-color: #ffdddd; } - .highlight .gd .x { - color: #000000; - background-color: #ffaaaa; } - .highlight .ge { - color: #000000; - font-style: italic; } - .highlight .gr { - color: #aa0000; } - .highlight .gh { - color: #999999; } - .highlight .gi { - color: #000000; - background-color: #ddffdd; } - .highlight .gi .x { - color: #000000; - background-color: #aaffaa; } - .highlight .go { - color: #888888; } - .highlight .gp { - color: #555555; } - .highlight .gs { - font-weight: bold; } - .highlight .gu { - color: #aaaaaa; } - .highlight .gt { - color: #aa0000; } - .highlight .kc { - color: #000000; - font-weight: bold; } - .highlight .kd { - color: #000000; - font-weight: bold; } - .highlight .kp { - color: #000000; - font-weight: bold; } - .highlight .kr { - color: #000000; - font-weight: bold; } - .highlight .kt { - color: #445588; } - .highlight .m { - color: #009999; } - .highlight .s { - color: #d14; } - .highlight .na { - color: #008080; } - .highlight .nb { - color: #0086B3; } - .highlight .nc { - color: #445588; - font-weight: bold; } - .highlight .no { - color: #008080; } - .highlight .ni { - color: #800080; } - .highlight .ne { - color: #990000; - font-weight: bold; } - .highlight .nf { - color: #990000; } - .highlight .nn { - color: #555555; } - .highlight .nt { - color: #000080; } - .highlight .nv { - color: #008080; } - .highlight .ow { - color: #000000; - font-weight: bold; } - .highlight .w { - color: #bbbbbb; } - .highlight .mf { - color: #009999; } - .highlight .mh { - color: #009999; } - .highlight .mi { - color: #009999; } - .highlight .mo { - color: #009999; } - .highlight .sb { - color: #d14; } - .highlight .sc { - color: #d14; } - .highlight .sd { - color: #d14; } - .highlight .s2 { - color: #d14; } - .highlight .se { - color: #d14; } - .highlight .sh { - color: #d14; } - .highlight .si { - color: #d14; } - .highlight .sx { - color: #d14; } - .highlight .sr { - color: #009926; } - .highlight .s1 { - color: #d14; } - .highlight .ss { - color: #990073; } - .highlight .bp { - color: #999999; } - .highlight .vc { - color: #008080; } - .highlight .vg { - color: #008080; } - .highlight .vi { - color: #008080; } - .highlight .il { - color: #009999; } diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/css/jazzy.css b/docs/docsets/Workflow.docset/Contents/Resources/Documents/css/jazzy.css deleted file mode 100644 index ff59f5f86..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/css/jazzy.css +++ /dev/null @@ -1,395 +0,0 @@ -*, *:before, *:after { - box-sizing: inherit; } - -body { - margin: 0; - background: #fff; - color: #333; - font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; - letter-spacing: .2px; - -webkit-font-smoothing: antialiased; - box-sizing: border-box; } - -h1 { - font-size: 2rem; - font-weight: 700; - margin: 1.275em 0 0.6em; } - -h2 { - font-size: 1.75rem; - font-weight: 700; - margin: 1.275em 0 0.3em; } - -h3 { - font-size: 1.5rem; - font-weight: 700; - margin: 1em 0 0.3em; } - -h4 { - font-size: 1.25rem; - font-weight: 700; - margin: 1.275em 0 0.85em; } - -h5 { - font-size: 1rem; - font-weight: 700; - margin: 1.275em 0 0.85em; } - -h6 { - font-size: 1rem; - font-weight: 700; - margin: 1.275em 0 0.85em; - color: #777; } - -p { - margin: 0 0 1em; } - -ul, ol { - padding: 0 0 0 2em; - margin: 0 0 0.85em; } - -blockquote { - margin: 0 0 0.85em; - padding: 0 15px; - color: #858585; - border-left: 4px solid #e5e5e5; } - -img { - max-width: 100%; } - -a { - color: #4183c4; - text-decoration: none; } - a:hover, a:focus { - outline: 0; - text-decoration: underline; } - a.discouraged { - text-decoration: line-through; } - a.discouraged:hover, a.discouraged:focus { - text-decoration: underline line-through; } - -table { - background: #fff; - width: 100%; - border-collapse: collapse; - border-spacing: 0; - overflow: auto; - margin: 0 0 0.85em; } - -tr:nth-child(2n) { - background-color: #fbfbfb; } - -th, td { - padding: 6px 13px; - border: 1px solid #ddd; } - -pre { - margin: 0 0 1.275em; - padding: .85em 1em; - overflow: auto; - background: #f7f7f7; - font-size: .85em; - font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } - -code { - font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; } - -.item-container p > code, .item-container li > code, .top-matter p > code, .top-matter li > code { - background: #f7f7f7; - padding: .2em; } - .item-container p > code:before, .item-container p > code:after, .item-container li > code:before, .item-container li > code:after, .top-matter p > code:before, .top-matter p > code:after, .top-matter li > code:before, .top-matter li > code:after { - letter-spacing: -.2em; - content: "\00a0"; } - -pre code { - padding: 0; - white-space: pre; } - -.content-wrapper { - display: flex; - flex-direction: column; } - @media (min-width: 768px) { - .content-wrapper { - flex-direction: row; } } -.header { - display: flex; - padding: 8px; - font-size: 0.875em; - background: #444; - color: #999; } - -.header-col { - margin: 0; - padding: 0 8px; } - -.header-col--primary { - flex: 1; } - -.header-link { - color: #fff; } - -.header-icon { - padding-right: 6px; - vertical-align: -4px; - height: 16px; } - -.breadcrumbs { - font-size: 0.875em; - padding: 8px 16px; - margin: 0; - background: #fbfbfb; - border-bottom: 1px solid #ddd; } - -.carat { - height: 10px; - margin: 0 5px; } - -.navigation { - order: 2; } - @media (min-width: 768px) { - .navigation { - order: 1; - width: 25%; - max-width: 300px; - padding-bottom: 64px; - overflow: hidden; - word-wrap: normal; - background: #fbfbfb; - border-right: 1px solid #ddd; } } -.nav-groups { - list-style-type: none; - padding-left: 0; } - -.nav-group-name { - border-bottom: 1px solid #ddd; - padding: 8px 0 8px 16px; } - -.nav-group-name-link { - color: #333; } - -.nav-group-tasks { - margin: 8px 0; - padding: 0 0 0 8px; } - -.nav-group-task { - font-size: 1em; - list-style-type: none; - white-space: nowrap; } - -.nav-group-task-link { - color: #808080; } - -.main-content { - order: 1; } - @media (min-width: 768px) { - .main-content { - order: 2; - flex: 1; - padding-bottom: 60px; } } -.section { - padding: 0 32px; - border-bottom: 1px solid #ddd; } - -.section-content { - max-width: 834px; - margin: 0 auto; - padding: 16px 0; } - -.section-name { - color: #666; - display: block; } - .section-name p { - margin-bottom: inherit; } - -.declaration .highlight { - overflow-x: initial; - padding: 8px 0; - margin: 0; - background-color: transparent; - border: none; } - -.task-group-section { - border-top: 1px solid #ddd; } - -.task-group { - padding-top: 0px; } - -.task-name-container a[name]:before { - content: ""; - display: block; } - -.section-name-container { - position: relative; } - .section-name-container .section-name-link { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - margin-bottom: 0; } - .section-name-container .section-name { - position: relative; - pointer-events: none; - z-index: 1; } - .section-name-container .section-name a { - pointer-events: auto; } - -.item-container { - padding: 0; } - -.item { - padding-top: 8px; - width: 100%; - list-style-type: none; } - .item a[name]:before { - content: ""; - display: block; } - .item .token, .item .direct-link { - display: inline-block; - text-indent: -20px; - padding-left: 3px; - margin-left: 20px; - font-size: 1rem; } - .item .declaration-note { - font-size: .85em; - color: #808080; - font-style: italic; } - -.pointer-container { - border-bottom: 1px solid #ddd; - left: -23px; - padding-bottom: 13px; - position: relative; - width: 110%; } - -.pointer { - left: 21px; - top: 7px; - display: block; - position: absolute; - width: 12px; - height: 12px; - border-left: 1px solid #ddd; - border-top: 1px solid #ddd; - background: #fff; - transform: rotate(45deg); } - -.height-container { - display: none; - position: relative; - width: 100%; - overflow: hidden; } - .height-container .section { - background: #fff; - border: 1px solid #ddd; - border-top-width: 0; - padding-top: 10px; - padding-bottom: 5px; - padding: 8px 16px; } - -.aside, .language { - padding: 6px 12px; - margin: 12px 0; - border-left: 5px solid #dddddd; - overflow-y: hidden; } - .aside .aside-title, .language .aside-title { - font-size: 9px; - letter-spacing: 2px; - text-transform: uppercase; - padding-bottom: 0; - margin: 0; - color: #aaa; - -webkit-user-select: none; } - .aside p:last-child, .language p:last-child { - margin-bottom: 0; } - -.language { - border-left: 5px solid #cde9f4; } - .language .aside-title { - color: #4183c4; } - -.aside-warning, .aside-deprecated, .aside-unavailable { - border-left: 5px solid #ff6666; } - .aside-warning .aside-title, .aside-deprecated .aside-title, .aside-unavailable .aside-title { - color: #ff0000; } - -.graybox { - border-collapse: collapse; - width: 100%; } - .graybox p { - margin: 0; - word-break: break-word; - min-width: 50px; } - .graybox td { - border: 1px solid #ddd; - padding: 5px 25px 5px 10px; - vertical-align: middle; } - .graybox tr td:first-of-type { - text-align: right; - padding: 7px; - vertical-align: top; - word-break: normal; - width: 40px; } - -.slightly-smaller { - font-size: 0.9em; } - -.footer { - padding: 8px 16px; - background: #444; - color: #ddd; - font-size: 0.8em; } - .footer p { - margin: 8px 0; } - .footer a { - color: #fff; } - -html.dash .header, html.dash .breadcrumbs, html.dash .navigation { - display: none; } - -html.dash .height-container { - display: block; } - -form[role=search] input { - font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 24px; - padding: 0 10px; - margin: 0; - border: none; - border-radius: 1em; } - .loading form[role=search] input { - background: white url(../img/spinner.gif) center right 4px no-repeat; } - -form[role=search] .tt-menu { - margin: 0; - min-width: 300px; - background: #fbfbfb; - color: #333; - border: 1px solid #ddd; } - -form[role=search] .tt-highlight { - font-weight: bold; } - -form[role=search] .tt-suggestion { - font: 16px/1.7 "Helvetica Neue", Helvetica, Arial, sans-serif; - padding: 0 8px; } - form[role=search] .tt-suggestion span { - display: table-cell; - white-space: nowrap; } - form[role=search] .tt-suggestion .doc-parent-name { - width: 100%; - text-align: right; - font-weight: normal; - font-size: 0.9em; - padding-left: 16px; } - -form[role=search] .tt-suggestion:hover, -form[role=search] .tt-suggestion.tt-cursor { - cursor: pointer; - background-color: #4183c4; - color: #fff; } - -form[role=search] .tt-suggestion:hover .doc-parent-name, -form[role=search] .tt-suggestion.tt-cursor .doc-parent-name { - color: #fff; } diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/carat.png b/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/carat.png deleted file mode 100755 index 29d2f7fd4..000000000 Binary files a/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/carat.png and /dev/null differ diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/dash.png b/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/dash.png deleted file mode 100755 index 6f694c7a0..000000000 Binary files a/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/dash.png and /dev/null differ diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/gh.png b/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/gh.png deleted file mode 100755 index 628da97c7..000000000 Binary files a/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/gh.png and /dev/null differ diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/spinner.gif b/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/spinner.gif deleted file mode 100644 index e3038d0a4..000000000 Binary files a/docs/docsets/Workflow.docset/Contents/Resources/Documents/img/spinner.gif and /dev/null differ diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/index.html b/docs/docsets/Workflow.docset/Contents/Resources/Documents/index.html deleted file mode 100644 index 62efdd5d6..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/index.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - Workflow Reference - - - - - - - - - - - - - - - -
-

- - Workflow 3.1.2 Docs - - (92% documented) -

- -

-

- -
-

- -

- - - View on GitHub - -

- -
- - - -
- -
- -
-
- -

Build Status -Pod Version -Quality Gate -Coverage

-

Welcome

- -

Workflow is a library that lets you easily manage journeys through your Swift application.

- -

When Developing in UIKit, each view controller has to know about the one following it in order to share data. Now imagine a flow where the first 3 screens are optional. What would it look like if you could decouple all of that?

-
let workflow = Workflow(LocationsViewController.self) // Skip this if you have GPS
-                .thenProceed(with: PickupOrDeliveryViewController.self) // Skip this if you only have 1 choice
-                .thenProceed(with: MenuSelectionViewController.self) // Skip this for new stores
-                .thenProceed(with: FoodSelectionViewController.self)
-                .thenProceed(with: ReviewOrderViewController.self) // This lets you edit anything you've already picked
-                .thenProceed(with: SubmitPaymentViewController.self)
-
-// from wherever this flow is launched
-launchInto(workflow)
-
- -

The above code is all that is needed from the screen starting this flow. Each screen determines if it needs to show based on data passed in and what that screen knows about the system (such as GPS availability), and all of it is type safe. If you ever want to re-order these, simply move their position in the chain.

- -

As you continue to develop your applications, each view controller will become more decoupled from the rest of the app. That means, if you want a completely different order of screens, just define a new Workflow.

-

Interested but you need SwiftUI support?

- -

We’re working on it now!

-

Quick Start

-

CocoaPods

-
pod 'DynamicWorkflow/UIKit'
-
- -

Then make your first FlowRepresentable view controller:

-
import Workflow
-class ExampleViewController: UIWorkflowItem<Never, Never>, FlowRepresentable {
-    override func viewDidLoad() {
-        view.backgroundColor = .green
-    }
-}
-
- -

Then from your root view controller, call:

-
import Workflow
-...
-launchInto(Workflow(ExampleViewController.self))
-
- -

And just like that you’re started! To see something more practical and in-depth, check out the example app in the repo. For a more in-depth starting guide, checkout out our Getting Started documentation.

-

Deep Dive

- - - -
-
- - -
-
- - - - diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/jazzy.js b/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/jazzy.js deleted file mode 100755 index 1e55d6ef0..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/jazzy.js +++ /dev/null @@ -1,70 +0,0 @@ -window.jazzy = {'docset': false} -if (typeof window.dash != 'undefined') { - document.documentElement.className += ' dash' - window.jazzy.docset = true -} -if (navigator.userAgent.match(/xcode/i)) { - document.documentElement.className += ' xcode' - window.jazzy.docset = true -} - -function toggleItem($link, $content) { - var animationDuration = 300; - $link.toggleClass('token-open'); - $content.slideToggle(animationDuration); -} - -function itemLinkToContent($link) { - return $link.parent().parent().next(); -} - -// On doc load + hash-change, open any targetted item -function openCurrentItemIfClosed() { - if (window.jazzy.docset) { - return; - } - var $link = $(`a[name="${location.hash.substring(1)}"]`).nextAll('.token'); - $content = itemLinkToContent($link); - if ($content.is(':hidden')) { - toggleItem($link, $content); - } -} - -$(openCurrentItemIfClosed); -$(window).on('hashchange', openCurrentItemIfClosed); - -// On item link ('token') click, toggle its discussion -$('.token').on('click', function(event) { - if (window.jazzy.docset) { - return; - } - var $link = $(this); - toggleItem($link, itemLinkToContent($link)); - - // Keeps the document from jumping to the hash. - var href = $link.attr('href'); - if (history.pushState) { - history.pushState({}, '', href); - } else { - location.hash = href; - } - event.preventDefault(); -}); - -// Clicks on links to the current, closed, item need to open the item -$("a:not('.token')").on('click', function() { - if (location == this.href) { - openCurrentItemIfClosed(); - } -}); - -// KaTeX rendering -if ("katex" in window) { - $($('.math').each( (_, element) => { - katex.render(element.textContent, element, { - displayMode: $(element).hasClass('m-block'), - throwOnError: false, - trust: true - }); - })) -} diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/jazzy.search.js b/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/jazzy.search.js deleted file mode 100644 index e3d1ab905..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/jazzy.search.js +++ /dev/null @@ -1,70 +0,0 @@ -$(function(){ - var $typeahead = $('[data-typeahead]'); - var $form = $typeahead.parents('form'); - var searchURL = $form.attr('action'); - - function displayTemplate(result) { - return result.name; - } - - function suggestionTemplate(result) { - var t = '
'; - t += '' + result.name + ''; - if (result.parent_name) { - t += '' + result.parent_name + ''; - } - t += '
'; - return t; - } - - $typeahead.one('focus', function() { - $form.addClass('loading'); - - $.getJSON(searchURL).then(function(searchData) { - const searchIndex = lunr(function() { - this.ref('url'); - this.field('name'); - this.field('abstract'); - for (const [url, doc] of Object.entries(searchData)) { - this.add({url: url, name: doc.name, abstract: doc.abstract}); - } - }); - - $typeahead.typeahead( - { - highlight: true, - minLength: 3, - autoselect: true - }, - { - limit: 10, - display: displayTemplate, - templates: { suggestion: suggestionTemplate }, - source: function(query, sync) { - const lcSearch = query.toLowerCase(); - const results = searchIndex.query(function(q) { - q.term(lcSearch, { boost: 100 }); - q.term(lcSearch, { - boost: 10, - wildcard: lunr.Query.wildcard.TRAILING - }); - }).map(function(result) { - var doc = searchData[result.ref]; - doc.url = result.ref; - return doc; - }); - sync(results); - } - } - ); - $form.removeClass('loading'); - $typeahead.trigger('focus'); - }); - }); - - var baseURL = searchURL.slice(0, -"search.json".length); - - $typeahead.on('typeahead:select', function(e, result) { - window.location = baseURL + result.url; - }); -}); diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/jquery.min.js deleted file mode 100644 index b0614034a..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/jquery.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/typeahead.jquery.js b/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/typeahead.jquery.js deleted file mode 100644 index 3a2d2ab03..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/js/typeahead.jquery.js +++ /dev/null @@ -1,1694 +0,0 @@ -/*! - * typeahead.js 1.3.1 - * https://github.com/corejavascript/typeahead.js - * Copyright 2013-2020 Twitter, Inc. and other contributors; Licensed MIT - */ - - -(function(root, factory) { - if (typeof define === "function" && define.amd) { - define([ "jquery" ], function(a0) { - return factory(a0); - }); - } else if (typeof module === "object" && module.exports) { - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -})(this, function($) { - var _ = function() { - "use strict"; - return { - isMsie: function() { - return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false; - }, - isBlankString: function(str) { - return !str || /^\s*$/.test(str); - }, - escapeRegExChars: function(str) { - return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); - }, - isString: function(obj) { - return typeof obj === "string"; - }, - isNumber: function(obj) { - return typeof obj === "number"; - }, - isArray: $.isArray, - isFunction: $.isFunction, - isObject: $.isPlainObject, - isUndefined: function(obj) { - return typeof obj === "undefined"; - }, - isElement: function(obj) { - return !!(obj && obj.nodeType === 1); - }, - isJQuery: function(obj) { - return obj instanceof $; - }, - toStr: function toStr(s) { - return _.isUndefined(s) || s === null ? "" : s + ""; - }, - bind: $.proxy, - each: function(collection, cb) { - $.each(collection, reverseArgs); - function reverseArgs(index, value) { - return cb(value, index); - } - }, - map: $.map, - filter: $.grep, - every: function(obj, test) { - var result = true; - if (!obj) { - return result; - } - $.each(obj, function(key, val) { - if (!(result = test.call(null, val, key, obj))) { - return false; - } - }); - return !!result; - }, - some: function(obj, test) { - var result = false; - if (!obj) { - return result; - } - $.each(obj, function(key, val) { - if (result = test.call(null, val, key, obj)) { - return false; - } - }); - return !!result; - }, - mixin: $.extend, - identity: function(x) { - return x; - }, - clone: function(obj) { - return $.extend(true, {}, obj); - }, - getIdGenerator: function() { - var counter = 0; - return function() { - return counter++; - }; - }, - templatify: function templatify(obj) { - return $.isFunction(obj) ? obj : template; - function template() { - return String(obj); - } - }, - defer: function(fn) { - setTimeout(fn, 0); - }, - debounce: function(func, wait, immediate) { - var timeout, result; - return function() { - var context = this, args = arguments, later, callNow; - later = function() { - timeout = null; - if (!immediate) { - result = func.apply(context, args); - } - }; - callNow = immediate && !timeout; - clearTimeout(timeout); - timeout = setTimeout(later, wait); - if (callNow) { - result = func.apply(context, args); - } - return result; - }; - }, - throttle: function(func, wait) { - var context, args, timeout, result, previous, later; - previous = 0; - later = function() { - previous = new Date(); - timeout = null; - result = func.apply(context, args); - }; - return function() { - var now = new Date(), remaining = wait - (now - previous); - context = this; - args = arguments; - if (remaining <= 0) { - clearTimeout(timeout); - timeout = null; - previous = now; - result = func.apply(context, args); - } else if (!timeout) { - timeout = setTimeout(later, remaining); - } - return result; - }; - }, - stringify: function(val) { - return _.isString(val) ? val : JSON.stringify(val); - }, - guid: function() { - function _p8(s) { - var p = (Math.random().toString(16) + "000000000").substr(2, 8); - return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; - } - return "tt-" + _p8() + _p8(true) + _p8(true) + _p8(); - }, - noop: function() {} - }; - }(); - var WWW = function() { - "use strict"; - var defaultClassNames = { - wrapper: "twitter-typeahead", - input: "tt-input", - hint: "tt-hint", - menu: "tt-menu", - dataset: "tt-dataset", - suggestion: "tt-suggestion", - selectable: "tt-selectable", - empty: "tt-empty", - open: "tt-open", - cursor: "tt-cursor", - highlight: "tt-highlight" - }; - return build; - function build(o) { - var www, classes; - classes = _.mixin({}, defaultClassNames, o); - www = { - css: buildCss(), - classes: classes, - html: buildHtml(classes), - selectors: buildSelectors(classes) - }; - return { - css: www.css, - html: www.html, - classes: www.classes, - selectors: www.selectors, - mixin: function(o) { - _.mixin(o, www); - } - }; - } - function buildHtml(c) { - return { - wrapper: '', - menu: '
' - }; - } - function buildSelectors(classes) { - var selectors = {}; - _.each(classes, function(v, k) { - selectors[k] = "." + v; - }); - return selectors; - } - function buildCss() { - var css = { - wrapper: { - position: "relative", - display: "inline-block" - }, - hint: { - position: "absolute", - top: "0", - left: "0", - borderColor: "transparent", - boxShadow: "none", - opacity: "1" - }, - input: { - position: "relative", - verticalAlign: "top", - backgroundColor: "transparent" - }, - inputWithNoHint: { - position: "relative", - verticalAlign: "top" - }, - menu: { - position: "absolute", - top: "100%", - left: "0", - zIndex: "100", - display: "none" - }, - ltr: { - left: "0", - right: "auto" - }, - rtl: { - left: "auto", - right: " 0" - } - }; - if (_.isMsie()) { - _.mixin(css.input, { - backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)" - }); - } - return css; - } - }(); - var EventBus = function() { - "use strict"; - var namespace, deprecationMap; - namespace = "typeahead:"; - deprecationMap = { - render: "rendered", - cursorchange: "cursorchanged", - select: "selected", - autocomplete: "autocompleted" - }; - function EventBus(o) { - if (!o || !o.el) { - $.error("EventBus initialized without el"); - } - this.$el = $(o.el); - } - _.mixin(EventBus.prototype, { - _trigger: function(type, args) { - var $e = $.Event(namespace + type); - this.$el.trigger.call(this.$el, $e, args || []); - return $e; - }, - before: function(type) { - var args, $e; - args = [].slice.call(arguments, 1); - $e = this._trigger("before" + type, args); - return $e.isDefaultPrevented(); - }, - trigger: function(type) { - var deprecatedType; - this._trigger(type, [].slice.call(arguments, 1)); - if (deprecatedType = deprecationMap[type]) { - this._trigger(deprecatedType, [].slice.call(arguments, 1)); - } - } - }); - return EventBus; - }(); - var EventEmitter = function() { - "use strict"; - var splitter = /\s+/, nextTick = getNextTick(); - return { - onSync: onSync, - onAsync: onAsync, - off: off, - trigger: trigger - }; - function on(method, types, cb, context) { - var type; - if (!cb) { - return this; - } - types = types.split(splitter); - cb = context ? bindContext(cb, context) : cb; - this._callbacks = this._callbacks || {}; - while (type = types.shift()) { - this._callbacks[type] = this._callbacks[type] || { - sync: [], - async: [] - }; - this._callbacks[type][method].push(cb); - } - return this; - } - function onAsync(types, cb, context) { - return on.call(this, "async", types, cb, context); - } - function onSync(types, cb, context) { - return on.call(this, "sync", types, cb, context); - } - function off(types) { - var type; - if (!this._callbacks) { - return this; - } - types = types.split(splitter); - while (type = types.shift()) { - delete this._callbacks[type]; - } - return this; - } - function trigger(types) { - var type, callbacks, args, syncFlush, asyncFlush; - if (!this._callbacks) { - return this; - } - types = types.split(splitter); - args = [].slice.call(arguments, 1); - while ((type = types.shift()) && (callbacks = this._callbacks[type])) { - syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args)); - asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args)); - syncFlush() && nextTick(asyncFlush); - } - return this; - } - function getFlush(callbacks, context, args) { - return flush; - function flush() { - var cancelled; - for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) { - cancelled = callbacks[i].apply(context, args) === false; - } - return !cancelled; - } - } - function getNextTick() { - var nextTickFn; - if (window.setImmediate) { - nextTickFn = function nextTickSetImmediate(fn) { - setImmediate(function() { - fn(); - }); - }; - } else { - nextTickFn = function nextTickSetTimeout(fn) { - setTimeout(function() { - fn(); - }, 0); - }; - } - return nextTickFn; - } - function bindContext(fn, context) { - return fn.bind ? fn.bind(context) : function() { - fn.apply(context, [].slice.call(arguments, 0)); - }; - } - }(); - var highlight = function(doc) { - "use strict"; - var defaults = { - node: null, - pattern: null, - tagName: "strong", - className: null, - wordsOnly: false, - caseSensitive: false, - diacriticInsensitive: false - }; - var accented = { - A: "[AaªÀ-Åà-åĀ-ąǍǎȀ-ȃȦȧᴬᵃḀḁẚẠ-ảₐ℀℁℻⒜Ⓐⓐ㍱-㍴㎀-㎄㎈㎉㎩-㎯㏂㏊㏟㏿Aa]", - B: "[BbᴮᵇḂ-ḇℬ⒝Ⓑⓑ㍴㎅-㎇㏃㏈㏔㏝Bb]", - C: "[CcÇçĆ-čᶜ℀ℂ℃℅℆ℭⅭⅽ⒞Ⓒⓒ㍶㎈㎉㎝㎠㎤㏄-㏇Cc]", - D: "[DdĎďDŽ-džDZ-dzᴰᵈḊ-ḓⅅⅆⅮⅾ⒟Ⓓⓓ㋏㍲㍷-㍹㎗㎭-㎯㏅㏈Dd]", - E: "[EeÈ-Ëè-ëĒ-ěȄ-ȇȨȩᴱᵉḘ-ḛẸ-ẽₑ℡ℯℰⅇ⒠Ⓔⓔ㉐㋍㋎Ee]", - F: "[FfᶠḞḟ℉ℱ℻⒡Ⓕⓕ㎊-㎌㎙ff-fflFf]", - G: "[GgĜ-ģǦǧǴǵᴳᵍḠḡℊ⒢Ⓖⓖ㋌㋍㎇㎍-㎏㎓㎬㏆㏉㏒㏿Gg]", - H: "[HhĤĥȞȟʰᴴḢ-ḫẖℋ-ℎ⒣Ⓗⓗ㋌㍱㎐-㎔㏊㏋㏗Hh]", - I: "[IiÌ-Ïì-ïĨ-İIJijǏǐȈ-ȋᴵᵢḬḭỈ-ịⁱℐℑℹⅈⅠ-ⅣⅥ-ⅨⅪⅫⅰ-ⅳⅵ-ⅸⅺⅻ⒤Ⓘⓘ㍺㏌㏕fiffiIi]", - J: "[JjIJ-ĵLJ-njǰʲᴶⅉ⒥ⒿⓙⱼJj]", - K: "[KkĶķǨǩᴷᵏḰ-ḵK⒦Ⓚⓚ㎄㎅㎉㎏㎑㎘㎞㎢㎦㎪㎸㎾㏀㏆㏍-㏏Kk]", - L: "[LlĹ-ŀLJ-ljˡᴸḶḷḺ-ḽℒℓ℡Ⅼⅼ⒧Ⓛⓛ㋏㎈㎉㏐-㏓㏕㏖㏿flfflLl]", - M: "[MmᴹᵐḾ-ṃ℠™ℳⅯⅿ⒨Ⓜⓜ㍷-㍹㎃㎆㎎㎒㎖㎙-㎨㎫㎳㎷㎹㎽㎿㏁㏂㏎㏐㏔-㏖㏘㏙㏞㏟Mm]", - N: "[NnÑñŃ-ʼnNJ-njǸǹᴺṄ-ṋⁿℕ№⒩Ⓝⓝ㎁㎋㎚㎱㎵㎻㏌㏑Nn]", - O: "[OoºÒ-Öò-öŌ-őƠơǑǒǪǫȌ-ȏȮȯᴼᵒỌ-ỏₒ℅№ℴ⒪Ⓞⓞ㍵㏇㏒㏖Oo]", - P: "[PpᴾᵖṔ-ṗℙ⒫Ⓟⓟ㉐㍱㍶㎀㎊㎩-㎬㎰㎴㎺㏋㏗-㏚Pp]", - Q: "[Qqℚ⒬Ⓠⓠ㏃Qq]", - R: "[RrŔ-řȐ-ȓʳᴿᵣṘ-ṛṞṟ₨ℛ-ℝ⒭Ⓡⓡ㋍㍴㎭-㎯㏚㏛Rr]", - S: "[SsŚ-šſȘșˢṠ-ṣ₨℁℠⒮Ⓢⓢ㎧㎨㎮-㎳㏛㏜stSs]", - T: "[TtŢ-ťȚțᵀᵗṪ-ṱẗ℡™⒯Ⓣⓣ㉐㋏㎔㏏ſtstTt]", - U: "[UuÙ-Üù-üŨ-ųƯưǓǔȔ-ȗᵁᵘᵤṲ-ṷỤ-ủ℆⒰Ⓤⓤ㍳㍺Uu]", - V: "[VvᵛᵥṼ-ṿⅣ-Ⅷⅳ-ⅷ⒱Ⓥⓥⱽ㋎㍵㎴-㎹㏜㏞Vv]", - W: "[WwŴŵʷᵂẀ-ẉẘ⒲Ⓦⓦ㎺-㎿㏝Ww]", - X: "[XxˣẊ-ẍₓ℻Ⅸ-Ⅻⅸ-ⅻ⒳Ⓧⓧ㏓Xx]", - Y: "[YyÝýÿŶ-ŸȲȳʸẎẏẙỲ-ỹ⒴Ⓨⓨ㏉Yy]", - Z: "[ZzŹ-žDZ-dzᶻẐ-ẕℤℨ⒵Ⓩⓩ㎐-㎔Zz]" - }; - return function hightlight(o) { - var regex; - o = _.mixin({}, defaults, o); - if (!o.node || !o.pattern) { - return; - } - o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ]; - regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive); - traverse(o.node, hightlightTextNode); - function hightlightTextNode(textNode) { - var match, patternNode, wrapperNode; - if (match = regex.exec(textNode.data)) { - wrapperNode = doc.createElement(o.tagName); - o.className && (wrapperNode.className = o.className); - patternNode = textNode.splitText(match.index); - patternNode.splitText(match[0].length); - wrapperNode.appendChild(patternNode.cloneNode(true)); - textNode.parentNode.replaceChild(wrapperNode, patternNode); - } - return !!match; - } - function traverse(el, hightlightTextNode) { - var childNode, TEXT_NODE_TYPE = 3; - for (var i = 0; i < el.childNodes.length; i++) { - childNode = el.childNodes[i]; - if (childNode.nodeType === TEXT_NODE_TYPE) { - i += hightlightTextNode(childNode) ? 1 : 0; - } else { - traverse(childNode, hightlightTextNode); - } - } - } - }; - function accent_replacer(chr) { - return accented[chr.toUpperCase()] || chr; - } - function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) { - var escapedPatterns = [], regexStr; - for (var i = 0, len = patterns.length; i < len; i++) { - var escapedWord = _.escapeRegExChars(patterns[i]); - if (diacriticInsensitive) { - escapedWord = escapedWord.replace(/\S/g, accent_replacer); - } - escapedPatterns.push(escapedWord); - } - regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")"; - return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i"); - } - }(window.document); - var Input = function() { - "use strict"; - var specialKeyCodeMap; - specialKeyCodeMap = { - 9: "tab", - 27: "esc", - 37: "left", - 39: "right", - 13: "enter", - 38: "up", - 40: "down" - }; - function Input(o, www) { - var id; - o = o || {}; - if (!o.input) { - $.error("input is missing"); - } - www.mixin(this); - this.$hint = $(o.hint); - this.$input = $(o.input); - this.$menu = $(o.menu); - id = this.$input.attr("id") || _.guid(); - this.$menu.attr("id", id + "_listbox"); - this.$hint.attr({ - "aria-hidden": true - }); - this.$input.attr({ - "aria-owns": id + "_listbox", - role: "combobox", - "aria-autocomplete": "list", - "aria-expanded": false - }); - this.query = this.$input.val(); - this.queryWhenFocused = this.hasFocus() ? this.query : null; - this.$overflowHelper = buildOverflowHelper(this.$input); - this._checkLanguageDirection(); - if (this.$hint.length === 0) { - this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop; - } - this.onSync("cursorchange", this._updateDescendent); - } - Input.normalizeQuery = function(str) { - return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " "); - }; - _.mixin(Input.prototype, EventEmitter, { - _onBlur: function onBlur() { - this.resetInputValue(); - this.trigger("blurred"); - }, - _onFocus: function onFocus() { - this.queryWhenFocused = this.query; - this.trigger("focused"); - }, - _onKeydown: function onKeydown($e) { - var keyName = specialKeyCodeMap[$e.which || $e.keyCode]; - this._managePreventDefault(keyName, $e); - if (keyName && this._shouldTrigger(keyName, $e)) { - this.trigger(keyName + "Keyed", $e); - } - }, - _onInput: function onInput() { - this._setQuery(this.getInputValue()); - this.clearHintIfInvalid(); - this._checkLanguageDirection(); - }, - _managePreventDefault: function managePreventDefault(keyName, $e) { - var preventDefault; - switch (keyName) { - case "up": - case "down": - preventDefault = !withModifier($e); - break; - - default: - preventDefault = false; - } - preventDefault && $e.preventDefault(); - }, - _shouldTrigger: function shouldTrigger(keyName, $e) { - var trigger; - switch (keyName) { - case "tab": - trigger = !withModifier($e); - break; - - default: - trigger = true; - } - return trigger; - }, - _checkLanguageDirection: function checkLanguageDirection() { - var dir = (this.$input.css("direction") || "ltr").toLowerCase(); - if (this.dir !== dir) { - this.dir = dir; - this.$hint.attr("dir", dir); - this.trigger("langDirChanged", dir); - } - }, - _setQuery: function setQuery(val, silent) { - var areEquivalent, hasDifferentWhitespace; - areEquivalent = areQueriesEquivalent(val, this.query); - hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false; - this.query = val; - if (!silent && !areEquivalent) { - this.trigger("queryChanged", this.query); - } else if (!silent && hasDifferentWhitespace) { - this.trigger("whitespaceChanged", this.query); - } - }, - _updateDescendent: function updateDescendent(event, id) { - this.$input.attr("aria-activedescendant", id); - }, - bind: function() { - var that = this, onBlur, onFocus, onKeydown, onInput; - onBlur = _.bind(this._onBlur, this); - onFocus = _.bind(this._onFocus, this); - onKeydown = _.bind(this._onKeydown, this); - onInput = _.bind(this._onInput, this); - this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown); - if (!_.isMsie() || _.isMsie() > 9) { - this.$input.on("input.tt", onInput); - } else { - this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) { - if (specialKeyCodeMap[$e.which || $e.keyCode]) { - return; - } - _.defer(_.bind(that._onInput, that, $e)); - }); - } - return this; - }, - focus: function focus() { - this.$input.focus(); - }, - blur: function blur() { - this.$input.blur(); - }, - getLangDir: function getLangDir() { - return this.dir; - }, - getQuery: function getQuery() { - return this.query || ""; - }, - setQuery: function setQuery(val, silent) { - this.setInputValue(val); - this._setQuery(val, silent); - }, - hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() { - return this.query !== this.queryWhenFocused; - }, - getInputValue: function getInputValue() { - return this.$input.val(); - }, - setInputValue: function setInputValue(value) { - this.$input.val(value); - this.clearHintIfInvalid(); - this._checkLanguageDirection(); - }, - resetInputValue: function resetInputValue() { - this.setInputValue(this.query); - }, - getHint: function getHint() { - return this.$hint.val(); - }, - setHint: function setHint(value) { - this.$hint.val(value); - }, - clearHint: function clearHint() { - this.setHint(""); - }, - clearHintIfInvalid: function clearHintIfInvalid() { - var val, hint, valIsPrefixOfHint, isValid; - val = this.getInputValue(); - hint = this.getHint(); - valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0; - isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow(); - !isValid && this.clearHint(); - }, - hasFocus: function hasFocus() { - return this.$input.is(":focus"); - }, - hasOverflow: function hasOverflow() { - var constraint = this.$input.width() - 2; - this.$overflowHelper.text(this.getInputValue()); - return this.$overflowHelper.width() >= constraint; - }, - isCursorAtEnd: function() { - var valueLength, selectionStart, range; - valueLength = this.$input.val().length; - selectionStart = this.$input[0].selectionStart; - if (_.isNumber(selectionStart)) { - return selectionStart === valueLength; - } else if (document.selection) { - range = document.selection.createRange(); - range.moveStart("character", -valueLength); - return valueLength === range.text.length; - } - return true; - }, - destroy: function destroy() { - this.$hint.off(".tt"); - this.$input.off(".tt"); - this.$overflowHelper.remove(); - this.$hint = this.$input = this.$overflowHelper = $("
"); - }, - setAriaExpanded: function setAriaExpanded(value) { - this.$input.attr("aria-expanded", value); - } - }); - return Input; - function buildOverflowHelper($input) { - return $('').css({ - position: "absolute", - visibility: "hidden", - whiteSpace: "pre", - fontFamily: $input.css("font-family"), - fontSize: $input.css("font-size"), - fontStyle: $input.css("font-style"), - fontVariant: $input.css("font-variant"), - fontWeight: $input.css("font-weight"), - wordSpacing: $input.css("word-spacing"), - letterSpacing: $input.css("letter-spacing"), - textIndent: $input.css("text-indent"), - textRendering: $input.css("text-rendering"), - textTransform: $input.css("text-transform") - }).insertAfter($input); - } - function areQueriesEquivalent(a, b) { - return Input.normalizeQuery(a) === Input.normalizeQuery(b); - } - function withModifier($e) { - return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey; - } - }(); - var Dataset = function() { - "use strict"; - var keys, nameGenerator; - keys = { - dataset: "tt-selectable-dataset", - val: "tt-selectable-display", - obj: "tt-selectable-object" - }; - nameGenerator = _.getIdGenerator(); - function Dataset(o, www) { - o = o || {}; - o.templates = o.templates || {}; - o.templates.notFound = o.templates.notFound || o.templates.empty; - if (!o.source) { - $.error("missing source"); - } - if (!o.node) { - $.error("missing node"); - } - if (o.name && !isValidName(o.name)) { - $.error("invalid dataset name: " + o.name); - } - www.mixin(this); - this.highlight = !!o.highlight; - this.name = _.toStr(o.name || nameGenerator()); - this.limit = o.limit || 5; - this.displayFn = getDisplayFn(o.display || o.displayKey); - this.templates = getTemplates(o.templates, this.displayFn); - this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source; - this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async; - this._resetLastSuggestion(); - this.$el = $(o.node).attr("role", "presentation").addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name); - } - Dataset.extractData = function extractData(el) { - var $el = $(el); - if ($el.data(keys.obj)) { - return { - dataset: $el.data(keys.dataset) || "", - val: $el.data(keys.val) || "", - obj: $el.data(keys.obj) || null - }; - } - return null; - }; - _.mixin(Dataset.prototype, EventEmitter, { - _overwrite: function overwrite(query, suggestions) { - suggestions = suggestions || []; - if (suggestions.length) { - this._renderSuggestions(query, suggestions); - } else if (this.async && this.templates.pending) { - this._renderPending(query); - } else if (!this.async && this.templates.notFound) { - this._renderNotFound(query); - } else { - this._empty(); - } - this.trigger("rendered", suggestions, false, this.name); - }, - _append: function append(query, suggestions) { - suggestions = suggestions || []; - if (suggestions.length && this.$lastSuggestion.length) { - this._appendSuggestions(query, suggestions); - } else if (suggestions.length) { - this._renderSuggestions(query, suggestions); - } else if (!this.$lastSuggestion.length && this.templates.notFound) { - this._renderNotFound(query); - } - this.trigger("rendered", suggestions, true, this.name); - }, - _renderSuggestions: function renderSuggestions(query, suggestions) { - var $fragment; - $fragment = this._getSuggestionsFragment(query, suggestions); - this.$lastSuggestion = $fragment.children().last(); - this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions)); - }, - _appendSuggestions: function appendSuggestions(query, suggestions) { - var $fragment, $lastSuggestion; - $fragment = this._getSuggestionsFragment(query, suggestions); - $lastSuggestion = $fragment.children().last(); - this.$lastSuggestion.after($fragment); - this.$lastSuggestion = $lastSuggestion; - }, - _renderPending: function renderPending(query) { - var template = this.templates.pending; - this._resetLastSuggestion(); - template && this.$el.html(template({ - query: query, - dataset: this.name - })); - }, - _renderNotFound: function renderNotFound(query) { - var template = this.templates.notFound; - this._resetLastSuggestion(); - template && this.$el.html(template({ - query: query, - dataset: this.name - })); - }, - _empty: function empty() { - this.$el.empty(); - this._resetLastSuggestion(); - }, - _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) { - var that = this, fragment; - fragment = document.createDocumentFragment(); - _.each(suggestions, function getSuggestionNode(suggestion) { - var $el, context; - context = that._injectQuery(query, suggestion); - $el = $(that.templates.suggestion(context)).data(keys.dataset, that.name).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable); - fragment.appendChild($el[0]); - }); - this.highlight && highlight({ - className: this.classes.highlight, - node: fragment, - pattern: query - }); - return $(fragment); - }, - _getFooter: function getFooter(query, suggestions) { - return this.templates.footer ? this.templates.footer({ - query: query, - suggestions: suggestions, - dataset: this.name - }) : null; - }, - _getHeader: function getHeader(query, suggestions) { - return this.templates.header ? this.templates.header({ - query: query, - suggestions: suggestions, - dataset: this.name - }) : null; - }, - _resetLastSuggestion: function resetLastSuggestion() { - this.$lastSuggestion = $(); - }, - _injectQuery: function injectQuery(query, obj) { - return _.isObject(obj) ? _.mixin({ - _query: query - }, obj) : obj; - }, - update: function update(query) { - var that = this, canceled = false, syncCalled = false, rendered = 0; - this.cancel(); - this.cancel = function cancel() { - canceled = true; - that.cancel = $.noop; - that.async && that.trigger("asyncCanceled", query, that.name); - }; - this.source(query, sync, async); - !syncCalled && sync([]); - function sync(suggestions) { - if (syncCalled) { - return; - } - syncCalled = true; - suggestions = (suggestions || []).slice(0, that.limit); - rendered = suggestions.length; - that._overwrite(query, suggestions); - if (rendered < that.limit && that.async) { - that.trigger("asyncRequested", query, that.name); - } - } - function async(suggestions) { - suggestions = suggestions || []; - if (!canceled && rendered < that.limit) { - that.cancel = $.noop; - var idx = Math.abs(rendered - that.limit); - rendered += idx; - that._append(query, suggestions.slice(0, idx)); - that.async && that.trigger("asyncReceived", query, that.name); - } - } - }, - cancel: $.noop, - clear: function clear() { - this._empty(); - this.cancel(); - this.trigger("cleared"); - }, - isEmpty: function isEmpty() { - return this.$el.is(":empty"); - }, - destroy: function destroy() { - this.$el = $("
"); - } - }); - return Dataset; - function getDisplayFn(display) { - display = display || _.stringify; - return _.isFunction(display) ? display : displayFn; - function displayFn(obj) { - return obj[display]; - } - } - function getTemplates(templates, displayFn) { - return { - notFound: templates.notFound && _.templatify(templates.notFound), - pending: templates.pending && _.templatify(templates.pending), - header: templates.header && _.templatify(templates.header), - footer: templates.footer && _.templatify(templates.footer), - suggestion: templates.suggestion ? userSuggestionTemplate : suggestionTemplate - }; - function userSuggestionTemplate(context) { - var template = templates.suggestion; - return $(template(context)).attr("id", _.guid()); - } - function suggestionTemplate(context) { - return $('
').attr("id", _.guid()).text(displayFn(context)); - } - } - function isValidName(str) { - return /^[_a-zA-Z0-9-]+$/.test(str); - } - }(); - var Menu = function() { - "use strict"; - function Menu(o, www) { - var that = this; - o = o || {}; - if (!o.node) { - $.error("node is required"); - } - www.mixin(this); - this.$node = $(o.node); - this.query = null; - this.datasets = _.map(o.datasets, initializeDataset); - function initializeDataset(oDataset) { - var node = that.$node.find(oDataset.node).first(); - oDataset.node = node.length ? node : $("
").appendTo(that.$node); - return new Dataset(oDataset, www); - } - } - _.mixin(Menu.prototype, EventEmitter, { - _onSelectableClick: function onSelectableClick($e) { - this.trigger("selectableClicked", $($e.currentTarget)); - }, - _onRendered: function onRendered(type, dataset, suggestions, async) { - this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); - this.trigger("datasetRendered", dataset, suggestions, async); - }, - _onCleared: function onCleared() { - this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty()); - this.trigger("datasetCleared"); - }, - _propagate: function propagate() { - this.trigger.apply(this, arguments); - }, - _allDatasetsEmpty: function allDatasetsEmpty() { - return _.every(this.datasets, _.bind(function isDatasetEmpty(dataset) { - var isEmpty = dataset.isEmpty(); - this.$node.attr("aria-expanded", !isEmpty); - return isEmpty; - }, this)); - }, - _getSelectables: function getSelectables() { - return this.$node.find(this.selectors.selectable); - }, - _removeCursor: function _removeCursor() { - var $selectable = this.getActiveSelectable(); - $selectable && $selectable.removeClass(this.classes.cursor); - }, - _ensureVisible: function ensureVisible($el) { - var elTop, elBottom, nodeScrollTop, nodeHeight; - elTop = $el.position().top; - elBottom = elTop + $el.outerHeight(true); - nodeScrollTop = this.$node.scrollTop(); - nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10); - if (elTop < 0) { - this.$node.scrollTop(nodeScrollTop + elTop); - } else if (nodeHeight < elBottom) { - this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight)); - } - }, - bind: function() { - var that = this, onSelectableClick; - onSelectableClick = _.bind(this._onSelectableClick, this); - this.$node.on("click.tt", this.selectors.selectable, onSelectableClick); - this.$node.on("mouseover", this.selectors.selectable, function() { - that.setCursor($(this)); - }); - this.$node.on("mouseleave", function() { - that._removeCursor(); - }); - _.each(this.datasets, function(dataset) { - dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that); - }); - return this; - }, - isOpen: function isOpen() { - return this.$node.hasClass(this.classes.open); - }, - open: function open() { - this.$node.scrollTop(0); - this.$node.addClass(this.classes.open); - }, - close: function close() { - this.$node.attr("aria-expanded", false); - this.$node.removeClass(this.classes.open); - this._removeCursor(); - }, - setLanguageDirection: function setLanguageDirection(dir) { - this.$node.attr("dir", dir); - }, - selectableRelativeToCursor: function selectableRelativeToCursor(delta) { - var $selectables, $oldCursor, oldIndex, newIndex; - $oldCursor = this.getActiveSelectable(); - $selectables = this._getSelectables(); - oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1; - newIndex = oldIndex + delta; - newIndex = (newIndex + 1) % ($selectables.length + 1) - 1; - newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex; - return newIndex === -1 ? null : $selectables.eq(newIndex); - }, - setCursor: function setCursor($selectable) { - this._removeCursor(); - if ($selectable = $selectable && $selectable.first()) { - $selectable.addClass(this.classes.cursor); - this._ensureVisible($selectable); - } - }, - getSelectableData: function getSelectableData($el) { - return $el && $el.length ? Dataset.extractData($el) : null; - }, - getActiveSelectable: function getActiveSelectable() { - var $selectable = this._getSelectables().filter(this.selectors.cursor).first(); - return $selectable.length ? $selectable : null; - }, - getTopSelectable: function getTopSelectable() { - var $selectable = this._getSelectables().first(); - return $selectable.length ? $selectable : null; - }, - update: function update(query) { - var isValidUpdate = query !== this.query; - if (isValidUpdate) { - this.query = query; - _.each(this.datasets, updateDataset); - } - return isValidUpdate; - function updateDataset(dataset) { - dataset.update(query); - } - }, - empty: function empty() { - _.each(this.datasets, clearDataset); - this.query = null; - this.$node.addClass(this.classes.empty); - function clearDataset(dataset) { - dataset.clear(); - } - }, - destroy: function destroy() { - this.$node.off(".tt"); - this.$node = $("
"); - _.each(this.datasets, destroyDataset); - function destroyDataset(dataset) { - dataset.destroy(); - } - } - }); - return Menu; - }(); - var Status = function() { - "use strict"; - function Status(options) { - this.$el = $("", { - role: "status", - "aria-live": "polite" - }).css({ - position: "absolute", - padding: "0", - border: "0", - height: "1px", - width: "1px", - "margin-bottom": "-1px", - "margin-right": "-1px", - overflow: "hidden", - clip: "rect(0 0 0 0)", - "white-space": "nowrap" - }); - options.$input.after(this.$el); - _.each(options.menu.datasets, _.bind(function(dataset) { - if (dataset.onSync) { - dataset.onSync("rendered", _.bind(this.update, this)); - dataset.onSync("cleared", _.bind(this.cleared, this)); - } - }, this)); - } - _.mixin(Status.prototype, { - update: function update(event, suggestions) { - var length = suggestions.length; - var words; - if (length === 1) { - words = { - result: "result", - is: "is" - }; - } else { - words = { - result: "results", - is: "are" - }; - } - this.$el.text(length + " " + words.result + " " + words.is + " available, use up and down arrow keys to navigate."); - }, - cleared: function() { - this.$el.text(""); - } - }); - return Status; - }(); - var DefaultMenu = function() { - "use strict"; - var s = Menu.prototype; - function DefaultMenu() { - Menu.apply(this, [].slice.call(arguments, 0)); - } - _.mixin(DefaultMenu.prototype, Menu.prototype, { - open: function open() { - !this._allDatasetsEmpty() && this._show(); - return s.open.apply(this, [].slice.call(arguments, 0)); - }, - close: function close() { - this._hide(); - return s.close.apply(this, [].slice.call(arguments, 0)); - }, - _onRendered: function onRendered() { - if (this._allDatasetsEmpty()) { - this._hide(); - } else { - this.isOpen() && this._show(); - } - return s._onRendered.apply(this, [].slice.call(arguments, 0)); - }, - _onCleared: function onCleared() { - if (this._allDatasetsEmpty()) { - this._hide(); - } else { - this.isOpen() && this._show(); - } - return s._onCleared.apply(this, [].slice.call(arguments, 0)); - }, - setLanguageDirection: function setLanguageDirection(dir) { - this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl); - return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0)); - }, - _hide: function hide() { - this.$node.hide(); - }, - _show: function show() { - this.$node.css("display", "block"); - } - }); - return DefaultMenu; - }(); - var Typeahead = function() { - "use strict"; - function Typeahead(o, www) { - var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged; - o = o || {}; - if (!o.input) { - $.error("missing input"); - } - if (!o.menu) { - $.error("missing menu"); - } - if (!o.eventBus) { - $.error("missing event bus"); - } - www.mixin(this); - this.eventBus = o.eventBus; - this.minLength = _.isNumber(o.minLength) ? o.minLength : 1; - this.input = o.input; - this.menu = o.menu; - this.enabled = true; - this.autoselect = !!o.autoselect; - this.active = false; - this.input.hasFocus() && this.activate(); - this.dir = this.input.getLangDir(); - this._hacks(); - this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this); - onFocused = c(this, "activate", "open", "_onFocused"); - onBlurred = c(this, "deactivate", "_onBlurred"); - onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed"); - onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed"); - onEscKeyed = c(this, "isActive", "_onEscKeyed"); - onUpKeyed = c(this, "isActive", "open", "_onUpKeyed"); - onDownKeyed = c(this, "isActive", "open", "_onDownKeyed"); - onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed"); - onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed"); - onQueryChanged = c(this, "_openIfActive", "_onQueryChanged"); - onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged"); - this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this); - } - _.mixin(Typeahead.prototype, { - _hacks: function hacks() { - var $input, $menu; - $input = this.input.$input || $("
"); - $menu = this.menu.$node || $("
"); - $input.on("blur.tt", function($e) { - var active, isActive, hasActive; - active = document.activeElement; - isActive = $menu.is(active); - hasActive = $menu.has(active).length > 0; - if (_.isMsie() && (isActive || hasActive)) { - $e.preventDefault(); - $e.stopImmediatePropagation(); - _.defer(function() { - $input.focus(); - }); - } - }); - $menu.on("mousedown.tt", function($e) { - $e.preventDefault(); - }); - }, - _onSelectableClicked: function onSelectableClicked(type, $el) { - this.select($el); - }, - _onDatasetCleared: function onDatasetCleared() { - this._updateHint(); - }, - _onDatasetRendered: function onDatasetRendered(type, suggestions, async, dataset) { - this._updateHint(); - if (this.autoselect) { - var cursorClass = this.selectors.cursor.substr(1); - this.menu.$node.find(this.selectors.suggestion).first().addClass(cursorClass); - } - this.eventBus.trigger("render", suggestions, async, dataset); - }, - _onAsyncRequested: function onAsyncRequested(type, dataset, query) { - this.eventBus.trigger("asyncrequest", query, dataset); - }, - _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) { - this.eventBus.trigger("asynccancel", query, dataset); - }, - _onAsyncReceived: function onAsyncReceived(type, dataset, query) { - this.eventBus.trigger("asyncreceive", query, dataset); - }, - _onFocused: function onFocused() { - this._minLengthMet() && this.menu.update(this.input.getQuery()); - }, - _onBlurred: function onBlurred() { - if (this.input.hasQueryChangedSinceLastFocus()) { - this.eventBus.trigger("change", this.input.getQuery()); - } - }, - _onEnterKeyed: function onEnterKeyed(type, $e) { - var $selectable; - if ($selectable = this.menu.getActiveSelectable()) { - if (this.select($selectable)) { - $e.preventDefault(); - $e.stopPropagation(); - } - } else if (this.autoselect) { - if (this.select(this.menu.getTopSelectable())) { - $e.preventDefault(); - $e.stopPropagation(); - } - } - }, - _onTabKeyed: function onTabKeyed(type, $e) { - var $selectable; - if ($selectable = this.menu.getActiveSelectable()) { - this.select($selectable) && $e.preventDefault(); - } else if (this.autoselect) { - if ($selectable = this.menu.getTopSelectable()) { - this.autocomplete($selectable) && $e.preventDefault(); - } - } - }, - _onEscKeyed: function onEscKeyed() { - this.close(); - }, - _onUpKeyed: function onUpKeyed() { - this.moveCursor(-1); - }, - _onDownKeyed: function onDownKeyed() { - this.moveCursor(+1); - }, - _onLeftKeyed: function onLeftKeyed() { - if (this.dir === "rtl" && this.input.isCursorAtEnd()) { - this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); - } - }, - _onRightKeyed: function onRightKeyed() { - if (this.dir === "ltr" && this.input.isCursorAtEnd()) { - this.autocomplete(this.menu.getActiveSelectable() || this.menu.getTopSelectable()); - } - }, - _onQueryChanged: function onQueryChanged(e, query) { - this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty(); - }, - _onWhitespaceChanged: function onWhitespaceChanged() { - this._updateHint(); - }, - _onLangDirChanged: function onLangDirChanged(e, dir) { - if (this.dir !== dir) { - this.dir = dir; - this.menu.setLanguageDirection(dir); - } - }, - _openIfActive: function openIfActive() { - this.isActive() && this.open(); - }, - _minLengthMet: function minLengthMet(query) { - query = _.isString(query) ? query : this.input.getQuery() || ""; - return query.length >= this.minLength; - }, - _updateHint: function updateHint() { - var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match; - $selectable = this.menu.getTopSelectable(); - data = this.menu.getSelectableData($selectable); - val = this.input.getInputValue(); - if (data && !_.isBlankString(val) && !this.input.hasOverflow()) { - query = Input.normalizeQuery(val); - escapedQuery = _.escapeRegExChars(query); - frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i"); - match = frontMatchRegEx.exec(data.val); - match && this.input.setHint(val + match[1]); - } else { - this.input.clearHint(); - } - }, - isEnabled: function isEnabled() { - return this.enabled; - }, - enable: function enable() { - this.enabled = true; - }, - disable: function disable() { - this.enabled = false; - }, - isActive: function isActive() { - return this.active; - }, - activate: function activate() { - if (this.isActive()) { - return true; - } else if (!this.isEnabled() || this.eventBus.before("active")) { - return false; - } else { - this.active = true; - this.eventBus.trigger("active"); - return true; - } - }, - deactivate: function deactivate() { - if (!this.isActive()) { - return true; - } else if (this.eventBus.before("idle")) { - return false; - } else { - this.active = false; - this.close(); - this.eventBus.trigger("idle"); - return true; - } - }, - isOpen: function isOpen() { - return this.menu.isOpen(); - }, - open: function open() { - if (!this.isOpen() && !this.eventBus.before("open")) { - this.input.setAriaExpanded(true); - this.menu.open(); - this._updateHint(); - this.eventBus.trigger("open"); - } - return this.isOpen(); - }, - close: function close() { - if (this.isOpen() && !this.eventBus.before("close")) { - this.input.setAriaExpanded(false); - this.menu.close(); - this.input.clearHint(); - this.input.resetInputValue(); - this.eventBus.trigger("close"); - } - return !this.isOpen(); - }, - setVal: function setVal(val) { - this.input.setQuery(_.toStr(val)); - }, - getVal: function getVal() { - return this.input.getQuery(); - }, - select: function select($selectable) { - var data = this.menu.getSelectableData($selectable); - if (data && !this.eventBus.before("select", data.obj, data.dataset)) { - this.input.setQuery(data.val, true); - this.eventBus.trigger("select", data.obj, data.dataset); - this.close(); - return true; - } - return false; - }, - autocomplete: function autocomplete($selectable) { - var query, data, isValid; - query = this.input.getQuery(); - data = this.menu.getSelectableData($selectable); - isValid = data && query !== data.val; - if (isValid && !this.eventBus.before("autocomplete", data.obj, data.dataset)) { - this.input.setQuery(data.val); - this.eventBus.trigger("autocomplete", data.obj, data.dataset); - return true; - } - return false; - }, - moveCursor: function moveCursor(delta) { - var query, $candidate, data, suggestion, datasetName, cancelMove, id; - query = this.input.getQuery(); - $candidate = this.menu.selectableRelativeToCursor(delta); - data = this.menu.getSelectableData($candidate); - suggestion = data ? data.obj : null; - datasetName = data ? data.dataset : null; - id = $candidate ? $candidate.attr("id") : null; - this.input.trigger("cursorchange", id); - cancelMove = this._minLengthMet() && this.menu.update(query); - if (!cancelMove && !this.eventBus.before("cursorchange", suggestion, datasetName)) { - this.menu.setCursor($candidate); - if (data) { - if (typeof data.val === "string") { - this.input.setInputValue(data.val); - } - } else { - this.input.resetInputValue(); - this._updateHint(); - } - this.eventBus.trigger("cursorchange", suggestion, datasetName); - return true; - } - return false; - }, - destroy: function destroy() { - this.input.destroy(); - this.menu.destroy(); - } - }); - return Typeahead; - function c(ctx) { - var methods = [].slice.call(arguments, 1); - return function() { - var args = [].slice.call(arguments); - _.each(methods, function(method) { - return ctx[method].apply(ctx, args); - }); - }; - } - }(); - (function() { - "use strict"; - var old, keys, methods; - old = $.fn.typeahead; - keys = { - www: "tt-www", - attrs: "tt-attrs", - typeahead: "tt-typeahead" - }; - methods = { - initialize: function initialize(o, datasets) { - var www; - datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1); - o = o || {}; - www = WWW(o.classNames); - return this.each(attach); - function attach() { - var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, status, typeahead, MenuConstructor; - _.each(datasets, function(d) { - d.highlight = !!o.highlight; - }); - $input = $(this); - $wrapper = $(www.html.wrapper); - $hint = $elOrNull(o.hint); - $menu = $elOrNull(o.menu); - defaultHint = o.hint !== false && !$hint; - defaultMenu = o.menu !== false && !$menu; - defaultHint && ($hint = buildHintFromInput($input, www)); - defaultMenu && ($menu = $(www.html.menu).css(www.css.menu)); - $hint && $hint.val(""); - $input = prepInput($input, www); - if (defaultHint || defaultMenu) { - $wrapper.css(www.css.wrapper); - $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint); - $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null); - } - MenuConstructor = defaultMenu ? DefaultMenu : Menu; - eventBus = new EventBus({ - el: $input - }); - input = new Input({ - hint: $hint, - input: $input, - menu: $menu - }, www); - menu = new MenuConstructor({ - node: $menu, - datasets: datasets - }, www); - status = new Status({ - $input: $input, - menu: menu - }); - typeahead = new Typeahead({ - input: input, - menu: menu, - eventBus: eventBus, - minLength: o.minLength, - autoselect: o.autoselect - }, www); - $input.data(keys.www, www); - $input.data(keys.typeahead, typeahead); - } - }, - isEnabled: function isEnabled() { - var enabled; - ttEach(this.first(), function(t) { - enabled = t.isEnabled(); - }); - return enabled; - }, - enable: function enable() { - ttEach(this, function(t) { - t.enable(); - }); - return this; - }, - disable: function disable() { - ttEach(this, function(t) { - t.disable(); - }); - return this; - }, - isActive: function isActive() { - var active; - ttEach(this.first(), function(t) { - active = t.isActive(); - }); - return active; - }, - activate: function activate() { - ttEach(this, function(t) { - t.activate(); - }); - return this; - }, - deactivate: function deactivate() { - ttEach(this, function(t) { - t.deactivate(); - }); - return this; - }, - isOpen: function isOpen() { - var open; - ttEach(this.first(), function(t) { - open = t.isOpen(); - }); - return open; - }, - open: function open() { - ttEach(this, function(t) { - t.open(); - }); - return this; - }, - close: function close() { - ttEach(this, function(t) { - t.close(); - }); - return this; - }, - select: function select(el) { - var success = false, $el = $(el); - ttEach(this.first(), function(t) { - success = t.select($el); - }); - return success; - }, - autocomplete: function autocomplete(el) { - var success = false, $el = $(el); - ttEach(this.first(), function(t) { - success = t.autocomplete($el); - }); - return success; - }, - moveCursor: function moveCursoe(delta) { - var success = false; - ttEach(this.first(), function(t) { - success = t.moveCursor(delta); - }); - return success; - }, - val: function val(newVal) { - var query; - if (!arguments.length) { - ttEach(this.first(), function(t) { - query = t.getVal(); - }); - return query; - } else { - ttEach(this, function(t) { - t.setVal(_.toStr(newVal)); - }); - return this; - } - }, - destroy: function destroy() { - ttEach(this, function(typeahead, $input) { - revert($input); - typeahead.destroy(); - }); - return this; - } - }; - $.fn.typeahead = function(method) { - if (methods[method]) { - return methods[method].apply(this, [].slice.call(arguments, 1)); - } else { - return methods.initialize.apply(this, arguments); - } - }; - $.fn.typeahead.noConflict = function noConflict() { - $.fn.typeahead = old; - return this; - }; - function ttEach($els, fn) { - $els.each(function() { - var $input = $(this), typeahead; - (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input); - }); - } - function buildHintFromInput($input, www) { - return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop({ - readonly: true, - required: false - }).removeAttr("id name placeholder").removeClass("required").attr({ - spellcheck: "false", - tabindex: -1 - }); - } - function prepInput($input, www) { - $input.data(keys.attrs, { - dir: $input.attr("dir"), - autocomplete: $input.attr("autocomplete"), - spellcheck: $input.attr("spellcheck"), - style: $input.attr("style") - }); - $input.addClass(www.classes.input).attr({ - spellcheck: false - }); - try { - !$input.attr("dir") && $input.attr("dir", "auto"); - } catch (e) {} - return $input; - } - function getBackgroundStyles($el) { - return { - backgroundAttachment: $el.css("background-attachment"), - backgroundClip: $el.css("background-clip"), - backgroundColor: $el.css("background-color"), - backgroundImage: $el.css("background-image"), - backgroundOrigin: $el.css("background-origin"), - backgroundPosition: $el.css("background-position"), - backgroundRepeat: $el.css("background-repeat"), - backgroundSize: $el.css("background-size") - }; - } - function revert($input) { - var www, $wrapper; - www = $input.data(keys.www); - $wrapper = $input.parent().filter(www.selectors.wrapper); - _.each($input.data(keys.attrs), function(val, key) { - _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val); - }); - $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input); - if ($wrapper.length) { - $input.detach().insertAfter($wrapper); - $wrapper.remove(); - } - } - function $elOrNull(obj) { - var isValid, $el; - isValid = _.isJQuery(obj) || _.isElement(obj); - $el = isValid ? $(obj).first() : []; - return $el.length ? $el : null; - } - })(); -}); \ No newline at end of file diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/search.json b/docs/docsets/Workflow.docset/Contents/Resources/Documents/search.json deleted file mode 100644 index 1b9129b0a..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/search.json +++ /dev/null @@ -1 +0,0 @@ -{"Protocols/StoryboardLoadable.html#/s:13WorkflowUIKit18StoryboardLoadableP12storyboardIdSSvpZ":{"name":"storyboardId","abstract":"

Identifier used to retrieve the UIViewController from storyboard.

","parent_name":"StoryboardLoadable"},"Protocols/StoryboardLoadable.html#/s:13WorkflowUIKit18StoryboardLoadableP10storyboardSo12UIStoryboardCvpZ":{"name":"storyboard","abstract":"

Storyboard used to retrieve the UIViewController.

","parent_name":"StoryboardLoadable"},"Protocols/StoryboardLoadable.html#/s:13WorkflowUIKit18StoryboardLoadableP5coder4withxSgSo7NSCoderC_0A5InputQztcfc":{"name":"init(coder:with:)","abstract":"

Creates the specified view controller from the storyboard and initializes it using your custom initialization code.

","parent_name":"StoryboardLoadable"},"Protocols/OrchestrationResponder.html#/s:8Workflow22OrchestrationResponderP6launch2toyAA10LinkedListC4NodeCyAA01_A4ItemC_AKG_tF":{"name":"launch(to:)","abstract":"

Respond to the Workflow launching.

","parent_name":"OrchestrationResponder"},"Protocols/OrchestrationResponder.html#/s:8Workflow22OrchestrationResponderP7proceed2to4fromyAA10LinkedListC4NodeCyAA01_A4ItemC_ALG_AMtF":{"name":"proceed(to:from:)","abstract":"

Respond to the Workflow proceeding.

","parent_name":"OrchestrationResponder"},"Protocols/OrchestrationResponder.html#/s:8Workflow22OrchestrationResponderP6backUp4from2toyAA10LinkedListC4NodeCyAA01_A4ItemC_ALG_AMtF":{"name":"backUp(from:to:)","abstract":"

Respond to the Workflow backing up.

","parent_name":"OrchestrationResponder"},"Protocols/OrchestrationResponder.html#/s:8Workflow22OrchestrationResponderP7abandon_8onFinishyAA03AnyA0C_yycSgtF":{"name":"abandon(_:onFinish:)","abstract":"

Respond to the Workflow getting abandoned.

","parent_name":"OrchestrationResponder"},"Protocols/OrchestrationResponder.html#/s:8Workflow22OrchestrationResponderP8complete_10passedArgs8onFinishyAA03AnyA0C_AH06PassedF0OyAJcSgtF":{"name":"complete(_:passedArgs:onFinish:)","abstract":"

Respond to the Workflow completing.

","parent_name":"OrchestrationResponder"},"Protocols/FlowRepresentable.html#/s:8Workflow17FlowRepresentableP0A5InputQa":{"name":"WorkflowInput","abstract":"

The type of data coming into the FlowRepresentable; defaulted to Never; Nevermeans the FlowRepresentable will ignore data passed in from the Workflow.

","parent_name":"FlowRepresentable"},"Protocols/FlowRepresentable.html#/s:8Workflow17FlowRepresentableP0A6OutputQa":{"name":"WorkflowOutput","abstract":"

The type of data passed forward from the FlowRepresentable; defaulted to Never; Never means data will not be passed forward.

","parent_name":"FlowRepresentable"},"Protocols/FlowRepresentable.html#/s:8Workflow17FlowRepresentableP16_workflowPointerAA03AnybC0CSgvp":{"name":"_workflowPointer","abstract":"

A pointer to the AnyFlowRepresentable that erases this FlowRepresentable; will automatically be set.

","parent_name":"FlowRepresentable"},"Protocols/FlowRepresentable.html#/s:8Workflow17FlowRepresentablePxycfc":{"name":"init()","abstract":"

Creates a FlowRepresentable.

","parent_name":"FlowRepresentable"},"Protocols/FlowRepresentable.html#/s:8Workflow17FlowRepresentableP4withx0A5InputQz_tcfc":{"name":"init(with:)","abstract":"

Creates a FlowRepresentable with the specified WorkflowInput.

","parent_name":"FlowRepresentable"},"Protocols/FlowRepresentable.html#/s:8Workflow17FlowRepresentableP10shouldLoadSbyF":{"name":"shouldLoad()","abstract":"

Returns a Boolean indicating the Workflow should load the FlowRepresentable; defaults to true.

","parent_name":"FlowRepresentable"},"Protocols/FlowRepresentable.html#/s:8Workflow17FlowRepresentablePAAE8workflowAA03AnyA0CSgvp":{"name":"workflow","abstract":"

Access to the AnyWorkflow controlling the FlowRepresentable.

","parent_name":"FlowRepresentable"},"Protocols/FlowRepresentable.html#/s:8Workflow17FlowRepresentablePAAE09proceedInA0yy0A6OutputQzF":{"name":"proceedInWorkflow(_:)","abstract":"

Moves forward while passing arguments forward in the Workflow; if at the end, calls the onFinish closure used when launching the workflow.

","parent_name":"FlowRepresentable"},"Protocols/FlowRepresentable.html#/s:8Workflow17FlowRepresentablePAAE08backUpInA0yyKF":{"name":"backUpInWorkflow()","abstract":"

Backs up in the Workflow.

","parent_name":"FlowRepresentable"},"Protocols/FlowRepresentable.html#/s:8Workflow17FlowRepresentablePAAs5NeverO0A6OutputRtzrlE09proceedInA0yyF":{"name":"proceedInWorkflow()","abstract":"

Moves forward in the Workflow; if at the end, calls the onFinish closure used when launching the workflow.

","parent_name":"FlowRepresentable"},"Protocols/FlowRepresentable.html#/s:8Workflow17FlowRepresentableP0A5UIKitSo16UIViewControllerCRbzrlE07abandonA08animated8onFinishySb_yycSgtF":{"name":"abandonWorkflow(animated:onFinish:)","abstract":"

Called when the current workflow should be terminated, and the app should return to the point before the workflow was launched

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

A component in a Workflow; should be independent of the workflow context.

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

A type capable of responding to Workflow actions.

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

A protocol indicating this a FlowRepresentable that should be loaded from a storyboard.

"},"Extensions/UIViewController.html#/s:So16UIViewControllerC13WorkflowUIKitE10launchInto_4args15withLaunchStyle8onFinishy0C0AHCyxG_ypSgAH0iJ0CACE16PresentationTypeOyAH03AnyC0C10PassedArgsOcSgtAH17FlowRepresentableRzlF":{"name":"launchInto(_:args:withLaunchStyle:onFinish:)","abstract":"

When using UIKit this is how you launch a workflow

","parent_name":"UIViewController"},"Extensions/UIViewController.html#/s:So16UIViewControllerC13WorkflowUIKitE10launchInto_15withLaunchStyle8onFinishy0C0AGCyxG_AG0hI0CACE16PresentationTypeOyAG03AnyC0C10PassedArgsOcSgtAG17FlowRepresentableRzlF":{"name":"launchInto(_:withLaunchStyle:onFinish:)","abstract":"

When using UIKit this is how you launch a workflow

","parent_name":"UIViewController"},"Extensions/UIViewController.html":{"name":"UIViewController"},"Enums/WorkflowError.html#/s:8Workflow0A5ErrorO14failedToBackUpyA2CmF":{"name":"failedToBackUp","abstract":"

An error indicating workflow could not back up.

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

Describes errors in a Workflow.

"},"Classes/UIKitPresenter.html#/s:13WorkflowUIKit0B9PresenterC_11launchStyleACSo16UIViewControllerC_0A006LaunchE0CAAE16PresentationTypeOtcfc":{"name":"init(_:launchStyle:)","abstract":"

Creates a UIKitPresenter that can respond to a Workflow‘s actions.

","parent_name":"UIKitPresenter"},"Classes/UIKitPresenter.html#/s:13WorkflowUIKit0B9PresenterC6launch2toy0A010LinkedListC4NodeCyAF01_A4ItemC_ALG_tF":{"name":"launch(to:)","abstract":"

Launches a FlowRepresentable that is also a UIViewController.

","parent_name":"UIKitPresenter"},"Classes/UIKitPresenter.html#/s:13WorkflowUIKit0B9PresenterC7proceed2to4fromy0A010LinkedListC4NodeCyAG01_A4ItemC_AMG_ANtF":{"name":"proceed(to:from:)","abstract":"

Proceeds in the Workflow by presenting the next FlowRepresentable that is also a UIViewController.

","parent_name":"UIKitPresenter"},"Classes/UIKitPresenter.html#/s:13WorkflowUIKit0B9PresenterC6backUp4from2toy0A010LinkedListC4NodeCyAG01_A4ItemC_AMG_ANtF":{"name":"backUp(from:to:)","abstract":"

Back up in the Workflow by dismissing or popping the FlowRepresentable that is also a UIViewController.

","parent_name":"UIKitPresenter"},"Classes/UIKitPresenter.html#/s:13WorkflowUIKit0B9PresenterC7abandon_8onFinishy0A003AnyA0C_yycSgtF":{"name":"abandon(_:onFinish:)","abstract":"

Abandons the Workflow by dismissing all UIViewController‘s currently displayed by this presenter.

","parent_name":"UIKitPresenter"},"Classes/UIKitPresenter.html#/s:13WorkflowUIKit0B9PresenterC8complete_10passedArgs8onFinishy0A003AnyA0C_AI06PassedF0OyAKcSgtF":{"name":"complete(_:passedArgs:onFinish:)","abstract":"

Completes the workflow, making the callback at the appropriate time for UIKit.

","parent_name":"UIKitPresenter"},"Classes/AnyWorkflow/PassedArgs.html#/s:8Workflow03AnyA0C10PassedArgsO4noneyA2EmF":{"name":"none","abstract":"

No arguments are passed forward.

","parent_name":"PassedArgs"},"Classes/AnyWorkflow/PassedArgs.html#/s:8Workflow03AnyA0C10PassedArgsO4argsyAEypSgcAEmF":{"name":"args(_:)","abstract":"

The type erased value passed forward.

","parent_name":"PassedArgs"},"Classes/AnyWorkflow/PassedArgs.html#/s:8Workflow03AnyA0C10PassedArgsO07extractD012defaultValueypSgAH_tF":{"name":"extractArgs(defaultValue:)","abstract":"

Performs a coalescing operation, returning the type erased value of a PassedArgs instance or a default value.

","parent_name":"PassedArgs"},"Classes/AnyWorkflow/Element.html":{"name":"Element","abstract":"

The LinkedList.Node type of a Workflow.

","parent_name":"AnyWorkflow"},"Classes/AnyWorkflow.html#/s:8Workflow03AnyA0C22orchestrationResponderAA013OrchestrationD0_pSgvp":{"name":"orchestrationResponder","abstract":"

The OrchestrationResponder of the wrapped Workflow.

","parent_name":"AnyWorkflow"},"Classes/AnyWorkflow.html#/s:8Workflow03AnyA0C5countSivp":{"name":"count","abstract":"

The count of the wrapped Workflow.

","parent_name":"AnyWorkflow"},"Classes/AnyWorkflow.html#/s:8Workflow03AnyA0CyAc2ACyxGcAA17FlowRepresentableRzlufc":{"name":"init(_:)","abstract":"

Creates a type erased Workflow.

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

A type that represents either a type erased value or no value.

","parent_name":"AnyWorkflow"},"Classes/AnyWorkflow.html#/s:8Workflow03AnyA0C0A5UIKitE7abandon8animated8onFinishySb_yycSgtF":{"name":"abandon(animated:onFinish:)","abstract":"

Called when the workflow should be terminated, and the app should return to the point before the workflow was launched.

","parent_name":"AnyWorkflow"},"Classes/AnyFlowRepresentable.html#/s:8Workflow20AnyFlowRepresentableC18underlyingInstanceypvp":{"name":"underlyingInstance","abstract":"

Erased instance that AnyFlowRepresentable wrapped.

","parent_name":"AnyFlowRepresentable"},"Classes/AnyFlowRepresentable.html#/s:8Workflow20AnyFlowRepresentableC_4argsACxm_AA0bA0C10PassedArgsOtcAA0cD0Rzlufc":{"name":"init(_:args:)","abstract":"

Creates an erased FlowRepresentable by using its initializer

","parent_name":"AnyFlowRepresentable"},"Classes/Workflow.html#/s:8WorkflowAACyAByxGAA10LinkedListC4NodeCyAA01_A4ItemC_AIGSgcfc":{"name":"init(_:)","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC14withoutCopyingAByxGAA10LinkedListC4NodeCyAA01_A4ItemC_AJGSg_tcfc":{"name":"init(withoutCopying:)","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC22orchestrationResponderAA013OrchestrationC0_pSgvp":{"name":"orchestrationResponder","abstract":"

The OrchestartionResponder the Workflow will send actions to.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAACyAByxGAA25FlowRepresentableMetadataCcfc":{"name":"init(_:)","abstract":"

Creates a Workflow with a WorkflowItem that has metadata, but no instance.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC6appendyyAA25FlowRepresentableMetadataCF":{"name":"append(_:)","abstract":"

Appends a WorkflowItem that has metadata, but no instance.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC6launch26withOrchestrationResponder0B5Style8onFinishAA10LinkedListC4NodeCyAA01_A4ItemC_ALGSgAA0dE0_p_AA06LaunchF0CyAA03AnyA0C10PassedArgsOcSgtF":{"name":"launch(withOrchestrationResponder:launchStyle:onFinish:)","abstract":"

Launches the Workflow.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC6launch26withOrchestrationResponder4args0C11LaunchStyle8onFinishAA10LinkedListC4NodeCyAA01_A4ItemC_AMGSgAA0dE0_p_ypSgAA0gH0CyAA03AnyA0C10PassedArgsOcSgtF":{"name":"launch(withOrchestrationResponder:args:withLaunchStyle:onFinish:)","abstract":"

Launches the Workflow.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC6launch26withOrchestrationResponder10passedArgs0B5Style8onFinishAA10LinkedListC4NodeCyAA01_A4ItemC_AMGSgAA0dE0_p_AA03AnyA0C06PassedG0OAA06LaunchH0CyATcSgtF":{"name":"launch(withOrchestrationResponder:passedArgs:launchStyle:onFinish:)","abstract":"

Launches the Workflow.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC_11launchStyle15flowPersistenceAByxGxm_AA06LaunchC0CAA04FlowE0CyXAtcfc":{"name":"init(_:launchStyle:flowPersistence:)","abstract":"

Creates a Workflow with a FlowRepresentable.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC_11launchStyle15flowPersistenceAByxGxm_AA06LaunchC0CAA04FlowE0C0A5InputQzctcfc":{"name":"init(_:launchStyle:flowPersistence:)","abstract":"

Creates a Workflow with a FlowRepresentable.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC_11launchStyle15flowPersistenceAByxGxm_AA06LaunchC0CAA04FlowE0Cyctcs5NeverO0A5InputRtzrlufc":{"name":"init(_:launchStyle:flowPersistence:)","abstract":"

Creates a Workflow with a FlowRepresentable.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC_11launchStyle15flowPersistenceAByxGxm_AA06LaunchC0CAA04FlowE0CAA03AnyA0C10PassedArgsOctcAM0A5InputRtzrlufc":{"name":"init(_:launchStyle:flowPersistence:)","abstract":"

Creates a Workflow with a FlowRepresentable.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC11thenProceed4with11launchStyle15flowPersistenceAByqd__Gqd__m_AA06LaunchF0CAA04FlowH0CyXAtAA0J13RepresentableRd__0A5InputQyd__0A6OutputRtzlF":{"name":"thenProceed(with:launchStyle:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC11thenProceed4with11launchStyle15flowPersistenceAByqd__Gqd__m_AA06LaunchF0CAA04FlowH0C0A6OutputQzctAA0J13RepresentableRd__0A5InputQyd__AMRSlF":{"name":"thenProceed(with:launchStyle:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC11thenProceed4with11launchStyle15flowPersistenceAByqd__Gqd__m_AA06LaunchF0CAA04FlowH0CyXAtAA0J13RepresentableRd__s5NeverO0A5InputRtd__lF":{"name":"thenProceed(with:launchStyle:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC11thenProceed4with11launchStyle15flowPersistenceAByqd__Gqd__m_AA06LaunchF0CAA04FlowH0CyXAtAA0J13RepresentableRd__AA03AnyA0C10PassedArgsO0A5InputRtd__lF":{"name":"thenProceed(with:launchStyle:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC0A5UIKitE_16presentationType15flowPersistenceAByxGxm_AA11LaunchStyleCACE012PresentationD0OAA04FlowF0CyXAtcfc":{"name":"init(_:presentationType:flowPersistence:)","abstract":"

Creates a Workflow with a FlowRepresentable.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC0A5UIKitE_16presentationType15flowPersistenceAByxGxm_AA11LaunchStyleCACE012PresentationD0OAA04FlowF0C0A5InputQzctcfc":{"name":"init(_:presentationType:flowPersistence:)","abstract":"

Creates a Workflow with a FlowRepresentable.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC0A5UIKitE_16presentationType15flowPersistenceAByxGxm_AA11LaunchStyleCACE012PresentationD0OAA04FlowF0CyXAtcs5NeverO0A5InputRtzrlufc":{"name":"init(_:presentationType:flowPersistence:)","abstract":"

Creates a Workflow with a FlowRepresentable.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC0A5UIKitE_16presentationType15flowPersistenceAByxGxm_AA11LaunchStyleCACE012PresentationD0OAA04FlowF0CyXAtcAA03AnyA0C10PassedArgsO0A5InputRtzrlufc":{"name":"init(_:presentationType:flowPersistence:)","abstract":"

Creates a Workflow with a FlowRepresentable.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC0A5UIKitE7abandon8animated8onFinishySb_yycSgtF":{"name":"abandon(animated:onFinish:)","abstract":"

Called when the workflow should be terminated, and the app should return to the point before the workflow was launched.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC0A5UIKitE11thenPresent_16presentationType15flowPersistenceAByqd__Gqd__m_AA11LaunchStyleCACE012PresentationF0OAA04FlowH0CyXAtAA0L13RepresentableRd__0A5InputQyd__0A6OutputRtzlF":{"name":"thenPresent(_:presentationType:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC0A5UIKitE11thenPresent_16presentationType15flowPersistenceAByqd__Gqd__m_AA11LaunchStyleCACE012PresentationF0OAA04FlowH0C0A6OutputQzctAA0L13RepresentableRd__0A5InputQyd__AORSlF":{"name":"thenPresent(_:presentationType:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC0A5UIKitE11thenPresent_16presentationType15flowPersistenceAByqd__Gqd__m_AA11LaunchStyleCACE012PresentationF0OAA04FlowH0CyXAtAA0L13RepresentableRd__s5NeverO0A5InputRtd__lF":{"name":"thenPresent(_:presentationType:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC0A5UIKitE11thenPresent_16presentationType15flowPersistenceAByqd__Gqd__m_AA11LaunchStyleCACE012PresentationF0OAA04FlowH0CyXAtAA0L13RepresentableRd__AA03AnyA0C10PassedArgsO0A5InputRtd__lF":{"name":"thenPresent(_:presentationType:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAACAAs5NeverO0A6OutputRtzrlE11thenProceed4with11launchStyle15flowPersistenceAByqd__Gqd__m_AA06LaunchH0CAA04FlowJ0CyXAtAA0L13RepresentableRd__AD0A5InputRtd__lF":{"name":"thenProceed(with:launchStyle:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAACAAs5NeverO0A6OutputRtzrlE11thenProceed4with11launchStyle15flowPersistenceAByqd__Gqd__m_AA06LaunchH0CAA04FlowJ0CyXAtAA0L13RepresentableRd__AA03AnyA0C10PassedArgsO0A5InputRtd__lF":{"name":"thenProceed(with:launchStyle:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC0A5UIKits5NeverO0A6OutputRtzrlE11thenPresent_16presentationType15flowPersistenceAByqd__Gqd__m_AA11LaunchStyleCACE012PresentationH0OAA04FlowJ0CyXAtAA0N13RepresentableRd__AE0A5InputRtd__lF":{"name":"thenPresent(_:presentationType:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/Workflow.html#/s:8WorkflowAAC0A5UIKits5NeverO0A6OutputRtzrlE11thenPresent_16presentationType15flowPersistenceAByqd__Gqd__m_AA11LaunchStyleCACE012PresentationH0OAA04FlowJ0CyXAtAA0N13RepresentableRd__AA03AnyA0C10PassedArgsO0A5InputRtd__lF":{"name":"thenPresent(_:presentationType:flowPersistence:)","abstract":"

Adds an item to the workflow; enforces the FlowRepresentable.WorkflowOutput of the previous item matches the FlowRepresentable.WorkflowInput of this item.

","parent_name":"Workflow"},"Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO05ModaleC0O7defaultyA2HmF":{"name":"default","abstract":"

The default presentation style chosen by the system.

","parent_name":"ModalPresentationStyle"},"Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO05ModaleC0O10fullScreenyA2HmF":{"name":"fullScreen","abstract":"

A presentation style in which the presented view covers the screen.

","parent_name":"ModalPresentationStyle"},"Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO05ModaleC0O9pageSheetyA2HmF":{"name":"pageSheet","abstract":"

A presentation style that partially covers the underlying content.

","parent_name":"ModalPresentationStyle"},"Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO05ModaleC0O9formSheetyA2HmF":{"name":"formSheet","abstract":"

A presentation style that displays the content centered in the screen.

","parent_name":"ModalPresentationStyle"},"Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO05ModaleC0O14currentContextyA2HmF":{"name":"currentContext","abstract":"

A presentation style where the content is displayed over another view controller’s content.

","parent_name":"ModalPresentationStyle"},"Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO05ModaleC0O6customyA2HmF":{"name":"custom","abstract":"

A custom view presentation style that is managed by a custom presentation controller and one or more custom animator objects.

","parent_name":"ModalPresentationStyle"},"Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO05ModaleC0O14overFullScreenyA2HmF":{"name":"overFullScreen","abstract":"

A view presentation style in which the presented view covers the screen.

","parent_name":"ModalPresentationStyle"},"Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO05ModaleC0O18overCurrentContextyA2HmF":{"name":"overCurrentContext","abstract":"

A presentation style where the content is displayed over another view controller’s content.

","parent_name":"ModalPresentationStyle"},"Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO05ModaleC0O7popoveryA2HmF":{"name":"popover","abstract":"

A presentation style where the content is displayed in a popover view.

","parent_name":"ModalPresentationStyle"},"Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO05ModaleC0O9automaticyA2HmF":{"name":"automatic","abstract":"

The default presentation style chosen by the system.

","parent_name":"ModalPresentationStyle"},"Classes/LaunchStyle/PresentationType.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO7defaultyA2FmF":{"name":"default","abstract":"

Indicates a FlowRepresentable can be launched contextually.

","parent_name":"PresentationType"},"Classes/LaunchStyle/PresentationType.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO15navigationStackyA2FmF":{"name":"navigationStack","abstract":"

Indicates a FlowRepresentable should be launched in a navigation stack of some kind (For example with UIKit this would use a UINavigationController).

","parent_name":"PresentationType"},"Classes/LaunchStyle/PresentationType.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO5modalyA2F05ModaleC0OcAFmF":{"name":"modal(_:)","abstract":"

Indicates a FlowRepresentable should be launched modally.

","parent_name":"PresentationType"},"Classes/LaunchStyle/PresentationType.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO5modalAFvpZ":{"name":"modal","abstract":"

An alias for PresentationType.modal(.default).

","parent_name":"PresentationType"},"Classes/LaunchStyle/PresentationType.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO8rawValueAFSgAC_tcfc":{"name":"init(rawValue:)","abstract":"

Creates a PresentationType from a LaunchStyle, or returns nil if no mapping exists.

","parent_name":"PresentationType"},"Classes/LaunchStyle/PresentationType.html#/s:8Workflow11LaunchStyleC0A5UIKitE16PresentationTypeO8rawValueACvp":{"name":"rawValue","abstract":"

The corresponding LaunchStyle for this PresentationType

","parent_name":"PresentationType"},"Classes/LaunchStyle/PresentationType/ModalPresentationStyle.html":{"name":"ModalPresentationStyle","abstract":"

Modal presentation styles available when presenting view controllers.

","parent_name":"PresentationType"},"Classes/LaunchStyle.html#/s:8Workflow11LaunchStyleC7defaultACvpZ":{"name":"default","abstract":"

The launch style used if you do not specify one; behavior is dependent on responder.

","parent_name":"LaunchStyle"},"Classes/LaunchStyle.html#/s:8Workflow11LaunchStyleC3newACvpZ":{"name":"new","abstract":"

A new instance of LaunchStyle; only use for extending cases of LaunchStyle.

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

A type indicating how a FlowRepresentable should be presented.

","parent_name":"LaunchStyle"},"Classes/FlowRepresentableMetadata.html#/s:8Workflow25FlowRepresentableMetadataC11launchStyleAA06LaunchF0Cvp":{"name":"launchStyle","abstract":"

Preferred LaunchStyle of the associated FlowRepresentable.

","parent_name":"FlowRepresentableMetadata"},"Classes/FlowRepresentableMetadata.html#/s:8Workflow25FlowRepresentableMetadataC11persistenceAA0B11PersistenceCSgvp":{"name":"persistence","abstract":"

Preferred FlowPersistence of the associated FlowRepresentable; set when FlowRepresentableMetadata instantiates an instance.

","parent_name":"FlowRepresentableMetadata"},"Classes/FlowRepresentableMetadata.html#/s:8Workflow25FlowRepresentableMetadataC_11launchStyle15flowPersistenceACxm_AA06LaunchF0CAA0bH0CAA03AnyA0C10PassedArgsOctcAA0bC0Rzlufc":{"name":"init(_:launchStyle:flowPersistence:)","abstract":"

Creates an instance that holds onto metadata associated with the FlowRepresentable.

","parent_name":"FlowRepresentableMetadata"},"Classes/FlowPersistence.html#/s:8Workflow15FlowPersistenceC7defaultACvpZ":{"name":"default","abstract":"

Indicates a FlowRepresentable in a Workflow should persist based on its shouldLoad function.

","parent_name":"FlowPersistence"},"Classes/FlowPersistence.html#/s:8Workflow15FlowPersistenceC18persistWhenSkippedACvpZ":{"name":"persistWhenSkipped","abstract":"

Indicates a FlowRepresentable in a Workflow whose shouldLoad function returns false, should still be persisted in the workflow.

","parent_name":"FlowPersistence"},"Classes/FlowPersistence.html#/s:8Workflow15FlowPersistenceC22removedAfterProceedingACvpZ":{"name":"removedAfterProceeding","abstract":"

Indicates a FlowRepresentable in a Workflow whose shouldLoad function returns true, should be removed from the workflow after proceeding forward.

","parent_name":"FlowPersistence"},"Classes/FlowPersistence.html#/s:8Workflow15FlowPersistenceC3newACvpZ":{"name":"new","abstract":"

A new instance of FlowPersistence; only use for extending cases of FlowPersistence.

","parent_name":"FlowPersistence"},"Classes/FlowPersistence.html#/s:8Workflow15FlowPersistenceC0A5UIKitE15hiddenInitiallyACvpZ":{"name":"hiddenInitially","abstract":"

Indicates a FlowRepresentable in a Workflow whose shouldLoad function returns false, should be persisted in the workflow for backwards navigation.

","parent_name":"FlowPersistence"},"Classes/LinkedList/Node/TraversalDirection.html#/s:8Workflow10LinkedListC4NodeC18TraversalDirectionO7forwardyAGyx_qd___GAImr__lF":{"name":"forward","abstract":"

Traverse “forward” i.e. traverse by calling next.

","parent_name":"TraversalDirection"},"Classes/LinkedList/Node/TraversalDirection.html#/s:8Workflow10LinkedListC4NodeC18TraversalDirectionO8backwardyAGyx_qd___GAImr__lF":{"name":"backward","abstract":"

Traverse “backward” i.e. traverse by calling previous.

","parent_name":"TraversalDirection"},"Classes/LinkedList/Node/Value.html":{"name":"Value","abstract":"

A typealias that is equivalent to the specialized type in the LinkedList.

","parent_name":"Node"},"Classes/LinkedList/Node.html#/s:8Workflow10LinkedListC4NodeC5valueqd__vp":{"name":"value","abstract":"

The concrete value the node is holding on to.

","parent_name":"Node"},"Classes/LinkedList/Node.html#/s:8Workflow10LinkedListC4NodeC4nextAEyx_qd__GSgvp":{"name":"next","abstract":"

An optional reference to the next node in the LinkedList.

","parent_name":"Node"},"Classes/LinkedList/Node.html#/s:8Workflow10LinkedListC4NodeC8previousAEyx_qd__GSgvp":{"name":"previous","abstract":"

An optional reference to the previous node in the LinkedList.

","parent_name":"Node"},"Classes/LinkedList/Node/TraversalDirection.html":{"name":"TraversalDirection","abstract":"

An enumeration indicating whether you’d like to traverse forwards or backwards through the LinkedList.

","parent_name":"Node"},"Classes/LinkedList/Node.html#/s:8Workflow10LinkedListC4NodeC8traverseyAEyx_qd__GSgSiF":{"name":"traverse(_:)","abstract":"

A method to move N spaces forwards or backwards through the nodes.

","parent_name":"Node"},"Classes/LinkedList/Node.html#/s:8Workflow10LinkedListC4NodeC8traverse9direction5untilAEyx_qd__GSgAE18TraversalDirectionOyx_qd___G_SbAIXEtF":{"name":"traverse(direction:until:)","abstract":"

A method to move forward through the nodes until a precondition is met.

","parent_name":"Node"},"Classes/LinkedList/Node.html#/s:8Workflow10LinkedListC4NodeC13traverseToEndAEyx_qd__GyF":{"name":"traverseToEnd()","abstract":"

A method to move forward through the nodes until there is no next.

","parent_name":"Node"},"Classes/LinkedList/Node.html#/s:8Workflow10LinkedListC4NodeC19traverseToBeginningAEyx_qd__GyF":{"name":"traverseToBeginning()","abstract":"

A method to move backwards through the nodes until there is no previous.

","parent_name":"Node"},"Classes/LinkedList/Node.html#/s:8Workflow10LinkedListC4NodeC8positionSivp":{"name":"position","abstract":"

A nodes position in the LinkedList

","parent_name":"Node"},"Classes/LinkedList/Node.html#/s:8Workflow10LinkedListC4NodeC4copyAEyx_qd__GyF":{"name":"copy()","abstract":"

Creates an exact replica of the node, including the next and previous values, this essentially deep copies the entire LinkedList.

","parent_name":"Node"},"Classes/LinkedList/Element.html":{"name":"Element","parent_name":"LinkedList"},"Classes/LinkedList/Iterator.html":{"name":"Iterator","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC10startIndexSivp":{"name":"startIndex","abstract":"

The beginning index of the linked list (0 indexed).

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC8endIndexSivp":{"name":"endIndex","abstract":"

The last index in the list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC11descriptionSSvp":{"name":"description","abstract":"

A textual representation of the linked list and its elements.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC7isEmptySbvp":{"name":"isEmpty","abstract":"

A boolean to indicate whether the linked list contains any values.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC5countSivp":{"name":"count","abstract":"

The number of elements in the linked list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC5firstAC4NodeCyx_xGSgvp":{"name":"first","abstract":"

The first node in the linked list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC4lastAC4NodeCyx_xGSgvp":{"name":"last","abstract":"

The last node in the linked list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListCyACyxGAC4NodeCyx_xGSgcfc":{"name":"init(_:)","abstract":"

Creates a copy of a LinkedList by providing the first node and copying it.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC14withoutCopyingACyxGAC4NodeCyx_xGSg_tcfc":{"name":"init(withoutCopying:)","abstract":"

Creates a LinkedList by providing the first node in the list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC12makeIteratorAC0bcE0Vyx_AC4NodeCyx_xGGyF":{"name":"makeIterator()","abstract":"

Returns an iterator over the elements of this sequence.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC4last5whereAC4NodeCyx_xGSgSbAHKXE_tKF":{"name":"last(where:)","abstract":"

Returns the last element of the sequence that satisfies the given","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC6appendyyxF":{"name":"append(_:)","abstract":"

Appends a new node to the end of the linked list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC6append10contentsOfyqd___t7ElementQyd__RszSTRd__lF":{"name":"append(contentsOf:)","abstract":"

Appends a collection of nodes to the end of the linked list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC6insert_7atIndexyx_SitF":{"name":"insert(_:atIndex:)","abstract":"

Inserts a new node at a specified location.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC6insert10contentsOf2atyqd___Sit7ElementQyd__RszSlRd__lF":{"name":"insert(contentsOf:at:)","abstract":"

Inserts a sequence of new nodes at a specified location.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC6remove2atySi_tF":{"name":"remove(at:)","abstract":"

Removes a node at the specified index.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC6remove5whereySbAC4NodeCyx_xGXE_tF":{"name":"remove(where:)","abstract":"

Removes a node at the specified index.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC11removeFirstyySiF":{"name":"removeFirst(_:)","abstract":"

Removes the first n nodes from the linked list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC10removeLastyySiF":{"name":"removeLast(_:)","abstract":"

Removes the last n nodes from the linked list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC7popLastxSgyF":{"name":"popLast()","abstract":"

Removes the last node from the linked list; returns the removed concrete type.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC9removeAllyyF":{"name":"removeAll()","abstract":"

Removes all nodes from the linked list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC6swapAtyySi_SitF":{"name":"swapAt(_:_:)","abstract":"

Swaps the concrete values of 2 nodes.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC7replace7atIndex8withItemySi_xtF":{"name":"replace(atIndex:withItem:)","abstract":"

Replaces the concrete value of the node at the specified index.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC7reverseyyF":{"name":"reverse()","abstract":"

Reverses the linked list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC4sort2byySbx_xtXE_tF":{"name":"sort(by:)","abstract":"

Sorts the linked list.

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

A type to hold onto elements in a LinkedList.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC8reversedACyxGyF":{"name":"reversed()","abstract":"

Returns a new version of the LinkedList with all elements reversed.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC9replacing7atIndex8withItemACyxGSi_xtF":{"name":"replacing(atIndex:withItem:)","abstract":"

Returns a new version of the linked list with a specific element replaced.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC6sorted2byACyxGSbx_xtXE_tF":{"name":"sorted(by:)","abstract":"

Returns a new, sorted version of the linked list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC9dropFirstyACyxGSiF":{"name":"dropFirst(_:)","abstract":"

Returns a new version of the linked list without the first n items.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC8dropLastyACyxGSiF":{"name":"dropLast(_:)","abstract":"

Returns a new version of the linked list without the last n items.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC4drop5whileACyxGSbxKXE_tKF":{"name":"drop(while:)","abstract":"

Returns a linked list by skipping elements while predicate returns true and returning the remaining elements.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC6prefixyACyxGSiF":{"name":"prefix(_:)","abstract":"

Returns a new version of the linked list with just the first n items.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC6prefix5whileACyxGSbxKXE_tKF":{"name":"prefix(while:)","abstract":"

Returns a linked list containing the initial elements until predicate returns false and skipping the remaining elements.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListC6suffixyACyxGSiF":{"name":"suffix(_:)","abstract":"

Returns a new version of the linked list with just the last n items.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListCAASLRzlE4sortyyF":{"name":"sort()","abstract":"

Sorts the linked list in place using a merge sort.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListCAASLRzlE6sortedACyxGyF":{"name":"sorted()","abstract":"

Returns a sorted version of the linked list.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListCAASLRzlE3maxxSgyF":{"name":"max()","abstract":"

Returns the maximum concrete value in the linked list; nil if there is none.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListCAASLRzlE3minxSgyF":{"name":"min()","abstract":"

Returns the minimum concrete value in the linked list; nil if there is none.

","parent_name":"LinkedList"},"Classes/LinkedList.html#/s:8Workflow10LinkedListCAASQRzlE8containsySbxF":{"name":"contains(_:)","abstract":"

Returns a boolean indicating whether the given value is present in the linked list.

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

A doubly linked list.

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

An extendable class that indicates how a FlowRepresentable should be persisted.

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

Data about a FlowRepresentable.

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

An extendable class that indicates how a FlowRepresentable should be launched.

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

A doubly linked list of FlowRepresentableMetadatas; used to define a process.

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

A type erased FlowRepresentable.

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

A type erased Workflow.

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

An OrchestrationResponder that interacts with UIKit.

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

A subclass of UIViewController designed for convenience. This does NOT have to be used, it simply removes some of the boilerplate that normally comes with a FlowRepresentable.

"},"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.

"}} \ No newline at end of file diff --git a/docs/docsets/Workflow.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/Workflow.docset/Contents/Resources/Documents/undocumented.json deleted file mode 100644 index 06ed86b22..000000000 --- a/docs/docsets/Workflow.docset/Contents/Resources/Documents/undocumented.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "warnings": [ - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/Workflow/LinkedList/LinkedList.swift", - "line": 19, - "symbol": "LinkedList.Index", - "symbol_kind": "source.lang.swift.decl.typealias", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/Workflow/LinkedList/LinkedList.swift", - "line": 20, - "symbol": "LinkedList.SubSequence", - "symbol_kind": "source.lang.swift.decl.typealias", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/Workflow/Models/Workflow.swift", - "line": 139, - "symbol": "Workflow._abandon()", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/Workflow/Models/_WorkflowItem.swift", - "line": 12, - "symbol": "_WorkflowItem", - "symbol_kind": "source.lang.swift.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/Workflow/Protocols/FlowRepresentable.swift", - "line": 79, - "symbol": "FlowRepresentable._factory(_:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/Workflow/Protocols/FlowRepresentable.swift", - "line": 82, - "symbol": "FlowRepresentable._factory(_:with:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/Workflow/Protocols/FlowRepresentable.swift", - "line": 101, - "symbol": "FlowRepresentable._workflowUnderlyingInstance", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/Workflow/Protocols/FlowRepresentable.swift", - "line": 111, - "symbol": "FlowRepresentable._factory(_:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/Workflow/Protocols/FlowRepresentable.swift", - "line": 114, - "symbol": "FlowRepresentable._factory(_:with:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/Workflow/TypeErased/AnyWorkflow.swift", - "line": 37, - "symbol": "AnyWorkflow._abandon()", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/Workflow/TypeErased/AnyWorkflow.swift", - "line": 46, - "symbol": "AnyWorkflow.last(where:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/WorkflowUIKit/StoryboardLoadable.swift", - "line": 65, - "symbol": "StoryboardLoadable._factory(_:with:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/WorkflowUIKit/StoryboardLoadable.swift", - "line": 81, - "symbol": "StoryboardLoadable._factory(_:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/WorkflowUIKit/UIWorkflowItem.swift", - "line": 38, - "symbol": "UIWorkflowItem.WorkflowInput", - "symbol_kind": "source.lang.swift.decl.typealias", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/WorkflowUIKit/UIWorkflowItem.swift", - "line": 39, - "symbol": "UIWorkflowItem.WorkflowOutput", - "symbol_kind": "source.lang.swift.decl.typealias", - "warning": "undocumented" - }, - { - "file": "/Users/gistr/workspaces/wwt/Workflow/Workflow/Sources/WorkflowUIKit/UIWorkflowItem.swift", - "line": 41, - "symbol": "UIWorkflowItem._workflowPointer", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - } - ], - "source_directory": "/Users/gistr/workspaces/wwt/Workflow/Workflow" -} \ No newline at end of file diff --git a/docs/docsets/Workflow.docset/Contents/Resources/docSet.dsidx b/docs/docsets/Workflow.docset/Contents/Resources/docSet.dsidx deleted file mode 100644 index bf451c809..000000000 Binary files a/docs/docsets/Workflow.docset/Contents/Resources/docSet.dsidx and /dev/null differ diff --git a/docs/docsets/Workflow.tgz b/docs/docsets/Workflow.tgz deleted file mode 100644 index 6e928fe16..000000000 Binary files a/docs/docsets/Workflow.tgz and /dev/null differ diff --git a/docs/index.html b/docs/index.html index 06bcf3d00..f937f4c28 100644 --- a/docs/index.html +++ b/docs/index.html @@ -20,7 +20,7 @@

- SwiftCurrent 3.1.3 Docs + SwiftCurrent 3.1.4 Docs (92% documented)

@@ -129,8 +129,7 @@

Build Status Pod Version -Quality Gate -Coverage

+codecov

Welcome

SwiftCurrent is a library that lets you easily manage journeys through your Swift application.

@@ -192,7 +191,7 @@

Deep Dive