iobroker.fullcalendar 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -14
- package/admin/assets/{index-B98AD8OO.js → index-CmNdY9s1.js} +1 -1
- package/admin/tab_m.html +1 -1
- package/build/lib/agenda.js +10 -0
- package/build/lib/agenda.js.map +1 -1
- package/build/lib/recurrence.js +186 -0
- package/build/lib/recurrence.js.map +1 -0
- package/build/main.js +175 -32
- package/build/main.js.map +1 -1
- package/img/vis2-widget-month.png +0 -0
- package/io-package.json +14 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,6 +13,10 @@ You must not use any external resources, the scheduling is processed only in ioB
|
|
|
13
13
|
|
|
14
14
|

|
|
15
15
|
|
|
16
|
+
The vis-2 widget in the month view with a dark theme: watering, heating mode and balcony light as events.
|
|
17
|
+
|
|
18
|
+

|
|
19
|
+
|
|
16
20
|
You can control your events with a calendar and can plan to control them periodically.
|
|
17
21
|
|
|
18
22
|
- **Duration** of "On/Off" and "Toggle" events can be given in seconds, minutes or hours. With a duration of 1 second, an event works like a push button.
|
|
@@ -58,19 +62,43 @@ sendTo('fullcalendar.0', 'addEvent', { oid: 'hm-rpc.0.ABC.1.STATE', value: false
|
|
|
58
62
|
// at a time (local time, or a timestamp in ms), for 10 minutes, in the calendar "Garden"
|
|
59
63
|
sendTo('fullcalendar.0', 'addEvent', {
|
|
60
64
|
oid: 'hm-rpc.0.PUMP.1.STATE', value: true, start: '2026-10-29T07:30', duration: '10m', calendar: 'Garden', name: 'Pump',
|
|
61
|
-
}, res => log(JSON.stringify(res))); // {id, name, start, ts} or {error}
|
|
65
|
+
}, res => log(JSON.stringify(res))); // {id, name, type, start, ts} or {error}
|
|
66
|
+
// every year on June 15 at 08:00 (a birthday), the start may be in the past
|
|
67
|
+
sendTo('fullcalendar.0', 'addEvent', {
|
|
68
|
+
oid: '0_userdata.0.birthday', value: 'Anna', start: '2020-06-15T08:00', recurring: 'yearly', name: 'Birthday Anna',
|
|
69
|
+
}, res => log(JSON.stringify(res))); // {id, name, type, start: next execution, ts, cron: "0 0 8 15 6 *"}
|
|
70
|
+
// delete all events with this name
|
|
71
|
+
sendTo('fullcalendar.0', 'deleteEvent', { name: 'Birthday Anna' }, res => log(JSON.stringify(res)));
|
|
62
72
|
```
|
|
63
73
|
|
|
64
|
-
| Command
|
|
65
|
-
|
|
66
|
-
| `addEvent`
|
|
67
|
-
| `deleteEvent`
|
|
68
|
-
| `
|
|
69
|
-
| `getEvents`
|
|
70
|
-
| `
|
|
71
|
-
| `
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
| Command | Message | Answer |
|
|
75
|
+
|------------------|--------------------------------------------------------------------------------------------|---------------------------------------------------|
|
|
76
|
+
| `addEvent` | see below | `{id, name, type, start, ts, cron?}` (`start`/`ts` = first execution) |
|
|
77
|
+
| `deleteEvent` | `id`, `ids` (a list) and/or `name` (all events with exactly this name; optional `calendar`) | `{result: "ok", deleted: [id, …], notFound?: [id, …]}` |
|
|
78
|
+
| `getEvent` | `id` | `{event: definition}` |
|
|
79
|
+
| `getEvents` | optional `calendar` | `{events: [definition, …]}` |
|
|
80
|
+
| `listEvents` | optional `from`, `to` (default now … 7 days, or `days`), `calendar`, `max` | `{events: [execution, …]}` |
|
|
81
|
+
| `getCalendars` | – | `{calendars: [{id, name, enabled}, …]}` |
|
|
82
|
+
| `enableCalendar` | `calendar` (name or ID), `enabled` (`true`/`false`) | `{id, enabled}` |
|
|
83
|
+
| `getCommands` | – | `{commands: [{command, params, answer}, …]}` |
|
|
84
|
+
|
|
85
|
+
Parameters of `addEvent`:
|
|
86
|
+
|
|
87
|
+
| Parameter | Meaning |
|
|
88
|
+
|----------------------------|------------------------------------------------------------------------------------------------------------|
|
|
89
|
+
| `oid` | state to write (must exist and be writable) |
|
|
90
|
+
| `value` | value to write |
|
|
91
|
+
| `start` or `in` | `start`: local time (`"2026-10-29T07:30"`, `"07:30"` = today) or a timestamp in ms; `in`: delay (seconds, or `"90s"`, `"30m"`, `"2h"`, `"1h30m"`, `"1d"`) |
|
|
92
|
+
| `duration` / `durationSec` | after this time (same formats as `in`) the second value is written; then `type` is `"double"` by default |
|
|
93
|
+
| `type` | `"single"` (default), `"double"` (writes `endValue` after `duration`), `"toggle"` (switches back after `duration`) |
|
|
94
|
+
| `endValue` | value of `"double"`; for a boolean `value` the default is the opposite |
|
|
95
|
+
| `recurring` | `"daily"`, `"weekly"`, `"monthly"` or `"yearly"`: repeats at the time of day of `start` (also of a `start` in the past). The day comes from `start`, or from `weekdays` (list, `0` = Sunday or `"MO"`, `"TU"`…), `monthDays` (list, 1…31), `months` (list, 1…12) |
|
|
96
|
+
| `rrule` | instead of `recurring`: iCal rule, e.g. `"FREQ=YEARLY"`, `"FREQ=WEEKLY;BYDAY=MO,FR"`, `"FREQ=MONTHLY;BYMONTHDAY=1,15"`. Supported: `FREQ` (DAILY, WEEKLY, MONTHLY, YEARLY), `BYDAY` (plain weekdays), `BYMONTHDAY`, `BYMONTH`. Not supported: `INTERVAL` > 1, `COUNT`, `UNTIL`, `BYDAY=2MO` |
|
|
97
|
+
| `name` | name of the event, default: name of the state |
|
|
98
|
+
| `calendar` | name or ID of the calendar, default: the default calendar |
|
|
99
|
+
| `color` | color in the calendar |
|
|
100
|
+
|
|
101
|
+
Errors come back as `{error}`, an unknown command answers with the list of the commands. A new event appears in the calendar like one created by hand and can be edited there. Recurring events run at whole minutes.
|
|
74
102
|
|
|
75
103
|
## Todo
|
|
76
104
|
- Week and day must scroll to the current time
|
|
@@ -80,6 +108,13 @@ Errors come back as `{error}`. A new event is a one-shot event and appears in th
|
|
|
80
108
|
### **WORK IN PROGRESS**
|
|
81
109
|
-->
|
|
82
110
|
## Changelog
|
|
111
|
+
### 3.3.0 (2026-10-29)
|
|
112
|
+
* (bluefox) Fixed: `addEvent` ignored `type` and `durationSec`, a "double" event was saved as "single"
|
|
113
|
+
* (bluefox) Added recurring events to `addEvent`: `recurring` (daily, weekly, monthly, yearly) or an iCal `rrule`
|
|
114
|
+
* (bluefox) `deleteEvent` deletes a list of events (`ids`) or all events with a name (`name`)
|
|
115
|
+
* (bluefox) Added the messages `getEvent` and `getCommands`, an unknown command answers with the list of the commands
|
|
116
|
+
* (bluefox) Documented all messages and parameters in the README
|
|
117
|
+
|
|
83
118
|
### 3.2.0 (2026-10-29)
|
|
84
119
|
* (bluefox) Fixed white screen when adding an event in the vis-2 widget (#444)
|
|
85
120
|
* (bluefox) Fixed: the recording of a simulation stopped immediately after the start (#234)
|
|
@@ -102,9 +137,6 @@ Errors come back as `{error}`. A new event is a one-shot event and appears in th
|
|
|
102
137
|
* (bluefox) Migrated GUI to vite
|
|
103
138
|
* (bluefox) Updated packages
|
|
104
139
|
|
|
105
|
-
### 3.0.1 (2026-08-05)
|
|
106
|
-
* (bluefox) Migrated GUI to React19
|
|
107
|
-
|
|
108
140
|
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
109
141
|
|
|
110
142
|
## License
|
|
@@ -785,4 +785,4 @@ Arguments: `+Array.prototype.slice.call(i).join(``)+`
|
|
|
785
785
|
color: inherit;
|
|
786
786
|
}
|
|
787
787
|
}
|
|
788
|
-
`}),(0,V.jsx)(ng,{children:Y.t(`Edit simulation`)}),(0,V.jsxs)(Yh,{children:[(0,V.jsxs)(`div`,{style:m5.field,children:[(0,V.jsx)($b,{label:Y.t(`Name`),value:t.common.name||``,onChange:e=>{let r=JSON.parse(JSON.stringify(t));r.common.name=e.target.value,n(r)},variant:`standard`}),(0,V.jsxs)(Cg,{variant:`standard`,children:[(0,V.jsx)(n_,{children:Y.t(`Interval`)}),(0,V.jsx)(By,{value:t.native.interval||``,onChange:e=>{let r=JSON.parse(JSON.stringify(t));r.native.interval=e.target.value,n(r)},variant:`standard`,children:[`day`,`week`].map(e=>(0,V.jsx)(Qv,{value:e,children:Y.t(e)},e))})]})]}),(0,V.jsx)(`div`,{style:m5.field,children:(0,V.jsx)(zC,{label:Y.t(`Default color`),value:t.common.color,onChange:e=>{let r=JSON.parse(JSON.stringify(t));r.common.color=e,n(r)}})}),(0,V.jsxs)(`h4`,{style:m5.headers,children:[Y.t(`States`),(0,V.jsx)(lb,{title:Y.t(`Add states for recording`),slotProps:{popper:{sx:m5.tooltip}},children:(0,V.jsx)(Pd,{style:!l.length&&t?.native?.record?.states?.length?m5.blink:void 0,size:`small`,onClick:()=>o(!0),color:`primary`,children:(0,V.jsx)(tx,{})})})]}),(0,V.jsx)(`div`,{children:t.native.record?.states.map((e,r)=>v(e,()=>{let e=JSON.parse(JSON.stringify(t));e.native.record.states.splice(r,1),n(e)}))}),(0,V.jsxs)(`h4`,{style:m5.headers,children:[Y.t(`Categories`),(0,V.jsx)(lb,{title:Y.t(`Add overlap of categories for recording`),slotProps:{popper:{sx:m5.tooltip}},children:(0,V.jsx)(Pd,{style:!l.length&&t?.native?.record?.states?.length?m5.blink:void 0,size:`small`,onClick:()=>c(!0),color:`primary`,children:(0,V.jsx)(tx,{})})})]}),(0,V.jsx)(`div`,{children:t.native.record?.enums.map((e,r)=>{let i=e.map(e=>(0,V.jsx)(LE,{value:d[e]||e,lang:Y.getLanguage()},e)),a=1,o=i.reduce((e,t)=>[e,(0,V.jsx)(`span`,{children:`+`},a++),t],null);return(0,V.jsx)(am,{onClick:()=>c(r),onDelete:()=>{let e=JSON.parse(JSON.stringify(t));e.native.record.enums.splice(r,1),n(e)},label:o,sx:{"& .MuiChip-label":m5.chipLabel},style:m5.chip},r)})}),(0,V.jsx)(`h4`,{style:{marginBottom:-0},children:Y.t(`Recorded states`)}),(0,V.jsxs)(`div`,{children:[h&&(0,V.jsx)(v_,{}),Object.keys(p).map(e=>v(e))]})]}),(0,V.jsxs)(Uh,{children:[(0,V.jsx)(Lm,{variant:`contained`,color:`secondary`,startIcon:(0,V.jsx)(_x,{}),onClick:()=>i(!0),children:Y.t(`Delete`)}),(0,V.jsx)(Lm,{disabled:y,onClick:async()=>{let n=JSON.parse(JSON.stringify(t));n.native.interval!==e.simulation.native.interval&&n.native.interval===`day`&&(console.log(n),n.native.events.forEach(e=>{console.log(e.native.cron);let t=ZH(e.native.cron);console.log(t),t.dows=[0,1,2,3,4,5,6],e.native.cron=$H(t),console.log(e.native.cron)})),await e.socket.setObject(t._id,n),e.onClose()},variant:`contained`,color:`primary`,startIcon:(0,V.jsx)(Ux,{}),children:Y.t(`Save`)}),(0,V.jsx)(Lm,{onClick:e.onClose,variant:`contained`,color:`grey`,startIcon:(0,V.jsx)(cx,{}),children:y?Y.t(`ra_Close`):Y.t(`ra_Cancel`)})]}),r&&(0,V.jsx)(AS,{fullWidth:!1,title:Y.t(`Delete simulation`),text:Y.t(`Simulation will be deleted. Confirm?`),ok:Y.t(`ra_Delete`),onClose:async n=>{n&&(await e.onDelete(t._id),e.onClose()),i(!1)}}),a&&(0,V.jsx)(RE,{imagePrefix:`../..`,multiSelect:!0,theme:e.theme,selected:t.native.record.states,onOk:e=>{let r=JSON.parse(JSON.stringify(t));r.native.record=r.native.record||{enums:[],states:[]},r.native.record.states=r.native.record.states||[],r.native.record.states=Array.isArray(e)?e:[e],n(r),o(!1)},onClose:()=>o(!1),socket:e.socket}),s===!1?null:(0,V.jsx)(p5,{socket:e.socket,enumsObjects:d,selectedEnums:typeof s==`number`?t.native.record.enums[s]:[],exceptions:t.native.record.enumsExceptions||[],onSelect:(e,r)=>{let i=JSON.parse(JSON.stringify(t));i.native.record=i.native.record||{enums:[],states:[]},i.native.record.enums=i.native.record.enums||[],i.native.record.enumsExceptions=r||[],typeof s==`number`?i.native.record.enums[s]=e:i.native.record.enums.push(e),n(i),c(!1)},onClose:()=>c(!1)})]})},g5={Y:`year`,YY:`year`,YYYY:{sectionType:`year`,contentType:`digit`,maxLength:4},M:{sectionType:`month`,contentType:`digit`,maxLength:2},MM:`month`,MMM:{sectionType:`month`,contentType:`letter`},MMMM:{sectionType:`month`,contentType:`letter`},D:{sectionType:`day`,contentType:`digit`,maxLength:2},DD:`day`,Do:{sectionType:`day`,contentType:`digit-with-letter`},E:{sectionType:`weekDay`,contentType:`digit`,maxLength:1},e:{sectionType:`weekDay`,contentType:`digit`,maxLength:1},d:{sectionType:`weekDay`,contentType:`digit`,maxLength:1},dd:{sectionType:`weekDay`,contentType:`letter`},ddd:{sectionType:`weekDay`,contentType:`letter`},dddd:{sectionType:`weekDay`,contentType:`letter`},A:`meridiem`,a:`meridiem`,H:{sectionType:`hours`,contentType:`digit`,maxLength:2},HH:`hours`,h:{sectionType:`hours`,contentType:`digit`,maxLength:2},hh:`hours`,k:{sectionType:`hours`,contentType:`digit`,maxLength:2},kk:`hours`,m:{sectionType:`minutes`,contentType:`digit`,maxLength:2},mm:`minutes`,s:{sectionType:`seconds`,contentType:`digit`,maxLength:2},ss:`seconds`},_5={year:`YYYY`,month:`MMMM`,monthShort:`MMM`,dayOfMonth:`D`,dayOfMonthFull:`Do`,weekday:`dddd`,weekdayShort:`ddd`,hours24h:`HH`,hours12h:`hh`,meridiem:`A`,minutes:`mm`,seconds:`ss`,fullDate:`ll`,keyboardDate:`L`,shortDate:`MMM D`,normalDate:`D MMMM`,normalDateWithWeekday:`ddd, MMM D`,fullTime12h:`hh:mm A`,fullTime24h:`HH:mm`,keyboardDateTime12h:`L hh:mm A`,keyboardDateTime24h:`L HH:mm`};function v5(){throw Error(BX(140))}var y5=class{isMUIAdapter=!0;isTimezoneCompatible=!0;lib=`moment`;escapedCharacters={start:`[`,end:`]`};formatTokenMap=g5;constructor({locale:e,formats:t,instance:n}={}){this.moment=n||dU,this.locale=e,this.formats=b({},_5,t)}setLocaleToValue=e=>{let t=this.getCurrentLocaleCode();return t===e.locale()?e:e.locale(t)};hasTimezonePlugin=()=>this.moment.tz!==void 0;createSystemDate=e=>{let t=this.moment(e).local();return this.locale===void 0?t:t.locale(this.locale)};createUTCDate=e=>{let t=this.moment.utc(e);return this.locale===void 0?t:t.locale(this.locale)};createTZDate=(e,t)=>{this.hasTimezonePlugin()||v5();let n=t==="default"?this.moment(e):this.moment.tz(e,t);return this.locale===void 0?n:n.locale(this.locale)};date=(e,t=`default`)=>e===null?null:t===`UTC`?this.createUTCDate(e):t===`system`||t==="default"&&!this.hasTimezonePlugin()?this.createSystemDate(e):this.createTZDate(e,t);getInvalidDate=()=>this.moment(new Date(`Invalid Date`));getTimezone=e=>{let t=e._z?.name,n=e.isUTC()?`UTC`:`system`;return t??this.moment.defaultZone?.name??n};setTimezone=(e,t)=>{if(this.getTimezone(e)===t)return e;if(t===`UTC`)return e.clone().utc();if(t===`system`)return e.clone().local();if(!this.hasTimezonePlugin())return t!=="default"&&v5(),e;let n=t==="default"?this.moment.defaultZone?.name??`system`:t;if(n===`system`)return e.clone().local();let r=e.clone();return r.tz(n),r};toJsDate=e=>e.toDate();parse=(e,t)=>e===``?null:this.locale?this.moment(e,t,this.locale,!0):this.moment(e,t,!0);getCurrentLocaleCode=()=>this.locale||dU.locale();is12HourCycleInCurrentLocale=()=>/A|a/.test(dU.localeData(this.getCurrentLocaleCode()).longDateFormat(`LT`));expandFormat=e=>e.match(/(\[[^[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})|./g).map(e=>{let t=e[0];return t===`L`||t===`;`?dU.localeData(this.getCurrentLocaleCode()).longDateFormat(e):e}).join(``);isValid=e=>e!=null&&e.isValid();format=(e,t)=>this.formatByString(e,this.formats[t]);formatByString=(e,t)=>{let n=e.clone();return n.locale(this.getCurrentLocaleCode()),n.format(t)};formatNumber=e=>e;isEqual=(e,t)=>e===null&&t===null?!0:e===null||t===null?!1:e.isSame(t);isSameYear=(e,t)=>e.isSame(t,`year`);isSameMonth=(e,t)=>e.isSame(t,`month`);isSameDay=(e,t)=>e.isSame(t,`day`);isSameHour=(e,t)=>e.isSame(t,`hour`);isAfter=(e,t)=>e.isAfter(t);isAfterYear=(e,t)=>e.isAfter(t,`year`);isAfterDay=(e,t)=>e.isAfter(t,`day`);isBefore=(e,t)=>e.isBefore(t);isBeforeYear=(e,t)=>e.isBefore(t,`year`);isBeforeDay=(e,t)=>e.isBefore(t,`day`);isWithinRange=(e,[t,n])=>e.isBetween(t,n,null,`[]`);startOfYear=e=>e.clone().startOf(`year`);startOfMonth=e=>e.clone().startOf(`month`);startOfWeek=e=>this.setLocaleToValue(e.clone()).startOf(`week`);startOfDay=e=>e.clone().startOf(`day`);endOfYear=e=>e.clone().endOf(`year`);endOfMonth=e=>e.clone().endOf(`month`);endOfWeek=e=>this.setLocaleToValue(e.clone()).endOf(`week`);endOfDay=e=>e.clone().endOf(`day`);addYears=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`years`):e.clone().add(t,`years`);addMonths=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`months`):e.clone().add(t,`months`);addWeeks=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`weeks`):e.clone().add(t,`weeks`);addDays=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`days`):e.clone().add(t,`days`);addHours=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`hours`):e.clone().add(t,`hours`);addMinutes=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`minutes`):e.clone().add(t,`minutes`);addSeconds=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`seconds`):e.clone().add(t,`seconds`);getYear=e=>e.get(`year`);getMonth=e=>e.get(`month`);getDate=e=>e.get(`date`);getHours=e=>e.get(`hours`);getMinutes=e=>e.get(`minutes`);getSeconds=e=>e.get(`seconds`);getMilliseconds=e=>e.get(`milliseconds`);setYear=(e,t)=>e.clone().year(t);setMonth=(e,t)=>e.clone().month(t);setDate=(e,t)=>e.clone().date(t);setHours=(e,t)=>e.clone().hours(t);setMinutes=(e,t)=>e.clone().minutes(t);setSeconds=(e,t)=>e.clone().seconds(t);setMilliseconds=(e,t)=>e.clone().milliseconds(t);getDaysInMonth=e=>e.daysInMonth();getWeekArray=e=>{let t=this.startOfWeek(this.startOfMonth(e)),n=this.endOfWeek(this.endOfMonth(e)),r=0,i=t,a=i.get(`dayOfYear`),o=[];for(;i.isBefore(n);){let e=Math.floor(r/7);o[e]=o[e]||[],o[e].push(i);let t=a;i=this.addDays(i,1),a=i.get(`dayOfYear`),t===a&&(i=i.add(12,`h`).startOf(`day`)),r+=1}return o};getWeekNumber=e=>e.week();getDayOfWeek=e=>e.day()+1;getYearRange([e,t]){let n=this.startOfYear(e),r=this.endOfYear(t),i=[],a=n;for(;this.isBefore(a,r);)i.push(a),a=this.addYears(a,1);return i}},b5={field:{"& .MuiFormControl-root":{width:`100%`},display:`flex`,alignItems:`end`,gap:`20px`},tableCell:{textAlign:`center`}},x5=e=>{let[t,n]=(0,B.useState)({start:null,end:null,dow:[0,1,2,3,4,5,6]});return dU.locale(Y.getLanguage()),(0,V.jsxs)(zh,{open:!0,onClose:e.onClose,children:[(0,V.jsx)(ng,{children:Y.t(`Play simulation`)}),(0,V.jsxs)(Yh,{children:[(0,V.jsxs)(qX,{dateAdapter:y5,children:[(0,V.jsxs)(Tm,{component:`div`,sx:b5.field,style:{width:`100%`,marginBottom:20,marginTop:10},children:[(0,V.jsx)(M8,{label:`Start`,sx:e=>({borderBottom:`1px solid ${e.palette.text.primary}`,"& fieldset":{display:`none`},"& input":{padding:`${e.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:`translate(0px, -9px) scale(0.75)`},"&.MuiTextField-root":{width:`100%`}}),value:t.start,onChange:e=>n({...t,start:e})}),t.start&&(0,V.jsx)(Pd,{onClick:()=>n({...t,start:null}),children:(0,V.jsx)(_x,{})})]}),(0,V.jsxs)(Tm,{component:`div`,sx:b5.field,style:{width:`100%`,marginBottom:30},children:[(0,V.jsx)(M8,{label:`End`,sx:e=>({borderBottom:`1px solid ${e.palette.text.primary}`,"& fieldset":{display:`none`},"& input":{padding:`${e.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:`translate(0px, -9px) scale(0.75)`}}),value:t.end,onChange:e=>n({...t,end:e})}),t.end&&(0,V.jsx)(Pd,{onClick:()=>n({...t,end:null}),children:(0,V.jsx)(_x,{})})]})]}),(0,V.jsx)(`div`,{children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsx)(`tr`,{children:[0,1,2,3,4,5,6].map(e=>(0,V.jsx)(`td`,{style:b5.tableCell,children:dU().day(e).format(`ddd`)},e))})}),(0,V.jsx)(`tbody`,{children:(0,V.jsx)(`tr`,{children:[0,1,2,3,4,5,6].map(r=>(0,V.jsx)(`td`,{children:(0,V.jsx)(Zm,{"aria-label":`play simulation`,checked:t.dow.includes(r),disabled:e.readOnly,onChange:e=>{e.target.checked?n({...t,dow:[...t.dow,r]}):n({...t,dow:t.dow.filter(e=>e!==r)})},size:`small`})},r))})})]})})]}),(0,V.jsxs)(Uh,{children:[(0,V.jsx)(Lm,{onClick:()=>{e.playSimulation(e.simulation._id,t),e.onClose()},variant:`contained`,color:`primary`,startIcon:(0,V.jsx)(Ix,{}),children:Y.t(`Play`)}),(0,V.jsx)(Lm,{onClick:e.onClose,variant:`contained`,color:`grey`,startIcon:(0,V.jsx)(cx,{}),children:Y.t(`Cancel`)})]})]})},S5={panel:e=>({height:`100%`,display:`flex`,flexDirection:`column`,borderRadius:0,borderRight:`1px solid ${e.palette.divider}`,overflow:`hidden`}),modeTabs:{flexShrink:0,minHeight:42,"& .MuiTab-root":{minHeight:42,minWidth:0,flex:1,padding:`0 8px`}},header:e=>({flexShrink:0,display:`flex`,alignItems:`center`,gap:1,minHeight:44,padding:`6px 6px 6px 12px`,borderBottom:`1px solid ${e.palette.divider}`}),headerTitle:e=>({flexGrow:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontSize:11,fontWeight:600,letterSpacing:`0.08em`,textTransform:`uppercase`,color:e.palette.text.secondary}),addButton:e=>({flexShrink:0,width:28,height:28,color:e.palette.primary.contrastText||`#fff`,backgroundColor:e.palette.primary.main,"&:hover":{color:e.palette.primary.contrastText||`#fff`,backgroundColor:e.palette.primary.dark},"& .MuiSvgIcon-root":{fontSize:18}}),alert:e=>({display:`flex`,flexShrink:0,color:e.palette.error.main,"& .MuiSvgIcon-root":{fontSize:18}}),list:{flex:1,overflowY:`auto`,overflowX:`hidden`,padding:`6px`},item:e=>({gap:1,minHeight:34,paddingTop:`3px`,paddingBottom:`3px`,paddingLeft:`8px`,paddingRight:`4px`,marginBottom:`2px`,"& .actions":{opacity:0,transition:`opacity 0.15s ease-in-out`},"&:hover .actions, &.Mui-focusVisible .actions, &.Mui-selected .actions":{opacity:1},"&.Mui-selected .MuiIconButton-root":{color:`inherit`},"&.Mui-selected .count":{backgroundColor:`rgba(255, 255, 255, 0.22)`,color:`inherit`},...e.name?.startsWith(`modern`)?void 0:{"&.Mui-selected":{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText,"&:hover":{backgroundColor:e.palette.primary.dark}}}}),itemText:{margin:0,overflow:`hidden`},swatch:{flexShrink:0,width:10,height:10,borderRadius:`3px`,boxShadow:`inset 0 0 0 1px rgba(0, 0, 0, 0.25)`},icon:{flexShrink:0,width:16,height:16},actions:{display:`flex`,alignItems:`center`,flexShrink:0,"& .MuiIconButton-root":{padding:`4px`},"& .MuiSvgIcon-root":{fontSize:18}},count:e=>({flexShrink:0,minWidth:20,height:18,padding:`0 5px`,borderRadius:`9px`,fontSize:10,fontWeight:600,lineHeight:`18px`,textAlign:`center`,backgroundColor:Ti(e.palette.text.primary,.08),color:e.palette.text.secondary}),tooltip:{pointerEvents:`none`}};function C5(e){return(0,V.jsxs)(vu,{sx:[S5.panel,{width:e.width??`100%`}],children:[(0,V.jsxs)(Jb,{value:+!!e.isSimulations,onChange:e.onChangeMode,variant:`fullWidth`,sx:S5.modeTabs,children:[(0,V.jsx)(Sb,{title:Y.t(`Calendars`),icon:(0,V.jsx)(ox,{})}),(0,V.jsx)(Sb,{title:Y.t(`Simulations`),icon:(0,V.jsx)(Lx,{})})]}),(0,V.jsxs)(Tm,{sx:S5.header,children:[(0,V.jsx)(Tm,{component:`div`,sx:S5.headerTitle,children:e.title}),e.alive===!1&&(0,V.jsx)(lb,{title:Y.t(`Instance inactive`),slotProps:{popper:{sx:S5.tooltip}},children:(0,V.jsx)(Tm,{component:`span`,sx:S5.alert,children:(0,V.jsx)(Vx,{})})}),(0,V.jsx)(lb,{title:e.addTitle,slotProps:{popper:{sx:S5.tooltip}},children:(0,V.jsx)(Pd,{size:`small`,sx:S5.addButton,onClick:e.onAdd,children:(0,V.jsx)(tx,{})})})]}),(0,V.jsx)(C_,{dense:!0,disablePadding:!0,sx:S5.list,children:e.children})]})}function w5(e){return(0,V.jsxs)(O_,{selected:e.selected,onClick:e.onClick,sx:S5.item,children:[e.icon?(0,V.jsx)(Cw,{src:e.icon,style:S5.icon}):e.color?(0,V.jsx)(Tm,{component:`span`,sx:S5.swatch,style:{backgroundColor:e.color}}):null,(0,V.jsx)(q_,{sx:S5.itemText,title:e.name,primary:e.name,slotProps:{primary:{noWrap:!0,sx:{fontSize:13,fontWeight:e.selected?600:400,opacity:e.inactive?.5:1}}}}),e.actions?(0,V.jsx)(Tm,{component:`span`,className:`actions`,sx:S5.actions,children:e.actions}):null,e.status?(0,V.jsx)(Tm,{component:`span`,sx:S5.actions,children:e.status}):null,e.count===void 0?null:(0,V.jsx)(lb,{title:Y.t(`Events`),slotProps:{popper:{sx:S5.tooltip}},children:(0,V.jsx)(Tm,{component:`span`,className:`count`,sx:S5.count,children:e.count})})]})}var T5=260,E5={container:{display:`flex`,width:`100%`,flex:1},toCalendar:{paddingLeft:20},simulations:e=>({backgroundColor:Ti(e.palette.primary.main,e.palette.mode===`dark`?.04:.05)}),tooltip:{pointerEvents:`none`}},D5=e=>{let[t,n]=(0,B.useState)([]),[r,i]=(0,B.useState)({}),[a,o]=(0,B.useState)(window.localStorage.getItem(`fullcalendar.selectedSimulation`)||null),[s,c]=(0,B.useState)(!1),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)(null),[p,m]=(0,B.useState)(null),h=(e,t)=>{t&&i(n=>({...n,[e]:t.val}))},g=(e,t)=>{n(n=>{let r=JSON.parse(JSON.stringify(n)),i=r.findIndex(t=>t._id===e);if(i===-1){if(!t)return n;r.push(t)}else t?r[i]=t:r.splice(i,1);return r})},_=async()=>{let r=await e.socket.getObjectViewSystem(`state`,`fullcalendar.${e.instance}.Simulations.`,`fullcalendar.${e.instance}.Simulations.\u9999`),s={};for(let t in r)s[t]=(await e.socket.getState(t))?.val;let c=Object.values(r);c.sort((e,t)=>e.common.name.localeCompare(t.common.name)),n(c),(!a||t.length&&!t.find(e=>e._id===a))&&o(t[0]?._id||null),i(s),e.socket.subscribeObject(`fullcalendar.${e.instance}.Simulations.*`,g),e.socket.subscribeState(`fullcalendar.${e.instance}.Simulations.*`,h)};(0,B.useEffect)(()=>(_().catch(()=>{}),()=>{e.socket.unsubscribeObject(`fullcalendar.${e.instance}.Simulations.*`,g),e.socket.unsubscribeState(`fullcalendar.${e.instance}.Simulations.*`,h)}),[]),(0,B.useEffect)(()=>{(!a||t.length&&!t.find(e=>e._id===a))&&o(t[0]?._id||null)},[t]);let v=async(t,n)=>{n||=await e.socket.getObject(t),n.native.record=n.native.record||{},n.native.record.start=Date.now(),n.native.record.end=n.native.interval===`day`?new Date(Date.now()+864e5):new Date(Date.now()+6048e5),await e.socket.setObject(t,n),e.socket.setState(t,`record`)},y=async(t,n)=>{let r=await e.socket.getObject(t);r.native.play=n,await e.socket.setObject(t,r),e.socket.setState(t,`play`)},b=(0,V.jsx)(`div`,{style:E5.toCalendar,children:(0,V.jsx)(lb,{title:Y.t(`You can export events to static calender`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(Lm,{variant:`contained`,onClick:async()=>{let n=`fullcalendar.${e.instance}.Calendars.Calendar-${sU()}`;await e.socket.setObject(n,{type:`folder`,common:{name:`NewCalendar`},native:{}});let r=t.find(e=>e._id===a).native.events;for(let t of r){let r=JSON.parse(JSON.stringify(t));r.id=`${n}.event-${sU()}`,e.socket.setObject(r.id,r)}e.updateCalendars(),e.changeCalendarType(),e.setCalendarPrefix(n)},children:Y.t(`To calendar`)})})}),x=(a&&t.find(e=>e._id===a)?a:t[0]?._id)||``;return(0,V.jsxs)(Tm,{component:`div`,style:E5.container,sx:E5.simulations,children:[(0,V.jsxs)(`div`,{children:[d&&(0,V.jsx)(h5,{socket:e.socket,simulation:t.find(e=>e._id===d),onClose:()=>f(null),theme:e.theme,onDelete:async n=>{try{if(a===n){let e=t.find(e=>e._id!==n);o(e?._id||null)}await e.socket.delObject(n)}catch(e){window.alert(`Cannot delete simulation: ${e}`)}}}),p&&(0,V.jsx)(x5,{playSimulation:y,simulation:t.find(e=>e._id===p),onClose:()=>m(null)}),s&&(0,V.jsxs)(zh,{open:!0,maxWidth:`md`,onClose:(e,t)=>{t!==`backdropClick`&&t!==`escapeKeyDown`&&c(!1)},children:[(0,V.jsx)(ng,{id:`confirmation-dialog-title`,children:Y.t(`Start recording`)}),(0,V.jsx)(Yh,{children:(0,V.jsx)($h,{children:Y.t(`Do you want to delete previously recorded events?`)})}),(0,V.jsxs)(Uh,{children:[(0,V.jsx)(Lm,{variant:`contained`,onClick:async()=>{let t=await e.socket.getObject(s);t.native.events=[],await v(t._id,t),c(!1)},style:{backgroundColor:`red`,color:`white`},autoFocus:!0,startIcon:(0,V.jsx)(_x,{}),children:Y.t(`Delete events`)}),(0,V.jsx)(Lm,{variant:`contained`,onClick:async()=>{await v(s),c(!1)},color:`grey`,startIcon:(0,V.jsx)(lx,{}),children:Y.t(`Keep events`)})]})]}),l!==!1&&(0,V.jsx)(AS,{fullWidth:!1,title:Y.t(`Stop recording`),text:Y.t(`Do you want to stop recording? You cannot restart it again.`),ok:Y.t(`Stop`),onClose:t=>{t&&e.socket.setState(l,`stop`),u(!1)}}),(0,V.jsx)(C5,{isSimulations:!0,onChangeMode:e.changeCalendarType,title:Y.t(`Simulations`),addTitle:Y.t(`Create new simulation`),alive:e.alive,width:T5,onAdd:async()=>{let n=`fullcalendar.${e.instance}.Simulations.${sU()}`;await e.socket.setObject(n,{common:{name:Y.t(`Simulation %s`,t.length+1),role:`state`,type:`string`,states:[`stop`,`record`,`play`,`pause`],color:`#3A87AD`},native:{events:[],interval:`day`,record:{states:[],enums:[],start:null,end:null}},type:`state`}),await e.socket.setState(n,`stop`),window.localStorage.setItem(`fullcalendar.selectedSimulation`,n),setTimeout(()=>{o(n),f(n)},300)},children:t.map(t=>(0,V.jsx)(w5,{name:t.common.name||t._id,color:t.common.color,icon:t.common.icon,count:t.native.events?.length||0,selected:t._id===x,onClick:()=>{window.localStorage.setItem(`fullcalendar.selectedSimulation`,t._id),o(t._id)},actions:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(lb,{title:Y.t(`Edit name and settings`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(Pd,{onClick:e=>{e.stopPropagation(),f(t._id)},size:`small`,children:(0,V.jsx)(bx,{})})}),r[t._id]===`stop`&&(0,V.jsx)(lb,{title:Y.t(`Start recording`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{children:(0,V.jsx)(Pd,{onClick:async e=>{e.stopPropagation(),t.native.events.length?c(t._id):await v(t._id)},size:`small`,children:(0,V.jsx)(Ex,{})})})}),r[t._id]===`stop`&&t.native.events.length>0&&(0,V.jsx)(lb,{title:Y.t(`Start playing`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{children:(0,V.jsx)(Pd,{onClick:e=>{e.stopPropagation(),m(t._id)},size:`small`,children:(0,V.jsx)(Fx,{})})})})]}),status:(0,V.jsxs)(V.Fragment,{children:[(r[t._id]===`record`||r[t._id]===`pause`)&&(0,V.jsx)(lb,{title:Y.t(`Stop recording. Recording till %s`,dU(t.native.record.end).format(`DD.MM.YYYY HH:mm:ss`)),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{style:{opacity:r[t._id]===`pause`?.5:1},children:(0,V.jsx)(Pd,{disabled:r[t._id]===`pause`,onClick:e=>{e.stopPropagation(),u(t._id)},size:`small`,children:(0,V.jsx)(qx,{style:{color:`red`}})})})}),r[t._id]===`play`&&(0,V.jsx)(lb,{title:Y.t(`Stop playing`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{children:(0,V.jsx)(Pd,{onClick:n=>{n.stopPropagation(),e.socket.setState(t._id,`stop`)},size:`small`,children:(0,V.jsx)(qx,{style:{color:`green`}})})})}),r[t._id]===`record`&&(0,V.jsx)(lb,{title:Y.t(`Pause recording`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{children:(0,V.jsx)(Pd,{onClick:n=>{n.stopPropagation(),e.socket.setState(t._id,`pause`)},size:`small`,children:(0,V.jsx)(Nx,{})})})}),r[t._id]===`pause`&&(0,V.jsx)(lb,{title:Y.t(`Resume recording. Recording till %s`,dU(t.native.record.end).format(`DD.MM.YYYY HH:mm:ss`)),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{children:(0,V.jsx)(Pd,{onClick:n=>{n.stopPropagation(),e.socket.setState(t._id,`record`)},size:`small`,children:(0,V.jsx)(Nx,{style:{color:`yellow`}})})})})]})},t._id))})]}),a&&(0,V.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,flex:1},children:(0,V.jsx)(d5,{systemConfig:e.systemConfig,socket:e.socket,isSimulation:!0,calendarPrefix:a,simulationId:a,simulation:t.find(e=>e._id===a),simulations:t,theme:e.theme,readOnly:r[a]===`play`,simulationState:r[a],button:b},a)})]})},O5={field:{display:`flex`,alignItems:`end`,gap:20},hint:{fontSize:12,fontStyle:`italic`}},k5=e=>{let[t,n]=(0,B.useState)(e.calendar),[r,i]=(0,B.useState)(!1);return t?(0,V.jsxs)(zh,{open:!0,onClose:e.onClose,children:[(0,V.jsx)(ng,{children:Y.t(`Edit calendar`)}),(0,V.jsxs)(Yh,{children:[(0,V.jsx)(`div`,{style:O5.field,children:(0,V.jsx)($b,{label:Y.t(`Name`),value:t.common.name||``,onChange:e=>{let r=JSON.parse(JSON.stringify(t));r.common.name=e.target.value,n(r)},variant:`standard`})}),(0,V.jsx)(`div`,{style:O5.field,children:(0,V.jsx)(Dg,{control:(0,V.jsx)(Zm,{checked:t.common.enabled!==!1,onChange:e=>{let r=JSON.parse(JSON.stringify(t));r.common.enabled=e.target.checked,n(r)}}),label:(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{children:Y.t(`Active`)}),(0,V.jsx)(`div`,{style:O5.hint,children:Y.t(`Inactive calendars do not execute their events`)})]})})})]}),(0,V.jsxs)(Uh,{children:[(0,V.jsx)(Lm,{variant:`contained`,color:`secondary`,startIcon:(0,V.jsx)(_x,{}),onClick:()=>i(!0),children:Y.t(`Delete`)}),(0,V.jsx)(Lm,{disabled:!t||!e.calendar||!t.common.name||t.common.name===e.calendar.common.name&&t.common.enabled!==!1==(e.calendar.common.enabled!==!1),onClick:async()=>{await e.socket.setObject(t._id,t),await e.updateCalendars(),e.onClose()},variant:`contained`,color:`primary`,startIcon:(0,V.jsx)(Ux,{}),children:Y.t(`Save`)}),(0,V.jsx)(Lm,{onClick:e.onClose,variant:`contained`,color:`grey`,startIcon:(0,V.jsx)(cx,{}),children:Y.t(`Cancel`)})]}),r&&(0,V.jsx)(AS,{fullWidth:!1,title:Y.t(`Delete calendar`),text:Y.t(`Calendar will be deleted. Confirm?`),ok:Y.t(`Delete`),onClose:async n=>{if(n){try{let n=Object.keys(await e.socket.getObjectViewCustom(`schedule`,`schedule`,`${t._id}.`,`${t._id}.\u9999`));await e.socket.delObject(t._id),await Promise.all(n.map(t=>e.socket.delObject(t))),e.calendarPrefix===t._id&&e.setCalendarPrefix(`fullcalendar.${e.instance}`),await e.updateCalendars()}catch(e){window.alert(`Cannot delete calendar: ${e}`)}e.onClose()}i(!1)}})]}):null},A5={column:{width:`100%`,display:`flex`,flexDirection:`column`,alignItems:`start`,height:`100%`},calendars:{height:`100%`},container:{display:`flex`,width:`100%`,flex:1},tooltip:{pointerEvents:`none`}},j5=e=>{let[t,n]=(0,B.useState)(window.localStorage.getItem(`fullcalendar.calendar`)||`fullcalendar.${e.instance}`),[r,i]=(0,B.useState)(null),[a,o]=(0,B.useState)([]),[s,c]=(0,B.useState)(window.localStorage.getItem(`fullcalendar.tab`)===`1`),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)(window.localStorage.getItem(`fullcalendar.splitSizes`)?JSON.parse(window.localStorage.getItem(`fullcalendar.splitSizes`)):[15,85]),p=async()=>{let r=await e.socket.getObjectViewSystem(`folder`,`fullcalendar.${e.instance}.Calendars.`,`fullcalendar.${e.instance}.Calendars.\u9999`);o(Object.values(r)),Object.keys(r).includes(t)||(window.localStorage.removeItem(`fullcalendar.calendar`),n(`fullcalendar.${e.instance}`))},m=async t=>{let n=JSON.parse(JSON.stringify(t));n.common.enabled=t.common.enabled===!1,await e.socket.setObject(n._id,n),await p()},h=()=>c(e=>(window.localStorage.setItem(`fullcalendar.tab`,e?`0`:`1`),!e));return(0,B.useEffect)(()=>{let t=(e,t)=>{let n=t&&t.val||!1;u(!!n)};return p().catch(e=>console.error(e)),e.socket.subscribeState(`system.adapter.fullcalendar.${e.instance}.alive`,t).catch(e=>console.error(e)),e.socket.getState(`system.adapter.fullcalendar.${e.instance}.alive`).then(e=>u(!!(e&&e.val))).catch(e=>console.error(e)),()=>{e.socket.unsubscribeState(`system.adapter.fullcalendar.${e.instance}.alive`,t)}},[]),(0,V.jsxs)(`div`,{style:A5.column,children:[s?(0,V.jsx)(D5,{systemConfig:e.systemConfig,socket:e.socket,theme:e.theme,instance:e.instance,updateCalendars:p,changeCalendarType:h,setCalendarPrefix:n,alive:l}):(0,V.jsx)(`div`,{style:A5.container,children:(0,V.jsxs)(dD,{direction:oD.Horizontal,initialSizes:d,minWidths:[195,500],onResizeFinished:(e,t)=>{f(t),window.localStorage.setItem(`fullcalendar.splitSizes`,JSON.stringify(t))},gutterTheme:e.themeType===`dark`?sD.Dark:sD.Light,gutterClassName:e.themeType===`dark`?`Dark visGutter`:`Light visGutter`,children:[(0,V.jsx)(`div`,{style:A5.calendars,children:(0,V.jsxs)(C5,{isSimulations:!1,onChangeMode:h,title:Y.t(`Calendars`),addTitle:Y.t(`Add new calendar`),alive:l,onAdd:async()=>{let t=`fullcalendar.${e.instance}.Calendars.Calendar-${sU()}`;await e.socket.setObject(t,{type:`folder`,common:{name:`NewCalendar`},native:{}}),await p(),n(t),window.localStorage.setItem(`fullcalendar.calendar`,t),setTimeout(()=>i(t),300)},children:[(0,V.jsx)(w5,{name:Y.t(`Default`),selected:!a.find(e=>e._id===t),onClick:()=>{let t=`fullcalendar.${e.instance}`;window.localStorage.setItem(`fullcalendar.calendar`,t),n(t)}}),a.map(e=>(0,V.jsx)(w5,{name:e.common.name,color:e.common.color,icon:e.common.icon,selected:e._id===t,inactive:e.common.enabled===!1,onClick:()=>{window.localStorage.setItem(`fullcalendar.calendar`,e._id),n(e._id)},status:e.common.enabled===!1?(0,V.jsx)(lb,{title:Y.t(`Calendar is inactive. Click to activate`),slotProps:{popper:{sx:A5.tooltip}},children:(0,V.jsx)(Pd,{size:`small`,onClick:t=>{t.stopPropagation(),m(e)},children:(0,V.jsx)(wx,{})})}):null,actions:(0,V.jsxs)(V.Fragment,{children:[e.common.enabled===!1?null:(0,V.jsx)(lb,{title:Y.t(`Deactivate calendar`),slotProps:{popper:{sx:A5.tooltip}},children:(0,V.jsx)(Pd,{size:`small`,onClick:t=>{t.stopPropagation(),m(e)},children:(0,V.jsx)(Cx,{})})}),(0,V.jsx)(lb,{title:Y.t(`Edit name or delete calendar`),slotProps:{popper:{sx:A5.tooltip}},children:(0,V.jsx)(Pd,{size:`small`,onClick:t=>{i(e._id),t.stopPropagation()},children:(0,V.jsx)(bx,{})})})]})},e._id))]})}),(0,V.jsx)(d5,{systemConfig:e.systemConfig,socket:e.socket,theme:e.theme,calendarPrefix:t},t)]})}),r?(0,V.jsx)(k5,{onClose:()=>i(null),calendarPrefix:t,setCalendarPrefix:n,calendar:a.find(e=>e._id===r),socket:e.socket,instance:e.instance,updateCalendars:p}):null]})},M5=class extends HS{constructor(e){let t={...e};t.translations={en:zE,de:BE,ru:VE,pt:HE,nl:UE,fr:WE,it:GE,es:KE,pl:qE,uk:JE,"zh-cn":YE},t.sentryDSN=window.sentryDSN,window.location.port,window.socketUrl&&window.socketUrl.startsWith(`:`)&&(window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`),super(e,t)}render(){return this.state.loaded?(0,V.jsx)(Kt,{injectFirst:!0,children:(0,V.jsx)(qc,{theme:this.state.theme,children:(0,V.jsx)(`div`,{style:{overflow:`auto`,height:`100%`},id:`rootDiv`,children:(0,V.jsx)(j5,{systemConfig:this._systemConfig,socket:this.socket,theme:this.state.theme,instance:this.instance,alive:!!this.state.alive,themeType:this.state.themeType})})})}):(0,V.jsx)(Kt,{injectFirst:!0,children:(0,V.jsx)(qc,{theme:this.state.theme,children:(0,V.jsx)(pS,{themeType:this.state.themeType})})})}};window.location.hostname===`localhost`||window.location.hostname===`[::1]`||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function N5(){`serviceWorker`in navigator&&navigator.serviceWorker.ready.then(e=>{e.unregister()})}var P5={name:`fullcalendar-admin`,version:`3.2.0`,private:!0,dependencies:{"@emotion/react":`^11.14.0`,"@emotion/styled":`^11.14.1`,"@devbookhq/splitter":`^1.4.2`,"@fullcalendar/core":`^6.1.22`,"@fullcalendar/daygrid":`^6.1.22`,"@fullcalendar/interaction":`^6.1.22`,"@fullcalendar/list":`^6.1.22`,"@fullcalendar/react":`^6.1.22`,"@fullcalendar/rrule":`^6.1.22`,"@fullcalendar/timegrid":`^6.1.22`,"@iobroker/gui-components":`^10.3.14`,"@iobroker/type-detector":`^6.2.0`,"@material-icons/svg":`^1.0.33`,"@mui/icons-material":`^9.5.0`,"@mui/material":`^9.5.0`,"@mui/system":`^9.5.0`,"@mui/x-date-pickers":`^9.16.0`,"@sentry/browser":`^11.10.0`,"@vitejs/plugin-react":`^6.1.2`,dayjs:`^1.11.23`,moment:`^2.31.0`,react:`^19.3.1`,"react-ace":`^15.0.0`,"react-dnd":`^16.0.1`,"react-dnd-html5-backend":`^16.0.1`,"react-dnd-preview":`^9.0.0`,"react-dnd-touch-backend":`^16.0.1`,"react-dom":`^19.3.1`,"react-dropzone":`^20.1.4`,"react-icons":`^5.7.0`,rrule:`^2.8.1`,suncalc2:`^1.8.1`,vite:`^8.3.5`},scripts:{start:`vite --host`,build:`vite build`,lint:`eslint -c eslint.config.mjs`,"check-ts":`tsc --noEmit --checkJS false`,tsc:`tsc --project tsconfig.json`},eslintConfig:{extends:`react-app`},homepage:`.`,browserslist:[`>0.2%`,`not dead`,`not ie <= 11`,`not op_mini all`]},F5=e=>{let t=cl(e);return t&&(t.palette.text.danger={color:`#dd5325`},t.palette.text.success={color:`#73b6a8`},t)},I5=ES.getThemeName();window.adapterName=`fullcalendar`,console.log(`iobroker.${window.adapterName}@${P5.version} using theme "${I5}"`);function L5(e,t,n){let r=(e||``).split(` `).map(e=>e.trim()).filter(e=>e),i=r.indexOf(n);return i!==-1&&r.splice(i,1),!r.includes(t)&&r.push(t),r.join(` `)}var R5=()=>{let[e,t]=(0,B.useState)(I5),n=F5(e),r=()=>n,i=n.palette.mode;return(0,B.useEffect)(()=>{i===`dark`?window.document.body.className=L5(window.document.body.className,`body-dark`,`body-light`):window.document.body.className=L5(window.document.body.className,`body-light`,`body-dark`)},[i]),(0,V.jsx)(Kt,{injectFirst:!0,children:(0,V.jsx)(qc,{theme:r(),children:(0,V.jsx)(M5,{onThemeChange:e=>t(e)})})})};function z5(){let e=document.getElementById(`root`);(0,Jc.createRoot)(e).render((0,V.jsx)(R5,{}))}z5(),N5();
|
|
788
|
+
`}),(0,V.jsx)(ng,{children:Y.t(`Edit simulation`)}),(0,V.jsxs)(Yh,{children:[(0,V.jsxs)(`div`,{style:m5.field,children:[(0,V.jsx)($b,{label:Y.t(`Name`),value:t.common.name||``,onChange:e=>{let r=JSON.parse(JSON.stringify(t));r.common.name=e.target.value,n(r)},variant:`standard`}),(0,V.jsxs)(Cg,{variant:`standard`,children:[(0,V.jsx)(n_,{children:Y.t(`Interval`)}),(0,V.jsx)(By,{value:t.native.interval||``,onChange:e=>{let r=JSON.parse(JSON.stringify(t));r.native.interval=e.target.value,n(r)},variant:`standard`,children:[`day`,`week`].map(e=>(0,V.jsx)(Qv,{value:e,children:Y.t(e)},e))})]})]}),(0,V.jsx)(`div`,{style:m5.field,children:(0,V.jsx)(zC,{label:Y.t(`Default color`),value:t.common.color,onChange:e=>{let r=JSON.parse(JSON.stringify(t));r.common.color=e,n(r)}})}),(0,V.jsxs)(`h4`,{style:m5.headers,children:[Y.t(`States`),(0,V.jsx)(lb,{title:Y.t(`Add states for recording`),slotProps:{popper:{sx:m5.tooltip}},children:(0,V.jsx)(Pd,{style:!l.length&&t?.native?.record?.states?.length?m5.blink:void 0,size:`small`,onClick:()=>o(!0),color:`primary`,children:(0,V.jsx)(tx,{})})})]}),(0,V.jsx)(`div`,{children:t.native.record?.states.map((e,r)=>v(e,()=>{let e=JSON.parse(JSON.stringify(t));e.native.record.states.splice(r,1),n(e)}))}),(0,V.jsxs)(`h4`,{style:m5.headers,children:[Y.t(`Categories`),(0,V.jsx)(lb,{title:Y.t(`Add overlap of categories for recording`),slotProps:{popper:{sx:m5.tooltip}},children:(0,V.jsx)(Pd,{style:!l.length&&t?.native?.record?.states?.length?m5.blink:void 0,size:`small`,onClick:()=>c(!0),color:`primary`,children:(0,V.jsx)(tx,{})})})]}),(0,V.jsx)(`div`,{children:t.native.record?.enums.map((e,r)=>{let i=e.map(e=>(0,V.jsx)(LE,{value:d[e]||e,lang:Y.getLanguage()},e)),a=1,o=i.reduce((e,t)=>[e,(0,V.jsx)(`span`,{children:`+`},a++),t],null);return(0,V.jsx)(am,{onClick:()=>c(r),onDelete:()=>{let e=JSON.parse(JSON.stringify(t));e.native.record.enums.splice(r,1),n(e)},label:o,sx:{"& .MuiChip-label":m5.chipLabel},style:m5.chip},r)})}),(0,V.jsx)(`h4`,{style:{marginBottom:-0},children:Y.t(`Recorded states`)}),(0,V.jsxs)(`div`,{children:[h&&(0,V.jsx)(v_,{}),Object.keys(p).map(e=>v(e))]})]}),(0,V.jsxs)(Uh,{children:[(0,V.jsx)(Lm,{variant:`contained`,color:`secondary`,startIcon:(0,V.jsx)(_x,{}),onClick:()=>i(!0),children:Y.t(`Delete`)}),(0,V.jsx)(Lm,{disabled:y,onClick:async()=>{let n=JSON.parse(JSON.stringify(t));n.native.interval!==e.simulation.native.interval&&n.native.interval===`day`&&(console.log(n),n.native.events.forEach(e=>{console.log(e.native.cron);let t=ZH(e.native.cron);console.log(t),t.dows=[0,1,2,3,4,5,6],e.native.cron=$H(t),console.log(e.native.cron)})),await e.socket.setObject(t._id,n),e.onClose()},variant:`contained`,color:`primary`,startIcon:(0,V.jsx)(Ux,{}),children:Y.t(`Save`)}),(0,V.jsx)(Lm,{onClick:e.onClose,variant:`contained`,color:`grey`,startIcon:(0,V.jsx)(cx,{}),children:y?Y.t(`ra_Close`):Y.t(`ra_Cancel`)})]}),r&&(0,V.jsx)(AS,{fullWidth:!1,title:Y.t(`Delete simulation`),text:Y.t(`Simulation will be deleted. Confirm?`),ok:Y.t(`ra_Delete`),onClose:async n=>{n&&(await e.onDelete(t._id),e.onClose()),i(!1)}}),a&&(0,V.jsx)(RE,{imagePrefix:`../..`,multiSelect:!0,theme:e.theme,selected:t.native.record.states,onOk:e=>{let r=JSON.parse(JSON.stringify(t));r.native.record=r.native.record||{enums:[],states:[]},r.native.record.states=r.native.record.states||[],r.native.record.states=Array.isArray(e)?e:[e],n(r),o(!1)},onClose:()=>o(!1),socket:e.socket}),s===!1?null:(0,V.jsx)(p5,{socket:e.socket,enumsObjects:d,selectedEnums:typeof s==`number`?t.native.record.enums[s]:[],exceptions:t.native.record.enumsExceptions||[],onSelect:(e,r)=>{let i=JSON.parse(JSON.stringify(t));i.native.record=i.native.record||{enums:[],states:[]},i.native.record.enums=i.native.record.enums||[],i.native.record.enumsExceptions=r||[],typeof s==`number`?i.native.record.enums[s]=e:i.native.record.enums.push(e),n(i),c(!1)},onClose:()=>c(!1)})]})},g5={Y:`year`,YY:`year`,YYYY:{sectionType:`year`,contentType:`digit`,maxLength:4},M:{sectionType:`month`,contentType:`digit`,maxLength:2},MM:`month`,MMM:{sectionType:`month`,contentType:`letter`},MMMM:{sectionType:`month`,contentType:`letter`},D:{sectionType:`day`,contentType:`digit`,maxLength:2},DD:`day`,Do:{sectionType:`day`,contentType:`digit-with-letter`},E:{sectionType:`weekDay`,contentType:`digit`,maxLength:1},e:{sectionType:`weekDay`,contentType:`digit`,maxLength:1},d:{sectionType:`weekDay`,contentType:`digit`,maxLength:1},dd:{sectionType:`weekDay`,contentType:`letter`},ddd:{sectionType:`weekDay`,contentType:`letter`},dddd:{sectionType:`weekDay`,contentType:`letter`},A:`meridiem`,a:`meridiem`,H:{sectionType:`hours`,contentType:`digit`,maxLength:2},HH:`hours`,h:{sectionType:`hours`,contentType:`digit`,maxLength:2},hh:`hours`,k:{sectionType:`hours`,contentType:`digit`,maxLength:2},kk:`hours`,m:{sectionType:`minutes`,contentType:`digit`,maxLength:2},mm:`minutes`,s:{sectionType:`seconds`,contentType:`digit`,maxLength:2},ss:`seconds`},_5={year:`YYYY`,month:`MMMM`,monthShort:`MMM`,dayOfMonth:`D`,dayOfMonthFull:`Do`,weekday:`dddd`,weekdayShort:`ddd`,hours24h:`HH`,hours12h:`hh`,meridiem:`A`,minutes:`mm`,seconds:`ss`,fullDate:`ll`,keyboardDate:`L`,shortDate:`MMM D`,normalDate:`D MMMM`,normalDateWithWeekday:`ddd, MMM D`,fullTime12h:`hh:mm A`,fullTime24h:`HH:mm`,keyboardDateTime12h:`L hh:mm A`,keyboardDateTime24h:`L HH:mm`};function v5(){throw Error(BX(140))}var y5=class{isMUIAdapter=!0;isTimezoneCompatible=!0;lib=`moment`;escapedCharacters={start:`[`,end:`]`};formatTokenMap=g5;constructor({locale:e,formats:t,instance:n}={}){this.moment=n||dU,this.locale=e,this.formats=b({},_5,t)}setLocaleToValue=e=>{let t=this.getCurrentLocaleCode();return t===e.locale()?e:e.locale(t)};hasTimezonePlugin=()=>this.moment.tz!==void 0;createSystemDate=e=>{let t=this.moment(e).local();return this.locale===void 0?t:t.locale(this.locale)};createUTCDate=e=>{let t=this.moment.utc(e);return this.locale===void 0?t:t.locale(this.locale)};createTZDate=(e,t)=>{this.hasTimezonePlugin()||v5();let n=t==="default"?this.moment(e):this.moment.tz(e,t);return this.locale===void 0?n:n.locale(this.locale)};date=(e,t=`default`)=>e===null?null:t===`UTC`?this.createUTCDate(e):t===`system`||t==="default"&&!this.hasTimezonePlugin()?this.createSystemDate(e):this.createTZDate(e,t);getInvalidDate=()=>this.moment(new Date(`Invalid Date`));getTimezone=e=>{let t=e._z?.name,n=e.isUTC()?`UTC`:`system`;return t??this.moment.defaultZone?.name??n};setTimezone=(e,t)=>{if(this.getTimezone(e)===t)return e;if(t===`UTC`)return e.clone().utc();if(t===`system`)return e.clone().local();if(!this.hasTimezonePlugin())return t!=="default"&&v5(),e;let n=t==="default"?this.moment.defaultZone?.name??`system`:t;if(n===`system`)return e.clone().local();let r=e.clone();return r.tz(n),r};toJsDate=e=>e.toDate();parse=(e,t)=>e===``?null:this.locale?this.moment(e,t,this.locale,!0):this.moment(e,t,!0);getCurrentLocaleCode=()=>this.locale||dU.locale();is12HourCycleInCurrentLocale=()=>/A|a/.test(dU.localeData(this.getCurrentLocaleCode()).longDateFormat(`LT`));expandFormat=e=>e.match(/(\[[^[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})|./g).map(e=>{let t=e[0];return t===`L`||t===`;`?dU.localeData(this.getCurrentLocaleCode()).longDateFormat(e):e}).join(``);isValid=e=>e!=null&&e.isValid();format=(e,t)=>this.formatByString(e,this.formats[t]);formatByString=(e,t)=>{let n=e.clone();return n.locale(this.getCurrentLocaleCode()),n.format(t)};formatNumber=e=>e;isEqual=(e,t)=>e===null&&t===null?!0:e===null||t===null?!1:e.isSame(t);isSameYear=(e,t)=>e.isSame(t,`year`);isSameMonth=(e,t)=>e.isSame(t,`month`);isSameDay=(e,t)=>e.isSame(t,`day`);isSameHour=(e,t)=>e.isSame(t,`hour`);isAfter=(e,t)=>e.isAfter(t);isAfterYear=(e,t)=>e.isAfter(t,`year`);isAfterDay=(e,t)=>e.isAfter(t,`day`);isBefore=(e,t)=>e.isBefore(t);isBeforeYear=(e,t)=>e.isBefore(t,`year`);isBeforeDay=(e,t)=>e.isBefore(t,`day`);isWithinRange=(e,[t,n])=>e.isBetween(t,n,null,`[]`);startOfYear=e=>e.clone().startOf(`year`);startOfMonth=e=>e.clone().startOf(`month`);startOfWeek=e=>this.setLocaleToValue(e.clone()).startOf(`week`);startOfDay=e=>e.clone().startOf(`day`);endOfYear=e=>e.clone().endOf(`year`);endOfMonth=e=>e.clone().endOf(`month`);endOfWeek=e=>this.setLocaleToValue(e.clone()).endOf(`week`);endOfDay=e=>e.clone().endOf(`day`);addYears=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`years`):e.clone().add(t,`years`);addMonths=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`months`):e.clone().add(t,`months`);addWeeks=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`weeks`):e.clone().add(t,`weeks`);addDays=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`days`):e.clone().add(t,`days`);addHours=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`hours`):e.clone().add(t,`hours`);addMinutes=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`minutes`):e.clone().add(t,`minutes`);addSeconds=(e,t)=>t<0?e.clone().subtract(Math.abs(t),`seconds`):e.clone().add(t,`seconds`);getYear=e=>e.get(`year`);getMonth=e=>e.get(`month`);getDate=e=>e.get(`date`);getHours=e=>e.get(`hours`);getMinutes=e=>e.get(`minutes`);getSeconds=e=>e.get(`seconds`);getMilliseconds=e=>e.get(`milliseconds`);setYear=(e,t)=>e.clone().year(t);setMonth=(e,t)=>e.clone().month(t);setDate=(e,t)=>e.clone().date(t);setHours=(e,t)=>e.clone().hours(t);setMinutes=(e,t)=>e.clone().minutes(t);setSeconds=(e,t)=>e.clone().seconds(t);setMilliseconds=(e,t)=>e.clone().milliseconds(t);getDaysInMonth=e=>e.daysInMonth();getWeekArray=e=>{let t=this.startOfWeek(this.startOfMonth(e)),n=this.endOfWeek(this.endOfMonth(e)),r=0,i=t,a=i.get(`dayOfYear`),o=[];for(;i.isBefore(n);){let e=Math.floor(r/7);o[e]=o[e]||[],o[e].push(i);let t=a;i=this.addDays(i,1),a=i.get(`dayOfYear`),t===a&&(i=i.add(12,`h`).startOf(`day`)),r+=1}return o};getWeekNumber=e=>e.week();getDayOfWeek=e=>e.day()+1;getYearRange([e,t]){let n=this.startOfYear(e),r=this.endOfYear(t),i=[],a=n;for(;this.isBefore(a,r);)i.push(a),a=this.addYears(a,1);return i}},b5={field:{"& .MuiFormControl-root":{width:`100%`},display:`flex`,alignItems:`end`,gap:`20px`},tableCell:{textAlign:`center`}},x5=e=>{let[t,n]=(0,B.useState)({start:null,end:null,dow:[0,1,2,3,4,5,6]});return dU.locale(Y.getLanguage()),(0,V.jsxs)(zh,{open:!0,onClose:e.onClose,children:[(0,V.jsx)(ng,{children:Y.t(`Play simulation`)}),(0,V.jsxs)(Yh,{children:[(0,V.jsxs)(qX,{dateAdapter:y5,children:[(0,V.jsxs)(Tm,{component:`div`,sx:b5.field,style:{width:`100%`,marginBottom:20,marginTop:10},children:[(0,V.jsx)(M8,{label:`Start`,sx:e=>({borderBottom:`1px solid ${e.palette.text.primary}`,"& fieldset":{display:`none`},"& input":{padding:`${e.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:`translate(0px, -9px) scale(0.75)`},"&.MuiTextField-root":{width:`100%`}}),value:t.start,onChange:e=>n({...t,start:e})}),t.start&&(0,V.jsx)(Pd,{onClick:()=>n({...t,start:null}),children:(0,V.jsx)(_x,{})})]}),(0,V.jsxs)(Tm,{component:`div`,sx:b5.field,style:{width:`100%`,marginBottom:30},children:[(0,V.jsx)(M8,{label:`End`,sx:e=>({borderBottom:`1px solid ${e.palette.text.primary}`,"& fieldset":{display:`none`},"& input":{padding:`${e.spacing(1.5)} 0 4px 0`},"& .MuiInputAdornment-root":{marginLeft:0,marginTop:1},"& label":{transform:`translate(0px, -9px) scale(0.75)`}}),value:t.end,onChange:e=>n({...t,end:e})}),t.end&&(0,V.jsx)(Pd,{onClick:()=>n({...t,end:null}),children:(0,V.jsx)(_x,{})})]})]}),(0,V.jsx)(`div`,{children:(0,V.jsxs)(`table`,{children:[(0,V.jsx)(`thead`,{children:(0,V.jsx)(`tr`,{children:[0,1,2,3,4,5,6].map(e=>(0,V.jsx)(`td`,{style:b5.tableCell,children:dU().day(e).format(`ddd`)},e))})}),(0,V.jsx)(`tbody`,{children:(0,V.jsx)(`tr`,{children:[0,1,2,3,4,5,6].map(r=>(0,V.jsx)(`td`,{children:(0,V.jsx)(Zm,{"aria-label":`play simulation`,checked:t.dow.includes(r),disabled:e.readOnly,onChange:e=>{e.target.checked?n({...t,dow:[...t.dow,r]}):n({...t,dow:t.dow.filter(e=>e!==r)})},size:`small`})},r))})})]})})]}),(0,V.jsxs)(Uh,{children:[(0,V.jsx)(Lm,{onClick:()=>{e.playSimulation(e.simulation._id,t),e.onClose()},variant:`contained`,color:`primary`,startIcon:(0,V.jsx)(Ix,{}),children:Y.t(`Play`)}),(0,V.jsx)(Lm,{onClick:e.onClose,variant:`contained`,color:`grey`,startIcon:(0,V.jsx)(cx,{}),children:Y.t(`Cancel`)})]})]})},S5={panel:e=>({height:`100%`,display:`flex`,flexDirection:`column`,borderRadius:0,borderRight:`1px solid ${e.palette.divider}`,overflow:`hidden`}),modeTabs:{flexShrink:0,minHeight:42,"& .MuiTab-root":{minHeight:42,minWidth:0,flex:1,padding:`0 8px`}},header:e=>({flexShrink:0,display:`flex`,alignItems:`center`,gap:1,minHeight:44,padding:`6px 6px 6px 12px`,borderBottom:`1px solid ${e.palette.divider}`}),headerTitle:e=>({flexGrow:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontSize:11,fontWeight:600,letterSpacing:`0.08em`,textTransform:`uppercase`,color:e.palette.text.secondary}),addButton:e=>({flexShrink:0,width:28,height:28,color:e.palette.primary.contrastText||`#fff`,backgroundColor:e.palette.primary.main,"&:hover":{color:e.palette.primary.contrastText||`#fff`,backgroundColor:e.palette.primary.dark},"& .MuiSvgIcon-root":{fontSize:18}}),alert:e=>({display:`flex`,flexShrink:0,color:e.palette.error.main,"& .MuiSvgIcon-root":{fontSize:18}}),list:{flex:1,overflowY:`auto`,overflowX:`hidden`,padding:`6px`},item:e=>({gap:1,minHeight:34,paddingTop:`3px`,paddingBottom:`3px`,paddingLeft:`8px`,paddingRight:`4px`,marginBottom:`2px`,"& .actions":{opacity:0,transition:`opacity 0.15s ease-in-out`},"&:hover .actions, &.Mui-focusVisible .actions, &.Mui-selected .actions":{opacity:1},"&.Mui-selected .MuiIconButton-root":{color:`inherit`},"&.Mui-selected .count":{backgroundColor:`rgba(255, 255, 255, 0.22)`,color:`inherit`},...e.name?.startsWith(`modern`)?void 0:{"&.Mui-selected":{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText,"&:hover":{backgroundColor:e.palette.primary.dark}}}}),itemText:{margin:0,overflow:`hidden`},swatch:{flexShrink:0,width:10,height:10,borderRadius:`3px`,boxShadow:`inset 0 0 0 1px rgba(0, 0, 0, 0.25)`},icon:{flexShrink:0,width:16,height:16},actions:{display:`flex`,alignItems:`center`,flexShrink:0,"& .MuiIconButton-root":{padding:`4px`},"& .MuiSvgIcon-root":{fontSize:18}},count:e=>({flexShrink:0,minWidth:20,height:18,padding:`0 5px`,borderRadius:`9px`,fontSize:10,fontWeight:600,lineHeight:`18px`,textAlign:`center`,backgroundColor:Ti(e.palette.text.primary,.08),color:e.palette.text.secondary}),tooltip:{pointerEvents:`none`}};function C5(e){return(0,V.jsxs)(vu,{sx:[S5.panel,{width:e.width??`100%`}],children:[(0,V.jsxs)(Jb,{value:+!!e.isSimulations,onChange:e.onChangeMode,variant:`fullWidth`,sx:S5.modeTabs,children:[(0,V.jsx)(Sb,{title:Y.t(`Calendars`),icon:(0,V.jsx)(ox,{})}),(0,V.jsx)(Sb,{title:Y.t(`Simulations`),icon:(0,V.jsx)(Lx,{})})]}),(0,V.jsxs)(Tm,{sx:S5.header,children:[(0,V.jsx)(Tm,{component:`div`,sx:S5.headerTitle,children:e.title}),e.alive===!1&&(0,V.jsx)(lb,{title:Y.t(`Instance inactive`),slotProps:{popper:{sx:S5.tooltip}},children:(0,V.jsx)(Tm,{component:`span`,sx:S5.alert,children:(0,V.jsx)(Vx,{})})}),(0,V.jsx)(lb,{title:e.addTitle,slotProps:{popper:{sx:S5.tooltip}},children:(0,V.jsx)(Pd,{size:`small`,sx:S5.addButton,onClick:e.onAdd,children:(0,V.jsx)(tx,{})})})]}),(0,V.jsx)(C_,{dense:!0,disablePadding:!0,sx:S5.list,children:e.children})]})}function w5(e){return(0,V.jsxs)(O_,{selected:e.selected,onClick:e.onClick,sx:S5.item,children:[e.icon?(0,V.jsx)(Cw,{src:e.icon,style:S5.icon}):e.color?(0,V.jsx)(Tm,{component:`span`,sx:S5.swatch,style:{backgroundColor:e.color}}):null,(0,V.jsx)(q_,{sx:S5.itemText,title:e.name,primary:e.name,slotProps:{primary:{noWrap:!0,sx:{fontSize:13,fontWeight:e.selected?600:400,opacity:e.inactive?.5:1}}}}),e.actions?(0,V.jsx)(Tm,{component:`span`,className:`actions`,sx:S5.actions,children:e.actions}):null,e.status?(0,V.jsx)(Tm,{component:`span`,sx:S5.actions,children:e.status}):null,e.count===void 0?null:(0,V.jsx)(lb,{title:Y.t(`Events`),slotProps:{popper:{sx:S5.tooltip}},children:(0,V.jsx)(Tm,{component:`span`,className:`count`,sx:S5.count,children:e.count})})]})}var T5=260,E5={container:{display:`flex`,width:`100%`,flex:1},toCalendar:{paddingLeft:20},simulations:e=>({backgroundColor:Ti(e.palette.primary.main,e.palette.mode===`dark`?.04:.05)}),tooltip:{pointerEvents:`none`}},D5=e=>{let[t,n]=(0,B.useState)([]),[r,i]=(0,B.useState)({}),[a,o]=(0,B.useState)(window.localStorage.getItem(`fullcalendar.selectedSimulation`)||null),[s,c]=(0,B.useState)(!1),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)(null),[p,m]=(0,B.useState)(null),h=(e,t)=>{t&&i(n=>({...n,[e]:t.val}))},g=(e,t)=>{n(n=>{let r=JSON.parse(JSON.stringify(n)),i=r.findIndex(t=>t._id===e);if(i===-1){if(!t)return n;r.push(t)}else t?r[i]=t:r.splice(i,1);return r})},_=async()=>{let r=await e.socket.getObjectViewSystem(`state`,`fullcalendar.${e.instance}.Simulations.`,`fullcalendar.${e.instance}.Simulations.\u9999`),s={};for(let t in r)s[t]=(await e.socket.getState(t))?.val;let c=Object.values(r);c.sort((e,t)=>e.common.name.localeCompare(t.common.name)),n(c),(!a||t.length&&!t.find(e=>e._id===a))&&o(t[0]?._id||null),i(s),e.socket.subscribeObject(`fullcalendar.${e.instance}.Simulations.*`,g),e.socket.subscribeState(`fullcalendar.${e.instance}.Simulations.*`,h)};(0,B.useEffect)(()=>(_().catch(()=>{}),()=>{e.socket.unsubscribeObject(`fullcalendar.${e.instance}.Simulations.*`,g),e.socket.unsubscribeState(`fullcalendar.${e.instance}.Simulations.*`,h)}),[]),(0,B.useEffect)(()=>{(!a||t.length&&!t.find(e=>e._id===a))&&o(t[0]?._id||null)},[t]);let v=async(t,n)=>{n||=await e.socket.getObject(t),n.native.record=n.native.record||{},n.native.record.start=Date.now(),n.native.record.end=n.native.interval===`day`?new Date(Date.now()+864e5):new Date(Date.now()+6048e5),await e.socket.setObject(t,n),e.socket.setState(t,`record`)},y=async(t,n)=>{let r=await e.socket.getObject(t);r.native.play=n,await e.socket.setObject(t,r),e.socket.setState(t,`play`)},b=(0,V.jsx)(`div`,{style:E5.toCalendar,children:(0,V.jsx)(lb,{title:Y.t(`You can export events to static calender`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(Lm,{variant:`contained`,onClick:async()=>{let n=`fullcalendar.${e.instance}.Calendars.Calendar-${sU()}`;await e.socket.setObject(n,{type:`folder`,common:{name:`NewCalendar`},native:{}});let r=t.find(e=>e._id===a).native.events;for(let t of r){let r=JSON.parse(JSON.stringify(t));r.id=`${n}.event-${sU()}`,e.socket.setObject(r.id,r)}e.updateCalendars(),e.changeCalendarType(),e.setCalendarPrefix(n)},children:Y.t(`To calendar`)})})}),x=(a&&t.find(e=>e._id===a)?a:t[0]?._id)||``;return(0,V.jsxs)(Tm,{component:`div`,style:E5.container,sx:E5.simulations,children:[(0,V.jsxs)(`div`,{children:[d&&(0,V.jsx)(h5,{socket:e.socket,simulation:t.find(e=>e._id===d),onClose:()=>f(null),theme:e.theme,onDelete:async n=>{try{if(a===n){let e=t.find(e=>e._id!==n);o(e?._id||null)}await e.socket.delObject(n)}catch(e){window.alert(`Cannot delete simulation: ${e}`)}}}),p&&(0,V.jsx)(x5,{playSimulation:y,simulation:t.find(e=>e._id===p),onClose:()=>m(null)}),s&&(0,V.jsxs)(zh,{open:!0,maxWidth:`md`,onClose:(e,t)=>{t!==`backdropClick`&&t!==`escapeKeyDown`&&c(!1)},children:[(0,V.jsx)(ng,{id:`confirmation-dialog-title`,children:Y.t(`Start recording`)}),(0,V.jsx)(Yh,{children:(0,V.jsx)($h,{children:Y.t(`Do you want to delete previously recorded events?`)})}),(0,V.jsxs)(Uh,{children:[(0,V.jsx)(Lm,{variant:`contained`,onClick:async()=>{let t=await e.socket.getObject(s);t.native.events=[],await v(t._id,t),c(!1)},style:{backgroundColor:`red`,color:`white`},autoFocus:!0,startIcon:(0,V.jsx)(_x,{}),children:Y.t(`Delete events`)}),(0,V.jsx)(Lm,{variant:`contained`,onClick:async()=>{await v(s),c(!1)},color:`grey`,startIcon:(0,V.jsx)(lx,{}),children:Y.t(`Keep events`)})]})]}),l!==!1&&(0,V.jsx)(AS,{fullWidth:!1,title:Y.t(`Stop recording`),text:Y.t(`Do you want to stop recording? You cannot restart it again.`),ok:Y.t(`Stop`),onClose:t=>{t&&e.socket.setState(l,`stop`),u(!1)}}),(0,V.jsx)(C5,{isSimulations:!0,onChangeMode:e.changeCalendarType,title:Y.t(`Simulations`),addTitle:Y.t(`Create new simulation`),alive:e.alive,width:T5,onAdd:async()=>{let n=`fullcalendar.${e.instance}.Simulations.${sU()}`;await e.socket.setObject(n,{common:{name:Y.t(`Simulation %s`,t.length+1),role:`state`,type:`string`,states:[`stop`,`record`,`play`,`pause`],color:`#3A87AD`},native:{events:[],interval:`day`,record:{states:[],enums:[],start:null,end:null}},type:`state`}),await e.socket.setState(n,`stop`),window.localStorage.setItem(`fullcalendar.selectedSimulation`,n),setTimeout(()=>{o(n),f(n)},300)},children:t.map(t=>(0,V.jsx)(w5,{name:t.common.name||t._id,color:t.common.color,icon:t.common.icon,count:t.native.events?.length||0,selected:t._id===x,onClick:()=>{window.localStorage.setItem(`fullcalendar.selectedSimulation`,t._id),o(t._id)},actions:(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(lb,{title:Y.t(`Edit name and settings`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(Pd,{onClick:e=>{e.stopPropagation(),f(t._id)},size:`small`,children:(0,V.jsx)(bx,{})})}),r[t._id]===`stop`&&(0,V.jsx)(lb,{title:Y.t(`Start recording`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{children:(0,V.jsx)(Pd,{onClick:async e=>{e.stopPropagation(),t.native.events.length?c(t._id):await v(t._id)},size:`small`,children:(0,V.jsx)(Ex,{})})})}),r[t._id]===`stop`&&t.native.events.length>0&&(0,V.jsx)(lb,{title:Y.t(`Start playing`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{children:(0,V.jsx)(Pd,{onClick:e=>{e.stopPropagation(),m(t._id)},size:`small`,children:(0,V.jsx)(Fx,{})})})})]}),status:(0,V.jsxs)(V.Fragment,{children:[(r[t._id]===`record`||r[t._id]===`pause`)&&(0,V.jsx)(lb,{title:Y.t(`Stop recording. Recording till %s`,dU(t.native.record.end).format(`DD.MM.YYYY HH:mm:ss`)),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{style:{opacity:r[t._id]===`pause`?.5:1},children:(0,V.jsx)(Pd,{disabled:r[t._id]===`pause`,onClick:e=>{e.stopPropagation(),u(t._id)},size:`small`,children:(0,V.jsx)(qx,{style:{color:`red`}})})})}),r[t._id]===`play`&&(0,V.jsx)(lb,{title:Y.t(`Stop playing`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{children:(0,V.jsx)(Pd,{onClick:n=>{n.stopPropagation(),e.socket.setState(t._id,`stop`)},size:`small`,children:(0,V.jsx)(qx,{style:{color:`green`}})})})}),r[t._id]===`record`&&(0,V.jsx)(lb,{title:Y.t(`Pause recording`),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{children:(0,V.jsx)(Pd,{onClick:n=>{n.stopPropagation(),e.socket.setState(t._id,`pause`)},size:`small`,children:(0,V.jsx)(Nx,{})})})}),r[t._id]===`pause`&&(0,V.jsx)(lb,{title:Y.t(`Resume recording. Recording till %s`,dU(t.native.record.end).format(`DD.MM.YYYY HH:mm:ss`)),slotProps:{popper:{sx:E5.tooltip}},children:(0,V.jsx)(`span`,{children:(0,V.jsx)(Pd,{onClick:n=>{n.stopPropagation(),e.socket.setState(t._id,`record`)},size:`small`,children:(0,V.jsx)(Nx,{style:{color:`yellow`}})})})})]})},t._id))})]}),a&&(0,V.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,flex:1},children:(0,V.jsx)(d5,{systemConfig:e.systemConfig,socket:e.socket,isSimulation:!0,calendarPrefix:a,simulationId:a,simulation:t.find(e=>e._id===a),simulations:t,theme:e.theme,readOnly:r[a]===`play`,simulationState:r[a],button:b},a)})]})},O5={field:{display:`flex`,alignItems:`end`,gap:20},hint:{fontSize:12,fontStyle:`italic`}},k5=e=>{let[t,n]=(0,B.useState)(e.calendar),[r,i]=(0,B.useState)(!1);return t?(0,V.jsxs)(zh,{open:!0,onClose:e.onClose,children:[(0,V.jsx)(ng,{children:Y.t(`Edit calendar`)}),(0,V.jsxs)(Yh,{children:[(0,V.jsx)(`div`,{style:O5.field,children:(0,V.jsx)($b,{label:Y.t(`Name`),value:t.common.name||``,onChange:e=>{let r=JSON.parse(JSON.stringify(t));r.common.name=e.target.value,n(r)},variant:`standard`})}),(0,V.jsx)(`div`,{style:O5.field,children:(0,V.jsx)(Dg,{control:(0,V.jsx)(Zm,{checked:t.common.enabled!==!1,onChange:e=>{let r=JSON.parse(JSON.stringify(t));r.common.enabled=e.target.checked,n(r)}}),label:(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{children:Y.t(`Active`)}),(0,V.jsx)(`div`,{style:O5.hint,children:Y.t(`Inactive calendars do not execute their events`)})]})})})]}),(0,V.jsxs)(Uh,{children:[(0,V.jsx)(Lm,{variant:`contained`,color:`secondary`,startIcon:(0,V.jsx)(_x,{}),onClick:()=>i(!0),children:Y.t(`Delete`)}),(0,V.jsx)(Lm,{disabled:!t||!e.calendar||!t.common.name||t.common.name===e.calendar.common.name&&t.common.enabled!==!1==(e.calendar.common.enabled!==!1),onClick:async()=>{await e.socket.setObject(t._id,t),await e.updateCalendars(),e.onClose()},variant:`contained`,color:`primary`,startIcon:(0,V.jsx)(Ux,{}),children:Y.t(`Save`)}),(0,V.jsx)(Lm,{onClick:e.onClose,variant:`contained`,color:`grey`,startIcon:(0,V.jsx)(cx,{}),children:Y.t(`Cancel`)})]}),r&&(0,V.jsx)(AS,{fullWidth:!1,title:Y.t(`Delete calendar`),text:Y.t(`Calendar will be deleted. Confirm?`),ok:Y.t(`Delete`),onClose:async n=>{if(n){try{let n=Object.keys(await e.socket.getObjectViewCustom(`schedule`,`schedule`,`${t._id}.`,`${t._id}.\u9999`));await e.socket.delObject(t._id),await Promise.all(n.map(t=>e.socket.delObject(t))),e.calendarPrefix===t._id&&e.setCalendarPrefix(`fullcalendar.${e.instance}`),await e.updateCalendars()}catch(e){window.alert(`Cannot delete calendar: ${e}`)}e.onClose()}i(!1)}})]}):null},A5={column:{width:`100%`,display:`flex`,flexDirection:`column`,alignItems:`start`,height:`100%`},calendars:{height:`100%`},container:{display:`flex`,width:`100%`,flex:1},tooltip:{pointerEvents:`none`}},j5=e=>{let[t,n]=(0,B.useState)(window.localStorage.getItem(`fullcalendar.calendar`)||`fullcalendar.${e.instance}`),[r,i]=(0,B.useState)(null),[a,o]=(0,B.useState)([]),[s,c]=(0,B.useState)(window.localStorage.getItem(`fullcalendar.tab`)===`1`),[l,u]=(0,B.useState)(!1),[d,f]=(0,B.useState)(window.localStorage.getItem(`fullcalendar.splitSizes`)?JSON.parse(window.localStorage.getItem(`fullcalendar.splitSizes`)):[15,85]),p=async()=>{let r=await e.socket.getObjectViewSystem(`folder`,`fullcalendar.${e.instance}.Calendars.`,`fullcalendar.${e.instance}.Calendars.\u9999`);o(Object.values(r)),Object.keys(r).includes(t)||(window.localStorage.removeItem(`fullcalendar.calendar`),n(`fullcalendar.${e.instance}`))},m=async t=>{let n=JSON.parse(JSON.stringify(t));n.common.enabled=t.common.enabled===!1,await e.socket.setObject(n._id,n),await p()},h=()=>c(e=>(window.localStorage.setItem(`fullcalendar.tab`,e?`0`:`1`),!e));return(0,B.useEffect)(()=>{let t=(e,t)=>{let n=t&&t.val||!1;u(!!n)};return p().catch(e=>console.error(e)),e.socket.subscribeState(`system.adapter.fullcalendar.${e.instance}.alive`,t).catch(e=>console.error(e)),e.socket.getState(`system.adapter.fullcalendar.${e.instance}.alive`).then(e=>u(!!(e&&e.val))).catch(e=>console.error(e)),()=>{e.socket.unsubscribeState(`system.adapter.fullcalendar.${e.instance}.alive`,t)}},[]),(0,V.jsxs)(`div`,{style:A5.column,children:[s?(0,V.jsx)(D5,{systemConfig:e.systemConfig,socket:e.socket,theme:e.theme,instance:e.instance,updateCalendars:p,changeCalendarType:h,setCalendarPrefix:n,alive:l}):(0,V.jsx)(`div`,{style:A5.container,children:(0,V.jsxs)(dD,{direction:oD.Horizontal,initialSizes:d,minWidths:[195,500],onResizeFinished:(e,t)=>{f(t),window.localStorage.setItem(`fullcalendar.splitSizes`,JSON.stringify(t))},gutterTheme:e.themeType===`dark`?sD.Dark:sD.Light,gutterClassName:e.themeType===`dark`?`Dark visGutter`:`Light visGutter`,children:[(0,V.jsx)(`div`,{style:A5.calendars,children:(0,V.jsxs)(C5,{isSimulations:!1,onChangeMode:h,title:Y.t(`Calendars`),addTitle:Y.t(`Add new calendar`),alive:l,onAdd:async()=>{let t=`fullcalendar.${e.instance}.Calendars.Calendar-${sU()}`;await e.socket.setObject(t,{type:`folder`,common:{name:`NewCalendar`},native:{}}),await p(),n(t),window.localStorage.setItem(`fullcalendar.calendar`,t),setTimeout(()=>i(t),300)},children:[(0,V.jsx)(w5,{name:Y.t(`Default`),selected:!a.find(e=>e._id===t),onClick:()=>{let t=`fullcalendar.${e.instance}`;window.localStorage.setItem(`fullcalendar.calendar`,t),n(t)}}),a.map(e=>(0,V.jsx)(w5,{name:e.common.name,color:e.common.color,icon:e.common.icon,selected:e._id===t,inactive:e.common.enabled===!1,onClick:()=>{window.localStorage.setItem(`fullcalendar.calendar`,e._id),n(e._id)},status:e.common.enabled===!1?(0,V.jsx)(lb,{title:Y.t(`Calendar is inactive. Click to activate`),slotProps:{popper:{sx:A5.tooltip}},children:(0,V.jsx)(Pd,{size:`small`,onClick:t=>{t.stopPropagation(),m(e)},children:(0,V.jsx)(wx,{})})}):null,actions:(0,V.jsxs)(V.Fragment,{children:[e.common.enabled===!1?null:(0,V.jsx)(lb,{title:Y.t(`Deactivate calendar`),slotProps:{popper:{sx:A5.tooltip}},children:(0,V.jsx)(Pd,{size:`small`,onClick:t=>{t.stopPropagation(),m(e)},children:(0,V.jsx)(Cx,{})})}),(0,V.jsx)(lb,{title:Y.t(`Edit name or delete calendar`),slotProps:{popper:{sx:A5.tooltip}},children:(0,V.jsx)(Pd,{size:`small`,onClick:t=>{i(e._id),t.stopPropagation()},children:(0,V.jsx)(bx,{})})})]})},e._id))]})}),(0,V.jsx)(d5,{systemConfig:e.systemConfig,socket:e.socket,theme:e.theme,calendarPrefix:t},t)]})}),r?(0,V.jsx)(k5,{onClose:()=>i(null),calendarPrefix:t,setCalendarPrefix:n,calendar:a.find(e=>e._id===r),socket:e.socket,instance:e.instance,updateCalendars:p}):null]})},M5=class extends HS{constructor(e){let t={...e};t.translations={en:zE,de:BE,ru:VE,pt:HE,nl:UE,fr:WE,it:GE,es:KE,pl:qE,uk:JE,"zh-cn":YE},t.sentryDSN=window.sentryDSN,window.location.port,window.socketUrl&&window.socketUrl.startsWith(`:`)&&(window.socketUrl=`${window.location.protocol}//${window.location.hostname}${window.socketUrl}`),super(e,t)}render(){return this.state.loaded?(0,V.jsx)(Kt,{injectFirst:!0,children:(0,V.jsx)(qc,{theme:this.state.theme,children:(0,V.jsx)(`div`,{style:{overflow:`auto`,height:`100%`},id:`rootDiv`,children:(0,V.jsx)(j5,{systemConfig:this._systemConfig,socket:this.socket,theme:this.state.theme,instance:this.instance,alive:!!this.state.alive,themeType:this.state.themeType})})})}):(0,V.jsx)(Kt,{injectFirst:!0,children:(0,V.jsx)(qc,{theme:this.state.theme,children:(0,V.jsx)(pS,{themeType:this.state.themeType})})})}};window.location.hostname===`localhost`||window.location.hostname===`[::1]`||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function N5(){`serviceWorker`in navigator&&navigator.serviceWorker.ready.then(e=>{e.unregister()})}var P5={name:`fullcalendar-admin`,version:`3.3.0`,private:!0,dependencies:{"@emotion/react":`^11.14.0`,"@emotion/styled":`^11.14.1`,"@devbookhq/splitter":`^1.4.2`,"@fullcalendar/core":`^6.1.22`,"@fullcalendar/daygrid":`^6.1.22`,"@fullcalendar/interaction":`^6.1.22`,"@fullcalendar/list":`^6.1.22`,"@fullcalendar/react":`^6.1.22`,"@fullcalendar/rrule":`^6.1.22`,"@fullcalendar/timegrid":`^6.1.22`,"@iobroker/gui-components":`^10.3.14`,"@iobroker/type-detector":`^6.2.0`,"@material-icons/svg":`^1.0.33`,"@mui/icons-material":`^9.5.0`,"@mui/material":`^9.5.0`,"@mui/system":`^9.5.0`,"@mui/x-date-pickers":`^9.16.0`,"@sentry/browser":`^11.10.0`,"@vitejs/plugin-react":`^6.1.2`,dayjs:`^1.11.23`,moment:`^2.31.0`,react:`^19.3.1`,"react-ace":`^15.0.0`,"react-dnd":`^16.0.1`,"react-dnd-html5-backend":`^16.0.1`,"react-dnd-preview":`^9.0.0`,"react-dnd-touch-backend":`^16.0.1`,"react-dom":`^19.3.1`,"react-dropzone":`^20.1.4`,"react-icons":`^5.7.0`,rrule:`^2.8.1`,suncalc2:`^1.8.1`,vite:`^8.3.5`},scripts:{start:`vite --host`,build:`vite build`,lint:`eslint -c eslint.config.mjs`,"check-ts":`tsc --noEmit --checkJS false`,tsc:`tsc --project tsconfig.json`},eslintConfig:{extends:`react-app`},homepage:`.`,browserslist:[`>0.2%`,`not dead`,`not ie <= 11`,`not op_mini all`]},F5=e=>{let t=cl(e);return t&&(t.palette.text.danger={color:`#dd5325`},t.palette.text.success={color:`#73b6a8`},t)},I5=ES.getThemeName();window.adapterName=`fullcalendar`,console.log(`iobroker.${window.adapterName}@${P5.version} using theme "${I5}"`);function L5(e,t,n){let r=(e||``).split(` `).map(e=>e.trim()).filter(e=>e),i=r.indexOf(n);return i!==-1&&r.splice(i,1),!r.includes(t)&&r.push(t),r.join(` `)}var R5=()=>{let[e,t]=(0,B.useState)(I5),n=F5(e),r=()=>n,i=n.palette.mode;return(0,B.useEffect)(()=>{i===`dark`?window.document.body.className=L5(window.document.body.className,`body-dark`,`body-light`):window.document.body.className=L5(window.document.body.className,`body-light`,`body-dark`)},[i]),(0,V.jsx)(Kt,{injectFirst:!0,children:(0,V.jsx)(qc,{theme:r(),children:(0,V.jsx)(M5,{onThemeChange:e=>t(e)})})})};function z5(){let e=document.getElementById(`root`);(0,Jc.createRoot)(e).render((0,V.jsx)(R5,{}))}z5(),N5();
|
package/admin/tab_m.html
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
document.head.appendChild(script);
|
|
44
44
|
</script>
|
|
45
45
|
<!--script type="text/javascript" src="../../socket.io/socket.io.js"></script-->
|
|
46
|
-
<script type="module" crossorigin src="./assets/index-
|
|
46
|
+
<script type="module" crossorigin src="./assets/index-CmNdY9s1.js"></script>
|
|
47
47
|
<link rel="stylesheet" crossorigin href="./assets/index-gxlVzAAs.css">
|
|
48
48
|
</head>
|
|
49
49
|
<body>
|
package/build/lib/agenda.js
CHANGED
|
@@ -238,6 +238,16 @@ function parseTime(value) {
|
|
|
238
238
|
const [, y, M, d, h, m, s] = local;
|
|
239
239
|
return new Date(+y, +M - 1, +d, +h, +m, s ? +s : 0, 0);
|
|
240
240
|
}
|
|
241
|
+
// a time of day: today
|
|
242
|
+
const timeOfDay = /^(\d{1,2}):(\d{2})(?::(\d{2}))?$/.exec(text);
|
|
243
|
+
if (timeOfDay) {
|
|
244
|
+
const [, h, m, s] = timeOfDay;
|
|
245
|
+
if (+h > 23 || +m > 59 || (s && +s > 59)) {
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
const today = new Date();
|
|
249
|
+
return new Date(today.getFullYear(), today.getMonth(), today.getDate(), +h, +m, s ? +s : 0, 0);
|
|
250
|
+
}
|
|
241
251
|
const date = new Date(text);
|
|
242
252
|
return Number.isNaN(date.getTime()) ? null : date;
|
|
243
253
|
}
|
package/build/lib/agenda.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agenda.js","sourceRoot":"","sources":["../../src/lib/agenda.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwFA,8BAWC;AAmBD,sCAuBC;AAGD,oBAEC;AAGD,wBAQC;AAmBD,oCA0BC;AAUD,kCA2CC;AAGD,gCAEC;AAQD,
|
|
1
|
+
{"version":3,"file":"agenda.js","sourceRoot":"","sources":["../../src/lib/agenda.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Recurring events for the `addEvent` message: `recurring: 'daily' | 'weekly' | 'monthly' | 'yearly'` or an iCal
|
|
4
|
+
* `rrule` (`FREQ=YEARLY`) become a cron in the format the GUI writes, so the event can be edited there:
|
|
5
|
+
* `0 30 7 ? * 0-6` (daily), `0 30 7 ? * 1,3` (weekly), `0 30 7 15 1-12 *` (monthly), `0 30 7 15 6 *` (yearly).
|
|
6
|
+
* The scheduler drops the seconds field, recurring events run at whole minutes.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.FREQUENCIES = void 0;
|
|
10
|
+
exports.parseRRule = parseRRule;
|
|
11
|
+
exports.parseRecurrence = parseRecurrence;
|
|
12
|
+
exports.recurrenceToCron = recurrenceToCron;
|
|
13
|
+
exports.FREQUENCIES = ['daily', 'weekly', 'monthly', 'yearly'];
|
|
14
|
+
const WEEKDAYS = {
|
|
15
|
+
su: 0,
|
|
16
|
+
so: 0,
|
|
17
|
+
sun: 0,
|
|
18
|
+
sunday: 0,
|
|
19
|
+
sonntag: 0,
|
|
20
|
+
mo: 1,
|
|
21
|
+
mon: 1,
|
|
22
|
+
monday: 1,
|
|
23
|
+
montag: 1,
|
|
24
|
+
tu: 2,
|
|
25
|
+
di: 2,
|
|
26
|
+
tue: 2,
|
|
27
|
+
tuesday: 2,
|
|
28
|
+
dienstag: 2,
|
|
29
|
+
we: 3,
|
|
30
|
+
mi: 3,
|
|
31
|
+
wed: 3,
|
|
32
|
+
wednesday: 3,
|
|
33
|
+
mittwoch: 3,
|
|
34
|
+
th: 4,
|
|
35
|
+
do: 4,
|
|
36
|
+
thu: 4,
|
|
37
|
+
thursday: 4,
|
|
38
|
+
donnerstag: 4,
|
|
39
|
+
fr: 5,
|
|
40
|
+
fri: 5,
|
|
41
|
+
friday: 5,
|
|
42
|
+
freitag: 5,
|
|
43
|
+
sa: 6,
|
|
44
|
+
sat: 6,
|
|
45
|
+
saturday: 6,
|
|
46
|
+
samstag: 6,
|
|
47
|
+
};
|
|
48
|
+
/** Weekday as number (0 = Sunday, 7 is Sunday too) or name (`MO`, `Mon`, `monday`, `Montag`) */
|
|
49
|
+
function parseWeekday(value) {
|
|
50
|
+
if (typeof value === 'number' || (typeof value === 'string' && /^\d$/.test(value.trim()))) {
|
|
51
|
+
const day = Number(value);
|
|
52
|
+
if (Number.isInteger(day) && day >= 0 && day <= 7) {
|
|
53
|
+
return day % 7;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else if (typeof value === 'string' && WEEKDAYS[value.trim().toLowerCase()] !== undefined) {
|
|
57
|
+
return WEEKDAYS[value.trim().toLowerCase()];
|
|
58
|
+
}
|
|
59
|
+
throw new Error(`Unknown weekday "${String(value)}" (use 0 = Sunday … 6 = Saturday, or MO, TU, WE, TH, FR, SA, SU)`);
|
|
60
|
+
}
|
|
61
|
+
function parseNumbers(value, min, max, what) {
|
|
62
|
+
const list = Array.isArray(value) ? value : String(value).split(',');
|
|
63
|
+
return list.map(item => {
|
|
64
|
+
const num = Number(typeof item === 'string' ? item.trim() : item);
|
|
65
|
+
if (!Number.isInteger(num) || num < min || num > max) {
|
|
66
|
+
throw new Error(`Invalid ${what} "${String(item)}" (${min} … ${max})`);
|
|
67
|
+
}
|
|
68
|
+
return num;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function parseWeekdays(value) {
|
|
72
|
+
const list = Array.isArray(value) ? value : String(value).split(',');
|
|
73
|
+
const days = list.map(parseWeekday);
|
|
74
|
+
return days.filter((day, i) => days.indexOf(day) === i).sort((a, b) => a - b);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* An iCal recurrence rule (`FREQ=WEEKLY;BYDAY=MO,WE`, also with a leading `RRULE:`). Supported: FREQ, BYDAY (plain
|
|
78
|
+
* weekdays), BYMONTHDAY, BYMONTH, INTERVAL=1. A cron cannot express INTERVAL > 1, COUNT, UNTIL or "the 2nd Monday".
|
|
79
|
+
*
|
|
80
|
+
* @param rrule the rule
|
|
81
|
+
*/
|
|
82
|
+
function parseRRule(rrule) {
|
|
83
|
+
const line = rrule
|
|
84
|
+
.split(/\r?\n/)
|
|
85
|
+
.map(l => l.trim())
|
|
86
|
+
.find(l => /FREQ=/i.test(l));
|
|
87
|
+
if (!line) {
|
|
88
|
+
throw new Error(`"rrule" needs FREQ, e.g. "FREQ=YEARLY"`);
|
|
89
|
+
}
|
|
90
|
+
const parts = {};
|
|
91
|
+
for (const part of line.replace(/^RRULE:/i, '').split(';')) {
|
|
92
|
+
const [key, value] = part.split('=');
|
|
93
|
+
if (key && value !== undefined) {
|
|
94
|
+
parts[key.trim().toUpperCase()] = value.trim();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const freq = parts.FREQ?.toLowerCase();
|
|
98
|
+
if (!exports.FREQUENCIES.includes(freq)) {
|
|
99
|
+
throw new Error(`Unsupported FREQ "${parts.FREQ}" (supported: DAILY, WEEKLY, MONTHLY, YEARLY)`);
|
|
100
|
+
}
|
|
101
|
+
for (const key of Object.keys(parts)) {
|
|
102
|
+
if (key === 'INTERVAL' && parts.INTERVAL === '1') {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (key === 'WKST') {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
if (!['FREQ', 'BYDAY', 'BYMONTHDAY', 'BYMONTH'].includes(key)) {
|
|
109
|
+
throw new Error(`"${key}=${parts[key]}" is not supported in "rrule" (supported: FREQ, BYDAY, BYMONTHDAY, BYMONTH)`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const rec = { freq };
|
|
113
|
+
if (parts.BYDAY) {
|
|
114
|
+
if (/[+-]?\d/.test(parts.BYDAY)) {
|
|
115
|
+
throw new Error(`"BYDAY=${parts.BYDAY}" is not supported: only plain weekdays like MO,WE`);
|
|
116
|
+
}
|
|
117
|
+
rec.weekdays = parseWeekdays(parts.BYDAY);
|
|
118
|
+
}
|
|
119
|
+
if (parts.BYMONTHDAY) {
|
|
120
|
+
rec.monthDays = parseNumbers(parts.BYMONTHDAY, 1, 31, 'day of month');
|
|
121
|
+
}
|
|
122
|
+
if (parts.BYMONTH) {
|
|
123
|
+
rec.months = parseNumbers(parts.BYMONTH, 1, 12, 'month');
|
|
124
|
+
}
|
|
125
|
+
return rec;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The recurrence of an `addEvent` message: `rrule`, or `recurring` (a frequency) with optional `weekdays`,
|
|
129
|
+
* `monthDays` and `months`. `null` = a one-shot event.
|
|
130
|
+
*
|
|
131
|
+
* @param params the message
|
|
132
|
+
*/
|
|
133
|
+
function parseRecurrence(params) {
|
|
134
|
+
const { recurring, rrule } = params;
|
|
135
|
+
if (typeof rrule === 'string' && rrule.trim()) {
|
|
136
|
+
return parseRRule(rrule);
|
|
137
|
+
}
|
|
138
|
+
if (recurring === undefined || recurring === null || recurring === false || recurring === '') {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
const freq = typeof recurring === 'string' ? recurring.trim().toLowerCase() : null;
|
|
142
|
+
if (!freq || !exports.FREQUENCIES.includes(freq)) {
|
|
143
|
+
throw new Error(`"recurring" must be one of ${exports.FREQUENCIES.join(', ')} (or give an iCal "rrule" like "FREQ=YEARLY")`);
|
|
144
|
+
}
|
|
145
|
+
const rec = { freq };
|
|
146
|
+
if (params.weekdays !== undefined && params.weekdays !== null && params.weekdays !== '') {
|
|
147
|
+
rec.weekdays = parseWeekdays(params.weekdays);
|
|
148
|
+
}
|
|
149
|
+
if (params.monthDays !== undefined && params.monthDays !== null && params.monthDays !== '') {
|
|
150
|
+
rec.monthDays = parseNumbers(params.monthDays, 1, 31, 'day of month');
|
|
151
|
+
}
|
|
152
|
+
if (params.months !== undefined && params.months !== null && params.months !== '') {
|
|
153
|
+
rec.months = parseNumbers(params.months, 1, 12, 'month');
|
|
154
|
+
}
|
|
155
|
+
return rec;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* The cron of a recurring event, in the format of the GUI. The time of day (and the day, if the recurrence does not
|
|
159
|
+
* give one) is taken from `time`.
|
|
160
|
+
*
|
|
161
|
+
* @param rec the recurrence
|
|
162
|
+
* @param time first execution, or any execution of the series
|
|
163
|
+
*/
|
|
164
|
+
function recurrenceToCron(rec, time) {
|
|
165
|
+
const at = `0 ${time.getMinutes()} ${time.getHours()}`;
|
|
166
|
+
switch (rec.freq) {
|
|
167
|
+
case 'daily':
|
|
168
|
+
// FREQ=DAILY;BYDAY=MO,TU… is a weekly rule
|
|
169
|
+
return `${at} ? * ${rec.weekdays?.length ? rec.weekdays.join(',') : '0-6'}`;
|
|
170
|
+
case 'weekly':
|
|
171
|
+
return `${at} ? * ${(rec.weekdays?.length ? rec.weekdays : [time.getDay()]).join(',')}`;
|
|
172
|
+
case 'monthly':
|
|
173
|
+
if (rec.weekdays?.length) {
|
|
174
|
+
throw new Error('A monthly event on weekdays is not supported, give days of the month');
|
|
175
|
+
}
|
|
176
|
+
return `${at} ${(rec.monthDays?.length ? rec.monthDays : [time.getDate()]).join(',')} ${rec.months?.length ? rec.months.join(',') : '1-12'} *`;
|
|
177
|
+
default:
|
|
178
|
+
if (rec.weekdays?.length) {
|
|
179
|
+
throw new Error('A yearly event on weekdays is not supported, give the day and the month');
|
|
180
|
+
}
|
|
181
|
+
return `${at} ${(rec.monthDays?.length ? rec.monthDays : [time.getDate()]).join(',')} ${(rec.months?.length
|
|
182
|
+
? rec.months
|
|
183
|
+
: [time.getMonth() + 1]).join(',')} *`;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=recurrence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recurrence.js","sourceRoot":"","sources":["../../src/lib/recurrence.ts"],"names":[],"mappings":"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"}
|
package/build/main.js
CHANGED
|
@@ -44,6 +44,7 @@ const later = __importStar(require("later"));
|
|
|
44
44
|
const suncalc2_1 = __importDefault(require("suncalc2"));
|
|
45
45
|
const timeUtils = __importStar(require("./lib/utils"));
|
|
46
46
|
const condition_1 = require("./lib/condition");
|
|
47
|
+
const recurrence_1 = require("./lib/recurrence");
|
|
47
48
|
const agenda_1 = require("./lib/agenda");
|
|
48
49
|
const adapterName = require('../package.json').name.split('.').pop();
|
|
49
50
|
const IGNORE_STATES = [
|
|
@@ -66,6 +67,37 @@ const YYYY_MM_DDTHH_mm_ss = 'YYYY_MM_DDTHH_mm_ss'.length;
|
|
|
66
67
|
// const DDTHH_mm_ss = 'DDTHH_mm_ss'.length;
|
|
67
68
|
/** Upper bound for `getObjectView` range queries */
|
|
68
69
|
const MAX_KEY = '\u9999';
|
|
70
|
+
/** The messages of the adapter, the answer of `getCommands` and the reference in the README */
|
|
71
|
+
const COMMANDS = [
|
|
72
|
+
{
|
|
73
|
+
command: 'addEvent',
|
|
74
|
+
params: 'oid, value, start (local time "2026-10-29T07:30" or ms) or in (delay: seconds, "90s", "30m", "2h"); ' +
|
|
75
|
+
'optional: duration or durationSec (then type "double", endValue default: opposite of a boolean value), ' +
|
|
76
|
+
'type ("single", "double", "toggle"), endValue, recurring ("daily", "weekly", "monthly", "yearly") ' +
|
|
77
|
+
'with weekdays (0 = Sunday or "MO"\u2026), monthDays, months, or rrule ("FREQ=YEARLY", "FREQ=WEEKLY;BYDAY=MO,FR"), ' +
|
|
78
|
+
'name, calendar (name or ID), color',
|
|
79
|
+
answer: '{id, name, type, start, ts, cron?}: start/ts = first execution',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
command: 'deleteEvent',
|
|
83
|
+
params: 'id, ids (a list) and/or name (all events with this name), optional calendar for name',
|
|
84
|
+
answer: '{result: "ok", deleted: [id\u2026], notFound?: [id\u2026]}',
|
|
85
|
+
},
|
|
86
|
+
{ command: 'getEvent', params: 'id', answer: '{event: definition}' },
|
|
87
|
+
{ command: 'getEvents', params: 'optional calendar', answer: '{events: [definition\u2026]}' },
|
|
88
|
+
{
|
|
89
|
+
command: 'listEvents',
|
|
90
|
+
params: 'optional from, to (default now \u2026 7 days, or days), calendar, max',
|
|
91
|
+
answer: '{events: [execution\u2026]}',
|
|
92
|
+
},
|
|
93
|
+
{ command: 'getCalendars', params: '-', answer: '{calendars: [{id, name, enabled}\u2026]}' },
|
|
94
|
+
{ command: 'enableCalendar', params: 'calendar (name or ID), enabled', answer: '{id, enabled}' },
|
|
95
|
+
{ command: 'getCommands', params: '-', answer: '{commands: [{command, params, answer}\u2026]}' },
|
|
96
|
+
];
|
|
97
|
+
/** A message parameter is given (not undefined, null or '') */
|
|
98
|
+
function isGiven(value) {
|
|
99
|
+
return value !== undefined && value !== null && value !== '';
|
|
100
|
+
}
|
|
69
101
|
function stopEvent(event) {
|
|
70
102
|
if (event.timer) {
|
|
71
103
|
clearTimeout(event.timer);
|
|
@@ -332,8 +364,9 @@ class Fullcalendar extends adapter_core_1.Adapter {
|
|
|
332
364
|
}, (0, agenda_1.startOfDay)(now, 1).getTime() - now.getTime() + 1000);
|
|
333
365
|
}
|
|
334
366
|
/**
|
|
335
|
-
* Create
|
|
336
|
-
* the event writes `endValue` that much later (default for a boolean: the opposite of `value`)
|
|
367
|
+
* Create an event: write `value` to `oid` at `start` (a time) or after `in` (a delay); with `duration`
|
|
368
|
+
* (or `durationSec`) the event writes `endValue` that much later (default for a boolean: the opposite of `value`),
|
|
369
|
+
* with `type: 'toggle'` it switches back. With `recurring` or `rrule` it repeats at the time of day of `start`.
|
|
337
370
|
*
|
|
338
371
|
* @param params the message
|
|
339
372
|
*/
|
|
@@ -352,12 +385,20 @@ class Fullcalendar extends adapter_core_1.Adapter {
|
|
|
352
385
|
if (obj.common.write === false) {
|
|
353
386
|
throw new Error(`State "${oid}" is read-only`);
|
|
354
387
|
}
|
|
388
|
+
const recurrence = (0, recurrence_1.parseRecurrence)(params);
|
|
355
389
|
let time;
|
|
356
390
|
if (params.start !== undefined && params.start !== null && params.start !== '') {
|
|
357
391
|
time = (0, agenda_1.parseTime)(params.start);
|
|
358
392
|
if (!time) {
|
|
359
393
|
throw new Error(`Cannot understand the time "${(0, agenda_1.show)(params.start)}"`);
|
|
360
394
|
}
|
|
395
|
+
// "07:30" for a one-shot event means the next 07:30: tomorrow, if it is over today
|
|
396
|
+
if (!recurrence &&
|
|
397
|
+
typeof params.start === 'string' &&
|
|
398
|
+
/^\d{1,2}:\d{2}(:\d{2})?$/.test(params.start.trim()) &&
|
|
399
|
+
time.getTime() < Date.now() - 1000) {
|
|
400
|
+
time = new Date(time.getFullYear(), time.getMonth(), time.getDate() + 1, time.getHours(), time.getMinutes(), time.getSeconds());
|
|
401
|
+
}
|
|
361
402
|
}
|
|
362
403
|
else if (params.in !== undefined && params.in !== null && params.in !== '') {
|
|
363
404
|
const seconds = (0, agenda_1.parseDelaySeconds)(params.in);
|
|
@@ -371,16 +412,31 @@ class Fullcalendar extends adapter_core_1.Adapter {
|
|
|
371
412
|
}
|
|
372
413
|
// the scheduler compares whole seconds
|
|
373
414
|
time = new Date(Math.round(time.getTime() / 1000) * 1000);
|
|
374
|
-
|
|
415
|
+
// a series may start in the past (a birthday): it runs at its next date
|
|
416
|
+
if (!recurrence && time.getTime() < Date.now() - 1000) {
|
|
375
417
|
throw new Error(`The time ${timeUtils.toLocalTime(time)} is in the past`);
|
|
376
418
|
}
|
|
419
|
+
// `durationSec` is the name in `events.list` and `getEvents`, so it is accepted here too
|
|
420
|
+
const durationParam = isGiven(params.duration) ? params.duration : params.durationSec;
|
|
377
421
|
let duration = null;
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
duration = (0, agenda_1.parseDelaySeconds)(params.duration);
|
|
422
|
+
if (isGiven(durationParam)) {
|
|
423
|
+
duration = (0, agenda_1.parseDelaySeconds)(durationParam);
|
|
381
424
|
if (!duration) {
|
|
382
|
-
throw new Error(`Cannot understand the duration "${(0, agenda_1.show)(
|
|
425
|
+
throw new Error(`Cannot understand the duration "${(0, agenda_1.show)(durationParam)}"`);
|
|
383
426
|
}
|
|
427
|
+
}
|
|
428
|
+
const type = isGiven(params.type) ? params.type : duration ? 'double' : 'single';
|
|
429
|
+
if (type !== 'single' && type !== 'double' && type !== 'toggle') {
|
|
430
|
+
throw new Error(`Unknown type "${(0, agenda_1.show)(type)}" (single, double or toggle)`);
|
|
431
|
+
}
|
|
432
|
+
if (type !== 'single' && !duration) {
|
|
433
|
+
throw new Error(`Type "${type}" needs "duration" (seconds, or "90s", "5m", "1h")`);
|
|
434
|
+
}
|
|
435
|
+
if (type === 'single' && duration) {
|
|
436
|
+
throw new Error('"duration" needs the type "double" or "toggle"');
|
|
437
|
+
}
|
|
438
|
+
let endValue;
|
|
439
|
+
if (type === 'double') {
|
|
384
440
|
endValue = params.endValue;
|
|
385
441
|
if (endValue === undefined) {
|
|
386
442
|
if (typeof params.value !== 'boolean') {
|
|
@@ -394,17 +450,36 @@ class Fullcalendar extends adapter_core_1.Adapter {
|
|
|
394
450
|
const states = obj.common.states;
|
|
395
451
|
const native = {
|
|
396
452
|
id: Date.now(),
|
|
397
|
-
|
|
398
|
-
type: duration ? 'double' : 'single',
|
|
453
|
+
type,
|
|
399
454
|
oid,
|
|
400
455
|
startValue: params.value,
|
|
401
456
|
};
|
|
457
|
+
if (recurrence) {
|
|
458
|
+
native.cron = (0, recurrence_1.recurrenceToCron)(recurrence, time);
|
|
459
|
+
}
|
|
460
|
+
else {
|
|
461
|
+
native.start = timeUtils.toLocalTime(time);
|
|
462
|
+
}
|
|
402
463
|
if (states && typeof states === 'object' && !Array.isArray(states)) {
|
|
403
464
|
native.states = states;
|
|
404
465
|
}
|
|
405
|
-
if (
|
|
466
|
+
if (type === 'double') {
|
|
406
467
|
native.intervals = [{ value: endValue, timeOffset: Math.round(duration * 1000) }];
|
|
407
468
|
}
|
|
469
|
+
else if (type === 'toggle') {
|
|
470
|
+
native.intervals = [{ timeOffset: Math.round(duration * 1000) }];
|
|
471
|
+
}
|
|
472
|
+
// first execution: of a series the next one (a yearly event on February 29 can be 4 years ahead)
|
|
473
|
+
let first = time;
|
|
474
|
+
if (recurrence) {
|
|
475
|
+
const probe = { _id: id, common: { enabled: true }, native };
|
|
476
|
+
const fiveYears = new Date(Date.now() + 5 * 366 * 24 * 3600_000);
|
|
477
|
+
const next = (0, agenda_1.occurrencesOf)(probe, new Date(), fiveYears, this.resolveAstro, 1)[0];
|
|
478
|
+
if (!next) {
|
|
479
|
+
throw new Error(`The recurrence never happens (cron "${native.cron}")`);
|
|
480
|
+
}
|
|
481
|
+
first = next;
|
|
482
|
+
}
|
|
408
483
|
const name = typeof params.name === 'string' && params.name.trim()
|
|
409
484
|
? params.name.trim()
|
|
410
485
|
: (await this.getStateName(oid)).name;
|
|
@@ -418,22 +493,92 @@ class Fullcalendar extends adapter_core_1.Adapter {
|
|
|
418
493
|
},
|
|
419
494
|
native,
|
|
420
495
|
});
|
|
421
|
-
|
|
422
|
-
|
|
496
|
+
const start = timeUtils.toLocalTime(first);
|
|
497
|
+
this.log.info(`Event "${name}" created: ${oid} = ${(0, agenda_1.show)(params.value)} ${native.cron ? `with cron "${native.cron}", next at` : 'at'} ${start}`);
|
|
498
|
+
const result = {
|
|
499
|
+
id,
|
|
500
|
+
name,
|
|
501
|
+
type,
|
|
502
|
+
start,
|
|
503
|
+
ts: first.getTime(),
|
|
504
|
+
};
|
|
505
|
+
if (native.cron) {
|
|
506
|
+
result.cron = native.cron;
|
|
507
|
+
}
|
|
508
|
+
return result;
|
|
423
509
|
}
|
|
424
|
-
/**
|
|
510
|
+
/**
|
|
511
|
+
* Delete calendar events by `id`, a list `ids` (or `id` as a list) and/or by `name` (all events with exactly this
|
|
512
|
+
* name, optionally only in `calendar`). Events of simulations live inside the simulation object and are not deleted.
|
|
513
|
+
*
|
|
514
|
+
* @param params the message
|
|
515
|
+
*/
|
|
425
516
|
async deleteEvent(params) {
|
|
517
|
+
const ids = [];
|
|
518
|
+
const add = (id) => {
|
|
519
|
+
const text = typeof id === 'string' ? id.trim() : '';
|
|
520
|
+
if (text && !ids.includes(text)) {
|
|
521
|
+
ids.push(text);
|
|
522
|
+
}
|
|
523
|
+
};
|
|
524
|
+
for (const param of [params.id, params.ids]) {
|
|
525
|
+
if (Array.isArray(param)) {
|
|
526
|
+
param.forEach(add);
|
|
527
|
+
}
|
|
528
|
+
else {
|
|
529
|
+
add(param);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
if (isGiven(params.name)) {
|
|
533
|
+
const names = await this.readCalendars();
|
|
534
|
+
const calendarId = isGiven(params.calendar) ? this.findCalendar(params.calendar, names) : null;
|
|
535
|
+
const wanted = (0, agenda_1.show)(params.name).trim().toLowerCase();
|
|
536
|
+
const matches = this.calendarEvents().filter(event => (0, agenda_1.textOf)(event.common.name, this.lang).trim().toLowerCase() === wanted &&
|
|
537
|
+
(!calendarId || this.calendarIdOf(event._id) === calendarId));
|
|
538
|
+
if (!matches.length) {
|
|
539
|
+
throw new Error(`No event with the name "${(0, agenda_1.show)(params.name)}"`);
|
|
540
|
+
}
|
|
541
|
+
matches.forEach(event => add(event._id));
|
|
542
|
+
}
|
|
543
|
+
if (!ids.length) {
|
|
544
|
+
throw new Error('Give "id", "ids" (a list) or "name"');
|
|
545
|
+
}
|
|
546
|
+
const deleted = [];
|
|
547
|
+
const notFound = [];
|
|
548
|
+
for (const id of ids) {
|
|
549
|
+
if (!id.startsWith(`${this.namespace}.`) || id.startsWith(`${this.namespace}.Simulations.`)) {
|
|
550
|
+
notFound.push(id);
|
|
551
|
+
continue;
|
|
552
|
+
}
|
|
553
|
+
const obj = await this.getForeignObjectAsync(id);
|
|
554
|
+
if (obj?.type !== 'schedule') {
|
|
555
|
+
notFound.push(id);
|
|
556
|
+
continue;
|
|
557
|
+
}
|
|
558
|
+
await this.delForeignObjectAsync(id);
|
|
559
|
+
this.log.info(`Event "${this.getText(obj)}" deleted`);
|
|
560
|
+
deleted.push(id);
|
|
561
|
+
}
|
|
562
|
+
if (!deleted.length) {
|
|
563
|
+
throw new Error(`No event of ${this.namespace}: ${notFound.join(', ')}`);
|
|
564
|
+
}
|
|
565
|
+
return notFound.length ? { result: 'ok', deleted, notFound } : { result: 'ok', deleted };
|
|
566
|
+
}
|
|
567
|
+
/**
|
|
568
|
+
* The definition of one event, with its next execution
|
|
569
|
+
*
|
|
570
|
+
* @param params the message
|
|
571
|
+
*/
|
|
572
|
+
async getEvent(params) {
|
|
426
573
|
const id = typeof params.id === 'string' ? params.id.trim() : '';
|
|
427
|
-
if (!id
|
|
428
|
-
throw new Error(
|
|
574
|
+
if (!id) {
|
|
575
|
+
throw new Error('"id" is missing');
|
|
429
576
|
}
|
|
430
|
-
const
|
|
431
|
-
if (
|
|
577
|
+
const event = this.collectAgenda(new Date(), await this.readCalendars()).list.find(info => info.id === id);
|
|
578
|
+
if (!event) {
|
|
432
579
|
throw new Error(`Event "${id}" does not exist`);
|
|
433
580
|
}
|
|
434
|
-
|
|
435
|
-
this.log.info(`Event "${this.getText(obj)}" deleted`);
|
|
436
|
-
return { result: 'ok' };
|
|
581
|
+
return { event };
|
|
437
582
|
}
|
|
438
583
|
/**
|
|
439
584
|
* Occurrences between `from` (default now) and `to` (default `days` later, default 7), optionally of one calendar
|
|
@@ -462,17 +607,7 @@ class Fullcalendar extends adapter_core_1.Adapter {
|
|
|
462
607
|
events.sort((a, b) => a.ts - b.ts);
|
|
463
608
|
return { events: events.slice(0, max) };
|
|
464
609
|
}
|
|
465
|
-
/**
|
|
466
|
-
* Messages:
|
|
467
|
-
* - `addEvent` {oid, value, start | in, duration?, endValue?, name?, calendar?, color?} → {id, name, start, ts}
|
|
468
|
-
* - `deleteEvent` {id} → {result: 'ok'}
|
|
469
|
-
* - `listEvents` {from?, to?, days?, calendar?, max?} → {events}
|
|
470
|
-
* - `getEvents` {calendar?} → {events} (the definitions, with their next execution)
|
|
471
|
-
* - `getCalendars` → {calendars: [{id, name, enabled}]}
|
|
472
|
-
* - `enableCalendar` {calendar, enabled} → {id, enabled}
|
|
473
|
-
*
|
|
474
|
-
* Errors come back as {error}.
|
|
475
|
-
*/
|
|
610
|
+
/** Messages: see `COMMANDS` (also the answer of `getCommands`). Errors come back as {error}. */
|
|
476
611
|
async onMessage(msg) {
|
|
477
612
|
if (!msg?.command) {
|
|
478
613
|
return;
|
|
@@ -487,6 +622,9 @@ class Fullcalendar extends adapter_core_1.Adapter {
|
|
|
487
622
|
case 'deleteEvent':
|
|
488
623
|
result = await this.deleteEvent(params);
|
|
489
624
|
break;
|
|
625
|
+
case 'getEvent':
|
|
626
|
+
result = await this.getEvent(params);
|
|
627
|
+
break;
|
|
490
628
|
case 'listEvents':
|
|
491
629
|
result = await this.listEvents(params);
|
|
492
630
|
break;
|
|
@@ -518,8 +656,13 @@ class Fullcalendar extends adapter_core_1.Adapter {
|
|
|
518
656
|
case 'enableCalendar':
|
|
519
657
|
result = await this.enableCalendar(params);
|
|
520
658
|
break;
|
|
659
|
+
case 'getCommands':
|
|
660
|
+
result = { commands: COMMANDS };
|
|
661
|
+
break;
|
|
521
662
|
default:
|
|
522
|
-
result = {
|
|
663
|
+
result = {
|
|
664
|
+
error: `Unknown command "${msg.command}". Commands: ${COMMANDS.map(c => c.command).join(', ')}`,
|
|
665
|
+
};
|
|
523
666
|
}
|
|
524
667
|
}
|
|
525
668
|
catch (e) {
|
package/build/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "fullcalendar",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.3.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"3.3.0": {
|
|
7
|
+
"en": "Fixed: `addEvent` ignored `type` and `durationSec`, a \"double\" event was saved as \"single\"\nAdded recurring events to `addEvent`: `recurring` (daily, weekly, monthly, yearly) or an iCal `rrule`\n`deleteEvent` deletes a list of events (`ids`) or all events with a name (`name`)\nAdded the messages `getEvent` and `getCommands`, an unknown command answers with the list of the commands\nDocumented all messages and parameters in the README",
|
|
8
|
+
"de": "Behoben: `addEvent` ignorierte `Type` und `DurationSec`, ein Doppelevent wurde als „Single“ gespeichert\n„AddEvent“: „wiederkehrend“ (täglich, wöchentlich, monatlich, jährlich) oder eine iCal-Regel hinzugefügt\n`DeleteEvent` löscht eine Eventliste (`ids`) oder alle Events mit Namen (`Name`)\nDie Meldungen `getEvent` und `getCommands` hinzugefügt, ein unbekannter Befehl gibt eine Liste\nDokumentiert alle Meldungen und Parameter im README",
|
|
9
|
+
"ru": "Исправлено: `AddEvent` игнорировали `type` и `durationSec`, «двойное» событие сохранялось как «одиночное»\nВ «AddEvent» добавлены повторяющиеся события: «повторяющиеся» (ежедневно, еженедельно, ежемесячно, ежегодно) или «правило iCal»\n`DeleteEvent` удаляет список событий (`ids`) или все события с именем (`name`)\nДобавлены сообщения `getEvent` и `getCommands`, неизвестная команда отвечает списком команд\nЗадокументировал все сообщения и параметры в README",
|
|
10
|
+
"pt": "Corrigido: `addEvent` ignorou `type` e `durationSec`, um evento “duplo” foi salvo\nEventos recorrentes adicionados a `addEvent`: `diário, semanal, mensal ou anual) ou a uma `rrule` do iCal\n`deleteEvent` exclui uma lista de eventos (`ids`) ou com um nome (`name`)\nAdicionadas as mensagens `getEvent` e `getCommands`, um comando desconhecido responde\nDocumentou todas as mensagens e parâmetros no README",
|
|
11
|
+
"nl": "Opgelost: `addEvent` negeerde `type` en `DurationSec`, een „dubbele” gebeurtenis werd opgeslagen als „single”\nTerugkerende gebeurtenissen toegevoegd aan `addEvent`: `terugkerend` (dagelijks, wekelijks, maandelijks, jaarlijks) of een iCal-regel\nMet `DeleteEvent` wordt een lijst met gebeurtenissen (`ids`) of alle gebeurtenissen met een naam (`naam`) verwijderd\nDe berichten `getEvent` en `GetCommands` toegevoegd, een onbekend commando antwoordt met de lijst van de opdrachten\nAlle berichten en parameters in de README gedocumenteerd",
|
|
12
|
+
"fr": "Corrigé : « AddEvent » ignorait « type » et « DurationSec », un événement « double » était « simple »\nAjout d'événements récurrents à « AddEvent » : « récurrents » (quotidiens, hebdomadaires, mensuels) ou « règle » iCal\n`DeleteEvent` supprime une liste d'événements (`ids`) ou tous ceux qui ont un nom (`name`)\nAjout des messages « GetEvent » et « GetCommands », une commande inconnue répond par la liste des commandes\nA documenté tous les messages et paramètres dans le README",
|
|
13
|
+
"it": "Risolto: addEvent ignorava «type» e «DurationSec», un evento «double» salvato come «singolo»\nAggiunti eventi ricorrenti a `addEvent`: `recurring` (giornalieri, mensili, annuali) o iCal\n`DeleteEvent` elimina un elenco di eventi (`ids`) o tutti gli eventi con un nome\nAggiunti i messaggi `getEvent` e `getCommands`, un comando sconosciuto risponde con l'elenco\nDocumenta tutti i messaggi e i parametri nel README",
|
|
14
|
+
"es": "Corregido: `addEvent` ignoró `Type` y `DurationSec`, un evento «doble» se guardó como «único»\nSe han añadido eventos recurrentes a «AddEvent»: «periódicos» (diarios, semanales, mensuales, anuales) o una «regla» de iCal\n`DeleteEvent` borra una lista de eventos (`ids`) o todos los eventos con un nombre (`nombre`)\nAñadió los mensajes `getEvent` y `getCommands`, un comando desconocido responde con la lista de comandos\nDocumentó todos los mensajes y parámetros del README",
|
|
15
|
+
"pl": "Naprawiono: `AddEvent` zignorował `type` i `DurationSec`, zdarzenie „double” zostało zapisane jako „pojedyncze”\nDodano powtarzające się zdarzenia do `AddEvent`: `recurring` (codziennie, tygodniowo, miesięcznie, rocznie) lub `rrule` iCal\n`DeleteEvent` usuwa listę zdarzeń (`ids`) lub wszystkie zdarzenia o nazwie (`name`)\nDodano komunikaty `getEvent` i `GetCommands`, nieznane polecenie odpowiada z listą poleceń\nUdokumentowano wszystkie komunikaty i parametry w README",
|
|
16
|
+
"uk": "Виправлено: `addEvent` ігнорував `type` і `durationSec`, подія «подвійна» була збережена як «одинарна»\nДодано повторювані події до `addEvent`: `recurring` (щодня, щотижня, щомісяця, щорічно) або iCal `rrule`\n`DeleteEvent` видаляє список подій (`ids`) або всі події з назвою (`name`)\nДодані повідомлення `getEvent` і `getCommands`, невідома команда відповідає зі списком команд\nЗадокументовані всі повідомлення та параметри в README",
|
|
17
|
+
"zh-cn": "修复:`addEvent`忽略了 `type` 和 `durationSec`,一个 “双精度” 事件被保存为 “单一事件”\n在 `addEvent` 中添加了循环事件:“循环”(每天、每周、每月、每年)或 iCal 的 “rrule”\n`deleteEvent` 删除事件列表 (`ids`) 或所有带有名称(`名称`)的事件\n添加了消息 `getEvent`和`getCommands`,一个未知命令的答案包含命令列表\n在 README 中记录了所有消息和参数"
|
|
18
|
+
},
|
|
6
19
|
"3.2.0": {
|
|
7
20
|
"en": "Fixed white screen when adding an event in the vis-2 widget (#444)\nFixed: the recording of a simulation stopped immediately after the start (#234)\nFixed: the simulation recorded repeated status updates without a change of the value, e.g. of Tasmota or Sonoff devices (#285, #235)\nFixed: the subscriptions of a stopped recording were not removed\nAdded: the duration of \"On/Off\" and \"Toggle\" events can be given in seconds, minutes or hours, e.g. for a push button (#354)\nAdded: conditions for events, e.g. do not close the shutter if the door is open (#257)\nAdded: calendars can be switched off and on, also with the message `enableCalendar` (#236)",
|
|
8
21
|
"de": "Weißbild beim Hinzufügen von Events im Vis-2-Widget behoben (#444)\nBehoben: Die Simulationsaufnahme stoppte sofort nach dem Start (#234)\nBehoben: Die Simulation zeigte mehrere Statusmeldungen ohne Änderung des Werts, z. B. von Tasmota oder Sonoff (#285, #235)\nBehoben: Die Abos einer gestoppten Aufnahme wurden nicht gelöscht\nHinzugefügt: Die Dauer von On/Off und Toggle kann in Sekunden, Minuten oder Stunden angegeben werden, z. B. per Tastendruck (#354)\nHinzugefügt: Eventbedingungen, z. B. bei offener Tür nicht schließen (#257)\nHinzugefügt: Kalender ein- und ausschalten, auch mit `enableCalendar` (#236)",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "Usunięty z pakietem Styles",
|
|
81
94
|
"uk": "Видаліть пакет \"Стиль\"",
|
|
82
95
|
"zh-cn": "用 Styles 软件包删除"
|
|
83
|
-
},
|
|
84
|
-
"2.4.2": {
|
|
85
|
-
"en": "Removed withStyles package",
|
|
86
|
-
"de": "MitStyles-Paket entfernt",
|
|
87
|
-
"ru": "Удаленный пакет со Стайлз",
|
|
88
|
-
"pt": "Removido com pacote Estilos",
|
|
89
|
-
"nl": "Verwijderd metStyles pakket",
|
|
90
|
-
"fr": "Enlever avec le paquetStyles",
|
|
91
|
-
"it": "Rimosso con pacchettoStyles",
|
|
92
|
-
"es": "Retire el paquete de estilos",
|
|
93
|
-
"pl": "Usunięty z pakietem Styles",
|
|
94
|
-
"uk": "Видаліть пакет \"Стиль\"",
|
|
95
|
-
"zh-cn": "用 Styles 软件包删除"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|