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 CHANGED
@@ -13,6 +13,10 @@ You must not use any external resources, the scheduling is processed only in ioB
13
13
 
14
14
  ![Example](img/example.png)
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
+ ![vis-2 widget, month view](img/vis2-widget-month.png)
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 | Message | Answer |
65
- |----------------|-----------------------------------------------------------------------------------------------------------|---------------------------------|
66
- | `addEvent` | `oid`, `value`, `start` or `in`; optional `duration` + `endValue` (a boolean switches back by itself), `name`, `calendar` (name or ID), `color` | `{id, name, start, ts}` |
67
- | `deleteEvent` | `id` | `{result: "ok"}` |
68
- | `listEvents` | optional `from`, `to` (default now … 7 days, or `days`), `calendar`, `max` | `{events: [execution, …]}` |
69
- | `getEvents` | optional `calendar` | `{events: [definition, …]}` |
70
- | `getCalendars` | – | `{calendars: [{id, name, enabled}, …]}` |
71
- | `enableCalendar` | `calendar` (name or ID), `enabled` (`true`/`false`) | `{id, enabled}` |
72
-
73
- Errors come back as `{error}`. A new event is a one-shot event and appears in the calendar like one created by hand.
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-B98AD8OO.js"></script>
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>
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agenda.js","sourceRoot":"","sources":["../../src/lib/agenda.ts"],"names":[],"mappings":"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"}
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,8BAyBC;AAOD,8CAqBC;AAjUD;;;;;GAKG;AACH,6CAA+B;AAE/B,mCAAqE;AACrE,2CAAgE;AAuEhE;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,MAA4C;IAClE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,+CAA+C;AAC/C,SAAS,OAAO,CAAC,MAAqC;IAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAAC,KAAkB,EAAE,IAAU,EAAE,EAAQ,EAAE,KAAoB,EAAE,GAAG,GAAG,GAAG;IACnG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,+GAA+G;QAC/G,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7E,MAAM,KAAK,GAAG,OAAO,CACjB,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5F,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;YACtB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,CAAC,CAAC,KAAK,CAAC;QACZ,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,IAAA,qBAAa,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9E,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5G,OAAO,EAAE,CAAC;IACd,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,uFAAuF;AACvF,SAAgB,IAAI,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/F,CAAC;AAED,mDAAmD;AACnD,SAAgB,MAAM,CAAC,IAA6C,EAAE,IAAwB;IAC1F,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,mEAAmE;AACnE,SAAS,UAAU,CAAC,KAAkB;IAClC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnE,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAC,KAAkB,EAAE,IAAU,EAAE,QAAgB,EAAE,IAAwB;IACnG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,UAAU,GAAe;QAC3B,EAAE,EAAE,KAAK,CAAC,GAAG;QACb,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;QACrC,QAAQ;QACR,IAAI,EAAE,IAAA,mBAAW,EAAC,IAAI,CAAC;QACvB,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE;QAClB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,KAAK,EAAE,MAAM,CAAC,UAAU;QACxB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;KAC3B,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;IACrC,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,UAAU,CAAC,OAAO,GAAG,IAAA,mBAAW,EAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;QAC/D,CAAC;aAAM,CAAC;YACJ,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;QACjC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,WAAW,CACvB,KAAkB,EAClB,QAAgB,EAChB,IAAiB,EACjB,IAAwB;IAExB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,IAAI,GAAc;QACpB,EAAE,EAAE,KAAK,CAAC,GAAG;QACb,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;QACrC,QAAQ;QACR,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK;QACvC,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,KAAK,EAAE,MAAM,CAAC,UAAU;QACxB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,QAAQ;QAC7B,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;KACxC,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC5B,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;QACzD,CAAC;IACL,CAAC;IACD,IAAI,IAAA,wBAAY,EAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG;YACb,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG;YACzB,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI;YAC3C,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK;SAChC,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,4DAA4D;AAC5D,SAAgB,UAAU,CAAC,IAAU,EAAE,IAAI,GAAG,CAAC;IAC3C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,6DAA6D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvF,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;QACnC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,uBAAuB;IACvB,MAAM,SAAS,GAAG,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,EAAE,GAAG,8BAA8B,CAAC;IAC1C,MAAM,MAAM,GAA2B,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1E,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACzB,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC"}
@@ -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 a one-shot event: write `value` to `oid` at `start` (a time) or after `in` (a delay); with `duration`
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
- if (time.getTime() < Date.now() - 1000) {
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
- let endValue;
379
- if (params.duration !== undefined && params.duration !== null && params.duration !== '') {
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)(params.duration)}"`);
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
- start: timeUtils.toLocalTime(time),
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 (duration) {
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
- this.log.info(`Event "${name}" created: ${oid} = ${(0, agenda_1.show)(params.value)} at ${native.start}`);
422
- return { id, name, start: native.start, ts: time.getTime() };
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
- /** Delete a calendar event (not the events of simulations, they live inside the simulation object) */
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.startsWith(`${this.namespace}.`) || id.startsWith(`${this.namespace}.Simulations.`)) {
428
- throw new Error(`"${id}" is no event of ${this.namespace}`);
574
+ if (!id) {
575
+ throw new Error('"id" is missing');
429
576
  }
430
- const obj = await this.getForeignObjectAsync(id);
431
- if (obj?.type !== 'schedule') {
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
- await this.delForeignObjectAsync(id);
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 = { error: `Unknown command "${msg.command}"` };
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.2.0",
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": {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iobroker.fullcalendar",
3
3
  "description": "This adapter allows planning with calendar.",
4
- "version": "3.2.0",
4
+ "version": "3.3.0",
5
5
  "author": {
6
6
  "name": "bluefox",
7
7
  "email": "dogafox@gmail.com"