From d3c99429ac18a3188695ebfb12f128a991b1f071 Mon Sep 17 00:00:00 2001 From: Brandon Titus Date: Mon, 4 Jan 2021 14:43:23 -0700 Subject: [PATCH] Add Jazzy documentation --- Gemfile | 1 + Gemfile.lock | 20 + docs/Classes.html | 417 +++ docs/Classes/CameraController.html | 1115 +++++++ docs/Classes/CameraSettings.html | 1033 +++++++ docs/Classes/EasyTipView.html | 627 ++++ docs/Classes/EasyTipView/ArrowPosition.html | 423 +++ docs/Classes/EasyTipView/Preferences.html | 507 ++++ .../EasyTipView/Preferences/Animating.html | 585 ++++ .../EasyTipView/Preferences/Drawing.html | 585 ++++ .../EasyTipView/Preferences/Positioning.html | 450 +++ docs/Classes/EditorViewController.html | 577 ++++ docs/Classes/LivePhotoLoader.html | 345 +++ docs/Enums.html | 697 +++++ docs/Enums/CameraMode.html | 563 ++++ docs/Enums/CameraMode/Group.html | 370 +++ docs/Enums/CameraMode/Quantity.html | 343 +++ docs/Enums/FilterType.html | 777 +++++ docs/Enums/ImagePreviewMode.html | 342 +++ docs/Enums/KanvasBrushType.html | 397 +++ docs/Enums/KanvasCameraMedia.html | 396 +++ docs/Enums/KanvasColorSelectionTool.html | 397 +++ docs/Enums/KanvasDashboardDismissAction.html | 370 +++ docs/Enums/KanvasDashboardOpenAction.html | 370 +++ docs/Enums/KanvasDrawingAction.html | 397 +++ docs/Enums/KanvasExportAction.html | 450 +++ docs/Enums/KanvasGIFPlaybackMode.html | 397 +++ docs/Enums/KanvasMediaType.html | 424 +++ docs/Enums/KanvasTextAlignment.html | 424 +++ docs/Enums/KanvasTextFont.html | 397 +++ docs/Extensions.html | 770 +++++ docs/Extensions/AVAsset.html | 314 ++ docs/Extensions/CGFloat.html | 368 +++ docs/Extensions/Double.html | 341 +++ docs/Extensions/Float.html | 341 +++ docs/Extensions/Int.html | 611 ++++ docs/Extensions/Int32.html | 637 ++++ docs/Extensions/MediaInfo.html | 466 +++ docs/Extensions/UICollectionView.html | 608 ++++ docs/Extensions/UIColor.html | 648 ++++ docs/Extensions/UIImage.html | 346 +++ docs/Extensions/UInt.html | 611 ++++ docs/Extensions/UInt32.html | 611 ++++ docs/Extensions/UInt64.html | 611 ++++ docs/Extensions/UInt8.html | 340 +++ docs/Protocols.html | 566 ++++ docs/Protocols/CameraControllerDelegate.html | 812 +++++ docs/Protocols/EasyTipViewDelegate.html | 315 ++ docs/Protocols/EditorControllerDelegate.html | 620 ++++ docs/Protocols/Identifiable.html | 326 ++ .../KanvasCameraAnalyticsProvider.html | 2626 +++++++++++++++++ docs/Protocols/KanvasCancelable.html | 315 ++ .../KanvasQuickBlogSelectorCoordinating.html | 396 +++ docs/Protocols/KanvasStickerLoader.html | 315 ++ docs/Protocols/StickerProvider.html | 388 +++ docs/Protocols/StickerProviderDelegate.html | 334 +++ docs/Structs.html | 515 ++++ docs/Structs/CameraFeatures.html | 814 +++++ docs/Structs/GLU.html | 431 +++ docs/Structs/KanvasCameraColors.html | 368 +++ docs/Structs/KanvasCameraFonts.html | 438 +++ .../KanvasCameraFonts/CameraPermissions.html | 317 ++ docs/Structs/KanvasCameraFonts/Drawer.html | 315 ++ docs/Structs/KanvasCameraFonts/Padding.html | 318 ++ docs/Structs/KanvasDevice.html | 342 +++ docs/Structs/MediaInfoSimple.html | 372 +++ docs/Structs/MediaInfoSimple/Source.html | 422 +++ docs/Structs/Sticker.html | 324 ++ docs/Structs/StickerType.html | 363 +++ docs/Typealiases.html | 308 ++ docs/badge.svg | 28 + docs/css/highlight.css | 200 ++ docs/css/jazzy.css | 423 +++ .../KanvasCamera.docset/Contents/Info.plist | 20 + .../Contents/Resources/Documents/Classes.html | 417 +++ .../Documents/Classes/CameraController.html | 1115 +++++++ .../Documents/Classes/CameraSettings.html | 1033 +++++++ .../Documents/Classes/EasyTipView.html | 627 ++++ .../Classes/EasyTipView/ArrowPosition.html | 423 +++ .../Classes/EasyTipView/Preferences.html | 507 ++++ .../EasyTipView/Preferences/Animating.html | 585 ++++ .../EasyTipView/Preferences/Drawing.html | 585 ++++ .../EasyTipView/Preferences/Positioning.html | 450 +++ .../Classes/EditorViewController.html | 577 ++++ .../Documents/Classes/LivePhotoLoader.html | 345 +++ .../Contents/Resources/Documents/Enums.html | 697 +++++ .../Resources/Documents/Enums/CameraMode.html | 563 ++++ .../Documents/Enums/CameraMode/Group.html | 370 +++ .../Documents/Enums/CameraMode/Quantity.html | 343 +++ .../Resources/Documents/Enums/FilterType.html | 777 +++++ .../Documents/Enums/ImagePreviewMode.html | 342 +++ .../Documents/Enums/KanvasBrushType.html | 397 +++ .../Documents/Enums/KanvasCameraMedia.html | 396 +++ .../Enums/KanvasColorSelectionTool.html | 397 +++ .../Enums/KanvasDashboardDismissAction.html | 370 +++ .../Enums/KanvasDashboardOpenAction.html | 370 +++ .../Documents/Enums/KanvasDrawingAction.html | 397 +++ .../Documents/Enums/KanvasExportAction.html | 450 +++ .../Enums/KanvasGIFPlaybackMode.html | 397 +++ .../Documents/Enums/KanvasMediaType.html | 424 +++ .../Documents/Enums/KanvasTextAlignment.html | 424 +++ .../Documents/Enums/KanvasTextFont.html | 397 +++ .../Resources/Documents/Extensions.html | 770 +++++ .../Documents/Extensions/AVAsset.html | 314 ++ .../Documents/Extensions/CGFloat.html | 368 +++ .../Documents/Extensions/Double.html | 341 +++ .../Resources/Documents/Extensions/Float.html | 341 +++ .../Resources/Documents/Extensions/Int.html | 611 ++++ .../Resources/Documents/Extensions/Int32.html | 637 ++++ .../Documents/Extensions/MediaInfo.html | 466 +++ .../Extensions/UICollectionView.html | 608 ++++ .../Documents/Extensions/UIColor.html | 648 ++++ .../Documents/Extensions/UIImage.html | 346 +++ .../Resources/Documents/Extensions/UInt.html | 611 ++++ .../Documents/Extensions/UInt32.html | 611 ++++ .../Documents/Extensions/UInt64.html | 611 ++++ .../Resources/Documents/Extensions/UInt8.html | 340 +++ .../Resources/Documents/Protocols.html | 566 ++++ .../Protocols/CameraControllerDelegate.html | 812 +++++ .../Protocols/EasyTipViewDelegate.html | 315 ++ .../Protocols/EditorControllerDelegate.html | 620 ++++ .../Documents/Protocols/Identifiable.html | 326 ++ .../KanvasCameraAnalyticsProvider.html | 2626 +++++++++++++++++ .../Documents/Protocols/KanvasCancelable.html | 315 ++ .../KanvasQuickBlogSelectorCoordinating.html | 396 +++ .../Protocols/KanvasStickerLoader.html | 315 ++ .../Documents/Protocols/StickerProvider.html | 388 +++ .../Protocols/StickerProviderDelegate.html | 334 +++ .../Contents/Resources/Documents/Structs.html | 515 ++++ .../Documents/Structs/CameraFeatures.html | 814 +++++ .../Resources/Documents/Structs/GLU.html | 431 +++ .../Documents/Structs/KanvasCameraColors.html | 368 +++ .../Documents/Structs/KanvasCameraFonts.html | 438 +++ .../KanvasCameraFonts/CameraPermissions.html | 317 ++ .../Structs/KanvasCameraFonts/Drawer.html | 315 ++ .../Structs/KanvasCameraFonts/Padding.html | 318 ++ .../Documents/Structs/KanvasDevice.html | 342 +++ .../Documents/Structs/MediaInfoSimple.html | 372 +++ .../Structs/MediaInfoSimple/Source.html | 422 +++ .../Resources/Documents/Structs/Sticker.html | 324 ++ .../Documents/Structs/StickerType.html | 363 +++ .../Resources/Documents/Typealiases.html | 308 ++ .../Contents/Resources/Documents/badge.svg | 28 + .../Resources/Documents/css/highlight.css | 200 ++ .../Resources/Documents/css/jazzy.css | 423 +++ .../Resources/Documents/img/carat.png | Bin 0 -> 274 bytes .../Contents/Resources/Documents/img/dash.png | Bin 0 -> 1338 bytes .../Contents/Resources/Documents/img/gh.png | Bin 0 -> 1571 bytes .../Resources/Documents/img/spinner.gif | Bin 0 -> 1849 bytes .../Contents/Resources/Documents/index.html | 285 ++ .../Contents/Resources/Documents/js/jazzy.js | 70 + .../Resources/Documents/js/jazzy.search.js | 70 + .../Resources/Documents/js/jquery.min.js | 2 + .../Resources/Documents/js/lunr.min.js | 6 + .../Documents/js/typeahead.jquery.js | 1694 +++++++++++ .../Contents/Resources/Documents/search.json | 1 + .../Resources/Documents/undocumented.json | 2133 +++++++++++++ .../Contents/Resources/docSet.dsidx | Bin 0 -> 147456 bytes docs/docsets/KanvasCamera.tgz | Bin 0 -> 179622 bytes docs/img/carat.png | Bin 0 -> 274 bytes docs/img/dash.png | Bin 0 -> 1338 bytes docs/img/gh.png | Bin 0 -> 1571 bytes docs/img/spinner.gif | Bin 0 -> 1849 bytes docs/index.html | 285 ++ docs/js/jazzy.js | 70 + docs/js/jazzy.search.js | 70 + docs/js/jquery.min.js | 2 + docs/js/lunr.min.js | 6 + docs/js/typeahead.jquery.js | 1694 +++++++++++ docs/search.json | 1 + docs/undocumented.json | 2014 +++++++++++++ 171 files changed, 78662 insertions(+) create mode 100644 docs/Classes.html create mode 100644 docs/Classes/CameraController.html create mode 100644 docs/Classes/CameraSettings.html create mode 100644 docs/Classes/EasyTipView.html create mode 100644 docs/Classes/EasyTipView/ArrowPosition.html create mode 100644 docs/Classes/EasyTipView/Preferences.html create mode 100644 docs/Classes/EasyTipView/Preferences/Animating.html create mode 100644 docs/Classes/EasyTipView/Preferences/Drawing.html create mode 100644 docs/Classes/EasyTipView/Preferences/Positioning.html create mode 100644 docs/Classes/EditorViewController.html create mode 100644 docs/Classes/LivePhotoLoader.html create mode 100644 docs/Enums.html create mode 100644 docs/Enums/CameraMode.html create mode 100644 docs/Enums/CameraMode/Group.html create mode 100644 docs/Enums/CameraMode/Quantity.html create mode 100644 docs/Enums/FilterType.html create mode 100644 docs/Enums/ImagePreviewMode.html create mode 100644 docs/Enums/KanvasBrushType.html create mode 100644 docs/Enums/KanvasCameraMedia.html create mode 100644 docs/Enums/KanvasColorSelectionTool.html create mode 100644 docs/Enums/KanvasDashboardDismissAction.html create mode 100644 docs/Enums/KanvasDashboardOpenAction.html create mode 100644 docs/Enums/KanvasDrawingAction.html create mode 100644 docs/Enums/KanvasExportAction.html create mode 100644 docs/Enums/KanvasGIFPlaybackMode.html create mode 100644 docs/Enums/KanvasMediaType.html create mode 100644 docs/Enums/KanvasTextAlignment.html create mode 100644 docs/Enums/KanvasTextFont.html create mode 100644 docs/Extensions.html create mode 100644 docs/Extensions/AVAsset.html create mode 100644 docs/Extensions/CGFloat.html create mode 100644 docs/Extensions/Double.html create mode 100644 docs/Extensions/Float.html create mode 100644 docs/Extensions/Int.html create mode 100644 docs/Extensions/Int32.html create mode 100644 docs/Extensions/MediaInfo.html create mode 100644 docs/Extensions/UICollectionView.html create mode 100644 docs/Extensions/UIColor.html create mode 100644 docs/Extensions/UIImage.html create mode 100644 docs/Extensions/UInt.html create mode 100644 docs/Extensions/UInt32.html create mode 100644 docs/Extensions/UInt64.html create mode 100644 docs/Extensions/UInt8.html create mode 100644 docs/Protocols.html create mode 100644 docs/Protocols/CameraControllerDelegate.html create mode 100644 docs/Protocols/EasyTipViewDelegate.html create mode 100644 docs/Protocols/EditorControllerDelegate.html create mode 100644 docs/Protocols/Identifiable.html create mode 100644 docs/Protocols/KanvasCameraAnalyticsProvider.html create mode 100644 docs/Protocols/KanvasCancelable.html create mode 100644 docs/Protocols/KanvasQuickBlogSelectorCoordinating.html create mode 100644 docs/Protocols/KanvasStickerLoader.html create mode 100644 docs/Protocols/StickerProvider.html create mode 100644 docs/Protocols/StickerProviderDelegate.html create mode 100644 docs/Structs.html create mode 100644 docs/Structs/CameraFeatures.html create mode 100644 docs/Structs/GLU.html create mode 100644 docs/Structs/KanvasCameraColors.html create mode 100644 docs/Structs/KanvasCameraFonts.html create mode 100644 docs/Structs/KanvasCameraFonts/CameraPermissions.html create mode 100644 docs/Structs/KanvasCameraFonts/Drawer.html create mode 100644 docs/Structs/KanvasCameraFonts/Padding.html create mode 100644 docs/Structs/KanvasDevice.html create mode 100644 docs/Structs/MediaInfoSimple.html create mode 100644 docs/Structs/MediaInfoSimple/Source.html create mode 100644 docs/Structs/Sticker.html create mode 100644 docs/Structs/StickerType.html create mode 100644 docs/Typealiases.html create mode 100644 docs/badge.svg create mode 100644 docs/css/highlight.css create mode 100644 docs/css/jazzy.css create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Info.plist create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/CameraController.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/CameraSettings.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/ArrowPosition.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Animating.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Drawing.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Positioning.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EditorViewController.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/LivePhotoLoader.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode/Group.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode/Quantity.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/FilterType.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/ImagePreviewMode.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasBrushType.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasCameraMedia.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasColorSelectionTool.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDashboardDismissAction.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDashboardOpenAction.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDrawingAction.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasExportAction.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasGIFPlaybackMode.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasMediaType.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasTextAlignment.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasTextFont.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/AVAsset.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/CGFloat.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Double.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Float.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Int.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Int32.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/MediaInfo.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UICollectionView.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UIColor.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UIImage.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt32.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt64.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt8.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/CameraControllerDelegate.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/EasyTipViewDelegate.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/EditorControllerDelegate.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/Identifiable.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasCameraAnalyticsProvider.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasCancelable.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasQuickBlogSelectorCoordinating.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasStickerLoader.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/StickerProvider.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/StickerProviderDelegate.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/CameraFeatures.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/GLU.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraColors.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/CameraPermissions.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/Drawer.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/Padding.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasDevice.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/MediaInfoSimple.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/MediaInfoSimple/Source.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/Sticker.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/StickerType.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Typealiases.html create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/badge.svg create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/css/highlight.css create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/css/jazzy.css create mode 100755 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/img/carat.png create mode 100755 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/img/dash.png create mode 100755 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/img/gh.png create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/img/spinner.gif create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/index.html create mode 100755 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/jazzy.js create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/jazzy.search.js create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/jquery.min.js create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/lunr.min.js create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/typeahead.jquery.js create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/search.json create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/undocumented.json create mode 100644 docs/docsets/KanvasCamera.docset/Contents/Resources/docSet.dsidx create mode 100644 docs/docsets/KanvasCamera.tgz create mode 100755 docs/img/carat.png create mode 100755 docs/img/dash.png create mode 100755 docs/img/gh.png create mode 100644 docs/img/spinner.gif create mode 100644 docs/index.html create mode 100755 docs/js/jazzy.js create mode 100644 docs/js/jazzy.search.js create mode 100644 docs/js/jquery.min.js create mode 100644 docs/js/lunr.min.js create mode 100644 docs/js/typeahead.jquery.js create mode 100644 docs/search.json create mode 100644 docs/undocumented.json diff --git a/Gemfile b/Gemfile index a3fa53102..74fb7d6ff 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,4 @@ source 'https://rubygems.org' do gem 'cocoapods', '1.9.1' + gem 'jazzy', '0.13.6' end diff --git a/Gemfile.lock b/Gemfile.lock index 21c15d413..be2a0bd0f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -61,18 +61,37 @@ GEM httpclient (2.8.3) i18n (0.9.5) concurrent-ruby (~> 1.0) + jazzy (0.13.6) + cocoapods (~> 1.5) + mustache (~> 1.1) + open4 + redcarpet (~> 3.4) + rouge (>= 2.0.6, < 4.0) + sassc (~> 2.1) + sqlite3 (~> 1.3) + xcinvoke (~> 0.3.0) json (2.3.1) + liferaft (0.0.6) minitest (5.14.2) molinillo (0.6.6) + mustache (1.1.1) nanaimo (0.3.0) nap (1.1.0) netrc (0.11.0) + open4 (1.3.4) + redcarpet (3.5.1) + rouge (3.26.0) ruby-macho (1.4.0) + sassc (2.4.0) + ffi (~> 1.9) + sqlite3 (1.4.2) thread_safe (0.3.6) typhoeus (1.4.0) ethon (>= 0.9.0) tzinfo (1.2.7) thread_safe (~> 0.1) + xcinvoke (0.3.0) + liferaft (~> 0.0.6) xcodeproj (1.19.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) @@ -85,6 +104,7 @@ PLATFORMS DEPENDENCIES cocoapods (= 1.9.1)! + jazzy (= 0.13.6)! BUNDLED WITH 2.1.4 diff --git a/docs/Classes.html b/docs/Classes.html new file mode 100644 index 000000000..f44541a5b --- /dev/null +++ b/docs/Classes.html @@ -0,0 +1,417 @@ + + + + Classes Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Classes

+

The following classes are available globally.

+ +
+
+
+
    +
  • +
    + + + + CameraController + +
    +
    +
    +
    +
    +
    +

    A controller that contains and layouts all camera handling views and controllers (mode selector, input, etc).

    +
    +

    Seealso

    + CameraControllerDelegate for methods to customize the controller and handle the output + +
    +

    Seealso

    + CameraSettings for customization options for the controller + +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraController : UIViewController, MediaClipsEditorDelegate, CameraPreviewControllerDelegate, EditorControllerDelegate, CameraZoomHandlerDelegate, OptionsControllerDelegate, ModeSelectorAndShootControllerDelegate, CameraViewDelegate, CameraInputControllerDelegate, FilterSettingsControllerDelegate, CameraPermissionsViewControllerDelegate, KanvasMediaPickerViewControllerDelegate, MediaPickerThumbnailFetcherDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + EditorViewController + +
    +
    +
    +
    +
    +
    +

    A view controller to edit the segments

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final class EditorViewController : UIViewController, MediaPlayerController, EditorViewDelegate, KanvasEditorMenuControllerDelegate, EditorFilterControllerDelegate, DrawingControllerDelegate, EditorTextControllerDelegate, MediaDrawerControllerDelegate, GifMakerHandlerDelegate, MediaPlayerDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraSettings + +
    +
    +
    +
    +
    +
    +

    A class that defines the settings for the Kanvas Camera. See each property for further description.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public final class CameraSettings : NSObject
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

EasyTipView class implementation

+

+
+
+
    +
  • +
    + + + + EasyTipView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class EasyTipView : UIView
    +
    extension EasyTipView: UIGestureRecognizerDelegate
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Classes/CameraController.html b/docs/Classes/CameraController.html new file mode 100644 index 000000000..ffa47ae83 --- /dev/null +++ b/docs/Classes/CameraController.html @@ -0,0 +1,1115 @@ + + + + CameraController Class Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CameraController

+
+
+ +
public class CameraController : UIViewController, MediaClipsEditorDelegate, CameraPreviewControllerDelegate, EditorControllerDelegate, CameraZoomHandlerDelegate, OptionsControllerDelegate, ModeSelectorAndShootControllerDelegate, CameraViewDelegate, CameraInputControllerDelegate, FilterSettingsControllerDelegate, CameraPermissionsViewControllerDelegate, KanvasMediaPickerViewControllerDelegate, MediaPickerThumbnailFetcherDelegate
+ +
+
+

A controller that contains and layouts all camera handling views and controllers (mode selector, input, etc).

+
+

Seealso

+ CameraControllerDelegate for methods to customize the controller and handle the output + +
+

Seealso

+ CameraSettings for customization options for the controller + +
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    The delegate for camera callback methods.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CameraControllerDelegate?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Constructs a CameraController that will record from the device camera +and export the result to the device, saving to the phone all in between information +needed to attain the final output.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience public init(settings: CameraSettings, stickerProvider: StickerProvider?, analyticsProvider: KanvasCameraAnalyticsProvider?, quickBlogSelectorCoordinator: KanvasQuickBlogSelectorCoordinating?, tagCollection: UIView?)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var preferredStatusBarStyle: UIStatusBarStyle { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var preferredStatusBarUpdateAnimation: UIStatusBarAnimation { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var supportedInterfaceOrientations: UIInterfaceOrientationMask { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + requestAccess(_:) + +
    +
    +
    +
    +
    +
    +

    Requests permissions for video

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func requestAccess(_ completion: ((_ granted: Bool) -> ())?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    boolean on whether access was granted

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + logOpen() + +
    +
    +
    +
    +
    +
    +

    logs opening the camera

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func logOpen()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logDismiss() + +
    +
    +
    +
    +
    +
    +

    logs closing the camera

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func logDismiss()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

View Lifecycle

+

+
+
+
    +
  • +
    + + + + loadView() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func loadView()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidAppear(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidAppear(_ animated: Bool)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

CameraPreviewControllerDelegate & EditorControllerDelegate

+

+
+
+ +
+
+
+ + +
+ +

breakdown

+

+
+
+
    +
  • +
    + + + + cleanup() + +
    +
    +
    +
    +
    +
    +

    This function should be called to stop the camera session and properly breakdown the inputs

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cleanup()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + resetState() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func resetState()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Post Options Interaction

+

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/Classes/CameraSettings.html b/docs/Classes/CameraSettings.html new file mode 100644 index 000000000..a99eb3ce8 --- /dev/null +++ b/docs/Classes/CameraSettings.html @@ -0,0 +1,1033 @@ + + + + CameraSettings Class Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CameraSettings

+
+
+ +
@objc
+public final class CameraSettings : NSObject
+ +
+
+

A class that defines the settings for the Kanvas Camera. See each property for further description.

+ +
+
+
+
+ + +
+ +

Modes

+

+
+
+
    +
  • +
    + + + + enabledModes + +
    +
    +
    +
    +
    +
    +

    Enables/disables modes.

    +
    +

    Note

    + Defaults to stop .stopMotion and .gif. + +
    +

    Note

    + The set can’t be empty. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var enabledModes: Set<CameraMode> { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + defaultMode + +
    +
    +
    +
    +
    +
    +

    Camera mode which starts active.

    +
    +

    Note

    + Defaults to .none, which will activate the first active +mode in the list. + +
    +

    Note

    + You can’t set as default mode one which is not enabled, it will be ignored. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var defaultMode: CameraMode? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Position settings

+

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Camera position option which starts active.

    +
    +

    Note

    + Defaults to back. + +
    +

    Note

    + Can’t be unspecified. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var defaultCameraPositionOption: AVCaptureDevice.Position { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Flash settings

+

+
+
+
    +
  • +
    + + + + preferredFlashOption + +
    +
    +
    +
    +
    +
    +

    Flash option which starts active.

    +
    +

    Note

    + Defaults to flash off. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var preferredFlashOption: AVCaptureDevice.FlashMode
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + imagePreviewOption + +
    +
    +
    +
    +
    +
    +

    Fullscreen image preview which starts disabled.

    +
    +

    Note

    + Defaults to image preview off. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var imagePreviewOption: ImagePreviewMode
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Landscape support

+

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Whether the camera should be shown in landscape.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var cameraSupportsLandscape: Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Stop motion/stitch mode export settings

+

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Whether the camera controller allows exporting live photos as video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var exportStopMotionPhotoAsVideo: Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera features

+

+
+
+
    +
  • +
    + + + + features + +
    +
    +
    +
    +
    +
    +

    The features to enable/disable for the controller.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var features: CameraFeatures
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + topButtonsSwapped + +
    +
    +
    +
    +
    +
    +

    Buttons Swapped on the Camera View +This changes the position between the close icon and the rotate, flash, and ghost icons

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var topButtonsSwapped: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + crossIconInEditor + +
    +
    +
    +
    +
    +
    +

    Cross Icon In Editor +This changes back carat in the editor to a cross icon

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var crossIconInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showCogIconInEditor + +
    +
    +
    +
    +
    +
    +

    Cog icon in Editor +This sets a cog icon for the posting options button in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showCogIconInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showTagButtonInEditor + +
    +
    +
    +
    +
    +
    +

    Tag button in Editor +This shows a # button in the editor to enable adding tags

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showTagButtonInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Tag collection in Editor +This shows a collection of tags in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showTagCollectionInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Quick post button in Editor +This shows a post button that makes quick options appear when long pressed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showQuickPostButtonInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Long press for post button in Editor +This enables the long press for the quick post button.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var enableQuickPostLongPress: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Blog Switcher in Editor +This shows a blog switcher that makes quick options appear when long pressed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showBlogSwitcherInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editToolsRedesign + +
    +
    +
    +
    +
    +
    +

    Edit Tools Redesign +This shows the editor tools as a vertical collection.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editToolsRedesign: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + shutterButtonTooltip + +
    +
    +
    +
    +
    +
    +

    Shutter Button Tooltip +This shows the tooltip above the shutter.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var shutterButtonTooltip: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Horizontal Mode Selector +This shows a horizontal mode selector in the camera.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var horizontalModeSelector: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Auto-open GIF Maker in Editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func editorShouldStartGIFMaker(mode: CameraMode?) -> Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setEditorShouldStartGIFMaker(_ newValue: Bool)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Auto-open GIF Maker after GIF Camera

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var gifCameraShouldStartGIFMaker: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Classes/EasyTipView.html b/docs/Classes/EasyTipView.html new file mode 100644 index 000000000..54513daba --- /dev/null +++ b/docs/Classes/EasyTipView.html @@ -0,0 +1,627 @@ + + + + EasyTipView Class Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

EasyTipView

+
+
+ +
open class EasyTipView : UIView
+
extension EasyTipView: UIGestureRecognizerDelegate
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + ArrowPosition + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum ArrowPosition
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Preferences + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Preferences
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + backgroundColor + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open var backgroundColor: UIColor? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + description + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open var description: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + preferences + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    private(set) open var preferences: Preferences { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + text + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let text: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Static variables

+

+
+
+
    +
  • +
    + + + + globalPreferences + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var globalPreferences: EasyTipView.Preferences
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(text: String, preferences: Preferences = EasyTipView.globalPreferences, delegate: EasyTipViewDelegate? = nil)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    NSCoding not supported. Use init(text, preferences, delegate) instead!

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    required public init?(coder aDecoder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Private methods

+

+
+
+
    +
  • +
    + + + + draw(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func draw(_ rect: CGRect)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

UIGestureRecognizerDelegate implementation

+

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Classes/EasyTipView/ArrowPosition.html b/docs/Classes/EasyTipView/ArrowPosition.html new file mode 100644 index 000000000..e977234f0 --- /dev/null +++ b/docs/Classes/EasyTipView/ArrowPosition.html @@ -0,0 +1,423 @@ + + + + ArrowPosition Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

ArrowPosition

+
+
+ +
public enum ArrowPosition
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + any + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case any
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + top + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case top
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + bottom + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case bottom
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + right + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case right
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + left + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case left
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Classes/EasyTipView/Preferences.html b/docs/Classes/EasyTipView/Preferences.html new file mode 100644 index 000000000..07a8c155c --- /dev/null +++ b/docs/Classes/EasyTipView/Preferences.html @@ -0,0 +1,507 @@ + + + + Preferences Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Preferences

+
+
+ +
public struct Preferences
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + Drawing + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Drawing
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Positioning + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Positioning
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Animating + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Animating
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + drawing + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var drawing: EasyTipView.Preferences.Drawing
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + positioning + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var positioning: EasyTipView.Preferences.Positioning
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + animating + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var animating: EasyTipView.Preferences.Animating
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hasBorder + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var hasBorder: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Classes/EasyTipView/Preferences/Animating.html b/docs/Classes/EasyTipView/Preferences/Animating.html new file mode 100644 index 000000000..597bf7086 --- /dev/null +++ b/docs/Classes/EasyTipView/Preferences/Animating.html @@ -0,0 +1,585 @@ + + + + Animating Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Animating

+
+
+ +
public struct Animating
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + dismissTransform + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var dismissTransform: CGAffineTransform
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showInitialTransform + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showInitialTransform: CGAffineTransform
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showFinalTransform + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showFinalTransform: CGAffineTransform
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + springDamping + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var springDamping: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + springVelocity + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var springVelocity: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showInitialAlpha + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showInitialAlpha: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dismissFinalAlpha + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var dismissFinalAlpha: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showDuration + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showDuration: Double
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dismissDuration + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var dismissDuration: Double
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dismissOnTap + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var dismissOnTap: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + gradientVelocity + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var gradientVelocity: Double
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Classes/EasyTipView/Preferences/Drawing.html b/docs/Classes/EasyTipView/Preferences/Drawing.html new file mode 100644 index 000000000..bd9bce073 --- /dev/null +++ b/docs/Classes/EasyTipView/Preferences/Drawing.html @@ -0,0 +1,585 @@ + + + + Drawing Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Drawing

+
+
+ +
public struct Drawing
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + cornerRadius + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var cornerRadius: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arrowHeight + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var arrowHeight: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arrowWidth + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var arrowWidth: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + foregroundColor + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var foregroundColor: UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + backgroundColor + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var backgroundColor: UIColor
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var backgroundColorCollection: [UIColor]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arrowPosition + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var arrowPosition: EasyTipView.ArrowPosition
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + textAlignment + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var textAlignment: NSTextAlignment
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + borderWidth + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var borderWidth: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + borderColor + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var borderColor: UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + font + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var font: UIFont
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Classes/EasyTipView/Preferences/Positioning.html b/docs/Classes/EasyTipView/Preferences/Positioning.html new file mode 100644 index 000000000..9fe3fb133 --- /dev/null +++ b/docs/Classes/EasyTipView/Preferences/Positioning.html @@ -0,0 +1,450 @@ + + + + Positioning Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Positioning

+
+
+ +
public struct Positioning
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + bubbleHInset + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var bubbleHInset: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + bubbleVInset + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var bubbleVInset: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + textHInset + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var textHInset: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + textVInset + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var textVInset: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + maxWidth + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var maxWidth: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + margin + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var margin: CGFloat
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Classes/EditorViewController.html b/docs/Classes/EditorViewController.html new file mode 100644 index 000000000..e9754bb36 --- /dev/null +++ b/docs/Classes/EditorViewController.html @@ -0,0 +1,577 @@ + + + + EditorViewController Class Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

EditorViewController

+
+
+ +
public final class EditorViewController : UIViewController, MediaPlayerController, EditorViewDelegate, KanvasEditorMenuControllerDelegate, EditorFilterControllerDelegate, DrawingControllerDelegate, EditorTextControllerDelegate, MediaDrawerControllerDelegate, GifMakerHandlerDelegate, MediaPlayerDelegate
+ +
+
+

A view controller to edit the segments

+ +
+
+
+ +
+
+
+ + +
+ +

MediaPlayerController

+

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/Classes/LivePhotoLoader.html b/docs/Classes/LivePhotoLoader.html new file mode 100644 index 000000000..261f126fa --- /dev/null +++ b/docs/Classes/LivePhotoLoader.html @@ -0,0 +1,345 @@ + + + + LivePhotoLoader Class Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (40% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

LivePhotoLoader

+
+
+ +
public class LivePhotoLoader
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + init(asset:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(asset: PHAsset)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func pairedVideo(completion: @escaping (URL?) -> Void)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums.html b/docs/Enums.html new file mode 100644 index 000000000..b71d23005 --- /dev/null +++ b/docs/Enums.html @@ -0,0 +1,697 @@ + + + + Enumerations Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+
+
    +
  • +
    + + + + KanvasBrushType + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasBrushType : Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasColorSelectionTool : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasDrawingAction + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasDrawingAction : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasTextFont + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasTextFont : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasTextAlignment + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasTextAlignment : Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasDashboardOpenAction : Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasDashboardDismissAction : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasMediaType + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasMediaType : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasGIFPlaybackMode + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasGIFPlaybackMode : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasCameraMedia + +
    +
    +
    +
    +
    +
    +

    Media wrapper for media generated from the CameraController

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum KanvasCameraMedia
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasExportAction + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum KanvasExportAction
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Setting to CameraOption conversion

+

+
+
+
    +
  • +
    + + + + ImagePreviewMode + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum ImagePreviewMode : CameraOptionConvertible
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FilterType + +
    +
    +
    +
    +
    +
    +

    Filter types

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum FilterType : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraMode + +
    +
    +
    +
    +
    +
    +

    A set of camera modes which allow various types of captured media and exported formats.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum CameraMode : Int, OptionSelectorItem
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/CameraMode.html b/docs/Enums/CameraMode.html new file mode 100644 index 000000000..5a051bb21 --- /dev/null +++ b/docs/Enums/CameraMode.html @@ -0,0 +1,563 @@ + + + + CameraMode Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CameraMode

+
+
+ +
@objc
+public enum CameraMode : Int, OptionSelectorItem
+ +
+
+

A set of camera modes which allow various types of captured media and exported formats.

+ +
+
+
+
    +
  • +
    + + + + stopMotion + +
    +
    +
    +
    +
    +
    +

    Capturing stop motions, a sequence of images and/or videos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case stopMotion = 0
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photo + +
    +
    +
    +
    +
    +
    +

    Capturing photos

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photo
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + loop + +
    +
    +
    +
    +
    +
    +

    Capturing gifs, a sequence of photos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case loop
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + normal + +
    +
    +
    +
    +
    +
    +

    Capturing single photo or single video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case normal
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + stitch + +
    +
    +
    +
    +
    +
    +

    Capturing stop motions, a sequence of images and/or videos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case stitch
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + gif + +
    +
    +
    +
    +
    +
    +

    Capturing gifs, a sequence of photos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case gif
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Group + +
    +
    +
    +
    +
    +
    +

    The type of media a CameraMode will produce.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum Group : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Quantity + +
    +
    +
    +
    +
    +
    +

    How many assets a CameraMode will produce.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum Quantity : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + group + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var group: Group { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + quantity + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var quantity: Quantity { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/CameraMode/Group.html b/docs/Enums/CameraMode/Group.html new file mode 100644 index 000000000..11f49c46e --- /dev/null +++ b/docs/Enums/CameraMode/Group.html @@ -0,0 +1,370 @@ + + + + Group Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Group

+
+
+ +
@objc
+public enum Group : Int
+ +
+
+

The type of media a CameraMode will produce.

+ +
+
+
+
    +
  • +
    + + + + video + +
    +
    +
    +
    +
    +
    +

    The mode creates a video from a sequence

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case video = 0
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photo + +
    +
    +
    +
    +
    +
    +

    The mode creates a photo.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photo
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + gif + +
    +
    +
    +
    +
    +
    +

    The mode creates a gif animation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case gif
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/CameraMode/Quantity.html b/docs/Enums/CameraMode/Quantity.html new file mode 100644 index 000000000..8fc76596b --- /dev/null +++ b/docs/Enums/CameraMode/Quantity.html @@ -0,0 +1,343 @@ + + + + Quantity Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Quantity

+
+
+ +
@objc
+public enum Quantity : Int
+ +
+
+

How many assets a CameraMode will produce.

+ +
+
+
+
    +
  • +
    + + + + single + +
    +
    +
    +
    +
    +
    +

    The mode allows just one photo, video or gif.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case single = 0
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + multiple + +
    +
    +
    +
    +
    +
    +

    The mode creates a sequence of photos and/or videos

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case multiple
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/FilterType.html b/docs/Enums/FilterType.html new file mode 100644 index 000000000..42161dd75 --- /dev/null +++ b/docs/Enums/FilterType.html @@ -0,0 +1,777 @@ + + + + FilterType Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

FilterType

+
+
+ +
@objc
+public enum FilterType : Int
+ +
+
+

Filter types

+ +
+
+
+
    +
  • +
    + + + + passthrough + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case passthrough = 0
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + wavePool + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case wavePool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + plasma + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case plasma
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + emInterference + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case emInterference
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + rgb + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case rgb
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lego + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lego
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + chroma + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case chroma
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + rave + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case rave
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + mirrorTwo + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case mirrorTwo
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + mirrorFour + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case mirrorFour
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lightLeaks + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lightLeaks
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + film + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case film
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + grayscale + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case grayscale
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + manga + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case manga
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toon + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toon
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + off + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case off
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + key() + +
    +
    +
    +
    +
    +
    +

    Logging key for a filter type +Returns a string representing the filter type, or nil if the FilterType is “off”,/ +which indicates that the feature is disabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func key() -> String?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + filterApplied + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var filterApplied: Bool { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/ImagePreviewMode.html b/docs/Enums/ImagePreviewMode.html new file mode 100644 index 000000000..6be9b09ae --- /dev/null +++ b/docs/Enums/ImagePreviewMode.html @@ -0,0 +1,342 @@ + + + + ImagePreviewMode Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

ImagePreviewMode

+
+
+ +
public enum ImagePreviewMode : CameraOptionConvertible
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + on + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case on
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + off + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case off
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/KanvasBrushType.html b/docs/Enums/KanvasBrushType.html new file mode 100644 index 000000000..e7ea5f1af --- /dev/null +++ b/docs/Enums/KanvasBrushType.html @@ -0,0 +1,397 @@ + + + + KanvasBrushType Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasBrushType

+
+
+ +
@objc
+public enum KanvasBrushType : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + pencil + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case pencil
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + marker + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case marker
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sharpie + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case sharpie
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/KanvasCameraMedia.html b/docs/Enums/KanvasCameraMedia.html new file mode 100644 index 000000000..cdc3bbec5 --- /dev/null +++ b/docs/Enums/KanvasCameraMedia.html @@ -0,0 +1,396 @@ + + + + KanvasCameraMedia Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasCameraMedia

+
+
+ +
public enum KanvasCameraMedia
+ +
+
+

Media wrapper for media generated from the CameraController

+ +
+
+
+
    +
  • +
    + + + + image(_:_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case image(URL, MediaInfo, CGSize)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + video(_:_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case video(URL, MediaInfo, CGSize)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frames(_:_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case frames(URL, MediaInfo, CGSize)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + info + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var info: MediaInfo { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/KanvasColorSelectionTool.html b/docs/Enums/KanvasColorSelectionTool.html new file mode 100644 index 000000000..b31716e95 --- /dev/null +++ b/docs/Enums/KanvasColorSelectionTool.html @@ -0,0 +1,397 @@ + + + + KanvasColorSelectionTool Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasColorSelectionTool

+
+
+ +
@objc
+public enum KanvasColorSelectionTool : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + swatch + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case swatch
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + gradient + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case gradient
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + eyedropper + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case eyedropper
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/KanvasDashboardDismissAction.html b/docs/Enums/KanvasDashboardDismissAction.html new file mode 100644 index 000000000..8a181f23d --- /dev/null +++ b/docs/Enums/KanvasDashboardDismissAction.html @@ -0,0 +1,370 @@ + + + + KanvasDashboardDismissAction Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasDashboardDismissAction

+
+
+ +
@objc
+public enum KanvasDashboardDismissAction : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + tap + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tap
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + swipe + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case swipe
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/KanvasDashboardOpenAction.html b/docs/Enums/KanvasDashboardOpenAction.html new file mode 100644 index 000000000..f51710e1e --- /dev/null +++ b/docs/Enums/KanvasDashboardOpenAction.html @@ -0,0 +1,370 @@ + + + + KanvasDashboardOpenAction Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasDashboardOpenAction

+
+
+ +
@objc
+public enum KanvasDashboardOpenAction : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + tap + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tap
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + swipe + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case swipe
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/KanvasDrawingAction.html b/docs/Enums/KanvasDrawingAction.html new file mode 100644 index 000000000..c1776d581 --- /dev/null +++ b/docs/Enums/KanvasDrawingAction.html @@ -0,0 +1,397 @@ + + + + KanvasDrawingAction Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasDrawingAction

+
+
+ +
@objc
+public enum KanvasDrawingAction : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + tap + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tap
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + fill + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case fill
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + stroke + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case stroke
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/KanvasExportAction.html b/docs/Enums/KanvasExportAction.html new file mode 100644 index 000000000..6812b08ef --- /dev/null +++ b/docs/Enums/KanvasExportAction.html @@ -0,0 +1,450 @@ + + + + KanvasExportAction Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasExportAction

+
+
+ +
public enum KanvasExportAction
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + previewConfirm + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case previewConfirm
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + confirm + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case confirm
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + post + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case post
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + save + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case save
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + postOptions + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case postOptions
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + confirmPostOptions + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case confirmPostOptions
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/KanvasGIFPlaybackMode.html b/docs/Enums/KanvasGIFPlaybackMode.html new file mode 100644 index 000000000..1f3364656 --- /dev/null +++ b/docs/Enums/KanvasGIFPlaybackMode.html @@ -0,0 +1,397 @@ + + + + KanvasGIFPlaybackMode Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasGIFPlaybackMode

+
+
+ +
@objc
+public enum KanvasGIFPlaybackMode : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + loop + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case loop
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + rebound + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case rebound
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + reverse + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case reverse
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/KanvasMediaType.html b/docs/Enums/KanvasMediaType.html new file mode 100644 index 000000000..63357e8e9 --- /dev/null +++ b/docs/Enums/KanvasMediaType.html @@ -0,0 +1,424 @@ + + + + KanvasMediaType Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasMediaType

+
+
+ +
@objc
+public enum KanvasMediaType : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + image + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case image
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + video + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case video
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frames + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case frames
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + livePhoto + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case livePhoto
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/KanvasTextAlignment.html b/docs/Enums/KanvasTextAlignment.html new file mode 100644 index 000000000..c6a815df9 --- /dev/null +++ b/docs/Enums/KanvasTextAlignment.html @@ -0,0 +1,424 @@ + + + + KanvasTextAlignment Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasTextAlignment

+
+
+ +
@objc
+public enum KanvasTextAlignment : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + left + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case left
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + center + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case center
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + right + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case right
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + from(alignment:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func from(alignment: NSTextAlignment?) -> KanvasTextAlignment?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Enums/KanvasTextFont.html b/docs/Enums/KanvasTextFont.html new file mode 100644 index 000000000..25f908f6f --- /dev/null +++ b/docs/Enums/KanvasTextFont.html @@ -0,0 +1,397 @@ + + + + KanvasTextFont Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasTextFont

+
+
+ +
@objc
+public enum KanvasTextFont : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + regular + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case regular
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + script + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case script
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + from(font:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func from(font: UIFont?) -> KanvasTextFont?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions.html b/docs/Extensions.html new file mode 100644 index 000000000..de0322217 --- /dev/null +++ b/docs/Extensions.html @@ -0,0 +1,770 @@ + + + + Extensions Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+
+
    +
  • +
    + + + + AVAsset + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension AVAsset
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UITableViewCell + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UITableViewCell: Identifiable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UICollectionReusableView: Identifiable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UITableViewHeaderFooterView: Identifiable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UICollectionView + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UICollectionView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIColor + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIImage + +
    +
    +
    +
    +
    +
    +

    Extension for image flipping

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UIImage
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Setting to CameraOption conversion

+

+
+
+
    +
  • +
    + + + + AVCaptureDevice + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
  • +
  • +
    + + + + UInt8 + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UInt8: ExpressibleByBooleanLiteral
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Int32 + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Int32: ExpressibleByBooleanLiteral
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Int + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UInt + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UInt
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UInt32 + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UInt32
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UInt64 + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UInt64
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Float + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Float
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Double + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Double
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CGFloat + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaInfo + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension MediaInfo
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/AVAsset.html b/docs/Extensions/AVAsset.html new file mode 100644 index 000000000..8f1db3d47 --- /dev/null +++ b/docs/Extensions/AVAsset.html @@ -0,0 +1,314 @@ + + + + AVAsset Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

AVAsset

+
+
+ +
public extension AVAsset
+ +
+
+ +
+
+
+
    +
  • +
    + + + + videoScreenSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var videoScreenSize: CGSize? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/CGFloat.html b/docs/Extensions/CGFloat.html new file mode 100644 index 000000000..3a388f678 --- /dev/null +++ b/docs/Extensions/CGFloat.html @@ -0,0 +1,368 @@ + + + + CGFloat Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CGFloat

+
+
+ +
extension CGFloat
+ +
+
+ +
+
+
+
    +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + i + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var i: Int32 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/Double.html b/docs/Extensions/Double.html new file mode 100644 index 000000000..3ff91cffc --- /dev/null +++ b/docs/Extensions/Double.html @@ -0,0 +1,341 @@ + + + + Double Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Double

+
+
+ +
extension Double
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/Float.html b/docs/Extensions/Float.html new file mode 100644 index 000000000..6157afb6c --- /dev/null +++ b/docs/Extensions/Float.html @@ -0,0 +1,341 @@ + + + + Float Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Float

+
+
+ +
extension Float
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/Int.html b/docs/Extensions/Int.html new file mode 100644 index 000000000..85e76246a --- /dev/null +++ b/docs/Extensions/Int.html @@ -0,0 +1,611 @@ + + + + Int Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Int

+
+
+ +
extension Int
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + b + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var b: Int8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ub + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ub: UInt8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + s + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var s: Int16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + us + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var us: UInt16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + i + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var i: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ui + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ui: UInt32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ul + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ul: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ll + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ll: Int64 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ull + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ull: UInt64 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/Int32.html b/docs/Extensions/Int32.html new file mode 100644 index 000000000..6c5c4b5ac --- /dev/null +++ b/docs/Extensions/Int32.html @@ -0,0 +1,637 @@ + + + + Int32 Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Int32

+
+
+ +
extension Int32: ExpressibleByBooleanLiteral
+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(booleanLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(booleanLiteral value: BooleanLiteralType)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + b + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var b: Int8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ub + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ub: UInt8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + s + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var s: Int16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + us + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var us: UInt16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ui + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ui: UInt32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + l + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var l: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ul + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ul: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ll + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ll: Int64 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ull + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ull: UInt64 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/MediaInfo.html b/docs/Extensions/MediaInfo.html new file mode 100644 index 000000000..839ae76c5 --- /dev/null +++ b/docs/Extensions/MediaInfo.html @@ -0,0 +1,466 @@ + + + + MediaInfo Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

MediaInfo

+
+
+ +
extension MediaInfo
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + init(fromImage:) + +
    +
    +
    +
    +
    +
    +

    Reads media info from an image URL

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init?(fromImage url: URL)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(fromImageData:) + +
    +
    +
    +
    +
    +
    +

    Reads media info from image data

    +
    +

    Throws

    + when data cannot be read from url + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init?(fromImageData data: Data)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + fromImageData + + +
    +

    The Data representation of an image

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + write(toImage:) + +
    +
    +
    +
    +
    +
    +

    Writes media info to an image URL

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func write(toImage url: URL)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + toImage + + +
    +

    the image URL to write metadata to

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + init(fromVideoURL:) + +
    +
    +
    +
    +
    +
    +

    Reads media info from a video url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init?(fromVideoURL url: URL)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func createAVMetadataItems() -> [AVMetadataItem]
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/UICollectionView.html b/docs/Extensions/UICollectionView.html new file mode 100644 index 000000000..250c538cb --- /dev/null +++ b/docs/Extensions/UICollectionView.html @@ -0,0 +1,608 @@ + + + + UICollectionView Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UICollectionView

+
+
+ +
public extension UICollectionView
+ +
+
+ +
+
+
+
    +
  • +
    + + + + register(cell:) + +
    +
    +
    +
    +
    +
    +

    Registers a cell to be used by a UICollectionView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func register<T>(cell cellType: T.Type) where T : UICollectionViewCell
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cellType + + +
    +

    A nibloadable collection view cell type +to take the identifier and nib from.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + register(header:) + +
    +
    +
    +
    +
    +
    +

    Registers a header to be used by a UICollectionView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func register<T>(header headerType: T.Type) where T : UICollectionReusableView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + headerType + + +
    +

    A nibloadable reusable view type +to take the identifier and nib from.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + register(footer:) + +
    +
    +
    +
    +
    +
    +

    Registers a footer to be used by a UICollectionView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func register<T>(footer footerType: T.Type) where T : UICollectionReusableView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + footerType + + +
    +

    A nibloadable reusable view type +to take the identifier and nib from.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + dequeue(cell:for:) + +
    +
    +
    +
    +
    +
    +

    Returns a reusable cell of the type specified to be used and adds it +to the UICollectionView in the indexPath specified.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dequeue<T>(cell cellType: T.Type, for indexPath: IndexPath) -> T? where T : UICollectionViewCell
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cellType + + +
    +

    A collection cell to take the identifier from.

    +
    +
    + + indexPath + + +
    +

    IndexPath where to add the cell to the collection view.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + dequeue(header:for:) + +
    +
    +
    +
    +
    +
    +

    Returns a reusable header of the type specified to be used and adds it +to the UICollectionView in the indexPath specified.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dequeue<T>(header headerType: T.Type, for indexPath: IndexPath) -> T? where T : UICollectionReusableView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + headerType + + +
    +

    A collection reusable header view to take the identifier from.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + dequeue(footer:for:) + +
    +
    +
    +
    +
    +
    +

    Returns a reusable footer of the type specified to be used and adds it +to the UICollectionView in the indexPath specified.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dequeue<T>(footer footerType: T.Type, for indexPath: IndexPath) -> T? where T : UICollectionReusableView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + footerType + + +
    +

    AA collection reusable footer view to take the identifier from.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dequeue<T>(view viewType: T.Type, ofKind kind: String, for indexPath: IndexPath) -> T? where T : UICollectionReusableView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/UIColor.html b/docs/Extensions/UIColor.html new file mode 100644 index 000000000..8431ddf6d --- /dev/null +++ b/docs/Extensions/UIColor.html @@ -0,0 +1,648 @@ + + + + UIColor Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UIColor

+
+
+ +
public extension UIColor
+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(hex:alpha:) + +
    +
    +
    +
    +
    +
    +

    Create UIColor from the given hex value

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience init(hex: String, alpha: CGFloat = 1.0)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + hex + + +
    +

    String value to be converted to UIColor

    +
    +
    + + alpha + + +
    +

    Alpha of the color, defaults to 1

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + init(hex:alpha:) + +
    +
    +
    +
    +
    +
    +

    Create UIColor from the given hex Integer

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience init(hex: Int, alpha: CGFloat = 1.0)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + hex + + +
    +

    Int value to be converted to UIColor

    +
    +
    + + alpha + + +
    +

    Alpha of the color, defaults to 1

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + init(hex:alpha:) + +
    +
    +
    +
    +
    +
    +

    Create UIColor from the given 32-bit unsigned integer.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience init(hex: UInt32, alpha: CGFloat = 1.0)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + hex + + +
    +

    UInt32 value to be converted to UIColor

    +
    +
    + + alpha + + +
    +

    Alpha of the color, defaults to 1

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + color(hex:) + +
    +
    +
    +
    +
    +
    +

    Create UIColor from the given hex Integer

    +
    +

    Note

    + Method is used to bridge objc without a large multi file rewrite + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc(colorWithHex:)
    +static func color(hex: UInt) -> UIColor
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + hex + + +
    +

    Int value to be converted to UIColor

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + matchingColor() + +
    +
    +
    +
    +
    +
    +

    Best matching color between black and white, based on the brightness of the current color.

    + +
      +
    • return: Black or white, depending on the brightness.
    • +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func matchingColor() -> UIColor
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Calculates the RGB color components of a color as a CGFloat value, even if it is the grayscale space. Values for red, green, and blue can be of any range due to API changes. Values between 0.0 - 1.0 are in the sRGB gamut range.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func calculateRGBComponents() -> (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Calculates the RGB color components of a color as an Integer value, even if it is the grayscale space. Values between 0.0 - 255.0 are in the sRGB gamut range.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func calculateRGBComponentIntegers() -> (red: Int, green: Int, blue: Int, alpha: Int)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + brighterThan(_:) + +
    +
    +
    +
    +
    +
    +

    Whether or not the color brightness is higher than a provided brightness value.

    + +
      +
    • return: YES if brightness is higher than the brightness value provided.
    • +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func brighterThan(_ brightnessValue: Double) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + brightnessValue + + +
    +

    A number that represents the brightness of a color. It ranges from 0.0 (black) to 1.0 (white).

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/UIImage.html b/docs/Extensions/UIImage.html new file mode 100644 index 000000000..fc36d853f --- /dev/null +++ b/docs/Extensions/UIImage.html @@ -0,0 +1,346 @@ + + + + UIImage Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UIImage

+
+
+ +
extension UIImage
+ +
+
+

Extension for image flipping

+ +
+
+
+
    +
  • +
    + + + + flipLeftMirrored() + +
    +
    +
    +
    +
    +
    +

    Rotates an image 90° clockwise and flips it horizontally

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func flipLeftMirrored() -> UIImage?
    + +
    +
    +
    +

    Return Value

    +

    a copy of the original UIImage that has been rotated 90° clockwise and flipped horizontally

    +
    +
    +
    +
  • +
  • +
    + + + + init(pixelBuffer:) + +
    +
    +
    +
    +
    +
    +

    Create a new UIImage from a pixel buffer

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init?(pixelBuffer: CVPixelBuffer)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/UInt.html b/docs/Extensions/UInt.html new file mode 100644 index 000000000..c7ead10c8 --- /dev/null +++ b/docs/Extensions/UInt.html @@ -0,0 +1,611 @@ + + + + UInt Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UInt

+
+
+ +
extension UInt
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + b + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var b: Int8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ub + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ub: UInt8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + s + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var s: Int16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + us + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var us: UInt16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + i + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var i: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ui + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ui: UInt32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + l + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var l: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ll + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ll: Int64 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ull + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ull: UInt64 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/UInt32.html b/docs/Extensions/UInt32.html new file mode 100644 index 000000000..a8a2bbf07 --- /dev/null +++ b/docs/Extensions/UInt32.html @@ -0,0 +1,611 @@ + + + + UInt32 Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UInt32

+
+
+ +
extension UInt32
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + b + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var b: Int8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ub + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ub: UInt8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + s + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var s: Int16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + us + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var us: UInt16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + i + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var i: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + l + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var l: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ul + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ul: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ll + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ll: Int64 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ull + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ull: UInt64 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/UInt64.html b/docs/Extensions/UInt64.html new file mode 100644 index 000000000..a110c7f82 --- /dev/null +++ b/docs/Extensions/UInt64.html @@ -0,0 +1,611 @@ + + + + UInt64 Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UInt64

+
+
+ +
extension UInt64
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + b + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var b: Int8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ub + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ub: UInt8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + s + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var s: Int16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + us + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var us: UInt16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + i + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var i: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ui + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ui: UInt32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + l + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var l: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ul + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ul: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ll + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ll: Int64 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Extensions/UInt8.html b/docs/Extensions/UInt8.html new file mode 100644 index 000000000..edfbb5e93 --- /dev/null +++ b/docs/Extensions/UInt8.html @@ -0,0 +1,340 @@ + + + + UInt8 Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UInt8

+
+
+ +
extension UInt8: ExpressibleByBooleanLiteral
+ +
+
+ +
+
+
+
    +
  • +
    + + + + boolValue + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var boolValue: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(booleanLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(booleanLiteral value: BooleanLiteralType)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols.html b/docs/Protocols.html new file mode 100644 index 000000000..95af9e8e0 --- /dev/null +++ b/docs/Protocols.html @@ -0,0 +1,566 @@ + + + + Protocols Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    A protocol for injecting analytics into the KanvasCamera module

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public protocol KanvasCameraAnalyticsProvider
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol for dismissing CameraController +or exporting its created media.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CameraControllerDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol for camera editor controller methods

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol EditorControllerDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol KanvasQuickBlogSelectorCoordinating
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasCancelable + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol KanvasCancelable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasStickerLoader + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol KanvasStickerLoader
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol StickerProviderDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + StickerProvider + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol StickerProvider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Identifiable + +
    +
    +
    +
    +
    +
    +

    Identifies an element.

    + +

    By default, it uses the type’s simple name; +except for NibLoadable components, it uses the nibname.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol Identifiable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + EasyTipViewDelegate + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol EasyTipViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/CameraControllerDelegate.html b/docs/Protocols/CameraControllerDelegate.html new file mode 100644 index 000000000..b3c14c48e --- /dev/null +++ b/docs/Protocols/CameraControllerDelegate.html @@ -0,0 +1,812 @@ + + + + CameraControllerDelegate Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CameraControllerDelegate

+
+
+ +
public protocol CameraControllerDelegate : AnyObject
+ +
+
+

Protocol for dismissing CameraController +or exporting its created media.

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    A function that is called when an image is exported.

    +
    +

    Seealso

    + enum KanvasCameraMedia + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didCreateMedia(_ cameraController: CameraController, media: KanvasCameraMedia?, exportAction: KanvasExportAction, error: Error?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + cameraController + + +
    +

    The CameraController which created the media.

    +
    +
    + + media + + +
    +

    KanvasCameraMedia - this is the media created in the controller (can be image, video, etc). nil if the export fails.

    +
    +
    + + exportAction + + +
    +

    The KanvasExportAction which triggered media creation.

    +
    +
    + + error + + +
    +

    Any error that occured when the media was exported. Could be present when media is nil.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A function that is called when the main camera dismiss button is pressed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dismissButtonPressed(_ cameraController: CameraController)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + tagButtonPressed() + +
    +
    +
    +
    +
    +
    +

    Called when the tag button is pressed in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func tagButtonPressed()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorDismissed() + +
    +
    +
    +
    +
    +
    +

    Called when the editor is dismissed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editorDismissed()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called after the welcome tooltip is dismissed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didDismissWelcomeTooltip()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called to ask if welcome tooltip should be shown

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraShouldShowWelcomeTooltip() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    Whether the welcome tooltip should be shown.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called after the color selector tooltip is dismissed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didDismissColorSelectorTooltip()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called to ask if color selector tooltip should be shown

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editorShouldShowColorSelectorTooltip() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    Whether the color selector tooltip should be shown.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called after the stroke animation has ended

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didEndStrokeSelectorAnimation()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called to ask if stroke selector animation should be shown

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editorShouldShowStrokeSelectorAnimation() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    Bool for animation

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when a drag interaction starts

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didBeginDragInteraction()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when a drag interaction ends

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didEndDragInteraction()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when the permissions settings is shown but the app can’t change permissions (because they user manually disabled them).

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func openAppSettings(completion: ((Bool) -> ())?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    The completion block to call once the user is done with the settings screen.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Obtains the quick post button for the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func getQuickPostButton(enableLongPress: Bool) -> UIView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + enableLongPress + + +
    +

    whether to enable the long press action for the button.

    +
    +
    +
    +
    +

    Return Value

    +

    the quick post button.

    +
    +
    +
    +
  • +
  • +
    + + + + getBlogSwitcher() + +
    +
    +
    +
    +
    +
    +

    Obtains the blog switcher for the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func getBlogSwitcher() -> UIView
    + +
    +
    +
    +

    Return Value

    +

    the blog switcher.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/EasyTipViewDelegate.html b/docs/Protocols/EasyTipViewDelegate.html new file mode 100644 index 000000000..c5d08cf29 --- /dev/null +++ b/docs/Protocols/EasyTipViewDelegate.html @@ -0,0 +1,315 @@ + + + + EasyTipViewDelegate Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Protocols/EditorControllerDelegate.html b/docs/Protocols/EditorControllerDelegate.html new file mode 100644 index 000000000..5fdcf70fd --- /dev/null +++ b/docs/Protocols/EditorControllerDelegate.html @@ -0,0 +1,620 @@ + + + + EditorControllerDelegate Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

EditorControllerDelegate

+
+
+ +
public protocol EditorControllerDelegate : AnyObject
+ +
+
+

Protocol for camera editor controller methods

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    callback when finished exporting video clips.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didFinishExportingVideo(url: URL?, info: MediaInfo?, action: KanvasExportAction, mediaChanged: Bool)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    callback when finished exporting image

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didFinishExportingImage(image: UIImage?, info: MediaInfo?, action: KanvasExportAction, mediaChanged: Bool)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    callback when finished exporting frames

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didFinishExportingFrames(url: URL?, size: CGSize?, info: MediaInfo?, action: KanvasExportAction, mediaChanged: Bool)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    callback when dismissing controller without exporting

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dismissButtonPressed()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called after the color selector tooltip is dismissed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didDismissColorSelectorTooltip()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called to ask if color selector tooltip should be shown

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editorShouldShowColorSelectorTooltip() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    Bool for tooltip

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called after the stroke animation has ended

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didEndStrokeSelectorAnimation()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called to ask if stroke selector animation should be shown

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editorShouldShowStrokeSelectorAnimation() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    Bool for animation

    +
    +
    +
    +
  • +
  • +
    + + + + tagButtonPressed() + +
    +
    +
    +
    +
    +
    +

    Called when the tag button is pressed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func tagButtonPressed()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Obtains the quick post button.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func getQuickPostButton(enableLongPress: Bool) -> UIView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + enableLongPress + + +
    +

    whether to enable the long press action for the button.

    +
    +
    +
    +
    +

    Return Value

    +

    the quick post button.

    +
    +
    +
    +
  • +
  • +
    + + + + getBlogSwitcher() + +
    +
    +
    +
    +
    +
    +

    Obtains the blog switcher.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func getBlogSwitcher() -> UIView
    + +
    +
    +
    +

    Return Value

    +

    the blog switcher.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/Identifiable.html b/docs/Protocols/Identifiable.html new file mode 100644 index 000000000..d65b80795 --- /dev/null +++ b/docs/Protocols/Identifiable.html @@ -0,0 +1,326 @@ + + + + Identifiable Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Identifiable

+
+
+ +
public protocol Identifiable
+ +
+
+

Identifies an element.

+ +

By default, it uses the type’s simple name; +except for NibLoadable components, it uses the nibname.

+ +
+
+
+
    +
  • +
    + + + + identifier + + + Default implementation + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +

    Default Implementation

    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static var identifier: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/KanvasCameraAnalyticsProvider.html b/docs/Protocols/KanvasCameraAnalyticsProvider.html new file mode 100644 index 000000000..b3cb3709f --- /dev/null +++ b/docs/Protocols/KanvasCameraAnalyticsProvider.html @@ -0,0 +1,2626 @@ + + + + KanvasCameraAnalyticsProvider Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasCameraAnalyticsProvider

+
+
+ +
@objc
+public protocol KanvasCameraAnalyticsProvider
+ +
+
+

A protocol for injecting analytics into the KanvasCamera module

+ +
+
+
+
    +
  • +
    + + + + logCameraOpen(mode:) + +
    +
    +
    +
    +
    +
    +

    Logs an event when the camera is opened

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logCameraOpen(mode: CameraMode)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + mode + + +
    +

    what photo mode was opened

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + logDismiss() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the camera is dismissed without exporting media

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logDismiss()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when media is captured

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logCapturedMedia(type: CameraMode, cameraPosition: AVCaptureDevice.Position, length: TimeInterval, ghostFrameEnabled: Bool, filterType: FilterType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + +
    + + type + + +
    +

    the camera mode used to capture media.

    +
    +
    + + cameraPosition + + +
    +

    the back or front camera

    +
    +
    + + length + + +
    +

    the duration of the video created, in seconds

    +
    +
    + + ghostFrameEnabled + + +
    +

    whether the ghost frame feature is enabled or not

    +
    +
    + + filterType + + +
    +

    what filter was applied when capturing media. nil when feature is disabled

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + logFlipCamera() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the flip camera button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logFlipCamera()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logDeleteSegment() + +
    +
    +
    +
    +
    +
    +

    Logs an event when a segment is deleted

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logDeleteSegment()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logFlashToggled() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the flash button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logFlashToggled()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the image preview button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logImagePreviewToggled(enabled: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logUndoTapped() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the undo button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logUndoTapped()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logNextTapped() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the preview button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logNextTapped()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logPreviewDismissed() + +
    +
    +
    +
    +
    +
    +

    Logs an event if the preview screen is closed without exporting media

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logPreviewDismissed()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logMovedClip() + +
    +
    +
    +
    +
    +
    +

    Logs an event when a media clip is moved

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logMovedClip()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logPinchedZoom() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the user pinches to zoom

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logPinchedZoom()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logSwipedZoom() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the user swipes up while recording to zoom

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logSwipedZoom()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the confirm button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logConfirmedMedia(mode: CameraMode, clipsCount: Int, length: TimeInterval)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + mode + + +
    +

    the mode used to create the media

    +
    +
    + + clipsCount + + +
    +

    the number of clips used, if a video

    +
    +
    + + length + + +
    +

    the duration of the video created, in seconds

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the filters selector is opened

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logOpenFiltersSelector()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when a filter is selected

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logFilterSelected(filterType: FilterType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + filterType + + +
    +

    The selected filter

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + logMediaPickerOpen() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logMediaPickerOpen()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logMediaPickerDismiss()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logMediaPickerPickedMedia(ofType mediaType: KanvasMediaType)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorOpen() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorOpen()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorBack() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorBack()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the filters button is tapped in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorFiltersOpen()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when a filter is selected in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorFilterSelected(filterType: FilterType)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the drawing button is tapped in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingOpen()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the stroke size is changed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingChangeStrokeSize(strokeSize: Float)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + strokeSize + + +
    +

    the size of the stroke, between 0 and 1

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the brush is changed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingChangeBrush(brushType: KanvasBrushType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + brushType + + +
    +

    the brush that was selected

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when someone selects a color

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingChangeColor(selectionTool: KanvasColorSelectionTool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + selectionTool + + +
    +

    the color selection tool used

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when someone draws

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawStroke(brushType: KanvasBrushType, strokeSize: Float, drawType: KanvasDrawingAction)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + brushType + + +
    +

    the brush that was selected

    +
    +
    + + strokeSize + + +
    +

    the size of the stroke, between 0 and 1

    +
    +
    + + drawType + + +
    +

    the type of drawing action performed

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when someone undoes a drawing or erasing action

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingUndo()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when someone uses the eraser

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingEraser(brushType: KanvasBrushType, strokeSize: Float, drawType: KanvasDrawingAction)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + brushType + + +
    +

    the brush that was selected

    +
    +
    + + strokeSize + + +
    +

    the size of the stroke, between 0 and 1

    +
    +
    + + drawType + + +
    +

    the type of erasing action performed

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when someone confirms drawing

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingConfirm()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorTextAdd() + +
    +
    +
    +
    +
    +
    +

    Logs an event when tapping the text tool to add a new text overlay

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextAdd()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorTextEdit() + +
    +
    +
    +
    +
    +
    +

    Logs an event when tapping on an existing text overlay to edit it

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextEdit()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when a text overlay is confirmed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextConfirm(isNew: Bool, font: KanvasTextFont, alignment: KanvasTextAlignment, highlighted: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + isNew + + +
    +

    whether this text overlay is newly added or not

    +
    +
    + + font + + +
    +

    the font

    +
    +
    + + alignment + + +
    +

    the text alignment

    +
    +
    + + highlighted + + +
    +

    whether the text is highlighted or not

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorTextMove() + +
    +
    +
    +
    +
    +
    +

    Logs an event when a text overlay is moved

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextMove()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorTextRemove() + +
    +
    +
    +
    +
    +
    +

    Logs an event when a text overlay is removed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextRemove()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the font is changed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextChange(font: KanvasTextFont)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + font + + +
    +

    the font

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the text alignment is changed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextChange(alignment: KanvasTextAlignment)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + alignment + + +
    +

    the text alignment

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the text highlight is changed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextChange(highlighted: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + highlighted + + +
    +

    whether the text is highlighted

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the text color changes

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextChange(color: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    Always true

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when media is created from the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorCreatedMedia(clipsCount: Int, length: TimeInterval)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when Kanvas is opened from the Dashboard

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logOpenFromDashboard(openAction: KanvasDashboardOpenAction)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + openAction + + +
    +

    the way Kanvas was opened - either a swipe or a tap

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when Kanvas is dismissed from the Dashboard

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logDismissFromDashboard(dismissAction: KanvasDashboardDismissAction)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + dismissAction + + +
    +

    the way Kanvas was dismissed - either a swipe or a tap

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when someone posts from Kanvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logPostFromDashboard()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when someone changes the blog to post to

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logChangeBlogForPostFromDashboard()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when someone only saves media from Kanvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logSaveFromDashboard()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when someone opens compose from Kanvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logOpenComposeFromDashboard()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorTagTapped() + +
    +
    +
    +
    +
    +
    +

    Logs when someone taps the tag button in the Editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTagTapped()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when the Create icon is presented in the Dashboard header

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logIconPresentedOnDashboard()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when the Media Drawer is opened

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorMediaDrawerOpen()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when the Media Drawer is closed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorMediaDrawerClosed()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when the stickers tab is selected in the Media Drawer

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorMediaDrawerSelectStickers()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when a sticker pack is selected in the Media Drawer

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorStickerPackSelect(stickerPackId: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + stickerPackId + + +
    +

    the ID of the sticker pack that was selected

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when a sticker is added in the canvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorStickerAdd(stickerId: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + stickerId + + +
    +

    the ID of the sticker that was added

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when a sticker is removed from the canvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorStickerRemove(stickerId: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + stickerId + + +
    +

    the ID of the sticker that was removed

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when a sticker is moved through the canvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorStickerMove(stickerId: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + stickerId + + +
    +

    the ID of the sticker that was moved

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFButtonToggle(_ value: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorGIFOpen() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFOpen()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFOpenTrim()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFOpenSpeed()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorGIFRevert() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFRevert()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFConfirm(duration: TimeInterval, playbackMode: KanvasGIFPlaybackMode, speed: Float)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFChange(playbackMode: KanvasGIFPlaybackMode)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFChange(speed: Float)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFChange(trimStart: TimeInterval, trimEnd: TimeInterval)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when the “next” button that opens APO is pressed in the Editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logAdvancedOptionsOpen(page: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + page + + +
    +

    page presenting the post options

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/KanvasCancelable.html b/docs/Protocols/KanvasCancelable.html new file mode 100644 index 000000000..ff4986847 --- /dev/null +++ b/docs/Protocols/KanvasCancelable.html @@ -0,0 +1,315 @@ + + + + KanvasCancelable Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasCancelable

+
+
+ +
public protocol KanvasCancelable
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + cancel() + +
    +
    +
    +
    +
    +
    +

    Cancels the running operation.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cancel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/KanvasQuickBlogSelectorCoordinating.html b/docs/Protocols/KanvasQuickBlogSelectorCoordinating.html new file mode 100644 index 000000000..54dbc9728 --- /dev/null +++ b/docs/Protocols/KanvasQuickBlogSelectorCoordinating.html @@ -0,0 +1,396 @@ + + + + KanvasQuickBlogSelectorCoordinating Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasQuickBlogSelectorCoordinating

+
+
+ +
public protocol KanvasQuickBlogSelectorCoordinating
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func present(presentingView: UIView, fromPoint: CGPoint)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dismiss() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dismiss()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func touchDidMoveToPoint(_ location: CGPoint)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + avatarView(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func avatarView(frame: CGRect) -> UIView?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/KanvasStickerLoader.html b/docs/Protocols/KanvasStickerLoader.html new file mode 100644 index 000000000..0d4351946 --- /dev/null +++ b/docs/Protocols/KanvasStickerLoader.html @@ -0,0 +1,315 @@ + + + + KanvasStickerLoader Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasStickerLoader

+
+
+ +
public protocol KanvasStickerLoader
+ +
+
+

Undocumented

+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/Protocols/StickerProvider.html b/docs/Protocols/StickerProvider.html new file mode 100644 index 000000000..44dd98b9f --- /dev/null +++ b/docs/Protocols/StickerProvider.html @@ -0,0 +1,388 @@ + + + + StickerProvider Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

StickerProvider

+
+
+ +
public protocol StickerProvider
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + getStickerTypes() + +
    +
    +
    +
    +
    +
    +

    Starts an API call to fetch the sticker types.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func getStickerTypes()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets a StickerProviderDelegate in StickerProvider

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func setDelegate(delegate: StickerProviderDelegate)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + delegate + + +
    +

    the new delegate.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + loader() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func loader() -> KanvasStickerLoader?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Protocols/StickerProviderDelegate.html b/docs/Protocols/StickerProviderDelegate.html new file mode 100644 index 000000000..3ce06f6f1 --- /dev/null +++ b/docs/Protocols/StickerProviderDelegate.html @@ -0,0 +1,334 @@ + + + + StickerProviderDelegate Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

StickerProviderDelegate

+
+
+ +
public protocol StickerProviderDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Callback for when the sticker request has finished loading

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didLoadStickerTypes(_ stickerTypes: [StickerType])
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + stickerTypes + + +
    +

    the collection of sticker types from the API

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs.html b/docs/Structs.html new file mode 100644 index 000000000..5f7a56229 --- /dev/null +++ b/docs/Structs.html @@ -0,0 +1,515 @@ + + + + Structures Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Structures

+

The following structures are available globally.

+ +
+
+
+
+ + +
+ +

Default Colors

+

+
+
+
    +
  • +
    + + + + KanvasCameraColors + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct KanvasCameraColors
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasCameraFonts + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct KanvasCameraFonts
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Sticker + +
    +
    +
    +
    +
    +
    +

    A representation of a sticker in the media drawer

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Sticker
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + StickerType + +
    +
    +
    +
    +
    +
    +

    A representation of a sticker type in the media drawer

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct StickerType : Equatable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + GLU + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct GLU
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraFeatures + +
    +
    +
    +
    +
    +
    +

    Struct which represents all camera features which are the same value for the duration of a camera session.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CameraFeatures
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasDevice + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct KanvasDevice
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaInfoSimple + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct MediaInfoSimple
    +
    extension MediaInfoSimple: Codable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs/CameraFeatures.html b/docs/Structs/CameraFeatures.html new file mode 100644 index 000000000..f8a9b1561 --- /dev/null +++ b/docs/Structs/CameraFeatures.html @@ -0,0 +1,814 @@ + + + + CameraFeatures Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CameraFeatures

+
+
+ +
public struct CameraFeatures
+ +
+
+

Struct which represents all camera features which are the same value for the duration of a camera session.

+ +
+
+
+
    +
  • +
    + + + + ghostFrame + +
    +
    +
    +
    +
    +
    +

    The Ghost Frame feature

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ghostFrame: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + openGLPreview + +
    +
    +
    +
    +
    +
    +

    The OpenGL Camera Preview feature

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var openGLPreview: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + openGLCapture + +
    +
    +
    +
    +
    +
    +

    The OpenGL Camera Capture feature

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var openGLCapture: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + metalPreview + +
    +
    +
    +
    +
    +
    +

    The metal camera preview feature. When openGLPreview is true, this will be ignored.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var metalPreview: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraFilters + +
    +
    +
    +
    +
    +
    +

    The Camera Filters feature +This enables the UI to select filters in the camera.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var cameraFilters: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + metalFilters + +
    +
    +
    +
    +
    +
    +

    This enables metal backed filteres

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var metalFilters: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The Experimental Camera Filters feature +This adds experimental filters to the end of the filters picker.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var experimentalCameraFilters: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editor + +
    +
    +
    +
    +
    +
    +

    The Editor feature +This replaces the Preview screen with the Editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editor: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorGIFMaker + +
    +
    +
    +
    +
    +
    +

    The Editor GIF maker menu +This makes the GIF button open the GIF tools.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorGIFMaker: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorFilters + +
    +
    +
    +
    +
    +
    +

    The Editor Filters feature +This enables the UI to select filters in the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorFilters: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorText + +
    +
    +
    +
    +
    +
    +

    The Editor Text feature +This enables the UI to write text in the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorText: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorMedia + +
    +
    +
    +
    +
    +
    +

    The Editor Media feature +This enables the UI to select media in the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorMedia: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorDrawing + +
    +
    +
    +
    +
    +
    +

    The Editor Drawing feature +This enables the UI to draw in the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorDrawing: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + mediaPicking + +
    +
    +
    +
    +
    +
    +

    The Media Picker feature +This enables the UI to pick media instead of using the camera.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var mediaPicking: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorPosting + +
    +
    +
    +
    +
    +
    +

    The Editor Posting feature +This enables the UI to post media from the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorPosting: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorPostOptions + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorPostOptions: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorSaving + +
    +
    +
    +
    +
    +
    +

    The Editor Saving feature +This enables the UI to save media from the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorSaving: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + newCameraModes + +
    +
    +
    +
    +
    +
    +

    The New Camera Modes +This replaces Capture, Photo and Loop modes with Normal, Stitch and GIF modes

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var newCameraModes: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + gifs + +
    +
    +
    +
    +
    +
    +

    GIF support +This enables GIFs to be picked from the media picker, and exported from the Editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var gifs: Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs/GLU.html b/docs/Structs/GLU.html new file mode 100644 index 000000000..3e94b4db4 --- /dev/null +++ b/docs/Structs/GLU.html @@ -0,0 +1,431 @@ + + + + GLU Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

GLU

+
+
+ +
public struct GLU
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Compile a shader from the provided source(s)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public static func compileShader(_ target: GLenum, _ count: GLsizei, _ sources: UnsafePointer<UnsafePointer<GLchar>?>, _ shader: inout GLuint) -> GLint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + linkProgram(_:) + +
    +
    +
    +
    +
    +
    +

    Link a program with all currently attached shaders

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func linkProgram(_ program: GLuint) -> GLint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + validateProgram(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func validateProgram(_ program: GLuint) -> GLint
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func getUniformLocation(_ program: GLuint, _ uniformName: String) -> GLint
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public static func createProgram(_ _vertSource: UnsafePointer<GLchar>?,
    +    _ _fragSource: UnsafePointer<GLchar>?,
    +    _ attribNames: [String],
    +    _ attribLocations: [GLuint],
    +    _ uniformNames: [String],
    +    _ uniformLocations: inout [GLint],
    +    _ program: inout GLuint) -> GLint
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs/KanvasCameraColors.html b/docs/Structs/KanvasCameraColors.html new file mode 100644 index 000000000..d93f27c46 --- /dev/null +++ b/docs/Structs/KanvasCameraColors.html @@ -0,0 +1,368 @@ + + + + KanvasCameraColors Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasCameraColors

+
+
+ +
public struct KanvasCameraColors
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + shared + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var shared: KanvasCameraColors
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Clip collection

+

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/Structs/KanvasCameraFonts.html b/docs/Structs/KanvasCameraFonts.html new file mode 100644 index 000000000..a6196fddb --- /dev/null +++ b/docs/Structs/KanvasCameraFonts.html @@ -0,0 +1,438 @@ + + + + KanvasCameraFonts Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasCameraFonts

+
+
+ +
public struct KanvasCameraFonts
+ +
+
+

Undocumented

+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/Structs/KanvasCameraFonts/CameraPermissions.html b/docs/Structs/KanvasCameraFonts/CameraPermissions.html new file mode 100644 index 000000000..c745eccd6 --- /dev/null +++ b/docs/Structs/KanvasCameraFonts/CameraPermissions.html @@ -0,0 +1,317 @@ + + + + CameraPermissions Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Structs/KanvasCameraFonts/Drawer.html b/docs/Structs/KanvasCameraFonts/Drawer.html new file mode 100644 index 000000000..8d533f7fa --- /dev/null +++ b/docs/Structs/KanvasCameraFonts/Drawer.html @@ -0,0 +1,315 @@ + + + + Drawer Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/Structs/KanvasCameraFonts/Padding.html b/docs/Structs/KanvasCameraFonts/Padding.html new file mode 100644 index 000000000..d4b1edbe3 --- /dev/null +++ b/docs/Structs/KanvasCameraFonts/Padding.html @@ -0,0 +1,318 @@ + + + + Padding Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Padding

+
+
+ +
public struct Padding
+ +
+
+

Undocumented

+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/Structs/KanvasDevice.html b/docs/Structs/KanvasDevice.html new file mode 100644 index 000000000..8351f5352 --- /dev/null +++ b/docs/Structs/KanvasDevice.html @@ -0,0 +1,342 @@ + + + + KanvasDevice Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasDevice

+
+
+ +
public struct KanvasDevice
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + isRunningInSimulator + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let isRunningInSimulator: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + belongsToIPhoneXGroup + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let belongsToIPhoneXGroup: Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs/MediaInfoSimple.html b/docs/Structs/MediaInfoSimple.html new file mode 100644 index 000000000..ff21e29a1 --- /dev/null +++ b/docs/Structs/MediaInfoSimple.html @@ -0,0 +1,372 @@ + + + + MediaInfoSimple Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

MediaInfoSimple

+
+
+ +
public struct MediaInfoSimple
+
extension MediaInfoSimple: Codable
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + Source + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum Source
    +
    extension MediaInfoSimple.Source: Codable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + source + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let source: Source
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(source:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(source: Source)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs/MediaInfoSimple/Source.html b/docs/Structs/MediaInfoSimple/Source.html new file mode 100644 index 000000000..039acadea --- /dev/null +++ b/docs/Structs/MediaInfoSimple/Source.html @@ -0,0 +1,422 @@ + + + + Source Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Source

+
+
+ +
public enum Source
+
extension MediaInfoSimple.Source: Codable
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + kanvas_camera + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case kanvas_camera
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + media_library + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case media_library
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(from:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(from decoder: Decoder) throws
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + encode(to:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func encode(to encoder: Encoder) throws
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + stringValue() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func stringValue() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs/Sticker.html b/docs/Structs/Sticker.html new file mode 100644 index 000000000..6a8f04f05 --- /dev/null +++ b/docs/Structs/Sticker.html @@ -0,0 +1,324 @@ + + + + Sticker Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Sticker

+
+
+ +
public struct Sticker
+ +
+
+

A representation of a sticker in the media drawer

+ +
+
+
+
+ + +
+ +

Initializers

+

+
+
+
    +
  • +
    + + + + init(id:imageUrl:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(id: String, imageUrl: String)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Structs/StickerType.html b/docs/Structs/StickerType.html new file mode 100644 index 000000000..6746dc77f --- /dev/null +++ b/docs/Structs/StickerType.html @@ -0,0 +1,363 @@ + + + + StickerType Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

StickerType

+
+
+ +
public struct StickerType : Equatable
+ +
+
+

A representation of a sticker type in the media drawer

+ +
+
+
+
+ + +
+ +

Initializers

+

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(id: String, imageUrl: String, stickers: [Sticker])
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Equatable

+

+
+
+
    +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func == (lhs: StickerType, rhs: StickerType) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/Typealiases.html b/docs/Typealiases.html new file mode 100644 index 000000000..3b76d097a --- /dev/null +++ b/docs/Typealiases.html @@ -0,0 +1,308 @@ + + + + Type Aliases Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/badge.svg b/docs/badge.svg new file mode 100644 index 000000000..ef2fdc228 --- /dev/null +++ b/docs/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 43% + + + 43% + + + diff --git a/docs/css/highlight.css b/docs/css/highlight.css new file mode 100644 index 000000000..d0db0e13b --- /dev/null +++ b/docs/css/highlight.css @@ -0,0 +1,200 @@ +/* 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/css/jazzy.css b/docs/css/jazzy.css new file mode 100644 index 000000000..5cdffe99c --- /dev/null +++ b/docs/css/jazzy.css @@ -0,0 +1,423 @@ +html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td { + background: transparent; + border: 0; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; } + +body { + background-color: #f2f2f2; + font-family: Helvetica, freesans, Arial, sans-serif; + font-size: 14px; + -webkit-font-smoothing: subpixel-antialiased; + word-wrap: break-word; } + +h1, h2, h3 { + margin-top: 0.8em; + margin-bottom: 0.3em; + font-weight: 100; + color: black; } + +h1 { + font-size: 2.5em; } + +h2 { + font-size: 2em; + border-bottom: 1px solid #e2e2e2; } + +h4 { + font-size: 13px; + line-height: 1.5; + margin-top: 21px; } + +h5 { + font-size: 1.1em; } + +h6 { + font-size: 1.1em; + color: #777; } + +.section-name { + color: gray; + display: block; + font-family: Helvetica; + font-size: 22px; + font-weight: 100; + margin-bottom: 15px; } + +pre, code { + font: 0.95em Menlo, monospace; + color: #777; + word-wrap: normal; } + +p code, li code { + background-color: #eee; + padding: 2px 4px; + border-radius: 4px; } + +pre > code { + padding: 0; } + +a { + color: #0088cc; + text-decoration: none; } + a code { + color: inherit; } + +ul { + padding-left: 15px; } + +li { + line-height: 1.8em; } + +img { + max-width: 100%; } + +blockquote { + margin-left: 0; + padding: 0 10px; + border-left: 4px solid #ccc; } + +.content-wrapper { + margin: 0 auto; + width: 980px; } + +header { + font-size: 0.85em; + line-height: 32px; + background-color: #414141; + position: fixed; + width: 100%; + z-index: 3; } + header img { + padding-right: 6px; + vertical-align: -4px; + height: 16px; } + header a { + color: #fff; } + header p { + float: left; + color: #999; } + header .header-right { + float: right; + margin-left: 16px; } + +#breadcrumbs { + background-color: #f2f2f2; + height: 21px; + padding-top: 17px; + position: fixed; + width: 100%; + z-index: 2; + margin-top: 32px; } + #breadcrumbs #carat { + height: 10px; + margin: 0 5px; } + +.sidebar { + background-color: #f9f9f9; + border: 1px solid #e2e2e2; + overflow-y: auto; + overflow-x: hidden; + position: fixed; + top: 70px; + bottom: 0; + width: 230px; + word-wrap: normal; } + +.nav-groups { + list-style-type: none; + background: #fff; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #e2e2e2; + font-size: 1.1em; + font-weight: 100; + padding: 15px 0 15px 20px; } + .nav-group-name > a { + color: #333; } + +.nav-group-tasks { + margin-top: 5px; } + +.nav-group-task { + font-size: 0.9em; + list-style-type: none; + white-space: nowrap; } + .nav-group-task a { + color: #888; } + +.main-content { + background-color: #fff; + border: 1px solid #e2e2e2; + margin-left: 246px; + position: absolute; + overflow: hidden; + padding-bottom: 20px; + top: 70px; + width: 734px; } + .main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote { + margin-bottom: 1em; } + .main-content p { + line-height: 1.8em; } + .main-content section .section:first-child { + margin-top: 0; + padding-top: 0; } + .main-content section .task-group-section .task-group:first-of-type { + padding-top: 10px; } + .main-content section .task-group-section .task-group:first-of-type .section-name { + padding-top: 15px; } + .main-content section .heading:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + .main-content .section-name p { + margin-bottom: inherit; + line-height: inherit; } + .main-content .section-name code { + background-color: inherit; + padding: inherit; + color: inherit; } + +.section { + padding: 0 25px; } + +.highlight { + background-color: #eee; + padding: 10px 12px; + border: 1px solid #e2e2e2; + border-radius: 4px; + overflow-x: auto; } + +.declaration .highlight { + overflow-x: initial; + padding: 0 40px 40px 0; + margin-bottom: -25px; + background-color: transparent; + border: none; } + +.section-name { + margin: 0; + margin-left: 18px; } + +.task-group-section { + margin-top: 10px; + padding-left: 6px; + border-top: 1px solid #e2e2e2; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + +.section-name-container { + position: relative; + display: inline-block; } + .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 { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + .item code { + background-color: transparent; + padding: 0; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 35px; + font-size: 11.9px; + transition: all 300ms; } + .item .token-open { + margin-left: 20px; } + .item .discouraged { + text-decoration: line-through; } + .item .declaration-note { + font-size: .85em; + color: gray; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #e2e2e2; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + background: #f9f9f9; + border-left: 1px solid #e2e2e2; + border-top: 1px solid #e2e2e2; + height: 12px; + left: 21px; + top: -7px; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + position: absolute; + width: 12px; } + +.height-container { + display: none; + left: -25px; + padding: 0 25px; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #f9f9f9; + border-bottom: 1px solid #e2e2e2; + left: -25px; + position: relative; + width: 100%; + padding-top: 10px; + padding-bottom: 5px; } + +.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: #4b8afb; } + +.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 #e2e2e2; + 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 { + position: relative; + top: 10px; + bottom: 0px; + margin-left: 25px; } + #footer p { + margin: 0; + color: #aaa; + font-size: 0.8em; } + +html.dash header, html.dash #breadcrumbs, html.dash .sidebar { + display: none; } + +html.dash .main-content { + width: 980px; + margin-left: 0; + border: none; + width: 100%; + top: 0; + padding-bottom: 0; } + +html.dash .height-container { + display: block; } + +html.dash .item .token { + margin-left: 0; } + +html.dash .content-wrapper { + width: auto; } + +html.dash #footer { + position: static; } + +form[role=search] { + float: right; } + form[role=search] input { + font: Helvetica, freesans, Arial, sans-serif; + margin-top: 6px; + font-size: 13px; + line-height: 20px; + padding: 0px 10px; + 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: #fff; + color: #333; + border: 1px solid #e2e2e2; + z-index: 4; } + form[role=search] .tt-highlight { + font-weight: bold; } + form[role=search] .tt-suggestion { + font: Helvetica, freesans, Arial, sans-serif; + font-size: 14px; + 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/KanvasCamera.docset/Contents/Info.plist b/docs/docsets/KanvasCamera.docset/Contents/Info.plist new file mode 100644 index 000000000..85c502f72 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleIdentifier + com.jazzy.kanvascamera + CFBundleName + KanvasCamera + DocSetPlatformFamily + kanvascamera + isDashDocset + + dashIndexFilePath + index.html + isJavaScriptEnabled + + DashDocSetFamily + dashtoc + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes.html new file mode 100644 index 000000000..f44541a5b --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes.html @@ -0,0 +1,417 @@ + + + + Classes Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Classes

+

The following classes are available globally.

+ +
+
+
+
    +
  • +
    + + + + CameraController + +
    +
    +
    +
    +
    +
    +

    A controller that contains and layouts all camera handling views and controllers (mode selector, input, etc).

    +
    +

    Seealso

    + CameraControllerDelegate for methods to customize the controller and handle the output + +
    +

    Seealso

    + CameraSettings for customization options for the controller + +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class CameraController : UIViewController, MediaClipsEditorDelegate, CameraPreviewControllerDelegate, EditorControllerDelegate, CameraZoomHandlerDelegate, OptionsControllerDelegate, ModeSelectorAndShootControllerDelegate, CameraViewDelegate, CameraInputControllerDelegate, FilterSettingsControllerDelegate, CameraPermissionsViewControllerDelegate, KanvasMediaPickerViewControllerDelegate, MediaPickerThumbnailFetcherDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + EditorViewController + +
    +
    +
    +
    +
    +
    +

    A view controller to edit the segments

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public final class EditorViewController : UIViewController, MediaPlayerController, EditorViewDelegate, KanvasEditorMenuControllerDelegate, EditorFilterControllerDelegate, DrawingControllerDelegate, EditorTextControllerDelegate, MediaDrawerControllerDelegate, GifMakerHandlerDelegate, MediaPlayerDelegate
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraSettings + +
    +
    +
    +
    +
    +
    +

    A class that defines the settings for the Kanvas Camera. See each property for further description.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public final class CameraSettings : NSObject
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

EasyTipView class implementation

+

+
+
+
    +
  • +
    + + + + EasyTipView + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class EasyTipView : UIView
    +
    extension EasyTipView: UIGestureRecognizerDelegate
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/CameraController.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/CameraController.html new file mode 100644 index 000000000..ffa47ae83 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/CameraController.html @@ -0,0 +1,1115 @@ + + + + CameraController Class Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CameraController

+
+
+ +
public class CameraController : UIViewController, MediaClipsEditorDelegate, CameraPreviewControllerDelegate, EditorControllerDelegate, CameraZoomHandlerDelegate, OptionsControllerDelegate, ModeSelectorAndShootControllerDelegate, CameraViewDelegate, CameraInputControllerDelegate, FilterSettingsControllerDelegate, CameraPermissionsViewControllerDelegate, KanvasMediaPickerViewControllerDelegate, MediaPickerThumbnailFetcherDelegate
+ +
+
+

A controller that contains and layouts all camera handling views and controllers (mode selector, input, etc).

+
+

Seealso

+ CameraControllerDelegate for methods to customize the controller and handle the output + +
+

Seealso

+ CameraSettings for customization options for the controller + +
+ +
+
+
+
    +
  • +
    + + + + delegate + +
    +
    +
    +
    +
    +
    +

    The delegate for camera callback methods.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public weak var delegate: CameraControllerDelegate?
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Constructs a CameraController that will record from the device camera +and export the result to the device, saving to the phone all in between information +needed to attain the final output.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience public init(settings: CameraSettings, stickerProvider: StickerProvider?, analyticsProvider: KanvasCameraAnalyticsProvider?, quickBlogSelectorCoordinator: KanvasQuickBlogSelectorCoordinating?, tagCollection: UIView?)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var preferredStatusBarStyle: UIStatusBarStyle { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var preferredStatusBarUpdateAnimation: UIStatusBarAnimation { get }
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public var supportedInterfaceOrientations: UIInterfaceOrientationMask { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + requestAccess(_:) + +
    +
    +
    +
    +
    +
    +

    Requests permissions for video

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func requestAccess(_ completion: ((_ granted: Bool) -> ())?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    boolean on whether access was granted

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + logOpen() + +
    +
    +
    +
    +
    +
    +

    logs opening the camera

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func logOpen()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logDismiss() + +
    +
    +
    +
    +
    +
    +

    logs closing the camera

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func logDismiss()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

View Lifecycle

+

+
+
+
    +
  • +
    + + + + loadView() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func loadView()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidLoad() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidLoad()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + viewDidAppear(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public func viewDidAppear(_ animated: Bool)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

CameraPreviewControllerDelegate & EditorControllerDelegate

+

+
+
+ +
+
+
+ + +
+ +

breakdown

+

+
+
+
    +
  • +
    + + + + cleanup() + +
    +
    +
    +
    +
    +
    +

    This function should be called to stop the camera session and properly breakdown the inputs

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func cleanup()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + resetState() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func resetState()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Post Options Interaction

+

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/CameraSettings.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/CameraSettings.html new file mode 100644 index 000000000..a99eb3ce8 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/CameraSettings.html @@ -0,0 +1,1033 @@ + + + + CameraSettings Class Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CameraSettings

+
+
+ +
@objc
+public final class CameraSettings : NSObject
+ +
+
+

A class that defines the settings for the Kanvas Camera. See each property for further description.

+ +
+
+
+
+ + +
+ +

Modes

+

+
+
+
    +
  • +
    + + + + enabledModes + +
    +
    +
    +
    +
    +
    +

    Enables/disables modes.

    +
    +

    Note

    + Defaults to stop .stopMotion and .gif. + +
    +

    Note

    + The set can’t be empty. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var enabledModes: Set<CameraMode> { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + defaultMode + +
    +
    +
    +
    +
    +
    +

    Camera mode which starts active.

    +
    +

    Note

    + Defaults to .none, which will activate the first active +mode in the list. + +
    +

    Note

    + You can’t set as default mode one which is not enabled, it will be ignored. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var defaultMode: CameraMode? { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera Position settings

+

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Camera position option which starts active.

    +
    +

    Note

    + Defaults to back. + +
    +

    Note

    + Can’t be unspecified. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var defaultCameraPositionOption: AVCaptureDevice.Position { get set }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Flash settings

+

+
+
+
    +
  • +
    + + + + preferredFlashOption + +
    +
    +
    +
    +
    +
    +

    Flash option which starts active.

    +
    +

    Note

    + Defaults to flash off. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var preferredFlashOption: AVCaptureDevice.FlashMode
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + imagePreviewOption + +
    +
    +
    +
    +
    +
    +

    Fullscreen image preview which starts disabled.

    +
    +

    Note

    + Defaults to image preview off. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var imagePreviewOption: ImagePreviewMode
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Landscape support

+

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Whether the camera should be shown in landscape.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var cameraSupportsLandscape: Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Stop motion/stitch mode export settings

+

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Whether the camera controller allows exporting live photos as video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var exportStopMotionPhotoAsVideo: Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Camera features

+

+
+
+
    +
  • +
    + + + + features + +
    +
    +
    +
    +
    +
    +

    The features to enable/disable for the controller.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var features: CameraFeatures
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + topButtonsSwapped + +
    +
    +
    +
    +
    +
    +

    Buttons Swapped on the Camera View +This changes the position between the close icon and the rotate, flash, and ghost icons

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var topButtonsSwapped: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + crossIconInEditor + +
    +
    +
    +
    +
    +
    +

    Cross Icon In Editor +This changes back carat in the editor to a cross icon

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var crossIconInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showCogIconInEditor + +
    +
    +
    +
    +
    +
    +

    Cog icon in Editor +This sets a cog icon for the posting options button in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showCogIconInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showTagButtonInEditor + +
    +
    +
    +
    +
    +
    +

    Tag button in Editor +This shows a # button in the editor to enable adding tags

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showTagButtonInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Tag collection in Editor +This shows a collection of tags in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showTagCollectionInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Quick post button in Editor +This shows a post button that makes quick options appear when long pressed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showQuickPostButtonInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Long press for post button in Editor +This enables the long press for the quick post button.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var enableQuickPostLongPress: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Blog Switcher in Editor +This shows a blog switcher that makes quick options appear when long pressed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showBlogSwitcherInEditor: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editToolsRedesign + +
    +
    +
    +
    +
    +
    +

    Edit Tools Redesign +This shows the editor tools as a vertical collection.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editToolsRedesign: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + shutterButtonTooltip + +
    +
    +
    +
    +
    +
    +

    Shutter Button Tooltip +This shows the tooltip above the shutter.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var shutterButtonTooltip: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Horizontal Mode Selector +This shows a horizontal mode selector in the camera.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var horizontalModeSelector: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Auto-open GIF Maker in Editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func editorShouldStartGIFMaker(mode: CameraMode?) -> Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setEditorShouldStartGIFMaker(_ newValue: Bool)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Auto-open GIF Maker after GIF Camera

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var gifCameraShouldStartGIFMaker: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView.html new file mode 100644 index 000000000..54513daba --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView.html @@ -0,0 +1,627 @@ + + + + EasyTipView Class Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

EasyTipView

+
+
+ +
open class EasyTipView : UIView
+
extension EasyTipView: UIGestureRecognizerDelegate
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + ArrowPosition + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum ArrowPosition
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Preferences + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Preferences
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + backgroundColor + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open var backgroundColor: UIColor? { get set }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + description + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open var description: String { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + preferences + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    private(set) open var preferences: Preferences { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + text + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let text: String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Static variables

+

+
+
+
    +
  • +
    + + + + globalPreferences + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var globalPreferences: EasyTipView.Preferences
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(text: String, preferences: Preferences = EasyTipView.globalPreferences, delegate: EasyTipViewDelegate? = nil)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(coder:) + +
    +
    +
    +
    +
    +
    +

    NSCoding not supported. Use init(text, preferences, delegate) instead!

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    required public init?(coder aDecoder: NSCoder)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Private methods

+

+
+
+
    +
  • +
    + + + + draw(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    override open func draw(_ rect: CGRect)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

UIGestureRecognizerDelegate implementation

+

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/ArrowPosition.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/ArrowPosition.html new file mode 100644 index 000000000..e977234f0 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/ArrowPosition.html @@ -0,0 +1,423 @@ + + + + ArrowPosition Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

ArrowPosition

+
+
+ +
public enum ArrowPosition
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + any + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case any
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + top + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case top
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + bottom + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case bottom
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + right + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case right
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + left + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case left
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences.html new file mode 100644 index 000000000..07a8c155c --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences.html @@ -0,0 +1,507 @@ + + + + Preferences Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Preferences

+
+
+ +
public struct Preferences
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + Drawing + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Drawing
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Positioning + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Positioning
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Animating + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Animating
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + drawing + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var drawing: EasyTipView.Preferences.Drawing
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + positioning + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var positioning: EasyTipView.Preferences.Positioning
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + animating + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var animating: EasyTipView.Preferences.Animating
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + hasBorder + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var hasBorder: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Animating.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Animating.html new file mode 100644 index 000000000..597bf7086 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Animating.html @@ -0,0 +1,585 @@ + + + + Animating Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Animating

+
+
+ +
public struct Animating
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + dismissTransform + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var dismissTransform: CGAffineTransform
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showInitialTransform + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showInitialTransform: CGAffineTransform
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showFinalTransform + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showFinalTransform: CGAffineTransform
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + springDamping + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var springDamping: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + springVelocity + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var springVelocity: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showInitialAlpha + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showInitialAlpha: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dismissFinalAlpha + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var dismissFinalAlpha: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + showDuration + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var showDuration: Double
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dismissDuration + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var dismissDuration: Double
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dismissOnTap + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var dismissOnTap: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + gradientVelocity + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var gradientVelocity: Double
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Drawing.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Drawing.html new file mode 100644 index 000000000..bd9bce073 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Drawing.html @@ -0,0 +1,585 @@ + + + + Drawing Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Drawing

+
+
+ +
public struct Drawing
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + cornerRadius + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var cornerRadius: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arrowHeight + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var arrowHeight: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arrowWidth + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var arrowWidth: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + foregroundColor + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var foregroundColor: UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + backgroundColor + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var backgroundColor: UIColor
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var backgroundColorCollection: [UIColor]
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + arrowPosition + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var arrowPosition: EasyTipView.ArrowPosition
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + textAlignment + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var textAlignment: NSTextAlignment
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + borderWidth + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var borderWidth: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + borderColor + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var borderColor: UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + font + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var font: UIFont
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Positioning.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Positioning.html new file mode 100644 index 000000000..9fe3fb133 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EasyTipView/Preferences/Positioning.html @@ -0,0 +1,450 @@ + + + + Positioning Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Positioning

+
+
+ +
public struct Positioning
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + bubbleHInset + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var bubbleHInset: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + bubbleVInset + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var bubbleVInset: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + textHInset + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var textHInset: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + textVInset + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var textVInset: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + maxWidth + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var maxWidth: CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + margin + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var margin: CGFloat
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EditorViewController.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EditorViewController.html new file mode 100644 index 000000000..e9754bb36 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/EditorViewController.html @@ -0,0 +1,577 @@ + + + + EditorViewController Class Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

EditorViewController

+
+
+ +
public final class EditorViewController : UIViewController, MediaPlayerController, EditorViewDelegate, KanvasEditorMenuControllerDelegate, EditorFilterControllerDelegate, DrawingControllerDelegate, EditorTextControllerDelegate, MediaDrawerControllerDelegate, GifMakerHandlerDelegate, MediaPlayerDelegate
+ +
+
+

A view controller to edit the segments

+ +
+
+
+ +
+
+
+ + +
+ +

MediaPlayerController

+

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/LivePhotoLoader.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/LivePhotoLoader.html new file mode 100644 index 000000000..261f126fa --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Classes/LivePhotoLoader.html @@ -0,0 +1,345 @@ + + + + LivePhotoLoader Class Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (40% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

LivePhotoLoader

+
+
+ +
public class LivePhotoLoader
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + init(asset:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(asset: PHAsset)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func pairedVideo(completion: @escaping (URL?) -> Void)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums.html new file mode 100644 index 000000000..b71d23005 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums.html @@ -0,0 +1,697 @@ + + + + Enumerations Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Enumerations

+

The following enumerations are available globally.

+ +
+
+
+
    +
  • +
    + + + + KanvasBrushType + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasBrushType : Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasColorSelectionTool : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasDrawingAction + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasDrawingAction : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasTextFont + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasTextFont : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasTextAlignment + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasTextAlignment : Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasDashboardOpenAction : Int
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasDashboardDismissAction : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasMediaType + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasMediaType : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasGIFPlaybackMode + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum KanvasGIFPlaybackMode : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasCameraMedia + +
    +
    +
    +
    +
    +
    +

    Media wrapper for media generated from the CameraController

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum KanvasCameraMedia
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasExportAction + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum KanvasExportAction
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Setting to CameraOption conversion

+

+
+
+
    +
  • +
    + + + + ImagePreviewMode + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum ImagePreviewMode : CameraOptionConvertible
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + FilterType + +
    +
    +
    +
    +
    +
    +

    Filter types

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum FilterType : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraMode + +
    +
    +
    +
    +
    +
    +

    A set of camera modes which allow various types of captured media and exported formats.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum CameraMode : Int, OptionSelectorItem
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode.html new file mode 100644 index 000000000..5a051bb21 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode.html @@ -0,0 +1,563 @@ + + + + CameraMode Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CameraMode

+
+
+ +
@objc
+public enum CameraMode : Int, OptionSelectorItem
+ +
+
+

A set of camera modes which allow various types of captured media and exported formats.

+ +
+
+
+
    +
  • +
    + + + + stopMotion + +
    +
    +
    +
    +
    +
    +

    Capturing stop motions, a sequence of images and/or videos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case stopMotion = 0
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photo + +
    +
    +
    +
    +
    +
    +

    Capturing photos

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photo
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + loop + +
    +
    +
    +
    +
    +
    +

    Capturing gifs, a sequence of photos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case loop
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + normal + +
    +
    +
    +
    +
    +
    +

    Capturing single photo or single video.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case normal
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + stitch + +
    +
    +
    +
    +
    +
    +

    Capturing stop motions, a sequence of images and/or videos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case stitch
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + gif + +
    +
    +
    +
    +
    +
    +

    Capturing gifs, a sequence of photos.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case gif
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Group + +
    +
    +
    +
    +
    +
    +

    The type of media a CameraMode will produce.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum Group : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Quantity + +
    +
    +
    +
    +
    +
    +

    How many assets a CameraMode will produce.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public enum Quantity : Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + group + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var group: Group { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + quantity + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var quantity: Quantity { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode/Group.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode/Group.html new file mode 100644 index 000000000..11f49c46e --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode/Group.html @@ -0,0 +1,370 @@ + + + + Group Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Group

+
+
+ +
@objc
+public enum Group : Int
+ +
+
+

The type of media a CameraMode will produce.

+ +
+
+
+
    +
  • +
    + + + + video + +
    +
    +
    +
    +
    +
    +

    The mode creates a video from a sequence

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case video = 0
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + photo + +
    +
    +
    +
    +
    +
    +

    The mode creates a photo.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case photo
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + gif + +
    +
    +
    +
    +
    +
    +

    The mode creates a gif animation

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case gif
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode/Quantity.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode/Quantity.html new file mode 100644 index 000000000..8fc76596b --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/CameraMode/Quantity.html @@ -0,0 +1,343 @@ + + + + Quantity Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Quantity

+
+
+ +
@objc
+public enum Quantity : Int
+ +
+
+

How many assets a CameraMode will produce.

+ +
+
+
+
    +
  • +
    + + + + single + +
    +
    +
    +
    +
    +
    +

    The mode allows just one photo, video or gif.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case single = 0
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + multiple + +
    +
    +
    +
    +
    +
    +

    The mode creates a sequence of photos and/or videos

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case multiple
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/FilterType.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/FilterType.html new file mode 100644 index 000000000..42161dd75 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/FilterType.html @@ -0,0 +1,777 @@ + + + + FilterType Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

FilterType

+
+
+ +
@objc
+public enum FilterType : Int
+ +
+
+

Filter types

+ +
+
+
+
    +
  • +
    + + + + passthrough + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case passthrough = 0
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + wavePool + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case wavePool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + plasma + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case plasma
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + emInterference + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case emInterference
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + rgb + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case rgb
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lego + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lego
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + chroma + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case chroma
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + rave + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case rave
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + mirrorTwo + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case mirrorTwo
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + mirrorFour + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case mirrorFour
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + lightLeaks + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case lightLeaks
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + film + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case film
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + grayscale + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case grayscale
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + manga + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case manga
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + toon + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case toon
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + off + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case off
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + key() + +
    +
    +
    +
    +
    +
    +

    Logging key for a filter type +Returns a string representing the filter type, or nil if the FilterType is “off”,/ +which indicates that the feature is disabled.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func key() -> String?
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + filterApplied + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var filterApplied: Bool { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/ImagePreviewMode.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/ImagePreviewMode.html new file mode 100644 index 000000000..6be9b09ae --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/ImagePreviewMode.html @@ -0,0 +1,342 @@ + + + + ImagePreviewMode Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

ImagePreviewMode

+
+
+ +
public enum ImagePreviewMode : CameraOptionConvertible
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + on + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case on
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + off + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case off
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasBrushType.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasBrushType.html new file mode 100644 index 000000000..e7ea5f1af --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasBrushType.html @@ -0,0 +1,397 @@ + + + + KanvasBrushType Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasBrushType

+
+
+ +
@objc
+public enum KanvasBrushType : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + pencil + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case pencil
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + marker + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case marker
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + sharpie + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case sharpie
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasCameraMedia.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasCameraMedia.html new file mode 100644 index 000000000..cdc3bbec5 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasCameraMedia.html @@ -0,0 +1,396 @@ + + + + KanvasCameraMedia Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasCameraMedia

+
+
+ +
public enum KanvasCameraMedia
+ +
+
+

Media wrapper for media generated from the CameraController

+ +
+
+
+
    +
  • +
    + + + + image(_:_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case image(URL, MediaInfo, CGSize)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + video(_:_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case video(URL, MediaInfo, CGSize)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frames(_:_:_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case frames(URL, MediaInfo, CGSize)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + info + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var info: MediaInfo { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasColorSelectionTool.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasColorSelectionTool.html new file mode 100644 index 000000000..b31716e95 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasColorSelectionTool.html @@ -0,0 +1,397 @@ + + + + KanvasColorSelectionTool Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasColorSelectionTool

+
+
+ +
@objc
+public enum KanvasColorSelectionTool : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + swatch + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case swatch
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + gradient + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case gradient
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + eyedropper + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case eyedropper
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDashboardDismissAction.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDashboardDismissAction.html new file mode 100644 index 000000000..8a181f23d --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDashboardDismissAction.html @@ -0,0 +1,370 @@ + + + + KanvasDashboardDismissAction Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasDashboardDismissAction

+
+
+ +
@objc
+public enum KanvasDashboardDismissAction : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + tap + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tap
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + swipe + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case swipe
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDashboardOpenAction.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDashboardOpenAction.html new file mode 100644 index 000000000..f51710e1e --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDashboardOpenAction.html @@ -0,0 +1,370 @@ + + + + KanvasDashboardOpenAction Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasDashboardOpenAction

+
+
+ +
@objc
+public enum KanvasDashboardOpenAction : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + tap + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tap
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + swipe + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case swipe
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDrawingAction.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDrawingAction.html new file mode 100644 index 000000000..c1776d581 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasDrawingAction.html @@ -0,0 +1,397 @@ + + + + KanvasDrawingAction Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasDrawingAction

+
+
+ +
@objc
+public enum KanvasDrawingAction : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + tap + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case tap
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + fill + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case fill
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + stroke + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case stroke
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasExportAction.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasExportAction.html new file mode 100644 index 000000000..6812b08ef --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasExportAction.html @@ -0,0 +1,450 @@ + + + + KanvasExportAction Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasExportAction

+
+
+ +
public enum KanvasExportAction
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + previewConfirm + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case previewConfirm
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + confirm + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case confirm
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + post + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case post
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + save + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case save
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + postOptions + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case postOptions
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + confirmPostOptions + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case confirmPostOptions
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasGIFPlaybackMode.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasGIFPlaybackMode.html new file mode 100644 index 000000000..1f3364656 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasGIFPlaybackMode.html @@ -0,0 +1,397 @@ + + + + KanvasGIFPlaybackMode Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasGIFPlaybackMode

+
+
+ +
@objc
+public enum KanvasGIFPlaybackMode : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + loop + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case loop
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + rebound + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case rebound
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + reverse + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case reverse
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasMediaType.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasMediaType.html new file mode 100644 index 000000000..63357e8e9 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasMediaType.html @@ -0,0 +1,424 @@ + + + + KanvasMediaType Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasMediaType

+
+
+ +
@objc
+public enum KanvasMediaType : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + image + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case image
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + video + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case video
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + frames + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case frames
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + livePhoto + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case livePhoto
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasTextAlignment.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasTextAlignment.html new file mode 100644 index 000000000..c6a815df9 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasTextAlignment.html @@ -0,0 +1,424 @@ + + + + KanvasTextAlignment Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasTextAlignment

+
+
+ +
@objc
+public enum KanvasTextAlignment : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + left + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case left
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + center + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case center
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + right + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case right
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + from(alignment:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func from(alignment: NSTextAlignment?) -> KanvasTextAlignment?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasTextFont.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasTextFont.html new file mode 100644 index 000000000..25f908f6f --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Enums/KanvasTextFont.html @@ -0,0 +1,397 @@ + + + + KanvasTextFont Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasTextFont

+
+
+ +
@objc
+public enum KanvasTextFont : Int
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + regular + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case regular
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + script + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case script
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + string() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func string() -> String
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + from(font:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func from(font: UIFont?) -> KanvasTextFont?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions.html new file mode 100644 index 000000000..de0322217 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions.html @@ -0,0 +1,770 @@ + + + + Extensions Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Extensions

+

The following extensions are available globally.

+ +
+
+
+
    +
  • +
    + + + + AVAsset + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension AVAsset
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UITableViewCell + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UITableViewCell: Identifiable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UICollectionReusableView: Identifiable
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UITableViewHeaderFooterView: Identifiable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UICollectionView + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UICollectionView
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIColor + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension UIColor
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UIImage + +
    +
    +
    +
    +
    +
    +

    Extension for image flipping

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UIImage
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Setting to CameraOption conversion

+

+
+
+
    +
  • +
    + + + + AVCaptureDevice + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
  • +
  • +
    + + + + UInt8 + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UInt8: ExpressibleByBooleanLiteral
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Int32 + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Int32: ExpressibleByBooleanLiteral
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Int + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Int
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UInt + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UInt
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UInt32 + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UInt32
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + UInt64 + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UInt64
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Float + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Float
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Double + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Double
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CGFloat + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension CGFloat
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaInfo + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension MediaInfo
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/AVAsset.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/AVAsset.html new file mode 100644 index 000000000..8f1db3d47 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/AVAsset.html @@ -0,0 +1,314 @@ + + + + AVAsset Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

AVAsset

+
+
+ +
public extension AVAsset
+ +
+
+ +
+
+
+
    +
  • +
    + + + + videoScreenSize + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var videoScreenSize: CGSize? { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/CGFloat.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/CGFloat.html new file mode 100644 index 000000000..3a388f678 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/CGFloat.html @@ -0,0 +1,368 @@ + + + + CGFloat Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CGFloat

+
+
+ +
extension CGFloat
+ +
+
+ +
+
+
+
    +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + i + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var i: Int32 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Double.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Double.html new file mode 100644 index 000000000..3ff91cffc --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Double.html @@ -0,0 +1,341 @@ + + + + Double Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Double

+
+
+ +
extension Double
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Float.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Float.html new file mode 100644 index 000000000..6157afb6c --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Float.html @@ -0,0 +1,341 @@ + + + + Float Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Float

+
+
+ +
extension Float
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Int.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Int.html new file mode 100644 index 000000000..85e76246a --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Int.html @@ -0,0 +1,611 @@ + + + + Int Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Int

+
+
+ +
extension Int
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + b + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var b: Int8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ub + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ub: UInt8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + s + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var s: Int16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + us + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var us: UInt16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + i + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var i: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ui + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ui: UInt32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ul + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ul: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ll + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ll: Int64 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ull + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ull: UInt64 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Int32.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Int32.html new file mode 100644 index 000000000..6c5c4b5ac --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/Int32.html @@ -0,0 +1,637 @@ + + + + Int32 Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Int32

+
+
+ +
extension Int32: ExpressibleByBooleanLiteral
+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(booleanLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(booleanLiteral value: BooleanLiteralType)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + b + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var b: Int8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ub + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ub: UInt8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + s + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var s: Int16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + us + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var us: UInt16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ui + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ui: UInt32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + l + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var l: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ul + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ul: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ll + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ll: Int64 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ull + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ull: UInt64 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/MediaInfo.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/MediaInfo.html new file mode 100644 index 000000000..839ae76c5 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/MediaInfo.html @@ -0,0 +1,466 @@ + + + + MediaInfo Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

MediaInfo

+
+
+ +
extension MediaInfo
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + init(fromImage:) + +
    +
    +
    +
    +
    +
    +

    Reads media info from an image URL

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init?(fromImage url: URL)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(fromImageData:) + +
    +
    +
    +
    +
    +
    +

    Reads media info from image data

    +
    +

    Throws

    + when data cannot be read from url + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init?(fromImageData data: Data)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + fromImageData + + +
    +

    The Data representation of an image

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + write(toImage:) + +
    +
    +
    +
    +
    +
    +

    Writes media info to an image URL

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func write(toImage url: URL)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + toImage + + +
    +

    the image URL to write metadata to

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + init(fromVideoURL:) + +
    +
    +
    +
    +
    +
    +

    Reads media info from a video url

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init?(fromVideoURL url: URL)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func createAVMetadataItems() -> [AVMetadataItem]
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UICollectionView.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UICollectionView.html new file mode 100644 index 000000000..250c538cb --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UICollectionView.html @@ -0,0 +1,608 @@ + + + + UICollectionView Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UICollectionView

+
+
+ +
public extension UICollectionView
+ +
+
+ +
+
+
+
    +
  • +
    + + + + register(cell:) + +
    +
    +
    +
    +
    +
    +

    Registers a cell to be used by a UICollectionView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func register<T>(cell cellType: T.Type) where T : UICollectionViewCell
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + cellType + + +
    +

    A nibloadable collection view cell type +to take the identifier and nib from.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + register(header:) + +
    +
    +
    +
    +
    +
    +

    Registers a header to be used by a UICollectionView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func register<T>(header headerType: T.Type) where T : UICollectionReusableView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + headerType + + +
    +

    A nibloadable reusable view type +to take the identifier and nib from.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + register(footer:) + +
    +
    +
    +
    +
    +
    +

    Registers a footer to be used by a UICollectionView.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func register<T>(footer footerType: T.Type) where T : UICollectionReusableView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + footerType + + +
    +

    A nibloadable reusable view type +to take the identifier and nib from.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + dequeue(cell:for:) + +
    +
    +
    +
    +
    +
    +

    Returns a reusable cell of the type specified to be used and adds it +to the UICollectionView in the indexPath specified.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dequeue<T>(cell cellType: T.Type, for indexPath: IndexPath) -> T? where T : UICollectionViewCell
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + cellType + + +
    +

    A collection cell to take the identifier from.

    +
    +
    + + indexPath + + +
    +

    IndexPath where to add the cell to the collection view.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + dequeue(header:for:) + +
    +
    +
    +
    +
    +
    +

    Returns a reusable header of the type specified to be used and adds it +to the UICollectionView in the indexPath specified.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dequeue<T>(header headerType: T.Type, for indexPath: IndexPath) -> T? where T : UICollectionReusableView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + headerType + + +
    +

    A collection reusable header view to take the identifier from.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + dequeue(footer:for:) + +
    +
    +
    +
    +
    +
    +

    Returns a reusable footer of the type specified to be used and adds it +to the UICollectionView in the indexPath specified.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dequeue<T>(footer footerType: T.Type, for indexPath: IndexPath) -> T? where T : UICollectionReusableView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + footerType + + +
    +

    AA collection reusable footer view to take the identifier from.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dequeue<T>(view viewType: T.Type, ofKind kind: String, for indexPath: IndexPath) -> T? where T : UICollectionReusableView
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UIColor.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UIColor.html new file mode 100644 index 000000000..8431ddf6d --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UIColor.html @@ -0,0 +1,648 @@ + + + + UIColor Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UIColor

+
+
+ +
public extension UIColor
+ +
+
+ +
+
+
+
    +
  • +
    + + + + init(hex:alpha:) + +
    +
    +
    +
    +
    +
    +

    Create UIColor from the given hex value

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience init(hex: String, alpha: CGFloat = 1.0)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + hex + + +
    +

    String value to be converted to UIColor

    +
    +
    + + alpha + + +
    +

    Alpha of the color, defaults to 1

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + init(hex:alpha:) + +
    +
    +
    +
    +
    +
    +

    Create UIColor from the given hex Integer

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience init(hex: Int, alpha: CGFloat = 1.0)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + hex + + +
    +

    Int value to be converted to UIColor

    +
    +
    + + alpha + + +
    +

    Alpha of the color, defaults to 1

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + init(hex:alpha:) + +
    +
    +
    +
    +
    +
    +

    Create UIColor from the given 32-bit unsigned integer.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    convenience init(hex: UInt32, alpha: CGFloat = 1.0)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + hex + + +
    +

    UInt32 value to be converted to UIColor

    +
    +
    + + alpha + + +
    +

    Alpha of the color, defaults to 1

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + color(hex:) + +
    +
    +
    +
    +
    +
    +

    Create UIColor from the given hex Integer

    +
    +

    Note

    + Method is used to bridge objc without a large multi file rewrite + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc(colorWithHex:)
    +static func color(hex: UInt) -> UIColor
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + hex + + +
    +

    Int value to be converted to UIColor

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + matchingColor() + +
    +
    +
    +
    +
    +
    +

    Best matching color between black and white, based on the brightness of the current color.

    + +
      +
    • return: Black or white, depending on the brightness.
    • +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func matchingColor() -> UIColor
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Calculates the RGB color components of a color as a CGFloat value, even if it is the grayscale space. Values for red, green, and blue can be of any range due to API changes. Values between 0.0 - 1.0 are in the sRGB gamut range.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func calculateRGBComponents() -> (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Calculates the RGB color components of a color as an Integer value, even if it is the grayscale space. Values between 0.0 - 255.0 are in the sRGB gamut range.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func calculateRGBComponentIntegers() -> (red: Int, green: Int, blue: Int, alpha: Int)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + brighterThan(_:) + +
    +
    +
    +
    +
    +
    +

    Whether or not the color brightness is higher than a provided brightness value.

    + +
      +
    • return: YES if brightness is higher than the brightness value provided.
    • +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func brighterThan(_ brightnessValue: Double) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + brightnessValue + + +
    +

    A number that represents the brightness of a color. It ranges from 0.0 (black) to 1.0 (white).

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UIImage.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UIImage.html new file mode 100644 index 000000000..fc36d853f --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UIImage.html @@ -0,0 +1,346 @@ + + + + UIImage Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UIImage

+
+
+ +
extension UIImage
+ +
+
+

Extension for image flipping

+ +
+
+
+
    +
  • +
    + + + + flipLeftMirrored() + +
    +
    +
    +
    +
    +
    +

    Rotates an image 90° clockwise and flips it horizontally

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func flipLeftMirrored() -> UIImage?
    + +
    +
    +
    +

    Return Value

    +

    a copy of the original UIImage that has been rotated 90° clockwise and flipped horizontally

    +
    +
    +
    +
  • +
  • +
    + + + + init(pixelBuffer:) + +
    +
    +
    +
    +
    +
    +

    Create a new UIImage from a pixel buffer

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public convenience init?(pixelBuffer: CVPixelBuffer)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt.html new file mode 100644 index 000000000..c7ead10c8 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt.html @@ -0,0 +1,611 @@ + + + + UInt Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UInt

+
+
+ +
extension UInt
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + b + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var b: Int8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ub + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ub: UInt8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + s + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var s: Int16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + us + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var us: UInt16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + i + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var i: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ui + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ui: UInt32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + l + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var l: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ll + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ll: Int64 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ull + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ull: UInt64 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt32.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt32.html new file mode 100644 index 000000000..a8a2bbf07 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt32.html @@ -0,0 +1,611 @@ + + + + UInt32 Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UInt32

+
+
+ +
extension UInt32
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + b + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var b: Int8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ub + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ub: UInt8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + s + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var s: Int16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + us + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var us: UInt16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + i + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var i: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + l + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var l: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ul + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ul: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ll + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ll: Int64 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ull + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ull: UInt64 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt64.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt64.html new file mode 100644 index 000000000..a110c7f82 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt64.html @@ -0,0 +1,611 @@ + + + + UInt64 Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UInt64

+
+
+ +
extension UInt64
+ +
+
+ +
+
+
+
    +
  • +
    + + + + g + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var g: CGFloat { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + d + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var d: Double { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + f + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var f: Float { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + b + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var b: Int8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ub + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ub: UInt8 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + s + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var s: Int16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + us + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var us: UInt16 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + i + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var i: Int32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ui + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ui: UInt32 { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + l + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var l: Int { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ul + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ul: UInt { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + ll + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ll: Int64 { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt8.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt8.html new file mode 100644 index 000000000..edfbb5e93 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Extensions/UInt8.html @@ -0,0 +1,340 @@ + + + + UInt8 Extension Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

UInt8

+
+
+ +
extension UInt8: ExpressibleByBooleanLiteral
+ +
+
+ +
+
+
+
    +
  • +
    + + + + boolValue + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var boolValue: Bool { get }
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(booleanLiteral:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(booleanLiteral value: BooleanLiteralType)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols.html new file mode 100644 index 000000000..95af9e8e0 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols.html @@ -0,0 +1,566 @@ + + + + Protocols Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Protocols

+

The following protocols are available globally.

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    A protocol for injecting analytics into the KanvasCamera module

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc
    +public protocol KanvasCameraAnalyticsProvider
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol for dismissing CameraController +or exporting its created media.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol CameraControllerDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Protocol for camera editor controller methods

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol EditorControllerDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol KanvasQuickBlogSelectorCoordinating
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasCancelable + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol KanvasCancelable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasStickerLoader + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol KanvasStickerLoader
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol StickerProviderDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + StickerProvider + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol StickerProvider
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Identifiable + +
    +
    +
    +
    +
    +
    +

    Identifies an element.

    + +

    By default, it uses the type’s simple name; +except for NibLoadable components, it uses the nibname.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol Identifiable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + EasyTipViewDelegate + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol EasyTipViewDelegate : AnyObject
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/CameraControllerDelegate.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/CameraControllerDelegate.html new file mode 100644 index 000000000..b3c14c48e --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/CameraControllerDelegate.html @@ -0,0 +1,812 @@ + + + + CameraControllerDelegate Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CameraControllerDelegate

+
+
+ +
public protocol CameraControllerDelegate : AnyObject
+ +
+
+

Protocol for dismissing CameraController +or exporting its created media.

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    A function that is called when an image is exported.

    +
    +

    Seealso

    + enum KanvasCameraMedia + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didCreateMedia(_ cameraController: CameraController, media: KanvasCameraMedia?, exportAction: KanvasExportAction, error: Error?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + cameraController + + +
    +

    The CameraController which created the media.

    +
    +
    + + media + + +
    +

    KanvasCameraMedia - this is the media created in the controller (can be image, video, etc). nil if the export fails.

    +
    +
    + + exportAction + + +
    +

    The KanvasExportAction which triggered media creation.

    +
    +
    + + error + + +
    +

    Any error that occured when the media was exported. Could be present when media is nil.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    A function that is called when the main camera dismiss button is pressed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dismissButtonPressed(_ cameraController: CameraController)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + tagButtonPressed() + +
    +
    +
    +
    +
    +
    +

    Called when the tag button is pressed in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func tagButtonPressed()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorDismissed() + +
    +
    +
    +
    +
    +
    +

    Called when the editor is dismissed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editorDismissed()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called after the welcome tooltip is dismissed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didDismissWelcomeTooltip()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called to ask if welcome tooltip should be shown

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cameraShouldShowWelcomeTooltip() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    Whether the welcome tooltip should be shown.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called after the color selector tooltip is dismissed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didDismissColorSelectorTooltip()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called to ask if color selector tooltip should be shown

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editorShouldShowColorSelectorTooltip() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    Whether the color selector tooltip should be shown.

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called after the stroke animation has ended

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didEndStrokeSelectorAnimation()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called to ask if stroke selector animation should be shown

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editorShouldShowStrokeSelectorAnimation() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    Bool for animation

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when a drag interaction starts

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didBeginDragInteraction()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when a drag interaction ends

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didEndDragInteraction()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called when the permissions settings is shown but the app can’t change permissions (because they user manually disabled them).

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func openAppSettings(completion: ((Bool) -> ())?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    The completion block to call once the user is done with the settings screen.

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Obtains the quick post button for the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func getQuickPostButton(enableLongPress: Bool) -> UIView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + enableLongPress + + +
    +

    whether to enable the long press action for the button.

    +
    +
    +
    +
    +

    Return Value

    +

    the quick post button.

    +
    +
    +
    +
  • +
  • +
    + + + + getBlogSwitcher() + +
    +
    +
    +
    +
    +
    +

    Obtains the blog switcher for the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func getBlogSwitcher() -> UIView
    + +
    +
    +
    +

    Return Value

    +

    the blog switcher.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/EasyTipViewDelegate.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/EasyTipViewDelegate.html new file mode 100644 index 000000000..c5d08cf29 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/EasyTipViewDelegate.html @@ -0,0 +1,315 @@ + + + + EasyTipViewDelegate Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/EditorControllerDelegate.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/EditorControllerDelegate.html new file mode 100644 index 000000000..5fdcf70fd --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/EditorControllerDelegate.html @@ -0,0 +1,620 @@ + + + + EditorControllerDelegate Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

EditorControllerDelegate

+
+
+ +
public protocol EditorControllerDelegate : AnyObject
+ +
+
+

Protocol for camera editor controller methods

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    callback when finished exporting video clips.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didFinishExportingVideo(url: URL?, info: MediaInfo?, action: KanvasExportAction, mediaChanged: Bool)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    callback when finished exporting image

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didFinishExportingImage(image: UIImage?, info: MediaInfo?, action: KanvasExportAction, mediaChanged: Bool)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    callback when finished exporting frames

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didFinishExportingFrames(url: URL?, size: CGSize?, info: MediaInfo?, action: KanvasExportAction, mediaChanged: Bool)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    callback when dismissing controller without exporting

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dismissButtonPressed()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called after the color selector tooltip is dismissed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didDismissColorSelectorTooltip()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called to ask if color selector tooltip should be shown

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editorShouldShowColorSelectorTooltip() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    Bool for tooltip

    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called after the stroke animation has ended

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didEndStrokeSelectorAnimation()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Called to ask if stroke selector animation should be shown

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func editorShouldShowStrokeSelectorAnimation() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    Bool for animation

    +
    +
    +
    +
  • +
  • +
    + + + + tagButtonPressed() + +
    +
    +
    +
    +
    +
    +

    Called when the tag button is pressed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func tagButtonPressed()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Obtains the quick post button.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func getQuickPostButton(enableLongPress: Bool) -> UIView
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + enableLongPress + + +
    +

    whether to enable the long press action for the button.

    +
    +
    +
    +
    +

    Return Value

    +

    the quick post button.

    +
    +
    +
    +
  • +
  • +
    + + + + getBlogSwitcher() + +
    +
    +
    +
    +
    +
    +

    Obtains the blog switcher.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func getBlogSwitcher() -> UIView
    + +
    +
    +
    +

    Return Value

    +

    the blog switcher.

    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/Identifiable.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/Identifiable.html new file mode 100644 index 000000000..d65b80795 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/Identifiable.html @@ -0,0 +1,326 @@ + + + + Identifiable Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Identifiable

+
+
+ +
public protocol Identifiable
+ +
+
+

Identifies an element.

+ +

By default, it uses the type’s simple name; +except for NibLoadable components, it uses the nibname.

+ +
+
+
+
    +
  • +
    + + + + identifier + + + Default implementation + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +

    Default Implementation

    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    static var identifier: String { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasCameraAnalyticsProvider.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasCameraAnalyticsProvider.html new file mode 100644 index 000000000..b3cb3709f --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasCameraAnalyticsProvider.html @@ -0,0 +1,2626 @@ + + + + KanvasCameraAnalyticsProvider Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasCameraAnalyticsProvider

+
+
+ +
@objc
+public protocol KanvasCameraAnalyticsProvider
+ +
+
+

A protocol for injecting analytics into the KanvasCamera module

+ +
+
+
+
    +
  • +
    + + + + logCameraOpen(mode:) + +
    +
    +
    +
    +
    +
    +

    Logs an event when the camera is opened

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logCameraOpen(mode: CameraMode)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + mode + + +
    +

    what photo mode was opened

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + logDismiss() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the camera is dismissed without exporting media

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logDismiss()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when media is captured

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logCapturedMedia(type: CameraMode, cameraPosition: AVCaptureDevice.Position, length: TimeInterval, ghostFrameEnabled: Bool, filterType: FilterType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + +
    + + type + + +
    +

    the camera mode used to capture media.

    +
    +
    + + cameraPosition + + +
    +

    the back or front camera

    +
    +
    + + length + + +
    +

    the duration of the video created, in seconds

    +
    +
    + + ghostFrameEnabled + + +
    +

    whether the ghost frame feature is enabled or not

    +
    +
    + + filterType + + +
    +

    what filter was applied when capturing media. nil when feature is disabled

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + logFlipCamera() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the flip camera button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logFlipCamera()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logDeleteSegment() + +
    +
    +
    +
    +
    +
    +

    Logs an event when a segment is deleted

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logDeleteSegment()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logFlashToggled() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the flash button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logFlashToggled()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the image preview button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logImagePreviewToggled(enabled: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logUndoTapped() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the undo button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logUndoTapped()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logNextTapped() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the preview button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logNextTapped()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logPreviewDismissed() + +
    +
    +
    +
    +
    +
    +

    Logs an event if the preview screen is closed without exporting media

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logPreviewDismissed()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logMovedClip() + +
    +
    +
    +
    +
    +
    +

    Logs an event when a media clip is moved

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logMovedClip()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logPinchedZoom() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the user pinches to zoom

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logPinchedZoom()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logSwipedZoom() + +
    +
    +
    +
    +
    +
    +

    Logs an event when the user swipes up while recording to zoom

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logSwipedZoom()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the confirm button is tapped

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logConfirmedMedia(mode: CameraMode, clipsCount: Int, length: TimeInterval)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + mode + + +
    +

    the mode used to create the media

    +
    +
    + + clipsCount + + +
    +

    the number of clips used, if a video

    +
    +
    + + length + + +
    +

    the duration of the video created, in seconds

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the filters selector is opened

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logOpenFiltersSelector()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when a filter is selected

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logFilterSelected(filterType: FilterType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + filterType + + +
    +

    The selected filter

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + logMediaPickerOpen() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logMediaPickerOpen()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logMediaPickerDismiss()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logMediaPickerPickedMedia(ofType mediaType: KanvasMediaType)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorOpen() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorOpen()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorBack() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorBack()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the filters button is tapped in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorFiltersOpen()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when a filter is selected in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorFilterSelected(filterType: FilterType)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the drawing button is tapped in the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingOpen()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the stroke size is changed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingChangeStrokeSize(strokeSize: Float)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + strokeSize + + +
    +

    the size of the stroke, between 0 and 1

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the brush is changed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingChangeBrush(brushType: KanvasBrushType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + brushType + + +
    +

    the brush that was selected

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when someone selects a color

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingChangeColor(selectionTool: KanvasColorSelectionTool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + selectionTool + + +
    +

    the color selection tool used

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when someone draws

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawStroke(brushType: KanvasBrushType, strokeSize: Float, drawType: KanvasDrawingAction)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + brushType + + +
    +

    the brush that was selected

    +
    +
    + + strokeSize + + +
    +

    the size of the stroke, between 0 and 1

    +
    +
    + + drawType + + +
    +

    the type of drawing action performed

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when someone undoes a drawing or erasing action

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingUndo()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when someone uses the eraser

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingEraser(brushType: KanvasBrushType, strokeSize: Float, drawType: KanvasDrawingAction)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + brushType + + +
    +

    the brush that was selected

    +
    +
    + + strokeSize + + +
    +

    the size of the stroke, between 0 and 1

    +
    +
    + + drawType + + +
    +

    the type of erasing action performed

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when someone confirms drawing

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorDrawingConfirm()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorTextAdd() + +
    +
    +
    +
    +
    +
    +

    Logs an event when tapping the text tool to add a new text overlay

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextAdd()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorTextEdit() + +
    +
    +
    +
    +
    +
    +

    Logs an event when tapping on an existing text overlay to edit it

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextEdit()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when a text overlay is confirmed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextConfirm(isNew: Bool, font: KanvasTextFont, alignment: KanvasTextAlignment, highlighted: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + +
    + + isNew + + +
    +

    whether this text overlay is newly added or not

    +
    +
    + + font + + +
    +

    the font

    +
    +
    + + alignment + + +
    +

    the text alignment

    +
    +
    + + highlighted + + +
    +

    whether the text is highlighted or not

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorTextMove() + +
    +
    +
    +
    +
    +
    +

    Logs an event when a text overlay is moved

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextMove()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorTextRemove() + +
    +
    +
    +
    +
    +
    +

    Logs an event when a text overlay is removed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextRemove()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the font is changed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextChange(font: KanvasTextFont)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + font + + +
    +

    the font

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the text alignment is changed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextChange(alignment: KanvasTextAlignment)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + alignment + + +
    +

    the text alignment

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the text highlight is changed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextChange(highlighted: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + highlighted + + +
    +

    whether the text is highlighted

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when the text color changes

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTextChange(color: Bool)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + color + + +
    +

    Always true

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when media is created from the editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorCreatedMedia(clipsCount: Int, length: TimeInterval)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when Kanvas is opened from the Dashboard

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logOpenFromDashboard(openAction: KanvasDashboardOpenAction)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + openAction + + +
    +

    the way Kanvas was opened - either a swipe or a tap

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs an event when Kanvas is dismissed from the Dashboard

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logDismissFromDashboard(dismissAction: KanvasDashboardDismissAction)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + dismissAction + + +
    +

    the way Kanvas was dismissed - either a swipe or a tap

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when someone posts from Kanvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logPostFromDashboard()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when someone changes the blog to post to

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logChangeBlogForPostFromDashboard()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when someone only saves media from Kanvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logSaveFromDashboard()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when someone opens compose from Kanvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logOpenComposeFromDashboard()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorTagTapped() + +
    +
    +
    +
    +
    +
    +

    Logs when someone taps the tag button in the Editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorTagTapped()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when the Create icon is presented in the Dashboard header

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logIconPresentedOnDashboard()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when the Media Drawer is opened

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorMediaDrawerOpen()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when the Media Drawer is closed

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorMediaDrawerClosed()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when the stickers tab is selected in the Media Drawer

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorMediaDrawerSelectStickers()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when a sticker pack is selected in the Media Drawer

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorStickerPackSelect(stickerPackId: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + stickerPackId + + +
    +

    the ID of the sticker pack that was selected

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when a sticker is added in the canvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorStickerAdd(stickerId: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + stickerId + + +
    +

    the ID of the sticker that was added

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when a sticker is removed from the canvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorStickerRemove(stickerId: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + stickerId + + +
    +

    the ID of the sticker that was removed

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when a sticker is moved through the canvas

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorStickerMove(stickerId: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + stickerId + + +
    +

    the ID of the sticker that was moved

    +
    +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFButtonToggle(_ value: Bool)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorGIFOpen() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFOpen()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFOpenTrim()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFOpenSpeed()
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + logEditorGIFRevert() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFRevert()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFConfirm(duration: TimeInterval, playbackMode: KanvasGIFPlaybackMode, speed: Float)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFChange(playbackMode: KanvasGIFPlaybackMode)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFChange(speed: Float)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logEditorGIFChange(trimStart: TimeInterval, trimEnd: TimeInterval)
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Logs when the “next” button that opens APO is pressed in the Editor

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func logAdvancedOptionsOpen(page: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + page + + +
    +

    page presenting the post options

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasCancelable.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasCancelable.html new file mode 100644 index 000000000..ff4986847 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasCancelable.html @@ -0,0 +1,315 @@ + + + + KanvasCancelable Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasCancelable

+
+
+ +
public protocol KanvasCancelable
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + cancel() + +
    +
    +
    +
    +
    +
    +

    Cancels the running operation.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func cancel()
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasQuickBlogSelectorCoordinating.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasQuickBlogSelectorCoordinating.html new file mode 100644 index 000000000..54dbc9728 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasQuickBlogSelectorCoordinating.html @@ -0,0 +1,396 @@ + + + + KanvasQuickBlogSelectorCoordinating Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasQuickBlogSelectorCoordinating

+
+
+ +
public protocol KanvasQuickBlogSelectorCoordinating
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func present(presentingView: UIView, fromPoint: CGPoint)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + dismiss() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func dismiss()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func touchDidMoveToPoint(_ location: CGPoint)
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + avatarView(frame:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func avatarView(frame: CGRect) -> UIView?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasStickerLoader.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasStickerLoader.html new file mode 100644 index 000000000..0d4351946 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/KanvasStickerLoader.html @@ -0,0 +1,315 @@ + + + + KanvasStickerLoader Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasStickerLoader

+
+
+ +
public protocol KanvasStickerLoader
+ +
+
+

Undocumented

+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/StickerProvider.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/StickerProvider.html new file mode 100644 index 000000000..44dd98b9f --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/StickerProvider.html @@ -0,0 +1,388 @@ + + + + StickerProvider Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

StickerProvider

+
+
+ +
public protocol StickerProvider
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + getStickerTypes() + +
    +
    +
    +
    +
    +
    +

    Starts an API call to fetch the sticker types.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func getStickerTypes()
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Sets a StickerProviderDelegate in StickerProvider

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func setDelegate(delegate: StickerProviderDelegate)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + delegate + + +
    +

    the new delegate.

    +
    +
    +
    +
    +
    +
  • +
  • +
    + + + + loader() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func loader() -> KanvasStickerLoader?
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/StickerProviderDelegate.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/StickerProviderDelegate.html new file mode 100644 index 000000000..3ce06f6f1 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Protocols/StickerProviderDelegate.html @@ -0,0 +1,334 @@ + + + + StickerProviderDelegate Protocol Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

StickerProviderDelegate

+
+
+ +
public protocol StickerProviderDelegate : AnyObject
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Callback for when the sticker request has finished loading

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func didLoadStickerTypes(_ stickerTypes: [StickerType])
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + stickerTypes + + +
    +

    the collection of sticker types from the API

    +
    +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs.html new file mode 100644 index 000000000..5f7a56229 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs.html @@ -0,0 +1,515 @@ + + + + Structures Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Structures

+

The following structures are available globally.

+ +
+
+
+
+ + +
+ +

Default Colors

+

+
+
+
    +
  • +
    + + + + KanvasCameraColors + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct KanvasCameraColors
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasCameraFonts + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct KanvasCameraFonts
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + Sticker + +
    +
    +
    +
    +
    +
    +

    A representation of a sticker in the media drawer

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct Sticker
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + StickerType + +
    +
    +
    +
    +
    +
    +

    A representation of a sticker type in the media drawer

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct StickerType : Equatable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + GLU + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct GLU
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + CameraFeatures + +
    +
    +
    +
    +
    +
    +

    Struct which represents all camera features which are the same value for the duration of a camera session.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct CameraFeatures
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + KanvasDevice + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct KanvasDevice
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + MediaInfoSimple + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct MediaInfoSimple
    +
    extension MediaInfoSimple: Codable
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/CameraFeatures.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/CameraFeatures.html new file mode 100644 index 000000000..f8a9b1561 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/CameraFeatures.html @@ -0,0 +1,814 @@ + + + + CameraFeatures Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

CameraFeatures

+
+
+ +
public struct CameraFeatures
+ +
+
+

Struct which represents all camera features which are the same value for the duration of a camera session.

+ +
+
+
+
    +
  • +
    + + + + ghostFrame + +
    +
    +
    +
    +
    +
    +

    The Ghost Frame feature

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var ghostFrame: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + openGLPreview + +
    +
    +
    +
    +
    +
    +

    The OpenGL Camera Preview feature

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var openGLPreview: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + openGLCapture + +
    +
    +
    +
    +
    +
    +

    The OpenGL Camera Capture feature

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var openGLCapture: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + metalPreview + +
    +
    +
    +
    +
    +
    +

    The metal camera preview feature. When openGLPreview is true, this will be ignored.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var metalPreview: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + cameraFilters + +
    +
    +
    +
    +
    +
    +

    The Camera Filters feature +This enables the UI to select filters in the camera.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var cameraFilters: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + metalFilters + +
    +
    +
    +
    +
    +
    +

    This enables metal backed filteres

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var metalFilters: Bool
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    The Experimental Camera Filters feature +This adds experimental filters to the end of the filters picker.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var experimentalCameraFilters: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editor + +
    +
    +
    +
    +
    +
    +

    The Editor feature +This replaces the Preview screen with the Editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editor: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorGIFMaker + +
    +
    +
    +
    +
    +
    +

    The Editor GIF maker menu +This makes the GIF button open the GIF tools.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorGIFMaker: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorFilters + +
    +
    +
    +
    +
    +
    +

    The Editor Filters feature +This enables the UI to select filters in the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorFilters: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorText + +
    +
    +
    +
    +
    +
    +

    The Editor Text feature +This enables the UI to write text in the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorText: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorMedia + +
    +
    +
    +
    +
    +
    +

    The Editor Media feature +This enables the UI to select media in the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorMedia: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorDrawing + +
    +
    +
    +
    +
    +
    +

    The Editor Drawing feature +This enables the UI to draw in the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorDrawing: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + mediaPicking + +
    +
    +
    +
    +
    +
    +

    The Media Picker feature +This enables the UI to pick media instead of using the camera.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var mediaPicking: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorPosting + +
    +
    +
    +
    +
    +
    +

    The Editor Posting feature +This enables the UI to post media from the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorPosting: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorPostOptions + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorPostOptions: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + editorSaving + +
    +
    +
    +
    +
    +
    +

    The Editor Saving feature +This enables the UI to save media from the editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var editorSaving: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + newCameraModes + +
    +
    +
    +
    +
    +
    +

    The New Camera Modes +This replaces Capture, Photo and Loop modes with Normal, Stitch and GIF modes

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var newCameraModes: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + gifs + +
    +
    +
    +
    +
    +
    +

    GIF support +This enables GIFs to be picked from the media picker, and exported from the Editor.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var gifs: Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/GLU.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/GLU.html new file mode 100644 index 000000000..3e94b4db4 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/GLU.html @@ -0,0 +1,431 @@ + + + + GLU Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

GLU

+
+
+ +
public struct GLU
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Compile a shader from the provided source(s)

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public static func compileShader(_ target: GLenum, _ count: GLsizei, _ sources: UnsafePointer<UnsafePointer<GLchar>?>, _ shader: inout GLuint) -> GLint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + linkProgram(_:) + +
    +
    +
    +
    +
    +
    +

    Link a program with all currently attached shaders

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func linkProgram(_ program: GLuint) -> GLint
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + validateProgram(_:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func validateProgram(_ program: GLuint) -> GLint
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func getUniformLocation(_ program: GLuint, _ uniformName: String) -> GLint
    + +
    +
    +
    +
    +
  • +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +public static func createProgram(_ _vertSource: UnsafePointer<GLchar>?,
    +    _ _fragSource: UnsafePointer<GLchar>?,
    +    _ attribNames: [String],
    +    _ attribLocations: [GLuint],
    +    _ uniformNames: [String],
    +    _ uniformLocations: inout [GLint],
    +    _ program: inout GLuint) -> GLint
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraColors.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraColors.html new file mode 100644 index 000000000..d93f27c46 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraColors.html @@ -0,0 +1,368 @@ + + + + KanvasCameraColors Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasCameraColors

+
+
+ +
public struct KanvasCameraColors
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + shared + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static var shared: KanvasCameraColors
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Clip collection

+

+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts.html new file mode 100644 index 000000000..a6196fddb --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts.html @@ -0,0 +1,438 @@ + + + + KanvasCameraFonts Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasCameraFonts

+
+
+ +
public struct KanvasCameraFonts
+ +
+
+

Undocumented

+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/CameraPermissions.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/CameraPermissions.html new file mode 100644 index 000000000..c745eccd6 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/CameraPermissions.html @@ -0,0 +1,317 @@ + + + + CameraPermissions Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/Drawer.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/Drawer.html new file mode 100644 index 000000000..8d533f7fa --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/Drawer.html @@ -0,0 +1,315 @@ + + + + Drawer Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/Padding.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/Padding.html new file mode 100644 index 000000000..d4b1edbe3 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasCameraFonts/Padding.html @@ -0,0 +1,318 @@ + + + + Padding Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Padding

+
+
+ +
public struct Padding
+ +
+
+

Undocumented

+ +
+
+
+ +
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasDevice.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasDevice.html new file mode 100644 index 000000000..8351f5352 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/KanvasDevice.html @@ -0,0 +1,342 @@ + + + + KanvasDevice Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

KanvasDevice

+
+
+ +
public struct KanvasDevice
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + isRunningInSimulator + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let isRunningInSimulator: Bool
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + belongsToIPhoneXGroup + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static let belongsToIPhoneXGroup: Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/MediaInfoSimple.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/MediaInfoSimple.html new file mode 100644 index 000000000..ff21e29a1 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/MediaInfoSimple.html @@ -0,0 +1,372 @@ + + + + MediaInfoSimple Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

MediaInfoSimple

+
+
+ +
public struct MediaInfoSimple
+
extension MediaInfoSimple: Codable
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + Source + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public enum Source
    +
    extension MediaInfoSimple.Source: Codable
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + source + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public let source: Source
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(source:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(source: Source)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/MediaInfoSimple/Source.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/MediaInfoSimple/Source.html new file mode 100644 index 000000000..039acadea --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/MediaInfoSimple/Source.html @@ -0,0 +1,422 @@ + + + + Source Enumeration Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Source

+
+
+ +
public enum Source
+
extension MediaInfoSimple.Source: Codable
+ +
+
+

Undocumented

+ +
+
+
+
    +
  • +
    + + + + kanvas_camera + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case kanvas_camera
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + media_library + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    case media_library
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + init(from:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(from decoder: Decoder) throws
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + encode(to:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func encode(to encoder: Encoder) throws
    + +
    +
    +
    +
    +
  • +
  • +
    + + + + stringValue() + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func stringValue() -> String
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/Sticker.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/Sticker.html new file mode 100644 index 000000000..6a8f04f05 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/Sticker.html @@ -0,0 +1,324 @@ + + + + Sticker Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

Sticker

+
+
+ +
public struct Sticker
+ +
+
+

A representation of a sticker in the media drawer

+ +
+
+
+
+ + +
+ +

Initializers

+

+
+
+
    +
  • +
    + + + + init(id:imageUrl:) + +
    +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(id: String, imageUrl: String)
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/StickerType.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/StickerType.html new file mode 100644 index 000000000..6746dc77f --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Structs/StickerType.html @@ -0,0 +1,363 @@ + + + + StickerType Structure Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ +
+
+
+

StickerType

+
+
+ +
public struct StickerType : Equatable
+ +
+
+

A representation of a sticker type in the media drawer

+ +
+
+
+
+ + +
+ +

Initializers

+

+
+
+
    +
  • + +
    +
    +
    +
    +
    +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public init(id: String, imageUrl: String, stickers: [Sticker])
    + +
    +
    +
    +
    +
  • +
+
+
+
+ + +
+ +

Equatable

+

+
+
+
    +
  • +
    + + + + ==(_:_:) + +
    +
    +
    +
    +
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func == (lhs: StickerType, rhs: StickerType) -> Bool
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Typealiases.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Typealiases.html new file mode 100644 index 000000000..3b76d097a --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/Typealiases.html @@ -0,0 +1,308 @@ + + + + Type Aliases Reference + + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/badge.svg b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/badge.svg new file mode 100644 index 000000000..1cb992fd0 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 40% + + + 40% + + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/css/highlight.css b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/css/highlight.css new file mode 100644 index 000000000..d0db0e13b --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/css/highlight.css @@ -0,0 +1,200 @@ +/* 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/KanvasCamera.docset/Contents/Resources/Documents/css/jazzy.css b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/css/jazzy.css new file mode 100644 index 000000000..5cdffe99c --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/css/jazzy.css @@ -0,0 +1,423 @@ +html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td { + background: transparent; + border: 0; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; } + +body { + background-color: #f2f2f2; + font-family: Helvetica, freesans, Arial, sans-serif; + font-size: 14px; + -webkit-font-smoothing: subpixel-antialiased; + word-wrap: break-word; } + +h1, h2, h3 { + margin-top: 0.8em; + margin-bottom: 0.3em; + font-weight: 100; + color: black; } + +h1 { + font-size: 2.5em; } + +h2 { + font-size: 2em; + border-bottom: 1px solid #e2e2e2; } + +h4 { + font-size: 13px; + line-height: 1.5; + margin-top: 21px; } + +h5 { + font-size: 1.1em; } + +h6 { + font-size: 1.1em; + color: #777; } + +.section-name { + color: gray; + display: block; + font-family: Helvetica; + font-size: 22px; + font-weight: 100; + margin-bottom: 15px; } + +pre, code { + font: 0.95em Menlo, monospace; + color: #777; + word-wrap: normal; } + +p code, li code { + background-color: #eee; + padding: 2px 4px; + border-radius: 4px; } + +pre > code { + padding: 0; } + +a { + color: #0088cc; + text-decoration: none; } + a code { + color: inherit; } + +ul { + padding-left: 15px; } + +li { + line-height: 1.8em; } + +img { + max-width: 100%; } + +blockquote { + margin-left: 0; + padding: 0 10px; + border-left: 4px solid #ccc; } + +.content-wrapper { + margin: 0 auto; + width: 980px; } + +header { + font-size: 0.85em; + line-height: 32px; + background-color: #414141; + position: fixed; + width: 100%; + z-index: 3; } + header img { + padding-right: 6px; + vertical-align: -4px; + height: 16px; } + header a { + color: #fff; } + header p { + float: left; + color: #999; } + header .header-right { + float: right; + margin-left: 16px; } + +#breadcrumbs { + background-color: #f2f2f2; + height: 21px; + padding-top: 17px; + position: fixed; + width: 100%; + z-index: 2; + margin-top: 32px; } + #breadcrumbs #carat { + height: 10px; + margin: 0 5px; } + +.sidebar { + background-color: #f9f9f9; + border: 1px solid #e2e2e2; + overflow-y: auto; + overflow-x: hidden; + position: fixed; + top: 70px; + bottom: 0; + width: 230px; + word-wrap: normal; } + +.nav-groups { + list-style-type: none; + background: #fff; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #e2e2e2; + font-size: 1.1em; + font-weight: 100; + padding: 15px 0 15px 20px; } + .nav-group-name > a { + color: #333; } + +.nav-group-tasks { + margin-top: 5px; } + +.nav-group-task { + font-size: 0.9em; + list-style-type: none; + white-space: nowrap; } + .nav-group-task a { + color: #888; } + +.main-content { + background-color: #fff; + border: 1px solid #e2e2e2; + margin-left: 246px; + position: absolute; + overflow: hidden; + padding-bottom: 20px; + top: 70px; + width: 734px; } + .main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote { + margin-bottom: 1em; } + .main-content p { + line-height: 1.8em; } + .main-content section .section:first-child { + margin-top: 0; + padding-top: 0; } + .main-content section .task-group-section .task-group:first-of-type { + padding-top: 10px; } + .main-content section .task-group-section .task-group:first-of-type .section-name { + padding-top: 15px; } + .main-content section .heading:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + .main-content .section-name p { + margin-bottom: inherit; + line-height: inherit; } + .main-content .section-name code { + background-color: inherit; + padding: inherit; + color: inherit; } + +.section { + padding: 0 25px; } + +.highlight { + background-color: #eee; + padding: 10px 12px; + border: 1px solid #e2e2e2; + border-radius: 4px; + overflow-x: auto; } + +.declaration .highlight { + overflow-x: initial; + padding: 0 40px 40px 0; + margin-bottom: -25px; + background-color: transparent; + border: none; } + +.section-name { + margin: 0; + margin-left: 18px; } + +.task-group-section { + margin-top: 10px; + padding-left: 6px; + border-top: 1px solid #e2e2e2; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + +.section-name-container { + position: relative; + display: inline-block; } + .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 { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + .item code { + background-color: transparent; + padding: 0; } + .item .token, .item .direct-link { + display: inline-block; + text-indent: -20px; + padding-left: 3px; + margin-left: 35px; + font-size: 11.9px; + transition: all 300ms; } + .item .token-open { + margin-left: 20px; } + .item .discouraged { + text-decoration: line-through; } + .item .declaration-note { + font-size: .85em; + color: gray; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #e2e2e2; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + background: #f9f9f9; + border-left: 1px solid #e2e2e2; + border-top: 1px solid #e2e2e2; + height: 12px; + left: 21px; + top: -7px; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + position: absolute; + width: 12px; } + +.height-container { + display: none; + left: -25px; + padding: 0 25px; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #f9f9f9; + border-bottom: 1px solid #e2e2e2; + left: -25px; + position: relative; + width: 100%; + padding-top: 10px; + padding-bottom: 5px; } + +.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: #4b8afb; } + +.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 #e2e2e2; + 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 { + position: relative; + top: 10px; + bottom: 0px; + margin-left: 25px; } + #footer p { + margin: 0; + color: #aaa; + font-size: 0.8em; } + +html.dash header, html.dash #breadcrumbs, html.dash .sidebar { + display: none; } + +html.dash .main-content { + width: 980px; + margin-left: 0; + border: none; + width: 100%; + top: 0; + padding-bottom: 0; } + +html.dash .height-container { + display: block; } + +html.dash .item .token { + margin-left: 0; } + +html.dash .content-wrapper { + width: auto; } + +html.dash #footer { + position: static; } + +form[role=search] { + float: right; } + form[role=search] input { + font: Helvetica, freesans, Arial, sans-serif; + margin-top: 6px; + font-size: 13px; + line-height: 20px; + padding: 0px 10px; + 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: #fff; + color: #333; + border: 1px solid #e2e2e2; + z-index: 4; } + form[role=search] .tt-highlight { + font-weight: bold; } + form[role=search] .tt-suggestion { + font: Helvetica, freesans, Arial, sans-serif; + font-size: 14px; + 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/KanvasCamera.docset/Contents/Resources/Documents/img/carat.png b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/img/carat.png new file mode 100755 index 0000000000000000000000000000000000000000..29d2f7fd4955fca6bc6fb740e0373a2c358c398e GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRo!3HEV4DF?Wlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqAi{-jv*Ddl5#RKJQ5NTUZgiPI4RUKGIKU?u8L&ndhX1t za+0CMVUnT(Gnb}ei=c~x==tMH^F1_tBocXwcoSWoO-SZY-o>!8%^=Bms)(~h;m_U( zXNixk28L}0LS5-jKyq@#2gyS|J&f#pGCLkTc<@2s1dqeyqJ*Rc0tSIETAgmODY;(s z2y|Mcp&2}7rpBprBBB~1qM1`N+}4SoxYVPqsXi&l`rxZp{(w0iSy$Nv5*Vy!RapG^ S^0y4=eg;ohKbLh*2~7a!Pg}VF literal 0 HcmV?d00001 diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/img/dash.png b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/img/dash.png new file mode 100755 index 0000000000000000000000000000000000000000..6f694c7a012b417908da3687a0a39aa182e91c74 GIT binary patch literal 1338 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 literal 0 HcmV?d00001 diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/index.html b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/index.html new file mode 100644 index 000000000..2aa968feb --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/index.html @@ -0,0 +1,285 @@ + + + + KanvasCamera Reference + + + + + + + + + + + + +
+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ + +
+ + + diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/jazzy.js b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/jazzy.js new file mode 100755 index 000000000..1e55d6ef0 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/jazzy.js @@ -0,0 +1,70 @@ +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/KanvasCamera.docset/Contents/Resources/Documents/js/jazzy.search.js b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/jazzy.search.js new file mode 100644 index 000000000..e3d1ab905 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/jazzy.search.js @@ -0,0 +1,70 @@ +$(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/KanvasCamera.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/jquery.min.js new file mode 100644 index 000000000..b0614034a --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! 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/KanvasCamera.docset/Contents/Resources/Documents/js/typeahead.jquery.js b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/typeahead.jquery.js new file mode 100644 index 000000000..3a2d2ab03 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * 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/KanvasCamera.docset/Contents/Resources/Documents/search.json b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/search.json new file mode 100644 index 000000000..9f9e463ad --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/search.json @@ -0,0 +1 @@ +{"Typealiases.html#/s:12KanvasCamera9MediaInfoa":{"name":"MediaInfo","abstract":"

Undocumented

"},"Structs/MediaInfoSimple/Source.html#/s:12KanvasCamera15MediaInfoSimpleV6SourceO13kanvas_camerayA2EmF":{"name":"kanvas_camera","abstract":"

Undocumented

","parent_name":"Source"},"Structs/MediaInfoSimple/Source.html#/s:12KanvasCamera15MediaInfoSimpleV6SourceO13media_libraryyA2EmF":{"name":"media_library","abstract":"

Undocumented

","parent_name":"Source"},"Structs/MediaInfoSimple/Source.html#/s:Se4fromxs7Decoder_p_tKcfc":{"name":"init(from:)","parent_name":"Source"},"Structs/MediaInfoSimple/Source.html#/s:SE6encode2toys7Encoder_p_tKF":{"name":"encode(to:)","parent_name":"Source"},"Structs/MediaInfoSimple/Source.html#/s:12KanvasCamera15MediaInfoSimpleV6SourceO11stringValueSSyF":{"name":"stringValue()","abstract":"

Undocumented

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

Undocumented

","parent_name":"MediaInfoSimple"},"Structs/MediaInfoSimple.html#/s:12KanvasCamera15MediaInfoSimpleV6sourceAC6SourceOvp":{"name":"source","abstract":"

Undocumented

","parent_name":"MediaInfoSimple"},"Structs/MediaInfoSimple.html#/s:12KanvasCamera15MediaInfoSimpleV6sourceA2C6SourceO_tcfc":{"name":"init(source:)","abstract":"

Undocumented

","parent_name":"MediaInfoSimple"},"Structs/KanvasDevice.html#/s:12KanvasCamera0A6DeviceV20isRunningInSimulatorSbvpZ":{"name":"isRunningInSimulator","abstract":"

Undocumented

","parent_name":"KanvasDevice"},"Structs/KanvasDevice.html#/s:12KanvasCamera0A6DeviceV21belongsToIPhoneXGroupSbvpZ":{"name":"belongsToIPhoneXGroup","abstract":"

Undocumented

","parent_name":"KanvasDevice"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV10ghostFrameSbvp":{"name":"ghostFrame","abstract":"

The Ghost Frame feature

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13openGLPreviewSbvp":{"name":"openGLPreview","abstract":"

The OpenGL Camera Preview feature

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13openGLCaptureSbvp":{"name":"openGLCapture","abstract":"

The OpenGL Camera Capture feature

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV12metalPreviewSbvp":{"name":"metalPreview","abstract":"

The metal camera preview feature. When openGLPreview is true, this will be ignored.

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13cameraFiltersSbvp":{"name":"cameraFilters","abstract":"

The Camera Filters feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV12metalFiltersSbvp":{"name":"metalFilters","abstract":"

This enables metal backed filteres

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV012experimentalB7FiltersSbvp":{"name":"experimentalCameraFilters","abstract":"

The Experimental Camera Filters feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV6editorSbvp":{"name":"editor","abstract":"

The Editor feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV14editorGIFMakerSbvp":{"name":"editorGIFMaker","abstract":"

The Editor GIF maker menu","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13editorFiltersSbvp":{"name":"editorFilters","abstract":"

The Editor Filters feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV10editorTextSbvp":{"name":"editorText","abstract":"

The Editor Text feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV11editorMediaSbvp":{"name":"editorMedia","abstract":"

The Editor Media feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13editorDrawingSbvp":{"name":"editorDrawing","abstract":"

The Editor Drawing feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV12mediaPickingSbvp":{"name":"mediaPicking","abstract":"

The Media Picker feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13editorPostingSbvp":{"name":"editorPosting","abstract":"

The Editor Posting feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV17editorPostOptionsSbvp":{"name":"editorPostOptions","abstract":"

Undocumented

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV12editorSavingSbvp":{"name":"editorSaving","abstract":"

The Editor Saving feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV03newB5ModesSbvp":{"name":"newCameraModes","abstract":"

The New Camera Modes","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV4gifsSbvp":{"name":"gifs","abstract":"

GIF support","parent_name":"CameraFeatures"},"Structs/GLU.html#/s:12KanvasCamera3GLUV13compileShaderys5Int32Vs6UInt32V_AFSPySPys4Int8VGSgGAHztFZ":{"name":"compileShader(_:_:_:_:)","abstract":"

Compile a shader from the provided source(s)

","parent_name":"GLU"},"Structs/GLU.html#/s:12KanvasCamera3GLUV11linkProgramys5Int32Vs6UInt32VFZ":{"name":"linkProgram(_:)","abstract":"

Link a program with all currently attached shaders

","parent_name":"GLU"},"Structs/GLU.html#/s:12KanvasCamera3GLUV15validateProgramys5Int32Vs6UInt32VFZ":{"name":"validateProgram(_:)","abstract":"

Undocumented

","parent_name":"GLU"},"Structs/GLU.html#/s:12KanvasCamera3GLUV18getUniformLocationys5Int32Vs6UInt32V_SStFZ":{"name":"getUniformLocation(_:_:)","abstract":"

Undocumented

","parent_name":"GLU"},"Structs/GLU.html#/s:12KanvasCamera3GLUV13createProgramys5Int32VSPys4Int8VGSg_AJSaySSGSays6UInt32VGAKSayAFGzAMztFZ":{"name":"createProgram(_:_:_:_:_:_:_:)","abstract":"

Undocumented

","parent_name":"GLU"},"Structs/StickerType.html#/s:12KanvasCamera11StickerTypeV2id8imageUrl8stickersACSS_SSSayAA0C0VGtcfc":{"name":"init(id:imageUrl:stickers:)","abstract":"

Undocumented

","parent_name":"StickerType"},"Structs/StickerType.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"StickerType"},"Structs/Sticker.html#/s:12KanvasCamera7StickerV2id8imageUrlACSS_SStcfc":{"name":"init(id:imageUrl:)","abstract":"

Undocumented

","parent_name":"Sticker"},"Structs/KanvasCameraFonts/Padding.html#/s:12KanvasCamera0aB5FontsV7PaddingV9topMargin04leftF0013extraVerticalD00h10HorizontalD0AE12CoreGraphics7CGFloatV_A3Ltcfc":{"name":"init(topMargin:leftMargin:extraVerticalPadding:extraHorizontalPadding:)","abstract":"

Undocumented

","parent_name":"Padding"},"Structs/KanvasCameraFonts/Drawer.html#/s:12KanvasCamera0aB5FontsV6DrawerV16textSelectedFont0e10UnselectedG0AESo6UIFontC_AItcfc":{"name":"init(textSelectedFont:textUnselectedFont:)","abstract":"

Undocumented

","parent_name":"Drawer"},"Structs/KanvasCameraFonts/CameraPermissions.html#/s:12KanvasCamera0aB5FontsV0B11PermissionsV9titleFont011descriptionF006buttonF0AESo6UIFontC_A2Jtcfc":{"name":"init(titleFont:descriptionFont:buttonFont:)","abstract":"

Undocumented

","parent_name":"CameraPermissions"},"Structs/KanvasCameraFonts.html#/s:12KanvasCamera0aB5FontsV11permissions6drawer06editorC022optionSelectorCellFont010mediaClipsJ0010modeButtonJ0010speedLabelJ0013timeIndicatorJ005colorh7TooltipJ00mhtJ004postpJ0014gifMakerRevertnJ017paddingAdjustmentA2C0B11PermissionsV_AC6DrawerVSaySo6UIFontCGA9vC7PaddingVSgAVcSgtcfc":{"name":"init(permissions:drawer:editorFonts:optionSelectorCellFont:mediaClipsFont:modeButtonFont:speedLabelFont:timeIndicatorFont:colorSelectorTooltipFont:modeSelectorTooltipFont:postLabelFont:gifMakerRevertButtonFont:paddingAdjustment:)","abstract":"

Undocumented

","parent_name":"KanvasCameraFonts"},"Structs/KanvasCameraFonts.html#/s:12KanvasCamera0aB5FontsV6sharedACvpZ":{"name":"shared","abstract":"

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

","parent_name":"KanvasCameraFonts"},"Structs/KanvasCameraColors.html#/s:12KanvasCamera0aB6ColorsV6sharedACvpZ":{"name":"shared","abstract":"

Undocumented

","parent_name":"KanvasCameraColors"},"Structs/KanvasCameraColors.html#/s:12KanvasCamera0aB6ColorsV19drawingDefaultColor011colorPickerC008selectedhF0011timeSegmentC0010backgroundC006strokeF0012sliderActiveF00n11OuterCircleF0014trimBackgroundF005trashF007tooltipsF0011closeButtonF006filterC0ACSo7UIColorC_SayARGAr2s7RSDyAA10FilterTypeOARGtcfc":{"name":"init(drawingDefaultColor:colorPickerColors:selectedPickerColor:timeSegmentColors:backgroundColors:strokeColor:sliderActiveColor:sliderOuterCircleColor:trimBackgroundColor:trashColor:tooltipBackgroundColor:closeButtonColor:filterColors:)","abstract":"

Undocumented

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

Undocumented

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

Undocumented

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

A representation of a sticker in the media drawer

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

A representation of a sticker type in the media drawer

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

Undocumented

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

Struct which represents all camera features which are the same value for the duration of a camera session.

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

Undocumented

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

Undocumented

"},"Protocols/EasyTipViewDelegate.html#/s:12KanvasCamera19EasyTipViewDelegateP04easydE10DidDismissyyAA0cdE0CF":{"name":"easyTipViewDidDismiss(_:)","abstract":"

Undocumented

","parent_name":"EasyTipViewDelegate"},"Protocols/Identifiable.html#/s:12KanvasCamera12IdentifiableP10identifierSSvpZ":{"name":"identifier","abstract":"

Undocumented

","parent_name":"Identifiable"},"Protocols/StickerProvider.html#/s:12KanvasCamera15StickerProviderP03getC5TypesyyF":{"name":"getStickerTypes()","abstract":"

Starts an API call to fetch the sticker types.

","parent_name":"StickerProvider"},"Protocols/StickerProvider.html#/s:12KanvasCamera15StickerProviderP11setDelegate8delegateyAA0cdF0_p_tF":{"name":"setDelegate(delegate:)","abstract":"

Sets a StickerProviderDelegate in StickerProvider

","parent_name":"StickerProvider"},"Protocols/StickerProvider.html#/s:12KanvasCamera15StickerProviderP6loaderAA0aC6Loader_pSgyF":{"name":"loader()","abstract":"

Undocumented

","parent_name":"StickerProvider"},"Protocols/StickerProviderDelegate.html#/s:12KanvasCamera23StickerProviderDelegateP07didLoadC5TypesyySayAA0C4TypeVGF":{"name":"didLoadStickerTypes(_:)","abstract":"

Callback for when the sticker request has finished loading

","parent_name":"StickerProviderDelegate"},"Protocols/KanvasStickerLoader.html#/s:12KanvasCamera0A13StickerLoaderP04loadC02at9imageView10completionAA0A10Cancelable_p10Foundation3URLV_So07UIImageH0CSgySo0M0CSg_s5Error_pSgtctF":{"name":"loadSticker(at:imageView:completion:)","abstract":"

Undocumented

","parent_name":"KanvasStickerLoader"},"Protocols/KanvasCancelable.html#/s:12KanvasCamera0A10CancelableP6cancelyyF":{"name":"cancel()","abstract":"

Cancels the running operation.

","parent_name":"KanvasCancelable"},"Protocols/KanvasQuickBlogSelectorCoordinating.html#/s:12KanvasCamera0A29QuickBlogSelectorCoordinatingP7present14presentingView9fromPointySo6UIViewC_So7CGPointVtF":{"name":"present(presentingView:fromPoint:)","abstract":"

Undocumented

","parent_name":"KanvasQuickBlogSelectorCoordinating"},"Protocols/KanvasQuickBlogSelectorCoordinating.html#/s:12KanvasCamera0A29QuickBlogSelectorCoordinatingP7dismissyyF":{"name":"dismiss()","abstract":"

Undocumented

","parent_name":"KanvasQuickBlogSelectorCoordinating"},"Protocols/KanvasQuickBlogSelectorCoordinating.html#/s:12KanvasCamera0A29QuickBlogSelectorCoordinatingP19touchDidMoveToPointyySo7CGPointVF":{"name":"touchDidMoveToPoint(_:)","abstract":"

Undocumented

","parent_name":"KanvasQuickBlogSelectorCoordinating"},"Protocols/KanvasQuickBlogSelectorCoordinating.html#/s:12KanvasCamera0A29QuickBlogSelectorCoordinatingP10avatarView5frameSo6UIViewCSgSo6CGRectV_tF":{"name":"avatarView(frame:)","abstract":"

Undocumented

","parent_name":"KanvasQuickBlogSelectorCoordinating"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP23didFinishExportingVideo3url4info6action12mediaChangedy10Foundation3URLVSg_AA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingVideo(url:info:action:mediaChanged:)","abstract":"

callback when finished exporting video clips.

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP23didFinishExportingImage5image4info6action12mediaChangedySo7UIImageCSg_AA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingImage(image:info:action:mediaChanged:)","abstract":"

callback when finished exporting image

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP24didFinishExportingFrames3url4size4info6action12mediaChangedy10Foundation3URLVSg_So6CGSizeVSgAA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingFrames(url:size:info:action:mediaChanged:)","abstract":"

callback when finished exporting frames

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP20dismissButtonPressedyyF":{"name":"dismissButtonPressed()","abstract":"

callback when dismissing controller without exporting

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP30didDismissColorSelectorTooltipyyF":{"name":"didDismissColorSelectorTooltip()","abstract":"

Called after the color selector tooltip is dismissed

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP36editorShouldShowColorSelectorTooltipSbyF":{"name":"editorShouldShowColorSelectorTooltip()","abstract":"

Called to ask if color selector tooltip should be shown

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP29didEndStrokeSelectorAnimationyyF":{"name":"didEndStrokeSelectorAnimation()","abstract":"

Called after the stroke animation has ended

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP39editorShouldShowStrokeSelectorAnimationSbyF":{"name":"editorShouldShowStrokeSelectorAnimation()","abstract":"

Called to ask if stroke selector animation should be shown

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP16tagButtonPressedyyF":{"name":"tagButtonPressed()","abstract":"

Called when the tag button is pressed

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP18getQuickPostButton15enableLongPressSo6UIViewCSb_tF":{"name":"getQuickPostButton(enableLongPress:)","abstract":"

Obtains the quick post button.

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP15getBlogSwitcherSo6UIViewCyF":{"name":"getBlogSwitcher()","abstract":"

Obtains the blog switcher.

","parent_name":"EditorControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP14didCreateMedia_5media12exportAction5erroryAA0bC0C_AA0abG0OSgAA0a6ExportJ0Os5Error_pSgtF":{"name":"didCreateMedia(_:media:exportAction:error:)","abstract":"

A function that is called when an image is exported.

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP20dismissButtonPressedyyAA0bC0CF":{"name":"dismissButtonPressed(_:)","abstract":"

A function that is called when the main camera dismiss button is pressed

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP16tagButtonPressedyyF":{"name":"tagButtonPressed()","abstract":"

Called when the tag button is pressed in the editor

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP15editorDismissedyyF":{"name":"editorDismissed()","abstract":"

Called when the editor is dismissed

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP24didDismissWelcomeTooltipyyF":{"name":"didDismissWelcomeTooltip()","abstract":"

Called after the welcome tooltip is dismissed

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP30cameraShouldShowWelcomeTooltipSbyF":{"name":"cameraShouldShowWelcomeTooltip()","abstract":"

Called to ask if welcome tooltip should be shown

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP30didDismissColorSelectorTooltipyyF":{"name":"didDismissColorSelectorTooltip()","abstract":"

Called after the color selector tooltip is dismissed

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP36editorShouldShowColorSelectorTooltipSbyF":{"name":"editorShouldShowColorSelectorTooltip()","abstract":"

Called to ask if color selector tooltip should be shown

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP29didEndStrokeSelectorAnimationyyF":{"name":"didEndStrokeSelectorAnimation()","abstract":"

Called after the stroke animation has ended

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP39editorShouldShowStrokeSelectorAnimationSbyF":{"name":"editorShouldShowStrokeSelectorAnimation()","abstract":"

Called to ask if stroke selector animation should be shown

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP23didBeginDragInteractionyyF":{"name":"didBeginDragInteraction()","abstract":"

Called when a drag interaction starts

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP21didEndDragInteractionyyF":{"name":"didEndDragInteraction()","abstract":"

Called when a drag interaction ends

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP15openAppSettings10completionyySbcSg_tF":{"name":"openAppSettings(completion:)","abstract":"

Called when the permissions settings is shown but the app can’t change permissions (because they user manually disabled them).

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP18getQuickPostButton15enableLongPressSo6UIViewCSb_tF":{"name":"getQuickPostButton(enableLongPress:)","abstract":"

Obtains the quick post button for the editor.

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP15getBlogSwitcherSo6UIViewCyF":{"name":"getBlogSwitcher()","abstract":"

Obtains the blog switcher for the editor.

","parent_name":"CameraControllerDelegate"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logCameraOpenWithMode:":{"name":"logCameraOpen(mode:)","abstract":"

Logs an event when the camera is opened

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logDismiss":{"name":"logDismiss()","abstract":"

Logs an event when the camera is dismissed without exporting media

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logCapturedMediaWithType:cameraPosition:length:ghostFrameEnabled:filterType:":{"name":"logCapturedMedia(type:cameraPosition:length:ghostFrameEnabled:filterType:)","abstract":"

Logs an event when media is captured

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logFlipCamera":{"name":"logFlipCamera()","abstract":"

Logs an event when the flip camera button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logDeleteSegment":{"name":"logDeleteSegment()","abstract":"

Logs an event when a segment is deleted

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logFlashToggled":{"name":"logFlashToggled()","abstract":"

Logs an event when the flash button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logImagePreviewToggledWithEnabled:":{"name":"logImagePreviewToggled(enabled:)","abstract":"

Logs an event when the image preview button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logUndoTapped":{"name":"logUndoTapped()","abstract":"

Logs an event when the undo button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logNextTapped":{"name":"logNextTapped()","abstract":"

Logs an event when the preview button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logPreviewDismissed":{"name":"logPreviewDismissed()","abstract":"

Logs an event if the preview screen is closed without exporting media

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logMovedClip":{"name":"logMovedClip()","abstract":"

Logs an event when a media clip is moved

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logPinchedZoom":{"name":"logPinchedZoom()","abstract":"

Logs an event when the user pinches to zoom

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logSwipedZoom":{"name":"logSwipedZoom()","abstract":"

Logs an event when the user swipes up while recording to zoom

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logConfirmedMediaWithMode:clipsCount:length:":{"name":"logConfirmedMedia(mode:clipsCount:length:)","abstract":"

Logs an event when the confirm button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logOpenFiltersSelector":{"name":"logOpenFiltersSelector()","abstract":"

Logs an event when the filters selector is opened

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logFilterSelectedWithFilterType:":{"name":"logFilterSelected(filterType:)","abstract":"

Logs an event when a filter is selected

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logMediaPickerOpen":{"name":"logMediaPickerOpen()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logMediaPickerDismiss":{"name":"logMediaPickerDismiss()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logMediaPickerPickedMediaOfType:":{"name":"logMediaPickerPickedMedia(ofType:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorOpen":{"name":"logEditorOpen()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorBack":{"name":"logEditorBack()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorFiltersOpen":{"name":"logEditorFiltersOpen()","abstract":"

Logs an event when the filters button is tapped in the editor

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorFilterSelectedWithFilterType:":{"name":"logEditorFilterSelected(filterType:)","abstract":"

Logs an event when a filter is selected in the editor

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingOpen":{"name":"logEditorDrawingOpen()","abstract":"

Logs an event when the drawing button is tapped in the editor

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingChangeStrokeSizeWithStrokeSize:":{"name":"logEditorDrawingChangeStrokeSize(strokeSize:)","abstract":"

Logs an event when the stroke size is changed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingChangeBrushWithBrushType:":{"name":"logEditorDrawingChangeBrush(brushType:)","abstract":"

Logs an event when the brush is changed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingChangeColorWithSelectionTool:":{"name":"logEditorDrawingChangeColor(selectionTool:)","abstract":"

Logs an event when someone selects a color

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawStrokeWithBrushType:strokeSize:drawType:":{"name":"logEditorDrawStroke(brushType:strokeSize:drawType:)","abstract":"

Logs an event when someone draws

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingUndo":{"name":"logEditorDrawingUndo()","abstract":"

Logs an event when someone undoes a drawing or erasing action

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingEraserWithBrushType:strokeSize:drawType:":{"name":"logEditorDrawingEraser(brushType:strokeSize:drawType:)","abstract":"

Logs an event when someone uses the eraser

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingConfirm":{"name":"logEditorDrawingConfirm()","abstract":"

Logs an event when someone confirms drawing

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextAdd":{"name":"logEditorTextAdd()","abstract":"

Logs an event when tapping the text tool to add a new text overlay

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextEdit":{"name":"logEditorTextEdit()","abstract":"

Logs an event when tapping on an existing text overlay to edit it

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextConfirmWithIsNew:font:alignment:highlighted:":{"name":"logEditorTextConfirm(isNew:font:alignment:highlighted:)","abstract":"

Logs an event when a text overlay is confirmed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextMove":{"name":"logEditorTextMove()","abstract":"

Logs an event when a text overlay is moved

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextRemove":{"name":"logEditorTextRemove()","abstract":"

Logs an event when a text overlay is removed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextChangeWithFont:":{"name":"logEditorTextChange(font:)","abstract":"

Logs an event when the font is changed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextChangeWithAlignment:":{"name":"logEditorTextChange(alignment:)","abstract":"

Logs an event when the text alignment is changed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextChangeWithHighlighted:":{"name":"logEditorTextChange(highlighted:)","abstract":"

Logs an event when the text highlight is changed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextChangeWithColor:":{"name":"logEditorTextChange(color:)","abstract":"

Logs an event when the text color changes

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorCreatedMediaWithClipsCount:length:":{"name":"logEditorCreatedMedia(clipsCount:length:)","abstract":"

Logs an event when media is created from the editor

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logOpenFromDashboardWithOpenAction:":{"name":"logOpenFromDashboard(openAction:)","abstract":"

Logs an event when Kanvas is opened from the Dashboard

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logDismissFromDashboardWithDismissAction:":{"name":"logDismissFromDashboard(dismissAction:)","abstract":"

Logs an event when Kanvas is dismissed from the Dashboard

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logPostFromDashboard":{"name":"logPostFromDashboard()","abstract":"

Logs when someone posts from Kanvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logChangeBlogForPostFromDashboard":{"name":"logChangeBlogForPostFromDashboard()","abstract":"

Logs when someone changes the blog to post to

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logSaveFromDashboard":{"name":"logSaveFromDashboard()","abstract":"

Logs when someone only saves media from Kanvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logOpenComposeFromDashboard":{"name":"logOpenComposeFromDashboard()","abstract":"

Logs when someone opens compose from Kanvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTagTapped":{"name":"logEditorTagTapped()","abstract":"

Logs when someone taps the tag button in the Editor

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logIconPresentedOnDashboard":{"name":"logIconPresentedOnDashboard()","abstract":"

Logs when the Create icon is presented in the Dashboard header

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorMediaDrawerOpen":{"name":"logEditorMediaDrawerOpen()","abstract":"

Logs when the Media Drawer is opened

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorMediaDrawerClosed":{"name":"logEditorMediaDrawerClosed()","abstract":"

Logs when the Media Drawer is closed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorMediaDrawerSelectStickers":{"name":"logEditorMediaDrawerSelectStickers()","abstract":"

Logs when the stickers tab is selected in the Media Drawer

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorStickerPackSelectWithStickerPackId:":{"name":"logEditorStickerPackSelect(stickerPackId:)","abstract":"

Logs when a sticker pack is selected in the Media Drawer

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorStickerAddWithStickerId:":{"name":"logEditorStickerAdd(stickerId:)","abstract":"

Logs when a sticker is added in the canvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorStickerRemoveWithStickerId:":{"name":"logEditorStickerRemove(stickerId:)","abstract":"

Logs when a sticker is removed from the canvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorStickerMoveWithStickerId:":{"name":"logEditorStickerMove(stickerId:)","abstract":"

Logs when a sticker is moved through the canvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFButtonToggle:":{"name":"logEditorGIFButtonToggle(_:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFOpen":{"name":"logEditorGIFOpen()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFOpenTrim":{"name":"logEditorGIFOpenTrim()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFOpenSpeed":{"name":"logEditorGIFOpenSpeed()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFRevert":{"name":"logEditorGIFRevert()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFConfirmWithDuration:playbackMode:speed:":{"name":"logEditorGIFConfirm(duration:playbackMode:speed:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFChangeWithPlaybackMode:":{"name":"logEditorGIFChange(playbackMode:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFChangeWithSpeed:":{"name":"logEditorGIFChange(speed:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFChangeWithTrimStart:trimEnd:":{"name":"logEditorGIFChange(trimStart:trimEnd:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logAdvancedOptionsOpenWithPage:":{"name":"logAdvancedOptionsOpen(page:)","abstract":"

Logs when the “next” button that opens APO is pressed in the Editor

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

A protocol for injecting analytics into the KanvasCamera module

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

Protocol for dismissing CameraController"},"Protocols/EditorControllerDelegate.html":{"name":"EditorControllerDelegate","abstract":"

Protocol for camera editor controller methods

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Identifies an element.

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

Undocumented

"},"Extensions/MediaInfo.html#/s:12KanvasCamera15MediaInfoSimpleV9fromImageACSg10Foundation3URLV_tcfc":{"name":"init(fromImage:)","abstract":"

Reads media info from an image URL

","parent_name":"MediaInfo"},"Extensions/MediaInfo.html#/s:12KanvasCamera15MediaInfoSimpleV13fromImageDataACSg10Foundation0H0V_tcfc":{"name":"init(fromImageData:)","abstract":"

Reads media info from image data

","parent_name":"MediaInfo"},"Extensions/MediaInfo.html#/s:12KanvasCamera15MediaInfoSimpleV5write7toImagey10Foundation3URLV_tF":{"name":"write(toImage:)","abstract":"

Writes media info to an image URL

","parent_name":"MediaInfo"},"Extensions/MediaInfo.html#/s:12KanvasCamera15MediaInfoSimpleV12fromVideoURLACSg10Foundation0H0V_tcfc":{"name":"init(fromVideoURL:)","abstract":"

Reads media info from a video url

","parent_name":"MediaInfo"},"Extensions/MediaInfo.html#/s:12KanvasCamera15MediaInfoSimpleV21createAVMetadataItemsSaySo0G4ItemCGyF":{"name":"createAVMetadataItems()","abstract":"

Undocumented

","parent_name":"MediaInfo"},"Extensions/CGFloat.html#/s:12CoreGraphics7CGFloatV12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"CGFloat"},"Extensions/CGFloat.html#/s:12CoreGraphics7CGFloatV12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"CGFloat"},"Extensions/CGFloat.html#/s:12CoreGraphics7CGFloatV12KanvasCameraE1is5Int32Vvp":{"name":"i","abstract":"

Undocumented

","parent_name":"CGFloat"},"Extensions/Double.html#/s:Sd12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"Double"},"Extensions/Double.html#/s:Sd12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"Double"},"Extensions/Float.html#/s:Sf12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"Float"},"Extensions/Float.html#/s:Sf12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"Float"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1bs4Int8Vvp":{"name":"b","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE2ubs5UInt8Vvp":{"name":"ub","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1ss5Int16Vvp":{"name":"s","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE2uss6UInt16Vvp":{"name":"us","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1is5Int32Vvp":{"name":"i","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE2uis6UInt32Vvp":{"name":"ui","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1lSivp":{"name":"l","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE2ulSuvp":{"name":"ul","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE2lls5Int64Vvp":{"name":"ll","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1bs4Int8Vvp":{"name":"b","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE2ubs5UInt8Vvp":{"name":"ub","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1ss5Int16Vvp":{"name":"s","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE2uss6UInt16Vvp":{"name":"us","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1is5Int32Vvp":{"name":"i","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1lSivp":{"name":"l","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE2ulSuvp":{"name":"ul","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE2lls5Int64Vvp":{"name":"ll","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE3ulls6UInt64Vvp":{"name":"ull","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt.html#/s:Su12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1bs4Int8Vvp":{"name":"b","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE2ubs5UInt8Vvp":{"name":"ub","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1ss5Int16Vvp":{"name":"s","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE2uss6UInt16Vvp":{"name":"us","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1is5Int32Vvp":{"name":"i","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE2uis6UInt32Vvp":{"name":"ui","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1lSivp":{"name":"l","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE2lls5Int64Vvp":{"name":"ll","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE3ulls6UInt64Vvp":{"name":"ull","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/Int.html#/s:Si12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE1bs4Int8Vvp":{"name":"b","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE2ubs5UInt8Vvp":{"name":"ub","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE1ss5Int16Vvp":{"name":"s","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE2uss6UInt16Vvp":{"name":"us","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE1is5Int32Vvp":{"name":"i","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE2uis6UInt32Vvp":{"name":"ui","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE2ulSuvp":{"name":"ul","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE2lls5Int64Vvp":{"name":"ll","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE3ulls6UInt64Vvp":{"name":"ull","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int32.html#/s:s27ExpressibleByBooleanLiteralP07booleanD0x0cD4TypeQz_tcfc":{"name":"init(booleanLiteral:)","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1bs4Int8Vvp":{"name":"b","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE2ubs5UInt8Vvp":{"name":"ub","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1ss5Int16Vvp":{"name":"s","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE2uss6UInt16Vvp":{"name":"us","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE2uis6UInt32Vvp":{"name":"ui","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1lSivp":{"name":"l","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE2ulSuvp":{"name":"ul","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE2lls5Int64Vvp":{"name":"ll","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE3ulls6UInt64Vvp":{"name":"ull","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/UInt8.html#/s:s5UInt8V12KanvasCameraE9boolValueSbvp":{"name":"boolValue","abstract":"

Undocumented

","parent_name":"UInt8"},"Extensions/UInt8.html#/s:s27ExpressibleByBooleanLiteralP07booleanD0x0cD4TypeQz_tcfc":{"name":"init(booleanLiteral:)","parent_name":"UInt8"},"Extensions/UIImage.html#/s:So7UIImageC12KanvasCameraE16flipLeftMirroredABSgyF":{"name":"flipLeftMirrored()","abstract":"

Rotates an image 90° clockwise and flips it horizontally

","parent_name":"UIImage"},"Extensions/UIImage.html#/s:So7UIImageC12KanvasCameraE11pixelBufferABSgSo11CVBufferRefa_tcfc":{"name":"init(pixelBuffer:)","abstract":"

Create a new UIImage from a pixel buffer

","parent_name":"UIImage"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE3hex5alphaABSS_12CoreGraphics7CGFloatVtcfc":{"name":"init(hex:alpha:)","abstract":"

Create UIColor from the given hex value

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE3hex5alphaABSi_12CoreGraphics7CGFloatVtcfc":{"name":"init(hex:alpha:)","abstract":"

Create UIColor from the given hex Integer

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE3hex5alphaABs6UInt32V_12CoreGraphics7CGFloatVtcfc":{"name":"init(hex:alpha:)","abstract":"

Create UIColor from the given 32-bit unsigned integer.

","parent_name":"UIColor"},"Extensions/UIColor.html#/c:@CM@KanvasCamera@@objc(cs)UIColor(cm)colorWithHex:":{"name":"color(hex:)","abstract":"

Create UIColor from the given hex Integer

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE13matchingColorAByF":{"name":"matchingColor()","abstract":"

Best matching color between black and white, based on the brightness of the current color.

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE22calculateRGBComponents12CoreGraphics7CGFloatV3red_AG5greenAG4blueAG5alphatyF":{"name":"calculateRGBComponents()","abstract":"

Calculates the RGB color components of a color as a CGFloat value, even if it is the grayscale space. Values for red, green, and blue can be of any range due to API changes. Values between 0.0 - 1.0 are in the sRGB gamut range.

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE29calculateRGBComponentIntegersSi3red_Si5greenSi4blueSi5alphatyF":{"name":"calculateRGBComponentIntegers()","abstract":"

Calculates the RGB color components of a color as an Integer value, even if it is the grayscale space. Values between 0.0 - 255.0 are in the sRGB gamut range.

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE12brighterThanySbSdF":{"name":"brighterThan(_:)","abstract":"

Whether or not the color brightness is higher than a provided brightness value.

","parent_name":"UIColor"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE8register4cellyxm_tSo0aB4CellCRbzlF":{"name":"register(cell:)","abstract":"

Registers a cell to be used by a UICollectionView.

","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE8register6headeryxm_tSo0a8ReusableB0CRbzlF":{"name":"register(header:)","abstract":"

Registers a header to be used by a UICollectionView.

","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE8register6footeryxm_tSo0a8ReusableB0CRbzlF":{"name":"register(footer:)","abstract":"

Registers a footer to be used by a UICollectionView.

","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE7dequeue4cell3forxSgxm_10Foundation9IndexPathVtSo0aB4CellCRbzlF":{"name":"dequeue(cell:for:)","abstract":"

Returns a reusable cell of the type specified to be used and adds it","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE7dequeue6header3forxSgxm_10Foundation9IndexPathVtSo0a8ReusableB0CRbzlF":{"name":"dequeue(header:for:)","abstract":"

Returns a reusable header of the type specified to be used and adds it","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE7dequeue6footer3forxSgxm_10Foundation9IndexPathVtSo0a8ReusableB0CRbzlF":{"name":"dequeue(footer:for:)","abstract":"

Returns a reusable footer of the type specified to be used and adds it","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE7dequeue4view6ofKind3forxSgxm_SS10Foundation9IndexPathVtSo0a8ReusableB0CRbzlF":{"name":"dequeue(view:ofKind:for:)","abstract":"

Undocumented

","parent_name":"UICollectionView"},"Extensions/AVAsset.html#/s:So7AVAssetC12KanvasCameraE15videoScreenSizeSo6CGSizeVSgvp":{"name":"videoScreenSize","abstract":"

Undocumented

","parent_name":"AVAsset"},"Extensions/AVAsset.html":{"name":"AVAsset"},"Extensions.html#/c:objc(cs)UITableViewCell":{"name":"UITableViewCell"},"Extensions.html#/c:objc(cs)UICollectionReusableView":{"name":"UICollectionReusableView"},"Extensions.html#/c:objc(cs)UITableViewHeaderFooterView":{"name":"UITableViewHeaderFooterView"},"Extensions/UICollectionView.html":{"name":"UICollectionView"},"Extensions/UIColor.html":{"name":"UIColor"},"Extensions/UIImage.html":{"name":"UIImage","abstract":"

Extension for image flipping

"},"Extensions.html#/AVCaptureDevice":{"name":"AVCaptureDevice"},"Extensions/UInt8.html":{"name":"UInt8"},"Extensions/Int32.html":{"name":"Int32"},"Extensions/Int.html":{"name":"Int"},"Extensions/UInt.html":{"name":"UInt"},"Extensions/UInt32.html":{"name":"UInt32"},"Extensions/UInt64.html":{"name":"UInt64"},"Extensions/Float.html":{"name":"Float"},"Extensions/Double.html":{"name":"Double"},"Extensions/CGFloat.html":{"name":"CGFloat"},"Extensions/MediaInfo.html":{"name":"MediaInfo","abstract":"

Undocumented

"},"Enums/CameraMode/Quantity.html#/s:12KanvasCamera0B4ModeO8QuantityO6singleyA2EmF":{"name":"single","abstract":"

The mode allows just one photo, video or gif.

","parent_name":"Quantity"},"Enums/CameraMode/Quantity.html#/s:12KanvasCamera0B4ModeO8QuantityO8multipleyA2EmF":{"name":"multiple","abstract":"

The mode creates a sequence of photos and/or videos

","parent_name":"Quantity"},"Enums/CameraMode/Group.html#/s:12KanvasCamera0B4ModeO5GroupO5videoyA2EmF":{"name":"video","abstract":"

The mode creates a video from a sequence

","parent_name":"Group"},"Enums/CameraMode/Group.html#/s:12KanvasCamera0B4ModeO5GroupO5photoyA2EmF":{"name":"photo","abstract":"

The mode creates a photo.

","parent_name":"Group"},"Enums/CameraMode/Group.html#/s:12KanvasCamera0B4ModeO5GroupO3gifyA2EmF":{"name":"gif","abstract":"

The mode creates a gif animation

","parent_name":"Group"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModeStopMotion":{"name":"stopMotion","abstract":"

Capturing stop motions, a sequence of images and/or videos.

","parent_name":"CameraMode"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModePhoto":{"name":"photo","abstract":"

Capturing photos

","parent_name":"CameraMode"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModeLoop":{"name":"loop","abstract":"

Capturing gifs, a sequence of photos.

","parent_name":"CameraMode"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModeNormal":{"name":"normal","abstract":"

Capturing single photo or single video.

","parent_name":"CameraMode"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModeStitch":{"name":"stitch","abstract":"

Capturing stop motions, a sequence of images and/or videos.

","parent_name":"CameraMode"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModeGif":{"name":"gif","abstract":"

Capturing gifs, a sequence of photos.

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

The type of media a CameraMode will produce.

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

How many assets a CameraMode will produce.

","parent_name":"CameraMode"},"Enums/CameraMode.html#/s:12KanvasCamera0B4ModeO5groupAC5GroupOvp":{"name":"group","abstract":"

Undocumented

","parent_name":"CameraMode"},"Enums/CameraMode.html#/s:12KanvasCamera0B4ModeO8quantityAC8QuantityOvp":{"name":"quantity","abstract":"

Undocumented

","parent_name":"CameraMode"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypePassthrough":{"name":"passthrough","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeWavePool":{"name":"wavePool","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypePlasma":{"name":"plasma","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeEmInterference":{"name":"emInterference","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeRgb":{"name":"rgb","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeLego":{"name":"lego","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeChroma":{"name":"chroma","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeRave":{"name":"rave","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeMirrorTwo":{"name":"mirrorTwo","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeMirrorFour":{"name":"mirrorFour","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeLightLeaks":{"name":"lightLeaks","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeFilm":{"name":"film","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeGrayscale":{"name":"grayscale","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeManga":{"name":"manga","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeToon":{"name":"toon","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeOff":{"name":"off","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/s:12KanvasCamera10FilterTypeO3keySSSgyF":{"name":"key()","abstract":"

Logging key for a filter type","parent_name":"FilterType"},"Enums/FilterType.html#/s:12KanvasCamera10FilterTypeO13filterAppliedSbvp":{"name":"filterApplied","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/ImagePreviewMode.html#/s:12KanvasCamera16ImagePreviewModeO2onyA2CmF":{"name":"on","abstract":"

Undocumented

","parent_name":"ImagePreviewMode"},"Enums/ImagePreviewMode.html#/s:12KanvasCamera16ImagePreviewModeO3offyA2CmF":{"name":"off","abstract":"

Undocumented

","parent_name":"ImagePreviewMode"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO14previewConfirmyA2CmF":{"name":"previewConfirm","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO7confirmyA2CmF":{"name":"confirm","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO4postyA2CmF":{"name":"post","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO4saveyA2CmF":{"name":"save","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO11postOptionsyA2CmF":{"name":"postOptions","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO18confirmPostOptionsyA2CmF":{"name":"confirmPostOptions","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasCameraMedia.html#/s:12KanvasCamera0aB5MediaO5imageyAC10Foundation3URLV_AA0C10InfoSimpleVSo6CGSizeVtcACmF":{"name":"image(_:_:_:)","abstract":"

Undocumented

","parent_name":"KanvasCameraMedia"},"Enums/KanvasCameraMedia.html#/s:12KanvasCamera0aB5MediaO5videoyAC10Foundation3URLV_AA0C10InfoSimpleVSo6CGSizeVtcACmF":{"name":"video(_:_:_:)","abstract":"

Undocumented

","parent_name":"KanvasCameraMedia"},"Enums/KanvasCameraMedia.html#/s:12KanvasCamera0aB5MediaO6framesyAC10Foundation3URLV_AA0C10InfoSimpleVSo6CGSizeVtcACmF":{"name":"frames(_:_:_:)","abstract":"

Undocumented

","parent_name":"KanvasCameraMedia"},"Enums/KanvasCameraMedia.html#/s:12KanvasCamera0aB5MediaO4infoAA0C10InfoSimpleVvp":{"name":"info","abstract":"

Undocumented

","parent_name":"KanvasCameraMedia"},"Enums/KanvasGIFPlaybackMode.html#/c:@M@KanvasCamera@E@KanvasGIFPlaybackMode@KanvasGIFPlaybackModeLoop":{"name":"loop","abstract":"

Undocumented

","parent_name":"KanvasGIFPlaybackMode"},"Enums/KanvasGIFPlaybackMode.html#/c:@M@KanvasCamera@E@KanvasGIFPlaybackMode@KanvasGIFPlaybackModeRebound":{"name":"rebound","abstract":"

Undocumented

","parent_name":"KanvasGIFPlaybackMode"},"Enums/KanvasGIFPlaybackMode.html#/c:@M@KanvasCamera@E@KanvasGIFPlaybackMode@KanvasGIFPlaybackModeReverse":{"name":"reverse","abstract":"

Undocumented

","parent_name":"KanvasGIFPlaybackMode"},"Enums/KanvasGIFPlaybackMode.html#/s:12KanvasCamera0A15GIFPlaybackModeO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasGIFPlaybackMode"},"Enums/KanvasMediaType.html#/c:@M@KanvasCamera@E@KanvasMediaType@KanvasMediaTypeImage":{"name":"image","abstract":"

Undocumented

","parent_name":"KanvasMediaType"},"Enums/KanvasMediaType.html#/c:@M@KanvasCamera@E@KanvasMediaType@KanvasMediaTypeVideo":{"name":"video","abstract":"

Undocumented

","parent_name":"KanvasMediaType"},"Enums/KanvasMediaType.html#/c:@M@KanvasCamera@E@KanvasMediaType@KanvasMediaTypeFrames":{"name":"frames","abstract":"

Undocumented

","parent_name":"KanvasMediaType"},"Enums/KanvasMediaType.html#/c:@M@KanvasCamera@E@KanvasMediaType@KanvasMediaTypeLivePhoto":{"name":"livePhoto","abstract":"

Undocumented

","parent_name":"KanvasMediaType"},"Enums/KanvasMediaType.html#/s:12KanvasCamera0A9MediaTypeO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasMediaType"},"Enums/KanvasDashboardDismissAction.html#/c:@M@KanvasCamera@E@KanvasDashboardDismissAction@KanvasDashboardDismissActionTap":{"name":"tap","abstract":"

Undocumented

","parent_name":"KanvasDashboardDismissAction"},"Enums/KanvasDashboardDismissAction.html#/c:@M@KanvasCamera@E@KanvasDashboardDismissAction@KanvasDashboardDismissActionSwipe":{"name":"swipe","abstract":"

Undocumented

","parent_name":"KanvasDashboardDismissAction"},"Enums/KanvasDashboardDismissAction.html#/s:12KanvasCamera0A22DashboardDismissActionO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasDashboardDismissAction"},"Enums/KanvasDashboardOpenAction.html#/c:@M@KanvasCamera@E@KanvasDashboardOpenAction@KanvasDashboardOpenActionTap":{"name":"tap","abstract":"

Undocumented

","parent_name":"KanvasDashboardOpenAction"},"Enums/KanvasDashboardOpenAction.html#/c:@M@KanvasCamera@E@KanvasDashboardOpenAction@KanvasDashboardOpenActionSwipe":{"name":"swipe","abstract":"

Undocumented

","parent_name":"KanvasDashboardOpenAction"},"Enums/KanvasDashboardOpenAction.html#/s:12KanvasCamera0A19DashboardOpenActionO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasDashboardOpenAction"},"Enums/KanvasTextAlignment.html#/c:@M@KanvasCamera@E@KanvasTextAlignment@KanvasTextAlignmentLeft":{"name":"left","abstract":"

Undocumented

","parent_name":"KanvasTextAlignment"},"Enums/KanvasTextAlignment.html#/c:@M@KanvasCamera@E@KanvasTextAlignment@KanvasTextAlignmentCenter":{"name":"center","abstract":"

Undocumented

","parent_name":"KanvasTextAlignment"},"Enums/KanvasTextAlignment.html#/c:@M@KanvasCamera@E@KanvasTextAlignment@KanvasTextAlignmentRight":{"name":"right","abstract":"

Undocumented

","parent_name":"KanvasTextAlignment"},"Enums/KanvasTextAlignment.html#/s:12KanvasCamera0A13TextAlignmentO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasTextAlignment"},"Enums/KanvasTextAlignment.html#/s:12KanvasCamera0A13TextAlignmentO4from9alignmentACSgSo06NSTextD0VSg_tFZ":{"name":"from(alignment:)","abstract":"

Undocumented

","parent_name":"KanvasTextAlignment"},"Enums/KanvasTextFont.html#/c:@M@KanvasCamera@E@KanvasTextFont@KanvasTextFontRegular":{"name":"regular","abstract":"

Undocumented

","parent_name":"KanvasTextFont"},"Enums/KanvasTextFont.html#/c:@M@KanvasCamera@E@KanvasTextFont@KanvasTextFontScript":{"name":"script","abstract":"

Undocumented

","parent_name":"KanvasTextFont"},"Enums/KanvasTextFont.html#/s:12KanvasCamera0A8TextFontO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasTextFont"},"Enums/KanvasTextFont.html#/s:12KanvasCamera0A8TextFontO4from4fontACSgSo6UIFontCSg_tFZ":{"name":"from(font:)","abstract":"

Undocumented

","parent_name":"KanvasTextFont"},"Enums/KanvasDrawingAction.html#/c:@M@KanvasCamera@E@KanvasDrawingAction@KanvasDrawingActionTap":{"name":"tap","abstract":"

Undocumented

","parent_name":"KanvasDrawingAction"},"Enums/KanvasDrawingAction.html#/c:@M@KanvasCamera@E@KanvasDrawingAction@KanvasDrawingActionFill":{"name":"fill","abstract":"

Undocumented

","parent_name":"KanvasDrawingAction"},"Enums/KanvasDrawingAction.html#/c:@M@KanvasCamera@E@KanvasDrawingAction@KanvasDrawingActionStroke":{"name":"stroke","abstract":"

Undocumented

","parent_name":"KanvasDrawingAction"},"Enums/KanvasDrawingAction.html#/s:12KanvasCamera0A13DrawingActionO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasDrawingAction"},"Enums/KanvasColorSelectionTool.html#/c:@M@KanvasCamera@E@KanvasColorSelectionTool@KanvasColorSelectionToolSwatch":{"name":"swatch","abstract":"

Undocumented

","parent_name":"KanvasColorSelectionTool"},"Enums/KanvasColorSelectionTool.html#/c:@M@KanvasCamera@E@KanvasColorSelectionTool@KanvasColorSelectionToolGradient":{"name":"gradient","abstract":"

Undocumented

","parent_name":"KanvasColorSelectionTool"},"Enums/KanvasColorSelectionTool.html#/c:@M@KanvasCamera@E@KanvasColorSelectionTool@KanvasColorSelectionToolEyedropper":{"name":"eyedropper","abstract":"

Undocumented

","parent_name":"KanvasColorSelectionTool"},"Enums/KanvasColorSelectionTool.html#/s:12KanvasCamera0A18ColorSelectionToolO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasColorSelectionTool"},"Enums/KanvasBrushType.html#/c:@M@KanvasCamera@E@KanvasBrushType@KanvasBrushTypePencil":{"name":"pencil","abstract":"

Undocumented

","parent_name":"KanvasBrushType"},"Enums/KanvasBrushType.html#/c:@M@KanvasCamera@E@KanvasBrushType@KanvasBrushTypeMarker":{"name":"marker","abstract":"

Undocumented

","parent_name":"KanvasBrushType"},"Enums/KanvasBrushType.html#/c:@M@KanvasCamera@E@KanvasBrushType@KanvasBrushTypeSharpie":{"name":"sharpie","abstract":"

Undocumented

","parent_name":"KanvasBrushType"},"Enums/KanvasBrushType.html#/s:12KanvasCamera0A9BrushTypeO6stringSSyF":{"name":"string()","abstract":"

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Media wrapper for media generated from the CameraController

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

Undocumented

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

Undocumented

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

Filter types

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

A set of camera modes which allow various types of captured media and exported formats.

"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV16dismissTransformSo08CGAffineI0Vvp":{"name":"dismissTransform","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV20showInitialTransformSo08CGAffineJ0Vvp":{"name":"showInitialTransform","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV18showFinalTransformSo08CGAffineJ0Vvp":{"name":"showFinalTransform","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV13springDamping12CoreGraphics7CGFloatVvp":{"name":"springDamping","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV14springVelocity12CoreGraphics7CGFloatVvp":{"name":"springVelocity","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV16showInitialAlpha12CoreGraphics7CGFloatVvp":{"name":"showInitialAlpha","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV17dismissFinalAlpha12CoreGraphics7CGFloatVvp":{"name":"dismissFinalAlpha","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV12showDurationSdvp":{"name":"showDuration","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV15dismissDurationSdvp":{"name":"dismissDuration","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV12dismissOnTapSbvp":{"name":"dismissOnTap","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV16gradientVelocitySdvp":{"name":"gradientVelocity","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV12bubbleHInset12CoreGraphics7CGFloatVvp":{"name":"bubbleHInset","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV12bubbleVInset12CoreGraphics7CGFloatVvp":{"name":"bubbleVInset","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV10textHInset12CoreGraphics7CGFloatVvp":{"name":"textHInset","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV10textVInset12CoreGraphics7CGFloatVvp":{"name":"textVInset","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV8maxWidth12CoreGraphics7CGFloatVvp":{"name":"maxWidth","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV6margin12CoreGraphics7CGFloatVvp":{"name":"margin","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV12cornerRadius12CoreGraphics7CGFloatVvp":{"name":"cornerRadius","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV11arrowHeight12CoreGraphics7CGFloatVvp":{"name":"arrowHeight","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV10arrowWidth12CoreGraphics7CGFloatVvp":{"name":"arrowWidth","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV15foregroundColorSo7UIColorCvp":{"name":"foregroundColor","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV15backgroundColorSo7UIColorCvp":{"name":"backgroundColor","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV25backgroundColorCollectionSaySo7UIColorCGvp":{"name":"backgroundColorCollection","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV13arrowPositionAC05ArrowI0Ovp":{"name":"arrowPosition","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV13textAlignmentSo06NSTextI0Vvp":{"name":"textAlignment","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV11borderWidth12CoreGraphics7CGFloatVvp":{"name":"borderWidth","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV11borderColorSo7UIColorCvp":{"name":"borderColor","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV4fontSo6UIFontCvp":{"name":"font","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html":{"name":"Drawing","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences/Positioning.html":{"name":"Positioning","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences/Animating.html":{"name":"Animating","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7drawingAE7DrawingVvp":{"name":"drawing","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11positioningAE11PositioningVvp":{"name":"positioning","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9animatingAE9AnimatingVvp":{"name":"animating","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9hasBorderSbvp":{"name":"hasBorder","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences.html#/s:12KanvasCamera11EasyTipViewC11PreferencesVAEycfc":{"name":"init()","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/ArrowPosition.html#/s:12KanvasCamera11EasyTipViewC13ArrowPositionO3anyyA2EmF":{"name":"any","abstract":"

Undocumented

","parent_name":"ArrowPosition"},"Classes/EasyTipView/ArrowPosition.html#/s:12KanvasCamera11EasyTipViewC13ArrowPositionO3topyA2EmF":{"name":"top","abstract":"

Undocumented

","parent_name":"ArrowPosition"},"Classes/EasyTipView/ArrowPosition.html#/s:12KanvasCamera11EasyTipViewC13ArrowPositionO6bottomyA2EmF":{"name":"bottom","abstract":"

Undocumented

","parent_name":"ArrowPosition"},"Classes/EasyTipView/ArrowPosition.html#/s:12KanvasCamera11EasyTipViewC13ArrowPositionO5rightyA2EmF":{"name":"right","abstract":"

Undocumented

","parent_name":"ArrowPosition"},"Classes/EasyTipView/ArrowPosition.html#/s:12KanvasCamera11EasyTipViewC13ArrowPositionO4leftyA2EmF":{"name":"left","abstract":"

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/c:@M@KanvasCamera@objc(cs)EasyTipView(py)description":{"name":"description","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/s:12KanvasCamera11EasyTipViewC11preferencesAC11PreferencesVvp":{"name":"preferences","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/s:12KanvasCamera11EasyTipViewC4textSSvp":{"name":"text","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/s:12KanvasCamera11EasyTipViewC17globalPreferencesAC0G0VvpZ":{"name":"globalPreferences","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/s:12KanvasCamera11EasyTipViewC4text11preferences8delegateACSS_AC11PreferencesVAA0cdE8Delegate_pSgtcfc":{"name":"init(text:preferences:delegate:)","abstract":"

Undocumented

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

NSCoding not supported. Use init(text, preferences, delegate) instead!

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/c:@M@KanvasCamera@objc(cs)EasyTipView(im)drawRect:":{"name":"draw(_:)","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/c:@CM@KanvasCamera@objc(cs)EasyTipView(im)gestureRecognizerShouldBegin:":{"name":"gestureRecognizerShouldBegin(_:)","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC12enabledModesShyAA0B4ModeOGvp":{"name":"enabledModes","abstract":"

Enables/disables modes.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC11defaultModeAA0bE0OSgvp":{"name":"defaultMode","abstract":"

Camera mode which starts active.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC07defaultB14PositionOptionSo015AVCaptureDeviceE0Vvp":{"name":"defaultCameraPositionOption","abstract":"

Camera position option which starts active.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC20preferredFlashOptionSo09AVCaptureE4ModeVvp":{"name":"preferredFlashOption","abstract":"

Flash option which starts active.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC18imagePreviewOptionAA05ImageE4ModeOvp":{"name":"imagePreviewOption","abstract":"

Fullscreen image preview which starts disabled.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC23cameraSupportsLandscapeSbvp":{"name":"cameraSupportsLandscape","abstract":"

Whether the camera should be shown in landscape.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC28exportStopMotionPhotoAsVideoSbvp":{"name":"exportStopMotionPhotoAsVideo","abstract":"

Whether the camera controller allows exporting live photos as video.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC8featuresAA0B8FeaturesVvp":{"name":"features","abstract":"

The features to enable/disable for the controller.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC17topButtonsSwappedSbvp":{"name":"topButtonsSwapped","abstract":"

Buttons Swapped on the Camera View","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC17crossIconInEditorSbvp":{"name":"crossIconInEditor","abstract":"

Cross Icon In Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC19showCogIconInEditorSbvp":{"name":"showCogIconInEditor","abstract":"

Cog icon in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC21showTagButtonInEditorSbvp":{"name":"showTagButtonInEditor","abstract":"

Tag button in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC25showTagCollectionInEditorSbvp":{"name":"showTagCollectionInEditor","abstract":"

Tag collection in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC27showQuickPostButtonInEditorSbvp":{"name":"showQuickPostButtonInEditor","abstract":"

Quick post button in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC24enableQuickPostLongPressSbvp":{"name":"enableQuickPostLongPress","abstract":"

Long press for post button in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC24showBlogSwitcherInEditorSbvp":{"name":"showBlogSwitcherInEditor","abstract":"

Blog Switcher in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC17editToolsRedesignSbvp":{"name":"editToolsRedesign","abstract":"

Edit Tools Redesign","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC20shutterButtonTooltipSbvp":{"name":"shutterButtonTooltip","abstract":"

Shutter Button Tooltip","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC22horizontalModeSelectorSbvp":{"name":"horizontalModeSelector","abstract":"

Horizontal Mode Selector","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC25editorShouldStartGIFMaker4modeSbAA0B4ModeOSg_tF":{"name":"editorShouldStartGIFMaker(mode:)","abstract":"

Auto-open GIF Maker in Editor

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC28setEditorShouldStartGIFMakeryySbF":{"name":"setEditorShouldStartGIFMaker(_:)","abstract":"

Undocumented

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC03gifB19ShouldStartGIFMakerSbvp":{"name":"gifCameraShouldStartGIFMaker","abstract":"

Auto-open GIF Maker after GIF Camera

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/c:@M@KanvasCamera@objc(cs)CameraSettings(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"CameraSettings"},"Classes/EditorViewController.html#/s:12KanvasCamera20EditorViewControllerC8delegateAA0cE8Delegate_pSgvp":{"name":"delegate","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/s:12KanvasCamera20EditorViewControllerC06createC03for8settings15stickerProvider09analyticsJ0ACSo7UIImageC_AA0B8SettingsCAA07StickerJ0_pAA0ab9AnalyticsJ0_ptFZ":{"name":"createEditor(for:settings:stickerProvider:analyticsProvider:)","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/s:12KanvasCamera20EditorViewControllerC06createC03for8settings15stickerProviderAC10Foundation3URLV_AA0B8SettingsCAA07StickerJ0_ptFZ":{"name":"createEditor(for:settings:stickerProvider:)","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/s:12KanvasCamera20EditorViewControllerC06createC06forGIF4info8settings15stickerProvider09analyticsL010completiony10Foundation3URLV_AA15MediaInfoSimpleVAA0B8SettingsCAA07StickerL0_pAA0ab9AnalyticsL0_pyACctFZ":{"name":"createEditor(forGIF:info:settings:stickerProvider:analyticsProvider:completion:)","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/c:@M@KanvasCamera@objc(cs)EditorViewController(im)viewWillAppear:":{"name":"viewWillAppear(_:)","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/c:@M@KanvasCamera@objc(cs)EditorViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/c:@M@KanvasCamera@objc(cs)EditorViewController(py)preferredStatusBarStyle":{"name":"preferredStatusBarStyle","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/c:@M@KanvasCamera@objc(cs)EditorViewController(py)supportedInterfaceOrientations":{"name":"supportedInterfaceOrientations","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/s:12KanvasCamera21MediaPlayerControllerP23onQuickPostOptionsShown7visible8hintText4viewySb_SSSgSo6UIViewCtF":{"name":"onQuickPostOptionsShown(visible:hintText:view:)","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/s:12KanvasCamera21MediaPlayerControllerP26onQuickPostOptionsSelected8selected8hintText4viewySb_SSSgSo6UIViewCtF":{"name":"onQuickPostOptionsSelected(selected:hintText:view:)","parent_name":"EditorViewController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

The delegate for camera callback methods.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC8settings15stickerProvider09analyticsF028quickBlogSelectorCoordinator13tagCollectionAcA0B8SettingsC_AA07StickerF0_pSgAA0ab9AnalyticsF0_pSgAA0a5QuickiJ12Coordinating_pSgSo6UIViewCSgtcfc":{"name":"init(settings:stickerProvider:analyticsProvider:quickBlogSelectorCoordinator:tagCollection:)","abstract":"

Constructs a CameraController that will record from the device camera","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(py)preferredStatusBarStyle":{"name":"preferredStatusBarStyle","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(py)preferredStatusBarUpdateAnimation":{"name":"preferredStatusBarUpdateAnimation","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(py)supportedInterfaceOrientations":{"name":"supportedInterfaceOrientations","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC13requestAccessyyySbcSgF":{"name":"requestAccess(_:)","abstract":"

Requests permissions for video

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC7logOpenyyF":{"name":"logOpen()","abstract":"

logs opening the camera

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC10logDismissyyF":{"name":"logDismiss()","abstract":"

logs closing the camera

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(im)loadView":{"name":"loadView()","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(im)viewDidAppear:":{"name":"viewDidAppear(_:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP23didFinishExportingVideo3url4info6action12mediaChangedy10Foundation3URLVSg_AA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingVideo(url:info:action:mediaChanged:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP23didFinishExportingImage5image4info6action12mediaChangedySo7UIImageCSg_AA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingImage(image:info:action:mediaChanged:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP24didFinishExportingFrames3url4size4info6action12mediaChangedy10Foundation3URLVSg_So6CGSizeVSgAA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingFrames(url:size:info:action:mediaChanged:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B25PreviewControllerDelegateP20dismissButtonPressedyyF":{"name":"dismissButtonPressed()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP16tagButtonPressedyyF":{"name":"tagButtonPressed()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP36editorShouldShowColorSelectorTooltipSbyF":{"name":"editorShouldShowColorSelectorTooltip()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP30didDismissColorSelectorTooltipyyF":{"name":"didDismissColorSelectorTooltip()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP39editorShouldShowStrokeSelectorAnimationSbyF":{"name":"editorShouldShowStrokeSelectorAnimation()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP29didEndStrokeSelectorAnimationyyF":{"name":"didEndStrokeSelectorAnimation()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP18getQuickPostButton15enableLongPressSo6UIViewCSb_tF":{"name":"getQuickPostButton(enableLongPress:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP15getBlogSwitcherSo6UIViewCyF":{"name":"getBlogSwitcher()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC7cleanupyyF":{"name":"cleanup()","abstract":"

This function should be called to stop the camera session and properly breakdown the inputs

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC10resetStateyyF":{"name":"resetState()","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC22onPostOptionsDismissedyyF":{"name":"onPostOptionsDismissed()","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC26onQuickPostButtonSubmittedyyF":{"name":"onQuickPostButtonSubmitted()","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC23onQuickPostOptionsShown7visible8hintText4viewySb_SSSgSo6UIViewCtF":{"name":"onQuickPostOptionsShown(visible:hintText:view:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC26onQuickPostOptionsSelected8selected8hintText4viewySb_SSSgSo6UIViewCtF":{"name":"onQuickPostOptionsSelected(selected:hintText:view:)","abstract":"

Undocumented

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

A controller that contains and layouts all camera handling views and controllers (mode selector, input, etc).

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

A view controller to edit the segments

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

A class that defines the settings for the Kanvas Camera. See each property for further description.

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

Undocumented

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

The following classes are available globally.

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

The following enumerations are available globally.

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

The following extensions are available globally.

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

The following protocols are available globally.

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

The following structures are available globally.

"},"Typealiases.html":{"name":"Type Aliases","abstract":"

The following type aliases are available globally.

"}} \ No newline at end of file diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/undocumented.json new file mode 100644 index 000000000..689f94a41 --- /dev/null +++ b/docs/docsets/KanvasCamera.docset/Contents/Resources/Documents/undocumented.json @@ -0,0 +1,2133 @@ +{ + "warnings": [ + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 10, + "symbol": "KanvasBrushType", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 11, + "symbol": "KanvasBrushType.marker", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 11, + "symbol": "KanvasBrushType.pencil", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 11, + "symbol": "KanvasBrushType.sharpie", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 13, + "symbol": "KanvasBrushType.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 25, + "symbol": "KanvasColorSelectionTool", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 26, + "symbol": "KanvasColorSelectionTool.eyedropper", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 26, + "symbol": "KanvasColorSelectionTool.gradient", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 26, + "symbol": "KanvasColorSelectionTool.swatch", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 28, + "symbol": "KanvasColorSelectionTool.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 40, + "symbol": "KanvasDrawingAction", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 41, + "symbol": "KanvasDrawingAction.fill", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 41, + "symbol": "KanvasDrawingAction.stroke", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 41, + "symbol": "KanvasDrawingAction.tap", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 43, + "symbol": "KanvasDrawingAction.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 55, + "symbol": "KanvasTextFont", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 56, + "symbol": "KanvasTextFont.regular", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 56, + "symbol": "KanvasTextFont.script", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 58, + "symbol": "KanvasTextFont.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 67, + "symbol": "KanvasTextFont.from(font:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 82, + "symbol": "KanvasTextAlignment", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 83, + "symbol": "KanvasTextAlignment.center", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 83, + "symbol": "KanvasTextAlignment.left", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 83, + "symbol": "KanvasTextAlignment.right", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 85, + "symbol": "KanvasTextAlignment.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 96, + "symbol": "KanvasTextAlignment.from(alignment:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 111, + "symbol": "KanvasDashboardOpenAction", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 112, + "symbol": "KanvasDashboardOpenAction.swipe", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 112, + "symbol": "KanvasDashboardOpenAction.tap", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 114, + "symbol": "KanvasDashboardOpenAction.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 124, + "symbol": "KanvasDashboardDismissAction", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 125, + "symbol": "KanvasDashboardDismissAction.swipe", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 125, + "symbol": "KanvasDashboardDismissAction.tap", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 127, + "symbol": "KanvasDashboardDismissAction.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 137, + "symbol": "KanvasMediaType", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 138, + "symbol": "KanvasMediaType.frames", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 138, + "symbol": "KanvasMediaType.image", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 138, + "symbol": "KanvasMediaType.livePhoto", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 138, + "symbol": "KanvasMediaType.video", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 140, + "symbol": "KanvasMediaType.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 154, + "symbol": "KanvasGIFPlaybackMode", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 155, + "symbol": "KanvasGIFPlaybackMode.loop", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 155, + "symbol": "KanvasGIFPlaybackMode.rebound", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 155, + "symbol": "KanvasGIFPlaybackMode.reverse", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 168, + "symbol": "KanvasGIFPlaybackMode.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 246, + "symbol": "KanvasCameraAnalyticsProvider.logMediaPickerOpen()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 248, + "symbol": "KanvasCameraAnalyticsProvider.logMediaPickerDismiss()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 250, + "symbol": "KanvasCameraAnalyticsProvider.logMediaPickerPickedMedia(ofType:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 252, + "symbol": "KanvasCameraAnalyticsProvider.logEditorOpen()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 254, + "symbol": "KanvasCameraAnalyticsProvider.logEditorBack()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 384, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFButtonToggle(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 385, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFOpen()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 386, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFOpenTrim()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 387, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFOpenSpeed()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 388, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFRevert()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 389, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFConfirm(duration:playbackMode:speed:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 390, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFChange(playbackMode:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 391, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFChange(speed:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 392, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFChange(trimStart:trimEnd:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 13, + "symbol": "KanvasCameraMedia.image(_:_:_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 14, + "symbol": "KanvasCameraMedia.video(_:_:_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 15, + "symbol": "KanvasCameraMedia.frames(_:_:_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 17, + "symbol": "KanvasCameraMedia.info", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 26, + "symbol": "KanvasExportAction", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 27, + "symbol": "KanvasExportAction.previewConfirm", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 28, + "symbol": "KanvasExportAction.confirm", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 29, + "symbol": "KanvasExportAction.post", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 30, + "symbol": "KanvasExportAction.save", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 31, + "symbol": "KanvasExportAction.postOptions", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 32, + "symbol": "KanvasExportAction.confirmPostOptions", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 245, + "symbol": "CameraController.preferredStatusBarStyle", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 249, + "symbol": "CameraController.preferredStatusBarUpdateAnimation", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 253, + "symbol": "CameraController.supportedInterfaceOrientations", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 280, + "symbol": "CameraController.loadView()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 284, + "symbol": "CameraController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 304, + "symbol": "CameraController.viewDidAppear(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 1087, + "symbol": "CameraController.resetState()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 1096, + "symbol": "CameraController.onPostOptionsDismissed()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 1100, + "symbol": "CameraController.onQuickPostButtonSubmitted()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 1104, + "symbol": "CameraController.onQuickPostOptionsShown(visible:hintText:view:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 1108, + "symbol": "CameraController.onQuickPostOptionsSelected(selected:hintText:view:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraColors.swift", + "line": 60, + "symbol": "KanvasCameraColors", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraColors.swift", + "line": 62, + "symbol": "KanvasCameraColors.shared", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraColors.swift", + "line": 95, + "symbol": "KanvasCameraColors.init(drawingDefaultColor:colorPickerColors:selectedPickerColor:timeSegmentColors:backgroundColors:strokeColor:sliderActiveColor:sliderOuterCircleColor:trimBackgroundColor:trashColor:tooltipBackgroundColor:closeButtonColor:filterColors:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 9, + "symbol": "KanvasCameraFonts", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 28, + "symbol": "KanvasCameraFonts.init(permissions:drawer:editorFonts:optionSelectorCellFont:mediaClipsFont:modeButtonFont:speedLabelFont:timeIndicatorFont:colorSelectorTooltipFont:modeSelectorTooltipFont:postLabelFont:gifMakerRevertButtonFont:paddingAdjustment:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 56, + "symbol": "KanvasCameraFonts.shared", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 73, + "symbol": "KanvasCameraFonts.CameraPermissions", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 74, + "symbol": "KanvasCameraFonts.CameraPermissions.init(titleFont:descriptionFont:buttonFont:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 86, + "symbol": "KanvasCameraFonts.Drawer", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 87, + "symbol": "KanvasCameraFonts.Drawer.init(textSelectedFont:textUnselectedFont:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 112, + "symbol": "KanvasCameraFonts.Padding", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 118, + "symbol": "KanvasCameraFonts.Padding.init(topMargin:leftMargin:extraVerticalPadding:extraHorizontalPadding:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 190, + "symbol": "EditorViewController.delegate", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 202, + "symbol": "EditorViewController.createEditor(for:settings:stickerProvider:analyticsProvider:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 218, + "symbol": "EditorViewController.createEditor(for:settings:stickerProvider:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 231, + "symbol": "EditorViewController.createEditor(forGIF:info:settings:stickerProvider:analyticsProvider:completion:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 313, + "symbol": "EditorViewController.viewWillAppear(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 319, + "symbol": "EditorViewController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 340, + "symbol": "EditorViewController.preferredStatusBarStyle", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 344, + "symbol": "EditorViewController.supportedInterfaceOrientations", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/KanvasQuickBlogSelectorCoordinating.swift", + "line": 9, + "symbol": "KanvasQuickBlogSelectorCoordinating", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/KanvasQuickBlogSelectorCoordinating.swift", + "line": 11, + "symbol": "KanvasQuickBlogSelectorCoordinating.present(presentingView:fromPoint:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/KanvasQuickBlogSelectorCoordinating.swift", + "line": 13, + "symbol": "KanvasQuickBlogSelectorCoordinating.dismiss()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/KanvasQuickBlogSelectorCoordinating.swift", + "line": 15, + "symbol": "KanvasQuickBlogSelectorCoordinating.touchDidMoveToPoint(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/KanvasQuickBlogSelectorCoordinating.swift", + "line": 17, + "symbol": "KanvasQuickBlogSelectorCoordinating.avatarView(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerCollection/Sticker.swift", + "line": 18, + "symbol": "Sticker.init(id:imageUrl:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerLoader.swift", + "line": 9, + "symbol": "KanvasCancelable", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerLoader.swift", + "line": 14, + "symbol": "KanvasStickerLoader", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerLoader.swift", + "line": 16, + "symbol": "KanvasStickerLoader.loadSticker(at:imageView:completion:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerProvider/StickerProvider.swift", + "line": 7, + "symbol": "StickerProviderDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerProvider/StickerProvider.swift", + "line": 14, + "symbol": "StickerProvider", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerProvider/StickerProvider.swift", + "line": 24, + "symbol": "StickerProvider.loader()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerTypeCollection/StickerType.swift", + "line": 19, + "symbol": "StickerType.init(id:imageUrl:stickers:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Extensions/AVAsset+Utils.swift", + "line": 10, + "symbol": "AVAsset.videoScreenSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Extensions/UICollectionView+Cells.swift", + "line": 18, + "symbol": "Identifiable.identifier", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Extensions/UICollectionView+Cells.swift", + "line": 24, + "symbol": "Identifiable.identifier", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Extensions/UICollectionView+Cells.swift", + "line": 105, + "symbol": "UICollectionView.dequeue(view:ofKind:for:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/MediaPicker/LivePhotoLoader.swift", + "line": 11, + "symbol": "LivePhotoLoader", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/MediaPicker/LivePhotoLoader.swift", + "line": 21, + "symbol": "LivePhotoLoader.init(asset:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/MediaPicker/LivePhotoLoader.swift", + "line": 25, + "symbol": "LivePhotoLoader.pairedVideo(completion:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Options/CameraOption.swift", + "line": 63, + "symbol": "ImagePreviewMode", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Options/CameraOption.swift", + "line": 64, + "symbol": "ImagePreviewMode.on", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Options/CameraOption.swift", + "line": 65, + "symbol": "ImagePreviewMode.off", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Recording/PhotoOutputHandler.swift", + "line": 53, + "symbol": "PhotoOutputHandler.photoOutput(_:didFinishProcessingPhoto:error:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 13, + "symbol": "FilterType.passthrough", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 14, + "symbol": "FilterType.wavePool", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 15, + "symbol": "FilterType.plasma", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 16, + "symbol": "FilterType.emInterference", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 17, + "symbol": "FilterType.rgb", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 18, + "symbol": "FilterType.lego", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 19, + "symbol": "FilterType.chroma", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 20, + "symbol": "FilterType.rave", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 21, + "symbol": "FilterType.mirrorTwo", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 22, + "symbol": "FilterType.mirrorFour", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 23, + "symbol": "FilterType.lightLeaks", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 24, + "symbol": "FilterType.film", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 25, + "symbol": "FilterType.grayscale", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 26, + "symbol": "FilterType.manga", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 27, + "symbol": "FilterType.toon", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 28, + "symbol": "FilterType.off", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 70, + "symbol": "FilterType.filterApplied", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 11, + "symbol": "UInt8.boolValue", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 27, + "symbol": "Int.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 30, + "symbol": "Int.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 33, + "symbol": "Int.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 36, + "symbol": "Int.b", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 39, + "symbol": "Int.ub", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 42, + "symbol": "Int.s", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 45, + "symbol": "Int.us", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 48, + "symbol": "Int.i", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 51, + "symbol": "Int.ui", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 57, + "symbol": "Int.ul", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 60, + "symbol": "Int.ll", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 63, + "symbol": "Int.ull", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 70, + "symbol": "UInt.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 73, + "symbol": "UInt.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 76, + "symbol": "UInt.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 79, + "symbol": "UInt.b", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 82, + "symbol": "UInt.ub", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 85, + "symbol": "UInt.s", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 88, + "symbol": "UInt.us", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 91, + "symbol": "UInt.i", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 94, + "symbol": "UInt.ui", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 97, + "symbol": "UInt.l", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 103, + "symbol": "UInt.ll", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 106, + "symbol": "UInt.ull", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 113, + "symbol": "Int32.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 116, + "symbol": "Int32.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 119, + "symbol": "Int32.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 122, + "symbol": "Int32.b", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 125, + "symbol": "Int32.ub", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 128, + "symbol": "Int32.s", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 131, + "symbol": "Int32.us", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 137, + "symbol": "Int32.ui", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 140, + "symbol": "Int32.l", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 143, + "symbol": "Int32.ul", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 146, + "symbol": "Int32.ll", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 149, + "symbol": "Int32.ull", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 156, + "symbol": "UInt32.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 159, + "symbol": "UInt32.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 162, + "symbol": "UInt32.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 165, + "symbol": "UInt32.b", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 168, + "symbol": "UInt32.ub", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 171, + "symbol": "UInt32.s", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 174, + "symbol": "UInt32.us", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 177, + "symbol": "UInt32.i", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 183, + "symbol": "UInt32.l", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 186, + "symbol": "UInt32.ul", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 189, + "symbol": "UInt32.ll", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 192, + "symbol": "UInt32.ull", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 199, + "symbol": "UInt64.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 202, + "symbol": "UInt64.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 205, + "symbol": "UInt64.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 208, + "symbol": "UInt64.b", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 211, + "symbol": "UInt64.ub", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 214, + "symbol": "UInt64.s", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 217, + "symbol": "UInt64.us", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 220, + "symbol": "UInt64.i", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 223, + "symbol": "UInt64.ui", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 226, + "symbol": "UInt64.l", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 229, + "symbol": "UInt64.ul", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 232, + "symbol": "UInt64.ll", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 242, + "symbol": "Float.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 245, + "symbol": "Float.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 251, + "symbol": "Double.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 254, + "symbol": "Double.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 260, + "symbol": "CGFloat.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 263, + "symbol": "CGFloat.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 266, + "symbol": "CGFloat.i", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/OpenGL/GLUtilities.swift", + "line": 11, + "symbol": "GLU", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/OpenGL/GLUtilities.swift", + "line": 75, + "symbol": "GLU.validateProgram(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/OpenGL/GLUtilities.swift", + "line": 100, + "symbol": "GLU.getUniformLocation(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/OpenGL/GLUtilities.swift", + "line": 110, + "symbol": "GLU.createProgram(_:_:_:_:_:_:_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 20, + "symbol": "CameraMode.stopMotion", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 21, + "symbol": "CameraMode.photo", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 22, + "symbol": "CameraMode.loop", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 23, + "symbol": "CameraMode.normal", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 24, + "symbol": "CameraMode.stitch", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 25, + "symbol": "CameraMode.gif", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 33, + "symbol": "CameraMode.Group.video", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 34, + "symbol": "CameraMode.Group.photo", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 35, + "symbol": "CameraMode.Group.gif", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 43, + "symbol": "CameraMode.Quantity.single", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 44, + "symbol": "CameraMode.Quantity.multiple", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 47, + "symbol": "CameraMode.group", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 58, + "symbol": "CameraMode.quantity", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 136, + "symbol": "CameraFeatures.editorPostOptions", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 226, + "symbol": "CameraSettings.cameraSupportsLandscape", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 229, + "symbol": "CameraSettings.exportStopMotionPhotoAsVideo", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 286, + "symbol": "CameraSettings.setEditorShouldStartGIFMaker(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 295, + "symbol": "CameraSettings.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/Device.swift", + "line": 9, + "symbol": "KanvasDevice", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/Device.swift", + "line": 28, + "symbol": "KanvasDevice.isRunningInSimulator", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/Device.swift", + "line": 50, + "symbol": "KanvasDevice.belongsToIPhoneXGroup", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 13, + "symbol": "EasyTipViewDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 14, + "symbol": "EasyTipViewDelegate.easyTipViewDidDismiss(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 20, + "symbol": "EasyTipView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 162, + "symbol": "EasyTipView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 164, + "symbol": "EasyTipView.gestureRecognizerShouldBegin(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 171, + "symbol": "EasyTipView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 175, + "symbol": "EasyTipView.ArrowPosition", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 176, + "symbol": "EasyTipView.ArrowPosition.any", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 177, + "symbol": "EasyTipView.ArrowPosition.top", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 178, + "symbol": "EasyTipView.ArrowPosition.bottom", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 179, + "symbol": "EasyTipView.ArrowPosition.right", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 180, + "symbol": "EasyTipView.ArrowPosition.left", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 185, + "symbol": "EasyTipView.Preferences", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 187, + "symbol": "EasyTipView.Preferences.Drawing", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 188, + "symbol": "EasyTipView.Preferences.Drawing.cornerRadius", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 189, + "symbol": "EasyTipView.Preferences.Drawing.arrowHeight", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 190, + "symbol": "EasyTipView.Preferences.Drawing.arrowWidth", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 191, + "symbol": "EasyTipView.Preferences.Drawing.foregroundColor", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 192, + "symbol": "EasyTipView.Preferences.Drawing.backgroundColor", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 193, + "symbol": "EasyTipView.Preferences.Drawing.backgroundColorCollection", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 194, + "symbol": "EasyTipView.Preferences.Drawing.arrowPosition", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 195, + "symbol": "EasyTipView.Preferences.Drawing.textAlignment", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 196, + "symbol": "EasyTipView.Preferences.Drawing.borderWidth", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 197, + "symbol": "EasyTipView.Preferences.Drawing.borderColor", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 198, + "symbol": "EasyTipView.Preferences.Drawing.font", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 201, + "symbol": "EasyTipView.Preferences.Positioning", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 202, + "symbol": "EasyTipView.Preferences.Positioning.bubbleHInset", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 203, + "symbol": "EasyTipView.Preferences.Positioning.bubbleVInset", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 204, + "symbol": "EasyTipView.Preferences.Positioning.textHInset", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 205, + "symbol": "EasyTipView.Preferences.Positioning.textVInset", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 206, + "symbol": "EasyTipView.Preferences.Positioning.maxWidth", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 207, + "symbol": "EasyTipView.Preferences.Positioning.margin", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 210, + "symbol": "EasyTipView.Preferences.Animating", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 211, + "symbol": "EasyTipView.Preferences.Animating.dismissTransform", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 212, + "symbol": "EasyTipView.Preferences.Animating.showInitialTransform", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 213, + "symbol": "EasyTipView.Preferences.Animating.showFinalTransform", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 214, + "symbol": "EasyTipView.Preferences.Animating.springDamping", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 215, + "symbol": "EasyTipView.Preferences.Animating.springVelocity", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 216, + "symbol": "EasyTipView.Preferences.Animating.showInitialAlpha", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 217, + "symbol": "EasyTipView.Preferences.Animating.dismissFinalAlpha", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 218, + "symbol": "EasyTipView.Preferences.Animating.showDuration", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 219, + "symbol": "EasyTipView.Preferences.Animating.dismissDuration", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 220, + "symbol": "EasyTipView.Preferences.Animating.dismissOnTap", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 221, + "symbol": "EasyTipView.Preferences.Animating.gradientVelocity", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 224, + "symbol": "EasyTipView.Preferences.drawing", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 225, + "symbol": "EasyTipView.Preferences.positioning", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 226, + "symbol": "EasyTipView.Preferences.animating", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 227, + "symbol": "EasyTipView.Preferences.hasBorder", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 231, + "symbol": "EasyTipView.Preferences.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 236, + "symbol": "EasyTipView.backgroundColor", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 246, + "symbol": "EasyTipView.description", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 257, + "symbol": "EasyTipView.preferences", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 258, + "symbol": "EasyTipView.text", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 304, + "symbol": "EasyTipView.globalPreferences", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 308, + "symbol": "EasyTipView.init(text:preferences:delegate:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 646, + "symbol": "EasyTipView.draw(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 10, + "symbol": "MediaInfo", + "symbol_kind": "source.lang.swift.decl.typealias", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 12, + "symbol": "MediaInfoSimple", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 14, + "symbol": "MediaInfoSimple.Source", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 15, + "symbol": "MediaInfoSimple.Source.kanvas_camera", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 16, + "symbol": "MediaInfoSimple.Source.media_library", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 19, + "symbol": "MediaInfoSimple.source", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 21, + "symbol": "MediaInfoSimple.init(source:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 26, + "symbol": "MediaInfoSimple", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 32, + "symbol": "MediaInfoSimple.Source", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 68, + "symbol": "MediaInfoSimple.Source.stringValue()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 79, + "symbol": "MediaInfo", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 155, + "symbol": "MediaInfo", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 178, + "symbol": "MediaInfo.createAVMetadataItems()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + } + ], + "source_directory": "/Users/bjtitus/Source/Automattic/Kanvas-iOS" +} \ No newline at end of file diff --git a/docs/docsets/KanvasCamera.docset/Contents/Resources/docSet.dsidx b/docs/docsets/KanvasCamera.docset/Contents/Resources/docSet.dsidx new file mode 100644 index 0000000000000000000000000000000000000000..a1486c2842cf61ec6eb593ad35af61667bc81b82 GIT binary patch literal 147456 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 P8fMVxCJ#i3^z?rLe`j|2 literal 0 HcmV?d00001 diff --git a/docs/docsets/KanvasCamera.tgz b/docs/docsets/KanvasCamera.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ab6c53d2e7ca0a569840e3795847b0ced0cff5e4 GIT binary patch literal 179622 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

Ez)| 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

oI@j{A9K#&t*4Q5 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 literal 0 HcmV?d00001 diff --git a/docs/img/carat.png b/docs/img/carat.png new file mode 100755 index 0000000000000000000000000000000000000000..29d2f7fd4955fca6bc6fb740e0373a2c358c398e GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRo!3HEV4DF?Wlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqAi{-jv*Ddl5#RKJQ5NTUZgiPI4RUKGIKU?u8L&ndhX1t za+0CMVUnT(Gnb}ei=c~x==tMH^F1_tBocXwcoSWoO-SZY-o>!8%^=Bms)(~h;m_U( zXNixk28L}0LS5-jKyq@#2gyS|J&f#pGCLkTc<@2s1dqeyqJ*Rc0tSIETAgmODY;(s z2y|Mcp&2}7rpBprBBB~1qM1`N+}4SoxYVPqsXi&l`rxZp{(w0iSy$Nv5*Vy!RapG^ S^0y4=eg;ohKbLh*2~7a!Pg}VF literal 0 HcmV?d00001 diff --git a/docs/img/dash.png b/docs/img/dash.png new file mode 100755 index 0000000000000000000000000000000000000000..6f694c7a012b417908da3687a0a39aa182e91c74 GIT binary patch literal 1338 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 literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 000000000..2aa968feb --- /dev/null +++ b/docs/index.html @@ -0,0 +1,285 @@ + + + + KanvasCamera Reference + + + + + + + + + + + + +

+
+

KanvasCamera 1.0.0 Docs (43% documented)

+

+

+ +
+

+
+
+
+ +
+
+ + +
+ +
+ diff --git a/docs/js/jazzy.js b/docs/js/jazzy.js new file mode 100755 index 000000000..1e55d6ef0 --- /dev/null +++ b/docs/js/jazzy.js @@ -0,0 +1,70 @@ +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/js/jazzy.search.js b/docs/js/jazzy.search.js new file mode 100644 index 000000000..e3d1ab905 --- /dev/null +++ b/docs/js/jazzy.search.js @@ -0,0 +1,70 @@ +$(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/js/jquery.min.js b/docs/js/jquery.min.js new file mode 100644 index 000000000..b0614034a --- /dev/null +++ b/docs/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! 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/js/typeahead.jquery.js b/docs/js/typeahead.jquery.js new file mode 100644 index 000000000..3a2d2ab03 --- /dev/null +++ b/docs/js/typeahead.jquery.js @@ -0,0 +1,1694 @@ +/*! + * 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/search.json b/docs/search.json new file mode 100644 index 000000000..9f9e463ad --- /dev/null +++ b/docs/search.json @@ -0,0 +1 @@ +{"Typealiases.html#/s:12KanvasCamera9MediaInfoa":{"name":"MediaInfo","abstract":"

Undocumented

"},"Structs/MediaInfoSimple/Source.html#/s:12KanvasCamera15MediaInfoSimpleV6SourceO13kanvas_camerayA2EmF":{"name":"kanvas_camera","abstract":"

Undocumented

","parent_name":"Source"},"Structs/MediaInfoSimple/Source.html#/s:12KanvasCamera15MediaInfoSimpleV6SourceO13media_libraryyA2EmF":{"name":"media_library","abstract":"

Undocumented

","parent_name":"Source"},"Structs/MediaInfoSimple/Source.html#/s:Se4fromxs7Decoder_p_tKcfc":{"name":"init(from:)","parent_name":"Source"},"Structs/MediaInfoSimple/Source.html#/s:SE6encode2toys7Encoder_p_tKF":{"name":"encode(to:)","parent_name":"Source"},"Structs/MediaInfoSimple/Source.html#/s:12KanvasCamera15MediaInfoSimpleV6SourceO11stringValueSSyF":{"name":"stringValue()","abstract":"

Undocumented

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

Undocumented

","parent_name":"MediaInfoSimple"},"Structs/MediaInfoSimple.html#/s:12KanvasCamera15MediaInfoSimpleV6sourceAC6SourceOvp":{"name":"source","abstract":"

Undocumented

","parent_name":"MediaInfoSimple"},"Structs/MediaInfoSimple.html#/s:12KanvasCamera15MediaInfoSimpleV6sourceA2C6SourceO_tcfc":{"name":"init(source:)","abstract":"

Undocumented

","parent_name":"MediaInfoSimple"},"Structs/KanvasDevice.html#/s:12KanvasCamera0A6DeviceV20isRunningInSimulatorSbvpZ":{"name":"isRunningInSimulator","abstract":"

Undocumented

","parent_name":"KanvasDevice"},"Structs/KanvasDevice.html#/s:12KanvasCamera0A6DeviceV21belongsToIPhoneXGroupSbvpZ":{"name":"belongsToIPhoneXGroup","abstract":"

Undocumented

","parent_name":"KanvasDevice"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV10ghostFrameSbvp":{"name":"ghostFrame","abstract":"

The Ghost Frame feature

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13openGLPreviewSbvp":{"name":"openGLPreview","abstract":"

The OpenGL Camera Preview feature

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13openGLCaptureSbvp":{"name":"openGLCapture","abstract":"

The OpenGL Camera Capture feature

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV12metalPreviewSbvp":{"name":"metalPreview","abstract":"

The metal camera preview feature. When openGLPreview is true, this will be ignored.

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13cameraFiltersSbvp":{"name":"cameraFilters","abstract":"

The Camera Filters feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV12metalFiltersSbvp":{"name":"metalFilters","abstract":"

This enables metal backed filteres

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV012experimentalB7FiltersSbvp":{"name":"experimentalCameraFilters","abstract":"

The Experimental Camera Filters feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV6editorSbvp":{"name":"editor","abstract":"

The Editor feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV14editorGIFMakerSbvp":{"name":"editorGIFMaker","abstract":"

The Editor GIF maker menu","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13editorFiltersSbvp":{"name":"editorFilters","abstract":"

The Editor Filters feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV10editorTextSbvp":{"name":"editorText","abstract":"

The Editor Text feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV11editorMediaSbvp":{"name":"editorMedia","abstract":"

The Editor Media feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13editorDrawingSbvp":{"name":"editorDrawing","abstract":"

The Editor Drawing feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV12mediaPickingSbvp":{"name":"mediaPicking","abstract":"

The Media Picker feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV13editorPostingSbvp":{"name":"editorPosting","abstract":"

The Editor Posting feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV17editorPostOptionsSbvp":{"name":"editorPostOptions","abstract":"

Undocumented

","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV12editorSavingSbvp":{"name":"editorSaving","abstract":"

The Editor Saving feature","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV03newB5ModesSbvp":{"name":"newCameraModes","abstract":"

The New Camera Modes","parent_name":"CameraFeatures"},"Structs/CameraFeatures.html#/s:12KanvasCamera0B8FeaturesV4gifsSbvp":{"name":"gifs","abstract":"

GIF support","parent_name":"CameraFeatures"},"Structs/GLU.html#/s:12KanvasCamera3GLUV13compileShaderys5Int32Vs6UInt32V_AFSPySPys4Int8VGSgGAHztFZ":{"name":"compileShader(_:_:_:_:)","abstract":"

Compile a shader from the provided source(s)

","parent_name":"GLU"},"Structs/GLU.html#/s:12KanvasCamera3GLUV11linkProgramys5Int32Vs6UInt32VFZ":{"name":"linkProgram(_:)","abstract":"

Link a program with all currently attached shaders

","parent_name":"GLU"},"Structs/GLU.html#/s:12KanvasCamera3GLUV15validateProgramys5Int32Vs6UInt32VFZ":{"name":"validateProgram(_:)","abstract":"

Undocumented

","parent_name":"GLU"},"Structs/GLU.html#/s:12KanvasCamera3GLUV18getUniformLocationys5Int32Vs6UInt32V_SStFZ":{"name":"getUniformLocation(_:_:)","abstract":"

Undocumented

","parent_name":"GLU"},"Structs/GLU.html#/s:12KanvasCamera3GLUV13createProgramys5Int32VSPys4Int8VGSg_AJSaySSGSays6UInt32VGAKSayAFGzAMztFZ":{"name":"createProgram(_:_:_:_:_:_:_:)","abstract":"

Undocumented

","parent_name":"GLU"},"Structs/StickerType.html#/s:12KanvasCamera11StickerTypeV2id8imageUrl8stickersACSS_SSSayAA0C0VGtcfc":{"name":"init(id:imageUrl:stickers:)","abstract":"

Undocumented

","parent_name":"StickerType"},"Structs/StickerType.html#/s:SQ2eeoiySbx_xtFZ":{"name":"==(_:_:)","parent_name":"StickerType"},"Structs/Sticker.html#/s:12KanvasCamera7StickerV2id8imageUrlACSS_SStcfc":{"name":"init(id:imageUrl:)","abstract":"

Undocumented

","parent_name":"Sticker"},"Structs/KanvasCameraFonts/Padding.html#/s:12KanvasCamera0aB5FontsV7PaddingV9topMargin04leftF0013extraVerticalD00h10HorizontalD0AE12CoreGraphics7CGFloatV_A3Ltcfc":{"name":"init(topMargin:leftMargin:extraVerticalPadding:extraHorizontalPadding:)","abstract":"

Undocumented

","parent_name":"Padding"},"Structs/KanvasCameraFonts/Drawer.html#/s:12KanvasCamera0aB5FontsV6DrawerV16textSelectedFont0e10UnselectedG0AESo6UIFontC_AItcfc":{"name":"init(textSelectedFont:textUnselectedFont:)","abstract":"

Undocumented

","parent_name":"Drawer"},"Structs/KanvasCameraFonts/CameraPermissions.html#/s:12KanvasCamera0aB5FontsV0B11PermissionsV9titleFont011descriptionF006buttonF0AESo6UIFontC_A2Jtcfc":{"name":"init(titleFont:descriptionFont:buttonFont:)","abstract":"

Undocumented

","parent_name":"CameraPermissions"},"Structs/KanvasCameraFonts.html#/s:12KanvasCamera0aB5FontsV11permissions6drawer06editorC022optionSelectorCellFont010mediaClipsJ0010modeButtonJ0010speedLabelJ0013timeIndicatorJ005colorh7TooltipJ00mhtJ004postpJ0014gifMakerRevertnJ017paddingAdjustmentA2C0B11PermissionsV_AC6DrawerVSaySo6UIFontCGA9vC7PaddingVSgAVcSgtcfc":{"name":"init(permissions:drawer:editorFonts:optionSelectorCellFont:mediaClipsFont:modeButtonFont:speedLabelFont:timeIndicatorFont:colorSelectorTooltipFont:modeSelectorTooltipFont:postLabelFont:gifMakerRevertButtonFont:paddingAdjustment:)","abstract":"

Undocumented

","parent_name":"KanvasCameraFonts"},"Structs/KanvasCameraFonts.html#/s:12KanvasCamera0aB5FontsV6sharedACvpZ":{"name":"shared","abstract":"

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

","parent_name":"KanvasCameraFonts"},"Structs/KanvasCameraColors.html#/s:12KanvasCamera0aB6ColorsV6sharedACvpZ":{"name":"shared","abstract":"

Undocumented

","parent_name":"KanvasCameraColors"},"Structs/KanvasCameraColors.html#/s:12KanvasCamera0aB6ColorsV19drawingDefaultColor011colorPickerC008selectedhF0011timeSegmentC0010backgroundC006strokeF0012sliderActiveF00n11OuterCircleF0014trimBackgroundF005trashF007tooltipsF0011closeButtonF006filterC0ACSo7UIColorC_SayARGAr2s7RSDyAA10FilterTypeOARGtcfc":{"name":"init(drawingDefaultColor:colorPickerColors:selectedPickerColor:timeSegmentColors:backgroundColors:strokeColor:sliderActiveColor:sliderOuterCircleColor:trimBackgroundColor:trashColor:tooltipBackgroundColor:closeButtonColor:filterColors:)","abstract":"

Undocumented

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

Undocumented

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

Undocumented

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

A representation of a sticker in the media drawer

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

A representation of a sticker type in the media drawer

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

Undocumented

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

Struct which represents all camera features which are the same value for the duration of a camera session.

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

Undocumented

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

Undocumented

"},"Protocols/EasyTipViewDelegate.html#/s:12KanvasCamera19EasyTipViewDelegateP04easydE10DidDismissyyAA0cdE0CF":{"name":"easyTipViewDidDismiss(_:)","abstract":"

Undocumented

","parent_name":"EasyTipViewDelegate"},"Protocols/Identifiable.html#/s:12KanvasCamera12IdentifiableP10identifierSSvpZ":{"name":"identifier","abstract":"

Undocumented

","parent_name":"Identifiable"},"Protocols/StickerProvider.html#/s:12KanvasCamera15StickerProviderP03getC5TypesyyF":{"name":"getStickerTypes()","abstract":"

Starts an API call to fetch the sticker types.

","parent_name":"StickerProvider"},"Protocols/StickerProvider.html#/s:12KanvasCamera15StickerProviderP11setDelegate8delegateyAA0cdF0_p_tF":{"name":"setDelegate(delegate:)","abstract":"

Sets a StickerProviderDelegate in StickerProvider

","parent_name":"StickerProvider"},"Protocols/StickerProvider.html#/s:12KanvasCamera15StickerProviderP6loaderAA0aC6Loader_pSgyF":{"name":"loader()","abstract":"

Undocumented

","parent_name":"StickerProvider"},"Protocols/StickerProviderDelegate.html#/s:12KanvasCamera23StickerProviderDelegateP07didLoadC5TypesyySayAA0C4TypeVGF":{"name":"didLoadStickerTypes(_:)","abstract":"

Callback for when the sticker request has finished loading

","parent_name":"StickerProviderDelegate"},"Protocols/KanvasStickerLoader.html#/s:12KanvasCamera0A13StickerLoaderP04loadC02at9imageView10completionAA0A10Cancelable_p10Foundation3URLV_So07UIImageH0CSgySo0M0CSg_s5Error_pSgtctF":{"name":"loadSticker(at:imageView:completion:)","abstract":"

Undocumented

","parent_name":"KanvasStickerLoader"},"Protocols/KanvasCancelable.html#/s:12KanvasCamera0A10CancelableP6cancelyyF":{"name":"cancel()","abstract":"

Cancels the running operation.

","parent_name":"KanvasCancelable"},"Protocols/KanvasQuickBlogSelectorCoordinating.html#/s:12KanvasCamera0A29QuickBlogSelectorCoordinatingP7present14presentingView9fromPointySo6UIViewC_So7CGPointVtF":{"name":"present(presentingView:fromPoint:)","abstract":"

Undocumented

","parent_name":"KanvasQuickBlogSelectorCoordinating"},"Protocols/KanvasQuickBlogSelectorCoordinating.html#/s:12KanvasCamera0A29QuickBlogSelectorCoordinatingP7dismissyyF":{"name":"dismiss()","abstract":"

Undocumented

","parent_name":"KanvasQuickBlogSelectorCoordinating"},"Protocols/KanvasQuickBlogSelectorCoordinating.html#/s:12KanvasCamera0A29QuickBlogSelectorCoordinatingP19touchDidMoveToPointyySo7CGPointVF":{"name":"touchDidMoveToPoint(_:)","abstract":"

Undocumented

","parent_name":"KanvasQuickBlogSelectorCoordinating"},"Protocols/KanvasQuickBlogSelectorCoordinating.html#/s:12KanvasCamera0A29QuickBlogSelectorCoordinatingP10avatarView5frameSo6UIViewCSgSo6CGRectV_tF":{"name":"avatarView(frame:)","abstract":"

Undocumented

","parent_name":"KanvasQuickBlogSelectorCoordinating"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP23didFinishExportingVideo3url4info6action12mediaChangedy10Foundation3URLVSg_AA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingVideo(url:info:action:mediaChanged:)","abstract":"

callback when finished exporting video clips.

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP23didFinishExportingImage5image4info6action12mediaChangedySo7UIImageCSg_AA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingImage(image:info:action:mediaChanged:)","abstract":"

callback when finished exporting image

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP24didFinishExportingFrames3url4size4info6action12mediaChangedy10Foundation3URLVSg_So6CGSizeVSgAA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingFrames(url:size:info:action:mediaChanged:)","abstract":"

callback when finished exporting frames

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP20dismissButtonPressedyyF":{"name":"dismissButtonPressed()","abstract":"

callback when dismissing controller without exporting

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP30didDismissColorSelectorTooltipyyF":{"name":"didDismissColorSelectorTooltip()","abstract":"

Called after the color selector tooltip is dismissed

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP36editorShouldShowColorSelectorTooltipSbyF":{"name":"editorShouldShowColorSelectorTooltip()","abstract":"

Called to ask if color selector tooltip should be shown

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP29didEndStrokeSelectorAnimationyyF":{"name":"didEndStrokeSelectorAnimation()","abstract":"

Called after the stroke animation has ended

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP39editorShouldShowStrokeSelectorAnimationSbyF":{"name":"editorShouldShowStrokeSelectorAnimation()","abstract":"

Called to ask if stroke selector animation should be shown

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP16tagButtonPressedyyF":{"name":"tagButtonPressed()","abstract":"

Called when the tag button is pressed

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP18getQuickPostButton15enableLongPressSo6UIViewCSb_tF":{"name":"getQuickPostButton(enableLongPress:)","abstract":"

Obtains the quick post button.

","parent_name":"EditorControllerDelegate"},"Protocols/EditorControllerDelegate.html#/s:12KanvasCamera24EditorControllerDelegateP15getBlogSwitcherSo6UIViewCyF":{"name":"getBlogSwitcher()","abstract":"

Obtains the blog switcher.

","parent_name":"EditorControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP14didCreateMedia_5media12exportAction5erroryAA0bC0C_AA0abG0OSgAA0a6ExportJ0Os5Error_pSgtF":{"name":"didCreateMedia(_:media:exportAction:error:)","abstract":"

A function that is called when an image is exported.

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP20dismissButtonPressedyyAA0bC0CF":{"name":"dismissButtonPressed(_:)","abstract":"

A function that is called when the main camera dismiss button is pressed

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP16tagButtonPressedyyF":{"name":"tagButtonPressed()","abstract":"

Called when the tag button is pressed in the editor

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP15editorDismissedyyF":{"name":"editorDismissed()","abstract":"

Called when the editor is dismissed

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP24didDismissWelcomeTooltipyyF":{"name":"didDismissWelcomeTooltip()","abstract":"

Called after the welcome tooltip is dismissed

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP30cameraShouldShowWelcomeTooltipSbyF":{"name":"cameraShouldShowWelcomeTooltip()","abstract":"

Called to ask if welcome tooltip should be shown

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP30didDismissColorSelectorTooltipyyF":{"name":"didDismissColorSelectorTooltip()","abstract":"

Called after the color selector tooltip is dismissed

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP36editorShouldShowColorSelectorTooltipSbyF":{"name":"editorShouldShowColorSelectorTooltip()","abstract":"

Called to ask if color selector tooltip should be shown

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP29didEndStrokeSelectorAnimationyyF":{"name":"didEndStrokeSelectorAnimation()","abstract":"

Called after the stroke animation has ended

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP39editorShouldShowStrokeSelectorAnimationSbyF":{"name":"editorShouldShowStrokeSelectorAnimation()","abstract":"

Called to ask if stroke selector animation should be shown

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP23didBeginDragInteractionyyF":{"name":"didBeginDragInteraction()","abstract":"

Called when a drag interaction starts

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP21didEndDragInteractionyyF":{"name":"didEndDragInteraction()","abstract":"

Called when a drag interaction ends

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP15openAppSettings10completionyySbcSg_tF":{"name":"openAppSettings(completion:)","abstract":"

Called when the permissions settings is shown but the app can’t change permissions (because they user manually disabled them).

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP18getQuickPostButton15enableLongPressSo6UIViewCSb_tF":{"name":"getQuickPostButton(enableLongPress:)","abstract":"

Obtains the quick post button for the editor.

","parent_name":"CameraControllerDelegate"},"Protocols/CameraControllerDelegate.html#/s:12KanvasCamera0B18ControllerDelegateP15getBlogSwitcherSo6UIViewCyF":{"name":"getBlogSwitcher()","abstract":"

Obtains the blog switcher for the editor.

","parent_name":"CameraControllerDelegate"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logCameraOpenWithMode:":{"name":"logCameraOpen(mode:)","abstract":"

Logs an event when the camera is opened

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logDismiss":{"name":"logDismiss()","abstract":"

Logs an event when the camera is dismissed without exporting media

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logCapturedMediaWithType:cameraPosition:length:ghostFrameEnabled:filterType:":{"name":"logCapturedMedia(type:cameraPosition:length:ghostFrameEnabled:filterType:)","abstract":"

Logs an event when media is captured

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logFlipCamera":{"name":"logFlipCamera()","abstract":"

Logs an event when the flip camera button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logDeleteSegment":{"name":"logDeleteSegment()","abstract":"

Logs an event when a segment is deleted

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logFlashToggled":{"name":"logFlashToggled()","abstract":"

Logs an event when the flash button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logImagePreviewToggledWithEnabled:":{"name":"logImagePreviewToggled(enabled:)","abstract":"

Logs an event when the image preview button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logUndoTapped":{"name":"logUndoTapped()","abstract":"

Logs an event when the undo button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logNextTapped":{"name":"logNextTapped()","abstract":"

Logs an event when the preview button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logPreviewDismissed":{"name":"logPreviewDismissed()","abstract":"

Logs an event if the preview screen is closed without exporting media

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logMovedClip":{"name":"logMovedClip()","abstract":"

Logs an event when a media clip is moved

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logPinchedZoom":{"name":"logPinchedZoom()","abstract":"

Logs an event when the user pinches to zoom

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logSwipedZoom":{"name":"logSwipedZoom()","abstract":"

Logs an event when the user swipes up while recording to zoom

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logConfirmedMediaWithMode:clipsCount:length:":{"name":"logConfirmedMedia(mode:clipsCount:length:)","abstract":"

Logs an event when the confirm button is tapped

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logOpenFiltersSelector":{"name":"logOpenFiltersSelector()","abstract":"

Logs an event when the filters selector is opened

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logFilterSelectedWithFilterType:":{"name":"logFilterSelected(filterType:)","abstract":"

Logs an event when a filter is selected

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logMediaPickerOpen":{"name":"logMediaPickerOpen()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logMediaPickerDismiss":{"name":"logMediaPickerDismiss()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logMediaPickerPickedMediaOfType:":{"name":"logMediaPickerPickedMedia(ofType:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorOpen":{"name":"logEditorOpen()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorBack":{"name":"logEditorBack()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorFiltersOpen":{"name":"logEditorFiltersOpen()","abstract":"

Logs an event when the filters button is tapped in the editor

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorFilterSelectedWithFilterType:":{"name":"logEditorFilterSelected(filterType:)","abstract":"

Logs an event when a filter is selected in the editor

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingOpen":{"name":"logEditorDrawingOpen()","abstract":"

Logs an event when the drawing button is tapped in the editor

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingChangeStrokeSizeWithStrokeSize:":{"name":"logEditorDrawingChangeStrokeSize(strokeSize:)","abstract":"

Logs an event when the stroke size is changed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingChangeBrushWithBrushType:":{"name":"logEditorDrawingChangeBrush(brushType:)","abstract":"

Logs an event when the brush is changed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingChangeColorWithSelectionTool:":{"name":"logEditorDrawingChangeColor(selectionTool:)","abstract":"

Logs an event when someone selects a color

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawStrokeWithBrushType:strokeSize:drawType:":{"name":"logEditorDrawStroke(brushType:strokeSize:drawType:)","abstract":"

Logs an event when someone draws

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingUndo":{"name":"logEditorDrawingUndo()","abstract":"

Logs an event when someone undoes a drawing or erasing action

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingEraserWithBrushType:strokeSize:drawType:":{"name":"logEditorDrawingEraser(brushType:strokeSize:drawType:)","abstract":"

Logs an event when someone uses the eraser

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorDrawingConfirm":{"name":"logEditorDrawingConfirm()","abstract":"

Logs an event when someone confirms drawing

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextAdd":{"name":"logEditorTextAdd()","abstract":"

Logs an event when tapping the text tool to add a new text overlay

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextEdit":{"name":"logEditorTextEdit()","abstract":"

Logs an event when tapping on an existing text overlay to edit it

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextConfirmWithIsNew:font:alignment:highlighted:":{"name":"logEditorTextConfirm(isNew:font:alignment:highlighted:)","abstract":"

Logs an event when a text overlay is confirmed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextMove":{"name":"logEditorTextMove()","abstract":"

Logs an event when a text overlay is moved

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextRemove":{"name":"logEditorTextRemove()","abstract":"

Logs an event when a text overlay is removed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextChangeWithFont:":{"name":"logEditorTextChange(font:)","abstract":"

Logs an event when the font is changed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextChangeWithAlignment:":{"name":"logEditorTextChange(alignment:)","abstract":"

Logs an event when the text alignment is changed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextChangeWithHighlighted:":{"name":"logEditorTextChange(highlighted:)","abstract":"

Logs an event when the text highlight is changed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTextChangeWithColor:":{"name":"logEditorTextChange(color:)","abstract":"

Logs an event when the text color changes

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorCreatedMediaWithClipsCount:length:":{"name":"logEditorCreatedMedia(clipsCount:length:)","abstract":"

Logs an event when media is created from the editor

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logOpenFromDashboardWithOpenAction:":{"name":"logOpenFromDashboard(openAction:)","abstract":"

Logs an event when Kanvas is opened from the Dashboard

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logDismissFromDashboardWithDismissAction:":{"name":"logDismissFromDashboard(dismissAction:)","abstract":"

Logs an event when Kanvas is dismissed from the Dashboard

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logPostFromDashboard":{"name":"logPostFromDashboard()","abstract":"

Logs when someone posts from Kanvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logChangeBlogForPostFromDashboard":{"name":"logChangeBlogForPostFromDashboard()","abstract":"

Logs when someone changes the blog to post to

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logSaveFromDashboard":{"name":"logSaveFromDashboard()","abstract":"

Logs when someone only saves media from Kanvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logOpenComposeFromDashboard":{"name":"logOpenComposeFromDashboard()","abstract":"

Logs when someone opens compose from Kanvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorTagTapped":{"name":"logEditorTagTapped()","abstract":"

Logs when someone taps the tag button in the Editor

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logIconPresentedOnDashboard":{"name":"logIconPresentedOnDashboard()","abstract":"

Logs when the Create icon is presented in the Dashboard header

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorMediaDrawerOpen":{"name":"logEditorMediaDrawerOpen()","abstract":"

Logs when the Media Drawer is opened

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorMediaDrawerClosed":{"name":"logEditorMediaDrawerClosed()","abstract":"

Logs when the Media Drawer is closed

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorMediaDrawerSelectStickers":{"name":"logEditorMediaDrawerSelectStickers()","abstract":"

Logs when the stickers tab is selected in the Media Drawer

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorStickerPackSelectWithStickerPackId:":{"name":"logEditorStickerPackSelect(stickerPackId:)","abstract":"

Logs when a sticker pack is selected in the Media Drawer

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorStickerAddWithStickerId:":{"name":"logEditorStickerAdd(stickerId:)","abstract":"

Logs when a sticker is added in the canvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorStickerRemoveWithStickerId:":{"name":"logEditorStickerRemove(stickerId:)","abstract":"

Logs when a sticker is removed from the canvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorStickerMoveWithStickerId:":{"name":"logEditorStickerMove(stickerId:)","abstract":"

Logs when a sticker is moved through the canvas

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFButtonToggle:":{"name":"logEditorGIFButtonToggle(_:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFOpen":{"name":"logEditorGIFOpen()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFOpenTrim":{"name":"logEditorGIFOpenTrim()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFOpenSpeed":{"name":"logEditorGIFOpenSpeed()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFRevert":{"name":"logEditorGIFRevert()","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFConfirmWithDuration:playbackMode:speed:":{"name":"logEditorGIFConfirm(duration:playbackMode:speed:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFChangeWithPlaybackMode:":{"name":"logEditorGIFChange(playbackMode:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFChangeWithSpeed:":{"name":"logEditorGIFChange(speed:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logEditorGIFChangeWithTrimStart:trimEnd:":{"name":"logEditorGIFChange(trimStart:trimEnd:)","abstract":"

Undocumented

","parent_name":"KanvasCameraAnalyticsProvider"},"Protocols/KanvasCameraAnalyticsProvider.html#/c:@M@KanvasCamera@objc(pl)KanvasCameraAnalyticsProvider(im)logAdvancedOptionsOpenWithPage:":{"name":"logAdvancedOptionsOpen(page:)","abstract":"

Logs when the “next” button that opens APO is pressed in the Editor

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

A protocol for injecting analytics into the KanvasCamera module

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

Protocol for dismissing CameraController"},"Protocols/EditorControllerDelegate.html":{"name":"EditorControllerDelegate","abstract":"

Protocol for camera editor controller methods

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Identifies an element.

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

Undocumented

"},"Extensions/MediaInfo.html#/s:12KanvasCamera15MediaInfoSimpleV9fromImageACSg10Foundation3URLV_tcfc":{"name":"init(fromImage:)","abstract":"

Reads media info from an image URL

","parent_name":"MediaInfo"},"Extensions/MediaInfo.html#/s:12KanvasCamera15MediaInfoSimpleV13fromImageDataACSg10Foundation0H0V_tcfc":{"name":"init(fromImageData:)","abstract":"

Reads media info from image data

","parent_name":"MediaInfo"},"Extensions/MediaInfo.html#/s:12KanvasCamera15MediaInfoSimpleV5write7toImagey10Foundation3URLV_tF":{"name":"write(toImage:)","abstract":"

Writes media info to an image URL

","parent_name":"MediaInfo"},"Extensions/MediaInfo.html#/s:12KanvasCamera15MediaInfoSimpleV12fromVideoURLACSg10Foundation0H0V_tcfc":{"name":"init(fromVideoURL:)","abstract":"

Reads media info from a video url

","parent_name":"MediaInfo"},"Extensions/MediaInfo.html#/s:12KanvasCamera15MediaInfoSimpleV21createAVMetadataItemsSaySo0G4ItemCGyF":{"name":"createAVMetadataItems()","abstract":"

Undocumented

","parent_name":"MediaInfo"},"Extensions/CGFloat.html#/s:12CoreGraphics7CGFloatV12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"CGFloat"},"Extensions/CGFloat.html#/s:12CoreGraphics7CGFloatV12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"CGFloat"},"Extensions/CGFloat.html#/s:12CoreGraphics7CGFloatV12KanvasCameraE1is5Int32Vvp":{"name":"i","abstract":"

Undocumented

","parent_name":"CGFloat"},"Extensions/Double.html#/s:Sd12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"Double"},"Extensions/Double.html#/s:Sd12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"Double"},"Extensions/Float.html#/s:Sf12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"Float"},"Extensions/Float.html#/s:Sf12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"Float"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1bs4Int8Vvp":{"name":"b","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE2ubs5UInt8Vvp":{"name":"ub","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1ss5Int16Vvp":{"name":"s","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE2uss6UInt16Vvp":{"name":"us","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1is5Int32Vvp":{"name":"i","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE2uis6UInt32Vvp":{"name":"ui","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE1lSivp":{"name":"l","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE2ulSuvp":{"name":"ul","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt64.html#/s:s6UInt64V12KanvasCameraE2lls5Int64Vvp":{"name":"ll","abstract":"

Undocumented

","parent_name":"UInt64"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1bs4Int8Vvp":{"name":"b","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE2ubs5UInt8Vvp":{"name":"ub","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1ss5Int16Vvp":{"name":"s","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE2uss6UInt16Vvp":{"name":"us","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1is5Int32Vvp":{"name":"i","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE1lSivp":{"name":"l","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE2ulSuvp":{"name":"ul","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE2lls5Int64Vvp":{"name":"ll","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt32.html#/s:s6UInt32V12KanvasCameraE3ulls6UInt64Vvp":{"name":"ull","abstract":"

Undocumented

","parent_name":"UInt32"},"Extensions/UInt.html#/s:Su12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1bs4Int8Vvp":{"name":"b","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE2ubs5UInt8Vvp":{"name":"ub","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1ss5Int16Vvp":{"name":"s","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE2uss6UInt16Vvp":{"name":"us","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1is5Int32Vvp":{"name":"i","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE2uis6UInt32Vvp":{"name":"ui","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE1lSivp":{"name":"l","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE2lls5Int64Vvp":{"name":"ll","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/UInt.html#/s:Su12KanvasCameraE3ulls6UInt64Vvp":{"name":"ull","abstract":"

Undocumented

","parent_name":"UInt"},"Extensions/Int.html#/s:Si12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE1bs4Int8Vvp":{"name":"b","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE2ubs5UInt8Vvp":{"name":"ub","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE1ss5Int16Vvp":{"name":"s","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE2uss6UInt16Vvp":{"name":"us","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE1is5Int32Vvp":{"name":"i","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE2uis6UInt32Vvp":{"name":"ui","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE2ulSuvp":{"name":"ul","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE2lls5Int64Vvp":{"name":"ll","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int.html#/s:Si12KanvasCameraE3ulls6UInt64Vvp":{"name":"ull","abstract":"

Undocumented

","parent_name":"Int"},"Extensions/Int32.html#/s:s27ExpressibleByBooleanLiteralP07booleanD0x0cD4TypeQz_tcfc":{"name":"init(booleanLiteral:)","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1g12CoreGraphics7CGFloatVvp":{"name":"g","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1dSdvp":{"name":"d","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1fSfvp":{"name":"f","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1bs4Int8Vvp":{"name":"b","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE2ubs5UInt8Vvp":{"name":"ub","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1ss5Int16Vvp":{"name":"s","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE2uss6UInt16Vvp":{"name":"us","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE2uis6UInt32Vvp":{"name":"ui","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE1lSivp":{"name":"l","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE2ulSuvp":{"name":"ul","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE2lls5Int64Vvp":{"name":"ll","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/Int32.html#/s:s5Int32V12KanvasCameraE3ulls6UInt64Vvp":{"name":"ull","abstract":"

Undocumented

","parent_name":"Int32"},"Extensions/UInt8.html#/s:s5UInt8V12KanvasCameraE9boolValueSbvp":{"name":"boolValue","abstract":"

Undocumented

","parent_name":"UInt8"},"Extensions/UInt8.html#/s:s27ExpressibleByBooleanLiteralP07booleanD0x0cD4TypeQz_tcfc":{"name":"init(booleanLiteral:)","parent_name":"UInt8"},"Extensions/UIImage.html#/s:So7UIImageC12KanvasCameraE16flipLeftMirroredABSgyF":{"name":"flipLeftMirrored()","abstract":"

Rotates an image 90° clockwise and flips it horizontally

","parent_name":"UIImage"},"Extensions/UIImage.html#/s:So7UIImageC12KanvasCameraE11pixelBufferABSgSo11CVBufferRefa_tcfc":{"name":"init(pixelBuffer:)","abstract":"

Create a new UIImage from a pixel buffer

","parent_name":"UIImage"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE3hex5alphaABSS_12CoreGraphics7CGFloatVtcfc":{"name":"init(hex:alpha:)","abstract":"

Create UIColor from the given hex value

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE3hex5alphaABSi_12CoreGraphics7CGFloatVtcfc":{"name":"init(hex:alpha:)","abstract":"

Create UIColor from the given hex Integer

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE3hex5alphaABs6UInt32V_12CoreGraphics7CGFloatVtcfc":{"name":"init(hex:alpha:)","abstract":"

Create UIColor from the given 32-bit unsigned integer.

","parent_name":"UIColor"},"Extensions/UIColor.html#/c:@CM@KanvasCamera@@objc(cs)UIColor(cm)colorWithHex:":{"name":"color(hex:)","abstract":"

Create UIColor from the given hex Integer

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE13matchingColorAByF":{"name":"matchingColor()","abstract":"

Best matching color between black and white, based on the brightness of the current color.

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE22calculateRGBComponents12CoreGraphics7CGFloatV3red_AG5greenAG4blueAG5alphatyF":{"name":"calculateRGBComponents()","abstract":"

Calculates the RGB color components of a color as a CGFloat value, even if it is the grayscale space. Values for red, green, and blue can be of any range due to API changes. Values between 0.0 - 1.0 are in the sRGB gamut range.

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE29calculateRGBComponentIntegersSi3red_Si5greenSi4blueSi5alphatyF":{"name":"calculateRGBComponentIntegers()","abstract":"

Calculates the RGB color components of a color as an Integer value, even if it is the grayscale space. Values between 0.0 - 255.0 are in the sRGB gamut range.

","parent_name":"UIColor"},"Extensions/UIColor.html#/s:So7UIColorC12KanvasCameraE12brighterThanySbSdF":{"name":"brighterThan(_:)","abstract":"

Whether or not the color brightness is higher than a provided brightness value.

","parent_name":"UIColor"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE8register4cellyxm_tSo0aB4CellCRbzlF":{"name":"register(cell:)","abstract":"

Registers a cell to be used by a UICollectionView.

","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE8register6headeryxm_tSo0a8ReusableB0CRbzlF":{"name":"register(header:)","abstract":"

Registers a header to be used by a UICollectionView.

","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE8register6footeryxm_tSo0a8ReusableB0CRbzlF":{"name":"register(footer:)","abstract":"

Registers a footer to be used by a UICollectionView.

","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE7dequeue4cell3forxSgxm_10Foundation9IndexPathVtSo0aB4CellCRbzlF":{"name":"dequeue(cell:for:)","abstract":"

Returns a reusable cell of the type specified to be used and adds it","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE7dequeue6header3forxSgxm_10Foundation9IndexPathVtSo0a8ReusableB0CRbzlF":{"name":"dequeue(header:for:)","abstract":"

Returns a reusable header of the type specified to be used and adds it","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE7dequeue6footer3forxSgxm_10Foundation9IndexPathVtSo0a8ReusableB0CRbzlF":{"name":"dequeue(footer:for:)","abstract":"

Returns a reusable footer of the type specified to be used and adds it","parent_name":"UICollectionView"},"Extensions/UICollectionView.html#/s:So16UICollectionViewC12KanvasCameraE7dequeue4view6ofKind3forxSgxm_SS10Foundation9IndexPathVtSo0a8ReusableB0CRbzlF":{"name":"dequeue(view:ofKind:for:)","abstract":"

Undocumented

","parent_name":"UICollectionView"},"Extensions/AVAsset.html#/s:So7AVAssetC12KanvasCameraE15videoScreenSizeSo6CGSizeVSgvp":{"name":"videoScreenSize","abstract":"

Undocumented

","parent_name":"AVAsset"},"Extensions/AVAsset.html":{"name":"AVAsset"},"Extensions.html#/c:objc(cs)UITableViewCell":{"name":"UITableViewCell"},"Extensions.html#/c:objc(cs)UICollectionReusableView":{"name":"UICollectionReusableView"},"Extensions.html#/c:objc(cs)UITableViewHeaderFooterView":{"name":"UITableViewHeaderFooterView"},"Extensions/UICollectionView.html":{"name":"UICollectionView"},"Extensions/UIColor.html":{"name":"UIColor"},"Extensions/UIImage.html":{"name":"UIImage","abstract":"

Extension for image flipping

"},"Extensions.html#/AVCaptureDevice":{"name":"AVCaptureDevice"},"Extensions/UInt8.html":{"name":"UInt8"},"Extensions/Int32.html":{"name":"Int32"},"Extensions/Int.html":{"name":"Int"},"Extensions/UInt.html":{"name":"UInt"},"Extensions/UInt32.html":{"name":"UInt32"},"Extensions/UInt64.html":{"name":"UInt64"},"Extensions/Float.html":{"name":"Float"},"Extensions/Double.html":{"name":"Double"},"Extensions/CGFloat.html":{"name":"CGFloat"},"Extensions/MediaInfo.html":{"name":"MediaInfo","abstract":"

Undocumented

"},"Enums/CameraMode/Quantity.html#/s:12KanvasCamera0B4ModeO8QuantityO6singleyA2EmF":{"name":"single","abstract":"

The mode allows just one photo, video or gif.

","parent_name":"Quantity"},"Enums/CameraMode/Quantity.html#/s:12KanvasCamera0B4ModeO8QuantityO8multipleyA2EmF":{"name":"multiple","abstract":"

The mode creates a sequence of photos and/or videos

","parent_name":"Quantity"},"Enums/CameraMode/Group.html#/s:12KanvasCamera0B4ModeO5GroupO5videoyA2EmF":{"name":"video","abstract":"

The mode creates a video from a sequence

","parent_name":"Group"},"Enums/CameraMode/Group.html#/s:12KanvasCamera0B4ModeO5GroupO5photoyA2EmF":{"name":"photo","abstract":"

The mode creates a photo.

","parent_name":"Group"},"Enums/CameraMode/Group.html#/s:12KanvasCamera0B4ModeO5GroupO3gifyA2EmF":{"name":"gif","abstract":"

The mode creates a gif animation

","parent_name":"Group"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModeStopMotion":{"name":"stopMotion","abstract":"

Capturing stop motions, a sequence of images and/or videos.

","parent_name":"CameraMode"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModePhoto":{"name":"photo","abstract":"

Capturing photos

","parent_name":"CameraMode"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModeLoop":{"name":"loop","abstract":"

Capturing gifs, a sequence of photos.

","parent_name":"CameraMode"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModeNormal":{"name":"normal","abstract":"

Capturing single photo or single video.

","parent_name":"CameraMode"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModeStitch":{"name":"stitch","abstract":"

Capturing stop motions, a sequence of images and/or videos.

","parent_name":"CameraMode"},"Enums/CameraMode.html#/c:@M@KanvasCamera@E@CameraMode@CameraModeGif":{"name":"gif","abstract":"

Capturing gifs, a sequence of photos.

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

The type of media a CameraMode will produce.

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

How many assets a CameraMode will produce.

","parent_name":"CameraMode"},"Enums/CameraMode.html#/s:12KanvasCamera0B4ModeO5groupAC5GroupOvp":{"name":"group","abstract":"

Undocumented

","parent_name":"CameraMode"},"Enums/CameraMode.html#/s:12KanvasCamera0B4ModeO8quantityAC8QuantityOvp":{"name":"quantity","abstract":"

Undocumented

","parent_name":"CameraMode"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypePassthrough":{"name":"passthrough","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeWavePool":{"name":"wavePool","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypePlasma":{"name":"plasma","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeEmInterference":{"name":"emInterference","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeRgb":{"name":"rgb","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeLego":{"name":"lego","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeChroma":{"name":"chroma","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeRave":{"name":"rave","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeMirrorTwo":{"name":"mirrorTwo","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeMirrorFour":{"name":"mirrorFour","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeLightLeaks":{"name":"lightLeaks","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeFilm":{"name":"film","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeGrayscale":{"name":"grayscale","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeManga":{"name":"manga","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeToon":{"name":"toon","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/c:@M@KanvasCamera@E@FilterType@FilterTypeOff":{"name":"off","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/FilterType.html#/s:12KanvasCamera10FilterTypeO3keySSSgyF":{"name":"key()","abstract":"

Logging key for a filter type","parent_name":"FilterType"},"Enums/FilterType.html#/s:12KanvasCamera10FilterTypeO13filterAppliedSbvp":{"name":"filterApplied","abstract":"

Undocumented

","parent_name":"FilterType"},"Enums/ImagePreviewMode.html#/s:12KanvasCamera16ImagePreviewModeO2onyA2CmF":{"name":"on","abstract":"

Undocumented

","parent_name":"ImagePreviewMode"},"Enums/ImagePreviewMode.html#/s:12KanvasCamera16ImagePreviewModeO3offyA2CmF":{"name":"off","abstract":"

Undocumented

","parent_name":"ImagePreviewMode"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO14previewConfirmyA2CmF":{"name":"previewConfirm","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO7confirmyA2CmF":{"name":"confirm","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO4postyA2CmF":{"name":"post","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO4saveyA2CmF":{"name":"save","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO11postOptionsyA2CmF":{"name":"postOptions","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasExportAction.html#/s:12KanvasCamera0A12ExportActionO18confirmPostOptionsyA2CmF":{"name":"confirmPostOptions","abstract":"

Undocumented

","parent_name":"KanvasExportAction"},"Enums/KanvasCameraMedia.html#/s:12KanvasCamera0aB5MediaO5imageyAC10Foundation3URLV_AA0C10InfoSimpleVSo6CGSizeVtcACmF":{"name":"image(_:_:_:)","abstract":"

Undocumented

","parent_name":"KanvasCameraMedia"},"Enums/KanvasCameraMedia.html#/s:12KanvasCamera0aB5MediaO5videoyAC10Foundation3URLV_AA0C10InfoSimpleVSo6CGSizeVtcACmF":{"name":"video(_:_:_:)","abstract":"

Undocumented

","parent_name":"KanvasCameraMedia"},"Enums/KanvasCameraMedia.html#/s:12KanvasCamera0aB5MediaO6framesyAC10Foundation3URLV_AA0C10InfoSimpleVSo6CGSizeVtcACmF":{"name":"frames(_:_:_:)","abstract":"

Undocumented

","parent_name":"KanvasCameraMedia"},"Enums/KanvasCameraMedia.html#/s:12KanvasCamera0aB5MediaO4infoAA0C10InfoSimpleVvp":{"name":"info","abstract":"

Undocumented

","parent_name":"KanvasCameraMedia"},"Enums/KanvasGIFPlaybackMode.html#/c:@M@KanvasCamera@E@KanvasGIFPlaybackMode@KanvasGIFPlaybackModeLoop":{"name":"loop","abstract":"

Undocumented

","parent_name":"KanvasGIFPlaybackMode"},"Enums/KanvasGIFPlaybackMode.html#/c:@M@KanvasCamera@E@KanvasGIFPlaybackMode@KanvasGIFPlaybackModeRebound":{"name":"rebound","abstract":"

Undocumented

","parent_name":"KanvasGIFPlaybackMode"},"Enums/KanvasGIFPlaybackMode.html#/c:@M@KanvasCamera@E@KanvasGIFPlaybackMode@KanvasGIFPlaybackModeReverse":{"name":"reverse","abstract":"

Undocumented

","parent_name":"KanvasGIFPlaybackMode"},"Enums/KanvasGIFPlaybackMode.html#/s:12KanvasCamera0A15GIFPlaybackModeO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasGIFPlaybackMode"},"Enums/KanvasMediaType.html#/c:@M@KanvasCamera@E@KanvasMediaType@KanvasMediaTypeImage":{"name":"image","abstract":"

Undocumented

","parent_name":"KanvasMediaType"},"Enums/KanvasMediaType.html#/c:@M@KanvasCamera@E@KanvasMediaType@KanvasMediaTypeVideo":{"name":"video","abstract":"

Undocumented

","parent_name":"KanvasMediaType"},"Enums/KanvasMediaType.html#/c:@M@KanvasCamera@E@KanvasMediaType@KanvasMediaTypeFrames":{"name":"frames","abstract":"

Undocumented

","parent_name":"KanvasMediaType"},"Enums/KanvasMediaType.html#/c:@M@KanvasCamera@E@KanvasMediaType@KanvasMediaTypeLivePhoto":{"name":"livePhoto","abstract":"

Undocumented

","parent_name":"KanvasMediaType"},"Enums/KanvasMediaType.html#/s:12KanvasCamera0A9MediaTypeO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasMediaType"},"Enums/KanvasDashboardDismissAction.html#/c:@M@KanvasCamera@E@KanvasDashboardDismissAction@KanvasDashboardDismissActionTap":{"name":"tap","abstract":"

Undocumented

","parent_name":"KanvasDashboardDismissAction"},"Enums/KanvasDashboardDismissAction.html#/c:@M@KanvasCamera@E@KanvasDashboardDismissAction@KanvasDashboardDismissActionSwipe":{"name":"swipe","abstract":"

Undocumented

","parent_name":"KanvasDashboardDismissAction"},"Enums/KanvasDashboardDismissAction.html#/s:12KanvasCamera0A22DashboardDismissActionO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasDashboardDismissAction"},"Enums/KanvasDashboardOpenAction.html#/c:@M@KanvasCamera@E@KanvasDashboardOpenAction@KanvasDashboardOpenActionTap":{"name":"tap","abstract":"

Undocumented

","parent_name":"KanvasDashboardOpenAction"},"Enums/KanvasDashboardOpenAction.html#/c:@M@KanvasCamera@E@KanvasDashboardOpenAction@KanvasDashboardOpenActionSwipe":{"name":"swipe","abstract":"

Undocumented

","parent_name":"KanvasDashboardOpenAction"},"Enums/KanvasDashboardOpenAction.html#/s:12KanvasCamera0A19DashboardOpenActionO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasDashboardOpenAction"},"Enums/KanvasTextAlignment.html#/c:@M@KanvasCamera@E@KanvasTextAlignment@KanvasTextAlignmentLeft":{"name":"left","abstract":"

Undocumented

","parent_name":"KanvasTextAlignment"},"Enums/KanvasTextAlignment.html#/c:@M@KanvasCamera@E@KanvasTextAlignment@KanvasTextAlignmentCenter":{"name":"center","abstract":"

Undocumented

","parent_name":"KanvasTextAlignment"},"Enums/KanvasTextAlignment.html#/c:@M@KanvasCamera@E@KanvasTextAlignment@KanvasTextAlignmentRight":{"name":"right","abstract":"

Undocumented

","parent_name":"KanvasTextAlignment"},"Enums/KanvasTextAlignment.html#/s:12KanvasCamera0A13TextAlignmentO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasTextAlignment"},"Enums/KanvasTextAlignment.html#/s:12KanvasCamera0A13TextAlignmentO4from9alignmentACSgSo06NSTextD0VSg_tFZ":{"name":"from(alignment:)","abstract":"

Undocumented

","parent_name":"KanvasTextAlignment"},"Enums/KanvasTextFont.html#/c:@M@KanvasCamera@E@KanvasTextFont@KanvasTextFontRegular":{"name":"regular","abstract":"

Undocumented

","parent_name":"KanvasTextFont"},"Enums/KanvasTextFont.html#/c:@M@KanvasCamera@E@KanvasTextFont@KanvasTextFontScript":{"name":"script","abstract":"

Undocumented

","parent_name":"KanvasTextFont"},"Enums/KanvasTextFont.html#/s:12KanvasCamera0A8TextFontO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasTextFont"},"Enums/KanvasTextFont.html#/s:12KanvasCamera0A8TextFontO4from4fontACSgSo6UIFontCSg_tFZ":{"name":"from(font:)","abstract":"

Undocumented

","parent_name":"KanvasTextFont"},"Enums/KanvasDrawingAction.html#/c:@M@KanvasCamera@E@KanvasDrawingAction@KanvasDrawingActionTap":{"name":"tap","abstract":"

Undocumented

","parent_name":"KanvasDrawingAction"},"Enums/KanvasDrawingAction.html#/c:@M@KanvasCamera@E@KanvasDrawingAction@KanvasDrawingActionFill":{"name":"fill","abstract":"

Undocumented

","parent_name":"KanvasDrawingAction"},"Enums/KanvasDrawingAction.html#/c:@M@KanvasCamera@E@KanvasDrawingAction@KanvasDrawingActionStroke":{"name":"stroke","abstract":"

Undocumented

","parent_name":"KanvasDrawingAction"},"Enums/KanvasDrawingAction.html#/s:12KanvasCamera0A13DrawingActionO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasDrawingAction"},"Enums/KanvasColorSelectionTool.html#/c:@M@KanvasCamera@E@KanvasColorSelectionTool@KanvasColorSelectionToolSwatch":{"name":"swatch","abstract":"

Undocumented

","parent_name":"KanvasColorSelectionTool"},"Enums/KanvasColorSelectionTool.html#/c:@M@KanvasCamera@E@KanvasColorSelectionTool@KanvasColorSelectionToolGradient":{"name":"gradient","abstract":"

Undocumented

","parent_name":"KanvasColorSelectionTool"},"Enums/KanvasColorSelectionTool.html#/c:@M@KanvasCamera@E@KanvasColorSelectionTool@KanvasColorSelectionToolEyedropper":{"name":"eyedropper","abstract":"

Undocumented

","parent_name":"KanvasColorSelectionTool"},"Enums/KanvasColorSelectionTool.html#/s:12KanvasCamera0A18ColorSelectionToolO6stringSSyF":{"name":"string()","abstract":"

Undocumented

","parent_name":"KanvasColorSelectionTool"},"Enums/KanvasBrushType.html#/c:@M@KanvasCamera@E@KanvasBrushType@KanvasBrushTypePencil":{"name":"pencil","abstract":"

Undocumented

","parent_name":"KanvasBrushType"},"Enums/KanvasBrushType.html#/c:@M@KanvasCamera@E@KanvasBrushType@KanvasBrushTypeMarker":{"name":"marker","abstract":"

Undocumented

","parent_name":"KanvasBrushType"},"Enums/KanvasBrushType.html#/c:@M@KanvasCamera@E@KanvasBrushType@KanvasBrushTypeSharpie":{"name":"sharpie","abstract":"

Undocumented

","parent_name":"KanvasBrushType"},"Enums/KanvasBrushType.html#/s:12KanvasCamera0A9BrushTypeO6stringSSyF":{"name":"string()","abstract":"

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

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

Media wrapper for media generated from the CameraController

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

Undocumented

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

Undocumented

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

Filter types

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

A set of camera modes which allow various types of captured media and exported formats.

"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV16dismissTransformSo08CGAffineI0Vvp":{"name":"dismissTransform","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV20showInitialTransformSo08CGAffineJ0Vvp":{"name":"showInitialTransform","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV18showFinalTransformSo08CGAffineJ0Vvp":{"name":"showFinalTransform","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV13springDamping12CoreGraphics7CGFloatVvp":{"name":"springDamping","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV14springVelocity12CoreGraphics7CGFloatVvp":{"name":"springVelocity","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV16showInitialAlpha12CoreGraphics7CGFloatVvp":{"name":"showInitialAlpha","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV17dismissFinalAlpha12CoreGraphics7CGFloatVvp":{"name":"dismissFinalAlpha","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV12showDurationSdvp":{"name":"showDuration","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV15dismissDurationSdvp":{"name":"dismissDuration","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV12dismissOnTapSbvp":{"name":"dismissOnTap","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Animating.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9AnimatingV16gradientVelocitySdvp":{"name":"gradientVelocity","abstract":"

Undocumented

","parent_name":"Animating"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV12bubbleHInset12CoreGraphics7CGFloatVvp":{"name":"bubbleHInset","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV12bubbleVInset12CoreGraphics7CGFloatVvp":{"name":"bubbleVInset","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV10textHInset12CoreGraphics7CGFloatVvp":{"name":"textHInset","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV10textVInset12CoreGraphics7CGFloatVvp":{"name":"textVInset","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV8maxWidth12CoreGraphics7CGFloatVvp":{"name":"maxWidth","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Positioning.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11PositioningV6margin12CoreGraphics7CGFloatVvp":{"name":"margin","abstract":"

Undocumented

","parent_name":"Positioning"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV12cornerRadius12CoreGraphics7CGFloatVvp":{"name":"cornerRadius","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV11arrowHeight12CoreGraphics7CGFloatVvp":{"name":"arrowHeight","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV10arrowWidth12CoreGraphics7CGFloatVvp":{"name":"arrowWidth","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV15foregroundColorSo7UIColorCvp":{"name":"foregroundColor","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV15backgroundColorSo7UIColorCvp":{"name":"backgroundColor","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV25backgroundColorCollectionSaySo7UIColorCGvp":{"name":"backgroundColorCollection","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV13arrowPositionAC05ArrowI0Ovp":{"name":"arrowPosition","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV13textAlignmentSo06NSTextI0Vvp":{"name":"textAlignment","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV11borderWidth12CoreGraphics7CGFloatVvp":{"name":"borderWidth","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV11borderColorSo7UIColorCvp":{"name":"borderColor","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7DrawingV4fontSo6UIFontCvp":{"name":"font","abstract":"

Undocumented

","parent_name":"Drawing"},"Classes/EasyTipView/Preferences/Drawing.html":{"name":"Drawing","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences/Positioning.html":{"name":"Positioning","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences/Animating.html":{"name":"Animating","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV7drawingAE7DrawingVvp":{"name":"drawing","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV11positioningAE11PositioningVvp":{"name":"positioning","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9animatingAE9AnimatingVvp":{"name":"animating","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences.html#/s:12KanvasCamera11EasyTipViewC11PreferencesV9hasBorderSbvp":{"name":"hasBorder","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/Preferences.html#/s:12KanvasCamera11EasyTipViewC11PreferencesVAEycfc":{"name":"init()","abstract":"

Undocumented

","parent_name":"Preferences"},"Classes/EasyTipView/ArrowPosition.html#/s:12KanvasCamera11EasyTipViewC13ArrowPositionO3anyyA2EmF":{"name":"any","abstract":"

Undocumented

","parent_name":"ArrowPosition"},"Classes/EasyTipView/ArrowPosition.html#/s:12KanvasCamera11EasyTipViewC13ArrowPositionO3topyA2EmF":{"name":"top","abstract":"

Undocumented

","parent_name":"ArrowPosition"},"Classes/EasyTipView/ArrowPosition.html#/s:12KanvasCamera11EasyTipViewC13ArrowPositionO6bottomyA2EmF":{"name":"bottom","abstract":"

Undocumented

","parent_name":"ArrowPosition"},"Classes/EasyTipView/ArrowPosition.html#/s:12KanvasCamera11EasyTipViewC13ArrowPositionO5rightyA2EmF":{"name":"right","abstract":"

Undocumented

","parent_name":"ArrowPosition"},"Classes/EasyTipView/ArrowPosition.html#/s:12KanvasCamera11EasyTipViewC13ArrowPositionO4leftyA2EmF":{"name":"left","abstract":"

Undocumented

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

Undocumented

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

Undocumented

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

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/c:@M@KanvasCamera@objc(cs)EasyTipView(py)description":{"name":"description","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/s:12KanvasCamera11EasyTipViewC11preferencesAC11PreferencesVvp":{"name":"preferences","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/s:12KanvasCamera11EasyTipViewC4textSSvp":{"name":"text","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/s:12KanvasCamera11EasyTipViewC17globalPreferencesAC0G0VvpZ":{"name":"globalPreferences","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/s:12KanvasCamera11EasyTipViewC4text11preferences8delegateACSS_AC11PreferencesVAA0cdE8Delegate_pSgtcfc":{"name":"init(text:preferences:delegate:)","abstract":"

Undocumented

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

NSCoding not supported. Use init(text, preferences, delegate) instead!

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/c:@M@KanvasCamera@objc(cs)EasyTipView(im)drawRect:":{"name":"draw(_:)","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/EasyTipView.html#/c:@CM@KanvasCamera@objc(cs)EasyTipView(im)gestureRecognizerShouldBegin:":{"name":"gestureRecognizerShouldBegin(_:)","abstract":"

Undocumented

","parent_name":"EasyTipView"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC12enabledModesShyAA0B4ModeOGvp":{"name":"enabledModes","abstract":"

Enables/disables modes.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC11defaultModeAA0bE0OSgvp":{"name":"defaultMode","abstract":"

Camera mode which starts active.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC07defaultB14PositionOptionSo015AVCaptureDeviceE0Vvp":{"name":"defaultCameraPositionOption","abstract":"

Camera position option which starts active.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC20preferredFlashOptionSo09AVCaptureE4ModeVvp":{"name":"preferredFlashOption","abstract":"

Flash option which starts active.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC18imagePreviewOptionAA05ImageE4ModeOvp":{"name":"imagePreviewOption","abstract":"

Fullscreen image preview which starts disabled.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC23cameraSupportsLandscapeSbvp":{"name":"cameraSupportsLandscape","abstract":"

Whether the camera should be shown in landscape.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC28exportStopMotionPhotoAsVideoSbvp":{"name":"exportStopMotionPhotoAsVideo","abstract":"

Whether the camera controller allows exporting live photos as video.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC8featuresAA0B8FeaturesVvp":{"name":"features","abstract":"

The features to enable/disable for the controller.

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC17topButtonsSwappedSbvp":{"name":"topButtonsSwapped","abstract":"

Buttons Swapped on the Camera View","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC17crossIconInEditorSbvp":{"name":"crossIconInEditor","abstract":"

Cross Icon In Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC19showCogIconInEditorSbvp":{"name":"showCogIconInEditor","abstract":"

Cog icon in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC21showTagButtonInEditorSbvp":{"name":"showTagButtonInEditor","abstract":"

Tag button in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC25showTagCollectionInEditorSbvp":{"name":"showTagCollectionInEditor","abstract":"

Tag collection in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC27showQuickPostButtonInEditorSbvp":{"name":"showQuickPostButtonInEditor","abstract":"

Quick post button in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC24enableQuickPostLongPressSbvp":{"name":"enableQuickPostLongPress","abstract":"

Long press for post button in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC24showBlogSwitcherInEditorSbvp":{"name":"showBlogSwitcherInEditor","abstract":"

Blog Switcher in Editor","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC17editToolsRedesignSbvp":{"name":"editToolsRedesign","abstract":"

Edit Tools Redesign","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC20shutterButtonTooltipSbvp":{"name":"shutterButtonTooltip","abstract":"

Shutter Button Tooltip","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC22horizontalModeSelectorSbvp":{"name":"horizontalModeSelector","abstract":"

Horizontal Mode Selector","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC25editorShouldStartGIFMaker4modeSbAA0B4ModeOSg_tF":{"name":"editorShouldStartGIFMaker(mode:)","abstract":"

Auto-open GIF Maker in Editor

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC28setEditorShouldStartGIFMakeryySbF":{"name":"setEditorShouldStartGIFMaker(_:)","abstract":"

Undocumented

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/s:12KanvasCamera0B8SettingsC03gifB19ShouldStartGIFMakerSbvp":{"name":"gifCameraShouldStartGIFMaker","abstract":"

Auto-open GIF Maker after GIF Camera

","parent_name":"CameraSettings"},"Classes/CameraSettings.html#/c:@M@KanvasCamera@objc(cs)CameraSettings(im)init":{"name":"init()","abstract":"

Undocumented

","parent_name":"CameraSettings"},"Classes/EditorViewController.html#/s:12KanvasCamera20EditorViewControllerC8delegateAA0cE8Delegate_pSgvp":{"name":"delegate","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/s:12KanvasCamera20EditorViewControllerC06createC03for8settings15stickerProvider09analyticsJ0ACSo7UIImageC_AA0B8SettingsCAA07StickerJ0_pAA0ab9AnalyticsJ0_ptFZ":{"name":"createEditor(for:settings:stickerProvider:analyticsProvider:)","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/s:12KanvasCamera20EditorViewControllerC06createC03for8settings15stickerProviderAC10Foundation3URLV_AA0B8SettingsCAA07StickerJ0_ptFZ":{"name":"createEditor(for:settings:stickerProvider:)","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/s:12KanvasCamera20EditorViewControllerC06createC06forGIF4info8settings15stickerProvider09analyticsL010completiony10Foundation3URLV_AA15MediaInfoSimpleVAA0B8SettingsCAA07StickerL0_pAA0ab9AnalyticsL0_pyACctFZ":{"name":"createEditor(forGIF:info:settings:stickerProvider:analyticsProvider:completion:)","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/c:@M@KanvasCamera@objc(cs)EditorViewController(im)viewWillAppear:":{"name":"viewWillAppear(_:)","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/c:@M@KanvasCamera@objc(cs)EditorViewController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/c:@M@KanvasCamera@objc(cs)EditorViewController(py)preferredStatusBarStyle":{"name":"preferredStatusBarStyle","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/c:@M@KanvasCamera@objc(cs)EditorViewController(py)supportedInterfaceOrientations":{"name":"supportedInterfaceOrientations","abstract":"

Undocumented

","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/s:12KanvasCamera21MediaPlayerControllerP23onQuickPostOptionsShown7visible8hintText4viewySb_SSSgSo6UIViewCtF":{"name":"onQuickPostOptionsShown(visible:hintText:view:)","parent_name":"EditorViewController"},"Classes/EditorViewController.html#/s:12KanvasCamera21MediaPlayerControllerP26onQuickPostOptionsSelected8selected8hintText4viewySb_SSSgSo6UIViewCtF":{"name":"onQuickPostOptionsSelected(selected:hintText:view:)","parent_name":"EditorViewController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC8delegateAA0bC8Delegate_pSgvp":{"name":"delegate","abstract":"

The delegate for camera callback methods.

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC8settings15stickerProvider09analyticsF028quickBlogSelectorCoordinator13tagCollectionAcA0B8SettingsC_AA07StickerF0_pSgAA0ab9AnalyticsF0_pSgAA0a5QuickiJ12Coordinating_pSgSo6UIViewCSgtcfc":{"name":"init(settings:stickerProvider:analyticsProvider:quickBlogSelectorCoordinator:tagCollection:)","abstract":"

Constructs a CameraController that will record from the device camera","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(py)preferredStatusBarStyle":{"name":"preferredStatusBarStyle","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(py)preferredStatusBarUpdateAnimation":{"name":"preferredStatusBarUpdateAnimation","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(py)supportedInterfaceOrientations":{"name":"supportedInterfaceOrientations","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC13requestAccessyyySbcSgF":{"name":"requestAccess(_:)","abstract":"

Requests permissions for video

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC7logOpenyyF":{"name":"logOpen()","abstract":"

logs opening the camera

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC10logDismissyyF":{"name":"logDismiss()","abstract":"

logs closing the camera

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(im)loadView":{"name":"loadView()","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(im)viewDidLoad":{"name":"viewDidLoad()","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/c:@M@KanvasCamera@objc(cs)CameraController(im)viewDidAppear:":{"name":"viewDidAppear(_:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP23didFinishExportingVideo3url4info6action12mediaChangedy10Foundation3URLVSg_AA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingVideo(url:info:action:mediaChanged:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP23didFinishExportingImage5image4info6action12mediaChangedySo7UIImageCSg_AA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingImage(image:info:action:mediaChanged:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP24didFinishExportingFrames3url4size4info6action12mediaChangedy10Foundation3URLVSg_So6CGSizeVSgAA15MediaInfoSimpleVSgAA0A12ExportActionOSbtF":{"name":"didFinishExportingFrames(url:size:info:action:mediaChanged:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B25PreviewControllerDelegateP20dismissButtonPressedyyF":{"name":"dismissButtonPressed()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP16tagButtonPressedyyF":{"name":"tagButtonPressed()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP36editorShouldShowColorSelectorTooltipSbyF":{"name":"editorShouldShowColorSelectorTooltip()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP30didDismissColorSelectorTooltipyyF":{"name":"didDismissColorSelectorTooltip()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP39editorShouldShowStrokeSelectorAnimationSbyF":{"name":"editorShouldShowStrokeSelectorAnimation()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP29didEndStrokeSelectorAnimationyyF":{"name":"didEndStrokeSelectorAnimation()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP18getQuickPostButton15enableLongPressSo6UIViewCSb_tF":{"name":"getQuickPostButton(enableLongPress:)","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera24EditorControllerDelegateP15getBlogSwitcherSo6UIViewCyF":{"name":"getBlogSwitcher()","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC7cleanupyyF":{"name":"cleanup()","abstract":"

This function should be called to stop the camera session and properly breakdown the inputs

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC10resetStateyyF":{"name":"resetState()","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC22onPostOptionsDismissedyyF":{"name":"onPostOptionsDismissed()","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC26onQuickPostButtonSubmittedyyF":{"name":"onQuickPostButtonSubmitted()","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC23onQuickPostOptionsShown7visible8hintText4viewySb_SSSgSo6UIViewCtF":{"name":"onQuickPostOptionsShown(visible:hintText:view:)","abstract":"

Undocumented

","parent_name":"CameraController"},"Classes/CameraController.html#/s:12KanvasCamera0B10ControllerC26onQuickPostOptionsSelected8selected8hintText4viewySb_SSSgSo6UIViewCtF":{"name":"onQuickPostOptionsSelected(selected:hintText:view:)","abstract":"

Undocumented

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

A controller that contains and layouts all camera handling views and controllers (mode selector, input, etc).

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

A view controller to edit the segments

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

A class that defines the settings for the Kanvas Camera. See each property for further description.

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

Undocumented

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

The following classes are available globally.

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

The following enumerations are available globally.

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

The following extensions are available globally.

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

The following protocols are available globally.

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

The following structures are available globally.

"},"Typealiases.html":{"name":"Type Aliases","abstract":"

The following type aliases are available globally.

"}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json new file mode 100644 index 000000000..e543cc543 --- /dev/null +++ b/docs/undocumented.json @@ -0,0 +1,2014 @@ +{ + "warnings": [ + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 10, + "symbol": "KanvasBrushType", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 11, + "symbol": "KanvasBrushType.marker", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 11, + "symbol": "KanvasBrushType.pencil", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 11, + "symbol": "KanvasBrushType.sharpie", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 13, + "symbol": "KanvasBrushType.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 25, + "symbol": "KanvasColorSelectionTool", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 26, + "symbol": "KanvasColorSelectionTool.eyedropper", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 26, + "symbol": "KanvasColorSelectionTool.gradient", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 26, + "symbol": "KanvasColorSelectionTool.swatch", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 28, + "symbol": "KanvasColorSelectionTool.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 40, + "symbol": "KanvasDrawingAction", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 41, + "symbol": "KanvasDrawingAction.fill", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 41, + "symbol": "KanvasDrawingAction.stroke", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 41, + "symbol": "KanvasDrawingAction.tap", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 43, + "symbol": "KanvasDrawingAction.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 55, + "symbol": "KanvasTextFont", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 56, + "symbol": "KanvasTextFont.regular", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 56, + "symbol": "KanvasTextFont.script", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 58, + "symbol": "KanvasTextFont.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 67, + "symbol": "KanvasTextFont.from(font:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 82, + "symbol": "KanvasTextAlignment", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 83, + "symbol": "KanvasTextAlignment.center", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 83, + "symbol": "KanvasTextAlignment.left", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 83, + "symbol": "KanvasTextAlignment.right", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 85, + "symbol": "KanvasTextAlignment.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 96, + "symbol": "KanvasTextAlignment.from(alignment:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 111, + "symbol": "KanvasDashboardOpenAction", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 112, + "symbol": "KanvasDashboardOpenAction.swipe", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 112, + "symbol": "KanvasDashboardOpenAction.tap", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 114, + "symbol": "KanvasDashboardOpenAction.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 124, + "symbol": "KanvasDashboardDismissAction", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 125, + "symbol": "KanvasDashboardDismissAction.swipe", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 125, + "symbol": "KanvasDashboardDismissAction.tap", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 127, + "symbol": "KanvasDashboardDismissAction.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 137, + "symbol": "KanvasMediaType", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 138, + "symbol": "KanvasMediaType.frames", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 138, + "symbol": "KanvasMediaType.image", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 138, + "symbol": "KanvasMediaType.livePhoto", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 138, + "symbol": "KanvasMediaType.video", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 140, + "symbol": "KanvasMediaType.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 154, + "symbol": "KanvasGIFPlaybackMode", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 155, + "symbol": "KanvasGIFPlaybackMode.loop", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 155, + "symbol": "KanvasGIFPlaybackMode.rebound", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 155, + "symbol": "KanvasGIFPlaybackMode.reverse", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 168, + "symbol": "KanvasGIFPlaybackMode.string()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 246, + "symbol": "KanvasCameraAnalyticsProvider.logMediaPickerOpen()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 248, + "symbol": "KanvasCameraAnalyticsProvider.logMediaPickerDismiss()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 250, + "symbol": "KanvasCameraAnalyticsProvider.logMediaPickerPickedMedia(ofType:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 252, + "symbol": "KanvasCameraAnalyticsProvider.logEditorOpen()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 254, + "symbol": "KanvasCameraAnalyticsProvider.logEditorBack()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 384, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFButtonToggle(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 385, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFOpen()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 386, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFOpenTrim()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 387, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFOpenSpeed()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 388, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFRevert()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 389, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFConfirm(duration:playbackMode:speed:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 390, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFChange(playbackMode:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 391, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFChange(speed:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Analytics/KanvasCameraAnalyticsProvider.swift", + "line": 392, + "symbol": "KanvasCameraAnalyticsProvider.logEditorGIFChange(trimStart:trimEnd:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 13, + "symbol": "KanvasCameraMedia.image(_:_:_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 14, + "symbol": "KanvasCameraMedia.video(_:_:_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 15, + "symbol": "KanvasCameraMedia.frames(_:_:_:)", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 17, + "symbol": "KanvasCameraMedia.info", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 26, + "symbol": "KanvasExportAction", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 27, + "symbol": "KanvasExportAction.previewConfirm", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 28, + "symbol": "KanvasExportAction.confirm", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 29, + "symbol": "KanvasExportAction.post", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 30, + "symbol": "KanvasExportAction.save", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 31, + "symbol": "KanvasExportAction.postOptions", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 32, + "symbol": "KanvasExportAction.confirmPostOptions", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 245, + "symbol": "CameraController.preferredStatusBarStyle", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 249, + "symbol": "CameraController.preferredStatusBarUpdateAnimation", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 253, + "symbol": "CameraController.supportedInterfaceOrientations", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 280, + "symbol": "CameraController.loadView()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 284, + "symbol": "CameraController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 304, + "symbol": "CameraController.viewDidAppear(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 1087, + "symbol": "CameraController.resetState()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 1096, + "symbol": "CameraController.onPostOptionsDismissed()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 1100, + "symbol": "CameraController.onQuickPostButtonSubmitted()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 1104, + "symbol": "CameraController.onQuickPostOptionsShown(visible:hintText:view:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Camera/CameraController.swift", + "line": 1108, + "symbol": "CameraController.onQuickPostOptionsSelected(selected:hintText:view:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraColors.swift", + "line": 60, + "symbol": "KanvasCameraColors", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraColors.swift", + "line": 62, + "symbol": "KanvasCameraColors.shared", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraColors.swift", + "line": 95, + "symbol": "KanvasCameraColors.init(drawingDefaultColor:colorPickerColors:selectedPickerColor:timeSegmentColors:backgroundColors:strokeColor:sliderActiveColor:sliderOuterCircleColor:trimBackgroundColor:trashColor:tooltipBackgroundColor:closeButtonColor:filterColors:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 9, + "symbol": "KanvasCameraFonts", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 28, + "symbol": "KanvasCameraFonts.init(permissions:drawer:editorFonts:optionSelectorCellFont:mediaClipsFont:modeButtonFont:speedLabelFont:timeIndicatorFont:colorSelectorTooltipFont:modeSelectorTooltipFont:postLabelFont:gifMakerRevertButtonFont:paddingAdjustment:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 56, + "symbol": "KanvasCameraFonts.shared", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 73, + "symbol": "KanvasCameraFonts.CameraPermissions", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 74, + "symbol": "KanvasCameraFonts.CameraPermissions.init(titleFont:descriptionFont:buttonFont:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 86, + "symbol": "KanvasCameraFonts.Drawer", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 87, + "symbol": "KanvasCameraFonts.Drawer.init(textSelectedFont:textUnselectedFont:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 112, + "symbol": "KanvasCameraFonts.Padding", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Constants/KanvasCameraFonts.swift", + "line": 118, + "symbol": "KanvasCameraFonts.Padding.init(topMargin:leftMargin:extraVerticalPadding:extraHorizontalPadding:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 190, + "symbol": "EditorViewController.delegate", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 202, + "symbol": "EditorViewController.createEditor(for:settings:stickerProvider:analyticsProvider:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 218, + "symbol": "EditorViewController.createEditor(for:settings:stickerProvider:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 231, + "symbol": "EditorViewController.createEditor(forGIF:info:settings:stickerProvider:analyticsProvider:completion:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 313, + "symbol": "EditorViewController.viewWillAppear(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 319, + "symbol": "EditorViewController.viewDidLoad()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 340, + "symbol": "EditorViewController.preferredStatusBarStyle", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/EditorViewController.swift", + "line": 344, + "symbol": "EditorViewController.supportedInterfaceOrientations", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/KanvasQuickBlogSelectorCoordinating.swift", + "line": 9, + "symbol": "KanvasQuickBlogSelectorCoordinating", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/KanvasQuickBlogSelectorCoordinating.swift", + "line": 11, + "symbol": "KanvasQuickBlogSelectorCoordinating.present(presentingView:fromPoint:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/KanvasQuickBlogSelectorCoordinating.swift", + "line": 13, + "symbol": "KanvasQuickBlogSelectorCoordinating.dismiss()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/KanvasQuickBlogSelectorCoordinating.swift", + "line": 15, + "symbol": "KanvasQuickBlogSelectorCoordinating.touchDidMoveToPoint(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/KanvasQuickBlogSelectorCoordinating.swift", + "line": 17, + "symbol": "KanvasQuickBlogSelectorCoordinating.avatarView(frame:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerCollection/Sticker.swift", + "line": 18, + "symbol": "Sticker.init(id:imageUrl:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerLoader.swift", + "line": 9, + "symbol": "KanvasCancelable", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerLoader.swift", + "line": 14, + "symbol": "KanvasStickerLoader", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerLoader.swift", + "line": 16, + "symbol": "KanvasStickerLoader.loadSticker(at:imageView:completion:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerProvider/StickerProvider.swift", + "line": 7, + "symbol": "StickerProviderDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerProvider/StickerProvider.swift", + "line": 14, + "symbol": "StickerProvider", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerProvider/StickerProvider.swift", + "line": 24, + "symbol": "StickerProvider.loader()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Editor/Media/Stickers/StickerTypeCollection/StickerType.swift", + "line": 19, + "symbol": "StickerType.init(id:imageUrl:stickers:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Extensions/AVAsset+Utils.swift", + "line": 10, + "symbol": "AVAsset.videoScreenSize", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Extensions/UICollectionView+Cells.swift", + "line": 18, + "symbol": "Identifiable.identifier", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Extensions/UICollectionView+Cells.swift", + "line": 24, + "symbol": "Identifiable.identifier", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Extensions/UICollectionView+Cells.swift", + "line": 105, + "symbol": "UICollectionView.dequeue(view:ofKind:for:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Options/CameraOption.swift", + "line": 63, + "symbol": "ImagePreviewMode", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Options/CameraOption.swift", + "line": 64, + "symbol": "ImagePreviewMode.on", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Options/CameraOption.swift", + "line": 65, + "symbol": "ImagePreviewMode.off", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Recording/PhotoOutputHandler.swift", + "line": 53, + "symbol": "PhotoOutputHandler.photoOutput(_:didFinishProcessingPhoto:error:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 13, + "symbol": "FilterType.passthrough", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 14, + "symbol": "FilterType.wavePool", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 15, + "symbol": "FilterType.plasma", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 16, + "symbol": "FilterType.emInterference", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 17, + "symbol": "FilterType.rgb", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 18, + "symbol": "FilterType.lego", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 19, + "symbol": "FilterType.chroma", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 20, + "symbol": "FilterType.rave", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 21, + "symbol": "FilterType.mirrorTwo", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 22, + "symbol": "FilterType.mirrorFour", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 23, + "symbol": "FilterType.lightLeaks", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 24, + "symbol": "FilterType.film", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 25, + "symbol": "FilterType.grayscale", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 26, + "symbol": "FilterType.manga", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 27, + "symbol": "FilterType.toon", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 28, + "symbol": "FilterType.off", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/FilterType.swift", + "line": 70, + "symbol": "FilterType.filterApplied", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 11, + "symbol": "UInt8.boolValue", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 27, + "symbol": "Int.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 30, + "symbol": "Int.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 33, + "symbol": "Int.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 36, + "symbol": "Int.b", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 39, + "symbol": "Int.ub", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 42, + "symbol": "Int.s", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 45, + "symbol": "Int.us", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 48, + "symbol": "Int.i", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 51, + "symbol": "Int.ui", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 57, + "symbol": "Int.ul", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 60, + "symbol": "Int.ll", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 63, + "symbol": "Int.ull", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 70, + "symbol": "UInt.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 73, + "symbol": "UInt.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 76, + "symbol": "UInt.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 79, + "symbol": "UInt.b", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 82, + "symbol": "UInt.ub", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 85, + "symbol": "UInt.s", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 88, + "symbol": "UInt.us", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 91, + "symbol": "UInt.i", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 94, + "symbol": "UInt.ui", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 97, + "symbol": "UInt.l", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 103, + "symbol": "UInt.ll", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 106, + "symbol": "UInt.ull", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 113, + "symbol": "Int32.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 116, + "symbol": "Int32.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 119, + "symbol": "Int32.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 122, + "symbol": "Int32.b", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 125, + "symbol": "Int32.ub", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 128, + "symbol": "Int32.s", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 131, + "symbol": "Int32.us", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 137, + "symbol": "Int32.ui", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 140, + "symbol": "Int32.l", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 143, + "symbol": "Int32.ul", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 146, + "symbol": "Int32.ll", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 149, + "symbol": "Int32.ull", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 156, + "symbol": "UInt32.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 159, + "symbol": "UInt32.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 162, + "symbol": "UInt32.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 165, + "symbol": "UInt32.b", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 168, + "symbol": "UInt32.ub", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 171, + "symbol": "UInt32.s", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 174, + "symbol": "UInt32.us", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 177, + "symbol": "UInt32.i", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 183, + "symbol": "UInt32.l", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 186, + "symbol": "UInt32.ul", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 189, + "symbol": "UInt32.ll", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 192, + "symbol": "UInt32.ull", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 199, + "symbol": "UInt64.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 202, + "symbol": "UInt64.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 205, + "symbol": "UInt64.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 208, + "symbol": "UInt64.b", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 211, + "symbol": "UInt64.ub", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 214, + "symbol": "UInt64.s", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 217, + "symbol": "UInt64.us", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 220, + "symbol": "UInt64.i", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 223, + "symbol": "UInt64.ui", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 226, + "symbol": "UInt64.l", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 229, + "symbol": "UInt64.ul", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 232, + "symbol": "UInt64.ll", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 242, + "symbol": "Float.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 245, + "symbol": "Float.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 251, + "symbol": "Double.g", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 254, + "symbol": "Double.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 260, + "symbol": "CGFloat.d", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 263, + "symbol": "CGFloat.f", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/NumTypes+Conversion.swift", + "line": 266, + "symbol": "CGFloat.i", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/OpenGL/GLUtilities.swift", + "line": 11, + "symbol": "GLU", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/OpenGL/GLUtilities.swift", + "line": 75, + "symbol": "GLU.validateProgram(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/OpenGL/GLUtilities.swift", + "line": 100, + "symbol": "GLU.getUniformLocation(_:_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Rendering/OpenGL/GLUtilities.swift", + "line": 110, + "symbol": "GLU.createProgram(_:_:_:_:_:_:_:)", + "symbol_kind": "source.lang.swift.decl.function.method.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 44, + "symbol": "CameraMode.group", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 55, + "symbol": "CameraMode.quantity", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 131, + "symbol": "CameraFeatures.editorPostOptions", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 287, + "symbol": "CameraSettings.setEditorShouldStartGIFMaker(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Settings/CameraSettings.swift", + "line": 296, + "symbol": "CameraSettings.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/Device.swift", + "line": 9, + "symbol": "KanvasDevice", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/Device.swift", + "line": 28, + "symbol": "KanvasDevice.isRunningInSimulator", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/Device.swift", + "line": 50, + "symbol": "KanvasDevice.belongsToIPhoneXGroup", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 13, + "symbol": "EasyTipViewDelegate", + "symbol_kind": "source.lang.swift.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 14, + "symbol": "EasyTipViewDelegate.easyTipViewDidDismiss(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 162, + "symbol": "EasyTipView", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 164, + "symbol": "EasyTipView.gestureRecognizerShouldBegin(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 171, + "symbol": "EasyTipView", + "symbol_kind": "source.lang.swift.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 175, + "symbol": "EasyTipView.ArrowPosition", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 176, + "symbol": "EasyTipView.ArrowPosition.any", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 177, + "symbol": "EasyTipView.ArrowPosition.top", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 178, + "symbol": "EasyTipView.ArrowPosition.bottom", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 179, + "symbol": "EasyTipView.ArrowPosition.right", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 180, + "symbol": "EasyTipView.ArrowPosition.left", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 185, + "symbol": "EasyTipView.Preferences", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 187, + "symbol": "EasyTipView.Preferences.Drawing", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 188, + "symbol": "EasyTipView.Preferences.Drawing.cornerRadius", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 189, + "symbol": "EasyTipView.Preferences.Drawing.arrowHeight", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 190, + "symbol": "EasyTipView.Preferences.Drawing.arrowWidth", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 191, + "symbol": "EasyTipView.Preferences.Drawing.foregroundColor", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 192, + "symbol": "EasyTipView.Preferences.Drawing.backgroundColor", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 193, + "symbol": "EasyTipView.Preferences.Drawing.backgroundColorCollection", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 194, + "symbol": "EasyTipView.Preferences.Drawing.arrowPosition", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 195, + "symbol": "EasyTipView.Preferences.Drawing.textAlignment", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 196, + "symbol": "EasyTipView.Preferences.Drawing.borderWidth", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 197, + "symbol": "EasyTipView.Preferences.Drawing.borderColor", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 198, + "symbol": "EasyTipView.Preferences.Drawing.font", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 201, + "symbol": "EasyTipView.Preferences.Positioning", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 202, + "symbol": "EasyTipView.Preferences.Positioning.bubbleHInset", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 203, + "symbol": "EasyTipView.Preferences.Positioning.bubbleVInset", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 204, + "symbol": "EasyTipView.Preferences.Positioning.textHInset", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 205, + "symbol": "EasyTipView.Preferences.Positioning.textVInset", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 206, + "symbol": "EasyTipView.Preferences.Positioning.maxWidth", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 207, + "symbol": "EasyTipView.Preferences.Positioning.margin", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 210, + "symbol": "EasyTipView.Preferences.Animating", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 211, + "symbol": "EasyTipView.Preferences.Animating.dismissTransform", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 212, + "symbol": "EasyTipView.Preferences.Animating.showInitialTransform", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 213, + "symbol": "EasyTipView.Preferences.Animating.showFinalTransform", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 214, + "symbol": "EasyTipView.Preferences.Animating.springDamping", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 215, + "symbol": "EasyTipView.Preferences.Animating.springVelocity", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 216, + "symbol": "EasyTipView.Preferences.Animating.showInitialAlpha", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 217, + "symbol": "EasyTipView.Preferences.Animating.dismissFinalAlpha", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 218, + "symbol": "EasyTipView.Preferences.Animating.showDuration", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 219, + "symbol": "EasyTipView.Preferences.Animating.dismissDuration", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 220, + "symbol": "EasyTipView.Preferences.Animating.dismissOnTap", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 221, + "symbol": "EasyTipView.Preferences.Animating.gradientVelocity", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 224, + "symbol": "EasyTipView.Preferences.drawing", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 225, + "symbol": "EasyTipView.Preferences.positioning", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 226, + "symbol": "EasyTipView.Preferences.animating", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 227, + "symbol": "EasyTipView.Preferences.hasBorder", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 231, + "symbol": "EasyTipView.Preferences.init()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 236, + "symbol": "EasyTipView.backgroundColor", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 246, + "symbol": "EasyTipView.description", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 257, + "symbol": "EasyTipView.preferences", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 258, + "symbol": "EasyTipView.text", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 304, + "symbol": "EasyTipView.globalPreferences", + "symbol_kind": "source.lang.swift.decl.var.static", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 308, + "symbol": "EasyTipView.init(text:preferences:delegate:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/EasyTipView.swift", + "line": 646, + "symbol": "EasyTipView.draw(_:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 10, + "symbol": "MediaInfo", + "symbol_kind": "source.lang.swift.decl.typealias", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 12, + "symbol": "MediaInfoSimple", + "symbol_kind": "source.lang.swift.decl.struct", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 14, + "symbol": "MediaInfoSimple.Source", + "symbol_kind": "source.lang.swift.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 15, + "symbol": "MediaInfoSimple.Source.kanvas_camera", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 16, + "symbol": "MediaInfoSimple.Source.media_library", + "symbol_kind": "source.lang.swift.decl.enumelement", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 19, + "symbol": "MediaInfoSimple.source", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 21, + "symbol": "MediaInfoSimple.init(source:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 26, + "symbol": "MediaInfoSimple", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 32, + "symbol": "MediaInfoSimple.Source", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 68, + "symbol": "MediaInfoSimple.Source.stringValue()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 79, + "symbol": "MediaInfo", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 155, + "symbol": "MediaInfo", + "symbol_kind": "source.lang.swift.decl.extension", + "warning": "undocumented" + }, + { + "file": "/Users/bjtitus/Source/Automattic/Kanvas-iOS/Classes/Utility/MediaInfo.swift", + "line": 178, + "symbol": "MediaInfo.createAVMetadataItems()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + } + ], + "source_directory": "/Users/bjtitus/Source/Automattic/Kanvas-iOS" +} \ No newline at end of file