3.0.0 • Published 5 years ago

mp-calendar v3.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

Published on webcomponents.org Published on Vaadin  Directory Stars on vaadin.com/directory

<mp-calendar>

It's a web components, providing calendar date functionality and events support, build with Polymer 3.0. For quick navigation between month and year, you can select one from the list. You can get previous version for polymer 1.x or 2.x by chosing different branch.

Demo

mp-calendar docs & demo

Install the component using Bower:

npm install --save mp-calendar

Usage

  1. Import files
import '../mp-calendar/mp-calendar.js'
<script type="module">
    import '../mp-calendar/mp-calendar.js';
</script>
  1. Add the element
<custom-element-demo>
    <template>
        <script src="../webcomponentsjs/webcomponents-lite.js"></script>
        <script type="module">
            import '../mp-calendar/mp-calendar.js';
        </script>
        <next-code-block></next-code-block>
    </template>
</custom-element-demo>

-->

<mp-calendar day-labels='["Su","Mo","Tu","We","Th","Fr","Sa"]'
             disable-prev-days
             disabled-dates="[8, 17, 29]"
             disabled-days='["Tu"]'
             events-file=demo/events.json>
</mp-calendar>

Properties

PropertyTypeDescriptionDefault
day-labelsArrayThis property can be used to localize the elements day labels. Do not change the orderDefault: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
month-labelsArrayThis property can be used to localize the elements month labels.January, February, March, April, May, June, July, August, September, October, November, December
disabled-datesArrayDisable current month's weekdays. Set the disabled dates. ex. disabled-dates="[4, 10, 12, 19, 30]"None
disabled-daysObjectDisable week days. Set the disabled days. This will read the days from dayLabels. If you use custom day labels, same values must be applyied here. ex. For default values: disabled-days='["Monday", "Thursday"]'. For custom labes: day-labels='["Su","Mo","Tu","We","Th","Fr","Sa"]' then disabled-days='["Mo", "Th"]'.None
disabled-in-monthsArrayRelated to disabled-dates & disabled-weeks. In which months, the disabled days or weeks will be disabled. ex. disabled-in-months="[5, 6]". The disabled-dates & disabled-weeks will effective on May & June.All months
disabled-weeksArrayDisable month's weeks, starting from 0 to 4 for default. If show-days-in-month=42 then total weeks are from 0 to 5None
disable-prev-daysBooleanDisable previous month days.false
disable-next-daysBooleanDisable next month days.false
events-fileStringSet a json file that includes the events. ex. events-file="events.json"None
events-objectObjectSet an object containing events. ex. events-object='[{"title":"Red style category","content":"Skype call at 15:40","date":"2018-07-20","category":"red", "color": "#000"}]'None
first-day-of-weekNumberSet the first day of the week. Sunday is 0, Monday is 1 and so on0
show-days-in-monthNumberHow many day will be visible on each month, including previous and next month days.35
min-yearNumberSet the min year list.5
max-yearNumberSet the max year list.5
event-day-colorStringEvent border color for a day with more than 3 events. Color can be set as rgb(a), hex or hsl(a)#b56ce2

Themes

There are 2 additional theme to chose, dark and light-blue. dark style light blue style

You can also customize the calendar your self with the following properties:

PropertyDescription
--main-bgCalendar's main background color
--header-bgCalendar's header background color
--main-header-colorCalendar's header color
--header-icon-bgCalendar's icons background
--header-icon-opacityheader's icon opacity on hover event
--labels-colorThe color of the days
--border-widthCalendar's border width
--border-right-widthCalendar's right border (if you set it to 0 then the dates will have top and bottom border)
--border-colorCalendar's border color
--prev-days-bgCalendar's previous month dates background color
--prev-days-colorCalendar's previous month dates color
--curr-days-bgCalendar's current month dates background
--curr-days-colorCalendar's current month dates color
--next-days-bgCalendar's next month dates background
--next-days-colorCalendar's next month dates color
--disabled-colorCalendar's disabled dates color
--disabled-text-shadowCalendar's disabled dates text shadow effect
--selected-day-bgCalendar's selected day background color
--today-boxshadow-colorCalendar's current date shadow style, it's adding a small border style effect
--selected-day-hover-bgCalendar's selected day background color on hover

Events

There are 4 ready to use categories: red, blue, green and orange. Each day which have an event will also have a color line at the right side, based on the category. If a day have 4 or more events than the display color will get the event-day-color. Date format YYYY-MM-DD. If you change the json file on events-file or an event on events-object, calendar will automatically show the changes. Example:

[
    {
        "title": "Red style category",
        "content": "Skype call at 15:40",
        "date": "2017-06-02",
        "category": "red",
        "color": "#000"
    },
    {
        "title": "orange style category",
        "content": "Meeting at 14:00",
        "date": "2017-06-05",
        "category": "orange"
    },
    {
        "title": "Green style category",
        "content": "Just a notification",
        "date": "2017-06-10",
        "category": "green"
    },
    {
        "title": "Blue style category",
        "content": "Doctor's appointment at 20:00",
        "date": "2017-06-18",
        "category": "blue"
    }
]

Icons

Designed by Designerz Base

Big Thanks

Cross-browser Testing Platform and Open Source <3 Provided by Sauce Labs

npm.io

License

MIT License