pages/fullcalendar-main/packages/web-component/README.md

79 lines
2 KiB
Markdown
Raw Normal View History

2024-03-06 14:33:17 +01:00
# FullCalendar Web Component
This package provides a FullCalendar [Web Component](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) (aka "Custom Element").
## Installing via NPM
Install the core package, the web-component package, and any plugins you plan to use:
```sh
npm install --save \
@fullcalendar/core \
@fullcalendar/web-component \
@fullcalendar/daygrid
```
Then, either register the element globally under its default tag name of `<full-calendar />`:
```js
import '@fullcalendar/web-component/global'
```
Or, customize the tag name:
```js
import { FullCalendarElement } from '@fullcalendar/web-component'
customElements.define('some-calendar-tag', FullCalendarElement);
```
## Installing via CDN
Include script tags for the core package, the web-component package, and any plugins you plan to use:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<script src='https://cdn.jsdelivr.net/npm/@fullcalendar/core/index.global.min.js'></script>
<script src='https://cdn.jsdelivr.net/npm/@fullcalendar/web-component/index.global.min.js'></script>
<script src='https://cdn.jsdelivr.net/npm/@fullcalendar/daygrid/index.global.min.js'></script>
</head>
<body>
<full-calendar shadow options='{
"headerToolbar": {
"left": "prev,next today",
"center": "title",
"right": "dayGridMonth,dayGridWeek,dayGridDay"
}
}' />
</body>
</html>
```
## Options
The full-calendar element accepts a single `options` attribute. It must be a valid JSON string.
The `shadow` attribute is necessary for rendering the calendar within its own shadow DOM (added in v6.1.0). This is recommended.
It is possible to set an `options` *property* on the DOM element. This property is a real JavaScript object, not merely a JSON string.
```js
const fullCalendarElement = document.querySelector('full-calendar')
fullCalendarElement.options = {
headerToolbar: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,dayGridWeek,dayGridDay'
}
}
```