Full Code of patchthecode/JTAppleCalendar for AI

master 6a19c89f40b9 cached
88 files
558.4 KB
132.9k tokens
1 requests
Download .txt
Showing preview only (590K chars total). Download the full file or copy to clipboard to get everything.
Repository: patchthecode/JTAppleCalendar
Branch: master
Commit: 6a19c89f40b9
Files: 88
Total size: 558.4 KB

Directory structure:
gitextract_qqaswcdt/

├── .github/
│   └── ISSUE_TEMPLATE
├── .gitignore
├── .swiftpm/
│   └── xcode/
│       └── package.xcworkspace/
│           ├── contents.xcworkspacedata
│           └── xcshareddata/
│               └── IDEWorkspaceChecks.plist
├── .tailor.yml
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── JTAppleCalendar.podspec
├── JTAppleCalendar.xcodeproj/
│   ├── project.pbxproj
│   ├── project.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   └── xcshareddata/
│       └── xcschemes/
│           └── JTAppleCalendar.xcscheme
├── LICENSE
├── Package.swift
├── README.md
├── SampleJTAppleCalendar/
│   ├── AppDelegate.swift
│   ├── Assets.xcassets/
│   │   ├── AppIcon.appiconset/
│   │   │   └── Contents.json
│   │   ├── Contents.json
│   │   └── cube.imageset/
│   │       └── Contents.json
│   ├── Base.lproj/
│   │   └── LaunchScreen.storyboard
│   ├── Example Calendars/
│   │   ├── TestOrientationChanges.swift
│   │   ├── TestPersianCalendar.swift
│   │   ├── TestRangeSelectionViewController.swift
│   │   ├── TestViewController.swift
│   │   ├── TestYearViewViewController.swift
│   │   └── ViewController.swift
│   ├── ExampleDateCells/
│   │   ├── DateCellCreatedWithCode/
│   │   │   └── CodeCellView.swift
│   │   └── DateCellCreatedWithXIB/
│   │       ├── CellView.swift
│   │       └── CellView.xib
│   ├── ExampleSectionHeaders/
│   │   ├── HeaderAsClass/
│   │   │   ├── CodePinkSectionHeaderView.swift
│   │   │   └── CodeWhiteSectionHeaderView.swift
│   │   └── HeaderAsXibs/
│   │       ├── PinkSectionHeaderView.swift
│   │       ├── PinkSectionHeaderView.xib
│   │       ├── WhiteSectionHeaderView.swift
│   │       └── WhiteSectionHeaderView.xib
│   ├── Info.plist
│   ├── Main.storyboard
│   └── SceneDelegate.swift
├── SampleJTAppleCalendar.xcodeproj/
│   ├── project.pbxproj
│   ├── project.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   └── xcshareddata/
│       └── xcschemes/
│           └── SampleJTAppleCalendar.xcscheme
├── SampleJTAppleCalendarUITests/
│   ├── Info.plist
│   └── SampleJTAppleCalendarUITests.swift
├── Sources/
│   └── JTAppleCalendar/
│       ├── CalendarEnums.swift
│       ├── CalendarStructs.swift
│       ├── GlobalFunctionsAndExtensions.swift
│       ├── Info.plist
│       ├── JTACCollectionMonthViewDelegates.swift
│       ├── JTACCollectionYearViewDelegates.swift
│       ├── JTACDayCell.swift
│       ├── JTACInteractionMonthFunctions.swift
│       ├── JTACInteractionYearFunctions.swift
│       ├── JTACMonthActionFunctions.swift
│       ├── JTACMonthCell.swift
│       ├── JTACMonthDelegateProtocol.swift
│       ├── JTACMonthLayout.swift
│       ├── JTACMonthLayoutHorizontalCalendar.swift
│       ├── JTACMonthLayoutProtocol.swift
│       ├── JTACMonthLayoutVerticalCalendar.swift
│       ├── JTACMonthQueryFunctions.swift
│       ├── JTACMonthReusableView.swift
│       ├── JTACMonthView.swift
│       ├── JTACMonthViewProtocols.swift
│       ├── JTACScrollViewDelegates.swift
│       ├── JTACVariables.swift
│       ├── JTACYearView.swift
│       ├── JTACYearViewProtocols.swift
│       ├── JTAppleCalendar.h
│       └── PrivacyInfo.xcprivacy
├── Tests/
│   ├── JTAppleCalendarTests/
│   │   ├── JTAppleCalendarTests.swift
│   │   └── XCTestManifests.swift
│   └── LinuxMain.swift
└── docs/
    ├── adding-events/
    │   └── Adding Events.md
    ├── build-calendar/
    │   └── Build A Calendar From Scratch.md
    ├── common-elements/
    │   ├── Common Elements.md
    │   ├── configure-in-out-month-dates/
    │   │   └── Configuring inDates monthDates outDates.md
    │   ├── device-rotation/
    │   │   └── Handling Device Rotation.md
    │   └── regular-selection/
    │       └── Regular Selection.md
    ├── get-started/
    │   └── Get Started.md
    ├── headers/
    │   └── Headers.md
    ├── implementing-week-numbers/
    │   └── Implementing week numbers.md
    ├── installation/
    │   └── Installation.md
    ├── migration-guide/
    │   └── v8 Migration Guide.md
    ├── range-selection-styles/
    │   └── Range selection styles.md
    ├── scrolling-modes/
    │   └── Scrolling Modes.md
    └── switch-month-to-week-view/
        └── Switch between month-view and week-view.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/ISSUE_TEMPLATE
================================================
<!--- 
BEFORE SUBMITTING AN ISSUE: Make sure you are on the latest JTAppleCalendar (8.0.5)
If you want to continue making an issue, please fill out the required fields below.
-->

**(Required) Version Number:**

## Description

## Steps To Reproduce

## Expected Behavior

## Additional Context


================================================
FILE: .gitignore
================================================
# OS X
.DS_Store

# Xcode
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
profile
*.moved-aside
DerivedData
*.hmap
*.ipa

# Bundler
.bundle

Carthage
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
# 
# Note: if you ignore the Pods directory, make sure to uncomment
# `pod install` in .travis.yml
#
# Pods/
#xcshareddata
/.swiftlint.yml
/.swift-version
/Index
xbcbb2nb


================================================
FILE: .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
   version = "1.0">
   <FileRef
      location = "self:">
   </FileRef>
</Workspace>


================================================
FILE: .swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>IDEDidComputeMac32BitWarning</key>
	<true/>
</dict>
</plist>


================================================
FILE: .tailor.yml
================================================
except:
    - upper-camel-case


================================================
FILE: .travis.yml
================================================
language: objective-c
osx_image: xcode10
env:
  global:
  - LC_CTYPE=en_US.UTF-8
  - LANG=en_US.UTF-8
  - WORKSPACE=JTAppleCalendar.xcworkspace
  - IOS_FRAMEWORK_SCHEME="JTAppleCalendar iOSTests"
  - TVOS_FRAMEWORK_SCHEME="JTAppleCalendar tvOSTests"
  - IOS_SDK=iphonesimulator12.0
  - TVOS_SDK=appletvsimulator12.0
  - EXAMPLE_SCHEME_IOS="JTAppleCalendar iOS Example"
  matrix:
    - DESTINATION="OS=10.0,name=iPhone 7 Plus"     SCHEME="$IOS_FRAMEWORK_SCHEME"     SDK="$IOS_SDK"     RUN_TESTS="YES" BUILD_EXAMPLE="YES"  EXAMPLE_SCHEME="$EXAMPLE_SCHEME_IOS"  POD_LINT="NO"
    - DESTINATION="OS=10.0,name=Apple TV 1080p"    SCHEME="$TVOS_FRAMEWORK_SCHEME"    SDK="$TVOS_SDK"    RUN_TESTS="YES" BUILD_EXAMPLE="NO"  POD_LINT="NO"
script:
  - set -o pipefail
  - xcodebuild -version
  - xcodebuild -showsdks
 
  # Build Framework in Debug and Run Tests if specified
  - if [ $RUN_TESTS == "YES" ]; then
      xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -sdk "$SDK" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO ENABLE_TESTABILITY=YES test | xcpretty -c;
    else
      xcodebuild -workspace "$WORKSPACE" -scheme "$SCHEME" -sdk "$SDK" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO build | xcpretty -c;
    fi

  # Build Example in Debug if specified
  - if [ $BUILD_EXAMPLE == "YES" ]; then
      xcodebuild -workspace "$WORKSPACE" -scheme "$EXAMPLE_SCHEME" -sdk "$SDK" -destination "$DESTINATION" -configuration Debug ONLY_ACTIVE_ARCH=NO build | xcpretty -c;
    fi

  # Run `pod lib lint` if specified
  - if [ $POD_LINT == "YES" ]; then
      pod lib lint;
    fi


================================================
FILE: CHANGELOG.md
================================================
# Change Log
All notable changes to this project will be documented in this file.
`JTAppleCalendar` adheres to [Semantic Versioning](http://semver.org/).
#### 8.x Releases
- `8.0.0` Releases - [8.0.0](#800)|[8.0.1](#801)|[8.0.2](#802)|[8.0.3](#803)|[8.0.4](#804)|[8.0.5](#805)
#### 7.x Releases
- `7.1.0` Releases - [7.1.0](#710)|[7.1.1](#711)|[7.1.2](#712)|[7.1.3](#713)|[7.1.4](#714)|[7.1.5](#715)|[7.1.6](#716)|[7.1.7](#717)
- `7.0.0` Releases - [7.0.0](#700)|[7.0.1](#701)|[7.0.2](#702)|[7.0.3](#703)|[7.0.4](#704)|[7.0.5](#705)|[7.0.6](#706)

#### 6.x Releases
- `6.1.0` Releases - [6.1.0](#610)|[6.1.1](#611)|[6.1.2](#612)|[6.1.3](#613)|[6.1.4](#614)|[6.1.5](#615)|[6.1.6](#616)
- `6.0.0` Releases - [6.0.0](#600)|[6.0.1](#601)|[6.0.2](#602)|[6.0.3](#603)|[6.0.4](#604)|[6.0.5](#605)
- `6.0.0` Betas - [6.0.0-beta.1](#600-beta1)

#### 5.x Releases
- `5.0.0` Releases - [5.0.0](#500)|[5.0.1](#501)

#### 4.x Releases
- `4.1.0` Releases - [4.1.0](#410)|[4.1.1](#411)|[4.1.2](#412)|[4.1.3](#413)|[4.1.4](#414)
- `4.0.0` Releases - [4.0.0](#400)|[4.0.1](#401)|[4.0.2](#402)|[4.0.3](#403)

#### 3.x Releases
- `3.0.0` Releases - [3.0.0](#300)|[3.0.1](#301)

#### 2.x Releases
- `2.1.0` Releases - [2.1.0](#210)|[2.1.1](#211)|[2.1.2](#212)
- `2.0.0` Releases - [2.0.0](#200)|[2.0.1](#201)|[2.0.2](#202)|[2.0.3](#203)

#### 1.x Releases
- `1.1.x` Releases - [1.1.0](#110)| [1.1.1](#111)
- `1.0.x` Releases - [1.0.0](#100)

---
## [8.0.5](https://github.com/patchthecode/JTAppleCalendar/releases/tag/8.0.5)
- fixed latest iOS update issues (https://github.com/patchthecode/JTAppleCalendar/pull/1370)
- Respect animation parameter (https://github.com/patchthecode/JTAppleCalendar/commit/72e4ac3b5a5af8abe5c094aceefc00801044dfa4)
- Added preferred position is scoll mode is .none (https://github.com/patchthecode/JTAppleCalendar/commit/31c00c4215e5ae2ab97cd0415cdd41acaebef1f1#diff-0471218aece98915af0d556e7389b414ef1397d811c0fbf94d96ea8323bdc9a4R551-R564)
## [8.0.4](https://github.com/patchthecode/JTAppleCalendar/releases/tag/8.0.4)
- fixed warnings (https://github.com/patchthecode/JTAppleCalendar/issues/1307)
## [8.0.3](https://github.com/patchthecode/JTAppleCalendar/releases/tag/8.0.3)
- [removed side effect on allowsRangedSelection](https://github.com/patchthecode/JTAppleCalendar/issues/1122)
- Carthage tag now works again.
## [8.0.2](https://github.com/patchthecode/JTAppleCalendar/releases/tag/8.0.2)
- updated range selection . Now you can choose mode as being continous or segmented
## [8.0.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/8.0.1)
- [fixed memory leak](https://github.com/patchthecode/JTAppleCalendar/pull/1081)
## [8.0.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/8.0.0)
https://github.com/patchthecode/JTAppleCalendar/commit/
- ScrollToDate should now respect section insets
- [Some dates could not be selected](https://github.com/patchthecode/JTAppleCalendar/commit/eea5725b2fb84e998b2998cf3ba724194b1eb705)
- updated to Swift 5
- [Updated range selection logic. Every section is reated as a group](https://github.com/patchthecode/JTAppleCalendar/commit/a28f3b273d8f4d043d8ae1227e351723ed6ea7c7)
- [StrictBoundary = false together with section inset causes misaligned sections](https://github.com/patchthecode/JTAppleCalendar/commit/23347b26ccda3e65a4f387859263a386b7ef227f)
- [Single cell deletion fix](https://github.com/patchthecode/JTAppleCalendar/commit/62501f95b5b5a693ab4caa967736d1ee120d0b5d)
- [Fix crash for japanese calendar](https://github.com/patchthecode/JTAppleCalendar/commit/c06f0eec472e4ef39ac97e031ae55ec1231df1c1)
- [Animations on the calendar now looks smooth](https://github.com/patchthecode/JTAppleCalendar/commit/a131d7fd2d447a81854194e4d0198519f7ea526e)
- Can now work with app extensions
- dropped support for both iOS 8 & 9
- Added year view support
- Other enhancements

## [7.1.7](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.1.7)
- fixed broken cell size change 
- fixed rotation code
- fixed scrolling issue

## [7.1.6](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.1.6)
- Updated to swift 4.2
- small bug fixes

## [7.1.5](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.1.5)
- Fixed inset bug #419
- Fixed unowned Crash #624

- Updated by [JayT](https://github.com/patchthecode).
## [7.1.4](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.1.4)
- Fixed [programatic selection bug](https://github.com/patchthecode/JTAppleCalendar/commit/de5f0023fb6b157bddb2afa9637c7be0a1bbc636)
- Updated by [JayT](https://github.com/patchthecode).

## [7.1.3](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.1.3)
- Fixed rounding error
- Updated by [JayT](https://github.com/patchthecode).

## [7.1.2](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.1.2)
- Fixed rounding error - https://github.com/patchthecode/JTAppleCalendar/commit/c4059147f03695b66a044c16cc4f0ec67d87eae2
    - Updated by [JayT](https://github.com/patchthecode).

## [7.1.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.1.1)
- Fixed errors - https://github.com/patchthecode/JTAppleCalendar/issues/598

## [7.1.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.1.0)
- Fixed errors.
- Made library compatible with iOS8
- CellState now informs if library made programatic vs user selected tap on cell

## [7.0.6](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.0.6)
- [bug fix - accidentaly introduced in 7.0.5](https://github.com/patchthecode/JTAppleCalendar/commit/7f60c8c5b2265954ad0041ac4f150c6f4862cdb7)
- Other code cleanup
  - Updated by [JayT](https://github.com/patchthecode).
  - Updated by [mayurdzk](https://github.com/mayurdzk).
  - Updated by [mgurreta](https://github.com/mgurreta).

## [7.0.5](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.0.5)
- [bug fix](https://github.com/patchthecode/JTAppleCalendar/commit/bcbb2bc5696cb2f15a6e87e1023c3a9cdf3dfdff)
- [added anchor dates on reload](https://github.com/patchthecode/JTAppleCalendar/commit/b81158dfd7600e1d31143be4fbfba32af2187253)
   - Sometimes on reload you do not want to see scrolling. Anchor dates solved that problem.
- [Fixed double reloading of calendar](https://github.com/patchthecode/JTAppleCalendar/commit/05c6f518de9484d19faba2ae2f7fba2ffb8e9cba)
- [Fixed crash when resizing from zero height/width](https://github.com/patchthecode/JTAppleCalendar/commit/765d919bb91fa3817d79d78f735bee0b720f3ba3)
- [Added function to get month data](https://github.com/patchthecode/JTAppleCalendar/commit/502d53d7a815f93e099bb2b81b4c4b6e125b26bb)

## [7.0.4](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.0.4)
- [Function signature change to fix issue on shouldSelect/shouldDeselect function](https://github.com/patchthecode/JTAppleCalendar/commit/64b2bd1aa8ecab97c8a2bc92020724e97702887a)
- Reverted unavailability of isSelected on date cells.

## [7.0.3](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.0.3)
- [Changed order in which delegates are called](https://github.com/patchthecode/JTAppleCalendar/issues/431)
- [Fixed recursive loop error](https://github.com/patchthecode/JTAppleCalendar/commit/e95ec9806ef932a619329b3f40062ad125b4a17e)
- [Potential crash fix. Incorrectly used statdard function instead of custom](https://github.com/patchthecode/JTAppleCalendar/commit/3cbfab2382ccb7168a5c22e0081504f43d0d76e6)
- [ShouldSelect should be called on programatic selection](https://github.com/patchthecode/JTAppleCalendar/commit/4f528d17842848bf3cca4b80ce2fb89958caf614)

## [7.0.2](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.0.2)
- [Fixed visible scrolling issue](https://github.com/patchthecode/JTAppleCalendar/issues/263)
- Added check if dev forcefully calls layoutIfNeeded(). Layout should be re-created.

## [7.0.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.0.1)
- Quickfix for Charthage users. Correct header file was included. 

## [7.0.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/7.0.0)
- Massive changes and minor bug fixes 
   - JTAppleCalendar is now a UICollectionView subclass and can be designed on interface builder.
   - Months sections distance is now configurable
   - [Scroll to date can now be done with an offset](https://github.com/patchthecode/JTAppleCalendar/issues/332)
   - [Decoration-views added](https://github.com/patchthecode/JTAppleCalendar/issues/296). You can now design the calendar with whatever view you choose
   - Performance load time of dates has been decreased
   - [Visible fixed](https://github.com/patchthecode/JTAppleCalendar/issues/263)
   
## [6.1.6](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.1.6)
- Fixed - [Memory leak](https://github.com/patchthecode/JTAppleCalendar/issues/333)
- Fixed - [Over scrolling in vertical mode when scrolled to last date](https://github.com/patchthecode/JTAppleCalendar/issues/344)

## [6.1.5](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.1.5)
- Fixed - [Crash on reloading items](https://github.com/patchthecode/JTAppleCalendar/issues/327)

## [6.1.4](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.1.4)
- Fixed - [Crash in speific regions](https://github.com/patchthecode/JTAppleCalendar/issues/323)
- Fixed - [Scroll to date delegate not called. New introduced bug](https://github.com/patchthecode/JTAppleCalendar/issues/325)

## [6.1.3](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.1.3)
- Fixed - [Incorrect selected position](https://github.com/patchthecode/JTAppleCalendar/issues/280) when using range selection.
- Behavior change - Changing the frame size no longer automatically reloads the calendar. This should explicitly be done by the developer.
- Fixed error - [Reloading cells asynchronously](https://github.com/patchthecode/JTAppleCalendar/issues/304) which caused two errors [here](https://github.com/patchthecode/JTAppleCalendar/issues/304) and [here](https://github.com/patchthecode/JTAppleCalendar/issues/277) - JayT
- Fixed error - [Last saved offset fixed programatically](https://github.com/patchthecode/JTAppleCalendar/pull/276) - by [KyleConway](https://github.com/KyleConway)
- Fixed error - [visibleDates() function should exclude headers](https://github.com/patchthecode/JTAppleCalendar/pull/278) - by [KyleConway](https://github.com/KyleConway)

## [6.1.2](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.1.2)
- Fixed error - deselect all dates should work as expected
- Fixed error - Introduced in last version. DidScroll delegate was not being called.
- Fixed error - Vertical calendar was not being displayed correctly in some configurations.
  - Updated by [JayT](https://github.com/patchthecode).

## [6.1.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.1.1)
- Documentation updates

## [6.1.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.1.0)
- [Fixed error - triggerScrollToDateDelegate was not called](https://github.com/patchthecode/JTAppleCalendar/issues/235)
- [Fixed error introduced in last version - scroll To date broke](https://github.com/patchthecode/JTAppleCalendar/issues/223)
- Performance updates
- Behavior change - [Library will now honour time zones based on Calenda() instance](https://github.com/patchthecode/JTAppleCalendar/issues/222)
  - Updated by [JayT](https://github.com/patchthecode).

## [6.0.5](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.0.5)
- [Floating point error fix](https://github.com/patchthecode/JTAppleCalendar/issues/211)
  - Updated by [JayT](https://github.com/patchthecode).

## [6.0.4](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.0.4)
- [Fixed wrong date bug](https://github.com/patchthecode/JTAppleCalendar/commit/1689586c70e2fbd9785794c4fc8c5f094403e98f)
  - Updated by [JayT](https://github.com/patchthecode).

## [6.0.3](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.0.3)
- [Fixed wrong date bug](https://github.com/patchthecode/JTAppleCalendar/issues/210)
- Fixed Scrolling issues with new segment code
  - Updated by [JayT](https://github.com/patchthecode).

## [6.0.2](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.0.2)
- Fixed error: [Cells are not updated properly because of pre-fetching](https://github.com/patchthecode/JTAppleCalendar/issues/196)
- New Feature: Gesture functionality added
- Fixed error: [Fix for vertical direction](https://github.com/patchthecode/JTAppleCalendar/commit/4d48c594e00864dbe470dc64dbfd2e8790dbe783)
- Fixed error: [Vertical cell size](https://github.com/patchthecode/JTAppleCalendar/commit/8e85b784bfe5ff8669157f42aee17aaee99a9429)
- Fixed error: [Reload data completionhandler does not work when view is first loaded](https://github.com/patchthecode/JTAppleCalendar/commit/da0a0ad9b22b6e50fa2feec644afaa6902ad4a5e)
  - Updated by [JayT](https://github.com/patchthecode).

## [6.0.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.0.1)
- Fixed error: [Left over artifacts](https://github.com/patchthecode/JTAppleCalendar/commit/f5be1e1c281cb08337ede276403311b3ee4a4e9f)
- Fixed error: [Potential infinite loop on scrollViewDidEnd](https://github.com/patchthecode/JTAppleCalendar/commit/a115ff9301118fd93ab8ed960ba33ebeb28b8f7b)
- Update: [Changed variable names for consistency](https://github.com/patchthecode/JTAppleCalendar/commit/3eca0fddc79a6425c146b65aabd2ff31b0c0d05d)
- Update: [Added functionality to flip calendar horizontally for ethnic calendars](https://github.com/patchthecode/JTAppleCalendar/commit/a991b898a2ce5bc3a678bcf0b43a8e381e56a840)
- Update: `ConfigureCaneldar` function signature has changed. 
- Fixed error: [XCode 8.1 has a bug](https://github.com/patchthecode/JTAppleCalendar/commit/97363897006877b62ebfb357cb98160a1b5b291b). So a work around was implemented
  - Updated by [JayT](https://github.com/patchthecode).

## [6.0.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.0.0)
- Added functionality to get dateCell by CGPoint
  - Updated by [JayT](https://github.com/patchthecode).

## [6.0.0-beta.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/6.0.0-beta.1)
- Made function names more standardised
- Added ability enable/disable in-dates/out-dates generation
- Added ability to choose buldle for xib files
  - Updated by [JayT](https://github.com/patchthecode).

## [5.0.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/5.0.1)
- Bug Fix: [Crash on negative scroll in vertical mode](https://github.com/patchthecode/JTAppleCalendar/issues/115)
  - Updated by [JayT](https://github.com/patchthecode).

## [5.0.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/5.0.0)
- Bug Fix: [Double calling of delegate method on finger lift](https://github.com/patchthecode/JTAppleCalendar/issues/102)
- Bug Fix: [Delegate call fixed when user scrolls to top using status bar](https://github.com/patchthecode/JTAppleCalendar/issues/89)
- Bug Fix: [Crash when calenader switched to single row](https://github.com/patchthecode/JTAppleCalendar/issues/111)
- Update: Added range selection
- Update: [Deprecations](https://github.com/patchthecode/JTAppleCalendar/wiki/Message-to-testers-working-on-master-branch)
- Update: JTApplecalendar now works for tvOS
  - Updated by [JayT](https://github.com/patchthecode).

## [4.1.4](https://github.com/patchthecode/JTAppleCalendar/releases/tag/4.1.4)
- Bug Fixes: [Scroll to section bug introduced](https://github.com/patchthecode/JTAppleCalendar/issues/96)
  - Updated by [JayT](https://github.com/patchthecode).

## [4.1.3](https://github.com/patchthecode/JTAppleCalendar/releases/tag/4.1.3)
- Added missing functionality: To give dev a chance to clean up the cell before being reused.
- Added missing functionality: Headers can now be registered using classes.
- Bug Fixes: [Crash when using multiplel instance of JTAppleCalendar](https://github.com/patchthecode/JTAppleCalendar/issues/75)
  - Updated by [JayT](https://github.com/patchthecode).

## [4.1.2](https://github.com/patchthecode/JTAppleCalendar/releases/tag/4.1.1)
- Fixed issue: removed forced unwrapping of date on deselection. [Caused crash](https://github.com/patchthecode/JTAppleCalendar/issues/69)
- Fixed issue: on reloading index paths, removed dupicates. Caused visual glitch.
  - Updated by [JayT](https://github.com/patchthecode).

## [4.1.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/4.1.1)
- Fixed issue: Various bug fixes and enhancements
   - [Days of the week can now be used in calculations]()
   - [Cells cannot be decelected sometimes](https://github.com/patchthecode/JTAppleCalendar/issues/67)
   - [Bug on multiple selection](https://github.com/patchthecode/JTAppleCalendar/issues/64)
   - [Bug when 2 months are displayed](https://github.com/patchthecode/JTAppleCalendar/issues/63)
   - performance fix
- Added functoin to generate dates and select date range
  - Updated by [JayT](https://github.com/patchthecode).

## [4.1.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/4.1.0)
- Feature Added: Devs can now configure the width and height of a dateCell.
- Fixed issue: Synchonization issues on calendar start
- Fixed issue: Fixed layout [Bug](https://github.com/patchthecode/JTAppleCalendar/issues/57)
- performance fixes
  - Updated by [JayT](https://github.com/patchthecode).

## [4.0.3](https://github.com/patchthecode/JTAppleCalendar/releases/tag/4.0.3)
- Fixed issue: Performance fixes - Library should work smooth on an iPhone 4s
- Fixed issue: Scroll to segments were not calling completion handlers
- Fixed issue: Added fix for device orientation
- Added missing functionality: Devs can now register cells by type
  - Updated by [JayT](https://github.com/patchthecode).
  - Fix added by: [Baptiste Sansierra](https://github.com/patchthecode/JTAppleCalendar/pull/48)
  - Functionality added by: [Encero](https://github.com/patchthecode/JTAppleCalendar/pull/49)

## [4.0.2](https://github.com/patchthecode/JTAppleCalendar/releases/tag/4.0.2)
- Fixed issue: Layout issue in 4.0.1. 
  - Updated by [JayT](https://github.com/patchthecode).

## [4.0.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/4.0.1)
- Fixed issue: Performance fixes 
- Fixed issue: Layout issues
  - Updated by [JayT](https://github.com/patchthecode).

## [4.0.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/4.0.0)
- Fixed issue: Performance fixes 
- Fixed issue: Changed way numberOfRows is configured. New way solves concurrency issues
  - Updated by [JayT](https://github.com/patchthecode).

## [3.0.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/3.0.1)
- Fixed issue: Cell Inset was borken with 3.0.0 release
- Fixed issue: canSelectDate always returned true. 
  - Updated by [JayT](https://github.com/patchthecode).
  
## [3.0.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/3.0.0)
- Fixed: Issue [#20](https://github.com/patchthecode/JTAppleCalendar/issues/20). Layout should be set to needsUpdate when firstDayOfWeek changes
- Update: Issue [#19](https://github.com/patchthecode/JTAppleCalendar/issues/19). DidScroll delegate will now only get called when user scolls. This makes clear system actions vs user actions.
- Fixed: Issue [#18](https://github.com/patchthecode/JTAppleCalendar/issues/18). Selecting out-dates now also select their date counterparts.
- Update: Issue [#16](https://github.com/patchthecode/JTAppleCalendar/issues/16). Headers are now added to the project.
  - Updated by [JayT](https://github.com/patchthecode).

## [2.1.2](https://github.com/patchthecode/JTAppleCalendar/releases/tag/2.1.2)
- Fixed: When selecting date with delegates disabled, calendar shifted to month offset. This was due to the newly added smooth scrolling feature
- Update: The CellState for a date now returns more information. It now returns (added to its previous info) a date and a day.
- Update: New function added so user can query the visible dateCells on the screen: cellStatusForDateAtRow(_: Int, column: Int)
- Update: With paging disbled, the scrolling now snaps to day
  - Updated by [JayT](https://github.com/patchthecode).

## [2.1.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/2.1.1)
- Crash on using NSDate() without a formatter for date ranges [Issue 11](https://github.com/patchthecode/JTAppleCalendar/issues/11)
  - Updated by [JayT](https://github.com/patchthecode).

## [2.1.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/2.1.0)
- Calendar paging is now an option
- Scroll to date method will now scroll to a date if paging is set to off. [Issue 10](https://github.com/patchthecode/JTAppleCalendar/issues/10)
  - Updated by [JayT](https://github.com/patchthecode).


## [2.0.3](https://github.com/patchthecode/JTAppleCalendar/releases/tag/2.0.3)
- Fixed visual bug. Now there should be no flickering when scrolling dates.
- Updated sample code 
  - Updated by [JayT](https://github.com/patchthecode).


## [2.0.2](https://github.com/patchthecode/JTAppleCalendar/releases/tag/2.0.2)
- Added functionality to not trigger delegates on selecting dates
- Updated sample code 
  - Updated by [JayT](https://github.com/patchthecode).


## [2.0.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/2.0.0)
- Added function to handle date selection in Arrays
  - Updated by [JayT](https://github.com/patchthecode).


## [2.0.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/2.0.0)
Released on 2016-04-5. All issues associated with this milestone can be found using this 
[filter](https://github.com/patchthecode/JTAppleCalendar/milestones/Obvious%20things%20that%20were%20missed%20in%20Initial%20Coding)

#### Updated
- fixed date selection method. 
- made didSelectDate function return an optional object. The value can be nil if the selected date is off the screen.
  - Updated by [JayT](https://github.com/patchthecode).


## [1.1.1](https://github.com/patchthecode/JTAppleCalendar/releases/tag/1.1.1)
Released on 2016-03-20.

#### Updated
- Updated packages
- Updated by [JayT](https://github.com/patchthecode).


## [1.1.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/1.1.0)
Released on 2016-03-28.

#### Updated
- Added functionality to query current date section
- Calendar-view now reloads on datasource change
  - Updated by [JayT](https://github.com/patchthecode).


## [1.0.0](https://github.com/patchthecode/JTAppleCalendar/releases/tag/1.0.0)
Released on 2016-03-27.

#### Added
- Initial release of JTAppleCalendar.
  - Added by [JayT](https://github.com/patchthecode).


================================================
FILE: CONTRIBUTING.md
================================================
> [!CAUTION]
> This document has not been written yet. Please consider submitting a PR to help out


================================================
FILE: JTAppleCalendar.podspec
================================================
Pod::Spec.new do |s|
  s.name             = "JTAppleCalendar"
  s.version          = "8.0.5"
  s.summary          = "The Unofficial Swift Apple Calendar Library. View. Control. for iOS & tvOS"
  s.description      = <<-DESC
A highly configurable Apple calendar control. Contains features like boundary dates, month and week view. Very light weight.
                       DESC

  s.homepage         = "https://patchthecode.com"
  # s.screenshots    = "https://patchthecode.github.io/"
  s.license          = 'MIT'
  s.author           = { "JayT" => "patchthecode@gmail.com" }
  s.source           = { :git => "https://github.com/patchthecode/JTAppleCalendar.git", :tag => s.version.to_s }

  s.swift_version    = '5'

  s.ios.deployment_target = '11.0'
  s.tvos.deployment_target = '11.0'

  s.source_files = 'Sources/JTAppleCalendar/*.swift'
  s.resource_bundles = {'JTAppleCalendar' => ['Sources/JTAppleCalendar/PrivacyInfo.xcprivacy']}
end



================================================
FILE: JTAppleCalendar.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 50;
	objects = {

/* Begin PBXBuildFile section */
		3B8DA771233A359100A95526 /* JTACMonthReusableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA758233A358F00A95526 /* JTACMonthReusableView.swift */; };
		3B8DA772233A359100A95526 /* JTACYearViewProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA759233A358F00A95526 /* JTACYearViewProtocols.swift */; };
		3B8DA773233A359100A95526 /* JTACMonthView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA75A233A359000A95526 /* JTACMonthView.swift */; };
		3B8DA774233A359100A95526 /* CalendarStructs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA75B233A359000A95526 /* CalendarStructs.swift */; };
		3B8DA775233A359100A95526 /* JTACMonthActionFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA75C233A359000A95526 /* JTACMonthActionFunctions.swift */; };
		3B8DA776233A359100A95526 /* JTACMonthLayoutProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA75D233A359000A95526 /* JTACMonthLayoutProtocol.swift */; };
		3B8DA777233A359100A95526 /* JTACInteractionYearFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA75E233A359000A95526 /* JTACInteractionYearFunctions.swift */; };
		3B8DA778233A359100A95526 /* JTACYearView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA75F233A359000A95526 /* JTACYearView.swift */; };
		3B8DA779233A359100A95526 /* JTAppleCalendar.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B8DA760233A359000A95526 /* JTAppleCalendar.h */; settings = {ATTRIBUTES = (Public, ); }; };
		3B8DA77A233A359100A95526 /* JTACMonthLayoutVerticalCalendar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA761233A359000A95526 /* JTACMonthLayoutVerticalCalendar.swift */; };
		3B8DA77B233A359100A95526 /* JTACMonthDelegateProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA762233A359000A95526 /* JTACMonthDelegateProtocol.swift */; };
		3B8DA77C233A359100A95526 /* JTACDayCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA763233A359000A95526 /* JTACDayCell.swift */; };
		3B8DA77D233A359100A95526 /* JTACMonthLayoutHorizontalCalendar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA764233A359000A95526 /* JTACMonthLayoutHorizontalCalendar.swift */; };
		3B8DA77E233A359100A95526 /* JTACMonthViewProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA765233A359000A95526 /* JTACMonthViewProtocols.swift */; };
		3B8DA77F233A359100A95526 /* JTACCollectionMonthViewDelegates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA766233A359000A95526 /* JTACCollectionMonthViewDelegates.swift */; };
		3B8DA780233A359100A95526 /* GlobalFunctionsAndExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA767233A359000A95526 /* GlobalFunctionsAndExtensions.swift */; };
		3B8DA781233A359100A95526 /* JTACInteractionMonthFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA768233A359000A95526 /* JTACInteractionMonthFunctions.swift */; };
		3B8DA782233A359100A95526 /* JTACScrollViewDelegates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA769233A359000A95526 /* JTACScrollViewDelegates.swift */; };
		3B8DA784233A359100A95526 /* JTACCollectionYearViewDelegates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA76B233A359000A95526 /* JTACCollectionYearViewDelegates.swift */; };
		3B8DA785233A359100A95526 /* JTACMonthCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA76C233A359000A95526 /* JTACMonthCell.swift */; };
		3B8DA786233A359100A95526 /* JTACMonthLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA76D233A359000A95526 /* JTACMonthLayout.swift */; };
		3B8DA787233A359100A95526 /* CalendarEnums.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA76E233A359000A95526 /* CalendarEnums.swift */; };
		3B8DA788233A359100A95526 /* JTACMonthQueryFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA76F233A359000A95526 /* JTACMonthQueryFunctions.swift */; };
		3B8DA789233A359100A95526 /* JTACVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8DA770233A359100A95526 /* JTACVariables.swift */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		3B8DA758233A358F00A95526 /* JTACMonthReusableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACMonthReusableView.swift; path = Sources/JTAppleCalendar/JTACMonthReusableView.swift; sourceTree = SOURCE_ROOT; };
		3B8DA759233A358F00A95526 /* JTACYearViewProtocols.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACYearViewProtocols.swift; path = Sources/JTAppleCalendar/JTACYearViewProtocols.swift; sourceTree = SOURCE_ROOT; };
		3B8DA75A233A359000A95526 /* JTACMonthView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACMonthView.swift; path = Sources/JTAppleCalendar/JTACMonthView.swift; sourceTree = SOURCE_ROOT; };
		3B8DA75B233A359000A95526 /* CalendarStructs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CalendarStructs.swift; path = Sources/JTAppleCalendar/CalendarStructs.swift; sourceTree = SOURCE_ROOT; };
		3B8DA75C233A359000A95526 /* JTACMonthActionFunctions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACMonthActionFunctions.swift; path = Sources/JTAppleCalendar/JTACMonthActionFunctions.swift; sourceTree = SOURCE_ROOT; };
		3B8DA75D233A359000A95526 /* JTACMonthLayoutProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACMonthLayoutProtocol.swift; path = Sources/JTAppleCalendar/JTACMonthLayoutProtocol.swift; sourceTree = SOURCE_ROOT; };
		3B8DA75E233A359000A95526 /* JTACInteractionYearFunctions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACInteractionYearFunctions.swift; path = Sources/JTAppleCalendar/JTACInteractionYearFunctions.swift; sourceTree = SOURCE_ROOT; };
		3B8DA75F233A359000A95526 /* JTACYearView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACYearView.swift; path = Sources/JTAppleCalendar/JTACYearView.swift; sourceTree = SOURCE_ROOT; };
		3B8DA760233A359000A95526 /* JTAppleCalendar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JTAppleCalendar.h; path = Sources/JTAppleCalendar/JTAppleCalendar.h; sourceTree = SOURCE_ROOT; };
		3B8DA761233A359000A95526 /* JTACMonthLayoutVerticalCalendar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACMonthLayoutVerticalCalendar.swift; path = Sources/JTAppleCalendar/JTACMonthLayoutVerticalCalendar.swift; sourceTree = SOURCE_ROOT; };
		3B8DA762233A359000A95526 /* JTACMonthDelegateProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACMonthDelegateProtocol.swift; path = Sources/JTAppleCalendar/JTACMonthDelegateProtocol.swift; sourceTree = SOURCE_ROOT; };
		3B8DA763233A359000A95526 /* JTACDayCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACDayCell.swift; path = Sources/JTAppleCalendar/JTACDayCell.swift; sourceTree = SOURCE_ROOT; };
		3B8DA764233A359000A95526 /* JTACMonthLayoutHorizontalCalendar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACMonthLayoutHorizontalCalendar.swift; path = Sources/JTAppleCalendar/JTACMonthLayoutHorizontalCalendar.swift; sourceTree = SOURCE_ROOT; };
		3B8DA765233A359000A95526 /* JTACMonthViewProtocols.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACMonthViewProtocols.swift; path = Sources/JTAppleCalendar/JTACMonthViewProtocols.swift; sourceTree = SOURCE_ROOT; };
		3B8DA766233A359000A95526 /* JTACCollectionMonthViewDelegates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACCollectionMonthViewDelegates.swift; path = Sources/JTAppleCalendar/JTACCollectionMonthViewDelegates.swift; sourceTree = SOURCE_ROOT; };
		3B8DA767233A359000A95526 /* GlobalFunctionsAndExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = GlobalFunctionsAndExtensions.swift; path = Sources/JTAppleCalendar/GlobalFunctionsAndExtensions.swift; sourceTree = SOURCE_ROOT; };
		3B8DA768233A359000A95526 /* JTACInteractionMonthFunctions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACInteractionMonthFunctions.swift; path = Sources/JTAppleCalendar/JTACInteractionMonthFunctions.swift; sourceTree = SOURCE_ROOT; };
		3B8DA769233A359000A95526 /* JTACScrollViewDelegates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACScrollViewDelegates.swift; path = Sources/JTAppleCalendar/JTACScrollViewDelegates.swift; sourceTree = SOURCE_ROOT; };
		3B8DA76A233A359000A95526 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; name = Info.plist; path = Sources/JTAppleCalendar/Info.plist; sourceTree = SOURCE_ROOT; };
		3B8DA76B233A359000A95526 /* JTACCollectionYearViewDelegates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACCollectionYearViewDelegates.swift; path = Sources/JTAppleCalendar/JTACCollectionYearViewDelegates.swift; sourceTree = SOURCE_ROOT; };
		3B8DA76C233A359000A95526 /* JTACMonthCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACMonthCell.swift; path = Sources/JTAppleCalendar/JTACMonthCell.swift; sourceTree = SOURCE_ROOT; };
		3B8DA76D233A359000A95526 /* JTACMonthLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACMonthLayout.swift; path = Sources/JTAppleCalendar/JTACMonthLayout.swift; sourceTree = SOURCE_ROOT; };
		3B8DA76E233A359000A95526 /* CalendarEnums.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CalendarEnums.swift; path = Sources/JTAppleCalendar/CalendarEnums.swift; sourceTree = SOURCE_ROOT; };
		3B8DA76F233A359000A95526 /* JTACMonthQueryFunctions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACMonthQueryFunctions.swift; path = Sources/JTAppleCalendar/JTACMonthQueryFunctions.swift; sourceTree = SOURCE_ROOT; };
		3B8DA770233A359100A95526 /* JTACVariables.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JTACVariables.swift; path = Sources/JTAppleCalendar/JTACVariables.swift; sourceTree = SOURCE_ROOT; };
		3BE7994F233A346B00A37CA8 /* JTAppleCalendar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JTAppleCalendar.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		3BE7994C233A346B00A37CA8 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		3BE79945233A346B00A37CA8 = {
			isa = PBXGroup;
			children = (
				3BE79951233A346B00A37CA8 /* JTAppleCalendar */,
				3BE79950233A346B00A37CA8 /* Products */,
			);
			sourceTree = "<group>";
		};
		3BE79950233A346B00A37CA8 /* Products */ = {
			isa = PBXGroup;
			children = (
				3BE7994F233A346B00A37CA8 /* JTAppleCalendar.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		3BE79951233A346B00A37CA8 /* JTAppleCalendar */ = {
			isa = PBXGroup;
			children = (
				3B8DA76E233A359000A95526 /* CalendarEnums.swift */,
				3B8DA75B233A359000A95526 /* CalendarStructs.swift */,
				3B8DA767233A359000A95526 /* GlobalFunctionsAndExtensions.swift */,
				3B8DA76A233A359000A95526 /* Info.plist */,
				3B8DA766233A359000A95526 /* JTACCollectionMonthViewDelegates.swift */,
				3B8DA76B233A359000A95526 /* JTACCollectionYearViewDelegates.swift */,
				3B8DA763233A359000A95526 /* JTACDayCell.swift */,
				3B8DA768233A359000A95526 /* JTACInteractionMonthFunctions.swift */,
				3B8DA75E233A359000A95526 /* JTACInteractionYearFunctions.swift */,
				3B8DA75C233A359000A95526 /* JTACMonthActionFunctions.swift */,
				3B8DA76C233A359000A95526 /* JTACMonthCell.swift */,
				3B8DA762233A359000A95526 /* JTACMonthDelegateProtocol.swift */,
				3B8DA76D233A359000A95526 /* JTACMonthLayout.swift */,
				3B8DA764233A359000A95526 /* JTACMonthLayoutHorizontalCalendar.swift */,
				3B8DA75D233A359000A95526 /* JTACMonthLayoutProtocol.swift */,
				3B8DA761233A359000A95526 /* JTACMonthLayoutVerticalCalendar.swift */,
				3B8DA76F233A359000A95526 /* JTACMonthQueryFunctions.swift */,
				3B8DA758233A358F00A95526 /* JTACMonthReusableView.swift */,
				3B8DA75A233A359000A95526 /* JTACMonthView.swift */,
				3B8DA765233A359000A95526 /* JTACMonthViewProtocols.swift */,
				3B8DA769233A359000A95526 /* JTACScrollViewDelegates.swift */,
				3B8DA770233A359100A95526 /* JTACVariables.swift */,
				3B8DA75F233A359000A95526 /* JTACYearView.swift */,
				3B8DA759233A358F00A95526 /* JTACYearViewProtocols.swift */,
				3B8DA760233A359000A95526 /* JTAppleCalendar.h */,
			);
			path = JTAppleCalendar;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		3BE7994A233A346B00A37CA8 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				3B8DA779233A359100A95526 /* JTAppleCalendar.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		3BE7994E233A346B00A37CA8 /* JTAppleCalendar */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 3BE79957233A346B00A37CA8 /* Build configuration list for PBXNativeTarget "JTAppleCalendar" */;
			buildPhases = (
				3BE7994A233A346B00A37CA8 /* Headers */,
				3BE7994B233A346B00A37CA8 /* Sources */,
				3BE7994C233A346B00A37CA8 /* Frameworks */,
				3BE7994D233A346B00A37CA8 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = JTAppleCalendar;
			productName = JTAppleCalendar;
			productReference = 3BE7994F233A346B00A37CA8 /* JTAppleCalendar.framework */;
			productType = "com.apple.product-type.framework";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		3BE79946233A346B00A37CA8 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 1100;
				ORGANIZATIONNAME = "Arnaud Boudou";
				TargetAttributes = {
					3BE7994E233A346B00A37CA8 = {
						CreatedOnToolsVersion = 11.0;
						LastSwiftMigration = 1100;
					};
				};
			};
			buildConfigurationList = 3BE79949233A346B00A37CA8 /* Build configuration list for PBXProject "JTAppleCalendar" */;
			compatibilityVersion = "Xcode 9.3";
			developmentRegion = en;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 3BE79945233A346B00A37CA8;
			productRefGroup = 3BE79950233A346B00A37CA8 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				3BE7994E233A346B00A37CA8 /* JTAppleCalendar */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		3BE7994D233A346B00A37CA8 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		3BE7994B233A346B00A37CA8 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				3B8DA77D233A359100A95526 /* JTACMonthLayoutHorizontalCalendar.swift in Sources */,
				3B8DA787233A359100A95526 /* CalendarEnums.swift in Sources */,
				3B8DA775233A359100A95526 /* JTACMonthActionFunctions.swift in Sources */,
				3B8DA784233A359100A95526 /* JTACCollectionYearViewDelegates.swift in Sources */,
				3B8DA77E233A359100A95526 /* JTACMonthViewProtocols.swift in Sources */,
				3B8DA789233A359100A95526 /* JTACVariables.swift in Sources */,
				3B8DA788233A359100A95526 /* JTACMonthQueryFunctions.swift in Sources */,
				3B8DA771233A359100A95526 /* JTACMonthReusableView.swift in Sources */,
				3B8DA777233A359100A95526 /* JTACInteractionYearFunctions.swift in Sources */,
				3B8DA782233A359100A95526 /* JTACScrollViewDelegates.swift in Sources */,
				3B8DA77C233A359100A95526 /* JTACDayCell.swift in Sources */,
				3B8DA778233A359100A95526 /* JTACYearView.swift in Sources */,
				3B8DA781233A359100A95526 /* JTACInteractionMonthFunctions.swift in Sources */,
				3B8DA786233A359100A95526 /* JTACMonthLayout.swift in Sources */,
				3B8DA773233A359100A95526 /* JTACMonthView.swift in Sources */,
				3B8DA785233A359100A95526 /* JTACMonthCell.swift in Sources */,
				3B8DA77F233A359100A95526 /* JTACCollectionMonthViewDelegates.swift in Sources */,
				3B8DA77A233A359100A95526 /* JTACMonthLayoutVerticalCalendar.swift in Sources */,
				3B8DA774233A359100A95526 /* CalendarStructs.swift in Sources */,
				3B8DA776233A359100A95526 /* JTACMonthLayoutProtocol.swift in Sources */,
				3B8DA772233A359100A95526 /* JTACYearViewProtocols.swift in Sources */,
				3B8DA77B233A359100A95526 /* JTACMonthDelegateProtocol.swift in Sources */,
				3B8DA780233A359100A95526 /* GlobalFunctionsAndExtensions.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		3BE79955233A346B00A37CA8 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_ENABLE_OBJC_WEAK = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 11.0;
				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
				MTL_FAST_MATH = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Debug;
		};
		3BE79956233A346B00A37CA8 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_ENABLE_OBJC_WEAK = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 11.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				MTL_FAST_MATH = YES;
				SDKROOT = iphoneos;
				SWIFT_COMPILATION_MODE = wholemodule;
				SWIFT_OPTIMIZATION_LEVEL = "-O";
				VALIDATE_PRODUCT = YES;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Release;
		};
		3BE79958233A346B00A37CA8 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				CODE_SIGN_STYLE = Manual;
				DEFINES_MODULE = YES;
				DEVELOPMENT_TEAM = "";
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = "$(SRCROOT)/Sources/JTAppleCalendar/Info.plist";
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				IPHONEOS_DEPLOYMENT_TARGET = 11.0;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
					"@loader_path/Frameworks",
				);
				PRODUCT_BUNDLE_IDENTIFIER = com.patchthecode.JTAppleCalendar;
				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
				PROVISIONING_PROFILE_SPECIFIER = "";
				SKIP_INSTALL = YES;
				SUPPORTS_MACCATALYST = NO;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 5.0;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		3BE79959233A346B00A37CA8 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				CODE_SIGN_STYLE = Manual;
				DEFINES_MODULE = YES;
				DEVELOPMENT_TEAM = "";
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				INFOPLIST_FILE = "$(SRCROOT)/Sources/JTAppleCalendar/Info.plist";
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				IPHONEOS_DEPLOYMENT_TARGET = 11.0;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
					"@loader_path/Frameworks",
				);
				PRODUCT_BUNDLE_IDENTIFIER = com.patchthecode.JTAppleCalendar;
				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
				PROVISIONING_PROFILE_SPECIFIER = "";
				SKIP_INSTALL = YES;
				SUPPORTS_MACCATALYST = NO;
				SWIFT_VERSION = 5.0;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		3BE79949233A346B00A37CA8 /* Build configuration list for PBXProject "JTAppleCalendar" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				3BE79955233A346B00A37CA8 /* Debug */,
				3BE79956233A346B00A37CA8 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		3BE79957233A346B00A37CA8 /* Build configuration list for PBXNativeTarget "JTAppleCalendar" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				3BE79958233A346B00A37CA8 /* Debug */,
				3BE79959233A346B00A37CA8 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 3BE79946233A346B00A37CA8 /* Project object */;
}


================================================
FILE: JTAppleCalendar.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
   version = "1.0">
   <FileRef
      location = "self:JTAppleCalendar.xcodeproj">
   </FileRef>
</Workspace>


================================================
FILE: JTAppleCalendar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>IDEDidComputeMac32BitWarning</key>
	<true/>
</dict>
</plist>


================================================
FILE: JTAppleCalendar.xcodeproj/xcshareddata/xcschemes/JTAppleCalendar.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
   LastUpgradeVersion = "1100"
   version = "1.3">
   <BuildAction
      parallelizeBuildables = "YES"
      buildImplicitDependencies = "YES">
      <BuildActionEntries>
         <BuildActionEntry
            buildForTesting = "YES"
            buildForRunning = "YES"
            buildForProfiling = "YES"
            buildForArchiving = "YES"
            buildForAnalyzing = "YES">
            <BuildableReference
               BuildableIdentifier = "primary"
               BlueprintIdentifier = "3BE7994E233A346B00A37CA8"
               BuildableName = "JTAppleCalendar.framework"
               BlueprintName = "JTAppleCalendar"
               ReferencedContainer = "container:JTAppleCalendar.xcodeproj">
            </BuildableReference>
         </BuildActionEntry>
      </BuildActionEntries>
   </BuildAction>
   <TestAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      shouldUseLaunchSchemeArgsEnv = "YES">
      <Testables>
      </Testables>
   </TestAction>
   <LaunchAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      launchStyle = "0"
      useCustomWorkingDirectory = "NO"
      ignoresPersistentStateOnLaunch = "NO"
      debugDocumentVersioning = "YES"
      debugServiceExtension = "internal"
      allowLocationSimulation = "YES">
   </LaunchAction>
   <ProfileAction
      buildConfiguration = "Release"
      shouldUseLaunchSchemeArgsEnv = "YES"
      savedToolIdentifier = ""
      useCustomWorkingDirectory = "NO"
      debugDocumentVersioning = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "3BE7994E233A346B00A37CA8"
            BuildableName = "JTAppleCalendar.framework"
            BlueprintName = "JTAppleCalendar"
            ReferencedContainer = "container:JTAppleCalendar.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
   </ProfileAction>
   <AnalyzeAction
      buildConfiguration = "Debug">
   </AnalyzeAction>
   <ArchiveAction
      buildConfiguration = "Release"
      revealArchiveInOrganizer = "YES">
   </ArchiveAction>
</Scheme>


================================================
FILE: LICENSE
================================================
Copyright (c) 2016 JayT <patchthecode@gmail.com>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


================================================
FILE: Package.swift
================================================
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "JTAppleCalendar",
    platforms: [
        .iOS(.v12),
    ],
    products: [
        .library(
            name: "JTAppleCalendar",
            targets: ["JTAppleCalendar"]),
    ],
    targets: [
        .target(
            name: "JTAppleCalendar",
            dependencies: [],
            resources: [.copy("PrivacyInfo.xcprivacy")]),
        .testTarget(
            name: "JTAppleCalendarTests",
            dependencies: ["JTAppleCalendar"]),
    ]
)


================================================
FILE: README.md
================================================
[![jtapplecalendarnewlogo](https://cloud.githubusercontent.com/assets/2439146/20656424/a1c98c8e-b4e1-11e6-9833-5fa6430f5a8c.png)](https://github.com/patchthecode/JTAppleCalendar)

[![Version](https://img.shields.io/cocoapods/v/JTAppleCalendar.svg?style=flat)](http://cocoapods.org/pods/JTAppleCalendar) [![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Platform](https://img.shields.io/cocoapods/p/JTAppleCalendar.svg?style=flat)](http://cocoapods.org/pods/JTAppleCalendar) [![License](https://img.shields.io/cocoapods/l/JTAppleCalendar.svg?style=flat)](http://cocoapods.org/pods/JTAppleCalendar) [![](https://www.paypalobjects.com/webstatic/en_US/btn/btn_donate_74x21.png)](https://github.com/patchthecode/JTAppleCalendar/wiki/Support) [![Backers on Open Collective](https://opencollective.com/JTAppleCalendar/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/JTAppleCalendar/sponsors/badge.svg)](#sponsors) [![Open Source Helpers](https://www.codetriage.com/patchthecode/jtapplecalendar/badges/users.svg)](https://www.codetriage.com/patchthecode/jtapplecalendar)

#### Q: How will my calendar dateCells look with this library?

**A**: However you want them to look.

<p align="center">
   <a href="https://github.com/patchthecode/JTAppleCalendar/issues/2">
      <img src="https://cloud.githubusercontent.com/assets/2439146/20638185/d708d542-b353-11e6-8119-fa36c11b66cb.gif" height="450">
   </a>
</p>
<p align="center">  
   <a href="https://github.com/patchthecode/JTAppleCalendar/issues/2">More Images</a>
</p>

## Features

---

- [x] Range selection - select dates in a range. The design is entirely up to you.
- [x] Boundary dates - limit the calendar date range
- [x] [Week/month mode](./docs/switch-month-to-week-view/Switch%20between%20month-view%20and%20week-view.md) - show 1 row of weekdays. Or 2, 3 or 6
- [x] Custom cells - make your day-cells look however you want, with any functionality you want
- [x] Custom calendar view - make your calendar look however you want, with what ever functionality you want
- [x] First Day of week - pick anyday to be first day of the week
- [x] Horizontal or vertical mode
- [x] Ability to add [month headers](./docs/headers/Headers.md) in varying sizes/styles of your liking
- [x] Ability to scroll to any month by simply using the date
- [x] Ability to design your calendar [however you want.](https://github.com/patchthecode/JTAppleCalendar/issues/2) You want it, you build it

---

## How do I use this library?

> [!WARNING]
> The wiki currently links to an external site that is down. It is recommended to [view the docs](./docs/get-started/Get%20Started.md) at this time, but be aware they may not be up to date currently

### >> [Read the wiki](https://github.com/patchthecode/JTAppleCalendar/wiki/Tutorials) for Tutorials and example code to download or [view the docs](./docs/get-started/Get%20Started.md)

## [Version 8.0.0 migration guide](./docs/migration-guide/v8%20Migration%20Guide.md)

---

## Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
Want to become a sponsor? Send an email to patchthecode@gmail.com

<a href="https://opencollective.com/JTAppleCalendar/sponsor/0/website" target="_blank"><img src="https://opencollective.com/JTAppleCalendar/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/JTAppleCalendar/sponsor/1/website" target="_blank"><img src="https://opencollective.com/JTAppleCalendar/sponsor/1/avatar.svg"></a>

## Contributors

This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
<a href="graphs/contributors"><img src="https://opencollective.com/JTAppleCalendar/contributors.svg?width=890&button=false" /></a>

## Backers

Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/JTAppleCalendar#backer)]

<a href="https://opencollective.com/JTAppleCalendar#backers" target="_blank"><img src="https://opencollective.com/JTAppleCalendar/backers.svg?width=890"></a>

## License

JTAppleCalendar is available under the MIT license. See the LICENSE file for more info.


================================================
FILE: SampleJTAppleCalendar/AppDelegate.swift
================================================
//
//  AppDelegate.swift
//  SampleJTAppleCalendar
//
//  Created by Jeron Thomas on 2019-06-25.
//  Copyright © 2019 OsTech. All rights reserved.
//

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {



    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        return true
    }

    func applicationWillTerminate(_ application: UIApplication) {
        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    }

    // MARK: UISceneSession Lifecycle

    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        // Called when a new scene session is being created.
        // Use this method to select a configuration to create the new scene with.
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    }

    func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
        // Called when the user discards a scene session.
        // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
        // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
    }


}



================================================
FILE: SampleJTAppleCalendar/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "iphone",
      "size" : "20x20",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "20x20",
      "scale" : "3x"
    },
    {
      "idiom" : "iphone",
      "size" : "29x29",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "29x29",
      "scale" : "3x"
    },
    {
      "idiom" : "iphone",
      "size" : "40x40",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "40x40",
      "scale" : "3x"
    },
    {
      "idiom" : "iphone",
      "size" : "60x60",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "60x60",
      "scale" : "3x"
    },
    {
      "idiom" : "ipad",
      "size" : "20x20",
      "scale" : "1x"
    },
    {
      "idiom" : "ipad",
      "size" : "20x20",
      "scale" : "2x"
    },
    {
      "idiom" : "ipad",
      "size" : "29x29",
      "scale" : "1x"
    },
    {
      "idiom" : "ipad",
      "size" : "29x29",
      "scale" : "2x"
    },
    {
      "idiom" : "ipad",
      "size" : "40x40",
      "scale" : "1x"
    },
    {
      "idiom" : "ipad",
      "size" : "40x40",
      "scale" : "2x"
    },
    {
      "idiom" : "ipad",
      "size" : "76x76",
      "scale" : "1x"
    },
    {
      "idiom" : "ipad",
      "size" : "76x76",
      "scale" : "2x"
    },
    {
      "idiom" : "ipad",
      "size" : "83.5x83.5",
      "scale" : "2x"
    },
    {
      "idiom" : "ios-marketing",
      "size" : "1024x1024",
      "scale" : "1x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: SampleJTAppleCalendar/Assets.xcassets/Contents.json
================================================
{
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: SampleJTAppleCalendar/Assets.xcassets/cube.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "filename" : "cube.png",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: SampleJTAppleCalendar/Base.lproj/LaunchScreen.storyboard
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="EHf-IW-A2E">
            <objects>
                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
                        <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="53" y="375"/>
        </scene>
    </scenes>
</document>


================================================
FILE: SampleJTAppleCalendar/Example Calendars/TestOrientationChanges.swift
================================================
//
//  TestOrientationChanges.swift
//  JTAppleCalendar
//
//  Created by Jay Thomas on 2017-08-19.
//

import UIKit

class TestOrientationChanges: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    

}


================================================
FILE: SampleJTAppleCalendar/Example Calendars/TestPersianCalendar.swift
================================================
//
//  TestPersianCalendar.swift
//  SampleCalendar
//
//  Copyright © 2017 Aminous. All rights reserved.
//

import UIKit
import JTAppleCalendar

class TestPersianCalendar: UIViewController {
    
    @IBOutlet weak var calendarView: JTACMonthView!
    
    lazy var dateFormatter: DateFormatter = {
        let dateFormatter = DateFormatter()
        dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
        dateFormatter.dateFormat = "hh:mm"
        return dateFormatter
    }()
    
    let persianDateFormatter: DateFormatter = {
        let dateFormatter = DateFormatter()
        dateFormatter.calendar = Calendar(identifier: .persian)
        dateFormatter.dateFormat = "yyyy/MM/dd"
        return dateFormatter
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        setupCalendarView()
        calendarView.calendarDataSource = self
        calendarView.calendarDelegate = self
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    
    func handleCellSelected(cell: JTACDayCell?, cellState: CellState){
        guard let validCell = cell as? CalendarCell else { return }
        if cellState.isSelected {
            validCell.selectedView.isHidden = false
        } else {
            validCell.selectedView.isHidden = true
        }
    }
    
    func handleCellTextColor(cell: JTACDayCell?, cellState: CellState){
        guard let validCell = cell as? CalendarCell else { return }
        if cellState.isSelected {
            validCell.dateLabel.textColor = UIColor.white
        } else {
            let today = Date()
            persianDateFormatter.dateFormat = "yyyy MM dd"
            let todayDateStr = persianDateFormatter.string(from: today)
            dateFormatter.dateFormat = "yyyy MM dd"
            let cellDateStr = dateFormatter.string(from: cellState.date)
            
            if todayDateStr == cellDateStr {
                validCell.dateLabel.textColor = UIColor.yellow
            } else {
                if cellState.dateBelongsTo == .thisMonth {
                    validCell.dateLabel.textColor = UIColor.white
                } else { //i.e. case it belongs to inDate or outDate
                    validCell.dateLabel.textColor = UIColor.gray
                }
            }
        }
    }
    
    
    func setupCalendarView(){
        //Setup calendar spacing
        calendarView.minimumLineSpacing = 0
        calendarView.minimumInteritemSpacing = 0
        
    }
}

extension TestPersianCalendar: JTACMonthViewDataSource {
    func configureCalendar(_ calendar: JTACMonthView) -> ConfigurationParameters {
        
        let persianCalendar = Calendar(identifier: .persian)
        
        let testFotmatter = DateFormatter()
        testFotmatter.dateFormat = "yyyy/MM/dd"
        testFotmatter.timeZone = persianCalendar.timeZone
        testFotmatter.locale = persianCalendar.locale
        
        let startDate = testFotmatter.date(from: "2017/01/01")!
        let endDate = testFotmatter.date(from: "2017/09/30")!
        
        
        let parameters = ConfigurationParameters(startDate: startDate, endDate: endDate, calendar: persianCalendar)
        return parameters
    }
}

extension TestPersianCalendar: JTACMonthViewDelegate {
    func calendar(_ calendar: JTACMonthView, willDisplay cell: JTACDayCell, forItemAt date: Date, cellState: CellState, indexPath: IndexPath) {
        // The code here is the same as cellForItem function
        let cell = cell as! CellView
        cell.dayLabel.text = cellState.text
        
        handleCellSelected(cell: cell, cellState: cellState)
        handleCellTextColor(cell: cell, cellState: cellState)
    }
    
    func calendar(_ calendar: JTACMonthView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTACDayCell {
        let cell = calendar.dequeueReusableJTAppleCell(withReuseIdentifier: "mainInfo_CalenderCell", for: indexPath) as! CellView
        cell.dayLabel.text = cellState.text
        
        handleCellSelected(cell: cell, cellState: cellState)
        handleCellTextColor(cell: cell, cellState: cellState)
        
        return cell
    }
    
    
    func calendar(_ calendar: JTACMonthView, didSelectDate date: Date, cell: JTACDayCell?, cellState: CellState) {
        print(cellState.dateBelongsTo)
        handleCellSelected(cell: cell, cellState: cellState)
        handleCellTextColor(cell: cell, cellState: cellState)
    }
    
    func calendar(_ calendar: JTACMonthView, didDeselectDate date: Date, cell: JTACDayCell?, cellState: CellState) {
        handleCellSelected(cell: cell, cellState: cellState)
        handleCellTextColor(cell: cell, cellState: cellState)
    }
    
    
}

class CalendarCell: JTACDayCell {
    @IBOutlet weak var dateLabel: UILabel!
    @IBOutlet weak var selectedView: UIView!
}




================================================
FILE: SampleJTAppleCalendar/Example Calendars/TestRangeSelectionViewController.swift
================================================
//
//  TestRangeSelectionViewController.swift
//  JTAppleCalendar iOS
//
//  Created by Jay Thomas on 2018-08-07.
//

import UIKit
import JTAppleCalendar

class TestRangeSelectionViewController: UIViewController {
    
    @IBOutlet weak var monthLabel: UILabel!
    @IBOutlet weak var calendarView: JTACMonthView!
    let df = DateFormatter()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        calendarView.visibleDates() { visibleDates in
            self.setupMonthLabel(date: visibleDates.monthDates.first!.date)
        }
        
        calendarView.allowsMultipleSelection = true
        calendarView.allowsMultipleSelection = true
        
    }
    
    func setupMonthLabel(date: Date) {
        df.dateFormat = "MMM"
        monthLabel.text = df.string(from: date)
    }
    
    func handleConfiguration(cell: JTACDayCell?, cellState: CellState) {
        guard let cell = cell as? TestRangeSelectionViewControllerCell else { return }
        handleCellColor(cell: cell, cellState: cellState)
        handleCellSelection(cell: cell, cellState: cellState)
    }
    
    func handleCellColor(cell: TestRangeSelectionViewControllerCell, cellState: CellState) {
        if cellState.dateBelongsTo == .thisMonth {
            cell.label.textColor = .black
        } else {
            cell.label.textColor = .gray
        }
    }
    
    func handleCellSelection(cell: TestRangeSelectionViewControllerCell, cellState: CellState) {
        cell.selectedView.isHidden = !cellState.isSelected
        
            switch cellState.selectedPosition() {
            case .left:
                cell.selectedView.layer.cornerRadius = 20
                cell.selectedView.layer.maskedCorners = [.layerMinXMaxYCorner, .layerMinXMinYCorner]
            case .middle:
                cell.selectedView.layer.cornerRadius = 0
                cell.selectedView.layer.maskedCorners = []
            case .right:
                cell.selectedView.layer.cornerRadius = 20
                cell.selectedView.layer.maskedCorners = [.layerMaxXMaxYCorner, .layerMaxXMinYCorner]
            case .full:
                cell.selectedView.layer.cornerRadius = 20
                cell.selectedView.layer.maskedCorners = [.layerMaxXMaxYCorner, .layerMaxXMinYCorner, .layerMinXMaxYCorner, .layerMinXMinYCorner]
            default: break
            }
        
        
    
    
    }
}

extension TestRangeSelectionViewController: JTACMonthViewDelegate, JTACMonthViewDataSource {
    
    func calendar(_ calendar: JTACMonthView, willDisplay cell: JTACDayCell, forItemAt date: Date, cellState: CellState, indexPath: IndexPath) {
        handleConfiguration(cell: cell, cellState: cellState)
    }
    
    func calendar(_ calendar: JTACMonthView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTACDayCell {
        let cell = calendar.dequeueReusableJTAppleCell(withReuseIdentifier: "cell", for: indexPath) as! TestRangeSelectionViewControllerCell
        cell.label.text = cellState.text
        self.calendar(calendar, willDisplay: cell, forItemAt: date, cellState: cellState, indexPath: indexPath)
        return cell
    }
    
    func calendar(_ calendar: JTACMonthView, didScrollToDateSegmentWith visibleDates: DateSegmentInfo) {
        setupMonthLabel(date: visibleDates.monthDates.first!.date)
    }
    
    func calendar(_ calendar: JTACMonthView, didSelectDate date: Date, cell: JTACDayCell?, cellState: CellState, indexPath: IndexPath) {
        handleConfiguration(cell: cell, cellState: cellState)
    }
    
    func calendar(_ calendar: JTACMonthView, didDeselectDate date: Date, cell: JTACDayCell?, cellState: CellState, indexPath: IndexPath) {
        handleConfiguration(cell: cell, cellState: cellState)
    }
    
    func configureCalendar(_ calendar: JTACMonthView) -> ConfigurationParameters {
        let df = DateFormatter()
        df.dateFormat = "yyyy MM dd"
        
        let startDate = df.date(from: "2017 01 01")!
        let endDate = df.date(from: "2017 12 31")!
        
        let parameter = ConfigurationParameters(startDate: startDate,
                                                endDate: endDate,
                                                numberOfRows: 6,
                                                generateInDates: .forAllMonths,
                                                generateOutDates: .tillEndOfGrid,
                                                firstDayOfWeek: .sunday)
        return parameter
    }
    
    
}



class TestRangeSelectionViewControllerCell: JTACDayCell {
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var selectedView: UIView!
}


================================================
FILE: SampleJTAppleCalendar/Example Calendars/TestViewController.swift
================================================
//
//  TestViewController.swift
//  JTAppleCalendar iOS
//
//  Created by Jay Thomas on 2017-07-11.
//

import UIKit
import JTAppleCalendar

class TestViewController: UIViewController {
    @IBOutlet weak var monthLabel: UILabel!
    @IBOutlet var calendarView: JTACMonthView!
    @IBOutlet var theView: UIView!
    @IBOutlet weak var viewHeightConstraint: NSLayoutConstraint!
    let formatter = DateFormatter()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.calendarView.visibleDates {[unowned self] (visibleDates: DateSegmentInfo) in
            self.setupViewsOfCalendar(from: visibleDates)
        }

    }
    @IBAction func selectABunch(_ sender: UIButton) {
        formatter.dateFormat = "yyyy MM dd"
        let date = formatter.date(from: "2017 01 01")!
        let date2 = formatter.date(from: "2017 12 25")!
        calendarView.selectDates(from: date, to: date2, triggerSelectionDelegate: true)
    }
    @IBAction func zeroHeight(_ sender: UIButton) {
        let frame = calendarView.frame
        calendarView.frame = CGRect(x: frame.origin.x,
                                    y: frame.origin.y,
                                    width: frame.width,
                                    height: 0)
        calendarView.reloadData()
    }
    @IBAction func twoHeight(_ sender: UIButton) {
        let frame = calendarView.frame
        calendarView.frame = CGRect(x: frame.origin.x,
                                    y: frame.origin.y,
                                    width: frame.width,
                                    height: 50)
        calendarView.reloadData()
    }
    @IBAction func twoHundredHeight(_ sender: UIButton) {
        let frame = calendarView.frame
        calendarView.frame = CGRect(x: frame.origin.x,
                                    y: frame.origin.y,
                                    width: frame.width,
                                    height: 200)
        calendarView.reloadData()
    }
    
    @IBAction func zeroHeightView(_ sender: UIButton) {
        viewHeightConstraint.constant = 0
        calendarView.reloadData()

    }
    @IBAction func twoHeightView(_ sender: UIButton) {
        viewHeightConstraint.constant = 50
        calendarView.reloadData()
    }
    @IBAction func twoHundredHeightView(_ sender: UIButton) {
        viewHeightConstraint.constant = 200
        calendarView.reloadData()
    }
    
    @IBAction func selectOneDate(_ sender: UIButton) {
        formatter.dateFormat = "yyyy MM dd"
        let date = formatter.date(from: "2017 01 03")!
        calendarView.selectDates([date])
    }
    @IBAction func selectOtherDate(_ sender: UIButton) {
        formatter.dateFormat = "yyyy MM dd"
        let date = formatter.date(from: "2017 01 31")!
        calendarView.selectDates([date])
    }
    
    @IBAction func selectOneMonth(_ sender: UIButton) {
        formatter.dateFormat = "yyyy MM dd"
        let date = formatter.date(from: "2017 02 01")!
        calendarView.selectDates([date])
    }
    @IBAction func reload(_ sender: UIButton) {
        calendarView.reloadData()
    }
    
    @IBAction func debugthis(_ sender: UIButton) {
        print(calendarView.selectedDates)
    }
    @IBAction func singleSelect(_ sender: UIButton) {
        calendarView.allowsMultipleSelection = false
        calendarView.allowsMultipleSelection = false
    }
    @IBAction func multiSelect(_ sender: UIButton) {
        calendarView.allowsMultipleSelection = true
        calendarView.allowsMultipleSelection = true
    }
    func setupViewsOfCalendar(from visibleDates: DateSegmentInfo) {
        guard let startDate = visibleDates.monthDates.first?.date else {
            return
        }
        let month = Calendar.current.dateComponents([.month], from: startDate).month!
        let monthName = DateFormatter().monthSymbols[(month-1) % 12]
        // 0 indexed array
        let year = Calendar.current.component(.year, from: startDate)
        monthLabel.text = monthName + " " + String(year)
    }
    
    func configureCell(view: JTACDayCell?, cellState: CellState) {
        guard let myCustomCell = view as? CellView  else { return }
        handleCellTextColor(view: myCustomCell, cellState: cellState)
        handleCellSelection(view: myCustomCell, cellState: cellState)
    }
    
    func handleCellSelection(view: CellView, cellState: CellState) {
        if calendarView.allowsMultipleSelection {
        switch cellState.selectedPosition() {
        case .full: view.backgroundColor = .green
        case .left: view.backgroundColor = .yellow
        case .right: view.backgroundColor = .red
        case .middle: view.backgroundColor = .blue
        case .none: view.backgroundColor = nil
        }
        } else {
            if cellState.isSelected {
                view.backgroundColor = UIColor.red
            } else {
                view.backgroundColor = UIColor.white
            }
        }
    }
    func handleCellTextColor(view: CellView, cellState: CellState) {
        if cellState.dateBelongsTo == .thisMonth {
            view.dayLabel.textColor = UIColor.black
        } else {
            view.dayLabel.textColor = UIColor.gray
        }
    }
    
    var iii: Date?
}


extension TestViewController: JTACMonthViewDataSource, JTACMonthViewDelegate {
    func calendar(_ calendar: JTACMonthView, willDisplay cell: JTACDayCell, forItemAt date: Date, cellState: CellState, indexPath: IndexPath) {
        configureCell(view: cell, cellState: cellState)
    }
    
    func calendar(_ calendar: JTACMonthView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTACDayCell {
        let cell = calendar.dequeueReusableJTAppleCell(withReuseIdentifier: "cell", for: indexPath) as! CellView
        configureCell(view: cell, cellState: cellState)
        if cellState.text == "1" {
            formatter.dateFormat = "MMM"
            let month = formatter.string(from: date)
            cell.dayLabel .text = "\(month) \(cellState.text)"
        } else {
            cell.dayLabel .text = cellState.text
        }
        return cell
    }
    
    func configureCalendar(_ calendar: JTACMonthView) -> ConfigurationParameters {
        formatter.dateFormat = "yyyy MM dd"
        formatter.timeZone = Calendar.current.timeZone
        formatter.locale = Calendar.current.locale
        
        
        let startDate = formatter.date(from: "2017 01 01")!
        let endDate = formatter.date(from: "2030 02 01")!
        
        let parameters = ConfigurationParameters(startDate: startDate,endDate: endDate)
        return parameters
    }
    
    
    func calendar(_ calendar: JTACMonthView, didScrollToDateSegmentWith visibleDates: DateSegmentInfo) {
        setupViewsOfCalendar(from: visibleDates)
    }
    
    func calendar(_ calendar: JTACMonthView, didSelectDate date: Date, cell: JTACDayCell?, cellState: CellState) {
        configureCell(view: cell, cellState: cellState)
    }
    
    func calendar(_ calendar: JTACMonthView, didDeselectDate date: Date, cell: JTACDayCell?, cellState: CellState) {
        configureCell(view: cell, cellState: cellState)
    }
    
    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
        calendarView.viewWillTransition(to: size, with: coordinator, anchorDate: iii)
    }
    
    
}




================================================
FILE: SampleJTAppleCalendar/Example Calendars/TestYearViewViewController.swift
================================================
//
//  TestYearViewViewController.swift
//  JTAppleCalendar
//
//  Created by JayT on 2019-05-11.
//

import UIKit
import JTAppleCalendar

class TestYearViewViewController: UIViewController {
    @IBOutlet var calendarView: JTACYearView!
    let f = DateFormatter()
    
    override func viewDidLoad() {
        calendarView.calendarDataSource  = self
        calendarView.calendarDelegate  = self
        super.viewDidLoad()
    }
}


extension TestYearViewViewController: JTACYearViewDelegate, JTACYearViewDataSource {
    // Drawing for a whole month cell
    func calendar(_ calendar: JTACYearView, cellFor item: Any, at date: Date, indexPath: IndexPath) -> JTACMonthCell {
        if item is Month {
            let cell = calendar.dequeueReusableJTAppleMonthCell(withReuseIdentifier: "kkk", for: indexPath) as! MyCell
            f.dateFormat = "MMM"
            cell.monthLabel.text = f.string(from: date)
            return cell
        } else {
            let cell = calendar.dequeueReusableJTAppleMonthCell(withReuseIdentifier: "zzz", for: indexPath) as! YearHeaderCell
            f.dateFormat = "yyyy"
            cell.yearLabel.text = f.string(from: date)
            return cell
        }
    }
    
    
    
    func configureCalendar(_ calendar: JTACYearView) -> (configurationParameters: ConfigurationParameters, months: [Any]) {
        let df = DateFormatter()
        df.dateFormat = "yyyy MM dd"
        
        let sDate = df.date(from: "2019 01 01")!
        let eDate = df.date(from: "2050 05 31")!
        
        let configParams = ConfigurationParameters(startDate: sDate,
                                                   endDate: eDate,
                                                   numberOfRows: 6,
                                                   calendar: Calendar(identifier: .gregorian),
                                                   generateInDates: .forAllMonths,
                                                   generateOutDates: .tillEndOfGrid,
                                                   firstDayOfWeek: .sunday,
                                                   hasStrictBoundaries: true)
        
        // Get year data
        let dataSource = calendar.dataSourcefrom(configurationParameters: configParams)
        
        // Modify the data source to include a String every 12 data elements.
        // This string type will be used to add a header.
        var modifiedDataSource: [Any] = []
        for index in (0..<dataSource.count) {
            if index % 12 == 0 { modifiedDataSource.append("Year") }
            modifiedDataSource.append(dataSource[index])
        }

        return (configParams, modifiedDataSource)
    }
    
    
    // Drawing for individual item in a month cell.
    func calendar(_ calendar: JTACYearView, monthView: JTACCellMonthView, drawingFor rect: CGRect, with date: Date, dateOwner: DateOwner, monthIndex index: Int) {
        f.dateFormat = "d"
        let dateString = f.string(from: date)
        
        let paragraphStyle = NSMutableParagraphStyle()
        let font = UIFont(name: "HelveticaNeue", size: 8)!
        
        paragraphStyle.alignment = .center
        dateString.draw(in: rect, withAttributes: [
            NSAttributedString.Key.font : font,
            NSAttributedString.Key.paragraphStyle: paragraphStyle
        ])
    }
    
    func calendar(_ calendar: JTACYearView, sizeFor item: Any) -> CGSize {
        if item is Month {
            let width = (calendar.frame.width - 41 ) / 3
            let height = width
            return CGSize(width: width, height: height)
        } else {
            let width = calendar.frame.width - 41
            let height:CGFloat  = 20
            return CGSize(width: width, height: height)
        }
    }
}


class MyCell: JTACMonthCell {
    @IBOutlet var monthLabel: UILabel!
}

class YearHeaderCell: JTACMonthCell {
    @IBOutlet var yearLabel: UILabel!
}


================================================
FILE: SampleJTAppleCalendar/Example Calendars/ViewController.swift
================================================
//
//  ViewController.swift
//  JTAppleCalendar iOS Example
//
//  Created by JayT on 2016-08-10.
//
//

import UIKit
import JTAppleCalendar

class ViewController: UIViewController {

    @IBOutlet weak var customColumn: UITextField!
    @IBOutlet weak var calendarView: JTACMonthView!
    @IBOutlet weak var monthLabel: UILabel!
    @IBOutlet weak var weekViewStack: UIStackView!
    @IBOutlet var numbers: [UIButton]!
    @IBOutlet var outDates: [UIButton]!
    @IBOutlet var inDates: [UIButton]!
    
    var numberOfRows = 6
    let formatter = DateFormatter()
    var testCalendar = Calendar.current
    var generateInDates: InDateCellGeneration = .forAllMonths
    var generateOutDates: OutDateCellGeneration = .tillEndOfGrid
    var prePostVisibility: ((CellState, CellView?)->())?
    var hasStrictBoundaries = true
    let disabledColor = UIColor.lightGray
    let enabledColor = UIColor.blue
    var monthSize: MonthSize? = nil
    var prepostHiddenValue = false
    var outsideHeaderVisibilityIsOn = true
    var insideHeaderVisibilityIsOn = false
    
    var currentScrollModeIndex = 0
    var hhh: CGFloat?
    var allScrollModes: [ScrollingMode] = [
        .none,
        .nonStopTo(customInterval: 374, withResistance: 0.5),
        .nonStopToCell(withResistance: 0.5),
        .nonStopToSection(withResistance: 0.5),
        .stopAtEach(customInterval: 374),
        .stopAtEachCalendarFrame,
        .stopAtEachSection
    ]
    
    @IBAction func changeScroll(_ sender: Any) {
        currentScrollModeIndex += 1
        if currentScrollModeIndex >= allScrollModes.count { currentScrollModeIndex = 0 }
        calendarView.scrollingMode = allScrollModes[currentScrollModeIndex]
        print("ScrollMode = \(allScrollModes[currentScrollModeIndex])")
        let sender = sender as! UIButton
        sender.setTitle("\(allScrollModes[currentScrollModeIndex])", for: .normal)
        
    }

    @IBAction func showPrepost(_ sender: UIButton) {
        prePostVisibility = {state, cell in
            cell?.isHidden = false
        }
        calendarView.reloadData()
    }
    @IBAction func hidePrepost(_ sender: UIButton) {
        prePostVisibility = {state, cell in
            if state.dateBelongsTo == .thisMonth {
                cell?.isHidden = false
            } else {
                cell?.isHidden = true
            }
        }
        calendarView.reloadData()
    }
    
    @IBAction func toggleInsideHeaders(_ sender: UIButton) {
        if insideHeaderVisibilityIsOn {
            monthSize = nil
            sender.setTitle("Inside Header OFF", for: .normal)
        } else {
            monthSize = MonthSize(defaultSize: 50, months: [75: [.feb, .apr]])
            sender.setTitle("Inside Header ON", for: .normal)
        }
        insideHeaderVisibilityIsOn.toggle()
        calendarView.reloadData()
    }
    
    @IBAction func toggleOutsideHeaders(_ sender: UIButton) {
        if outsideHeaderVisibilityIsOn {
            monthLabel.isHidden = true
            weekViewStack.isHidden = true
            sender.setTitle("Outside Header ON", for: .normal)
        } else {
            monthLabel.isHidden = false
            weekViewStack.isHidden = false
            sender.setTitle("Outside Header OFF", for: .normal)
        }
        outsideHeaderVisibilityIsOn.toggle()
    }
    
    @IBAction func decreaseCellInset(_ sender: UIButton) {
        calendarView.minimumLineSpacing -= 0.5
        calendarView.minimumInteritemSpacing -= 0.5
        calendarView.reloadData()
    }
    
    @IBAction func increaseCellInset(_ sender: UIButton) {
        calendarView.minimumLineSpacing += 0.5
        calendarView.minimumInteritemSpacing += 0.5
        calendarView.reloadData()
    }
    
    
    @IBAction func decreaseItemSize(_ sender: UIButton) {
        calendarView.cellSize -= 1
        calendarView.reloadData()
    }
    
    @IBAction func increaseItemSize(_ sender: UIButton) {
        if calendarView.cellSize == 0 { calendarView.cellSize = 54.0}
        calendarView.cellSize += 1
        calendarView.reloadData()
    }

    
    @IBAction func changeToRow(_ sender: UIButton) {
        numberOfRows = Int(sender.title(for: .normal)!)!

        for aButton in numbers {
            aButton.tintColor = disabledColor
        }
        sender.tintColor = enabledColor
        calendarView.reloadData()
    }

    @IBAction func changeDirection(_ sender: UIButton) {
        if calendarView.scrollDirection == .horizontal {
            calendarView.scrollDirection = .vertical
//            calendarView.cellSize = 25
            sender.setTitle("Scrolling = Vertical", for: .normal)
        } else {
            calendarView.scrollDirection = .horizontal
//            calendarView.cellSize = 0
            sender.setTitle("Scrolling = Horizontal", for: .normal)
        }
        calendarView.reloadData()
    }
    
    @IBAction func toggleStrictBoundary(sender: UIButton) {
        hasStrictBoundaries = !hasStrictBoundaries
        if hasStrictBoundaries {
            sender.tintColor = enabledColor
        } else {
            sender.tintColor = disabledColor
        }
        calendarView.reloadData()
    }

    @IBAction func outDateGeneration(_ sender: UIButton) {
        for aButton in outDates {
            aButton.tintColor = disabledColor
        }
        sender.tintColor = enabledColor

        switch sender.title(for: .normal)! {
        case "EOR":
            generateOutDates = .tillEndOfRow
        case "EOG":
            generateOutDates = .tillEndOfGrid
        case "OFF":
            generateOutDates = .off
        default:
            break
        }
        calendarView.reloadData()

    }

    @IBAction func inDateGeneration(_ sender: UIButton) {
        for aButton in inDates {
            aButton.tintColor = disabledColor
        }
        sender.tintColor = enabledColor

        switch sender.title(for: .normal)! {
            case "First":
                generateInDates = .forFirstMonthOnly
            case "All":
                generateInDates = .forAllMonths
            case "Off":
                generateInDates = .off
        default:
            break
        }

        calendarView.reloadData()
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        calendarView.register(UINib(nibName: "PinkSectionHeaderView", bundle: Bundle.main),
                              forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader,
                              withReuseIdentifier: "PinkSectionHeaderView")
        
//        calendarView.allowsMultipleSelection = true
        calendarView.scrollToDate(Date())
        calendarView.selectDates([Date()])
        
        self.calendarView.visibleDates {[unowned self] (visibleDates: DateSegmentInfo) in
            self.setupViewsOfCalendar(from: visibleDates)
        }
        
        setupScrollMode()
    }
    
    var rangeSelectedDates: [Date] = []
    func didStartRangeSelecting(gesture: UILongPressGestureRecognizer) {
        let point = gesture.location(in: gesture.view!)
        rangeSelectedDates = calendarView.selectedDates
        if let cellState = calendarView.cellStatus(at: point) {
            let date = cellState.date
            if !calendarView.selectedDates.contains(date) {
                let dateRange = calendarView.generateDateRange(from: calendarView.selectedDates.first ?? date, to: date)
                for aDate in dateRange {
                    if !rangeSelectedDates.contains(aDate) {
                        rangeSelectedDates.append(aDate)
                    }
                }
                calendarView.selectDates(from: rangeSelectedDates.first!, to: date, keepSelectionIfMultiSelectionAllowed: true)
            } else {
                let indexOfNewlySelectedDate = rangeSelectedDates.firstIndex(of: date)! + 1
                let lastIndex = rangeSelectedDates.endIndex
                let followingDay = testCalendar.date(byAdding: .day, value: 1, to: date)!
                calendarView.selectDates(from: followingDay, to: rangeSelectedDates.last!, keepSelectionIfMultiSelectionAllowed: false)
                rangeSelectedDates.removeSubrange(indexOfNewlySelectedDate..<lastIndex)
            }
        }
        
        if gesture.state == .ended {
            rangeSelectedDates.removeAll()
        }
    }

    @IBAction func printSelectedDates() {
        print("\nSelected dates --->")
        for date in calendarView.selectedDates {
            print(formatter.string(from: date))
        }
    }

    @IBAction func resize(_ sender: UIButton) {
        
        
        calendarView.frame = CGRect(
            x: calendarView.frame.origin.x,
            y: calendarView.frame.origin.y,
            width: calendarView.frame.width,
            height: calendarView.frame.height - 50
        )
        
        let date = calendarView.visibleDates().monthDates.first!.date
        calendarView.reloadData(withAnchor: date)
    }

    @IBAction func reloadCalendar(_ sender: UIButton) {
        let date = Date()
        calendarView.reloadData(withAnchor: date)
    }

    @IBAction func next(_ sender: UIButton) {
        self.calendarView.scrollToSegment(.next)
    }

    @IBAction func previous(_ sender: UIButton) {
        self.calendarView.scrollToSegment(.previous)
    }

    func setupViewsOfCalendar(from visibleDates: DateSegmentInfo) {
        guard let startDate = visibleDates.monthDates.first?.date else {
            return
        }
        let month = testCalendar.dateComponents([.month], from: startDate).month!
        let monthName = DateFormatter().monthSymbols[(month-1) % 12]
        // 0 indexed array
        let year = testCalendar.component(.year, from: startDate)
        monthLabel.text = monthName + " " + String(year)
    }
    
    func handleCellConfiguration(cell: JTACDayCell?, cellState: CellState) {
        handleCellSelection(view: cell, cellState: cellState)
        handleCellTextColor(view: cell, cellState: cellState)
        prePostVisibility?(cellState, cell as? CellView)
    }
    
    
    // Function to handle the text color of the calendar
    func handleCellTextColor(view: JTACDayCell?, cellState: CellState) {
        guard let myCustomCell = view as? CellView  else {
            return
        }
                
        if cellState.isSelected {
            myCustomCell.dayLabel.textColor = .white
        } else {
            myCustomCell.dayLabel.textColor = .black
        }
        
        myCustomCell.isHidden = cellState.dateBelongsTo != .thisMonth
        
    }
    
    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
        let visibleDates = calendarView.visibleDates()
        calendarView.viewWillTransition(to: .zero, with: coordinator, anchorDate: visibleDates.monthDates.first?.date)
    }

    // Function to handle the calendar selection
    func handleCellSelection(view: JTACDayCell?, cellState: CellState) {
        guard let myCustomCell = view as? CellView else {return }
//        switch cellState.selectedPosition() {
//        case .full:
//            myCustomCell.backgroundColor = .green
//        case .left:
//            myCustomCell.backgroundColor = .yellow
//        case .right:
//            myCustomCell.backgroundColor = .red
//        case .middle:
//            myCustomCell.backgroundColor = .blue
//        case .none:
//            myCustomCell.backgroundColor = nil
//        }
        
        if cellState.isSelected {
            myCustomCell.selectedView.layer.cornerRadius =  13
            myCustomCell.selectedView.isHidden = false
        } else {
            myCustomCell.selectedView.isHidden = true
        }
    }
    
    
    @IBAction func decreaseSectionInset(_ sender: UIButton) {
        
        calendarView.sectionInset.bottom -= 3
        calendarView.sectionInset.top -= 3
        calendarView.sectionInset.left -= 3
        calendarView.sectionInset.right -= 3
        
        calendarView.reloadData()
    }
    
    @IBAction func increaseSectionInset(_ sender: UIButton) {
                calendarView.sectionInset.bottom += 3
                calendarView.sectionInset.top += 3
        calendarView.sectionInset.left += 3
        calendarView.sectionInset.right += 3
        calendarView.reloadData()
    }
    
    func setupScrollMode() {
        currentScrollModeIndex = 6
        calendarView.scrollingMode = allScrollModes[currentScrollModeIndex]
    }
}

// MARK : JTAppleCalendarDelegate
extension ViewController: JTACMonthViewDelegate, JTACMonthViewDataSource {
    func configureCalendar(_ calendar: JTACMonthView) -> ConfigurationParameters {
        
        formatter.dateFormat = "yyyy MM dd"
        formatter.timeZone = testCalendar.timeZone
        formatter.locale = testCalendar.locale
        
        
        let startDate = formatter.date(from: "2018 01 01")!
        let endDate = formatter.date(from: "2020 12 01")!
        
        let parameters = ConfigurationParameters(startDate: startDate,
                                                 endDate: endDate,
                                                 numberOfRows: numberOfRows,
                                                 calendar: testCalendar,
                                                 generateInDates: generateInDates,
                                                 generateOutDates: generateOutDates,
                                                 firstDayOfWeek: .sunday,
                                                 hasStrictBoundaries: hasStrictBoundaries)
        return parameters
    }
    
    func configureVisibleCell(myCustomCell: CellView, cellState: CellState, date: Date, indexPath: IndexPath) {
        myCustomCell.dayLabel.text = cellState.text
        if testCalendar.isDateInToday(date) {
            myCustomCell.backgroundColor = .red
        } else {
            myCustomCell.backgroundColor = .white
        }
        
        handleCellConfiguration(cell: myCustomCell, cellState: cellState)
        
        
        if cellState.text == "1" {
            let formatter = DateFormatter()
            formatter.dateFormat = "MMM"
            let month = formatter.string(from: date)
            myCustomCell.monthLabel.text = "\(month) \(cellState.text)"
        } else {
            myCustomCell.monthLabel.text = ""
        }
    }
    
    func calendar(_ calendar: JTACMonthView, willDisplay cell: JTACDayCell, forItemAt date: Date, cellState: CellState, indexPath: IndexPath) {
        // This function should have the same code as the cellForItemAt function
        let myCustomCell = cell as! CellView
        configureVisibleCell(myCustomCell: myCustomCell, cellState: cellState, date: date, indexPath: indexPath)
    }
    
    func calendar(_ calendar: JTACMonthView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTACDayCell {
        let myCustomCell = calendar.dequeueReusableCell(withReuseIdentifier: "CellView", for: indexPath) as! CellView
        configureVisibleCell(myCustomCell: myCustomCell, cellState: cellState, date: date, indexPath: indexPath)
        return myCustomCell
    }

    func calendar(_ calendar: JTACMonthView, didDeselectDate date: Date, cell: JTACDayCell?, cellState: CellState, indexPath: IndexPath) {
        handleCellConfiguration(cell: cell, cellState: cellState)
    }

    func calendar(_ calendar: JTACMonthView, didSelectDate date: Date, cell: JTACDayCell?, cellState: CellState, indexPath: IndexPath) {
        handleCellConfiguration(cell: cell, cellState: cellState)
    }
    
    func calendar(_ calendar: JTACMonthView, didScrollToDateSegmentWith visibleDates: DateSegmentInfo) {
//        print("After: \(calendar.contentOffset.y)")

    }
    
    func calendar(_ calendar: JTACMonthView, willScrollToDateSegmentWith visibleDates: DateSegmentInfo) {
        setupViewsOfCalendar(from: visibleDates)
    }
    
    func calendar(_ calendar: JTACMonthView, headerViewForDateRange range: (start: Date, end: Date), at indexPath: IndexPath) -> JTACMonthReusableView {
        let date = range.start
        let month = testCalendar.component(.month, from: date)
        formatter.dateFormat = "MMM"
        let header: JTACMonthReusableView
        if month % 2 > 0 {
            header = calendar.dequeueReusableJTAppleSupplementaryView(withReuseIdentifier: "WhiteSectionHeaderView", for: indexPath)
            (header as! WhiteSectionHeaderView).title.text = formatter.string(from: date)
        } else {
            header = calendar.dequeueReusableJTAppleSupplementaryView(withReuseIdentifier: "PinkSectionHeaderView", for: indexPath)
            (header as! PinkSectionHeaderView).title.text = formatter.string(from: date)
        }
        return header
    }
    
    func sizeOfDecorationView(indexPath: IndexPath) -> CGRect {
        let stride = calendarView.frame.width * CGFloat(indexPath.section)
        return CGRect(x: stride + 5, y: 5, width: calendarView.frame.width - 10, height: calendarView.frame.height - 10)
    }
    
    func calendarSizeForMonths(_ calendar: JTACMonthView?) -> MonthSize? {
        return monthSize
    }
}


================================================
FILE: SampleJTAppleCalendar/ExampleDateCells/DateCellCreatedWithCode/CodeCellView.swift
================================================
//
//  CodeCellView.swift
//  JTAppleCalendar
//
//  Created by JayT on 2016-05-26.
//  Copyright © 2016 CocoaPods. All rights reserved.
//

import UIKit
import JTAppleCalendar

class CodeCellView: JTACDayCell {
    let bgColor = UIColor.red
    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.

    override func draw(_ rect: CGRect) {
        let context = UIGraphicsGetCurrentContext()
        context?.setFillColor(red: 1.0, green: 0.5, blue: 0.0, alpha: 1.0)
        let r1 = CGRect(x: 0, y: 0, width: 25, height: 25)
        context?.addRect(r1)
        context?.fillPath()
        context?.setStrokeColor(red: 1.0, green: 1.0, blue: 0.5, alpha: 1.0)
        context?.addEllipse(in: CGRect(x: 0, y: 0, width: 25, height: 25))
        context?.strokePath()
    }

}


================================================
FILE: SampleJTAppleCalendar/ExampleDateCells/DateCellCreatedWithXIB/CellView.swift
================================================
//
//  CellView.swift
//  testApplicationCalendar
//
//  Created by JayT on 2016-03-04.
//  Copyright © 2016 OS-Tech. All rights reserved.
//

import UIKit
import JTAppleCalendar

class CellView: JTACDayCell {
    @IBOutlet var selectedView: UIView!
    @IBOutlet var dayLabel: UILabel!
    @IBOutlet var monthLabel: UILabel!
}


================================================
FILE: SampleJTAppleCalendar/ExampleDateCells/DateCellCreatedWithXIB/CellView.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11762" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
    <device id="retina4_7" orientation="portrait">
        <adaptation id="fullscreen"/>
    </device>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view contentMode="scaleToFill" id="S0w-C3-aBs" customClass="CellView" customModule="JTAppleCalendar_iOS_Example" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="181" height="144"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EbV-Fp-hR6" customClass="AnimationView" customModule="JTAppleCalendar_iOS_Example" customModuleProvider="target">
                    <rect key="frame" x="65.5" y="47" width="50" height="50"/>
                    <color key="backgroundColor" red="0.30588235294117649" green="0.30588235294117649" blue="0.30588235294117649" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <constraints>
                        <constraint firstAttribute="height" constant="20" id="8bC-to-itB"/>
                        <constraint firstAttribute="width" constant="50" id="foU-pL-TOu"/>
                        <constraint firstAttribute="width" constant="20" id="kcQ-Q3-xC1"/>
                        <constraint firstAttribute="height" constant="50" id="kkC-cq-Jrc"/>
                    </constraints>
                    <variation key="default">
                        <mask key="constraints">
                            <exclude reference="8bC-to-itB"/>
                            <exclude reference="kcQ-Q3-xC1"/>
                        </mask>
                    </variation>
                </view>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aT1-uS-ofG">
                    <rect key="frame" x="69.5" y="62" width="42" height="20.5"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <nil key="textColor"/>
                    <nil key="highlightedColor"/>
                </label>
            </subviews>
            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
            <constraints>
                <constraint firstItem="EbV-Fp-hR6" firstAttribute="centerX" secondItem="S0w-C3-aBs" secondAttribute="centerX" id="F2n-Nl-12g"/>
                <constraint firstItem="EbV-Fp-hR6" firstAttribute="centerY" secondItem="S0w-C3-aBs" secondAttribute="centerY" id="Xd4-Jh-UKm"/>
                <constraint firstItem="aT1-uS-ofG" firstAttribute="centerX" secondItem="S0w-C3-aBs" secondAttribute="centerX" id="uCS-0c-tF4"/>
                <constraint firstItem="aT1-uS-ofG" firstAttribute="centerY" secondItem="S0w-C3-aBs" secondAttribute="centerY" id="uc6-fQ-xIL"/>
            </constraints>
            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
            <userDefinedRuntimeAttributes>
                <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                    <integer key="value" value="2"/>
                </userDefinedRuntimeAttribute>
            </userDefinedRuntimeAttributes>
            <connections>
                <outlet property="dayLabel" destination="aT1-uS-ofG" id="2KZ-no-pf8"/>
                <outlet property="selectedView" destination="EbV-Fp-hR6" id="ghg-dp-f1Y"/>
            </connections>
            <point key="canvasLocation" x="-246.5" y="445"/>
        </view>
    </objects>
</document>


================================================
FILE: SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsClass/CodePinkSectionHeaderView.swift
================================================
//
//  CodePinkSectionHeaderView.swift
//  JTAppleCalendar
//
//  Created by JayT on 2016-07-15.
//  Copyright © 2016 CocoaPods. All rights reserved.
//

import UIKit
import JTAppleCalendar

class CodePinkSectionHeaderView: JTACMonthReusableView {

     override func draw(_ rect: CGRect) {
        let context = UIGraphicsGetCurrentContext()!
        context.setFillColor(red: 1.0, green: 0.5, blue: 0.0, alpha: 1.0)
        let r1 = CGRect(x: 0, y: 0, width: 25, height: 25)
        context.addRect(r1)
        context.fillPath()
        context.setStrokeColor(red: 1.0, green: 1.0, blue: 0.5, alpha: 1.0)
        context.addEllipse(in: CGRect(x: 0, y: 0, width: 25, height: 25))
        context.strokePath()
     }

}


================================================
FILE: SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsClass/CodeWhiteSectionHeaderView.swift
================================================
//
//  CodeWhiteSectionHeaderView.swift
//  JTAppleCalendar
//
//  Created by JayT on 2016-07-15.
//  Copyright © 2016 CocoaPods. All rights reserved.
//

import UIKit
import JTAppleCalendar

class CodeWhiteSectionHeaderView: JTACMonthReusableView {
    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.

    override func draw(_ rect: CGRect) {
        let context = UIGraphicsGetCurrentContext()!
        context.setFillColor(red: 1.0, green: 2.5, blue: 0.3, alpha: 1.0)
        let r1 = CGRect(x: 0, y: 0, width: 25, height: 25)         // Size
        context.addRect(r1)
        context.fillPath()
        context.setStrokeColor(red: 1.0, green: 1.0, blue: 0.5, alpha: 1.0)
        context.addEllipse(in: CGRect(x: 0, y: 0, width: 25, height: 25))
        context.strokePath()
    }

}


================================================
FILE: SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsXibs/PinkSectionHeaderView.swift
================================================
//
//  PinkSectionHeaderView.swift
//  JTAppleCalendar
//
//  Created by JayT on 2016-05-11.
//  Copyright © 2016 CocoaPods. All rights reserved.
//

import UIKit
import JTAppleCalendar

class PinkSectionHeaderView: JTACMonthReusableView {
    @IBOutlet var title: UILabel!
}


================================================
FILE: SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsXibs/PinkSectionHeaderView.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11762" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
    <device id="retina4_7" orientation="portrait">
        <adaptation id="fullscreen"/>
    </device>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="PinkSectionHeaderView" customModule="JTAppleCalendar_iOS_Example" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="274" height="124"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="my header" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="odf-t5-Cpb">
                    <rect key="frame" x="96.5" y="51.5" width="81" height="21"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    <nil key="highlightedColor"/>
                </label>
            </subviews>
            <color key="backgroundColor" red="0.91764705879999997" green="0.55294117649999996" blue="0.54117647059999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
            <constraints>
                <constraint firstItem="odf-t5-Cpb" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="OSh-hc-7kI"/>
                <constraint firstItem="odf-t5-Cpb" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="uUT-8X-D5q"/>
            </constraints>
            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
            <connections>
                <outlet property="title" destination="odf-t5-Cpb" id="iDV-ld-hMj"/>
            </connections>
            <point key="canvasLocation" x="327" y="586"/>
        </view>
    </objects>
</document>


================================================
FILE: SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsXibs/WhiteSectionHeaderView.swift
================================================
//
//  WhiteSectionHeaderView.swift
//  JTAppleCalendar
//
//  Created by JayT on 2016-05-16.
//  Copyright © 2016 CocoaPods. All rights reserved.
//
import UIKit
import JTAppleCalendar

class WhiteSectionHeaderView: JTACMonthReusableView {
    @IBOutlet weak var title: UILabel!
}


================================================
FILE: SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsXibs/WhiteSectionHeaderView.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13156.6" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
    <device id="retina4_7" orientation="portrait">
        <adaptation id="fullscreen"/>
    </device>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13137.5"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="YES" id="MmX-fg-i48" customClass="WhiteSectionHeaderView" customModule="JTAppleCalendar_iOS_Example" customModuleProvider="target">
            <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
            <subviews>
                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ySe-Ac-V45">
                    <rect key="frame" x="246" y="394" width="0.0" height="0.0"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <nil key="textColor"/>
                    <nil key="highlightedColor"/>
                </label>
            </subviews>
            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
            <constraints>
                <constraint firstItem="ySe-Ac-V45" firstAttribute="centerY" secondItem="MmX-fg-i48" secondAttribute="centerY" id="20T-PG-6SO"/>
                <constraint firstItem="ySe-Ac-V45" firstAttribute="centerX" secondItem="MmX-fg-i48" secondAttribute="centerX" id="8uK-Sn-CwB"/>
            </constraints>
            <connections>
                <outlet property="title" destination="ySe-Ac-V45" id="auT-cR-uJC"/>
            </connections>
            <point key="canvasLocation" x="596" y="314"/>
        </view>
    </objects>
</document>


================================================
FILE: SampleJTAppleCalendar/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>$(DEVELOPMENT_LANGUAGE)</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleVersion</key>
	<string>1</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>UIApplicationSceneManifest</key>
	<dict>
		<key>UIApplicationSupportsMultipleScenes</key>
		<false/>
		<key>UISceneConfigurations</key>
		<dict>
			<key>UIWindowSceneSessionRoleApplication</key>
			<array>
				<dict>
					<key>UILaunchStoryboardName</key>
					<string>LaunchScreen</string>
					<key>UISceneConfigurationName</key>
					<string>Default Configuration</string>
					<key>UISceneDelegateClassName</key>
					<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
					<key>UISceneStoryboardFile</key>
					<string>Main</string>
				</dict>
			</array>
		</dict>
	</dict>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIMainStoryboardFile</key>
	<string>Main</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
</dict>
</plist>


================================================
FILE: SampleJTAppleCalendar/Main.storyboard
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="9v8-0V-uqf">
    <device id="retina6_1" orientation="portrait" appearance="light"/>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--Calendar Layouts-->
        <scene sceneID="tne-QT-ifu">
            <objects>
                <viewController automaticallyAdjustsScrollViewInsets="NO" id="BYZ-38-t0r" customClass="ViewController" customModule="SampleJTAppleCalendar" customModuleProvider="target" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="1000"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="sua-xp-Lel">
                                <rect key="frame" x="73.5" y="92" width="90" height="48"/>
                                <subviews>
                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="o4x-CL-uDB">
                                        <rect key="frame" x="0.0" y="0.0" width="30" height="48"/>
                                        <fontDescription key="fontDescription" type="system" pointSize="30"/>
                                        <state key="normal" title="&lt;"/>
                                        <connections>
                                            <action selector="previous:" destination="BYZ-38-t0r" eventType="touchUpInside" id="Ltl-hs-ak9"/>
                                        </connections>
                                    </button>
                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9V1-Fk-CiX">
                                        <rect key="frame" x="60" y="0.0" width="30" height="48"/>
                                        <fontDescription key="fontDescription" type="system" pointSize="30"/>
                                        <state key="normal" title="&gt;"/>
                                        <connections>
                                            <action selector="next:" destination="BYZ-38-t0r" eventType="touchUpInside" id="5WI-IX-YwM"/>
                                        </connections>
                                    </button>
                                </subviews>
                                <constraints>
                                    <constraint firstAttribute="width" constant="90" id="BAy-Is-7Jj"/>
                                </constraints>
                            </stackView>
                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cFX-1e-6ck">
                                <rect key="frame" x="163.5" y="92" width="48" height="48"/>
                                <fontDescription key="fontDescription" type="system" pointSize="20"/>
                                <color key="textColor" red="0.29803921568627451" green="0.58039215686274503" blue="0.76862745098039209" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="vbP-Kr-0hG">
                                <rect key="frame" x="16" y="170" width="343" height="250"/>
                                <subviews>
                                    <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="1YD-90-lES">
                                        <rect key="frame" x="0.0" y="0.0" width="343" height="250"/>
                                        <subviews>
                                            <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" pagingEnabled="YES" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="Rcm-BV-nfJ" customClass="JTACMonthView" customModule="JTAppleCalendar">
                                                <rect key="frame" x="0.0" y="0.0" width="343" height="250"/>
                                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                                <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="0.0" minimumInteritemSpacing="0.0" id="Rjk-DW-wpX">
                                                    <size key="itemSize" width="115" height="91"/>
                                                    <size key="headerReferenceSize" width="50" height="65"/>
                                                    <size key="footerReferenceSize" width="0.0" height="0.0"/>
                                                    <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
                                                </collectionViewFlowLayout>
                                                <cells>
                                                    <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="CellView" id="uEt-P7-rb4" customClass="CellView" customModule="SampleJTAppleCalendar" customModuleProvider="target">
                                                        <rect key="frame" x="50" y="0.0" width="115" height="91"/>
                                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                        <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
                                                            <rect key="frame" x="0.0" y="0.0" width="115" height="91"/>
                                                            <autoresizingMask key="autoresizingMask"/>
                                                            <subviews>
                                                                <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="m60-Zw-bd1" customClass="AnimationView" customModule="SampleJTAppleCalendar" customModuleProvider="target">
                                                                    <rect key="frame" x="44.5" y="32.5" width="26" height="26"/>
                                                                    <color key="backgroundColor" red="0.30588235289999999" green="0.30588235289999999" blue="0.30588235289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                                    <constraints>
                                                                        <constraint firstAttribute="height" constant="20" id="5HW-Lu-MNR"/>
                                                                        <constraint firstAttribute="width" constant="20" id="EUT-3D-fTi"/>
                                                                        <constraint firstAttribute="height" constant="26" id="pc6-aH-LiK"/>
                                                                        <constraint firstAttribute="width" constant="26" id="w1C-pM-ewI"/>
                                                                    </constraints>
                                                                    <variation key="default">
                                                                        <mask key="constraints">
                                                                            <exclude reference="EUT-3D-fTi"/>
                                                                            <exclude reference="5HW-Lu-MNR"/>
                                                                        </mask>
                                                                    </variation>
                                                                </view>
                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hcf-AU-Etn">
                                                                    <rect key="frame" x="32.5" y="35" width="50" height="21.5"/>
                                                                    <fontDescription key="fontDescription" type="system" weight="black" pointSize="18"/>
                                                                    <nil key="textColor"/>
                                                                    <nil key="highlightedColor"/>
                                                                </label>
                                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="trP-HR-Ph0">
                                                                    <rect key="frame" x="73.5" y="70.5" width="41.5" height="20.5"/>
                                                                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                                    <nil key="textColor"/>
                                                                    <nil key="highlightedColor"/>
                                                                </label>
                                                            </subviews>
                                                        </view>
                                                        <color key="backgroundColor" red="0.94509803921568625" green="0.94509803921568625" blue="0.94509803921568625" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                        <constraints>
                                                            <constraint firstAttribute="trailing" secondItem="trP-HR-Ph0" secondAttribute="trailing" id="1s3-b6-RRH"/>
                                                            <constraint firstItem="m60-Zw-bd1" firstAttribute="centerX" secondItem="uEt-P7-rb4" secondAttribute="centerX" id="Jb8-Zw-bpI"/>
                                                            <constraint firstItem="Hcf-AU-Etn" firstAttribute="centerX" secondItem="uEt-P7-rb4" secondAttribute="centerX" id="LVo-Jl-7sT"/>
                                                            <constraint firstItem="Hcf-AU-Etn" firstAttribute="centerY" secondItem="uEt-P7-rb4" secondAttribute="centerY" id="h4x-VA-Zb5"/>
                                                            <constraint firstAttribute="bottom" secondItem="trP-HR-Ph0" secondAttribute="bottom" id="hOI-ai-zcy"/>
                                                            <constraint firstItem="m60-Zw-bd1" firstAttribute="centerY" secondItem="uEt-P7-rb4" secondAttribute="centerY" id="m9O-rD-wcr"/>
                                                        </constraints>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="2"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <outlet property="dayLabel" destination="Hcf-AU-Etn" id="0MY-U3-mi4"/>
                                                            <outlet property="monthLabel" destination="trP-HR-Ph0" id="GhX-kJ-gDJ"/>
                                                            <outlet property="selectedView" destination="m60-Zw-bd1" id="LDE-yx-EiQ"/>
                                                        </connections>
                                                    </collectionViewCell>
                                                </cells>
                                                <collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="WhiteSectionHeaderView" id="a4X-fd-9fP" customClass="WhiteSectionHeaderView" customModule="SampleJTAppleCalendar" customModuleProvider="target">
                                                    <rect key="frame" x="0.0" y="0.0" width="50" height="250"/>
                                                    <autoresizingMask key="autoresizingMask"/>
                                                    <subviews>
                                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZeE-2j-jod">
                                                            <rect key="frame" x="4.5" y="115" width="41.5" height="20.5"/>
                                                            <color key="backgroundColor" red="0.20392156859999999" green="0.59607843140000005" blue="0.85882352939999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                            <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                            <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                            <nil key="highlightedColor"/>
                                                        </label>
                                                    </subviews>
                                                    <color key="backgroundColor" red="0.66666666669999997" green="0.66666666669999997" blue="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                                    <constraints>
                                                        <constraint firstItem="ZeE-2j-jod" firstAttribute="centerY" secondItem="a4X-fd-9fP" secondAttribute="centerY" id="Cyu-ep-l1L"/>
                                                        <constraint firstItem="ZeE-2j-jod" firstAttribute="centerX" secondItem="a4X-fd-9fP" secondAttribute="centerX" id="HGH-VZ-9oo"/>
                                                    </constraints>
                                                    <connections>
                                                        <outlet property="title" destination="ZeE-2j-jod" id="jh4-r9-dhD"/>
                                                    </connections>
                                                </collectionReusableView>
                                                <connections>
                                                    <outlet property="ibCalendarDataSource" destination="BYZ-38-t0r" id="iWz-vk-QBD"/>
                                                    <outlet property="ibCalendarDelegate" destination="BYZ-38-t0r" id="2yV-hz-pi4"/>
                                                </connections>
                                            </collectionView>
                                        </subviews>
                                    </stackView>
                                </subviews>
                                <constraints>
                                    <constraint firstAttribute="height" constant="250" id="Xwi-53-JiG"/>
                                </constraints>
                            </stackView>
                            <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="X9n-vl-A2l">
                                <rect key="frame" x="16" y="435" width="343" height="531"/>
                                <subviews>
                                    <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" alignment="top" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="iQI-Hq-aUc">
                                        <rect key="frame" x="0.0" y="0.0" width="426" height="435"/>
                                        <subviews>
                                            <stackView opaque="NO" contentMode="scaleToFill" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="aZd-el-ynv">
                                                <rect key="frame" x="0.0" y="0.0" width="426" height="50"/>
                                                <subviews>
                                                    <button opaque="NO" userInteractionEnabled="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="iq5-na-Ibe">
                                                        <rect key="frame" x="0.0" y="0.0" width="83" height="50"/>
                                                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="numOfRows"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ykE-Ba-EbA">
                                                        <rect key="frame" x="103" y="0.0" width="30" height="50"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="1"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="changeToRow:" destination="BYZ-38-t0r" eventType="touchUpInside" id="LcP-YZ-L7B"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cDl-9c-uWn">
                                                        <rect key="frame" x="153" y="0.0" width="30" height="50"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="2"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="changeToRow:" destination="BYZ-38-t0r" eventType="touchUpInside" id="Eet-to-htT"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Pb9-XQ-mrA">
                                                        <rect key="frame" x="203" y="0.0" width="30" height="50"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="3"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="changeToRow:" destination="BYZ-38-t0r" eventType="touchUpInside" id="bDV-6L-J94"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="owT-zj-Nux">
                                                        <rect key="frame" x="253" y="0.0" width="30" height="50"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="6"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="changeToRow:" destination="BYZ-38-t0r" eventType="touchUpInside" id="FlW-wz-LnI"/>
                                                        </connections>
                                                    </button>
                                                    <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="wAg-fY-dvR">
                                                        <rect key="frame" x="303" y="0.0" width="123" height="50"/>
                                                    </stackView>
                                                </subviews>
                                            </stackView>
                                            <stackView opaque="NO" contentMode="scaleToFill" alignment="top" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="iXK-tz-k0E">
                                                <rect key="frame" x="0.0" y="55" width="279" height="50"/>
                                                <subviews>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PyG-Eu-ygd">
                                                        <rect key="frame" x="0.0" y="0.0" width="135" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="Inside Headers OFF"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="toggleInsideHeaders:" destination="BYZ-38-t0r" eventType="touchUpInside" id="4X6-3J-TpX"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PTy-sv-Bef">
                                                        <rect key="frame" x="145" y="0.0" width="134" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="Outside Header ON"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="toggleOutsideHeaders:" destination="BYZ-38-t0r" eventType="touchUpInside" id="RxF-i8-CWM"/>
                                                        </connections>
                                                    </button>
                                                </subviews>
                                            </stackView>
                                            <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" alignment="top" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="Pm2-qg-gpi">
                                                <rect key="frame" x="0.0" y="110" width="304" height="50"/>
                                                <subviews>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UmE-fw-ixS">
                                                        <rect key="frame" x="0.0" y="0.0" width="147" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="Scrolling = Horizontal"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="changeDirection:" destination="BYZ-38-t0r" eventType="touchUpInside" id="sZt-zj-FDp"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1zj-vb-Qsa">
                                                        <rect key="frame" x="157" y="0.0" width="147" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="StrictBoundary"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="toggleStrictBoundaryWithSender:" destination="BYZ-38-t0r" eventType="touchUpInside" id="TNJ-aG-yBV"/>
                                                        </connections>
                                                    </button>
                                                </subviews>
                                            </stackView>
                                            <stackView opaque="NO" contentMode="scaleToFill" alignment="top" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="5AH-vM-Sfm">
                                                <rect key="frame" x="0.0" y="165" width="327" height="50"/>
                                                <subviews>
                                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="PRE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="f8f-oV-Rwk">
                                                        <rect key="frame" x="0.0" y="0.0" width="31" height="20.5"/>
                                                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                        <nil key="textColor"/>
                                                        <nil key="highlightedColor"/>
                                                    </label>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vdq-Qe-RXg">
                                                        <rect key="frame" x="41" y="0.0" width="30" height="30"/>
                                                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="First"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="inDateGeneration:" destination="BYZ-38-t0r" eventType="touchUpInside" id="9Vl-us-QH4"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pqT-rR-7vp">
                                                        <rect key="frame" x="81" y="0.0" width="30" height="30"/>
                                                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="All"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="inDateGeneration:" destination="BYZ-38-t0r" eventType="touchUpInside" id="aBo-kX-z49"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8W7-z1-FLL">
                                                        <rect key="frame" x="121" y="0.0" width="30" height="30"/>
                                                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="Off"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="inDateGeneration:" destination="BYZ-38-t0r" eventType="touchUpInside" id="gdO-Rg-SbG"/>
                                                        </connections>
                                                    </button>
                                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="POST" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="s4K-u3-XNC">
                                                        <rect key="frame" x="161" y="0.0" width="44" height="20.5"/>
                                                        <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                                        <nil key="textColor"/>
                                                        <nil key="highlightedColor"/>
                                                    </label>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pY3-9l-obO">
                                                        <rect key="frame" x="215" y="0.0" width="30" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="EOR"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="outDateGeneration:" destination="BYZ-38-t0r" eventType="touchUpInside" id="mN9-3x-QXB"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UFs-LS-ELE">
                                                        <rect key="frame" x="255" y="0.0" width="32" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="EOG"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="outDateGeneration:" destination="BYZ-38-t0r" eventType="touchUpInside" id="T24-Gw-0LP"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lIg-Y1-ODc">
                                                        <rect key="frame" x="297" y="0.0" width="30" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="OFF"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="outDateGeneration:" destination="BYZ-38-t0r" eventType="touchUpInside" id="5cw-j5-dio"/>
                                                        </connections>
                                                    </button>
                                                </subviews>
                                            </stackView>
                                            <stackView opaque="NO" contentMode="scaleToFill" alignment="top" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="Ymv-Lj-fCZ">
                                                <rect key="frame" x="0.0" y="220" width="331" height="50"/>
                                                <subviews>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UT2-lS-bfU">
                                                        <rect key="frame" x="0.0" y="0.0" width="42" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="+iSize"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="increaseItemSize:" destination="BYZ-38-t0r" eventType="touchUpInside" id="Etm-Hs-Zr7"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="QjJ-we-IeA">
                                                        <rect key="frame" x="52" y="0.0" width="40" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="-iSize"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="decreaseItemSize:" destination="BYZ-38-t0r" eventType="touchUpInside" id="boh-Mi-Gj8"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="s8M-i8-V2G">
                                                        <rect key="frame" x="102" y="0.0" width="51" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="+cInset"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="increaseCellInset:" destination="BYZ-38-t0r" eventType="touchUpInside" id="RzB-dh-gyz"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lTu-1d-FMQ">
                                                        <rect key="frame" x="163" y="0.0" width="49" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="-cInset"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="decreaseCellInset:" destination="BYZ-38-t0r" eventType="touchUpInside" id="aA6-Kb-DWf"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7P9-mg-F0x">
                                                        <rect key="frame" x="222" y="0.0" width="51" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="+sInset"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="increaseSectionInset:" destination="BYZ-38-t0r" eventType="touchUpInside" id="QIG-Tv-j7A"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="J08-1K-kyP">
                                                        <rect key="frame" x="283" y="0.0" width="48" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="-sInset"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="decreaseSectionInset:" destination="BYZ-38-t0r" eventType="touchUpInside" id="oQH-XH-uFq"/>
                                                        </connections>
                                                    </button>
                                                </subviews>
                                            </stackView>
                                            <stackView opaque="NO" contentMode="scaleToFill" spacing="4" translatesAutoresizingMaskIntoConstraints="NO" id="JUA-it-04n">
                                                <rect key="frame" x="0.0" y="275" width="293" height="50"/>
                                                <subviews>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Xa9-2t-dk2">
                                                        <rect key="frame" x="0.0" y="0.0" width="45" height="50"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="Resize"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="resize:" destination="BYZ-38-t0r" eventType="touchUpInside" id="z3U-sg-ISt"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="wy0-di-wch">
                                                        <rect key="frame" x="49" y="0.0" width="98" height="50"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="show pre/post"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="showPrepost:" destination="BYZ-38-t0r" eventType="touchUpInside" id="hNx-Ag-o7h"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="caD-EO-Q2H">
                                                        <rect key="frame" x="151" y="0.0" width="91" height="50"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="hide pre/post"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="hidePrepost:" destination="BYZ-38-t0r" eventType="touchUpInside" id="6Yo-mk-p8C"/>
                                                        </connections>
                                                    </button>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Hva-aw-jhb">
                                                        <rect key="frame" x="246" y="0.0" width="47" height="50"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="Reload"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="reloadCalendar:" destination="BYZ-38-t0r" eventType="touchUpInside" id="XwA-au-nlk"/>
                                                        </connections>
                                                    </button>
                                                </subviews>
                                            </stackView>
                                            <stackView opaque="NO" contentMode="scaleToFill" alignment="top" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="GrB-Ci-kGG">
                                                <rect key="frame" x="0.0" y="330" width="179" height="50"/>
                                                <subviews>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lhy-8Z-vQ5">
                                                        <rect key="frame" x="0.0" y="0.0" width="137" height="30"/>
                                                        <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
                                                        <state key="normal" title="Change scroll Mode"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="changeScroll:" destination="BYZ-38-t0r" eventType="touchUpInside" id="AHX-bA-nSZ"/>
                                                        </connections>
                                                    </button>
                                                    <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="DXf-xv-kka">
                                                        <rect key="frame" x="147" y="0.0" width="32" height="34"/>
                                                        <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                                        <textInputTraits key="textInputTraits"/>
                                                    </textField>
                                                </subviews>
                                            </stackView>
                                            <stackView opaque="NO" contentMode="scaleToFill" alignment="top" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="iZb-9u-P1u">
                                                <rect key="frame" x="0.0" y="385" width="123" height="50"/>
                                                <subviews>
                                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pWe-Sy-KRu">
                                                        <rect key="frame" x="0.0" y="0.0" width="123" height="28"/>
                                                        <color key="backgroundColor" white="0.66666666669999997" alpha="1" colorSpace="calibratedWhite"/>
                                                        <fontDescription key="fontDescription" type="system" pointSize="13"/>
                                                        <state key="normal" title="Print Selected dates"/>
                                                        <userDefinedRuntimeAttributes>
                                                            <userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
                                                                <integer key="value" value="1"/>
                                                            </userDefinedRuntimeAttribute>
                                                        </userDefinedRuntimeAttributes>
                                                        <connections>
                                                            <action selector="printSelectedDates" destination="BYZ-38-t0r" eventType="touchUpInside" id="5Ft-E6-dEs"/>
                                                        </connections>
                                                    </button>
                                                </subviews>
                                            </stackView>
                                        </subviews>
                                    </stackView>
                                </subviews>
                                <constraints>
                                    <constraint firstItem="iQI-Hq-aUc" firstAttribute="leading" secondItem="X9n-vl-A2l" secondAttribute="leading" id="JdL-qZ-LAY"/>
                                    <constraint firstItem="iQI-Hq-aUc" firstAttribute="top" secondItem="X9n-vl-A2l" secondAttribute="top" id="M2d-rz-jRO"/>
                                    <constraint firstAttribute="bottom" secondItem="iQI-Hq-aUc" secondAttribute="bottom" id="MNP-Ia-kWu"/>
                                    <constraint firstAttribute="trailing" secondItem="iQI-Hq-aUc" secondAttribute="trailing" id="xX9-4s-Zmx"/>
                                </constraints>
                            </scrollView>
                            <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="Ik7-d5-Fp7">
                                <rect key="frame" x="0.0" y="141.5" width="375" height="20.5"/>
                                <subviews>
                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SUN" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="a95-i7-kdE">
                                        <rect key="frame" x="0.0" y="0.0" width="53.5" height="20.5"/>
                                        <color key="backgroundColor" red="0.29803921568627451" green="0.58039215686274503" blue="0.76862745098039209" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="17"/>
                                        <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <nil key="highlightedColor"/>
                                    </label>
                                    <label opaque="NO" userInteractionEnabled="NO" tag="1" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MON" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7RE-Ob-lOQ">
                                        <rect key="frame" x="53.5" y="0.0" width="53.5" height="20.5"/>
                                        <color key="backgroundColor" red="0.29803921568627451" green="0.58039215686274503" blue="0.76862745098039209" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="17"/>
                                        <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <nil key="highlightedColor"/>
                                    </label>
                                    <label opaque="NO" userInteractionEnabled="NO" tag="2" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TUE" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Odu-rD-KxJ">
                                        <rect key="frame" x="107" y="0.0" width="53.5" height="20.5"/>
                                        <color key="backgroundColor" red="0.29803921568627451" green="0.58039215686274503" blue="0.76862745098039209" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="17"/>
                                        <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <nil key="highlightedColor"/>
                                    </label>
                                    <label opaque="NO" userInteractionEnabled="NO" tag="3" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WED" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RXo-Gp-Hnh">
                                        <rect key="frame" x="160.5" y="0.0" width="54" height="20.5"/>
                                        <color key="backgroundColor" red="0.29803921568627451" green="0.58039215686274503" blue="0.76862745098039209" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="17"/>
                                        <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <nil key="highlightedColor"/>
                                    </label>
                                    <label opaque="NO" userInteractionEnabled="NO" tag="4" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="THU" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WEc-7V-dYZ">
                                        <rect key="frame" x="214.5" y="0.0" width="53.5" height="20.5"/>
                                        <color key="backgroundColor" red="0.29803921568627451" green="0.58039215686274503" blue="0.76862745098039209" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="17"/>
                                        <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <nil key="highlightedColor"/>
                                    </label>
                                    <label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FRI" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pdr-yp-csf">
                                        <rect key="frame" x="268" y="0.0" width="53.5" height="20.5"/>
                                        <color key="backgroundColor" red="0.29803921568627451" green="0.58039215686274503" blue="0.76862745098039209" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="17"/>
                                        <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <nil key="highlightedColor"/>
                                    </label>
                                    <label opaque="NO" userInteractionEnabled="NO" tag="6" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SAT" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lQ6-Oa-Gic">
                                        <rect key="frame" x="321.5" y="0.0" width="53.5" height="20.5"/>
                                        <color key="backgroundColor" red="0.29803921568627451" green="0.58039215686274503" blue="0.76862745098039209" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                        <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="17"/>
                                        <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sR
Download .txt
gitextract_qqaswcdt/

├── .github/
│   └── ISSUE_TEMPLATE
├── .gitignore
├── .swiftpm/
│   └── xcode/
│       └── package.xcworkspace/
│           ├── contents.xcworkspacedata
│           └── xcshareddata/
│               └── IDEWorkspaceChecks.plist
├── .tailor.yml
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── JTAppleCalendar.podspec
├── JTAppleCalendar.xcodeproj/
│   ├── project.pbxproj
│   ├── project.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   └── xcshareddata/
│       └── xcschemes/
│           └── JTAppleCalendar.xcscheme
├── LICENSE
├── Package.swift
├── README.md
├── SampleJTAppleCalendar/
│   ├── AppDelegate.swift
│   ├── Assets.xcassets/
│   │   ├── AppIcon.appiconset/
│   │   │   └── Contents.json
│   │   ├── Contents.json
│   │   └── cube.imageset/
│   │       └── Contents.json
│   ├── Base.lproj/
│   │   └── LaunchScreen.storyboard
│   ├── Example Calendars/
│   │   ├── TestOrientationChanges.swift
│   │   ├── TestPersianCalendar.swift
│   │   ├── TestRangeSelectionViewController.swift
│   │   ├── TestViewController.swift
│   │   ├── TestYearViewViewController.swift
│   │   └── ViewController.swift
│   ├── ExampleDateCells/
│   │   ├── DateCellCreatedWithCode/
│   │   │   └── CodeCellView.swift
│   │   └── DateCellCreatedWithXIB/
│   │       ├── CellView.swift
│   │       └── CellView.xib
│   ├── ExampleSectionHeaders/
│   │   ├── HeaderAsClass/
│   │   │   ├── CodePinkSectionHeaderView.swift
│   │   │   └── CodeWhiteSectionHeaderView.swift
│   │   └── HeaderAsXibs/
│   │       ├── PinkSectionHeaderView.swift
│   │       ├── PinkSectionHeaderView.xib
│   │       ├── WhiteSectionHeaderView.swift
│   │       └── WhiteSectionHeaderView.xib
│   ├── Info.plist
│   ├── Main.storyboard
│   └── SceneDelegate.swift
├── SampleJTAppleCalendar.xcodeproj/
│   ├── project.pbxproj
│   ├── project.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   └── xcshareddata/
│       └── xcschemes/
│           └── SampleJTAppleCalendar.xcscheme
├── SampleJTAppleCalendarUITests/
│   ├── Info.plist
│   └── SampleJTAppleCalendarUITests.swift
├── Sources/
│   └── JTAppleCalendar/
│       ├── CalendarEnums.swift
│       ├── CalendarStructs.swift
│       ├── GlobalFunctionsAndExtensions.swift
│       ├── Info.plist
│       ├── JTACCollectionMonthViewDelegates.swift
│       ├── JTACCollectionYearViewDelegates.swift
│       ├── JTACDayCell.swift
│       ├── JTACInteractionMonthFunctions.swift
│       ├── JTACInteractionYearFunctions.swift
│       ├── JTACMonthActionFunctions.swift
│       ├── JTACMonthCell.swift
│       ├── JTACMonthDelegateProtocol.swift
│       ├── JTACMonthLayout.swift
│       ├── JTACMonthLayoutHorizontalCalendar.swift
│       ├── JTACMonthLayoutProtocol.swift
│       ├── JTACMonthLayoutVerticalCalendar.swift
│       ├── JTACMonthQueryFunctions.swift
│       ├── JTACMonthReusableView.swift
│       ├── JTACMonthView.swift
│       ├── JTACMonthViewProtocols.swift
│       ├── JTACScrollViewDelegates.swift
│       ├── JTACVariables.swift
│       ├── JTACYearView.swift
│       ├── JTACYearViewProtocols.swift
│       ├── JTAppleCalendar.h
│       └── PrivacyInfo.xcprivacy
├── Tests/
│   ├── JTAppleCalendarTests/
│   │   ├── JTAppleCalendarTests.swift
│   │   └── XCTestManifests.swift
│   └── LinuxMain.swift
└── docs/
    ├── adding-events/
    │   └── Adding Events.md
    ├── build-calendar/
    │   └── Build A Calendar From Scratch.md
    ├── common-elements/
    │   ├── Common Elements.md
    │   ├── configure-in-out-month-dates/
    │   │   └── Configuring inDates monthDates outDates.md
    │   ├── device-rotation/
    │   │   └── Handling Device Rotation.md
    │   └── regular-selection/
    │       └── Regular Selection.md
    ├── get-started/
    │   └── Get Started.md
    ├── headers/
    │   └── Headers.md
    ├── implementing-week-numbers/
    │   └── Implementing week numbers.md
    ├── installation/
    │   └── Installation.md
    ├── migration-guide/
    │   └── v8 Migration Guide.md
    ├── range-selection-styles/
    │   └── Range selection styles.md
    ├── scrolling-modes/
    │   └── Scrolling Modes.md
    └── switch-month-to-week-view/
        └── Switch between month-view and week-view.md
Condensed preview — 88 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (602K chars).
[
  {
    "path": ".github/ISSUE_TEMPLATE",
    "chars": 295,
    "preview": "<!--- \nBEFORE SUBMITTING AN ISSUE: Make sure you are on the latest JTAppleCalendar (8.0.5)\nIf you want to continue makin"
  },
  {
    "path": ".gitignore",
    "chars": 680,
    "preview": "# OS X\n.DS_Store\n\n# Xcode\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.pers"
  },
  {
    "path": ".swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata",
    "chars": 135,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef"
  },
  {
    "path": ".swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": ".tailor.yml",
    "chars": 31,
    "preview": "except:\n    - upper-camel-case\n"
  },
  {
    "path": ".travis.yml",
    "chars": 1618,
    "preview": "language: objective-c\nosx_image: xcode10\nenv:\n  global:\n  - LC_CTYPE=en_US.UTF-8\n  - LANG=en_US.UTF-8\n  - WORKSPACE=JTAp"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 22646,
    "preview": "# Change Log\nAll notable changes to this project will be documented in this file.\n`JTAppleCalendar` adheres to [Semantic"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 99,
    "preview": "> [!CAUTION]\n> This document has not been written yet. Please consider submitting a PR to help out\n"
  },
  {
    "path": "JTAppleCalendar.podspec",
    "chars": 944,
    "preview": "Pod::Spec.new do |s|\n  s.name             = \"JTAppleCalendar\"\n  s.version          = \"8.0.5\"\n  s.summary          = \"The"
  },
  {
    "path": "JTAppleCalendar.xcodeproj/project.pbxproj",
    "chars": 25009,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 50;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "JTAppleCalendar.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 160,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:JTAppleCalendar"
  },
  {
    "path": "JTAppleCalendar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "JTAppleCalendar.xcodeproj/xcshareddata/xcschemes/JTAppleCalendar.xcscheme",
    "chars": 2429,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1100\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "LICENSE",
    "chars": 1073,
    "preview": "Copyright (c) 2016 JayT <patchthecode@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "Package.swift",
    "chars": 645,
    "preview": "// swift-tools-version:5.3\n// The swift-tools-version declares the minimum version of Swift required to build this packa"
  },
  {
    "path": "README.md",
    "chars": 4220,
    "preview": "[![jtapplecalendarnewlogo](https://cloud.githubusercontent.com/assets/2439146/20656424/a1c98c8e-b4e1-11e6-9833-5fa6430f5"
  },
  {
    "path": "SampleJTAppleCalendar/AppDelegate.swift",
    "chars": 1628,
    "preview": "//\n//  AppDelegate.swift\n//  SampleJTAppleCalendar\n//\n//  Created by Jeron Thomas on 2019-06-25.\n//  Copyright © 2019 Os"
  },
  {
    "path": "SampleJTAppleCalendar/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 1590,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\""
  },
  {
    "path": "SampleJTAppleCalendar/Assets.xcassets/Contents.json",
    "chars": 62,
    "preview": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "SampleJTAppleCalendar/Assets.xcassets/cube.imageset/Contents.json",
    "chars": 301,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"cube.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n   "
  },
  {
    "path": "SampleJTAppleCalendar/Base.lproj/LaunchScreen.storyboard",
    "chars": 1665,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
  },
  {
    "path": "SampleJTAppleCalendar/Example Calendars/TestOrientationChanges.swift",
    "chars": 305,
    "preview": "//\n//  TestOrientationChanges.swift\n//  JTAppleCalendar\n//\n//  Created by Jay Thomas on 2017-08-19.\n//\n\nimport UIKit\n\ncl"
  },
  {
    "path": "SampleJTAppleCalendar/Example Calendars/TestPersianCalendar.swift",
    "chars": 5024,
    "preview": "//\n//  TestPersianCalendar.swift\n//  SampleCalendar\n//\n//  Copyright © 2017 Aminous. All rights reserved.\n//\n\nimport UIK"
  },
  {
    "path": "SampleJTAppleCalendar/Example Calendars/TestRangeSelectionViewController.swift",
    "chars": 4684,
    "preview": "//\n//  TestRangeSelectionViewController.swift\n//  JTAppleCalendar iOS\n//\n//  Created by Jay Thomas on 2018-08-07.\n//\n\nim"
  },
  {
    "path": "SampleJTAppleCalendar/Example Calendars/TestViewController.swift",
    "chars": 7394,
    "preview": "//\n//  TestViewController.swift\n//  JTAppleCalendar iOS\n//\n//  Created by Jay Thomas on 2017-07-11.\n//\n\nimport UIKit\nimp"
  },
  {
    "path": "SampleJTAppleCalendar/Example Calendars/TestYearViewViewController.swift",
    "chars": 3943,
    "preview": "//\n//  TestYearViewViewController.swift\n//  JTAppleCalendar\n//\n//  Created by JayT on 2019-05-11.\n//\n\nimport UIKit\nimpor"
  },
  {
    "path": "SampleJTAppleCalendar/Example Calendars/ViewController.swift",
    "chars": 17229,
    "preview": "//\n//  ViewController.swift\n//  JTAppleCalendar iOS Example\n//\n//  Created by JayT on 2016-08-10.\n//\n//\n\nimport UIKit\nim"
  },
  {
    "path": "SampleJTAppleCalendar/ExampleDateCells/DateCellCreatedWithCode/CodeCellView.swift",
    "chars": 859,
    "preview": "//\n//  CodeCellView.swift\n//  JTAppleCalendar\n//\n//  Created by JayT on 2016-05-26.\n//  Copyright © 2016 CocoaPods. All "
  },
  {
    "path": "SampleJTAppleCalendar/ExampleDateCells/DateCellCreatedWithXIB/CellView.swift",
    "chars": 328,
    "preview": "//\n//  CellView.swift\n//  testApplicationCalendar\n//\n//  Created by JayT on 2016-03-04.\n//  Copyright © 2016 OS-Tech. Al"
  },
  {
    "path": "SampleJTAppleCalendar/ExampleDateCells/DateCellCreatedWithXIB/CellView.xib",
    "chars": 4491,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsClass/CodePinkSectionHeaderView.swift",
    "chars": 721,
    "preview": "//\n//  CodePinkSectionHeaderView.swift\n//  JTAppleCalendar\n//\n//  Created by JayT on 2016-07-15.\n//  Copyright © 2016 Co"
  },
  {
    "path": "SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsClass/CodeWhiteSectionHeaderView.swift",
    "chars": 878,
    "preview": "//\n//  CodeWhiteSectionHeaderView.swift\n//  JTAppleCalendar\n//\n//  Created by JayT on 2016-07-15.\n//  Copyright © 2016 C"
  },
  {
    "path": "SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsXibs/PinkSectionHeaderView.swift",
    "chars": 276,
    "preview": "//\n//  PinkSectionHeaderView.swift\n//  JTAppleCalendar\n//\n//  Created by JayT on 2016-05-11.\n//  Copyright © 2016 CocoaP"
  },
  {
    "path": "SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsXibs/PinkSectionHeaderView.xib",
    "chars": 2785,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsXibs/WhiteSectionHeaderView.swift",
    "chars": 282,
    "preview": "//\n//  WhiteSectionHeaderView.swift\n//  JTAppleCalendar\n//\n//  Created by JayT on 2016-05-16.\n//  Copyright © 2016 Cocoa"
  },
  {
    "path": "SampleJTAppleCalendar/ExampleSectionHeaders/HeaderAsXibs/WhiteSectionHeaderView.xib",
    "chars": 2548,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
  },
  {
    "path": "SampleJTAppleCalendar/Info.plist",
    "chars": 2079,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "SampleJTAppleCalendar/Main.storyboard",
    "chars": 152600,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "SampleJTAppleCalendar/SceneDelegate.swift",
    "chars": 2357,
    "preview": "//\n//  SceneDelegate.swift\n//  SampleJTAppleCalendar\n//\n//  Created by Jeron Thomas on 2019-06-25.\n//  Copyright © 2019 "
  },
  {
    "path": "SampleJTAppleCalendar.xcodeproj/project.pbxproj",
    "chars": 28025,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 52;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "SampleJTAppleCalendar.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 135,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef"
  },
  {
    "path": "SampleJTAppleCalendar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "SampleJTAppleCalendar.xcodeproj/xcshareddata/xcschemes/SampleJTAppleCalendar.xcscheme",
    "chars": 3442,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1100\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "SampleJTAppleCalendarUITests/Info.plist",
    "chars": 727,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "SampleJTAppleCalendarUITests/SampleJTAppleCalendarUITests.swift",
    "chars": 1517,
    "preview": "//\n//  SampleJTAppleCalendarUITests.swift\n//  SampleJTAppleCalendarUITests\n//\n//  Created by Jeron Thomas on 2019-11-16."
  },
  {
    "path": "Sources/JTAppleCalendar/CalendarEnums.swift",
    "chars": 5897,
    "preview": "//\n//  CalendarEnums.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTAppleCalend"
  },
  {
    "path": "Sources/JTAppleCalendar/CalendarStructs.swift",
    "chars": 17575,
    "preview": "//\n//  CalendarStructs.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTAppleCale"
  },
  {
    "path": "Sources/JTAppleCalendar/GlobalFunctionsAndExtensions.swift",
    "chars": 2678,
    "preview": "//\n//  GlobalFunctionsAndExtensions.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecod"
  },
  {
    "path": "Sources/JTAppleCalendar/Info.plist",
    "chars": 752,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACCollectionMonthViewDelegates.swift",
    "chars": 12784,
    "preview": "//\n//  JTACCollectionViewDelegates.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACCollectionYearViewDelegates.swift",
    "chars": 4112,
    "preview": "//\n//  JTACCollectionYearViewDelegates.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthe"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACDayCell.swift",
    "chars": 2409,
    "preview": "//\n//  JTACDayCell.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTAppleCalendar"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACInteractionMonthFunctions.swift",
    "chars": 32904,
    "preview": "//\n//  JTACInteractionMonthFunctions.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchtheco"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACInteractionYearFunctions.swift",
    "chars": 1743,
    "preview": "//\n//  UserInteractionYearFunctions.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecod"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACMonthActionFunctions.swift",
    "chars": 15261,
    "preview": "//\n//  JTACMonthActionFunctions.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JT"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACMonthCell.swift",
    "chars": 5935,
    "preview": "//\n//  JTACMonthCell.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTAppleCalend"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACMonthDelegateProtocol.swift",
    "chars": 2358,
    "preview": "//\n//  JTACMonthDelegateProtocol.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/J"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACMonthLayout.swift",
    "chars": 26369,
    "preview": "//\n//  JTACMonthLayout.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTAppleCale"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACMonthLayoutHorizontalCalendar.swift",
    "chars": 4542,
    "preview": "//\n//  JTACMonthLayoutHorizontalCalendar.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patcht"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACMonthLayoutProtocol.swift",
    "chars": 1567,
    "preview": "//\n//  JTACMonthLayoutProtocol.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTA"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACMonthLayoutVerticalCalendar.swift",
    "chars": 4898,
    "preview": "//\n//  JTACMonthLayoutVerticalCalendar.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthe"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACMonthQueryFunctions.swift",
    "chars": 23290,
    "preview": "//\n//  JTACMonthQueryFunctions.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTA"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACMonthReusableView.swift",
    "chars": 1893,
    "preview": "//\n//  JTACMonthReusableView.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTApp"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACMonthView.swift",
    "chars": 10438,
    "preview": "//\n//  JTACMonthView.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTAppleCalend"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACMonthViewProtocols.swift",
    "chars": 11244,
    "preview": "//\n//  JTACMonthViewProtocols.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTAp"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACScrollViewDelegates.swift",
    "chars": 15983,
    "preview": "//\n//  JTACScrollViewDelegates.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTA"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACVariables.swift",
    "chars": 4748,
    "preview": "//\n//  JTACVariables.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTAppleCalend"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACYearView.swift",
    "chars": 3321,
    "preview": "//\n//  JTAppleCalendarYearView.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTA"
  },
  {
    "path": "Sources/JTAppleCalendar/JTACYearViewProtocols.swift",
    "chars": 2322,
    "preview": "//\n//  JTACYearViewProtocols.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTApp"
  },
  {
    "path": "Sources/JTAppleCalendar/JTAppleCalendar.h",
    "chars": 1619,
    "preview": "//\n//  JTACMonthView.swift\n//\n//  Copyright (c) 2016-2020 JTAppleCalendar (https://github.com/patchthecode/JTAppleCalend"
  },
  {
    "path": "Sources/JTAppleCalendar/PrivacyInfo.xcprivacy",
    "chars": 373,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Tests/JTAppleCalendarTests/JTAppleCalendarTests.swift",
    "chars": 432,
    "preview": "import XCTest\n@testable import JTAppleCalendar\n\nfinal class JTAppleCalendarTests: XCTestCase {\n    func testExample() {\n"
  },
  {
    "path": "Tests/JTAppleCalendarTests/XCTestManifests.swift",
    "chars": 165,
    "preview": "import XCTest\n\n#if !canImport(ObjectiveC)\npublic func allTests() -> [XCTestCaseEntry] {\n    return [\n        testCase(JT"
  },
  {
    "path": "Tests/LinuxMain.swift",
    "chars": 132,
    "preview": "import XCTest\n\nimport JTAppleCalendarTests\n\nvar tests = [XCTestCaseEntry]()\ntests += JTAppleCalendarTests.allTests()\nXCT"
  },
  {
    "path": "docs/adding-events/Adding Events.md",
    "chars": 4502,
    "preview": "# Adding Events\n\n> [!WARNING]\n> This documentation requires assistance, particularly updating to SwiftUI. If possible, p"
  },
  {
    "path": "docs/build-calendar/Build A Calendar From Scratch.md",
    "chars": 4660,
    "preview": "# Build a Calendar from scratch\n\n## HELP REQUIRED - Using SwiftUI\n\n> [!WARNING]\n> This section is incomplete, please hel"
  },
  {
    "path": "docs/common-elements/Common Elements.md",
    "chars": 605,
    "preview": "# Common elements of every calendar\n\n> [!WARNING]\n> This section requires assistance. Please submit a PR if possible to "
  },
  {
    "path": "docs/common-elements/configure-in-out-month-dates/Configuring inDates monthDates outDates.md",
    "chars": 4903,
    "preview": "# Configuring inDates monthDates outDates\n\n> [!WARNING]\n> This documentation requires assistance, particularly updating "
  },
  {
    "path": "docs/common-elements/device-rotation/Handling Device Rotation.md",
    "chars": 1096,
    "preview": "# Handling device rotation\n\nWhenever the device orientation changes, you need to let the library know about it by callin"
  },
  {
    "path": "docs/common-elements/regular-selection/Regular Selection.md",
    "chars": 2668,
    "preview": "# Regular selection\n\n> [!WARNING]\n> This section requires assistance, particularly updating to SwiftUI. Please submit a "
  },
  {
    "path": "docs/get-started/Get Started.md",
    "chars": 3023,
    "preview": "# JTAppleCalendar Tutorials and Examples [V 7.1.7]\n\n> [!CAUTION]\n> This documentation comes from [this zipped version of"
  },
  {
    "path": "docs/headers/Headers.md",
    "chars": 3829,
    "preview": "# Headers\n\n## Outside Headers\n\nThe easiest header you can create is with a UIStackView containing 7 UILabels for the day"
  },
  {
    "path": "docs/implementing-week-numbers/Implementing week numbers.md",
    "chars": 3858,
    "preview": "# Implementing week numbers\n\n> [!WARNING]\n> This documentation requires assistance, particularly updating to SwiftUI. If"
  },
  {
    "path": "docs/installation/Installation.md",
    "chars": 2500,
    "preview": "# Installation\n\nThis library can be installed in 3 ways; Cocoapods, Carthage, or manually.\n\n## Via Cocoapods\n\nCocoaPods "
  },
  {
    "path": "docs/migration-guide/v8 Migration Guide.md",
    "chars": 2497,
    "preview": "# JTAppleCalendar Version 8.0.0 Migration guide\n\nChanges in version 8.0.0 are mainly that the function names are changed"
  },
  {
    "path": "docs/range-selection-styles/Range selection styles.md",
    "chars": 4560,
    "preview": "# Range selection styles\n\n> [!WARNING]\n> This documentation requires assistance, particularly updating to SwiftUI. If po"
  },
  {
    "path": "docs/scrolling-modes/Scrolling Modes.md",
    "chars": 1905,
    "preview": "# Scrolling modes\n\n> [!WARNING]\n> This section requires assistance. Please submit a PR if possible to help improve docum"
  },
  {
    "path": "docs/switch-month-to-week-view/Switch between month-view and week-view.md",
    "chars": 4914,
    "preview": "# Switch between month-view and week-view\n\n> [!WARNING]\n> This documentation requires assistance, particularly updating "
  }
]

About this extraction

This page contains the full source code of the patchthecode/JTAppleCalendar GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 88 files (558.4 KB), approximately 132.9k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!