├── CHANGELOG.md
├── test
└── flutter_event_calendar_test.dart
├── example
├── ios
│ ├── Runner
│ │ ├── Runner-Bridging-Header.h
│ │ ├── Assets.xcassets
│ │ │ ├── LaunchImage.imageset
│ │ │ │ ├── LaunchImage.png
│ │ │ │ ├── LaunchImage@2x.png
│ │ │ │ ├── LaunchImage@3x.png
│ │ │ │ ├── README.md
│ │ │ │ └── Contents.json
│ │ │ └── AppIcon.appiconset
│ │ │ │ ├── Icon-App-20x20@1x.png
│ │ │ │ ├── Icon-App-20x20@2x.png
│ │ │ │ ├── Icon-App-20x20@3x.png
│ │ │ │ ├── Icon-App-29x29@1x.png
│ │ │ │ ├── Icon-App-29x29@2x.png
│ │ │ │ ├── Icon-App-29x29@3x.png
│ │ │ │ ├── Icon-App-40x40@1x.png
│ │ │ │ ├── Icon-App-40x40@2x.png
│ │ │ │ ├── Icon-App-40x40@3x.png
│ │ │ │ ├── Icon-App-60x60@2x.png
│ │ │ │ ├── Icon-App-60x60@3x.png
│ │ │ │ ├── Icon-App-76x76@1x.png
│ │ │ │ ├── Icon-App-76x76@2x.png
│ │ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ │ └── Contents.json
│ │ ├── AppDelegate.swift
│ │ ├── Base.lproj
│ │ │ ├── Main.storyboard
│ │ │ └── LaunchScreen.storyboard
│ │ └── Info.plist
│ ├── Flutter
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ └── AppFrameworkInfo.plist
│ ├── Runner.xcodeproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── .gitignore
│ └── Podfile
├── android
│ ├── gradle.properties
│ ├── app
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── res
│ │ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── drawable
│ │ │ │ │ │ └── launch_background.xml
│ │ │ │ │ └── values
│ │ │ │ │ │ └── styles.xml
│ │ │ │ ├── kotlin
│ │ │ │ │ └── ir
│ │ │ │ │ │ └── faridfr
│ │ │ │ │ │ └── flutter_event_calendar_example
│ │ │ │ │ │ └── MainActivity.kt
│ │ │ │ └── AndroidManifest.xml
│ │ │ ├── debug
│ │ │ │ └── AndroidManifest.xml
│ │ │ └── profile
│ │ │ │ └── AndroidManifest.xml
│ │ └── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ ├── .gitignore
│ ├── settings.gradle
│ └── build.gradle
├── assets
│ ├── fonts
│ │ ├── IRANSansMobile_Black.ttf
│ │ └── DancingScript_VariableFont_wght.ttf
│ ├── back.svg
│ ├── language_icon.svg
│ ├── color_filter.svg
│ └── calendar.svg
├── lib
│ ├── models
│ │ ├── calendar_color_model.dart
│ │ ├── expanded_item_model.dart
│ │ └── calendar_event_model.dart
│ ├── main.dart
│ ├── injection.dart
│ └── widgets
│ │ ├── setting
│ │ ├── setting.dart
│ │ ├── date_picker_item.dart
│ │ ├── radio_button_list.dart
│ │ ├── item_setting.dart
│ │ ├── expanded_card_setting.dart
│ │ ├── header_special_days.dart
│ │ ├── options.dart
│ │ ├── calendar_options.dart
│ │ ├── header_options.dart
│ │ └── date_picker.dart
│ │ ├── event_calendar
│ │ ├── home_page.dart
│ │ └── event_calendar.dart
│ │ ├── color
│ │ ├── calendar_color_item.dart
│ │ └── color_picker_row.dart
│ │ └── code_preview
│ │ └── code_preview.dart
├── .metadata
├── README.md
├── .gitignore
└── pubspec.yaml
├── assets
├── eventCalendar.gif
├── event_calendar_options.png
└── flutter_event_calendar.png
├── SECURITY.md
├── lib
├── src
│ ├── models
│ │ ├── style
│ │ │ ├── selected_day_options.dart
│ │ │ ├── select_year_options.dart
│ │ │ ├── select_month_options.dart
│ │ │ ├── event_options.dart
│ │ │ ├── headers_options.dart
│ │ │ └── day_options.dart
│ │ ├── event.dart
│ │ ├── calendar_options.dart
│ │ └── datetime.dart
│ ├── utils
│ │ ├── calendar_types.dart
│ │ └── style_provider.dart
│ ├── widgets
│ │ ├── event_card.dart
│ │ ├── select_year.dart
│ │ ├── events.dart
│ │ ├── select_day.dart
│ │ ├── select_month.dart
│ │ ├── day.dart
│ │ ├── calendar_daily.dart
│ │ └── header.dart
│ ├── providers
│ │ ├── instance_provider.dart
│ │ └── calendars
│ │ │ ├── calendar_provider.dart
│ │ │ ├── gregorian_calendar.dart
│ │ │ └── jalali_calendar.dart
│ ├── dictionaries
│ │ ├── dictionary.dart
│ │ ├── fa.dart
│ │ ├── en.dart
│ │ ├── pt.dart
│ │ └── de.dart
│ └── handlers
│ │ ├── event_selector.dart
│ │ ├── calendar_monthly_utils.dart
│ │ ├── translator.dart
│ │ ├── calendar_utils.dart
│ │ └── event_calendar.dart
└── flutter_event_calendar.dart
├── .metadata
├── pubspec.yaml
├── .github
├── PULL_REQUEST_TEMPLATE.md
└── ISSUE_TEMPLATE
│ ├── feature_request.yaml
│ └── bug_report.yaml
├── LICENSE
├── .vscode
└── launch.json
├── .gitignore
├── pubspec.lock
├── CODE_OF_CONDUCT.md
└── README.md
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## [1.0.0] - Version 1.0.0 released
--------------------------------------------------------------------------------
/test/flutter_event_calendar_test.dart:
--------------------------------------------------------------------------------
1 | void main() {
2 | // todo
3 | }
4 |
--------------------------------------------------------------------------------
/example/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/assets/eventCalendar.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/assets/eventCalendar.gif
--------------------------------------------------------------------------------
/assets/event_calendar_options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/assets/event_calendar_options.png
--------------------------------------------------------------------------------
/assets/flutter_event_calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/assets/flutter_event_calendar.png
--------------------------------------------------------------------------------
/example/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.enableR8=true
3 | android.useAndroidX=true
4 | android.enableJetifier=true
5 |
--------------------------------------------------------------------------------
/example/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/example/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Reporting a Vulnerability
4 |
5 | For reporting a vulnerability you can send an email to froozan[at]yahoo.com
6 |
--------------------------------------------------------------------------------
/example/assets/fonts/IRANSansMobile_Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/assets/fonts/IRANSansMobile_Black.ttf
--------------------------------------------------------------------------------
/example/assets/fonts/DancingScript_VariableFont_wght.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/assets/fonts/DancingScript_VariableFont_wght.ttf
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/novaday-co/flutter_event_calendar/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/lib/src/models/style/selected_day_options.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class DayOptions{
4 | String font;
5 | Color? selectedColor;
6 |
7 | DayOptions({this.font = '', this.selectedColor});
8 | }
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example/android/app/src/main/kotlin/ir/faridfr/flutter_event_calendar_example/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package ir.faridfr.flutter_event_calendar_example
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/lib/src/models/style/select_year_options.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class YearOptions{
4 | String font;
5 | Color? selectedColor;
6 | Color? backgroundColor;
7 |
8 | YearOptions({this.font = '', this.selectedColor,this.backgroundColor});
9 | }
--------------------------------------------------------------------------------
/lib/src/models/style/select_month_options.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class MonthOptions{
4 | String font;
5 | Color? selectedColor;
6 | Color? backgroundColor;
7 |
8 | MonthOptions({this.font = '', this.selectedColor,this.backgroundColor});
9 | }
--------------------------------------------------------------------------------
/lib/src/utils/calendar_types.dart:
--------------------------------------------------------------------------------
1 | enum CalendarType { JALALI, GREGORIAN }
2 | enum ViewType { DAILY, MONTHLY }
3 | enum MonthStringTypes { FULL, SHORT }
4 | enum WeekDayStringTypes { FULL, SHORT }
5 | enum PartFormat { MONTH, DAY, YEAR }
6 | enum DayEventCounterViewType { DOT, LABEL }
7 |
--------------------------------------------------------------------------------
/example/lib/models/calendar_color_model.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class CalendarColorModel {
4 | String title;
5 | Color color;
6 | Widget body;
7 | CalendarColorModel(
8 | {required this.title, required this.color, required this.body});
9 | }
10 |
--------------------------------------------------------------------------------
/example/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
7 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 216dee60c0cc9449f0b29bcf922974d612263e24
8 | channel: stable
9 |
10 | project_type: package
11 |
--------------------------------------------------------------------------------
/example/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 216dee60c0cc9449f0b29bcf922974d612263e24
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/example/assets/back.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/example/lib/models/expanded_item_model.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class ExpandedItemModel {
4 | const ExpandedItemModel(
5 | {required this.title,
6 | required this.body,
7 | required this.icon,
8 | required this.definition});
9 | final String title;
10 | final String icon;
11 | final Widget body;
12 | final String definition;
13 | }
14 |
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/example/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lib/flutter_event_calendar.dart:
--------------------------------------------------------------------------------
1 | library flutter_event_calendar;
2 |
3 | export 'src/handlers/event_calendar.dart';
4 | export 'src/models/calendar_options.dart';
5 | export 'src/models/datetime.dart';
6 | export 'src/models/event.dart';
7 | export 'src/models/style/day_options.dart';
8 | export 'src/models/style/event_options.dart';
9 | export 'src/models/style/headers_options.dart';
10 | export 'src/utils/calendar_types.dart';
11 |
--------------------------------------------------------------------------------
/example/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/example/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: flutter_event_calendar
2 | description: Gregorian and Jalali Event calendar for flutter with options for change style
3 | version: 1.0.0
4 | homepage: https://github.com/novaday-co/flutter_event_calendar
5 |
6 | environment:
7 | sdk: ">=2.12.0 <3.0.0"
8 | flutter: ">=1.17.0"
9 |
10 | dependencies:
11 | shamsi_date: ^0.15.0
12 | scoped_model: ^2.0.0
13 | flutter:
14 | sdk: flutter
15 | collection: ^1.16.0
16 |
17 | dev_dependencies:
18 | flutter_test:
19 | sdk: flutter
20 |
21 | flutter:
22 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/example/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_event_calendar_example/injection.dart';
3 | import 'package:flutter_event_calendar_example/widgets/event_calendar/home_page.dart';
4 |
5 |
6 | void main() {
7 | setUp();
8 | runApp(MyApp());
9 | }
10 |
11 | class MyApp extends StatelessWidget {
12 | const MyApp({
13 | Key? key,
14 | }) : super(key: key);
15 |
16 |
17 |
18 |
19 | @override
20 | Widget build(BuildContext context) {
21 | return MaterialApp(
22 | home: HomePage(),
23 | );
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/lib/src/models/event.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import '../../flutter_event_calendar.dart';
3 |
4 | class Event {
5 | late int listIndex;
6 | late Widget child;
7 | late CalendarDateTime dateTime;
8 | late Function? onTap;
9 | late Function? onLongPress;
10 |
11 | Event({
12 | required this.child,
13 | required this.dateTime,
14 | onTap(int listIndex)?,
15 | onLongPress,
16 | }) {
17 | this.onTap = onTap;
18 | this.onLongPress = onLongPress ??
19 | (int listIndex) {
20 | print('LongPress ' + listIndex.toString());
21 | };
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/lib/src/widgets/event_card.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | import '../models/event.dart';
4 |
5 | class EventCard extends StatelessWidget {
6 | Event fullCalendarEvent;
7 |
8 | EventCard({required this.fullCalendarEvent});
9 |
10 | @override
11 | Widget build(BuildContext context) {
12 | return GestureDetector(
13 | onTap: (() {
14 | fullCalendarEvent.onTap?.call(fullCalendarEvent.listIndex);
15 | }),
16 | onLongPress: (() {
17 | fullCalendarEvent.onLongPress?.call(fullCalendarEvent.listIndex);
18 | }),
19 | child: fullCalendarEvent.child,
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/example/README.md:
--------------------------------------------------------------------------------
1 | # flutter_event_calendar_example
2 |
3 | Example for Flutter Event Calendar package
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/example/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 |
28 | # Exceptions to above rules.
29 | !default.mode1v3
30 | !default.mode2v3
31 | !default.pbxuser
32 | !default.perspectivev3
33 |
--------------------------------------------------------------------------------
/lib/src/providers/instance_provider.dart:
--------------------------------------------------------------------------------
1 | import '../../flutter_event_calendar.dart';
2 | import 'calendars/calendar_provider.dart';
3 | import 'calendars/gregorian_calendar.dart';
4 | import 'calendars/jalali_calendar.dart';
5 |
6 | CalendarProvider createInstance(CalendarType cType) {
7 | final Map _factories = {
8 | CalendarType.JALALI: JalaliCalendar(),
9 | CalendarType.GREGORIAN: GregorianCalendar()
10 | };
11 | if (!_factories.keys.contains(cType)) {
12 | throw Exception(
13 | "Cannot create instance of calendar, check available calendar types or create your own calendar that implements BaseCalendarProvider");
14 | }
15 |
16 | return _factories[cType]!;
17 | }
18 |
--------------------------------------------------------------------------------
/example/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.6.10'
3 | repositories {
4 | google()
5 | jcenter()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:3.5.0'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | jcenter()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 | subprojects {
23 | project.buildDir = "${rootProject.buildDir}/${project.name}"
24 | }
25 | subprojects {
26 | project.evaluationDependsOn(':app')
27 | }
28 |
29 | task clean(type: Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/lib/src/models/style/event_options.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:scoped_model/scoped_model.dart';
3 |
4 | class EventOptions extends Model {
5 | String? emptyText;
6 | Color emptyTextColor;
7 | IconData emptyIcon;
8 | Color emptyIconColor;
9 | bool Function()? showLoadingForEvent;
10 | Widget Function()? loadingWidget;
11 |
12 | EventOptions({
13 | this.emptyText,
14 | this.showLoadingForEvent,
15 | this.loadingWidget,
16 | this.emptyTextColor = const Color(0xffe5e5e5),
17 | this.emptyIcon = Icons.reorder,
18 | this.emptyIconColor = const Color(0xffebebeb),
19 | });
20 |
21 | static EventOptions of(BuildContext context) =>
22 | ScopedModel.of(context);
23 | }
24 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 | ### Please confirm this pull request meets the following requirements:
3 |
4 | - [ ] I tested my code and it is running perfectly
5 | - [ ] I updated `README.md` and `example\lib\main.dart` due to the changes
6 |
7 | ### Which change are you proposing?
8 |
9 | - [ ] Suggesting edits to an existing style or feature
10 | - [ ] Curating a new feature
11 | - [ ] Something that does not neatly fit into the binary options above
12 |
13 | ---
14 |
15 | > Please replace this line with an explanation of why you think these changes should be made.
16 |
17 | ---
18 |
19 | **Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.**
--------------------------------------------------------------------------------
/example/lib/models/calendar_event_model.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_event_calendar/flutter_event_calendar.dart';
2 | import 'package:equatable/equatable.dart';
3 |
4 | class CalendarEventModel extends Equatable {
5 | String calendarLanguage;
6 | CalendarType calendarType;
7 | CalendarOptions calendarOptions;
8 | HeaderOptions headerOptions;
9 | DayOptions dayOptions;
10 | List specialDays;
11 | CalendarEventModel(
12 | {required this.calendarLanguage,
13 | required this.calendarType,
14 | required this.calendarOptions,
15 | required this.headerOptions,
16 | required this.dayOptions,
17 | required this.specialDays});
18 |
19 | @override
20 | List