├── .github
├── FUNDING.yml
└── workflows
│ └── main.yml
├── .gitignore
├── .idea
├── SideMenu.iml
├── encodings.xml
├── misc.xml
├── modules.xml
├── runConfigurations
│ └── SideMenu.xml
├── vcs.xml
└── xcode.xml
├── .ruby-version
├── .swiftlint.yml
├── .swiftpm
└── xcode
│ └── package.xcworkspace
│ └── contents.xcworkspacedata
├── .travis.yml
├── CHANGELOG.md
├── Example
├── AppDelegate.swift
├── Assets.xcassets
│ └── AppIcon.appiconset
│ │ ├── Contents.json
│ │ ├── Icon-20.png
│ │ ├── Icon-20@2x-1.png
│ │ ├── Icon-20@2x.png
│ │ ├── Icon-20@3x.png
│ │ ├── Icon-29.png
│ │ ├── Icon-29@2x-1.png
│ │ ├── Icon-29@2x.png
│ │ ├── Icon-29@3x.png
│ │ ├── Icon-40.png
│ │ ├── Icon-40@2x-2.png
│ │ ├── Icon-40@2x.png
│ │ ├── Icon-40@3x-1.png
│ │ ├── Icon-512@2x.png
│ │ ├── Icon-60@2x.png
│ │ ├── Icon-60@3x.png
│ │ ├── Icon-76.png
│ │ ├── Icon-76@2x.png
│ │ └── Icon-83.5@2x.png
├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
├── Info.plist
├── MenuViewController.swift
├── OtherExampleViewController.swift
├── PreferencesViewController.swift
├── UINavigationController+Extension.swift
└── WorkWithOtherViewController.swift
├── Gemfile
├── Gemfile.lock
├── Images
├── Above+None.gif
├── Below+Slide.gif
├── Logo.png
├── SideBySide+Fade.gif
├── SideBySide+HideOnMenu.gif
├── SideMneu.sketch
└── StoryboardSample.png
├── LICENSE
├── Package.resolved
├── Package.swift
├── README.md
├── SideMenu.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── xcshareddata
│ └── xcschemes
│ ├── SideMenu.xcscheme
│ ├── SideMenuExample.xcscheme
│ └── SideMenuExampleUITests.xcscheme
├── SideMenuExampleUITests
├── Info.plist
├── SideMenuExampleUITests.swift
├── SideMenuRightUITests.swift
└── UITestHelpers.swift
├── SideMenuSwift.podspec
├── Sources
├── PrivacyInfo.xcprivacy
└── SideMenu
│ ├── BasicTransitionAnimator.swift
│ ├── Delegate.swift
│ ├── Info.plist
│ ├── Preferences.swift
│ ├── Segue.swift
│ ├── SideMenu.h
│ ├── SideMenuController.swift
│ ├── StatusBar.swift
│ ├── TransitionContext.swift
│ ├── UIView+Container.swift
│ ├── UIViewController+Container.swift
│ └── UIViewController+SideMenu.swift
├── Tests
└── SideMenuTests
│ ├── Info.plist
│ └── SideMenuTests.swift
├── docs
├── css
│ ├── 523.e9a069b0.css
│ ├── 675.40c3bcb2.css
│ ├── documentation-topic.b186e79f.css
│ ├── index.ff036a9e.css
│ ├── topic.672a9049.css
│ └── tutorials-overview.6eb589ed.css
├── data
│ └── documentation
│ │ ├── sidemenu.json
│ │ └── sidemenu
│ │ ├── basictransitionanimator.json
│ │ ├── basictransitionanimator
│ │ ├── animatetransition(using:).json
│ │ ├── init(options:duration:).json
│ │ └── transitionduration(using:).json
│ │ ├── sidemenucontroller.json
│ │ ├── sidemenucontroller
│ │ ├── cache(viewcontroller:with:).json
│ │ ├── cache(viewcontrollergenerator:with:).json
│ │ ├── childforstatusbarhidden.json
│ │ ├── childforstatusbarstyle.json
│ │ ├── clearcache(with:).json
│ │ ├── contentsegueid.json
│ │ ├── contentviewcontroller.json
│ │ ├── currentcacheidentifier().json
│ │ ├── delegate.json
│ │ ├── gesturerecognizer(_:shouldreceive:).json
│ │ ├── gesturerecognizershouldbegin(_:).json
│ │ ├── hidemenu(animated:completion:).json
│ │ ├── init(contentviewcontroller:menuviewcontroller:).json
│ │ ├── initwithcoder:.json
│ │ ├── initwithnibname:bundle:.json
│ │ ├── ismenurevealed.json
│ │ ├── menusegueid.json
│ │ ├── menuviewcontroller.json
│ │ ├── preferences-swift.struct.json
│ │ ├── preferences-swift.struct
│ │ │ ├── animation-swift.property.json
│ │ │ ├── animation-swift.struct.json
│ │ │ ├── animation-swift.struct
│ │ │ │ ├── dampingratio.json
│ │ │ │ ├── hideduration.json
│ │ │ │ ├── initialspringvelocity.json
│ │ │ │ ├── options.json
│ │ │ │ ├── revealduration.json
│ │ │ │ ├── shadowalpha.json
│ │ │ │ ├── shadowcolor.json
│ │ │ │ ├── shouldaddblurwhenrevealing.json
│ │ │ │ └── shouldaddshadowwhenrevealing.json
│ │ │ ├── basic.json
│ │ │ ├── configuration.json
│ │ │ ├── configuration
│ │ │ │ ├── defaultcachekey.json
│ │ │ │ ├── direction.json
│ │ │ │ ├── enablepangesture.json
│ │ │ │ ├── enablerubbereffectwhenpanning.json
│ │ │ │ ├── forcerighttoleft.json
│ │ │ │ ├── hidemenuwhenenteringbackground.json
│ │ │ │ ├── keepsmenuopenafterrotation.json
│ │ │ │ ├── menuwidth.json
│ │ │ │ ├── pangesturesensitivity.json
│ │ │ │ ├── position.json
│ │ │ │ ├── shouldautorotate.json
│ │ │ │ ├── shouldrespectlanguagedirection.json
│ │ │ │ ├── shouldusecontentsupportedorientations.json
│ │ │ │ ├── statusbarbehavior.json
│ │ │ │ └── supportedorientations.json
│ │ │ ├── menudirection.json
│ │ │ ├── menudirection
│ │ │ │ ├── !=(_:_:).json
│ │ │ │ ├── equatable-implementations.json
│ │ │ │ ├── left.json
│ │ │ │ └── right.json
│ │ │ ├── menuposition.json
│ │ │ ├── menuposition
│ │ │ │ ├── !=(_:_:).json
│ │ │ │ ├── above.json
│ │ │ │ ├── equatable-implementations.json
│ │ │ │ ├── sidebyside.json
│ │ │ │ └── under.json
│ │ │ ├── statusbarbehavior.json
│ │ │ └── statusbarbehavior
│ │ │ │ ├── !=(_:_:).json
│ │ │ │ ├── equatable-implementations.json
│ │ │ │ ├── fade.json
│ │ │ │ ├── hideonmenu.json
│ │ │ │ ├── none.json
│ │ │ │ └── slide.json
│ │ ├── preferences-swift.type.property.json
│ │ ├── prepare(for:sender:).json
│ │ ├── revealmenu(animated:completion:).json
│ │ ├── setcontentviewcontroller(to:animated:completion:).json
│ │ ├── setcontentviewcontroller(with:animated:completion:).json
│ │ ├── shouldautorotate.json
│ │ ├── supportedinterfaceorientations.json
│ │ ├── uigesturerecognizerdelegate-implementations.json
│ │ ├── viewdidload().json
│ │ └── viewwilltransition(to:with:).json
│ │ ├── sidemenucontrollerdelegate.json
│ │ ├── sidemenucontrollerdelegate
│ │ ├── sidemenucontroller(_:animationcontrollerfrom:to:)-4esbs.json
│ │ ├── sidemenucontroller(_:animationcontrollerfrom:to:)-9p7d7.json
│ │ ├── sidemenucontroller(_:didshow:animated:)-54dgd.json
│ │ ├── sidemenucontroller(_:didshow:animated:)-67m06.json
│ │ ├── sidemenucontroller(_:willshow:animated:)-1hl81.json
│ │ ├── sidemenucontroller(_:willshow:animated:)-1juiy.json
│ │ ├── sidemenucontrollerdidhidemenu(_:)-2ufp3.json
│ │ ├── sidemenucontrollerdidhidemenu(_:)-5bj9p.json
│ │ ├── sidemenucontrollerdidrevealmenu(_:)-11kew.json
│ │ ├── sidemenucontrollerdidrevealmenu(_:)-6umvn.json
│ │ ├── sidemenucontrollergetmenuwidth(_:for:)-6nrbw.json
│ │ ├── sidemenucontrollergetmenuwidth(_:for:)-xmh9.json
│ │ ├── sidemenucontrollershouldrevealmenu(_:)-703eu.json
│ │ ├── sidemenucontrollershouldrevealmenu(_:)-9y55z.json
│ │ ├── sidemenucontrollerwillhidemenu(_:)-359mo.json
│ │ ├── sidemenucontrollerwillhidemenu(_:)-8i6tb.json
│ │ ├── sidemenucontrollerwillrevealmenu(_:)-4q697.json
│ │ └── sidemenucontrollerwillrevealmenu(_:)-79vnu.json
│ │ ├── sidemenusegue.json
│ │ ├── sidemenusegue
│ │ ├── contenttype-swift.enum.json
│ │ ├── contenttype-swift.enum
│ │ │ ├── !=(_:_:).json
│ │ │ ├── content.json
│ │ │ ├── equatable-implementations.json
│ │ │ ├── hash(into:).json
│ │ │ ├── hashvalue.json
│ │ │ ├── init(rawvalue:).json
│ │ │ ├── menu.json
│ │ │ └── rawrepresentable-implementations.json
│ │ ├── contenttype-swift.property.json
│ │ ├── initwithidentifier:source:destination:.json
│ │ └── perform().json
│ │ ├── sidemenuversionnumber.json
│ │ ├── sidemenuversionstring.json
│ │ ├── uikit.json
│ │ └── uikit
│ │ ├── uiviewcontroller.json
│ │ └── uiviewcontroller
│ │ └── sidemenucontroller.json
├── developer-og-twitter.jpg
├── developer-og.jpg
├── documentation
│ └── sidemenu
│ │ ├── basictransitionanimator
│ │ ├── animatetransition(using:)
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── init(options:duration:)
│ │ │ └── index.html
│ │ └── transitionduration(using:)
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── sidemenucontroller
│ │ ├── cache(viewcontroller:with:)
│ │ │ └── index.html
│ │ ├── cache(viewcontrollergenerator:with:)
│ │ │ └── index.html
│ │ ├── childforstatusbarhidden
│ │ │ └── index.html
│ │ ├── childforstatusbarstyle
│ │ │ └── index.html
│ │ ├── clearcache(with:)
│ │ │ └── index.html
│ │ ├── contentsegueid
│ │ │ └── index.html
│ │ ├── contentviewcontroller
│ │ │ └── index.html
│ │ ├── currentcacheidentifier()
│ │ │ └── index.html
│ │ ├── delegate
│ │ │ └── index.html
│ │ ├── gesturerecognizer(_:shouldreceive:)
│ │ │ └── index.html
│ │ ├── gesturerecognizershouldbegin(_:)
│ │ │ └── index.html
│ │ ├── hidemenu(animated:completion:)
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── init(contentviewcontroller:menuviewcontroller:)
│ │ │ └── index.html
│ │ ├── initwithcoder:
│ │ │ └── index.html
│ │ ├── initwithnibname:bundle:
│ │ │ └── index.html
│ │ ├── ismenurevealed
│ │ │ └── index.html
│ │ ├── menusegueid
│ │ │ └── index.html
│ │ ├── menuviewcontroller
│ │ │ └── index.html
│ │ ├── preferences-swift.struct
│ │ │ ├── animation-swift.property
│ │ │ │ └── index.html
│ │ │ ├── animation-swift.struct
│ │ │ │ ├── dampingratio
│ │ │ │ │ └── index.html
│ │ │ │ ├── hideduration
│ │ │ │ │ └── index.html
│ │ │ │ ├── index.html
│ │ │ │ ├── initialspringvelocity
│ │ │ │ │ └── index.html
│ │ │ │ ├── options
│ │ │ │ │ └── index.html
│ │ │ │ ├── revealduration
│ │ │ │ │ └── index.html
│ │ │ │ ├── shadowalpha
│ │ │ │ │ └── index.html
│ │ │ │ ├── shadowcolor
│ │ │ │ │ └── index.html
│ │ │ │ ├── shouldaddblurwhenrevealing
│ │ │ │ │ └── index.html
│ │ │ │ └── shouldaddshadowwhenrevealing
│ │ │ │ │ └── index.html
│ │ │ ├── basic
│ │ │ │ └── index.html
│ │ │ ├── configuration
│ │ │ │ ├── defaultcachekey
│ │ │ │ │ └── index.html
│ │ │ │ ├── direction
│ │ │ │ │ └── index.html
│ │ │ │ ├── enablepangesture
│ │ │ │ │ └── index.html
│ │ │ │ ├── enablerubbereffectwhenpanning
│ │ │ │ │ └── index.html
│ │ │ │ ├── forcerighttoleft
│ │ │ │ │ └── index.html
│ │ │ │ ├── hidemenuwhenenteringbackground
│ │ │ │ │ └── index.html
│ │ │ │ ├── index.html
│ │ │ │ ├── keepsmenuopenafterrotation
│ │ │ │ │ └── index.html
│ │ │ │ ├── menuwidth
│ │ │ │ │ └── index.html
│ │ │ │ ├── pangesturesensitivity
│ │ │ │ │ └── index.html
│ │ │ │ ├── position
│ │ │ │ │ └── index.html
│ │ │ │ ├── shouldautorotate
│ │ │ │ │ └── index.html
│ │ │ │ ├── shouldrespectlanguagedirection
│ │ │ │ │ └── index.html
│ │ │ │ ├── shouldusecontentsupportedorientations
│ │ │ │ │ └── index.html
│ │ │ │ ├── statusbarbehavior
│ │ │ │ │ └── index.html
│ │ │ │ └── supportedorientations
│ │ │ │ │ └── index.html
│ │ │ ├── index.html
│ │ │ ├── menudirection
│ │ │ │ ├── !=(_:_:)
│ │ │ │ │ └── index.html
│ │ │ │ ├── equatable-implementations
│ │ │ │ │ └── index.html
│ │ │ │ ├── index.html
│ │ │ │ ├── left
│ │ │ │ │ └── index.html
│ │ │ │ └── right
│ │ │ │ │ └── index.html
│ │ │ ├── menuposition
│ │ │ │ ├── !=(_:_:)
│ │ │ │ │ └── index.html
│ │ │ │ ├── above
│ │ │ │ │ └── index.html
│ │ │ │ ├── equatable-implementations
│ │ │ │ │ └── index.html
│ │ │ │ ├── index.html
│ │ │ │ ├── sidebyside
│ │ │ │ │ └── index.html
│ │ │ │ └── under
│ │ │ │ │ └── index.html
│ │ │ └── statusbarbehavior
│ │ │ │ ├── !=(_:_:)
│ │ │ │ └── index.html
│ │ │ │ ├── equatable-implementations
│ │ │ │ └── index.html
│ │ │ │ ├── fade
│ │ │ │ └── index.html
│ │ │ │ ├── hideonmenu
│ │ │ │ └── index.html
│ │ │ │ ├── index.html
│ │ │ │ ├── none
│ │ │ │ └── index.html
│ │ │ │ └── slide
│ │ │ │ └── index.html
│ │ ├── preferences-swift.type.property
│ │ │ └── index.html
│ │ ├── prepare(for:sender:)
│ │ │ └── index.html
│ │ ├── revealmenu(animated:completion:)
│ │ │ └── index.html
│ │ ├── setcontentviewcontroller(to:animated:completion:)
│ │ │ └── index.html
│ │ ├── setcontentviewcontroller(with:animated:completion:)
│ │ │ └── index.html
│ │ ├── shouldautorotate
│ │ │ └── index.html
│ │ ├── supportedinterfaceorientations
│ │ │ └── index.html
│ │ ├── uigesturerecognizerdelegate-implementations
│ │ │ └── index.html
│ │ ├── viewdidload()
│ │ │ └── index.html
│ │ └── viewwilltransition(to:with:)
│ │ │ └── index.html
│ │ ├── sidemenucontrollerdelegate
│ │ ├── index.html
│ │ ├── sidemenucontroller(_:animationcontrollerfrom:to:)-4esbs
│ │ │ └── index.html
│ │ ├── sidemenucontroller(_:animationcontrollerfrom:to:)-9p7d7
│ │ │ └── index.html
│ │ ├── sidemenucontroller(_:didshow:animated:)-54dgd
│ │ │ └── index.html
│ │ ├── sidemenucontroller(_:didshow:animated:)-67m06
│ │ │ └── index.html
│ │ ├── sidemenucontroller(_:willshow:animated:)-1hl81
│ │ │ └── index.html
│ │ ├── sidemenucontroller(_:willshow:animated:)-1juiy
│ │ │ └── index.html
│ │ ├── sidemenucontrollerdidhidemenu(_:)-2ufp3
│ │ │ └── index.html
│ │ ├── sidemenucontrollerdidhidemenu(_:)-5bj9p
│ │ │ └── index.html
│ │ ├── sidemenucontrollerdidrevealmenu(_:)-11kew
│ │ │ └── index.html
│ │ ├── sidemenucontrollerdidrevealmenu(_:)-6umvn
│ │ │ └── index.html
│ │ ├── sidemenucontrollergetmenuwidth(_:for:)-6nrbw
│ │ │ └── index.html
│ │ ├── sidemenucontrollergetmenuwidth(_:for:)-xmh9
│ │ │ └── index.html
│ │ ├── sidemenucontrollershouldrevealmenu(_:)-703eu
│ │ │ └── index.html
│ │ ├── sidemenucontrollershouldrevealmenu(_:)-9y55z
│ │ │ └── index.html
│ │ ├── sidemenucontrollerwillhidemenu(_:)-359mo
│ │ │ └── index.html
│ │ ├── sidemenucontrollerwillhidemenu(_:)-8i6tb
│ │ │ └── index.html
│ │ ├── sidemenucontrollerwillrevealmenu(_:)-4q697
│ │ │ └── index.html
│ │ └── sidemenucontrollerwillrevealmenu(_:)-79vnu
│ │ │ └── index.html
│ │ ├── sidemenusegue
│ │ ├── contenttype-swift.enum
│ │ │ ├── !=(_:_:)
│ │ │ │ └── index.html
│ │ │ ├── content
│ │ │ │ └── index.html
│ │ │ ├── equatable-implementations
│ │ │ │ └── index.html
│ │ │ ├── hash(into:)
│ │ │ │ └── index.html
│ │ │ ├── hashvalue
│ │ │ │ └── index.html
│ │ │ ├── index.html
│ │ │ ├── init(rawvalue:)
│ │ │ │ └── index.html
│ │ │ ├── menu
│ │ │ │ └── index.html
│ │ │ └── rawrepresentable-implementations
│ │ │ │ └── index.html
│ │ ├── contenttype-swift.property
│ │ │ └── index.html
│ │ ├── index.html
│ │ ├── initwithidentifier:source:destination:
│ │ │ └── index.html
│ │ └── perform()
│ │ │ └── index.html
│ │ ├── sidemenuversionnumber
│ │ └── index.html
│ │ ├── sidemenuversionstring
│ │ └── index.html
│ │ └── uikit
│ │ ├── index.html
│ │ └── uiviewcontroller
│ │ ├── index.html
│ │ └── sidemenucontroller
│ │ └── index.html
├── favicon.ico
├── favicon.svg
├── img
│ ├── added-icon.832a5d2c.svg
│ ├── deprecated-icon.7bf1740a.svg
│ └── modified-icon.efb2697d.svg
├── index.html
├── index
│ ├── availability.index
│ ├── data.mdb
│ ├── index.json
│ └── navigator.index
├── js
│ ├── 337.274a8ccc.js
│ ├── 37.3cabdf6d.js
│ ├── 523.3af1b2ef.js
│ ├── 903.b3710a74.js
│ ├── chunk-vendors.bdb7cbba.js
│ ├── documentation-topic.f9ef3692.js
│ ├── highlight-js-bash-js.702f0c5c.js
│ ├── highlight-js-c-js.063069d3.js
│ ├── highlight-js-cpp-js.458a9ae4.js
│ ├── highlight-js-css-js.bfc4251f.js
│ ├── highlight-js-custom-markdown.78c9f6ed.js
│ ├── highlight-js-custom-swift.738731d1.js
│ ├── highlight-js-diff-js.4db9a783.js
│ ├── highlight-js-http-js.f78e83c2.js
│ ├── highlight-js-java-js.4fe21e94.js
│ ├── highlight-js-javascript-js.dfc9d16d.js
│ ├── highlight-js-json-js.2a1856ba.js
│ ├── highlight-js-llvm-js.26121771.js
│ ├── highlight-js-markdown-js.a2f456af.js
│ ├── highlight-js-objectivec-js.74dea052.js
│ ├── highlight-js-perl-js.da6eda82.js
│ ├── highlight-js-php-js.c458ffa4.js
│ ├── highlight-js-python-js.60354774.js
│ ├── highlight-js-ruby-js.7272231f.js
│ ├── highlight-js-scss-js.adcd11a2.js
│ ├── highlight-js-shell-js.0ad5b20f.js
│ ├── highlight-js-swift-js.bdd5bff5.js
│ ├── highlight-js-xml-js.0d78f903.js
│ ├── index.2871ffbd.js
│ ├── topic.2687cdff.js
│ └── tutorials-overview.2eff1231.js
└── metadata.json
├── fastlane
├── Appfile
├── Fastfile
└── README.md
└── package.json
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: [kukushi]
4 |
--------------------------------------------------------------------------------
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | on: [push, pull_request]
2 | name: Test
3 | jobs:
4 | test:
5 | name: Test
6 | runs-on: macOS-14
7 | steps:
8 | - name: Checkout
9 | uses: actions/checkout@v4
10 | with:
11 | fetch-depth: 1
12 | - uses: ruby/setup-ruby@v1
13 | with:
14 | bundler-cache: true
15 | - name: Build and test
16 | run: |
17 | gem update --system
18 | gem install bundler
19 | bundle install
20 | bundle exec fastlane test
21 |
--------------------------------------------------------------------------------
/.idea/SideMenu.iml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/runConfigurations/SideMenu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/xcode.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.ruby-version:
--------------------------------------------------------------------------------
1 | 3.0.6
--------------------------------------------------------------------------------
/.swiftlint.yml:
--------------------------------------------------------------------------------
1 | disabled_rules:
2 | # TODO
3 | - function_body_length
4 | # TODO
5 | - cyclomatic_complexity
6 | # TODO
7 | - type_body_length
8 | - nesting
9 |
10 | opt_in_rules:
11 | - force_unwrapping
12 | - implicitly_unwrapped_optional
13 | - legacy_random
14 | - overridden_super_call
15 | - override_in_extension
16 | - prohibited_super_call
17 | - redundant_type_annotation
18 | - static_operator
19 | - toggle_bool
20 |
21 | included: # paths to ignore during linting. Takes precedence over `included`.
22 | - SideMenu
23 | - Example
24 |
25 | identifier_name:
26 | excluded: # excluded via string array
27 | - ID
28 | # Used by UIKit
29 | # `func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath)`
30 | - to
31 | file_length:
32 | warning: 999
33 | error: 1500
34 | line_length: 140
--------------------------------------------------------------------------------
/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: swift
2 |
3 | osx_image: xcode10.2
4 |
5 | cache: bundler
6 |
7 | before_install:
8 | - gem update --system
9 | - gem install bundler
10 |
11 | sudo: false
12 |
13 | script:
14 | - bundle exec fastlane test
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4 |
5 | ### [2.1.1](https://github.com/kukushi/SideMenu/compare/v2.0.8...v2.1.1) (2024-02-26)
6 |
7 |
8 | ### Features
9 |
10 | * add privacy ([9c7efc1](https://github.com/kukushi/SideMenu/commit/9c7efc1306c006f51fe270185a051caa6a5596e4))
11 | * disable library evolution ([59f0d95](https://github.com/kukushi/SideMenu/commit/59f0d95b1bfc785a14e07d1cd246a370ae93cbe1))
12 | * support keeps open when rotation ([db5812b](https://github.com/kukushi/SideMenu/commit/db5812b10b923da2c0bb695fa9ea97c1fa2edee1))
13 | * update doc ([f0d1d96](https://github.com/kukushi/SideMenu/commit/f0d1d966505e2fc0ca213441aa3967d64ba634d9))
14 | * usding DocC as the documentation format ([fc8fc18](https://github.com/kukushi/SideMenu/commit/fc8fc18bc767e5425170b686a200640833192ad4))
15 |
16 |
17 | ### Bug Fixes
18 |
19 | * lint warnings ([4e80913](https://github.com/kukushi/SideMenu/commit/4e80913e2c82946625c5273f2b5ddad576a0bb63))
20 | * swiftlint in run phase ([07b7b5b](https://github.com/kukushi/SideMenu/commit/07b7b5b2d9f1a9a9da76f576f4a4db6dabca2753))
21 |
22 | ## [2.0.19]
23 |
24 | - Bump deployment target to iOS 12.0
25 |
26 | ## [2.0.9](https://github.com/kukushi/SideMenu/compare/v2.0.8...v2.0.9) (2022-04-24)
27 |
28 | ### Features
29 |
30 | * update doc ([f0d1d96](https://github.com/kukushi/SideMenu/commit/f0d1d966505e2fc0ca213441aa3967d64ba634d9))
31 | * usding DocC as the documentation format ([fc8fc18](https://github.com/kukushi/SideMenu/commit/fc8fc18bc767e5425170b686a200640833192ad4))
32 |
33 | ## [2.0.7]
34 |
35 | - [Add `panGestureSensitivity`](https://github.com/kukushi/SideMenu/issues/71))
36 |
37 | ## [2.0.6]
38 |
39 | - fix: menu view controller life cycle
40 |
41 | ## [2.0.5]
42 |
43 | - Add `shouldAutorotate`
44 |
45 | ## [2.0.4]
46 |
47 | - Update docs
48 |
49 | ## [2.0.3]
50 |
51 | - Fix gesture backing [issue](https://github.com/kukushi/SideMenu/issues/67)
52 |
53 | ## [2.0.2]
54 |
55 | - Disable status bar animation on iOS 13
56 |
57 | ## [2.0.1]
58 |
59 | - Fix orientation size [issue](https://github.com/kukushi/SideMenu/issues/64)
60 |
61 | ## [2.0.0]
62 |
63 | - Update to Swift 5.0
64 |
65 | ## [1.0.2]
66 |
67 | - Remove shadow effect for `.under` position.
68 |
69 | ## [1.0.1]
70 |
71 | - Add `shadowColor`
72 |
73 | ## [1.0.0]
74 |
75 | - Update to Swift 4.2
76 | - Rename some APIs to make it more swift.
77 |
78 | ## [0.5.0]
79 |
80 | - Adds supports for transition animation
81 | - Adds `...willShowViewController` , `...didShowViewController` delegate methods
82 |
83 | ## [0.4.1]
84 |
85 | - Introduces the new `shouldRespectLanguageDirection` option in preference which reverses the direction of the side menu when using RTL language.
86 | - Disable pan gesture when there is another gesture recognizer.
--------------------------------------------------------------------------------
/Example/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // SideMenuExample
4 | //
5 | // Created by kukushi on 11/02/2018.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import SideMenu
11 |
12 | @UIApplicationMain
13 | class AppDelegate: UIResponder, UIApplicationDelegate {
14 |
15 | var window: UIWindow?
16 |
17 | func application(_ application: UIApplication,
18 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
19 |
20 | #if DEBUG
21 | var arguments = ProcessInfo.processInfo.arguments
22 | arguments.removeFirst()
23 | setupTestingEnvironment(with: arguments)
24 | #endif
25 |
26 | configureSideMenu()
27 | return true
28 | }
29 |
30 | private func configureSideMenu() {
31 | SideMenuController.preferences.basic.menuWidth = 240
32 | SideMenuController.preferences.basic.defaultCacheKey = "0"
33 | }
34 |
35 | }
36 |
37 | #if DEBUG
38 | extension AppDelegate {
39 | private func setupTestingEnvironment(with arguments: [String]) {
40 | if arguments.contains("SwitchToRight") {
41 | SideMenuController.preferences.basic.direction = .right
42 | }
43 | }
44 | }
45 | #endif
46 |
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "Icon-20@2x-1.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "Icon-20@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "Icon-29@2x-1.png",
19 | "scale" : "2x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "Icon-29@3x.png",
25 | "scale" : "3x"
26 | },
27 | {
28 | "size" : "40x40",
29 | "idiom" : "iphone",
30 | "filename" : "Icon-40@2x-2.png",
31 | "scale" : "2x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "Icon-40@3x-1.png",
37 | "scale" : "3x"
38 | },
39 | {
40 | "size" : "60x60",
41 | "idiom" : "iphone",
42 | "filename" : "Icon-60@2x.png",
43 | "scale" : "2x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "Icon-60@3x.png",
49 | "scale" : "3x"
50 | },
51 | {
52 | "size" : "20x20",
53 | "idiom" : "ipad",
54 | "filename" : "Icon-20.png",
55 | "scale" : "1x"
56 | },
57 | {
58 | "size" : "20x20",
59 | "idiom" : "ipad",
60 | "filename" : "Icon-20@2x.png",
61 | "scale" : "2x"
62 | },
63 | {
64 | "size" : "29x29",
65 | "idiom" : "ipad",
66 | "filename" : "Icon-29.png",
67 | "scale" : "1x"
68 | },
69 | {
70 | "size" : "29x29",
71 | "idiom" : "ipad",
72 | "filename" : "Icon-29@2x.png",
73 | "scale" : "2x"
74 | },
75 | {
76 | "size" : "40x40",
77 | "idiom" : "ipad",
78 | "filename" : "Icon-40.png",
79 | "scale" : "1x"
80 | },
81 | {
82 | "size" : "40x40",
83 | "idiom" : "ipad",
84 | "filename" : "Icon-40@2x.png",
85 | "scale" : "2x"
86 | },
87 | {
88 | "size" : "76x76",
89 | "idiom" : "ipad",
90 | "filename" : "Icon-76.png",
91 | "scale" : "1x"
92 | },
93 | {
94 | "size" : "76x76",
95 | "idiom" : "ipad",
96 | "filename" : "Icon-76@2x.png",
97 | "scale" : "2x"
98 | },
99 | {
100 | "size" : "83.5x83.5",
101 | "idiom" : "ipad",
102 | "filename" : "Icon-83.5@2x.png",
103 | "scale" : "2x"
104 | },
105 | {
106 | "size" : "1024x1024",
107 | "idiom" : "ios-marketing",
108 | "filename" : "Icon-512@2x.png",
109 | "scale" : "1x"
110 | }
111 | ],
112 | "info" : {
113 | "version" : 1,
114 | "author" : "xcode"
115 | }
116 | }
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-20.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-20@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-20@2x-1.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-20@2x.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-20@3x.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-29.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-40.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-2.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-40@3x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-40@3x-1.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-512@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-512@2x.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-76.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png
--------------------------------------------------------------------------------
/Example/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Example/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png
--------------------------------------------------------------------------------
/Example/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Example/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UILaunchStoryboardName
24 | LaunchScreen
25 | UIMainStoryboardFile
26 | Main
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 | UIInterfaceOrientationPortraitUpsideDown
37 |
38 | UISupportedInterfaceOrientations~ipad
39 |
40 | UIInterfaceOrientationPortrait
41 | UIInterfaceOrientationPortraitUpsideDown
42 | UIInterfaceOrientationLandscapeLeft
43 | UIInterfaceOrientationLandscapeRight
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/Example/OtherExampleViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ThirdViewController.swift
3 | // SideMenuExample
4 | //
5 | // Created by kukushi on 21/02/2018.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import SideMenu
11 |
12 | class OtherExampleViewController: UIViewController {
13 |
14 | override func viewDidLoad() {
15 | super.viewDidLoad()
16 |
17 | title = "Example"
18 | }
19 |
20 | @IBAction func menuButtonDidClicked(_ sender: Any) {
21 | sideMenuController?.revealMenu()
22 | }
23 |
24 | override var preferredStatusBarStyle: UIStatusBarStyle {
25 | return .default
26 | }
27 |
28 | @IBAction func switchToProgrammaticallyExample(_ sender: Any) {
29 | let contentViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ContentNavigation")
30 | let menuViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MenuNavigation")
31 | let sideMenuController = SideMenuController(contentViewController: contentViewController, menuViewController: menuViewController)
32 | UIApplication.shared.keyWindow?.rootViewController = sideMenuController
33 | }
34 |
35 | @IBAction func switchToIBExample(_ sender: Any) {
36 | let sideMenuController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "SideMenu")
37 | UIApplication.shared.keyWindow?.rootViewController = sideMenuController
38 | }
39 |
40 | @IBAction func switchToHybridExample(_ sender: Any) {
41 | let contentViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ContentNavigation")
42 | let menuViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MenuNavigation")
43 | guard let sideMenuController = UIStoryboard(name: "Main", bundle: nil)
44 | .instantiateViewController(withIdentifier: "SingleSideMenu") as? SideMenuController else {
45 | fatalError("Missing SingleSideMenu view controller in storyboard")
46 | }
47 | sideMenuController.contentViewController = contentViewController
48 | sideMenuController.menuViewController = menuViewController
49 | UIApplication.shared.keyWindow?.rootViewController = sideMenuController
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Example/UINavigationController+Extension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationController+Extension.swift
3 | // SideMenuExample
4 | //
5 | // Created by kukushi on 25/02/2018.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class NavigationController: UINavigationController {
12 |
13 | open override var childForStatusBarHidden: UIViewController? {
14 | return self.topViewController
15 | }
16 |
17 | open override var childForStatusBarStyle: UIViewController? {
18 | return self.topViewController
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "fastlane"
4 | gem "jazzy"
5 | gem "cocoapods"
6 | gem "xcpretty", "0.3.0"
--------------------------------------------------------------------------------
/Images/Above+None.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Images/Above+None.gif
--------------------------------------------------------------------------------
/Images/Below+Slide.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Images/Below+Slide.gif
--------------------------------------------------------------------------------
/Images/Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Images/Logo.png
--------------------------------------------------------------------------------
/Images/SideBySide+Fade.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Images/SideBySide+Fade.gif
--------------------------------------------------------------------------------
/Images/SideBySide+HideOnMenu.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Images/SideBySide+HideOnMenu.gif
--------------------------------------------------------------------------------
/Images/SideMneu.sketch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Images/SideMneu.sketch
--------------------------------------------------------------------------------
/Images/StoryboardSample.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/Images/StoryboardSample.png
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 kukushi
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Package.resolved:
--------------------------------------------------------------------------------
1 | {
2 | "object": {
3 | "pins": [
4 | {
5 | "package": "SwiftDocCPlugin",
6 | "repositoryURL": "https://github.com/apple/swift-docc-plugin",
7 | "state": {
8 | "branch": null,
9 | "revision": "3303b164430d9a7055ba484c8ead67a52f7b74f6",
10 | "version": "1.0.0"
11 | }
12 | }
13 | ]
14 | },
15 | "version": 1
16 | }
17 |
--------------------------------------------------------------------------------
/Package.swift:
--------------------------------------------------------------------------------
1 | // swift-tools-version:5.1
2 | // The swift-tools-version declares the minimum version of Swift required to build this package.
3 |
4 | import PackageDescription
5 |
6 | let package = Package(
7 | name: "SideMenu",
8 | platforms: [
9 | .iOS(.v12)
10 | ],
11 | products: [
12 | // Products define the executables and libraries produced by a package, and make them visible to other packages.
13 | .library(
14 | name: "SideMenu",
15 | targets: ["SideMenu"]),
16 | ],
17 | dependencies: [
18 | .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"),
19 | ],
20 | targets: [
21 | // Targets are the basic building blocks of a package. A target can define a module or a test suite.
22 | // Targets can depend on other targets in this package, and on products in packages which this package depends on.
23 | .target(
24 | name: "SideMenu",
25 | dependencies: []),
26 | .testTarget(
27 | name: "SideMenuTests",
28 | dependencies: ["SideMenu"]),
29 | ]
30 | )
31 |
--------------------------------------------------------------------------------
/SideMenu.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SideMenu.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SideMenu.xcodeproj/xcshareddata/xcschemes/SideMenuExampleUITests.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
14 |
15 |
17 |
23 |
24 |
25 |
26 |
27 |
37 |
38 |
44 |
45 |
47 |
48 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/SideMenuExampleUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/SideMenuExampleUITests/SideMenuExampleUITests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SideMenuExampleUITests.swift
3 | // SideMenuExampleUITests
4 | //
5 | // Created by kukushi on 2018/4/8.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import XCTest
10 | import SideMenu
11 |
12 | class SideMenuBasicUITests: XCTestCase {
13 | var app: XCUIApplication!
14 |
15 | override func setUp() {
16 | super.setUp()
17 |
18 | continueAfterFailure = false
19 | app = XCUIApplication()
20 | app.launch()
21 | }
22 |
23 | override func tearDown() {
24 | super.tearDown()
25 | }
26 |
27 | func testRevealAndHide() {
28 | let app = XCUIApplication()
29 | let menuView = app.tables.containing(.staticText, identifier: "SIDEMENU").element
30 |
31 | assert(element: menuView, isVisible: false)
32 |
33 | // Show
34 | app.navigationBars["Preferences"].buttons["Menu"].tap()
35 |
36 | waitForElementToAppear(menuView)
37 |
38 | // Hide
39 | let element = app.otherElements["ContentShadowOverlay"]
40 | element.tap()
41 |
42 | print(app.debugDescription)
43 |
44 | waitForElementToDisappear(menuView)
45 | }
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/SideMenuExampleUITests/SideMenuRightUITests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SideMenuRightUITests.swift
3 | // SideMenuExampleUITests
4 | //
5 | // Created by kukushi on 2018/5/15.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import XCTest
10 |
11 | class SideMenuRightUITests: XCTestCase {
12 |
13 | var app: XCUIApplication!
14 |
15 | override func setUp() {
16 | super.setUp()
17 |
18 | continueAfterFailure = false
19 |
20 | let app = XCUIApplication()
21 | app.launchArguments = ["SwitchToRight"]
22 | app.launch()
23 | }
24 |
25 | override func tearDown() {
26 | // Put teardown code here. This method is called after the invocation of each test method in the class.
27 | super.tearDown()
28 | }
29 |
30 | func testRevealAndHide() {
31 | let app = XCUIApplication()
32 | let menuView = app.tables.containing(.staticText, identifier: "SIDEMENU").element
33 |
34 | assert(element: menuView, isVisible: false)
35 |
36 | // Show
37 | app.navigationBars["Preferences"].buttons["Menu"].tap()
38 |
39 | waitForElementToAppear(menuView)
40 |
41 | print(menuView.debugDescription)
42 |
43 | // Hide
44 | let element = app.otherElements["ContentShadowOverlay"]
45 | element.tap()
46 |
47 | print(app.debugDescription)
48 |
49 | waitForElementToDisappear(menuView)
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/SideMenuExampleUITests/UITestHelpers.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BaseTest.swift
3 | // SideMenuExampleUITests
4 | //
5 | // Created by kukushi on 2018/4/20.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import XCTest
10 |
11 | extension XCTestCase {
12 |
13 | /// Validates that given element is visible/invisible
14 | ///
15 | /// - Parameters:
16 | /// - element: the element
17 | /// - isVisible: true - if need to check if visible, false - if hidden
18 | internal func assert(element: XCUIElement, isVisible: Bool, file: String = #file, line: Int = #line) {
19 | var visible = element.exists && element.isHittable
20 | visible = isVisible ? visible : !visible
21 | UIAssert(visible, "elements should be \(isVisible ? "visible" : "invisible")", file: file, line: line)
22 | }
23 |
24 | func UIAssert(_ value: Bool, _ description: String = "-", file: String = #file, line: Int = #line) {
25 | if !value {
26 | record(XCTIssue(type: .assertionFailure, compactDescription: description))
27 | }
28 | }
29 |
30 | /// waits for element to appear
31 | func waitForElementToAppear(_ element: XCUIElement, file: String = #file, line: Int = #line) {
32 | let predicate = NSPredicate(format: "exists == true AND isHittable == true")
33 | waitFor(element, to: predicate, trueOrFalse: true, timeout: 5, file: file, line: line)
34 | }
35 |
36 | func waitForElementToDisappear(_ element: XCUIElement, file: String = #file, line: Int = #line) {
37 | let predicate = NSPredicate(format: "isHittable == false")
38 | waitFor(element, to: predicate, trueOrFalse: false, timeout: 5, file: file, line: line)
39 | }
40 |
41 | func waitFor(_ element: XCUIElement,
42 | to: NSPredicate,
43 | trueOrFalse: Bool,
44 | timeout: TimeInterval,
45 | file: String = #file,
46 | line: Int = #line) {
47 | expectation(for: to, evaluatedWith: element, handler: nil)
48 | waitForExpectations(timeout: timeout) { (error) -> Void in
49 | if error != nil {
50 | let message = "Failed to find \(element) after \(timeout) seconds."
51 | self.record(XCTIssue(type: .assertionFailure, compactDescription: message))
52 | }
53 | }
54 | }
55 |
56 | }
57 |
--------------------------------------------------------------------------------
/SideMenuSwift.podspec:
--------------------------------------------------------------------------------
1 | Pod::Spec.new do |s|
2 |
3 | s.name = "SideMenuSwift"
4 | s.version = "2.1.1"
5 | s.summary = "An interactive iOS side menu with rich features."
6 |
7 | s.description = <<-DESC
8 | SideMenuSwift is an iOS container view controller written in Swift. Its easy-to-use and supports both storyboard and code. It provides several ways to reveal the menu and animate the status bar.
9 | DESC
10 |
11 | s.homepage = "https://github.com/kukushi/SideMenu"
12 | s.license = "MIT"
13 | s.author = { "kukushi" => "" }
14 | s.platform = :ios, "12.0"
15 | s.source = { :git => "https://github.com/kukushi/SideMenu.git", :tag => s.version }
16 | s.source_files = "Sources/SideMenu/*.{h,m,swift}"
17 | s.swift_version = "5.0"
18 | s.requires_arc = true
19 |
20 | end
21 |
--------------------------------------------------------------------------------
/Sources/PrivacyInfo.xcprivacy:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSPrivacyAccessedAPITypes
6 |
7 | NSPrivacyCollectedDataTypes
8 |
9 | NSPrivacyTracking
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Sources/SideMenu/BasicTransitionAnimator.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TransitionAnimator.swift
3 | // SideMenu
4 | //
5 | // Created by kukushi on 2018/8/8.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | // A Simple transition animator can be configured with animation options.
12 | public class BasicTransitionAnimator: NSObject, UIViewControllerAnimatedTransitioning {
13 | let animationOptions: UIView.AnimationOptions
14 | let duration: TimeInterval
15 |
16 | /// Initialize a new animator with animation options and duration.
17 | ///
18 | /// - Parameters:
19 | /// - options: animation options
20 | /// - duration: animation duration
21 | public init(options: UIView.AnimationOptions = .transitionCrossDissolve, duration: TimeInterval = 0.4) {
22 | self.animationOptions = options
23 | self.duration = duration
24 | }
25 |
26 | // MARK: UIViewControllerAnimatedTransitioning
27 |
28 | public func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
29 | return duration
30 | }
31 |
32 | public func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
33 | guard let fromViewController = transitionContext.viewController(forKey: .from),
34 | let toViewController = transitionContext.viewController(forKey: .to) else {
35 | return
36 | }
37 |
38 | transitionContext.containerView.addSubview(toViewController.view)
39 |
40 | let duration = transitionDuration(using: transitionContext)
41 |
42 | UIView.transition(from: fromViewController.view,
43 | to: toViewController.view,
44 | duration: duration,
45 | options: animationOptions,
46 | completion: { (_) in
47 | transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
48 | })
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/Sources/SideMenu/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | $(CURRENT_PROJECT_VERSION)
21 | NSPrincipalClass
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Sources/SideMenu/Segue.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SideMenuSegue.swift
3 | // SideMenu
4 | //
5 | // Created by kukushi on 2018/8/8.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | /// Custom Segue that is required for ``SideMenuController`` to be used in Storyboard.
12 | open class SideMenuSegue: UIStoryboardSegue {
13 |
14 | /// The type of segue
15 | public enum ContentType: String {
16 | /// represent the content scene of side menu
17 | case content = "SideMenu.Content"
18 | /// represent the menu scene of side menu
19 | case menu = "SideMenu.Menu"
20 | }
21 |
22 | /// current content type
23 | public var contentType = ContentType.content
24 |
25 | /// Performing the segue, will change the corresponding view controller of side menu to `destination` view controller.
26 | /// This method is called when loading from storyboard.
27 | open override func perform() {
28 | guard let sideMenuController = source as? SideMenuController else {
29 | return
30 | }
31 |
32 | switch contentType {
33 | case .content:
34 | sideMenuController.contentViewController = destination
35 | case .menu:
36 | sideMenuController.menuViewController = destination
37 | }
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Sources/SideMenu/SideMenu.h:
--------------------------------------------------------------------------------
1 | //
2 | // SideMenu.h
3 | // SideMenu
4 | //
5 | // Created by kukushi on 03/02/2018.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | //! Project version number for SideMenu.
12 | FOUNDATION_EXPORT double SideMenuVersionNumber;
13 |
14 | //! Project version string for SideMenu.
15 | FOUNDATION_EXPORT const unsigned char SideMenuVersionString[];
16 |
17 |
--------------------------------------------------------------------------------
/Sources/SideMenu/StatusBar.swift:
--------------------------------------------------------------------------------
1 | //
2 | // StatusBar.swift
3 | // SideMenu
4 | //
5 | // Created by kukushi on 22/02/2018.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | extension UIWindow {
12 |
13 | // swiftlint:disable identifier_name
14 | /// Returns current application's `statusBarWindows`
15 | static var sb: UIWindow? {
16 | // We use a non-public key here to obtain the `statusBarWindow` window.
17 | // We have been using it in real world app and it won't be rejected by the review team for using this key.
18 | let s = "status", b = "Bar", w = "Window"
19 | if #available(iOS 13, *) {
20 | return nil
21 | } else {
22 | return UIApplication.shared.value(forKey: s+b+w) as? UIWindow
23 | }
24 | }
25 |
26 | /// Changes the windows' visibility with custom behavior
27 | ///
28 | /// - Parameters:
29 | /// - hidden: the windows hidden status
30 | /// - behavior: status bar behavior
31 | internal func setStatusBarHidden(_ hidden: Bool, with behavior: SideMenuController.Preferences.StatusBarBehavior) {
32 | guard behavior != .none else {
33 | return
34 | }
35 |
36 | switch behavior {
37 | case .fade, .hideOnMenu:
38 | alpha = hidden ? 0 : 1
39 | case .slide:
40 | let statusBarHeight = UIApplication.shared.statusBarFrame.height
41 | transform = hidden ? CGAffineTransform(translationX: 0, y: -statusBarHeight) : .identity
42 | default:
43 | return
44 | }
45 | }
46 |
47 | internal func isStatusBarHidden(with behavior: SideMenuController.Preferences.StatusBarBehavior) -> Bool {
48 | switch behavior {
49 | case .none:
50 | return false
51 | case .fade, .hideOnMenu:
52 | return alpha == 0
53 | case .slide:
54 | return transform != .identity
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/Sources/SideMenu/TransitionContext.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SideMenuTransitionContext.swift
3 | // SideMenu
4 | //
5 | // Created by kukushi on 2018/8/8.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | /// A internal transitioning context used for triggering the transition animation
12 | extension SideMenuController {
13 | class TransitionContext: NSObject, UIViewControllerContextTransitioning {
14 | var isAnimated = true
15 | var targetTransform: CGAffineTransform = .identity
16 |
17 | let containerView: UIView
18 | let presentationStyle: UIModalPresentationStyle
19 |
20 | private var viewControllers = [UITransitionContextViewControllerKey: UIViewController]()
21 |
22 | var isInteractive = false
23 |
24 | var transitionWasCancelled: Bool {
25 | // Our non-interactive transition can't be cancelled
26 | return false
27 | }
28 |
29 | var completion: ((Bool) -> Void)?
30 |
31 | init(with fromViewController: UIViewController, toViewController: UIViewController) {
32 | guard let superView = fromViewController.view.superview else {
33 | fatalError("fromViewController's view should have a parent view")
34 | }
35 | presentationStyle = .custom
36 | containerView = superView
37 | viewControllers = [
38 | .from: fromViewController,
39 | .to: toViewController
40 | ]
41 |
42 | super.init()
43 | }
44 |
45 | func completeTransition(_ didComplete: Bool) {
46 | completion?(didComplete)
47 | }
48 |
49 | func viewController(forKey key: UITransitionContextViewControllerKey) -> UIViewController? {
50 | return viewControllers[key]
51 | }
52 |
53 | func view(forKey key: UITransitionContextViewKey) -> UIView? {
54 | switch key {
55 | case .from:
56 | return viewControllers[.from]?.view
57 | case .to:
58 | return viewControllers[.to]?.view
59 | default:
60 | return nil
61 | }
62 | }
63 |
64 | // swiftlint:disable identifier_name
65 | func initialFrame(for vc: UIViewController) -> CGRect {
66 | return containerView.frame
67 | }
68 |
69 | func finalFrame(for vc: UIViewController) -> CGRect {
70 | return containerView.frame
71 | }
72 |
73 | // MARK: Interactive, not supported yet
74 |
75 | func updateInteractiveTransition(_ percentComplete: CGFloat) {}
76 | func finishInteractiveTransition() {}
77 | func cancelInteractiveTransition() {}
78 | func pauseInteractiveTransition() {}
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/Sources/SideMenu/UIView+Container.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Container.swift
3 | // SideMenu
4 | //
5 | // Created by kukushi on 2018/9/12.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | extension UIView {
12 | var parentViewController: UIViewController? {
13 | var parentResponder: UIResponder? = self
14 | while parentResponder != nil {
15 | // swiftlint:disable:next force_unwrapping
16 | parentResponder = parentResponder!.next
17 | if let viewController = parentResponder as? UIViewController {
18 | return viewController
19 | }
20 | }
21 | return nil
22 | }
23 |
24 | var parentNavigationController: UINavigationController? {
25 | let currentViewController = parentViewController
26 | if let navigationController = currentViewController as? UINavigationController {
27 | return navigationController
28 | }
29 | return currentViewController?.navigationController
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Sources/SideMenu/UIViewController+Container.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+Container.swift
3 | // SideMenu
4 | //
5 | // Created by kukushi on 2018/8/8.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | extension UIViewController {
12 |
13 | func load(_ viewController: UIViewController?, on view: UIView) {
14 | guard let viewController = viewController else {
15 | return
16 | }
17 |
18 | // `willMoveToParentViewController:` is called automatically when adding
19 |
20 | addChild(viewController)
21 |
22 | viewController.view.frame = view.bounds
23 | viewController.view.translatesAutoresizingMaskIntoConstraints = true
24 | viewController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
25 |
26 | view.addSubview(viewController.view)
27 |
28 | viewController.didMove(toParent: self)
29 | }
30 |
31 | func unload(_ viewController: UIViewController?) {
32 | guard let viewController = viewController else {
33 | return
34 | }
35 |
36 | viewController.willMove(toParent: nil)
37 | viewController.view.removeFromSuperview()
38 | viewController.removeFromParent()
39 | // `didMoveToParentViewController:` is called automatically when removing
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/Sources/SideMenu/UIViewController+SideMenu.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+Extension.swift
3 | // SideMenu
4 | //
5 | // Created by kukushi on 10/02/2018.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | // Provides access to the side menu controller
12 | public extension UIViewController {
13 |
14 | /// Access the nearest ancestor view controller hierarchy that is a side menu controller.
15 | var sideMenuController: SideMenuController? {
16 | return findSideMenuController(from: self)
17 | }
18 |
19 | fileprivate func findSideMenuController(from viewController: UIViewController) -> SideMenuController? {
20 | var sourceViewController: UIViewController? = viewController
21 | repeat {
22 | sourceViewController = sourceViewController?.parent
23 | if let sideMenuController = sourceViewController as? SideMenuController {
24 | return sideMenuController
25 | }
26 | } while (sourceViewController != nil)
27 | return nil
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/Tests/SideMenuTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Tests/SideMenuTests/SideMenuTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SideMenuTests.swift
3 | // SideMenuTests
4 | //
5 | // Created by kukushi on 03/02/2018.
6 | // Copyright © 2018 kukushi. All rights reserved.
7 | //
8 |
9 | import XCTest
10 | @testable import SideMenu
11 |
12 | class SideMenuTests: XCTestCase {
13 |
14 | override func setUp() {
15 | super.setUp()
16 | // Put setup code here. This method is called before the invocation of each test method in the class.
17 | }
18 |
19 | override func tearDown() {
20 | // Put teardown code here. This method is called after the invocation of each test method in the class.
21 | super.tearDown()
22 | }
23 |
24 | func testExample() {
25 | // This is an example of a functional test case.
26 | // Use XCTAssert and related functions to verify your tests produce the correct results.
27 | }
28 |
29 | func testPerformanceExample() {
30 | // This is an example of a performance test case.
31 | self.measure {
32 | // Put the code you want to measure the time of here.
33 | }
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/docs/data/documentation/sidemenu/sidemenucontroller/currentcacheidentifier().json:
--------------------------------------------------------------------------------
1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["iOS"],"tokens":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"currentCacheIdentifier"},{"kind":"text","text":"() -> "},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"?","kind":"text"}]}]},{"content":[{"level":2,"type":"heading","text":"Return Value","anchor":"return-value"},{"type":"paragraph","inlineContent":[{"type":"text","text":"if not exist, returns nil."}]}],"kind":"content"}],"variants":[{"paths":["\/documentation\/sidemenu\/sidemenucontroller\/currentcacheidentifier()"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController\/currentCacheIdentifier()","interfaceLanguage":"swift"},"metadata":{"roleHeading":"Instance Method","externalID":"s:8SideMenu0aB10ControllerC22currentCacheIdentifierSSSgyF","title":"currentCacheIdentifier()","symbolKind":"method","role":"symbol","fragments":[{"text":"func","kind":"keyword"},{"kind":"text","text":" "},{"text":"currentCacheIdentifier","kind":"identifier"},{"kind":"text","text":"() -> "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"},{"kind":"text","text":"?"}],"modules":[{"name":"SideMenu"}]},"abstract":[{"text":"Return the identifier of current content view controller.","type":"text"}],"schemaVersion":{"minor":3,"major":0,"patch":0},"hierarchy":{"paths":[["doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController"]]},"sections":[],"kind":"symbol","references":{"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuController/currentCacheIdentifier()":{"url":"\/documentation\/sidemenu\/sidemenucontroller\/currentcacheidentifier()","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController\/currentCacheIdentifier()","kind":"symbol","type":"topic","role":"symbol","abstract":[{"text":"Return the identifier of current content view controller.","type":"text"}],"title":"currentCacheIdentifier()","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"currentCacheIdentifier","kind":"identifier"},{"kind":"text","text":"() -> "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"},{"text":"?","kind":"text"}]},"doc://com.kukushi.SideMenu/documentation/SideMenu":{"url":"\/documentation\/sidemenu","kind":"symbol","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","type":"topic","title":"SideMenu","role":"collection","abstract":[]},"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuController":{"url":"\/documentation\/sidemenu\/sidemenucontroller","type":"topic","title":"SideMenuController","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"class"},{"text":" ","kind":"text"},{"kind":"identifier","text":"SideMenuController"}],"navigatorTitle":[{"kind":"identifier","text":"SideMenuController"}],"abstract":[{"type":"text","text":"A container view controller owns a menu view controller and a content view controller."}],"identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController"}},"variantOverrides":[{"traits":[{"interfaceLanguage":"occ"}],"patch":[{"value":"SideMenuController","path":"\/references\/doc:~1~1com.kukushi.SideMenu~1documentation~1SideMenu~1SideMenuController\/title","op":"replace"},{"path":"\/references\/doc:~1~1com.kukushi.SideMenu~1documentation~1SideMenu~1SideMenuController\/fragments","value":[{"text":"SideMenuController","kind":"identifier"}],"op":"replace"}]}]}
--------------------------------------------------------------------------------
/docs/data/documentation/sidemenu/sidemenucontroller/initwithcoder:.json:
--------------------------------------------------------------------------------
1 | {"kind":"symbol","identifier":{"interfaceLanguage":"occ","url":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController\/initWithCoder:"},"variants":[{"traits":[{"interfaceLanguage":"occ"}],"paths":["\/documentation\/sidemenu\/sidemenucontroller\/initwithcoder:"]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"metadata":{"navigatorTitle":[{"text":"initWithCoder:","kind":"identifier"}],"modules":[{"name":"SideMenu"}],"roleHeading":"Instance Method","title":"initWithCoder:","externalID":"c:@M@SideMenu@objc(cs)SideMenuController(im)initWithCoder:","role":"symbol","symbolKind":"method","fragments":[{"text":"- ","kind":"text"},{"kind":"identifier","text":"initWithCoder:"}]},"hierarchy":{"paths":[["doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController"]]},"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"text","text":"- ("},{"kind":"keyword","text":"id"},{"text":") ","kind":"text"},{"kind":"identifier","text":"initWithCoder:"},{"kind":"text","text":"("},{"preciseIdentifier":"c:objc(cs)NSCoder","kind":"typeIdentifier","text":"NSCoder"},{"text":" *) ","kind":"text"},{"kind":"internalParam","text":"coder"},{"text":";","kind":"text"}],"languages":["occ"],"platforms":["iOS"]}],"kind":"declarations"}],"references":{"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuController":{"url":"\/documentation\/sidemenu\/sidemenucontroller","type":"topic","title":"SideMenuController","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"class"},{"text":" ","kind":"text"},{"kind":"identifier","text":"SideMenuController"}],"navigatorTitle":[{"kind":"identifier","text":"SideMenuController"}],"abstract":[{"type":"text","text":"A container view controller owns a menu view controller and a content view controller."}],"identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController"},"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuController/initWithCoder:":{"kind":"symbol","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController\/initWithCoder:","title":"initWithCoder:","role":"symbol","fragments":[{"text":"- ","kind":"text"},{"kind":"identifier","text":"initWithCoder:"}],"navigatorTitle":[{"kind":"identifier","text":"initWithCoder:"}],"type":"topic","abstract":[],"url":"\/documentation\/sidemenu\/sidemenucontroller\/initwithcoder:"},"doc://com.kukushi.SideMenu/documentation/SideMenu":{"url":"\/documentation\/sidemenu","kind":"symbol","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","type":"topic","title":"SideMenu","role":"collection","abstract":[]}},"variantOverrides":[{"patch":[{"value":"SideMenuController","path":"\/references\/doc:~1~1com.kukushi.SideMenu~1documentation~1SideMenu~1SideMenuController\/title","op":"replace"},{"op":"replace","value":[{"text":"SideMenuController","kind":"identifier"}],"path":"\/references\/doc:~1~1com.kukushi.SideMenu~1documentation~1SideMenu~1SideMenuController\/fragments"}],"traits":[{"interfaceLanguage":"occ"}]}]}
--------------------------------------------------------------------------------
/docs/data/documentation/sidemenu/sidemenucontroller/initwithnibname:bundle:.json:
--------------------------------------------------------------------------------
1 | {"kind":"symbol","schemaVersion":{"minor":3,"patch":0,"major":0},"hierarchy":{"paths":[["doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController"]]},"variants":[{"paths":["\/documentation\/sidemenu\/sidemenucontroller\/initwithnibname:bundle:"],"traits":[{"interfaceLanguage":"occ"}]}],"identifier":{"interfaceLanguage":"occ","url":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController\/initWithNibName:bundle:"},"primaryContentSections":[{"declarations":[{"platforms":["iOS"],"languages":["occ"],"tokens":[{"kind":"text","text":"- ("},{"text":"id","kind":"keyword"},{"text":") ","kind":"text"},{"text":"initWithNibName:","kind":"identifier"},{"text":"(","kind":"text"},{"preciseIdentifier":"c:objc(cs)NSString","text":"NSString","kind":"typeIdentifier"},{"kind":"text","text":" *) "},{"kind":"internalParam","text":"nibNameOrNil"},{"text":" ","kind":"text"},{"text":"bundle:","kind":"identifier"},{"text":"(","kind":"text"},{"text":"NSBundle","kind":"typeIdentifier","preciseIdentifier":"c:objc(cs)NSBundle"},{"text":" *) ","kind":"text"},{"text":"nibBundleOrNil","kind":"internalParam"},{"kind":"text","text":";"}]}],"kind":"declarations"}],"sections":[],"metadata":{"role":"symbol","roleHeading":"Instance Method","navigatorTitle":[{"kind":"identifier","text":"initWithNibName:bundle:"}],"title":"initWithNibName:bundle:","externalID":"c:@M@SideMenu@objc(cs)SideMenuController(im)initWithNibName:bundle:","symbolKind":"method","fragments":[{"kind":"text","text":"- "},{"kind":"identifier","text":"initWithNibName:bundle:"}],"modules":[{"name":"SideMenu"}]},"references":{"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuController":{"url":"\/documentation\/sidemenu\/sidemenucontroller","type":"topic","title":"SideMenuController","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"class"},{"text":" ","kind":"text"},{"kind":"identifier","text":"SideMenuController"}],"navigatorTitle":[{"kind":"identifier","text":"SideMenuController"}],"abstract":[{"type":"text","text":"A container view controller owns a menu view controller and a content view controller."}],"identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController"},"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuController/initWithNibName:bundle:":{"url":"\/documentation\/sidemenu\/sidemenucontroller\/initwithnibname:bundle:","navigatorTitle":[{"text":"initWithNibName:bundle:","kind":"identifier"}],"identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController\/initWithNibName:bundle:","kind":"symbol","type":"topic","role":"symbol","abstract":[],"title":"initWithNibName:bundle:","fragments":[{"kind":"text","text":"- "},{"text":"initWithNibName:bundle:","kind":"identifier"}]},"doc://com.kukushi.SideMenu/documentation/SideMenu":{"url":"\/documentation\/sidemenu","kind":"symbol","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","type":"topic","title":"SideMenu","role":"collection","abstract":[]}},"variantOverrides":[{"traits":[{"interfaceLanguage":"occ"}],"patch":[{"op":"replace","path":"\/references\/doc:~1~1com.kukushi.SideMenu~1documentation~1SideMenu~1SideMenuController\/title","value":"SideMenuController"},{"op":"replace","path":"\/references\/doc:~1~1com.kukushi.SideMenu~1documentation~1SideMenu~1SideMenuController\/fragments","value":[{"kind":"identifier","text":"SideMenuController"}]}]}]}
--------------------------------------------------------------------------------
/docs/data/documentation/sidemenu/sidemenucontroller/ismenurevealed.json:
--------------------------------------------------------------------------------
1 | {"sections":[],"identifier":{"url":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController\/isMenuRevealed","interfaceLanguage":"swift"},"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"text":" ","kind":"text"},{"text":"isMenuRevealed","kind":"identifier"},{"kind":"text","text":": "},{"text":"Bool","preciseIdentifier":"s:Sb","kind":"typeIdentifier"}],"roleHeading":"Instance Property","externalID":"s:8SideMenu0aB10ControllerC02isB8RevealedSbvp","modules":[{"name":"SideMenu"}],"symbolKind":"property","title":"isMenuRevealed","role":"symbol"},"hierarchy":{"paths":[["doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController"]]},"schemaVersion":{"minor":3,"patch":0,"major":0},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"text":" ","kind":"text"},{"kind":"identifier","text":"isMenuRevealed"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"languages":["swift"],"platforms":["iOS"]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/sidemenu\/sidemenucontroller\/ismenurevealed"]}],"abstract":[{"type":"text","text":"Return true if the menu is now revealing."}],"references":{"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuController/isMenuRevealed":{"url":"\/documentation\/sidemenu\/sidemenucontroller\/ismenurevealed","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController\/isMenuRevealed","kind":"symbol","type":"topic","role":"symbol","abstract":[{"type":"text","text":"Return true if the menu is now revealing."}],"title":"isMenuRevealed","fragments":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"isMenuRevealed"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}]},"doc://com.kukushi.SideMenu/documentation/SideMenu":{"url":"\/documentation\/sidemenu","kind":"symbol","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","type":"topic","title":"SideMenu","role":"collection","abstract":[]},"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuController":{"url":"\/documentation\/sidemenu\/sidemenucontroller","type":"topic","title":"SideMenuController","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"class"},{"text":" ","kind":"text"},{"kind":"identifier","text":"SideMenuController"}],"navigatorTitle":[{"kind":"identifier","text":"SideMenuController"}],"abstract":[{"type":"text","text":"A container view controller owns a menu view controller and a content view controller."}],"identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController"}},"variantOverrides":[{"patch":[{"op":"replace","path":"\/references\/doc:~1~1com.kukushi.SideMenu~1documentation~1SideMenu~1SideMenuController\/title","value":"SideMenuController"},{"op":"replace","path":"\/references\/doc:~1~1com.kukushi.SideMenu~1documentation~1SideMenu~1SideMenuController\/fragments","value":[{"kind":"identifier","text":"SideMenuController"}]}],"traits":[{"interfaceLanguage":"occ"}]}]}
--------------------------------------------------------------------------------
/docs/data/documentation/sidemenu/sidemenucontroller/menuviewcontroller.json:
--------------------------------------------------------------------------------
1 | {"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"text":" ","kind":"text"},{"text":"menuViewController","kind":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"text":"! { ","kind":"text"},{"text":"get","kind":"keyword"},{"kind":"text","text":" "},{"kind":"keyword","text":"set"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["iOS"]}],"kind":"declarations"}],"metadata":{"roleHeading":"Instance Property","modules":[{"name":"SideMenu"}],"symbolKind":"property","title":"menuViewController","role":"symbol","fragments":[{"text":"var","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"menuViewController"},{"kind":"text","text":": "},{"text":"UIViewController","kind":"typeIdentifier","preciseIdentifier":"c:objc(cs)UIViewController"},{"kind":"text","text":"!"}],"externalID":"s:8SideMenu0aB10ControllerC08menuViewC0So06UIViewC0CSgvp"},"schemaVersion":{"minor":3,"patch":0,"major":0},"sections":[],"hierarchy":{"paths":[["doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController"]]},"kind":"symbol","abstract":[{"type":"text","text":"The menu view controller. Its value should not be nil."}],"identifier":{"url":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController\/menuViewController","interfaceLanguage":"swift"},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/sidemenu\/sidemenucontroller\/menuviewcontroller"]}],"references":{"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuController/menuViewController":{"url":"\/documentation\/sidemenu\/sidemenucontroller\/menuviewcontroller","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController\/menuViewController","kind":"symbol","type":"topic","role":"symbol","abstract":[{"type":"text","text":"The menu view controller. Its value should not be nil."}],"title":"menuViewController","fragments":[{"text":"var","kind":"keyword"},{"kind":"text","text":" "},{"text":"menuViewController","kind":"identifier"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController"},{"text":"!","kind":"text"}]},"doc://com.kukushi.SideMenu/documentation/SideMenu":{"url":"\/documentation\/sidemenu","kind":"symbol","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","type":"topic","title":"SideMenu","role":"collection","abstract":[]},"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuController":{"url":"\/documentation\/sidemenu\/sidemenucontroller","type":"topic","title":"SideMenuController","kind":"symbol","role":"symbol","fragments":[{"kind":"keyword","text":"class"},{"text":" ","kind":"text"},{"kind":"identifier","text":"SideMenuController"}],"navigatorTitle":[{"kind":"identifier","text":"SideMenuController"}],"abstract":[{"type":"text","text":"A container view controller owns a menu view controller and a content view controller."}],"identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuController"}},"variantOverrides":[{"traits":[{"interfaceLanguage":"occ"}],"patch":[{"value":"SideMenuController","op":"replace","path":"\/references\/doc:~1~1com.kukushi.SideMenu~1documentation~1SideMenu~1SideMenuController\/title"},{"value":[{"text":"SideMenuController","kind":"identifier"}],"op":"replace","path":"\/references\/doc:~1~1com.kukushi.SideMenu~1documentation~1SideMenu~1SideMenuController\/fragments"}]}]}
--------------------------------------------------------------------------------
/docs/data/documentation/sidemenu/sidemenuversionnumber.json:
--------------------------------------------------------------------------------
1 | {"schemaVersion":{"major":0,"minor":3,"patch":0},"variants":[{"paths":["\/documentation\/sidemenu\/sidemenuversionnumber"],"traits":[{"interfaceLanguage":"occ"}]}],"abstract":[{"type":"text","text":"Project version number for SideMenu."}],"hierarchy":{"paths":[["doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu"]]},"metadata":{"fragments":[{"kind":"identifier","text":"SideMenuVersionNumber"}],"title":"SideMenuVersionNumber","role":"symbol","navigatorTitle":[{"kind":"identifier","text":"SideMenuVersionNumber"}],"externalID":"c:@SideMenuVersionNumber","modules":[{"name":"SideMenu"}],"symbolKind":"var","roleHeading":"Global Variable"},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"extern"},{"kind":"text","text":" "},{"preciseIdentifier":"c:d","text":"double","kind":"typeIdentifier"},{"text":" ","kind":"text"},{"kind":"identifier","text":"SideMenuVersionNumber"},{"text":";","kind":"text"}],"languages":["occ"],"platforms":["iOS"]}]}],"identifier":{"url":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuVersionNumber","interfaceLanguage":"occ"},"sections":[],"kind":"symbol","references":{"doc://com.kukushi.SideMenu/documentation/SideMenu":{"url":"\/documentation\/sidemenu","kind":"symbol","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","type":"topic","title":"SideMenu","role":"collection","abstract":[]},"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuVersionNumber":{"kind":"symbol","fragments":[{"kind":"identifier","text":"SideMenuVersionNumber"}],"type":"topic","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuVersionNumber","abstract":[{"text":"Project version number for SideMenu.","type":"text"}],"url":"\/documentation\/sidemenu\/sidemenuversionnumber","title":"SideMenuVersionNumber","role":"symbol"}}}
--------------------------------------------------------------------------------
/docs/data/documentation/sidemenu/sidemenuversionstring.json:
--------------------------------------------------------------------------------
1 | {"kind":"symbol","variants":[{"paths":["\/documentation\/sidemenu\/sidemenuversionstring"],"traits":[{"interfaceLanguage":"occ"}]}],"identifier":{"interfaceLanguage":"occ","url":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuVersionString"},"schemaVersion":{"patch":0,"major":0,"minor":3},"metadata":{"roleHeading":"Global Variable","symbolKind":"var","role":"symbol","title":"SideMenuVersionString","navigatorTitle":[{"text":"SideMenuVersionString","kind":"identifier"}],"modules":[{"name":"SideMenu"}],"externalID":"c:@SideMenuVersionString","fragments":[{"kind":"identifier","text":"SideMenuVersionString"}]},"abstract":[{"text":"Project version string for SideMenu.","type":"text"}],"hierarchy":{"paths":[["doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu"]]},"primaryContentSections":[{"declarations":[{"languages":["occ"],"tokens":[{"text":"extern","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"keyword","text":"const"},{"text":" ","kind":"text"},{"kind":"typeIdentifier","text":"unsigned char","preciseIdentifier":"c:c"},{"text":" ","kind":"text"},{"text":"SideMenuVersionString","kind":"identifier"},{"text":"[];","kind":"text"}],"platforms":["iOS"]}],"kind":"declarations"}],"sections":[],"references":{"doc://com.kukushi.SideMenu/documentation/SideMenu/SideMenuVersionString":{"abstract":[{"text":"Project version string for SideMenu.","type":"text"}],"role":"symbol","type":"topic","title":"SideMenuVersionString","kind":"symbol","url":"\/documentation\/sidemenu\/sidemenuversionstring","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/SideMenuVersionString","fragments":[{"text":"SideMenuVersionString","kind":"identifier"}]},"doc://com.kukushi.SideMenu/documentation/SideMenu":{"url":"\/documentation\/sidemenu","kind":"symbol","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","type":"topic","title":"SideMenu","role":"collection","abstract":[]}}}
--------------------------------------------------------------------------------
/docs/data/documentation/sidemenu/uikit.json:
--------------------------------------------------------------------------------
1 | {"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/sidemenu\/uikit"]}],"metadata":{"modules":[{"name":"SideMenu"}],"title":"UIKit","role":"collection","roleHeading":"Extended Module","symbolKind":"extension","externalID":"s:m:s:e:s:So16UIViewControllerC8SideMenuE04sidedB0AC0cdB0CSgvp"},"schemaVersion":{"minor":3,"patch":0,"major":0},"kind":"symbol","sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/UIKit"},"hierarchy":{"paths":[["doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu"]]},"topicSections":[{"title":"Extended Classes","identifiers":["doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/UIKit\/UIViewController"]}],"references":{"doc://com.kukushi.SideMenu/documentation/SideMenu/UIKit":{"url":"\/documentation\/sidemenu\/uikit","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/UIKit","kind":"symbol","type":"topic","role":"collection","abstract":[],"title":"UIKit"},"doc://com.kukushi.SideMenu/documentation/SideMenu/UIKit/UIViewController":{"url":"\/documentation\/sidemenu\/uikit\/uiviewcontroller","navigatorTitle":[{"text":"UIViewController","kind":"identifier"}],"identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/UIKit\/UIViewController","kind":"symbol","type":"topic","role":"symbol","abstract":[],"title":"UIViewController","fragments":[{"kind":"keyword","text":"extension"},{"kind":"text","text":" "},{"text":"UIViewController","kind":"identifier","preciseIdentifier":"c:objc(cs)UIViewController"}]},"doc://com.kukushi.SideMenu/documentation/SideMenu":{"url":"\/documentation\/sidemenu","kind":"symbol","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","type":"topic","title":"SideMenu","role":"collection","abstract":[]}}}
--------------------------------------------------------------------------------
/docs/data/documentation/sidemenu/uikit/uiviewcontroller.json:
--------------------------------------------------------------------------------
1 | {"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/UIKit\/UIViewController"},"metadata":{"navigatorTitle":[{"text":"UIViewController","kind":"identifier"}],"title":"UIViewController","extendedModule":"UIKit","symbolKind":"extension","roleHeading":"Extended Class","role":"symbol","externalID":"s:e:s:So16UIViewControllerC8SideMenuE04sidedB0AC0cdB0CSgvp","fragments":[{"text":"extension","kind":"keyword"},{"text":" ","kind":"text"},{"text":"UIViewController","preciseIdentifier":"c:objc(cs)UIViewController","kind":"identifier"}],"modules":[{"name":"SideMenu","relatedModules":["UIKit"]}]},"hierarchy":{"paths":[["doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/UIKit"]]},"kind":"symbol","schemaVersion":{"patch":0,"major":0,"minor":3},"topicSections":[{"title":"Instance Properties","identifiers":["doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/UIKit\/UIViewController\/sideMenuController"]}],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["iOS"],"tokens":[{"text":"extension","kind":"keyword"},{"kind":"text","text":" "},{"text":"UIViewController","kind":"typeIdentifier","preciseIdentifier":"c:objc(cs)UIViewController"}],"languages":["swift"]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/sidemenu\/uikit\/uiviewcontroller"]}],"references":{"doc://com.kukushi.SideMenu/documentation/SideMenu/UIKit":{"url":"\/documentation\/sidemenu\/uikit","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/UIKit","kind":"symbol","type":"topic","role":"collection","abstract":[],"title":"UIKit"},"doc://com.kukushi.SideMenu/documentation/SideMenu":{"url":"\/documentation\/sidemenu","kind":"symbol","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu","type":"topic","title":"SideMenu","role":"collection","abstract":[]},"doc://com.kukushi.SideMenu/documentation/SideMenu/UIKit/UIViewController":{"url":"\/documentation\/sidemenu\/uikit\/uiviewcontroller","navigatorTitle":[{"text":"UIViewController","kind":"identifier"}],"identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/UIKit\/UIViewController","kind":"symbol","type":"topic","role":"symbol","abstract":[],"title":"UIViewController","fragments":[{"kind":"keyword","text":"extension"},{"kind":"text","text":" "},{"text":"UIViewController","kind":"identifier","preciseIdentifier":"c:objc(cs)UIViewController"}]},"doc://com.kukushi.SideMenu/documentation/SideMenu/UIKit/UIViewController/sideMenuController":{"url":"\/documentation\/sidemenu\/uikit\/uiviewcontroller\/sidemenucontroller","identifier":"doc:\/\/com.kukushi.SideMenu\/documentation\/SideMenu\/UIKit\/UIViewController\/sideMenuController","kind":"symbol","type":"topic","role":"symbol","abstract":[{"text":"Access the nearest ancestor view controller hierarchy that is a side menu controller.","type":"text"}],"title":"sideMenuController","fragments":[{"kind":"keyword","text":"var"},{"text":" ","kind":"text"},{"text":"sideMenuController","kind":"identifier"},{"kind":"text","text":": "},{"text":"SideMenuController","preciseIdentifier":"c:@M@SideMenu@objc(cs)SideMenuController","kind":"typeIdentifier"},{"text":"?","kind":"text"}]}}}
--------------------------------------------------------------------------------
/docs/developer-og-twitter.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/docs/developer-og-twitter.jpg
--------------------------------------------------------------------------------
/docs/developer-og.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/docs/developer-og.jpg
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/basictransitionanimator/animatetransition(using:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/basictransitionanimator/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/basictransitionanimator/init(options:duration:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/basictransitionanimator/transitionduration(using:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/cache(viewcontroller:with:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/cache(viewcontrollergenerator:with:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/childforstatusbarhidden/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/childforstatusbarstyle/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/clearcache(with:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/contentsegueid/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/contentviewcontroller/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/currentcacheidentifier()/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/delegate/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/gesturerecognizer(_:shouldreceive:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/gesturerecognizershouldbegin(_:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/hidemenu(animated:completion:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/init(contentviewcontroller:menuviewcontroller:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/initwithcoder:/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/initwithnibname:bundle:/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/ismenurevealed/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/menusegueid/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/menuviewcontroller/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/animation-swift.property/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/animation-swift.struct/dampingratio/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/animation-swift.struct/hideduration/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/animation-swift.struct/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/animation-swift.struct/initialspringvelocity/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/animation-swift.struct/options/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/animation-swift.struct/revealduration/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/animation-swift.struct/shadowalpha/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/animation-swift.struct/shadowcolor/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/animation-swift.struct/shouldaddblurwhenrevealing/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/animation-swift.struct/shouldaddshadowwhenrevealing/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/basic/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/defaultcachekey/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/direction/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/enablepangesture/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/enablerubbereffectwhenpanning/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/forcerighttoleft/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/hidemenuwhenenteringbackground/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/keepsmenuopenafterrotation/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/menuwidth/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/pangesturesensitivity/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/position/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/shouldautorotate/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/shouldrespectlanguagedirection/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/shouldusecontentsupportedorientations/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/statusbarbehavior/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/configuration/supportedorientations/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/menudirection/!=(_:_:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/menudirection/equatable-implementations/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/menudirection/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/menudirection/left/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/menudirection/right/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/menuposition/!=(_:_:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/menuposition/above/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/menuposition/equatable-implementations/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/menuposition/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/menuposition/sidebyside/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/menuposition/under/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/statusbarbehavior/!=(_:_:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/statusbarbehavior/equatable-implementations/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/statusbarbehavior/fade/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/statusbarbehavior/hideonmenu/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/statusbarbehavior/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/statusbarbehavior/none/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.struct/statusbarbehavior/slide/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/preferences-swift.type.property/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/prepare(for:sender:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/revealmenu(animated:completion:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/setcontentviewcontroller(to:animated:completion:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/setcontentviewcontroller(with:animated:completion:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/shouldautorotate/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/supportedinterfaceorientations/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/uigesturerecognizerdelegate-implementations/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/viewdidload()/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontroller/viewwilltransition(to:with:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontroller(_:animationcontrollerfrom:to:)-4esbs/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontroller(_:animationcontrollerfrom:to:)-9p7d7/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontroller(_:didshow:animated:)-54dgd/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontroller(_:didshow:animated:)-67m06/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontroller(_:willshow:animated:)-1hl81/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontroller(_:willshow:animated:)-1juiy/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollerdidhidemenu(_:)-2ufp3/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollerdidhidemenu(_:)-5bj9p/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollerdidrevealmenu(_:)-11kew/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollerdidrevealmenu(_:)-6umvn/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollergetmenuwidth(_:for:)-6nrbw/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollergetmenuwidth(_:for:)-xmh9/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollershouldrevealmenu(_:)-703eu/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollershouldrevealmenu(_:)-9y55z/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollerwillhidemenu(_:)-359mo/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollerwillhidemenu(_:)-8i6tb/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollerwillrevealmenu(_:)-4q697/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenucontrollerdelegate/sidemenucontrollerwillrevealmenu(_:)-79vnu/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/contenttype-swift.enum/!=(_:_:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/contenttype-swift.enum/content/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/contenttype-swift.enum/equatable-implementations/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/contenttype-swift.enum/hash(into:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/contenttype-swift.enum/hashvalue/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/contenttype-swift.enum/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/contenttype-swift.enum/init(rawvalue:)/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/contenttype-swift.enum/menu/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/contenttype-swift.enum/rawrepresentable-implementations/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/contenttype-swift.property/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/initwithidentifier:source:destination:/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenusegue/perform()/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenuversionnumber/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/sidemenuversionstring/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/uikit/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/uikit/uiviewcontroller/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/documentation/sidemenu/uikit/uiviewcontroller/sidemenucontroller/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/docs/favicon.ico
--------------------------------------------------------------------------------
/docs/favicon.svg:
--------------------------------------------------------------------------------
1 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/img/added-icon.832a5d2c.svg:
--------------------------------------------------------------------------------
1 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/img/deprecated-icon.7bf1740a.svg:
--------------------------------------------------------------------------------
1 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/img/modified-icon.efb2697d.svg:
--------------------------------------------------------------------------------
1 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 | Documentation
--------------------------------------------------------------------------------
/docs/index/availability.index:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/docs/index/availability.index
--------------------------------------------------------------------------------
/docs/index/data.mdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/docs/index/data.mdb
--------------------------------------------------------------------------------
/docs/index/navigator.index:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/touchasky/SideMenu/75875c500eda4220bcef4c97805dec4d9be1dd41/docs/index/navigator.index
--------------------------------------------------------------------------------
/docs/js/highlight-js-bash-js.702f0c5c.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | (self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[393],{8780:function(e){function s(e){const s=e.regex,t={},n={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(c);const o={className:"",begin:/\\"/},r={className:"string",begin:/'/,end:/'/},l={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},d=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],p=e.SHEBANG({binary:`(${d.join("|")})`,relevance:10}),m={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},u=["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"],h=["true","false"],b={match:/(\/[a-z._-]+)+/},f=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],g=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias"],w=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],k=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:u,literal:h,built_in:[...f,...g,"set","shopt",...w,...k]},contains:[p,e.SHEBANG(),m,l,e.HASH_COMMENT_MODE,i,b,c,o,r,t]}}e.exports=s}}]);
--------------------------------------------------------------------------------
/docs/js/highlight-js-custom-markdown.78c9f6ed.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | "use strict";(self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[642],{2003:function(e,n,a){function i(e){const n=e.regex,a={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},s={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},c={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},t={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},d=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:n.concat(/\[.+?\]\(/,d,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},g={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},r={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};g.contains.push(r),r.contains.push(g);let o=[a,l];g.contains=g.contains.concat(o),r.contains=r.contains.concat(o),o=o.concat(g,r);const b={className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:o}]}]},u={className:"quote",begin:"^>\\s+",contains:o,end:"$"};return{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[b,a,c,g,r,u,s,i,l,t]}}a.r(n),a.d(n,{default:function(){return l}});const s={begin:"",returnBegin:!0,contains:[{className:"link",begin:"doc:",end:">",excludeEnd:!0}]},c={className:"link",begin:/`{2}(?!`)/,end:/`{2}(?!`)/,excludeBegin:!0,excludeEnd:!0},t={begin:"^>\\s+[Note:|Tip:|Important:|Experiment:|Warning:]",end:"$",returnBegin:!0,contains:[{className:"quote",begin:"^>",end:"\\s+"},{className:"type",begin:"Note|Tip|Important|Experiment|Warning",end:":"},{className:"quote",begin:".*",end:"$",endsParent:!0}]},d={begin:"@",end:"[{\\)\\s]",returnBegin:!0,contains:[{className:"title",begin:"@",end:"[\\s+(]",excludeEnd:!0},{begin:":",end:"[,\\)\n\t]",excludeBegin:!0,keywords:{literal:"true false null undefined"},contains:[{className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",endsWithParent:!0,excludeEnd:!0},{className:"string",variants:[{begin:/"""/,end:/"""/},{begin:/"/,end:/"/}],endsParent:!0},{className:"link",begin:"http|https",endsWithParent:!0,excludeEnd:!0}]}]};function l(e){const n=i(e),a=n.contains.find((({className:e})=>"code"===e));a.variants=a.variants.filter((({begin:e})=>!e.includes("( {4}|\\t)")));const l=[...n.contains.filter((({className:e})=>"code"!==e)),a];return{...n,contains:[c,s,t,d,...l]}}}}]);
--------------------------------------------------------------------------------
/docs/js/highlight-js-diff-js.4db9a783.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | (self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[213],{7731:function(e){function n(e){const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}e.exports=n}}]);
--------------------------------------------------------------------------------
/docs/js/highlight-js-http-js.f78e83c2.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | (self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[878],{8937:function(e){function n(e){const n=e.regex,a="HTTP/(2|1\\.[01])",s=/[A-Za-z][A-Za-z0-9-]*/,t={className:"attribute",begin:n.concat("^",s,"(?=\\:\\s)"),starts:{contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}},i=[t,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})",end:/$/,contains:[{className:"meta",begin:a},{className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:i}},{begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:i}},e.inherit(t,{relevance:0})]}}e.exports=n}}]);
--------------------------------------------------------------------------------
/docs/js/highlight-js-java-js.4fe21e94.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | (self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[788],{8257:function(e){var n="[0-9](_*[0-9])*",a=`\\.(${n})`,s="[0-9a-fA-F](_*[0-9a-fA-F])*",t={className:"number",variants:[{begin:`(\\b(${n})((${a})|\\.)?|(${a}))[eE][+-]?(${n})[fFdD]?\\b`},{begin:`\\b(${n})((${a})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${a})[fFdD]?\\b`},{begin:`\\b(${n})[fFdD]\\b`},{begin:`\\b0[xX]((${s})\\.?|(${s})?\\.(${s}))[pP][+-]?(${n})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${s})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function i(e,n,a){return-1===a?"":e.replace(n,(s=>i(e,n,a-1)))}function r(e){e.regex;const n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",a=n+i("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),s=["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do"],r=["super","this"],c=["false","true","null"],l=["char","boolean","long","float","int","byte","short","double"],b={keyword:s,literal:c,type:l,built_in:r},o={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},_={className:"params",begin:/\(/,end:/\)/,keywords:b,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:b,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{begin:[n,/\s+/,n,/\s+/,/=/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[_,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:b,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:b,relevance:0,contains:[o,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,t,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},t,o]}}e.exports=r}}]);
--------------------------------------------------------------------------------
/docs/js/highlight-js-json-js.2a1856ba.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | (self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[82],{14:function(e){function n(e){const n={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},c={match:/[{}[\],:]/,className:"punctuation",relevance:0},a={beginKeywords:["true","false","null"].join(" ")};return{name:"JSON",contains:[n,c,e.QUOTE_STRING_MODE,a,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}e.exports=n}}]);
--------------------------------------------------------------------------------
/docs/js/highlight-js-llvm-js.26121771.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | (self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[133],{4972:function(e){function n(e){const n=e.regex,a=/([-a-zA-Z$._][\w$.-]*)/,t={className:"type",begin:/\bi\d+(?=\s|\b)/},i={className:"operator",relevance:0,begin:/=/},c={className:"punctuation",relevance:0,begin:/,/},l={className:"number",variants:[{begin:/0[xX][a-fA-F0-9]+/},{begin:/-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/}],relevance:0},r={className:"symbol",variants:[{begin:/^\s*[a-z]+:/}],relevance:0},s={className:"variable",variants:[{begin:n.concat(/%/,a)},{begin:/%\d+/},{begin:/#\d+/}]},o={className:"title",variants:[{begin:n.concat(/@/,a)},{begin:/@\d+/},{begin:n.concat(/!/,a)},{begin:n.concat(/!\d+/,a)},{begin:/!\d+/}]};return{name:"LLVM IR",keywords:"begin end true false declare define global constant private linker_private internal available_externally linkonce linkonce_odr weak weak_odr appending dllimport dllexport common default hidden protected extern_weak external thread_local zeroinitializer undef null to tail target triple datalayout volatile nuw nsw nnan ninf nsz arcp fast exact inbounds align addrspace section alias module asm sideeffect gc dbg linker_private_weak attributes blockaddress initialexec localdynamic localexec prefix unnamed_addr ccc fastcc coldcc x86_stdcallcc x86_fastcallcc arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ptx_kernel intel_ocl_bicc msp430_intrcc spir_func spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc cc c signext zeroext inreg sret nounwind noreturn noalias nocapture byval nest readnone readonly inlinehint noinline alwaysinline optsize ssp sspreq noredzone noimplicitfloat naked builtin cold nobuiltin noduplicate nonlazybind optnone returns_twice sanitize_address sanitize_memory sanitize_thread sspstrong uwtable returned type opaque eq ne slt sgt sle sge ult ugt ule uge oeq one olt ogt ole oge ord uno ueq une x acq_rel acquire alignstack atomic catch cleanup filter inteldialect max min monotonic nand personality release seq_cst singlethread umax umin unordered xchg add fadd sub fsub mul fmul udiv sdiv fdiv urem srem frem shl lshr ashr and or xor icmp fcmp phi call trunc zext sext fptrunc fpext uitofp sitofp fptoui fptosi inttoptr ptrtoint bitcast addrspacecast select va_arg ret br switch invoke unwind unreachable indirectbr landingpad resume malloc alloca free load store getelementptr extractelement insertelement shufflevector getresult extractvalue insertvalue atomicrmw cmpxchg fence argmemonly double",contains:[t,e.COMMENT(/;\s*$/,null,{relevance:0}),e.COMMENT(/;/,/$/),e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:/"/,end:/[^\\]"/}]},o,c,i,s,r,l]}}e.exports=n}}]);
--------------------------------------------------------------------------------
/docs/js/highlight-js-markdown-js.a2f456af.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | (self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[113],{1312:function(e){function n(e){const n=e.regex,a={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},c={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},s={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},t={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},d=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:n.concat(/\[.+?\]\(/,d,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},g={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},b={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};g.contains.push(b),b.contains.push(g);let o=[a,l];g.contains=g.contains.concat(o),b.contains=b.contains.concat(o),o=o.concat(g,b);const r={className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:o}]}]},u={className:"quote",begin:"^>\\s+",contains:o,end:"$"};return{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[r,a,s,g,b,u,c,i,l,t]}}e.exports=n}}]);
--------------------------------------------------------------------------------
/docs/js/highlight-js-objectivec-js.74dea052.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | (self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[637],{2446:function(e){function n(e){const n={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},_=/[a-zA-Z@][a-zA-Z0-9_]*/,i=["int","float","while","char","export","sizeof","typedef","const","struct","for","union","unsigned","long","volatile","static","bool","mutable","if","do","return","goto","void","enum","else","break","extern","asm","case","short","default","double","register","explicit","signed","typename","this","switch","continue","wchar_t","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","super","unichar","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],t=["false","true","FALSE","TRUE","nil","YES","NO","NULL"],a=["BOOL","dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],r={$pattern:_,keyword:i,literal:t,built_in:a},s={$pattern:_,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:r,illegal:"",contains:[n,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+s.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:s,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}e.exports=n}}]);
--------------------------------------------------------------------------------
/docs/js/highlight-js-python-js.60354774.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | (self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[435],{8245:function(e){function n(e){const n=e.regex,a=/[\p{XID_Start}_]\p{XID_Continue}*/u,i=["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],s=["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],t=["__debug__","Ellipsis","False","None","NotImplemented","True"],r=["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"],l={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:s,literal:t,type:r},b={className:"meta",begin:/^(>>>|\.\.\.) /},o={className:"subst",begin:/\{/,end:/\}/,keywords:l,illegal:/#/},c={begin:/\{\{/,relevance:0},d={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,b],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,b],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,b,c,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,b,c,o]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,c,o]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,c,o]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},p="[0-9](_?[0-9])*",_=`(\\b(${p}))?\\.(${p})|\\b(${p})\\.`,g={className:"number",relevance:0,variants:[{begin:`(\\b(${p})|(${_}))[eE][+-]?(${p})[jJ]?\\b`},{begin:`(${_})[jJ]?`},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${p})[jJ]\\b`}]},m={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:l,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},f={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:["self",b,g,d,e.HASH_COMMENT_MODE]}]};return o.contains=[d,g,b],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:l,illegal:/(<\/|->|\?)|=>/,contains:[b,g,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},d,m,e.HASH_COMMENT_MODE,{match:[/def/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[f]},{variants:[{match:[/class/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/class/,/\s+/,a]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[g,f,d]}]}}e.exports=n}}]);
--------------------------------------------------------------------------------
/docs/js/highlight-js-shell-js.0ad5b20f.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | (self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[176],{7874:function(s){function e(s){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}s.exports=e}}]);
--------------------------------------------------------------------------------
/docs/js/highlight-js-xml-js.0d78f903.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * This source file is part of the Swift.org open source project
3 | *
4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors
5 | * Licensed under Apache License v2.0 with Runtime Library Exception
6 | *
7 | * See https://swift.org/LICENSE.txt for license information
8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors
9 | */
10 | (self["webpackChunkswift_docc_render"]=self["webpackChunkswift_docc_render"]||[]).push([[490],{4610:function(e){function n(e){const n=e.regex,a=n.concat(/[A-Z_]/,n.optional(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),s=/[A-Za-z0-9._:-]+/,t={className:"symbol",begin:/&[a-z]+;|[0-9]+;|[a-f0-9]+;/},c={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},i=e.inherit(c,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{className:"string"}),r=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),g={endsWithParent:!0,illegal:/,relevance:0,contains:[{className:"attr",begin:s,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[t]},{begin:/'/,end:/'/,contains:[t]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin://,relevance:10,contains:[c,r,l,i,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[c,i,r,l]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},t,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:/