All Projects → mattlewis92 → Angular Calendar

mattlewis92 / Angular Calendar

Licence: mit
A calendar component for Angular 12.0+ that can display events on a month, week or day view. The successor of angular-bootstrap-calendar.

Programming Languages

typescript
32286 projects
HTML
75241 projects
SCSS
7915 projects

Projects that are alternatives of or similar to Angular Calendar

React Timeline Gantt
A react Timeline component with virtual rendering
Stars: ✭ 347 (-84.99%)
Mutual labels:  calendar, calendar-component
Vue Hash Calendar
移动端日期、时间选择插件,日期选择面板以日历形式展示。上下滑动切换周/月模式。支持两种模式:1,月模式,左右滑动切换月份。2、周模式,左右滑动切换周。
Stars: ✭ 163 (-92.95%)
Mutual labels:  calendar, calendar-component
Calendarview
An Easy to Use Calendar for iOS (Swift 5.0)
Stars: ✭ 429 (-81.44%)
Mutual labels:  calendar, calendar-component
Primedatepicker
PrimeDatePicker is a tool that provides picking a single day, multiple days, and a range of days.
Stars: ✭ 292 (-87.37%)
Mutual labels:  calendar, calendar-component
React Native Persian Calendar Picker
Persian Calendar Picker Component for React Native
Stars: ✭ 83 (-96.41%)
Mutual labels:  calendar, calendar-component
Vue Functional Calendar
Vue.js Functional Calendar | Component/Package
Stars: ✭ 314 (-86.42%)
Mutual labels:  calendar, calendar-component
Vacalendar
Custom Calendar for iOS in Swift
Stars: ✭ 184 (-92.04%)
Mutual labels:  calendar, calendar-component
Recal
A minimal, accessible React/Preact calendar component using modern CSS.
Stars: ✭ 191 (-91.74%)
Mutual labels:  calendar, calendar-component
Recyclercalendarandroid
A simple DIY library to generate your own custom Calendar View using RecyclerView, written in Kotlin
Stars: ✭ 83 (-96.41%)
Mutual labels:  calendar, calendar-component
Yycalendar
Simple and Clear Calendar
Stars: ✭ 46 (-98.01%)
Mutual labels:  calendar, calendar-component
UltraWeekCalendar
UltraWeekCalendar - Clean UI to select day through weeks
Stars: ✭ 29 (-98.75%)
Mutual labels:  calendar, calendar-component
Xamarin.plugin.calendar
Calendar plugin for Xamarin.Forms
Stars: ✭ 159 (-93.12%)
Mutual labels:  calendar, calendar-component
GCCalendar
A customizable calendar view for iOS 9+ written in Swift.
Stars: ✭ 53 (-97.71%)
Mutual labels:  calendar, calendar-component
Cvcalendar
A custom visual calendar for iOS 8+ written in Swift (>= 4.0).
Stars: ✭ 3,435 (+48.57%)
Mutual labels:  calendar, calendar-component
Customizablecalendar
CustomizableCalendar is a library that allows you to create your calendar, customizing UI and behaviour
Stars: ✭ 214 (-90.74%)
Mutual labels:  calendar, calendar-component
Vue Calendar
🏆 基于 vue 2.0 开发的轻量,高性能日历组件
Stars: ✭ 828 (-64.19%)
Mutual labels:  calendar, calendar-component
Calendarview
Android上一个优雅、万能自定义UI、仿iOS、支持垂直、水平方向切换、支持周视图、自定义周起始、性能高效的日历控件,支持热插拔实现的UI定制!支持标记、自定义颜色、农历、自定义月视图各种显示模式等。Canvas绘制,速度快、占用内存低,你真的想不到日历居然还可以如此优雅!An elegant, highly customized and high-performance Calendar Widget on Android.
Stars: ✭ 7,998 (+245.93%)
Mutual labels:  calendar, calendar-component
Calendar Ios
Calendar View
Stars: ✭ 154 (-93.34%)
Mutual labels:  calendar, calendar-component
Eventscalendar
Events Calendar is a user-friendly library that helps you achieve a cool Calendar UI with events mapping. You can customise every pixel of the calendar as per your wish and still achieve in implementing all the functionalities of the native android calendar in addition with adding dots to the calendar which represents the presence of an event on the respective dates. It can be done easily, you are just a few steps away from implementing your own badass looking Calendar for your very own project!
Stars: ✭ 188 (-91.87%)
Mutual labels:  calendar, calendar-component
Bonsai
Self-hosted family wiki engine / photoalbum
Stars: ✭ 162 (-92.99%)
Mutual labels:  calendar

angular 12.0+ calendar

Sponsorship Build Status codecov npm version License: MIT Twitter Follow

Demo

Sponsors

Become a silver or gold sponsor and get your logo on this README on Github with a link to your site.

Table of contents

About

A calendar component for Angular 12.0+ that can display events on a month, week or day view. The successor of angular-bootstrap-calendar.

Getting started

ng add (recommended)

ng add angular-calendar

Manual setup (ng add will do this all for you)

First install through npm:

npm install --save angular-calendar date-fns

Next include the CSS file in the global (not component scoped) styles of your app:

/* angular-cli file: src/styles.css */
@import "../node_modules/angular-calendar/css/angular-calendar.css";

Finally import the calendar module into your apps module:

import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { CalendarModule, DateAdapter } from 'angular-calendar';
import { adapterFactory } from 'angular-calendar/date-adapters/date-fns';

@NgModule({
  imports: [
    BrowserAnimationsModule,
    CalendarModule.forRoot({
      provide: DateAdapter,
      useFactory: adapterFactory,
    }),
  ],
})
export class MyModule {}

In order to allow the most flexibility for all users there is a substantial amount of boilerplate required to get up and running. Please see the demos list for a series of comprehensive examples of how to use this library within your application.

Once you are up and running, to access a full list of options for each component, the individual APIs are documented here: mwl-calendar-month-view, mwl-calendar-week-view and mwl-calendar-day-view.

If you would like a one on one consultation with me where I can show you the best way to integrate and customise this calendar within your application, then you can get this by becoming a Platinum Sponsor on GitHub.

Please note: angular-calendar uses Scarf to collect anonymized installation analytics. These analytics help support the maintainers of this library. However, if you'd like to opt out, you can do so by setting scarfSettings.enabled = false in your project's package.json. Alternatively, you can set the environment variable SCARF_ANALYTICS=false before you install.

Documentation

To see all available API options, take a look at the auto generated documentation. You may find it helpful to view the examples on the demo page.

Breaking changes

Where possible this library will strictly adhere to semver and only introduce API breaking changes in 0.x releases or new major versions post 1.0. The only exception to this is if you are using custom templates or extending the base components to add additional functionality, whereby critical bug fixes may introduce breakages as the internal API changes.

FAQ

Is this library AoT and universal compatible?

Yes.

What major versions of angular does this library support?

Angular major Last supported angular-calendar version
12.x and higher latest version
6.x - 11.x 0.28.28
5.x 0.24.1
4.x 0.22.3
2.x 0.9.1

No styles are appearing?

No component styles are included with each component to make it easier to override them (otherwise you’d have to use !important on every rule that you customised). Thus you need to import the CSS file separately from node_modules/angular-calendar/css/angular-calendar.css.

How come there are so many dependencies?

When building the calendar some parts were found to be reusable so they were split out into their own modules. Only the bare minimum that is required is included with the calendar, there is no extra code than if there were no dependencies. date-fns especially only imports directly the functions it needs and not the entire library.

The month, week or day view doesn’t meet my project requirements, but the other views do.

Build your own component to replace that view, and use it in place of the one this library provides. It’s impossible to provide a calendar component that meets everyones use cases, hopefully though at least some of the day / week / month view components provided can be customised with the calendars API enough to be of some use to most projects.

How come there’s no year view like the ng1 version?

As there are so many events to show on each month, it doesn’t provide a lot of value and is just an extra burden to maintain. There is nothing to stop someone from building a new lib like angular-calendar-year-view though ;)

Does this calendar work with mobile?

This library is not optimised for mobile. Due to the complex nature of a calendar component, it is non trivial to build a calendar that has a great UX on both desktop and mobile. It is recommended to build your own calendar component for mobile that has a dedicated UX. You may be able to get some degree of mobile support by setting some custom CSS rules for smaller screens on the month view and showing less days on the week view.

How do I use a custom template?

All parts of this calendar can be customised via the use of an ng-template. The recipe for applying one is as follows:

  • Find the template you would like to customise for the month, week or day view component. You can find all available custom templates by reading the documentation for each component. For this example we will pick the cellTemplate from the month view.
  • Next find the corresponding child component that will render the template by viewing the source. For our example of the month view cell it is this component
  • Now copy the template source for your chosen template into your own component and modify as your see fit.
  • Finally pass the template to the components input: <mwl-calendar-month-view [cellTemplate]="cellTemplateId" />
  • You can see an e2e working example of this here

What is the browser compatibility?

All browsers supported by angular, apart from IE9 as it doesn't support flexbox.

Does this library require bootstrap?

No! While the demo site uses bootstrap, it isn't a requirement of this library. The styling is designed to adapt to whatever global styling your app has.

Angular 1 version

Development

Prepare your environment

  • Install Node.js and NPM (should come with)
  • Install local dev dependencies: npm install while current directory is this repo

Development server

Run npm start to start a development server on port 8000 with auto reload + tests.

Testing

Run npm test to run tests once or npm run test:watch to continually run tests.

Release

  • Bump the version in package.json (once the module hits 1.0 this will become automatic)
npm run release
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].