dhtmlx-scheduler 7.2.5 → 7.2.8

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.
@@ -3,7 +3,7 @@
3
3
  })(this, function(exports2) {
4
4
  "use strict";/** @license
5
5
 
6
- dhtmlxScheduler v.7.2.5 Standard
6
+ dhtmlxScheduler v.7.2.8 Standard
7
7
 
8
8
  To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product), please obtain Commercial/Enterprise or Ultimate license on our site https://dhtmlx.com/docs/products/dhtmlxScheduler/#licensing or contact us at sales@dhtmlx.com
9
9
 
@@ -167,21 +167,21 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
167
167
  }
168
168
  return unitMarkersArray;
169
169
  }
170
- scheduler2.attachEvent("onBeforeDrag", function(id2, mode, e) {
170
+ scheduler2.attachEvent("onBeforeDrag", function(id, mode, e) {
171
171
  if (isEnabled2()) {
172
172
  dragStarted = true;
173
- event2 = scheduler2.getEvent(id2);
173
+ event2 = scheduler2.getEvent(id);
174
174
  eventNode = e.target.closest(`[${scheduler2.config.event_attribute}]`);
175
175
  const viewName = scheduler2.getState().mode;
176
176
  const layout = checkViewName(viewName);
177
177
  if (layout == "units" && scheduler2.config.cascade_event_display) {
178
- scheduler2.unselect(id2);
178
+ scheduler2.unselect(id);
179
179
  eventNode = e.target.closest(`[${scheduler2.config.event_attribute}]`);
180
180
  }
181
181
  }
182
182
  return true;
183
183
  });
184
- scheduler2.attachEvent("onEventDrag", function(id2, mode, e) {
184
+ scheduler2.attachEvent("onEventDrag", function(id, mode, e) {
185
185
  if (dragStarted && isEnabled2()) {
186
186
  dragStarted = false;
187
187
  const viewName = scheduler2.getState().mode;
@@ -193,7 +193,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
193
193
  }
194
194
  }
195
195
  });
196
- scheduler2.attachEvent("onDragEnd", function(id2, mode, e) {
196
+ scheduler2.attachEvent("onDragEnd", function(id, mode, e) {
197
197
  for (let i = 0; i < dndMarkers.length; i++) {
198
198
  scheduler2.unmarkTimespan(dndMarkers[i]);
199
199
  }
@@ -204,13 +204,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
204
204
  }
205
205
  function undoDelete(scheduler2) {
206
206
  const undoableDeletes = {};
207
- scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(id2) {
208
- undoableDeletes[id2] = true;
207
+ scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(id) {
208
+ undoableDeletes[id] = true;
209
209
  return true;
210
210
  });
211
- scheduler2.attachEvent("onEventDeleted", function(id2, ev) {
212
- if (undoableDeletes[id2]) {
213
- delete undoableDeletes[id2];
211
+ scheduler2.attachEvent("onEventDeleted", function(id, ev) {
212
+ if (undoableDeletes[id]) {
213
+ delete undoableDeletes[id];
214
214
  } else {
215
215
  return;
216
216
  }
@@ -568,10 +568,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
568
568
  scheduler2._get_block_by_config = function(config) {
569
569
  var block = document.createElement("div");
570
570
  if (config.html) {
571
- if (typeof config.html == "string")
571
+ let html = config.html;
572
+ if (typeof html == "function") {
573
+ html = html(config);
574
+ }
575
+ if (typeof html == "string")
572
576
  block.innerHTML = config.html;
573
- else
574
- block.appendChild(config.html);
577
+ else if (scheduler2.config.external_render && scheduler2.config.external_render.isElement(html)) {
578
+ scheduler2.config.external_render.renderElement(html, block);
579
+ } else {
580
+ block.appendChild(html);
581
+ }
575
582
  }
576
583
  return block;
577
584
  };
@@ -730,14 +737,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
730
737
  scheduler2._addMarkerTimespanConfig = function(config) {
731
738
  var global2 = "global";
732
739
  var timespans = scheduler2._marked_timespans;
733
- var id2 = config.id;
740
+ var id = config.id;
734
741
  var ids = scheduler2._marked_timespans_ids;
735
- if (!ids[id2])
736
- ids[id2] = [];
742
+ if (!ids[id])
743
+ ids[id] = [];
737
744
  var day = config.days;
738
745
  var sections = config.sections;
739
746
  var type = config.type;
740
- config.id = id2;
747
+ config.id = id;
741
748
  if (sections) {
742
749
  for (var view_key in sections) {
743
750
  if (sections.hasOwnProperty(view_key)) {
@@ -759,7 +766,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
759
766
  var day_configs = timespans_view[unit_id][day][type];
760
767
  config._array = day_configs;
761
768
  day_configs.push(config);
762
- ids[id2].push(config);
769
+ ids[id].push(config);
763
770
  }
764
771
  }
765
772
  } else {
@@ -774,7 +781,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
774
781
  var day_configs = timespans[global2][day][type];
775
782
  config._array = day_configs;
776
783
  day_configs.push(config);
777
- ids[id2].push(config);
784
+ ids[id].push(config);
778
785
  }
779
786
  };
780
787
  scheduler2._marked_timespans_ids = {};
@@ -782,11 +789,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
782
789
  var configs = scheduler2._prepare_timespan_options(configuration);
783
790
  if (!configs.length)
784
791
  return;
785
- var id2 = configs[0].id;
792
+ var id = configs[0].id;
786
793
  for (var i = 0; i < configs.length; i++) {
787
794
  scheduler2._addMarkerTimespanConfig(configs[i]);
788
795
  }
789
- return id2;
796
+ return id;
790
797
  };
791
798
  scheduler2._add_timespan_zones = function(current_zones, zones) {
792
799
  var resulting_zones = current_zones.slice();
@@ -848,8 +855,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
848
855
  scheduler2.invertZones = function(zones) {
849
856
  return scheduler2._subtract_timespan_zones([0, 1440], zones.slice());
850
857
  };
851
- scheduler2._delete_marked_timespan_by_id = function(id2) {
852
- var configs = scheduler2._marked_timespans_ids[id2];
858
+ scheduler2._delete_marked_timespan_by_id = function(id) {
859
+ var configs = scheduler2._marked_timespans_ids[id];
853
860
  if (configs) {
854
861
  for (var i = 0; i < configs.length; i++) {
855
862
  var config = configs[i];
@@ -1291,12 +1298,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
1291
1298
  return;
1292
1299
  }
1293
1300
  const { type, event: event2 } = message2;
1294
- if (scheduler2._dp._in_progress[event2.id]) {
1301
+ if (scheduler2._dp && scheduler2._dp._in_progress[event2.id]) {
1295
1302
  return;
1296
1303
  }
1297
1304
  if (type === "add-event") {
1298
- for (const id2 in scheduler2._dp._in_progress) {
1299
- if (scheduler2._dp.getState(id2) === "inserted") {
1305
+ for (const id in scheduler2._dp._in_progress) {
1306
+ if (scheduler2._dp.getState(id) === "inserted") {
1300
1307
  scheduler2._dp.attachEvent("onFullSync", function() {
1301
1308
  if (!scheduler2.getEvent(event2.id)) {
1302
1309
  processUpdate(type, event2);
@@ -1370,7 +1377,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
1370
1377
  function handleDeleteEvent(eventData) {
1371
1378
  const sid = eventData.id;
1372
1379
  if (!scheduler2.getEvent(sid)) {
1373
- if (eventData.event_pid) {
1380
+ if (eventData.event_pid || eventData.recurring_event_id) {
1374
1381
  ignore(() => {
1375
1382
  scheduler2.addEvent(eventData);
1376
1383
  });
@@ -1552,7 +1559,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
1552
1559
  }
1553
1560
  function extend$n(scheduler2) {
1554
1561
  var commonViews = { agenda: "https://docs.dhtmlx.com/scheduler/agenda_view.html", grid: "https://docs.dhtmlx.com/scheduler/grid_view.html", map: "https://docs.dhtmlx.com/scheduler/map_view.html", unit: "https://docs.dhtmlx.com/scheduler/units_view.html", timeline: "https://docs.dhtmlx.com/scheduler/timeline_view.html", week_agenda: "https://docs.dhtmlx.com/scheduler/weekagenda_view.html", year: "https://docs.dhtmlx.com/scheduler/year_view.html", anythingElse: "https://docs.dhtmlx.com/scheduler/views.html" };
1555
- var requiredExtensions = { agenda: "ext/dhtmlxscheduler_agenda_view.js", grid: "ext/dhtmlxscheduler_grid_view.js", map: "ext/dhtmlxscheduler_map_view.js", unit: "ext/dhtmlxscheduler_units.js", timeline: "ext/dhtmlxscheduler_timeline.js, ext/dhtmlxscheduler_treetimeline.js, ext/dhtmlxscheduler_daytimeline.js", week_agenda: "ext/dhtmlxscheduler_week_agenda.js", year: "ext/dhtmlxscheduler_year_view.js", limit: "ext/dhtmlxscheduler_limit.js" };
1562
+ var requiredExtensions = { agenda: "scheduler.plugins({ agenda_view: true })", grid: "scheduler.plugins({ grid_view: true })", map: "scheduler.plugins({ map_view: true })", unit: "scheduler.plugins({ units: true })", timeline: "scheduler.plugins({ timeline: true, treetimeline: true, daytimeline: true})", week_agenda: "scheduler.plugins({ week_agenda: true })", year: "scheduler.plugins({ year_view: true })", limit: "scheduler.plugins({ limit: true })" };
1556
1563
  scheduler2._commonErrorMessages = { unknownView: function(view) {
1557
1564
  var relatedDoc = "Related docs: " + (commonViews[view] || commonViews.anythingElse);
1558
1565
  var relatedExtension = requiredExtensions[view] ? "You're probably missing " + requiredExtensions[view] + "." : "";
@@ -1570,10 +1577,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
1570
1577
  throw new Error("scheduler.createGridView is not implemented. Be sure to add the required extension: " + requiredExtensions.grid + "\nRelated docs: " + commonViews.grid);
1571
1578
  };
1572
1579
  scheduler2.addMarkedTimespan = function() {
1573
- throw new Error("scheduler.addMarkedTimespan is not implemented. Be sure to add the required extension: ext/dhtmlxscheduler_limit.js\nRelated docs: https://docs.dhtmlx.com/scheduler/limits.html");
1580
+ throw new Error("scheduler.addMarkedTimespan is not implemented. Be sure to add the required extension: scheduler.plugins({ limit: true })\nRelated docs: https://docs.dhtmlx.com/scheduler/limits.html");
1574
1581
  };
1575
1582
  scheduler2.renderCalendar = function() {
1576
- throw new Error("scheduler.renderCalendar is not implemented. Be sure to add the required extension: ext/dhtmlxscheduler_minical.js\nhttps://docs.dhtmlx.com/scheduler/minicalendar.html");
1583
+ throw new Error("scheduler.renderCalendar is not implemented. Be sure to add the required extension: scheduler.plugins({ minical: true })\nhttps://docs.dhtmlx.com/scheduler/minicalendar.html");
1577
1584
  };
1578
1585
  scheduler2.exportToPNG = function() {
1579
1586
  throw new Error(["scheduler.exportToPNG is not implemented.", "This feature requires an additional module, be sure to check the related doc here https://docs.dhtmlx.com/scheduler/png.html", "Licensing info: https://dhtmlx.com/docs/products/dhtmlxScheduler/export.shtml"].join("\n"));
@@ -1963,8 +1970,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
1963
1970
  }
1964
1971
  return false;
1965
1972
  };
1966
- eventStorage.removeEvent = function(id2) {
1967
- delete handlers[id2];
1973
+ eventStorage.removeEvent = function(id) {
1974
+ delete handlers[id];
1968
1975
  };
1969
1976
  eventStorage.clear = function() {
1970
1977
  handlers = {};
@@ -2007,13 +2014,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
2007
2014
  const listeners = eventHost.listeners;
2008
2015
  return !!listeners["ev_" + name.toLowerCase()];
2009
2016
  };
2010
- obj.detachEvent = function(id2) {
2011
- if (id2) {
2017
+ obj.detachEvent = function(id) {
2018
+ if (id) {
2012
2019
  let listeners = eventHost.listeners;
2013
2020
  for (const i in listeners) {
2014
- listeners[i].removeEvent(id2);
2021
+ listeners[i].removeEvent(id);
2015
2022
  }
2016
- const list = id2.split(":");
2023
+ const list = id.split(":");
2017
2024
  listeners = eventHost.listeners;
2018
2025
  if (list.length === 2) {
2019
2026
  const eventName = list[0];
@@ -2033,11 +2040,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
2033
2040
  function extend$j(scheduler2) {
2034
2041
  makeEventable(scheduler2);
2035
2042
  extend$l(scheduler2);
2036
- scheduler2._detachDomEvent = function(el2, event2, handler) {
2037
- if (el2.removeEventListener) {
2038
- el2.removeEventListener(event2, handler, false);
2039
- } else if (el2.detachEvent) {
2040
- el2.detachEvent("on" + event2, handler);
2043
+ scheduler2._detachDomEvent = function(el, event2, handler) {
2044
+ if (el.removeEventListener) {
2045
+ el.removeEventListener(event2, handler, false);
2046
+ } else if (el.detachEvent) {
2047
+ el.detachEvent("on" + event2, handler);
2041
2048
  }
2042
2049
  };
2043
2050
  scheduler2._init_once = function() {
@@ -2088,7 +2095,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
2088
2095
  });
2089
2096
  return views.concat(date).concat(nav);
2090
2097
  }
2091
- scheduler2.init = function(id2, date, mode) {
2098
+ scheduler2.init = function(id, date, mode) {
2092
2099
  if (this.$destroyed) {
2093
2100
  return;
2094
2101
  }
@@ -2097,7 +2104,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
2097
2104
  if (this._obj) {
2098
2105
  this.unset_actions();
2099
2106
  }
2100
- this._obj = typeof id2 == "string" ? document.getElementById(id2) : id2;
2107
+ this._obj = typeof id == "string" ? document.getElementById(id) : id;
2101
2108
  this.$container = this._obj;
2102
2109
  this.$root = this._obj;
2103
2110
  if (!this.$container.offsetHeight && this.$container.offsetWidth && this.$container.style.height === "100%") {
@@ -2281,20 +2288,20 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
2281
2288
  return returnValue;
2282
2289
  });
2283
2290
  };
2284
- scheduler2.select = function(id2) {
2285
- if (this._select_id == id2)
2291
+ scheduler2.select = function(id) {
2292
+ if (this._select_id == id)
2286
2293
  return;
2287
2294
  scheduler2._close_not_saved();
2288
2295
  this.editStop(false);
2289
2296
  if (this._select_id) {
2290
2297
  this.unselect();
2291
2298
  }
2292
- this._select_id = id2;
2293
- this.updateEvent(id2);
2294
- this.callEvent("onEventSelected", [id2]);
2299
+ this._select_id = id;
2300
+ this.updateEvent(id);
2301
+ this.callEvent("onEventSelected", [id]);
2295
2302
  };
2296
- scheduler2.unselect = function(id2) {
2297
- if (id2 && id2 != this._select_id) {
2303
+ scheduler2.unselect = function(id) {
2304
+ if (id && id != this._select_id) {
2298
2305
  return;
2299
2306
  }
2300
2307
  const previousSelection = this._select_id;
@@ -2315,19 +2322,19 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
2315
2322
  scheduler2._ignore_next_click = false;
2316
2323
  return false;
2317
2324
  }
2318
- const id2 = scheduler2._locate_event(e.target);
2319
- if (!id2) {
2325
+ const id = scheduler2._locate_event(e.target);
2326
+ if (!id) {
2320
2327
  scheduler2.callEvent("onEmptyClick", [scheduler2.getActionData(e).date, e]);
2321
2328
  } else {
2322
- if (!scheduler2.callEvent("onClick", [id2, e]) || scheduler2.config.readonly)
2329
+ if (!scheduler2.callEvent("onClick", [id, e]) || scheduler2.config.readonly)
2323
2330
  return;
2324
2331
  }
2325
- if (id2 && scheduler2.config.select) {
2326
- scheduler2.select(id2);
2332
+ if (id && scheduler2.config.select) {
2333
+ scheduler2.select(id);
2327
2334
  const icon = e.target.closest(".dhx_menu_icon");
2328
2335
  const mask = scheduler2._getClassName(icon);
2329
2336
  if (mask.indexOf("_icon") != -1)
2330
- scheduler2._click.buttons[mask.split(" ")[1].replace("icon_", "")](id2);
2337
+ scheduler2._click.buttons[mask.split(" ")[1].replace("icon_", "")](id);
2331
2338
  } else {
2332
2339
  scheduler2._close_not_saved();
2333
2340
  if (scheduler2.getState().select_id && (/* @__PURE__ */ new Date()).valueOf() - (scheduler2._new_event || 0) > 500) {
@@ -2352,20 +2359,20 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
2352
2359
  const deprecated_name = this.getAttribute("name");
2353
2360
  const mode = name || deprecated_name.substring(0, deprecated_name.search("_tab"));
2354
2361
  scheduler2.setCurrentView(scheduler2._date, mode);
2355
- }, buttons: { delete: function(id2) {
2362
+ }, buttons: { delete: function(id) {
2356
2363
  const c = scheduler2.locale.labels.confirm_deleting;
2357
- scheduler2._dhtmlx_confirm({ message: c, title: scheduler2.locale.labels.title_confirm_deleting, callback: function() {
2358
- scheduler2.deleteEvent(id2);
2364
+ scheduler2._delete_event_confirm({ event: scheduler2.getEvent(id), message: c, title: scheduler2.locale.labels.title_confirm_deleting, callback: function() {
2365
+ scheduler2.deleteEvent(id);
2359
2366
  }, config: { ok: scheduler2.locale.labels.icon_delete } });
2360
- }, edit: function(id2) {
2361
- scheduler2.edit(id2);
2362
- }, save: function(id2) {
2367
+ }, edit: function(id) {
2368
+ scheduler2.edit(id);
2369
+ }, save: function(id) {
2363
2370
  scheduler2.editStop(true);
2364
- }, details: function(id2) {
2365
- scheduler2.showLightbox(id2);
2366
- }, form: function(id2) {
2367
- scheduler2.showLightbox(id2);
2368
- }, cancel: function(id2) {
2371
+ }, details: function(id) {
2372
+ scheduler2.showLightbox(id);
2373
+ }, form: function(id) {
2374
+ scheduler2.showLightbox(id);
2375
+ }, cancel: function(id) {
2369
2376
  scheduler2.editStop(false);
2370
2377
  } } };
2371
2378
  scheduler2._dhtmlx_confirm = function({ message: message2, title, callback, config }) {
@@ -2440,13 +2447,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
2440
2447
  case "dhx_grid_event":
2441
2448
  case "dhx_cal_event_line":
2442
2449
  case "dhx_cal_event_clear": {
2443
- const id2 = this._locate_event(src);
2444
- if (!this.callEvent("onDblClick", [id2, e]))
2450
+ const id = this._locate_event(src);
2451
+ if (!this.callEvent("onDblClick", [id, e]))
2445
2452
  return;
2446
- if (this.config.details_on_dblclick || this._table_view || !this.getEvent(id2)._timed || !this.config.select)
2447
- this.showLightbox(id2);
2453
+ if (this.config.details_on_dblclick || this._table_view || !this.getEvent(id)._timed || !this.config.select)
2454
+ this.showLightbox(id);
2448
2455
  else
2449
- this.edit(id2);
2456
+ this.edit(id);
2450
2457
  break;
2451
2458
  }
2452
2459
  case "dhx_time_block":
@@ -2850,8 +2857,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
2850
2857
  }
2851
2858
  } else {
2852
2859
  if (scheduler2.checkEvent("onMouseMove")) {
2853
- var id2 = this._locate_event(e.target || e.srcElement);
2854
- this.callEvent("onMouseMove", [id2, e]);
2860
+ var id = this._locate_event(e.target || e.srcElement);
2861
+ this.callEvent("onMouseMove", [id, e]);
2855
2862
  }
2856
2863
  }
2857
2864
  };
@@ -2909,11 +2916,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
2909
2916
  break;
2910
2917
  }
2911
2918
  if (this._drag_mode) {
2912
- var id2 = this._locate_event(src);
2913
- if (!this.config["drag_" + this._drag_mode] || !this.callEvent("onBeforeDrag", [id2, this._drag_mode, e]))
2919
+ var id = this._locate_event(src);
2920
+ if (!this.config["drag_" + this._drag_mode] || !this.callEvent("onBeforeDrag", [id, this._drag_mode, e]))
2914
2921
  this._drag_mode = this._drag_id = 0;
2915
2922
  else {
2916
- this._drag_id = id2;
2923
+ this._drag_id = id;
2917
2924
  if (this._edit_id != this._drag_id || this._edit_id && this._drag_mode == "create")
2918
2925
  this._close_not_saved();
2919
2926
  if (!this._drag_mode)
@@ -2968,6 +2975,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
2968
2975
  if (is_new && this.config.edit_on_create) {
2969
2976
  this.unselect();
2970
2977
  this._new_event = /* @__PURE__ */ new Date();
2978
+ ev.$new = true;
2971
2979
  if (this._table_view || this.config.details_on_create || !this.config.select || !this.isOneDayEvent(this.getEvent(drag_id))) {
2972
2980
  scheduler2.callEvent("onDragEnd", [drag_id, mode, e]);
2973
2981
  return this.showLightbox(drag_id);
@@ -3642,30 +3650,30 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
3642
3650
  return state.lightbox_id !== null && state.lightbox_id !== void 0;
3643
3651
  };
3644
3652
  }
3645
- const defaultDomEvents = { event: function(el2, event2, handler) {
3646
- if (el2.addEventListener)
3647
- el2.addEventListener(event2, handler, false);
3648
- else if (el2.attachEvent)
3649
- el2.attachEvent("on" + event2, handler);
3650
- }, eventRemove: function(el2, event2, handler) {
3651
- if (el2.removeEventListener)
3652
- el2.removeEventListener(event2, handler, false);
3653
- else if (el2.detachEvent)
3654
- el2.detachEvent("on" + event2, handler);
3653
+ const defaultDomEvents = { event: function(el, event2, handler) {
3654
+ if (el.addEventListener)
3655
+ el.addEventListener(event2, handler, false);
3656
+ else if (el.attachEvent)
3657
+ el.attachEvent("on" + event2, handler);
3658
+ }, eventRemove: function(el, event2, handler) {
3659
+ if (el.removeEventListener)
3660
+ el.removeEventListener(event2, handler, false);
3661
+ else if (el.detachEvent)
3662
+ el.detachEvent("on" + event2, handler);
3655
3663
  } };
3656
3664
  function createEventScope() {
3657
3665
  var domEvents = function(addEvent, removeEvent) {
3658
3666
  addEvent = addEvent || defaultDomEvents.event;
3659
3667
  removeEvent = removeEvent || defaultDomEvents.eventRemove;
3660
3668
  var handlers = [];
3661
- var eventScope = { attach: function(el2, event2, callback, capture) {
3662
- handlers.push({ element: el2, event: event2, callback, capture });
3663
- addEvent(el2, event2, callback, capture);
3664
- }, detach: function(el2, event2, callback, capture) {
3665
- removeEvent(el2, event2, callback, capture);
3669
+ var eventScope = { attach: function(el, event2, callback, capture) {
3670
+ handlers.push({ element: el, event: event2, callback, capture });
3671
+ addEvent(el, event2, callback, capture);
3672
+ }, detach: function(el, event2, callback, capture) {
3673
+ removeEvent(el, event2, callback, capture);
3666
3674
  for (var i = 0; i < handlers.length; i++) {
3667
3675
  var handler = handlers[i];
3668
- if (handler.element === el2 && handler.event === event2 && handler.callback === callback && handler.capture === capture) {
3676
+ if (handler.element === el && handler.event === event2 && handler.callback === callback && handler.capture === capture) {
3669
3677
  handlers.splice(i, 1);
3670
3678
  i--;
3671
3679
  }
@@ -4170,13 +4178,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
4170
4178
  } else {
4171
4179
  var matches = Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
4172
4180
  closest = function(element, selector) {
4173
- var el2 = element;
4181
+ var el = element;
4174
4182
  do {
4175
- if (matches.call(el2, selector)) {
4176
- return el2;
4183
+ if (matches.call(el, selector)) {
4184
+ return el;
4177
4185
  }
4178
- el2 = el2.parentElement || el2.parentNode;
4179
- } while (el2 !== null && el2.nodeType === 1);
4186
+ el = el.parentElement || el.parentNode;
4187
+ } while (el !== null && el.nodeType === 1);
4180
4188
  return null;
4181
4189
  };
4182
4190
  }
@@ -4845,7 +4853,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
4845
4853
  this.clear_view();
4846
4854
  this.callEvent("onClearAll", []);
4847
4855
  };
4848
- scheduler2.addEvent = function(start_date, end_date, text, id2, extra_data) {
4856
+ scheduler2.addEvent = function(start_date, end_date, text, id, extra_data) {
4849
4857
  if (!arguments.length)
4850
4858
  return this.addEventNow();
4851
4859
  var ev = start_date;
@@ -4854,7 +4862,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
4854
4862
  ev.start_date = start_date;
4855
4863
  ev.end_date = end_date;
4856
4864
  ev.text = text;
4857
- ev.id = id2;
4865
+ ev.id = id;
4858
4866
  }
4859
4867
  ev.id = ev.id || scheduler2.uid();
4860
4868
  ev.text = ev.text || "";
@@ -4863,8 +4871,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
4863
4871
  if (typeof ev.end_date == "string")
4864
4872
  ev.end_date = this.templates.api_date(ev.end_date);
4865
4873
  var d = (this.config.event_duration || this.config.time_step) * 6e4;
4866
- if (ev.start_date.valueOf() == ev.end_date.valueOf())
4867
- ev.end_date.setTime(ev.end_date.valueOf() + d);
4874
+ if (new Date(ev.end_date).valueOf() - new Date(ev.start_date).valueOf() <= d)
4875
+ ev.end_date.setTime(ev.start_date.valueOf() + d);
4868
4876
  ev.start_date.setMilliseconds(0);
4869
4877
  ev.end_date.setMilliseconds(0);
4870
4878
  ev._timed = this.isOneDayEvent(ev);
@@ -4875,15 +4883,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
4875
4883
  this.callEvent(is_new ? "onEventAdded" : "onEventChanged", [ev.id, ev]);
4876
4884
  return ev.id;
4877
4885
  };
4878
- scheduler2.deleteEvent = function(id2, silent) {
4879
- var ev = this._events[id2];
4880
- if (!silent && (!this.callEvent("onBeforeEventDelete", [id2, ev]) || !this.callEvent("onConfirmedBeforeEventDelete", [id2, ev])))
4886
+ scheduler2.deleteEvent = function(id, silent) {
4887
+ var ev = this._events[id];
4888
+ if (!silent && (!this.callEvent("onBeforeEventDelete", [id, ev]) || !this.callEvent("onConfirmedBeforeEventDelete", [id, ev])))
4881
4889
  return;
4882
4890
  if (ev) {
4883
- if (scheduler2.getState().select_id == id2) {
4891
+ if (scheduler2.getState().select_id == id) {
4884
4892
  scheduler2.unselect();
4885
4893
  }
4886
- delete this._events[id2];
4894
+ delete this._events[id];
4887
4895
  this.event_updated(ev);
4888
4896
  if (this._drag_id == ev.id) {
4889
4897
  this._drag_id = null;
@@ -4891,50 +4899,50 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
4891
4899
  this._drag_pos = null;
4892
4900
  }
4893
4901
  }
4894
- this.callEvent("onEventDeleted", [id2, ev]);
4902
+ this.callEvent("onEventDeleted", [id, ev]);
4895
4903
  };
4896
- scheduler2.getEvent = function(id2) {
4897
- return this._events[id2];
4904
+ scheduler2.getEvent = function(id) {
4905
+ return this._events[id];
4898
4906
  };
4899
- scheduler2.setEvent = function(id2, hash) {
4907
+ scheduler2.setEvent = function(id, hash) {
4900
4908
  if (!hash.id)
4901
- hash.id = id2;
4902
- this._events[id2] = hash;
4909
+ hash.id = id;
4910
+ this._events[id] = hash;
4903
4911
  };
4904
- scheduler2.for_rendered = function(id2, method) {
4912
+ scheduler2.for_rendered = function(id, method) {
4905
4913
  for (var i = this._rendered.length - 1; i >= 0; i--)
4906
- if (this._rendered[i].getAttribute(this.config.event_attribute) == id2)
4914
+ if (this._rendered[i].getAttribute(this.config.event_attribute) == id)
4907
4915
  method(this._rendered[i], i);
4908
4916
  };
4909
- scheduler2.changeEventId = function(id2, new_id) {
4910
- if (id2 == new_id)
4917
+ scheduler2.changeEventId = function(id, new_id) {
4918
+ if (id == new_id)
4911
4919
  return;
4912
- var ev = this._events[id2];
4920
+ var ev = this._events[id];
4913
4921
  if (ev) {
4914
4922
  ev.id = new_id;
4915
4923
  this._events[new_id] = ev;
4916
- delete this._events[id2];
4924
+ delete this._events[id];
4917
4925
  }
4918
- this.for_rendered(id2, function(r) {
4926
+ this.for_rendered(id, function(r) {
4919
4927
  r.setAttribute("event_id", new_id);
4920
4928
  r.setAttribute(scheduler2.config.event_attribute, new_id);
4921
4929
  });
4922
- if (this._select_id == id2)
4930
+ if (this._select_id == id)
4923
4931
  this._select_id = new_id;
4924
- if (this._edit_id == id2)
4932
+ if (this._edit_id == id)
4925
4933
  this._edit_id = new_id;
4926
- this.callEvent("onEventIdChange", [id2, new_id]);
4934
+ this.callEvent("onEventIdChange", [id, new_id]);
4927
4935
  };
4928
4936
  (function() {
4929
4937
  var attrs = ["text", "Text", "start_date", "StartDate", "end_date", "EndDate"];
4930
4938
  var create_getter = function(name) {
4931
- return function(id2) {
4932
- return scheduler2.getEvent(id2)[name];
4939
+ return function(id) {
4940
+ return scheduler2.getEvent(id)[name];
4933
4941
  };
4934
4942
  };
4935
4943
  var create_setter = function(name) {
4936
- return function(id2, value) {
4937
- var ev = scheduler2.getEvent(id2);
4944
+ return function(id, value) {
4945
+ var ev = scheduler2.getEvent(id);
4938
4946
  ev[name] = value;
4939
4947
  ev._changed = true;
4940
4948
  ev._timed = this.isOneDayEvent(ev);
@@ -4976,18 +4984,18 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
4976
4984
  };
4977
4985
  scheduler2.get_visible_events = function(only_timed) {
4978
4986
  var stack = [];
4979
- for (var id2 in this._events)
4980
- if (this.is_visible_events(this._events[id2])) {
4981
- if (!only_timed || this._events[id2]._timed) {
4982
- if (this.filter_event(id2, this._events[id2]))
4983
- stack.push(this._events[id2]);
4987
+ for (var id in this._events)
4988
+ if (this.is_visible_events(this._events[id])) {
4989
+ if (!only_timed || this._events[id]._timed) {
4990
+ if (this.filter_event(id, this._events[id]))
4991
+ stack.push(this._events[id]);
4984
4992
  }
4985
4993
  }
4986
4994
  return stack;
4987
4995
  };
4988
- scheduler2.filter_event = function(id2, ev) {
4996
+ scheduler2.filter_event = function(id, ev) {
4989
4997
  var filter = this["filter_" + this._mode];
4990
- return filter ? filter(id2, ev) : true;
4998
+ return filter ? filter(id, ev) : true;
4991
4999
  };
4992
5000
  scheduler2._is_main_area_event = function(ev) {
4993
5001
  return !!ev._timed;
@@ -5058,27 +5066,27 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
5058
5066
  var count = scheduler2.getEvents(curr, date.add(curr, 1, "day")).length;
5059
5067
  var pos = this._get_event_bar_pos(toRender);
5060
5068
  var widt = pos.x2 - pos.x;
5061
- var el2 = document.createElement("div");
5062
- scheduler2.event(el2, "click", function(e) {
5069
+ var el = document.createElement("div");
5070
+ scheduler2.event(el, "click", function(e) {
5063
5071
  scheduler2._view_month_day(e);
5064
5072
  });
5065
- el2.className = "dhx_month_link";
5066
- el2.style.top = pos.y + "px";
5067
- el2.style.left = pos.x + "px";
5068
- el2.style.width = widt + "px";
5069
- el2.innerHTML = scheduler2.templates.month_events_link(curr, count);
5070
- this._rendered.push(el2);
5071
- parent.appendChild(el2);
5073
+ el.className = "dhx_month_link";
5074
+ el.style.top = pos.y + "px";
5075
+ el.style.left = pos.x + "px";
5076
+ el.style.width = widt + "px";
5077
+ el.innerHTML = scheduler2.templates.month_events_link(curr, count);
5078
+ this._rendered.push(el);
5079
+ parent.appendChild(el);
5072
5080
  }
5073
5081
  };
5074
- scheduler2._recalculate_timed = function(id2) {
5075
- if (!id2)
5082
+ scheduler2._recalculate_timed = function(id) {
5083
+ if (!id)
5076
5084
  return;
5077
5085
  var ev;
5078
- if (typeof id2 != "object")
5079
- ev = this._events[id2];
5086
+ if (typeof id != "object")
5087
+ ev = this._events[id];
5080
5088
  else
5081
- ev = id2;
5089
+ ev = id;
5082
5090
  if (!ev)
5083
5091
  return;
5084
5092
  ev._timed = scheduler2.isOneDayEvent(ev);
@@ -5382,11 +5390,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
5382
5390
  var chunks_info = {};
5383
5391
  for (var i = 0; i < evs.length; i++) {
5384
5392
  var ev = evs[i];
5385
- var id2 = ev.id;
5386
- if (!chunks_info[id2]) {
5387
- chunks_info[id2] = { first_chunk: true, last_chunk: true };
5393
+ var id = ev.id;
5394
+ if (!chunks_info[id]) {
5395
+ chunks_info[id] = { first_chunk: true, last_chunk: true };
5388
5396
  }
5389
- var chunk_info = chunks_info[id2];
5397
+ var chunk_info = chunks_info[id];
5390
5398
  var sd = start_date || ev.start_date;
5391
5399
  var ed = ev.end_date;
5392
5400
  if (sd < this._min_date) {
@@ -5467,10 +5475,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
5467
5475
  }
5468
5476
  this._rendered = [];
5469
5477
  };
5470
- scheduler2.updateEvent = function(id2) {
5471
- var ev = this.getEvent(id2);
5472
- this.clear_event(id2);
5473
- if (ev && this.is_visible_events(ev) && this.filter_event(id2, ev) && (this._table_view || this.config.multi_day || ev._timed)) {
5478
+ scheduler2.updateEvent = function(id) {
5479
+ var ev = this.getEvent(id);
5480
+ this.clear_event(id);
5481
+ if (ev && this.is_visible_events(ev) && this.filter_event(id, ev) && (this._table_view || this.config.multi_day || ev._timed)) {
5474
5482
  if (this.config.update_render) {
5475
5483
  this.render_view_data();
5476
5484
  } else {
@@ -5482,8 +5490,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
5482
5490
  }
5483
5491
  }
5484
5492
  };
5485
- scheduler2.clear_event = function(id2) {
5486
- this.for_rendered(id2, function(node, i) {
5493
+ scheduler2.clear_event = function(id) {
5494
+ this.for_rendered(id, function(node, i) {
5487
5495
  if (node.parentNode)
5488
5496
  node.parentNode.removeChild(node);
5489
5497
  scheduler2._rendered.splice(i, 1);
@@ -5630,23 +5638,23 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
5630
5638
  };
5631
5639
  scheduler2._render_v_bar = function(ev, x, y, w, h, style, contentA, contentB, bottom) {
5632
5640
  var d = document.createElement("div");
5633
- var id2 = ev.id;
5634
- var cs2 = bottom ? "dhx_cal_event dhx_cal_select_menu" : "dhx_cal_event";
5641
+ var id = ev.id;
5642
+ var cs = bottom ? "dhx_cal_event dhx_cal_select_menu" : "dhx_cal_event";
5635
5643
  var state = scheduler2.getState();
5636
5644
  if (state.drag_id == ev.id) {
5637
- cs2 += " dhx_cal_event_drag";
5645
+ cs += " dhx_cal_event_drag";
5638
5646
  }
5639
5647
  if (state.select_id == ev.id) {
5640
- cs2 += " dhx_cal_event_selected";
5648
+ cs += " dhx_cal_event_selected";
5641
5649
  }
5642
5650
  var cse = scheduler2.templates.event_class(ev.start_date, ev.end_date, ev);
5643
5651
  if (cse)
5644
- cs2 = cs2 + " " + cse;
5652
+ cs = cs + " " + cse;
5645
5653
  if (this.config.cascade_event_display) {
5646
- cs2 += " dhx_cal_event_cascade";
5654
+ cs += " dhx_cal_event_cascade";
5647
5655
  }
5648
5656
  var boxWidth = w - 1;
5649
- var html = `<div event_id="${id2}" ${this.config.event_attribute}="${id2}" class="${cs2}"
5657
+ var html = `<div event_id="${id}" ${this.config.event_attribute}="${id}" class="${cs}"
5650
5658
  style="position:absolute; top:${y}px; ${this.config.rtl ? "right:" : "left:"}${x}px; width:${boxWidth}px; height:${h}px; ${style || ""}"
5651
5659
  data-bar-start="${ev.start_date.valueOf()}" data-bar-end="${ev.end_date.valueOf()}">
5652
5660
  </div>`;
@@ -5744,16 +5752,16 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
5744
5752
  var resize_left = resizable && (ev._timed || left_chunk);
5745
5753
  var resize_right = resizable && (ev._timed || right_chunk);
5746
5754
  var timed = true;
5747
- var cs2 = "dhx_cal_event_clear";
5755
+ var cs = "dhx_cal_event_clear";
5748
5756
  if (!ev._timed || resizable) {
5749
5757
  timed = false;
5750
- cs2 = "dhx_cal_event_line";
5758
+ cs = "dhx_cal_event_line";
5751
5759
  }
5752
5760
  if (left_chunk) {
5753
- cs2 += " dhx_cal_event_line_start";
5761
+ cs += " dhx_cal_event_line_start";
5754
5762
  }
5755
5763
  if (right_chunk) {
5756
- cs2 += " dhx_cal_event_line_end";
5764
+ cs += " dhx_cal_event_line_end";
5757
5765
  }
5758
5766
  if (resize_left) {
5759
5767
  resize_handle += "<div class='dhx_event_resize dhx_event_resize_start'></div>";
@@ -5763,12 +5771,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
5763
5771
  }
5764
5772
  var cse = scheduler2.templates.event_class(ev.start_date, ev.end_date, ev);
5765
5773
  if (cse) {
5766
- cs2 += " " + cse;
5774
+ cs += " " + cse;
5767
5775
  }
5768
5776
  var bg_color = ev.color ? "--dhx-scheduler-event-background:" + ev.color + ";" : "";
5769
5777
  var color = ev.textColor ? "--dhx-scheduler-event-color:" + ev.textColor + ";" : "";
5770
5778
  var style_text = ["position:absolute", "top:" + y + "px", "left:" + x + "px", "width:" + (x2 - x - (timed ? 1 : 0)) + "px", "height:" + (this.xy.bar_height - 2) + "px", color, bg_color, ev._text_style || ""].join(";");
5771
- var html = "<div event_id='" + ev.id + "' " + this.config.event_attribute + "='" + ev.id + "' class='" + cs2 + "' style='" + style_text + "'" + this._waiAria.eventBarAttrString(ev) + ">";
5779
+ var html = "<div event_id='" + ev.id + "' " + this.config.event_attribute + "='" + ev.id + "' class='" + cs + "' style='" + style_text + "'" + this._waiAria.eventBarAttrString(ev) + ">";
5772
5780
  if (resizable) {
5773
5781
  html += resize_handle;
5774
5782
  }
@@ -5787,22 +5795,22 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
5787
5795
  parent.appendChild(d.firstChild);
5788
5796
  };
5789
5797
  scheduler2._locate_event = function(node) {
5790
- var id2 = null;
5791
- while (node && !id2 && node.getAttribute) {
5792
- id2 = node.getAttribute(this.config.event_attribute);
5798
+ var id = null;
5799
+ while (node && !id && node.getAttribute) {
5800
+ id = node.getAttribute(this.config.event_attribute);
5793
5801
  node = node.parentNode;
5794
5802
  }
5795
- return id2;
5803
+ return id;
5796
5804
  };
5797
- scheduler2.edit = function(id2) {
5798
- if (this._edit_id == id2)
5805
+ scheduler2.edit = function(id) {
5806
+ if (this._edit_id == id)
5799
5807
  return;
5800
- this.editStop(false, id2);
5801
- this._edit_id = id2;
5802
- this.updateEvent(id2);
5808
+ this.editStop(false, id);
5809
+ this._edit_id = id;
5810
+ this.updateEvent(id);
5803
5811
  };
5804
- scheduler2.editStop = function(mode, id2) {
5805
- if (id2 && this._edit_id == id2)
5812
+ scheduler2.editStop = function(mode, id) {
5813
+ if (id && this._edit_id == id)
5806
5814
  return;
5807
5815
  var ev = this.getEvent(this._edit_id);
5808
5816
  if (ev) {
@@ -5822,6 +5830,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
5822
5830
  } else {
5823
5831
  this.callEvent("onEventAdded", [ev.id, ev]);
5824
5832
  }
5833
+ delete ev.$new;
5825
5834
  this._new_event = null;
5826
5835
  } else {
5827
5836
  if (mode) {
@@ -5838,26 +5847,26 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
5838
5847
  }
5839
5848
  return result;
5840
5849
  };
5841
- scheduler2.getRenderedEvent = function(id2) {
5842
- if (!id2)
5850
+ scheduler2.getRenderedEvent = function(id) {
5851
+ if (!id)
5843
5852
  return;
5844
5853
  var rendered_events = scheduler2._rendered;
5845
5854
  for (var i = 0; i < rendered_events.length; i++) {
5846
5855
  var rendered_event = rendered_events[i];
5847
- if (rendered_event.getAttribute(scheduler2.config.event_attribute) == id2) {
5856
+ if (rendered_event.getAttribute(scheduler2.config.event_attribute) == id) {
5848
5857
  return rendered_event;
5849
5858
  }
5850
5859
  }
5851
5860
  return null;
5852
5861
  };
5853
- scheduler2.showEvent = function(id2, mode) {
5862
+ scheduler2.showEvent = function(id, mode) {
5854
5863
  var section;
5855
- if (id2 && typeof id2 === "object") {
5856
- mode = id2.mode;
5857
- section = id2.section;
5858
- id2 = id2.section;
5864
+ if (id && typeof id === "object") {
5865
+ mode = id.mode;
5866
+ section = id.section;
5867
+ id = id.section;
5859
5868
  }
5860
- var ev = typeof id2 == "number" || typeof id2 == "string" ? scheduler2.getEvent(id2) : id2;
5869
+ var ev = typeof id == "number" || typeof id == "string" ? scheduler2.getEvent(id) : id;
5861
5870
  mode = mode || scheduler2._mode;
5862
5871
  if (!ev || this.checkEvent("onBeforeEventDisplay") && !this.callEvent("onBeforeEventDisplay", [ev, mode]))
5863
5872
  return;
@@ -6660,23 +6669,27 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
6660
6669
  this.show_cover();
6661
6670
  this._cover.style.display = "";
6662
6671
  };
6663
- scheduler2.showLightbox = function(id2) {
6664
- if (!id2)
6672
+ scheduler2.showLightbox = function(id) {
6673
+ if (!id)
6665
6674
  return;
6666
- if (!this.callEvent("onBeforeLightbox", [id2])) {
6667
- if (this._new_event)
6675
+ if (!this.callEvent("onBeforeLightbox", [id])) {
6676
+ if (this._new_event) {
6668
6677
  this._new_event = null;
6678
+ if (scheduler2.getEvent(id)) {
6679
+ delete scheduler2.getEvent(id).$new;
6680
+ }
6681
+ }
6669
6682
  return;
6670
6683
  }
6671
6684
  this.showCover(box);
6672
6685
  var box = this.getLightbox();
6673
6686
  this._setLbPosition(box);
6674
- this._fill_lightbox(id2, box);
6687
+ this._fill_lightbox(id, box);
6675
6688
  this._waiAria.lightboxVisibleAttr(box);
6676
- this.callEvent("onLightbox", [id2]);
6689
+ this.callEvent("onLightbox", [id]);
6677
6690
  };
6678
- scheduler2._fill_lightbox = function(id2, box) {
6679
- var ev = this.getEvent(id2);
6691
+ scheduler2._fill_lightbox = function(id, box) {
6692
+ var ev = this.getEvent(id);
6680
6693
  var s = box.getElementsByTagName("span");
6681
6694
  var lightboxHeader = [];
6682
6695
  if (scheduler2.templates.lightbox_header) {
@@ -6704,7 +6717,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
6704
6717
  if (sns[i].focus)
6705
6718
  block.focus.call(this, node);
6706
6719
  }
6707
- scheduler2._lightbox_id = id2;
6720
+ scheduler2._lightbox_id = id;
6708
6721
  };
6709
6722
  scheduler2._get_lightbox_section_node = function(section) {
6710
6723
  return scheduler2._lightbox.querySelector(`#${section.id}`).nextSibling;
@@ -6722,14 +6735,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
6722
6735
  return ev;
6723
6736
  };
6724
6737
  scheduler2._empty_lightbox = function(data) {
6725
- var id2 = scheduler2._lightbox_id;
6726
- var ev = this.getEvent(id2);
6738
+ var id = scheduler2._lightbox_id;
6739
+ var ev = this.getEvent(id);
6727
6740
  this._lame_copy(ev, data);
6728
6741
  this.setEvent(ev.id, ev);
6729
6742
  this._edit_stop_event(ev, true);
6730
6743
  this.render_view_data();
6731
6744
  };
6732
- scheduler2.hide_lightbox = function(id2) {
6745
+ scheduler2.hide_lightbox = function(id) {
6733
6746
  scheduler2.endLightbox(false, this.getLightbox());
6734
6747
  };
6735
6748
  scheduler2.hideCover = function(box) {
@@ -6764,8 +6777,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
6764
6777
  this._empty_lightbox(data);
6765
6778
  this.hide_lightbox();
6766
6779
  };
6767
- scheduler2.startLightbox = function(id2, box) {
6768
- this._lightbox_id = id2;
6780
+ scheduler2.startLightbox = function(id, box) {
6781
+ this._lightbox_id = id;
6769
6782
  this._custom_lightbox = true;
6770
6783
  this._temp_lightbox = this._lightbox;
6771
6784
  this._lightbox = box;
@@ -6800,6 +6813,9 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
6800
6813
  this.hide_lightbox();
6801
6814
  };
6802
6815
  scheduler2.hideLightbox = scheduler2.cancel_lightbox;
6816
+ scheduler2._delete_event_confirm = function({ event: event2, message: message2, title, callback, ok }) {
6817
+ scheduler2._dhtmlx_confirm({ message: message2, title, callback, ok });
6818
+ };
6803
6819
  scheduler2._init_lightbox_events = function() {
6804
6820
  if (this.getLightbox().$_eventAttached) {
6805
6821
  return;
@@ -6835,7 +6851,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
6835
6851
  return;
6836
6852
  }
6837
6853
  var c = scheduler2.locale.labels.confirm_deleting;
6838
- scheduler2._dhtmlx_confirm({ message: c, title: scheduler2.locale.labels.title_confirm_deleting, callback: function() {
6854
+ scheduler2._delete_event_confirm({ event: scheduler2.getEvent(scheduler2._lightbox_id), message: c, title: scheduler2.locale.labels.title_confirm_deleting, callback: function() {
6839
6855
  let ev = scheduler2.getEvent(scheduler2._lightbox_id);
6840
6856
  if (ev._thisAndFollowing) {
6841
6857
  ev._removeFollowing = true;
@@ -6844,6 +6860,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
6844
6860
  scheduler2.deleteEvent(scheduler2._lightbox_id);
6845
6861
  }
6846
6862
  scheduler2._new_event = null;
6863
+ delete ev.$new;
6847
6864
  scheduler2.hide_lightbox();
6848
6865
  }, config: { ok: scheduler2.locale.labels.icon_delete } });
6849
6866
  break;
@@ -7175,8 +7192,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
7175
7192
  var original_render = scheduler2.render_view_data;
7176
7193
  if (dnd == "create" && timeline) {
7177
7194
  scheduler2.render_view_data = function() {
7178
- var id2 = scheduler2.getState().drag_id;
7179
- var ev = scheduler2.getEvent(id2);
7195
+ var id = scheduler2.getState().drag_id;
7196
+ var ev = scheduler2.getEvent(id);
7180
7197
  var property = timeline.y_property;
7181
7198
  var evs = scheduler2.getEvents(ev.start_date, ev.end_date);
7182
7199
  for (var i = 0; i < evs.length; i++) {
@@ -7626,7 +7643,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
7626
7643
  };
7627
7644
  }
7628
7645
  function extend$2(scheduler2) {
7629
- if (window.jQuery) {
7646
+ if (typeof window !== "undefined" && window.jQuery) {
7630
7647
  (function($) {
7631
7648
  var counter = 0;
7632
7649
  var methods = [];
@@ -7734,28 +7751,28 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
7734
7751
  this.attach = function() {
7735
7752
  var dp2 = this.$dp;
7736
7753
  var scheduler3 = this.$scheduler;
7737
- this._dataProcessorHandlers.push(scheduler3.attachEvent("onEventAdded", function(id2) {
7738
- if (!this._loading && this._validId(id2))
7739
- dp2.setUpdated(id2, true, "inserted");
7754
+ this._dataProcessorHandlers.push(scheduler3.attachEvent("onEventAdded", function(id) {
7755
+ if (!this._loading && this._validId(id))
7756
+ dp2.setUpdated(id, true, "inserted");
7740
7757
  }));
7741
- this._dataProcessorHandlers.push(scheduler3.attachEvent("onConfirmedBeforeEventDelete", function(id2) {
7742
- if (!this._validId(id2))
7758
+ this._dataProcessorHandlers.push(scheduler3.attachEvent("onConfirmedBeforeEventDelete", function(id) {
7759
+ if (!this._validId(id))
7743
7760
  return;
7744
- var z = dp2.getState(id2);
7761
+ var z = dp2.getState(id);
7745
7762
  if (z == "inserted" || this._new_event) {
7746
- dp2.setUpdated(id2, false);
7763
+ dp2.setUpdated(id, false);
7747
7764
  return true;
7748
7765
  }
7749
7766
  if (z == "deleted")
7750
7767
  return false;
7751
7768
  if (z == "true_deleted")
7752
7769
  return true;
7753
- dp2.setUpdated(id2, true, "deleted");
7770
+ dp2.setUpdated(id, true, "deleted");
7754
7771
  return false;
7755
7772
  }));
7756
- this._dataProcessorHandlers.push(scheduler3.attachEvent("onEventChanged", function(id2) {
7757
- if (!this._loading && this._validId(id2))
7758
- dp2.setUpdated(id2, true, "updated");
7773
+ this._dataProcessorHandlers.push(scheduler3.attachEvent("onEventChanged", function(id) {
7774
+ if (!this._loading && this._validId(id))
7775
+ dp2.setUpdated(id, true, "updated");
7759
7776
  }));
7760
7777
  this._dataProcessorHandlers.push(scheduler3.attachEvent("onClearAll", function() {
7761
7778
  dp2._in_progress = {};
@@ -7765,12 +7782,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
7765
7782
  }));
7766
7783
  dp2.attachEvent("insertCallback", scheduler3._update_callback);
7767
7784
  dp2.attachEvent("updateCallback", scheduler3._update_callback);
7768
- dp2.attachEvent("deleteCallback", function(upd, id2) {
7769
- if (scheduler3.getEvent(id2)) {
7770
- scheduler3.setUserData(id2, this.action_param, "true_deleted");
7771
- scheduler3.deleteEvent(id2);
7785
+ dp2.attachEvent("deleteCallback", function(upd, id) {
7786
+ if (scheduler3.getEvent(id)) {
7787
+ scheduler3.setUserData(id, this.action_param, "true_deleted");
7788
+ scheduler3.deleteEvent(id);
7772
7789
  } else if (scheduler3._add_rec_marker)
7773
- scheduler3._update_callback(upd, id2);
7790
+ scheduler3._update_callback(upd, id);
7774
7791
  });
7775
7792
  };
7776
7793
  this.detach = function() {
@@ -7782,24 +7799,24 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
7782
7799
  };
7783
7800
  }
7784
7801
  function extendScheduler(scheduler2, dp) {
7785
- scheduler2._validId = function(id2) {
7802
+ scheduler2._validId = function(id) {
7786
7803
  if (this._is_virtual_event) {
7787
- return !this._is_virtual_event(id2);
7804
+ return !this._is_virtual_event(id);
7788
7805
  }
7789
7806
  return true;
7790
7807
  };
7791
- scheduler2.setUserData = function(id2, name, value) {
7792
- if (id2) {
7793
- var ev = this.getEvent(id2);
7808
+ scheduler2.setUserData = function(id, name, value) {
7809
+ if (id) {
7810
+ var ev = this.getEvent(id);
7794
7811
  if (ev)
7795
7812
  ev[name] = value;
7796
7813
  } else {
7797
7814
  this._userdata[name] = value;
7798
7815
  }
7799
7816
  };
7800
- scheduler2.getUserData = function(id2, name) {
7801
- if (id2) {
7802
- var ev = this.getEvent(id2);
7817
+ scheduler2.getUserData = function(id, name) {
7818
+ if (id) {
7819
+ var ev = this.getEvent(id);
7803
7820
  if (ev)
7804
7821
  return ev[name];
7805
7822
  else
@@ -7808,17 +7825,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
7808
7825
  return this._userdata[name];
7809
7826
  }
7810
7827
  };
7811
- scheduler2._set_event_text_style = function(id2, style) {
7812
- if (!scheduler2.getEvent(id2))
7828
+ scheduler2._set_event_text_style = function(id, style) {
7829
+ if (!scheduler2.getEvent(id))
7813
7830
  return;
7814
- this.for_rendered(id2, function(r) {
7831
+ this.for_rendered(id, function(r) {
7815
7832
  r.style.cssText += ";" + style;
7816
7833
  });
7817
- var ev = this.getEvent(id2);
7834
+ var ev = this.getEvent(id);
7818
7835
  ev["_text_style"] = style;
7819
7836
  this.event_updated(ev);
7820
7837
  };
7821
- scheduler2._update_callback = function(upd, id2) {
7838
+ scheduler2._update_callback = function(upd, id) {
7822
7839
  var data = scheduler2._xmlNodeToJSON(upd.firstChild);
7823
7840
  if (data.rec_type == "none")
7824
7841
  data.rec_pattern = "none";
@@ -7829,18 +7846,18 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
7829
7846
  if (scheduler2._add_rec_marker)
7830
7847
  scheduler2.setCurrentView();
7831
7848
  };
7832
- scheduler2._dp_change_event_id = function(id2, new_id) {
7833
- if (!scheduler2.getEvent(id2))
7849
+ scheduler2._dp_change_event_id = function(id, new_id) {
7850
+ if (!scheduler2.getEvent(id))
7834
7851
  return;
7835
- scheduler2.changeEventId(id2, new_id);
7852
+ scheduler2.changeEventId(id, new_id);
7836
7853
  };
7837
- scheduler2._dp_hook_delete = function(id2, new_id) {
7838
- if (!scheduler2.getEvent(id2))
7854
+ scheduler2._dp_hook_delete = function(id, new_id) {
7855
+ if (!scheduler2.getEvent(id))
7839
7856
  return;
7840
- if (new_id && id2 != new_id) {
7841
- if (this.getUserData(id2, dp.action_param) == "true_deleted")
7842
- this.setUserData(id2, dp.action_param, "updated");
7843
- this.changeEventId(id2, new_id);
7857
+ if (new_id && id != new_id) {
7858
+ if (this.getUserData(id, dp.action_param) == "true_deleted")
7859
+ this.setUserData(id, dp.action_param, "updated");
7860
+ this.changeEventId(id, new_id);
7844
7861
  }
7845
7862
  return this.deleteEvent(new_id, true);
7846
7863
  };
@@ -7949,21 +7966,21 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
7949
7966
  this.markRow(rowId, state, mode);
7950
7967
  if (state && this.autoUpdate)
7951
7968
  this.sendData(rowId);
7952
- }, markRow: function(id2, state, mode) {
7969
+ }, markRow: function(id, state, mode) {
7953
7970
  var str = "";
7954
- var invalid = this.is_invalid(id2);
7971
+ var invalid = this.is_invalid(id);
7955
7972
  if (invalid) {
7956
7973
  str = this.styles[invalid];
7957
7974
  state = true;
7958
7975
  }
7959
- if (this.callEvent("onRowMark", [id2, state, mode, invalid])) {
7976
+ if (this.callEvent("onRowMark", [id, state, mode, invalid])) {
7960
7977
  str = this.styles[state ? mode : "clear"] + str;
7961
- this.$scheduler[this._methods[0]](id2, str);
7978
+ this.$scheduler[this._methods[0]](id, str);
7962
7979
  if (invalid && invalid.details) {
7963
7980
  str += this.styles[invalid + "_cell"];
7964
7981
  for (var i = 0; i < invalid.details.length; i++)
7965
7982
  if (invalid.details[i])
7966
- this.$scheduler[this._methods[1]](id2, i, str);
7983
+ this.$scheduler[this._methods[1]](id, i, str);
7967
7984
  }
7968
7985
  }
7969
7986
  }, getActionByState: function(state) {
@@ -7977,16 +7994,16 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
7977
7994
  return "delete";
7978
7995
  }
7979
7996
  return "update";
7980
- }, getState: function(id2) {
7981
- return this.$scheduler.getUserData(id2, this.action_param);
7982
- }, is_invalid: function(id2) {
7983
- return this._invalid[id2];
7984
- }, set_invalid: function(id2, mode, details) {
7997
+ }, getState: function(id) {
7998
+ return this.$scheduler.getUserData(id, this.action_param);
7999
+ }, is_invalid: function(id) {
8000
+ return this._invalid[id];
8001
+ }, set_invalid: function(id, mode, details) {
7985
8002
  if (details)
7986
8003
  mode = { value: mode, details, toString: function() {
7987
8004
  return this.value.toString();
7988
8005
  } };
7989
- this._invalid[id2] = mode;
8006
+ this._invalid[id] = mode;
7990
8007
  }, checkBeforeUpdate: function(rowId) {
7991
8008
  return true;
7992
8009
  }, sendData: function(rowId) {
@@ -8004,13 +8021,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8004
8021
  if (!this.callEvent("onBeforeUpdate", [rowId, this.getState(rowId), data]))
8005
8022
  return false;
8006
8023
  this._sendData(data, rowId);
8007
- }, serialize: function(data, id2) {
8024
+ }, serialize: function(data, id) {
8008
8025
  if (this._serializeAsJson) {
8009
8026
  return this._serializeAsJSON(data);
8010
8027
  }
8011
8028
  if (typeof data == "string")
8012
8029
  return data;
8013
- if (typeof id2 != "undefined")
8030
+ if (typeof id != "undefined")
8014
8031
  return this.serialize_one(data, "");
8015
8032
  else {
8016
8033
  var stack = [];
@@ -8063,6 +8080,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8063
8080
  if (this._tMode === "CUSTOM") {
8064
8081
  var state = this.getState(rowId);
8065
8082
  var action = this.getActionByState(state);
8083
+ delete dataToSend[this.action_param];
8066
8084
  var _onResolvedCreateUpdate = function(tag) {
8067
8085
  var resultState = state;
8068
8086
  if (tag && tag.responseText && tag.setRequestHeader) {
@@ -8211,17 +8229,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8211
8229
  }, _getAllData: function(rowId) {
8212
8230
  var out = {};
8213
8231
  var has_one = false;
8214
- this._forEachUpdatedRow(function(id2) {
8215
- if (this._in_progress[id2] || this.is_invalid(id2)) {
8232
+ this._forEachUpdatedRow(function(id) {
8233
+ if (this._in_progress[id] || this.is_invalid(id)) {
8216
8234
  return;
8217
8235
  }
8218
- var row = this._getRowData(id2);
8219
- if (!this.callEvent("onBeforeUpdate", [id2, this.getState(id2), row])) {
8236
+ var row = this._getRowData(id);
8237
+ if (!this.callEvent("onBeforeUpdate", [id, this.getState(id), row])) {
8220
8238
  return;
8221
8239
  }
8222
- out[id2] = row;
8240
+ out[id] = row;
8223
8241
  has_one = true;
8224
- this._in_progress[id2] = (/* @__PURE__ */ new Date()).valueOf();
8242
+ this._in_progress[id] = (/* @__PURE__ */ new Date()).valueOf();
8225
8243
  });
8226
8244
  return has_one ? out : null;
8227
8245
  }, findRow: function(pattern) {
@@ -8276,21 +8294,21 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8276
8294
  this.setUpdated(tid, true, this.$scheduler.getUserData(sid, this.action_param));
8277
8295
  }
8278
8296
  this.callEvent("onAfterUpdate", [originalSid, action, tid, btag]);
8279
- }, _errorResponse: function(xml, id2) {
8297
+ }, _errorResponse: function(xml, id) {
8280
8298
  if (this.$scheduler && this.$scheduler.callEvent) {
8281
- this.$scheduler.callEvent("onSaveError", [id2, xml.xmlDoc]);
8299
+ this.$scheduler.callEvent("onSaveError", [id, xml.xmlDoc]);
8282
8300
  }
8283
- return this.cleanUpdate(id2);
8301
+ return this.cleanUpdate(id);
8284
8302
  }, _setDefaultTransactionMode: function() {
8285
8303
  if (this.serverProcessor) {
8286
8304
  this.setTransactionMode("POST", true);
8287
8305
  this.serverProcessor += (this.serverProcessor.indexOf("?") !== -1 ? "&" : "?") + "editing=true";
8288
8306
  this._serverProcessor = this.serverProcessor;
8289
8307
  }
8290
- }, afterUpdate: function(that, xml, id2) {
8308
+ }, afterUpdate: function(that, xml, id) {
8291
8309
  var ajax = this.$scheduler.ajax;
8292
8310
  if (xml.xmlDoc.status !== 200) {
8293
- this._errorResponse(xml, id2);
8311
+ this._errorResponse(xml, id);
8294
8312
  return;
8295
8313
  }
8296
8314
  var tag;
@@ -8302,20 +8320,20 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8302
8320
  }
8303
8321
  }
8304
8322
  if (tag) {
8305
- var action = tag.action || this.getState(id2) || "updated";
8306
- var sid = tag.sid || id2[0];
8307
- var tid = tag.tid || id2[0];
8323
+ var action = tag.action || this.getState(id) || "updated";
8324
+ var sid = tag.sid || id[0];
8325
+ var tid = tag.tid || id[0];
8308
8326
  that.afterUpdateCallback(sid, tid, action, tag);
8309
8327
  that.finalizeUpdate();
8310
8328
  return;
8311
8329
  }
8312
8330
  var top = ajax.xmltop("data", xml.xmlDoc);
8313
8331
  if (!top) {
8314
- return this._errorResponse(xml, id2);
8332
+ return this._errorResponse(xml, id);
8315
8333
  }
8316
8334
  var atag = ajax.xpath("//data/action", top);
8317
8335
  if (!atag.length) {
8318
- return this._errorResponse(xml, id2);
8336
+ return this._errorResponse(xml, id);
8319
8337
  }
8320
8338
  for (var i = 0; i < atag.length; i++) {
8321
8339
  var btag = atag[i];
@@ -8325,10 +8343,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8325
8343
  that.afterUpdateCallback(sid, tid, action, btag);
8326
8344
  }
8327
8345
  that.finalizeUpdate();
8328
- }, cleanUpdate: function(id2) {
8329
- if (id2)
8330
- for (var i = 0; i < id2.length; i++)
8331
- delete this._in_progress[id2[i]];
8346
+ }, cleanUpdate: function(id) {
8347
+ if (id)
8348
+ for (var i = 0; i < id.length; i++)
8349
+ delete this._in_progress[id[i]];
8332
8350
  }, finalizeUpdate: function() {
8333
8351
  if (this._waitMode)
8334
8352
  this._waitMode--;
@@ -8422,17 +8440,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8422
8440
  self2._silent_mode = true;
8423
8441
  for (var i = 0; i < updates.length; i++) {
8424
8442
  var status = updates[i].getAttribute("status");
8425
- var id2 = updates[i].getAttribute("id");
8443
+ var id = updates[i].getAttribute("id");
8426
8444
  var parent = updates[i].getAttribute("parent");
8427
8445
  switch (status) {
8428
8446
  case "inserted":
8429
- this.callEvent("insertCallback", [updates[i], id2, parent]);
8447
+ this.callEvent("insertCallback", [updates[i], id, parent]);
8430
8448
  break;
8431
8449
  case "updated":
8432
- this.callEvent("updateCallback", [updates[i], id2, parent]);
8450
+ this.callEvent("updateCallback", [updates[i], id, parent]);
8433
8451
  break;
8434
8452
  case "deleted":
8435
- this.callEvent("deleteCallback", [updates[i], id2, parent]);
8453
+ this.callEvent("deleteCallback", [updates[i], id, parent]);
8436
8454
  break;
8437
8455
  }
8438
8456
  }
@@ -8543,10 +8561,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8543
8561
  } else {
8544
8562
  return this._prepareItemForForm(item);
8545
8563
  }
8546
- }, _getRowData: function(id2) {
8547
- var dataItem = this.$scheduler.getEvent(id2);
8564
+ }, _getRowData: function(id) {
8565
+ var dataItem = this.$scheduler.getEvent(id);
8548
8566
  if (!dataItem) {
8549
- dataItem = { id: id2 };
8567
+ dataItem = { id };
8550
8568
  }
8551
8569
  return this._prepareDataItem(dataItem);
8552
8570
  } };
@@ -8761,9 +8779,9 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8761
8779
  }
8762
8780
  return text;
8763
8781
  }
8764
- function params(text, type, expire, id2, callback2) {
8782
+ function params(text, type, expire, id, callback2) {
8765
8783
  if (typeof text != "object")
8766
- text = { text, type, expire, id: id2, callback: callback2 };
8784
+ text = { text, type, expire, id, callback: callback2 };
8767
8785
  text.id = text.id || utils.uid();
8768
8786
  text.expire = text.expire || messageBox.expire;
8769
8787
  return text;
@@ -8801,7 +8819,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8801
8819
  }
8802
8820
  }, 1);
8803
8821
  };
8804
- var messageBox = function(text, type, expire, id2) {
8822
+ var messageBox = function(text, type, expire, id) {
8805
8823
  text = params.apply(this, arguments);
8806
8824
  text.type = text.type || "info";
8807
8825
  var subtype = text.type.split("-")[0];
@@ -8827,17 +8845,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8827
8845
  for (var key in messageBox.pull)
8828
8846
  messageBox.hide(key);
8829
8847
  };
8830
- messageBox.hide = function(id2) {
8831
- var obj = messageBox.pull[id2];
8848
+ messageBox.hide = function(id) {
8849
+ var obj = messageBox.pull[id];
8832
8850
  if (obj && obj.parentNode) {
8833
8851
  window.setTimeout(function() {
8834
8852
  obj.parentNode.removeChild(obj);
8835
8853
  obj = null;
8836
8854
  }, 2e3);
8837
8855
  obj.className += " hidden";
8838
- if (messageBox.timers[id2])
8839
- window.clearTimeout(messageBox.timers[id2]);
8840
- delete messageBox.pull[id2];
8856
+ if (messageBox.timers[id])
8857
+ window.clearTimeout(messageBox.timers[id]);
8858
+ delete messageBox.pull[id];
8841
8859
  }
8842
8860
  };
8843
8861
  var popups = [];
@@ -8869,23 +8887,6 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8869
8887
  });
8870
8888
  return { alert: alertBox, confirm: confirmBox, message: messageBox, modalbox: modalBox };
8871
8889
  }
8872
- const ar = { date: { month_full: ["كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"], month_short: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], day_full: ["الأحد", "الأثنين", "ألثلاثاء", "الأربعاء", "ألحميس", "ألجمعة", "السبت"], day_short: ["احد", "اثنين", "ثلاثاء", "اربعاء", "خميس", "جمعة", "سبت"] }, labels: { dhx_cal_today_button: "اليوم", day_tab: "يوم", week_tab: "أسبوع", month_tab: "شهر", new_event: "حدث جديد", icon_save: "اخزن", icon_cancel: "الغاء", icon_details: "تفاصيل", icon_edit: "تحرير", icon_delete: "حذف", confirm_closing: "التغييرات سوف تضيع, هل انت متأكد؟", confirm_deleting: "الحدث سيتم حذفها نهائيا ، هل أنت متأكد؟", section_description: "الوصف", section_time: "الفترة الزمنية", full_day: "طوال اليوم", confirm_recurring: "هل تريد تحرير مجموعة كاملة من الأحداث المتكررة؟", section_recurring: "تكرار الحدث", button_recurring: "تعطيل", button_recurring_open: "تمكين", button_edit_series: "تحرير سلسلة", button_edit_occurrence: "تعديل نسخة", button_edit_occurrence_and_following: "This and following events", grid_tab: "جدول", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "يومي", repeat_radio_week: "أسبوعي", repeat_radio_month: "شهري", repeat_radio_year: "سنوي", repeat_radio_day_type: "كل", repeat_text_day_count: "يوم", repeat_radio_day_type2: "كل يوم عمل", repeat_week: " تكرار كل", repeat_text_week_count: "أسبوع في الأيام التالية:", repeat_radio_month_type: "تكرار", repeat_radio_month_start: "في", repeat_text_month_day: "يوم كل", repeat_text_month_count: "شهر", repeat_text_month_count2_before: "كل", repeat_text_month_count2_after: "شهر", repeat_year_label: "في", select_year_day2: "من", repeat_text_year_day: "يوم", select_year_month: "شهر", repeat_radio_end: "بدون تاريخ انتهاء", repeat_text_occurrences_count: "تكرارات", repeat_radio_end2: "بعد", repeat_radio_end3: "ينتهي في", repeat_never: "أبداً", repeat_daily: "كل يوم", repeat_workdays: "كل يوم عمل", repeat_weekly: "كل أسبوع", repeat_monthly: "كل شهر", repeat_yearly: "كل سنة", repeat_custom: "تخصيص", repeat_freq_day: "يوم", repeat_freq_week: "أسبوع", repeat_freq_month: "شهر", repeat_freq_year: "سنة", repeat_on_date: "في التاريخ", repeat_ends: "ينتهي", month_for_recurring: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], day_for_recurring: ["الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"] } };
8873
- const be = { date: { month_full: ["Студзень", "Люты", "Сакавік", "Красавік", "Maй", "Чэрвень", "Ліпень", "Жнівень", "Верасень", "Кастрычнік", "Лістапад", "Снежань"], month_short: ["Студз", "Лют", "Сак", "Крас", "Maй", "Чэр", "Ліп", "Жнів", "Вер", "Каст", "Ліст", "Снеж"], day_full: ["Нядзеля", "Панядзелак", "Аўторак", "Серада", "Чацвер", "Пятніца", "Субота"], day_short: ["Нд", "Пн", "Аўт", "Ср", "Чцв", "Пт", "Сб"] }, labels: { dhx_cal_today_button: "Сёння", day_tab: "Дзень", week_tab: "Тыдзень", month_tab: "Месяц", new_event: "Новая падзея", icon_save: "Захаваць", icon_cancel: "Адмяніць", icon_details: "Дэталі", icon_edit: "Змяніць", icon_delete: "Выдаліць", confirm_closing: "", confirm_deleting: "Падзея будзе выдалена незваротна, працягнуць?", section_description: "Апісанне", section_time: "Перыяд часу", full_day: "Увесь дзень", confirm_recurring: "Вы хочаце змяніць усю серыю паўтаральных падзей?", section_recurring: "Паўтарэнне", button_recurring: "Адключана", button_recurring_open: "Уключана", button_edit_series: "Рэдагаваць серыю", button_edit_occurrence: "Рэдагаваць асобнік", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Спіс", date: "Дата", description: "Апісанне", year_tab: "Год", week_agenda_tab: "Спіс", grid_tab: "Спic", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Дзень", repeat_radio_week: "Тыдзень", repeat_radio_month: "Месяц", repeat_radio_year: "Год", repeat_radio_day_type: "Кожны", repeat_text_day_count: "дзень", repeat_radio_day_type2: "Кожны працоўны дзень", repeat_week: " Паўтараць кожны", repeat_text_week_count: "тыдзень", repeat_radio_month_type: "Паўтараць", repeat_radio_month_start: "", repeat_text_month_day: " чысла кожнага", repeat_text_month_count: "месяцу", repeat_text_month_count2_before: "кожны ", repeat_text_month_count2_after: "месяц", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "дзень", select_year_month: "", repeat_radio_end: "Без даты заканчэння", repeat_text_occurrences_count: "паўтораў", repeat_radio_end2: "", repeat_radio_end3: "Да ", repeat_never: "Ніколі", repeat_daily: "Кожны дзень", repeat_workdays: "Кожны працоўны дзень", repeat_weekly: "Кожны тыдзень", repeat_monthly: "Кожны месяц", repeat_yearly: "Кожны год", repeat_custom: "Наладжвальны", repeat_freq_day: "Дзень", repeat_freq_week: "Тыдзень", repeat_freq_month: "Месяц", repeat_freq_year: "Год", repeat_on_date: "На дату", repeat_ends: "Заканчваецца", month_for_recurring: ["Студзеня", "Лютага", "Сакавіка", "Красавіка", "Мая", "Чэрвеня", "Ліпeня", "Жніўня", "Верасня", "Кастрычніка", "Лістапада", "Снежня"], day_for_recurring: ["Нядзелю", "Панядзелак", "Аўторак", "Сераду", "Чацвер", "Пятніцу", "Суботу"] } };
8874
- const ca = { date: { month_full: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], month_short: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"], day_full: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"], day_short: ["Dg", "Dl", "Dm", "Dc", "Dj", "Dv", "Ds"] }, labels: { dhx_cal_today_button: "Hui", day_tab: "Dia", week_tab: "Setmana", month_tab: "Mes", new_event: "Nou esdeveniment", icon_save: "Guardar", icon_cancel: "Cancel·lar", icon_details: "Detalls", icon_edit: "Editar", icon_delete: "Esborrar", confirm_closing: "", confirm_deleting: "L'esdeveniment s'esborrarà definitivament, continuar ?", section_description: "Descripció", section_time: "Periode de temps", full_day: "Tot el dia", confirm_recurring: "¿Desitja modificar el conjunt d'esdeveniments repetits?", section_recurring: "Repeteixca l'esdeveniment", button_recurring: "Impedit", button_recurring_open: "Permés", button_edit_series: "Edit sèrie", button_edit_occurrence: "Edita Instància", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Descripció", year_tab: "Any", week_agenda_tab: "Agenda", grid_tab: "Taula", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diari", repeat_radio_week: "Setmanal", repeat_radio_month: "Mensual", repeat_radio_year: "Anual", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia", repeat_radio_day_type2: "Cada dia laborable", repeat_week: " Repetir cada", repeat_text_week_count: "setmana els dies següents:", repeat_radio_month_type: "Repetir", repeat_radio_month_start: "El", repeat_text_month_day: "dia cada", repeat_text_month_count: "mes", repeat_text_month_count2_before: "cada", repeat_text_month_count2_after: "mes", repeat_year_label: "El", select_year_day2: "de", repeat_text_year_day: "dia", select_year_month: "mes", repeat_radio_end: "Sense data de finalització", repeat_text_occurrences_count: "ocurrències", repeat_radio_end2: "Després", repeat_radio_end3: "Finalitzar el", repeat_never: "Mai", repeat_daily: "Cada dia", repeat_workdays: "Cada dia laborable", repeat_weekly: "Cada setmana", repeat_monthly: "Cada mes", repeat_yearly: "Cada any", repeat_custom: "Personalitzat", repeat_freq_day: "Dia", repeat_freq_week: "Setmana", repeat_freq_month: "Mes", repeat_freq_year: "Any", repeat_on_date: "En la data", repeat_ends: "Finalitza", month_for_recurring: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], day_for_recurring: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"] } };
8875
- const cn = { date: { month_full: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], month_short: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_full: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], day_short: ["日", "一", "二", "三", "四", "五", "六"] }, labels: { dhx_cal_today_button: "今天", day_tab: "日", week_tab: "周", month_tab: "月", new_event: "新建日程", icon_save: "保存", icon_cancel: "关闭", icon_details: "详细", icon_edit: "编辑", icon_delete: "删除", confirm_closing: "请确认是否撤销修改!", confirm_deleting: "是否删除日程?", section_description: "描述", section_time: "时间范围", full_day: "整天", confirm_recurring: "请确认是否将日程设为重复模式?", section_recurring: "重复周期", button_recurring: "禁用", button_recurring_open: "启用", button_edit_series: "编辑系列", button_edit_occurrence: "编辑实例", button_edit_occurrence_and_following: "This and following events", agenda_tab: "议程", date: "日期", description: "说明", year_tab: "今年", week_agenda_tab: "议程", grid_tab: "电网", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "按天", repeat_radio_week: "按周", repeat_radio_month: "按月", repeat_radio_year: "按年", repeat_radio_day_type: "每", repeat_text_day_count: "天", repeat_radio_day_type2: "每个工作日", repeat_week: " 重复 每", repeat_text_week_count: "星期的:", repeat_radio_month_type: "重复", repeat_radio_month_start: "在", repeat_text_month_day: "日 每", repeat_text_month_count: "月", repeat_text_month_count2_before: "每", repeat_text_month_count2_after: "月", repeat_year_label: "在", select_year_day2: "的", repeat_text_year_day: "日", select_year_month: "月", repeat_radio_end: "无结束日期", repeat_text_occurrences_count: "次结束", repeat_radio_end2: "重复", repeat_radio_end3: "结束于", repeat_never: "从不", repeat_daily: "每天", repeat_workdays: "每个工作日", repeat_weekly: "每周", repeat_monthly: "每月", repeat_yearly: "每年", repeat_custom: "自定义", repeat_freq_day: "天", repeat_freq_week: "周", repeat_freq_month: "月", repeat_freq_year: "年", repeat_on_date: "在日期", repeat_ends: "结束", month_for_recurring: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], day_for_recurring: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"] } };
8876
- const cs = { date: { month_full: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], month_short: ["Led", "Ún", "Bře", "Dub", "Kvě", "Čer", "Čec", "Srp", "Září", "Říj", "List", "Pro"], day_full: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"], day_short: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"] }, labels: { dhx_cal_today_button: "Dnes", day_tab: "Den", week_tab: "Týden", month_tab: "Měsíc", new_event: "Nová událost", icon_save: "Uložit", icon_cancel: "Zpět", icon_details: "Detail", icon_edit: "Edituj", icon_delete: "Smazat", confirm_closing: "", confirm_deleting: "Událost bude trvale smazána, opravdu?", section_description: "Poznámky", section_time: "Doba platnosti", confirm_recurring: "Přejete si upravit celou řadu opakovaných událostí?", section_recurring: "Opakování události", button_recurring: "Vypnuto", button_recurring_open: "Zapnuto", button_edit_series: "Edit series", button_edit_occurrence: "Upravit instance", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Program", date: "Datum", description: "Poznámka", year_tab: "Rok", full_day: "Full day", week_agenda_tab: "Program", grid_tab: "Mřížka", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Denně", repeat_radio_week: "Týdně", repeat_radio_month: "Měsíčně", repeat_radio_year: "Ročně", repeat_radio_day_type: "každý", repeat_text_day_count: "Den", repeat_radio_day_type2: "pracovní dny", repeat_week: "Opakuje každých", repeat_text_week_count: "Týdnů na:", repeat_radio_month_type: "u každého", repeat_radio_month_start: "na", repeat_text_month_day: "Den každého", repeat_text_month_count: "Měsíc", repeat_text_month_count2_before: "každý", repeat_text_month_count2_after: "Měsíc", repeat_year_label: "na", select_year_day2: "v", repeat_text_year_day: "Den v", select_year_month: "", repeat_radio_end: "bez data ukončení", repeat_text_occurrences_count: "Události", repeat_radio_end2: "po", repeat_radio_end3: "Konec", repeat_never: "Nikdy", repeat_daily: "Každý den", repeat_workdays: "Každý pracovní den", repeat_weekly: "Každý týden", repeat_monthly: "Každý měsíc", repeat_yearly: "Každý rok", repeat_custom: "Vlastní", repeat_freq_day: "Den", repeat_freq_week: "Týden", repeat_freq_month: "Měsíc", repeat_freq_year: "Rok", repeat_on_date: "Na datum", repeat_ends: "Končí", month_for_recurring: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], day_for_recurring: ["Neděle ", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"] } };
8877
- const da = { date: { month_full: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], day_short: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"] }, labels: { dhx_cal_today_button: "Idag", day_tab: "Dag", week_tab: "Uge", month_tab: "Måned", new_event: "Ny begivenhed", icon_save: "Gem", icon_cancel: "Fortryd", icon_details: "Detaljer", icon_edit: "Tilret", icon_delete: "Slet", confirm_closing: "Dine rettelser vil gå tabt.. Er dy sikker?", confirm_deleting: "Bigivenheden vil blive slettet permanent. Er du sikker?", section_description: "Beskrivelse", section_time: "Tidsperiode", confirm_recurring: "Vil du tilrette hele serien af gentagne begivenheder?", section_recurring: "Gentag begivenhed", button_recurring: "Frakoblet", button_recurring_open: "Tilkoblet", button_edit_series: "Rediger serien", button_edit_occurrence: "Rediger en kopi", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Dagsorden", date: "Dato", description: "Beskrivelse", year_tab: "År", week_agenda_tab: "Dagsorden", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daglig", repeat_radio_week: "Ugenlig", repeat_radio_month: "Månedlig", repeat_radio_year: "Årlig", repeat_radio_day_type: "Hver", repeat_text_day_count: "dag", repeat_radio_day_type2: "På hver arbejdsdag", repeat_week: " Gentager sig hver", repeat_text_week_count: "uge på følgende dage:", repeat_radio_month_type: "Hver den", repeat_radio_month_start: "Den", repeat_text_month_day: " i hver", repeat_text_month_count: "måned", repeat_text_month_count2_before: "hver", repeat_text_month_count2_after: "måned", repeat_year_label: "Den", select_year_day2: "i", repeat_text_year_day: "dag i", select_year_month: "", repeat_radio_end: "Ingen slutdato", repeat_text_occurrences_count: "gentagelse", repeat_radio_end2: "Efter", repeat_radio_end3: "Slut", repeat_never: "Aldrig", repeat_daily: "Hver dag", repeat_workdays: "Hver hverdag", repeat_weekly: "Hver uge", repeat_monthly: "Hver måned", repeat_yearly: "Hvert år", repeat_custom: "Brugerdefineret", repeat_freq_day: "Dag", repeat_freq_week: "Uge", repeat_freq_month: "Måned", repeat_freq_year: "År", repeat_on_date: "På dato", repeat_ends: "Slutter", month_for_recurring: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], day_for_recurring: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] } };
8878
- const de = { date: { month_full: [" Januar", " Februar", " März ", " April", " Mai", " Juni", " Juli", " August", " September ", " Oktober", " November ", " Dezember"], month_short: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], day_full: ["Sonntag", "Montag", "Dienstag", " Mittwoch", " Donnerstag", "Freitag", "Samstag"], day_short: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"] }, labels: { dhx_cal_today_button: "Heute", day_tab: "Tag", week_tab: "Woche", month_tab: "Monat", new_event: "neuer Eintrag", icon_save: "Speichern", icon_cancel: "Abbrechen", icon_details: "Details", icon_edit: "Ändern", icon_delete: "Löschen", confirm_closing: "", confirm_deleting: "Der Eintrag wird gelöscht", section_description: "Beschreibung", section_time: "Zeitspanne", full_day: "Ganzer Tag", confirm_recurring: "Wollen Sie alle Einträge bearbeiten oder nur diesen einzelnen Eintrag?", section_recurring: "Wiederholung", button_recurring: "Aus", button_recurring_open: "An", button_edit_series: "Bearbeiten Sie die Serie", button_edit_occurrence: "Bearbeiten Sie eine Kopie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Datum", description: "Beschreibung", year_tab: "Jahre", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Täglich", repeat_radio_week: "Wöchentlich", repeat_radio_month: "Monatlich", repeat_radio_year: "Jährlich", repeat_radio_day_type: "jeden", repeat_text_day_count: "Tag", repeat_radio_day_type2: "an jedem Arbeitstag", repeat_week: " Wiederholt sich jede", repeat_text_week_count: "Woche am:", repeat_radio_month_type: "an jedem", repeat_radio_month_start: "am", repeat_text_month_day: "Tag eines jeden", repeat_text_month_count: "Monats", repeat_text_month_count2_before: "jeden", repeat_text_month_count2_after: "Monats", repeat_year_label: "am", select_year_day2: "im", repeat_text_year_day: "Tag im", select_year_month: "", repeat_radio_end: "kein Enddatum", repeat_text_occurrences_count: "Ereignissen", repeat_radio_end3: "Schluß", repeat_radio_end2: "nach", repeat_never: "Nie", repeat_daily: "Jeden Tag", repeat_workdays: "Jeden Werktag", repeat_weekly: "Jede Woche", repeat_monthly: "Jeden Monat", repeat_yearly: "Jedes Jahr", repeat_custom: "Benutzerdefiniert", repeat_freq_day: "Tag", repeat_freq_week: "Woche", repeat_freq_month: "Monat", repeat_freq_year: "Jahr", repeat_on_date: "Am Datum", repeat_ends: "Endet", month_for_recurring: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], day_for_recurring: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"] } };
8879
- const el = { date: { month_full: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], month_short: ["ΙΑΝ", "ΦΕΒ", "ΜΑΡ", "ΑΠΡ", "ΜΑΙ", "ΙΟΥΝ", "ΙΟΥΛ", "ΑΥΓ", "ΣΕΠ", "ΟΚΤ", "ΝΟΕ", "ΔΕΚ"], day_full: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"], day_short: ["ΚΥ", "ΔΕ", "ΤΡ", "ΤΕ", "ΠΕ", "ΠΑ", "ΣΑ"] }, labels: { dhx_cal_today_button: "Σήμερα", day_tab: "Ημέρα", week_tab: "Εβδομάδα", month_tab: "Μήνας", new_event: "Νέο έργο", icon_save: "Αποθήκευση", icon_cancel: "Άκυρο", icon_details: "Λεπτομέρειες", icon_edit: "Επεξεργασία", icon_delete: "Διαγραφή", confirm_closing: "", confirm_deleting: "Το έργο θα διαγραφεί οριστικά. Θέλετε να συνεχίσετε;", section_description: "Περιγραφή", section_time: "Χρονική περίοδος", full_day: "Πλήρης Ημέρα", confirm_recurring: "Θέλετε να επεξεργασθείτε ολόκληρη την ομάδα των επαναλαμβανόμενων έργων;", section_recurring: "Επαναλαμβανόμενο έργο", button_recurring: "Ανενεργό", button_recurring_open: "Ενεργό", button_edit_series: "Επεξεργαστείτε τη σειρά", button_edit_occurrence: "Επεξεργασία ένα αντίγραφο", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Ημερήσια Διάταξη", date: "Ημερομηνία", description: "Περιγραφή", year_tab: "Έτος", week_agenda_tab: "Ημερήσια Διάταξη", grid_tab: "Πλέγμα", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Ημερησίως", repeat_radio_week: "Εβδομαδιαίως", repeat_radio_month: "Μηνιαίως", repeat_radio_year: "Ετησίως", repeat_radio_day_type: "Κάθε", repeat_text_day_count: "ημέρα", repeat_radio_day_type2: "Κάθε εργάσιμη", repeat_week: " Επανάληψη κάθε", repeat_text_week_count: "εβδομάδα τις επόμενες ημέρες:", repeat_radio_month_type: "Επανάληψη", repeat_radio_month_start: "Την", repeat_text_month_day: "ημέρα κάθε", repeat_text_month_count: "μήνα", repeat_text_month_count2_before: "κάθε", repeat_text_month_count2_after: "μήνα", repeat_year_label: "Την", select_year_day2: "του", repeat_text_year_day: "ημέρα", select_year_month: "μήνα", repeat_radio_end: "Χωρίς ημερομηνία λήξεως", repeat_text_occurrences_count: "επαναλήψεις", repeat_radio_end3: "Λήγει την", repeat_radio_end2: "Μετά από", repeat_never: "Ποτέ", repeat_daily: "Κάθε μέρα", repeat_workdays: "Κάθε εργάσιμη μέρα", repeat_weekly: "Κάθε εβδομάδα", repeat_monthly: "Κάθε μήνα", repeat_yearly: "Κάθε χρόνο", repeat_custom: "Προσαρμοσμένο", repeat_freq_day: "Ημέρα", repeat_freq_week: "Εβδομάδα", repeat_freq_month: "Μήνας", repeat_freq_year: "Χρόνος", repeat_on_date: "Σε ημερομηνία", repeat_ends: "Λήγει", month_for_recurring: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], day_for_recurring: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"] } };
8880
- const en = { date: { month_full: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], day_full: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], day_short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] }, labels: { dhx_cal_today_button: "Today", day_tab: "Day", week_tab: "Week", month_tab: "Month", new_event: "New event", icon_save: "Save", icon_cancel: "Cancel", icon_details: "Details", icon_edit: "Edit", icon_delete: "Delete", confirm_closing: "", confirm_deleting: "Event will be deleted permanently, are you sure?", section_description: "Description", section_time: "Time period", full_day: "Full day", confirm_recurring: "Edit recurring event", section_recurring: "Repeat event", button_recurring: "Disabled", button_recurring_open: "Enabled", button_edit_series: "All events", button_edit_occurrence: "This event", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Date", description: "Description", year_tab: "Year", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daily", repeat_radio_week: "Weekly", repeat_radio_month: "Monthly", repeat_radio_year: "Yearly", repeat_radio_day_type: "Every", repeat_text_day_count: "day", repeat_radio_day_type2: "Every workday", repeat_week: " Repeat every", repeat_text_week_count: "week next days:", repeat_radio_month_type: "Repeat", repeat_radio_month_start: "On", repeat_text_month_day: "day every", repeat_text_month_count: "month", repeat_text_month_count2_before: "every", repeat_text_month_count2_after: "month", repeat_year_label: "On", select_year_day2: "of", repeat_text_year_day: "day", select_year_month: "month", repeat_radio_end: "No end date", repeat_text_occurrences_count: "occurrences", repeat_radio_end2: "After", repeat_radio_end3: "End by", repeat_never: "Never", repeat_daily: "Every day", repeat_workdays: "Every weekday", repeat_weekly: "Every week", repeat_monthly: "Every month", repeat_yearly: "Every year", repeat_custom: "Custom", repeat_freq_day: "Day", repeat_freq_week: "Week", repeat_freq_month: "Month", repeat_freq_year: "Year", repeat_on_date: "On date", repeat_ends: "Ends", month_for_recurring: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], day_for_recurring: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] } };
8881
- const es = { date: { month_full: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], month_short: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], day_full: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"], day_short: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"] }, labels: { dhx_cal_today_button: "Hoy", day_tab: "Día", week_tab: "Semana", month_tab: "Mes", new_event: "Nuevo evento", icon_save: "Guardar", icon_cancel: "Cancelar", icon_details: "Detalles", icon_edit: "Editar", icon_delete: "Eliminar", confirm_closing: "", confirm_deleting: "El evento se borrará definitivamente, ¿continuar?", section_description: "Descripción", section_time: "Período", full_day: "Todo el día", confirm_recurring: "¿Desea modificar el conjunto de eventos repetidos?", section_recurring: "Repita el evento", button_recurring: "Impedido", button_recurring_open: "Permitido", button_edit_series: "Editar la serie", button_edit_occurrence: "Editar este evento", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Día", date: "Fecha", description: "Descripción", year_tab: "Año", week_agenda_tab: "Día", grid_tab: "Reja", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diariamente", repeat_radio_week: "Semanalmente", repeat_radio_month: "Mensualmente", repeat_radio_year: "Anualmente", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia", repeat_radio_day_type2: "Cada jornada de trabajo", repeat_week: " Repetir cada", repeat_text_week_count: "semana:", repeat_radio_month_type: "Repita", repeat_radio_month_start: "El", repeat_text_month_day: "dia cada ", repeat_text_month_count: "mes", repeat_text_month_count2_before: "cada", repeat_text_month_count2_after: "mes", repeat_year_label: "El", select_year_day2: "del", repeat_text_year_day: "dia", select_year_month: "mes", repeat_radio_end: "Sin fecha de finalización", repeat_text_occurrences_count: "ocurrencias", repeat_radio_end3: "Fin", repeat_radio_end2: "Después de", repeat_never: "Nunca", repeat_daily: "Cada día", repeat_workdays: "Cada día laborable", repeat_weekly: "Cada semana", repeat_monthly: "Cada mes", repeat_yearly: "Cada año", repeat_custom: "Personalizado", repeat_freq_day: "Día", repeat_freq_week: "Semana", repeat_freq_month: "Mes", repeat_freq_year: "Año", repeat_on_date: "En la fecha", repeat_ends: "Termina", month_for_recurring: ["Enero", "Febrero", "Маrzo", "Аbril", "Mayo", "Junio", "Julio", "Аgosto", "Setiembre", "Octubre", "Noviembre", "Diciembre"], day_for_recurring: ["Domingo", "Lunes", "Martes", "Miércoles", "Jeuves", "Viernes", "Sabado"] } };
8882
- const fi = { date: { month_full: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], month_short: ["Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou"], day_full: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"], day_short: ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"] }, labels: { dhx_cal_today_button: "Tänään", day_tab: "Päivä", week_tab: "Viikko", month_tab: "Kuukausi", new_event: "Uusi tapahtuma", icon_save: "Tallenna", icon_cancel: "Peru", icon_details: "Tiedot", icon_edit: "Muokkaa", icon_delete: "Poista", confirm_closing: "", confirm_deleting: "Haluatko varmasti poistaa tapahtuman?", section_description: "Kuvaus", section_time: "Aikajakso", full_day: "Koko päivä", confirm_recurring: "Haluatko varmasti muokata toistuvan tapahtuman kaikkia jaksoja?", section_recurring: "Toista tapahtuma", button_recurring: "Ei k&auml;yt&ouml;ss&auml;", button_recurring_open: "K&auml;yt&ouml;ss&auml;", button_edit_series: "Muokkaa sarja", button_edit_occurrence: "Muokkaa kopio", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Esityslista", date: "Päivämäärä", description: "Kuvaus", year_tab: "Vuoden", week_agenda_tab: "Esityslista", grid_tab: "Ritilä", drag_to_create: "Luo uusi vetämällä", drag_to_move: "Siirrä vetämällä", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "P&auml;ivitt&auml;in", repeat_radio_week: "Viikoittain", repeat_radio_month: "Kuukausittain", repeat_radio_year: "Vuosittain", repeat_radio_day_type: "Joka", repeat_text_day_count: "p&auml;iv&auml;", repeat_radio_day_type2: "Joka arkip&auml;iv&auml;", repeat_week: "Toista joka", repeat_text_week_count: "viikko n&auml;in&auml; p&auml;ivin&auml;:", repeat_radio_month_type: "Toista", repeat_radio_month_start: "", repeat_text_month_day: "p&auml;iv&auml;n&auml; joka", repeat_text_month_count: "kuukausi", repeat_text_month_count2_before: "joka", repeat_text_month_count2_after: "kuukausi", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "p&auml;iv&auml;", select_year_month: "kuukausi", repeat_radio_end: "Ei loppumisaikaa", repeat_text_occurrences_count: "Toiston j&auml;lkeen", repeat_radio_end3: "Loppuu", repeat_radio_end2: "", repeat_never: "Ei koskaan", repeat_daily: "Joka päivä", repeat_workdays: "Joka arkipäivä", repeat_weekly: "Joka viikko", repeat_monthly: "Joka kuukausi", repeat_yearly: "Joka vuosi", repeat_custom: "Mukautettu", repeat_freq_day: "Päivä", repeat_freq_week: "Viikko", repeat_freq_month: "Kuukausi", repeat_freq_year: "Vuosi", repeat_on_date: "Tiettynä päivänä", repeat_ends: "Päättyy", month_for_recurring: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], day_for_recurring: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"] } };
8883
- const fr = { date: { month_full: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], month_short: ["Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil", "Aoû", "Sep", "Oct", "Nov", "Déc"], day_full: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"], day_short: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"] }, labels: { dhx_cal_today_button: "Aujourd'hui", day_tab: "Jour", week_tab: "Semaine", month_tab: "Mois", new_event: "Nouvel événement", icon_save: "Enregistrer", icon_cancel: "Annuler", icon_details: "Détails", icon_edit: "Modifier", icon_delete: "Effacer", confirm_closing: "", confirm_deleting: "L'événement sera effacé sans appel, êtes-vous sûr ?", section_description: "Description", section_time: "Période", full_day: "Journée complète", confirm_recurring: "Voulez-vous éditer toute une série d'évènements répétés?", section_recurring: "Périodicité", button_recurring: "Désactivé", button_recurring_open: "Activé", button_edit_series: "Modifier la série", button_edit_occurrence: "Modifier une copie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Jour", date: "Date", description: "Description", year_tab: "Année", week_agenda_tab: "Jour", grid_tab: "Grille", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Quotidienne", repeat_radio_week: "Hebdomadaire", repeat_radio_month: "Mensuelle", repeat_radio_year: "Annuelle", repeat_radio_day_type: "Chaque", repeat_text_day_count: "jour", repeat_radio_day_type2: "Chaque journée de travail", repeat_week: " Répéter toutes les", repeat_text_week_count: "semaine:", repeat_radio_month_type: "Répéter", repeat_radio_month_start: "Le", repeat_text_month_day: "jour chaque", repeat_text_month_count: "mois", repeat_text_month_count2_before: "chaque", repeat_text_month_count2_after: "mois", repeat_year_label: "Le", select_year_day2: "du", repeat_text_year_day: "jour", select_year_month: "mois", repeat_radio_end: "Pas de date d&quot;achèvement", repeat_text_occurrences_count: "occurrences", repeat_radio_end3: "Fin", repeat_radio_end2: "Après", repeat_never: "Jamais", repeat_daily: "Chaque jour", repeat_workdays: "Chaque jour ouvrable", repeat_weekly: "Chaque semaine", repeat_monthly: "Chaque mois", repeat_yearly: "Chaque année", repeat_custom: "Personnalisé", repeat_freq_day: "Jour", repeat_freq_week: "Semaine", repeat_freq_month: "Mois", repeat_freq_year: "Année", repeat_on_date: "À la date", repeat_ends: "Se termine", month_for_recurring: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], day_for_recurring: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"] } };
8884
- const he = { date: { month_full: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], month_short: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"], day_full: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"], day_short: ["א", "ב", "ג", "ד", "ה", "ו", "ש"] }, labels: { dhx_cal_today_button: "היום", day_tab: "יום", week_tab: "שבוע", month_tab: "חודש", new_event: "ארוע חדש", icon_save: "שמור", icon_cancel: "בטל", icon_details: "פרטים", icon_edit: "ערוך", icon_delete: "מחק", confirm_closing: "", confirm_deleting: "ארוע ימחק סופית.להמשיך?", section_description: "תיאור", section_time: "תקופה", confirm_recurring: "האם ברצונך לשנות כל סדרת ארועים מתמשכים?", section_recurring: "להעתיק ארוע", button_recurring: "לא פעיל", button_recurring_open: "פעיל", full_day: "יום שלם", button_edit_series: "ערוך את הסדרה", button_edit_occurrence: "עריכת עותק", button_edit_occurrence_and_following: "This and following events", agenda_tab: "סדר יום", date: "תאריך", description: "תיאור", year_tab: "לשנה", week_agenda_tab: "סדר יום", grid_tab: "סורג", drag_to_create: "Drag to create", drag_to_move: "גרור כדי להזיז", message_ok: "OK", message_cancel: "בטל", next: "הבא", prev: "הקודם", year: "שנה", month: "חודש", day: "יום", hour: "שעה", minute: "דקה", repeat_radio_day: "יומי", repeat_radio_week: "שבועי", repeat_radio_month: "חודשי", repeat_radio_year: "שנתי", repeat_radio_day_type: "חזור כל", repeat_text_day_count: "ימים", repeat_radio_day_type2: "חזור כל יום עבודה", repeat_week: " חזור כל", repeat_text_week_count: "שבוע לפי ימים:", repeat_radio_month_type: "חזור כל", repeat_radio_month_start: "כל", repeat_text_month_day: "ימים כל", repeat_text_month_count: "חודשים", repeat_text_month_count2_before: "חזור כל", repeat_text_month_count2_after: "חודש", repeat_year_label: "כל", select_year_day2: "בחודש", repeat_text_year_day: "ימים", select_year_month: "חודש", repeat_radio_end: "לעולם לא מסתיים", repeat_text_occurrences_count: "אירועים", repeat_radio_end3: "מסתיים ב", repeat_radio_end2: "אחרי", repeat_never: "אף פעם", repeat_daily: "כל יום", repeat_workdays: "כל יום עבודה", repeat_weekly: "כל שבוע", repeat_monthly: "כל חודש", repeat_yearly: "כל שנה", repeat_custom: "מותאם אישית", repeat_freq_day: "יום", repeat_freq_week: "שבוע", repeat_freq_month: "חודש", repeat_freq_year: "שנה", repeat_on_date: "בתאריך", repeat_ends: "מסתיים", month_for_recurring: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], day_for_recurring: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"] } };
8885
- const hu = { date: { month_full: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], month_short: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Vasárnap", "Hétfõ", "Kedd", "Szerda", "Csütörtök", "Péntek", "szombat"], day_short: ["Va", "Hé", "Ke", "Sze", "Csü", "Pé", "Szo"] }, labels: { dhx_cal_today_button: "Ma", day_tab: "Nap", week_tab: "Hét", month_tab: "Hónap", new_event: "Új esemény", icon_save: "Mentés", icon_cancel: "Mégse", icon_details: "Részletek", icon_edit: "Szerkesztés", icon_delete: "Törlés", confirm_closing: "", confirm_deleting: "Az esemény törölve lesz, biztosan folytatja?", section_description: "Leírás", section_time: "Idõszak", full_day: "Egesz napos", confirm_recurring: "Biztosan szerkeszteni akarod az összes ismétlõdõ esemény beállítását?", section_recurring: "Esemény ismétlése", button_recurring: "Tiltás", button_recurring_open: "Engedélyezés", button_edit_series: "Edit series", button_edit_occurrence: "Szerkesztés bíróság", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Napirend", date: "Dátum", description: "Leírás", year_tab: "Év", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Napi", repeat_radio_week: "Heti", repeat_radio_month: "Havi", repeat_radio_year: "Éves", repeat_radio_day_type: "Minden", repeat_text_day_count: "nap", repeat_radio_day_type2: "Minden munkanap", repeat_week: " Ismételje meg minden", repeat_text_week_count: "héten a következő napokon:", repeat_radio_month_type: "Ismétlés", repeat_radio_month_start: "Ekkor", repeat_text_month_day: "nap minden", repeat_text_month_count: "hónapban", repeat_text_month_count2_before: "minden", repeat_text_month_count2_after: "hónapban", repeat_year_label: "Ekkor", select_year_day2: "-án/-én", repeat_text_year_day: "nap", select_year_month: "hónap", repeat_radio_end: "Nincs befejezési dátum", repeat_text_occurrences_count: "esemény", repeat_radio_end2: "Után", repeat_radio_end3: "Befejező dátum", repeat_never: "Soha", repeat_daily: "Minden nap", repeat_workdays: "Minden munkanap", repeat_weekly: "Minden héten", repeat_monthly: "Minden hónapban", repeat_yearly: "Minden évben", repeat_custom: "Egyedi", repeat_freq_day: "Nap", repeat_freq_week: "Hét", repeat_freq_month: "Hónap", repeat_freq_year: "Év", repeat_on_date: "Dátum szerint", repeat_ends: "Befejeződik", month_for_recurring: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], day_for_recurring: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat"] } };
8886
- const id = { date: { month_full: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], month_short: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"], day_full: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], day_short: ["Ming", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"] }, labels: { dhx_cal_today_button: "Hari Ini", day_tab: "Hari", week_tab: "Minggu", month_tab: "Bulan", new_event: "Acara Baru", icon_save: "Simpan", icon_cancel: "Batal", icon_details: "Detail", icon_edit: "Edit", icon_delete: "Hapus", confirm_closing: "", confirm_deleting: "Acara akan dihapus", section_description: "Keterangan", section_time: "Periode", full_day: "Hari penuh", confirm_recurring: "Apakah acara ini akan berulang?", section_recurring: "Acara Rutin", button_recurring: "Tidak Difungsikan", button_recurring_open: "Difungsikan", button_edit_series: "Mengedit seri", button_edit_occurrence: "Mengedit salinan", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Tanggal", description: "Keterangan", year_tab: "Tahun", week_agenda_tab: "Agenda", grid_tab: "Tabel", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Harian", repeat_radio_week: "Mingguan", repeat_radio_month: "Bulanan", repeat_radio_year: "Tahunan", repeat_radio_day_type: "Setiap", repeat_text_day_count: "hari", repeat_radio_day_type2: "Setiap hari kerja", repeat_week: " Ulangi setiap", repeat_text_week_count: "minggu pada hari berikut:", repeat_radio_month_type: "Ulangi", repeat_radio_month_start: "Pada", repeat_text_month_day: "hari setiap", repeat_text_month_count: "bulan", repeat_text_month_count2_before: "setiap", repeat_text_month_count2_after: "bulan", repeat_year_label: "Pada", select_year_day2: "dari", repeat_text_year_day: "hari", select_year_month: "bulan", repeat_radio_end: "Tanpa tanggal akhir", repeat_text_occurrences_count: "kejadian", repeat_radio_end2: "Setelah", repeat_radio_end3: "Berakhir pada", repeat_never: "Tidak pernah", repeat_daily: "Setiap hari", repeat_workdays: "Setiap hari kerja", repeat_weekly: "Setiap minggu", repeat_monthly: "Setiap bulan", repeat_yearly: "Setiap tahun", repeat_custom: "Kustom", repeat_freq_day: "Hari", repeat_freq_week: "Minggu", repeat_freq_month: "Bulan", repeat_freq_year: "Tahun", repeat_on_date: "Pada tanggal", repeat_ends: "Berakhir", month_for_recurring: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], day_for_recurring: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"] } };
8887
- const it = { date: { month_full: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], month_short: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"], day_full: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"], day_short: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"] }, labels: { dhx_cal_today_button: "Oggi", day_tab: "Giorno", week_tab: "Settimana", month_tab: "Mese", new_event: "Nuovo evento", icon_save: "Salva", icon_cancel: "Chiudi", icon_details: "Dettagli", icon_edit: "Modifica", icon_delete: "Elimina", confirm_closing: "", confirm_deleting: "L'evento sarà eliminato, siete sicuri?", section_description: "Descrizione", section_time: "Periodo di tempo", full_day: "Intera giornata", confirm_recurring: "Vuoi modificare l'intera serie di eventi?", section_recurring: "Ripetere l'evento", button_recurring: "Disattivato", button_recurring_open: "Attivato", button_edit_series: "Modificare la serie", button_edit_occurrence: "Modificare una copia", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Descrizione", year_tab: "Anno", week_agenda_tab: "Agenda", grid_tab: "Griglia", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Quotidiano", repeat_radio_week: "Settimanale", repeat_radio_month: "Mensile", repeat_radio_year: "Annuale", repeat_radio_day_type: "Ogni", repeat_text_day_count: "giorno", repeat_radio_day_type2: "Ogni giornata lavorativa", repeat_week: " Ripetere ogni", repeat_text_week_count: "settimana:", repeat_radio_month_type: "Ripetere", repeat_radio_month_start: "Il", repeat_text_month_day: "giorno ogni", repeat_text_month_count: "mese", repeat_text_month_count2_before: "ogni", repeat_text_month_count2_after: "mese", repeat_year_label: "Il", select_year_day2: "del", repeat_text_year_day: "giorno", select_year_month: "mese", repeat_radio_end: "Senza data finale", repeat_text_occurrences_count: "occorenze", repeat_radio_end3: "Fine", repeat_radio_end2: "Dopo", repeat_never: "Mai", repeat_daily: "Ogni giorno", repeat_workdays: "Ogni giorno feriale", repeat_weekly: "Ogni settimana", repeat_monthly: "Ogni mese", repeat_yearly: "Ogni anno", repeat_custom: "Personalizzato", repeat_freq_day: "Giorno", repeat_freq_week: "Settimana", repeat_freq_month: "Mese", repeat_freq_year: "Anno", repeat_on_date: "Alla data", repeat_ends: "Finisce", month_for_recurring: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Jiugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], day_for_recurring: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Jovedì", "Venerdì", "Sabato"] } };
8888
- const jp = { date: { month_full: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], month_short: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_full: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"], day_short: ["日", "月", "火", "水", "木", "金", "土"] }, labels: { dhx_cal_today_button: "今日", day_tab: "日", week_tab: "週", month_tab: "月", new_event: "新イベント", icon_save: "保存", icon_cancel: "キャンセル", icon_details: "詳細", icon_edit: "編集", icon_delete: "削除", confirm_closing: "", confirm_deleting: "イベント完全に削除されます、宜しいですか?", section_description: "デスクリプション", section_time: "期間", confirm_recurring: "繰り返されているイベントを全て編集しますか?", section_recurring: "イベントを繰り返す", button_recurring: "無効", button_recurring_open: "有効", full_day: "終日", button_edit_series: "シリーズを編集します", button_edit_occurrence: "コピーを編集", button_edit_occurrence_and_following: "This and following events", agenda_tab: "議題は", date: "日付", description: "説明", year_tab: "今年", week_agenda_tab: "議題は", grid_tab: "グリッド", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "毎日", repeat_radio_week: "毎週", repeat_radio_month: "毎月", repeat_radio_year: "毎年", repeat_radio_day_type: "毎", repeat_text_day_count: "日", repeat_radio_day_type2: "毎営業日", repeat_week: " 繰り返し毎", repeat_text_week_count: "週 次の日:", repeat_radio_month_type: "繰り返し", repeat_radio_month_start: "オン", repeat_text_month_day: "日毎", repeat_text_month_count: "月", repeat_text_month_count2_before: "毎", repeat_text_month_count2_after: "月", repeat_year_label: "オン", select_year_day2: "の", repeat_text_year_day: "日", select_year_month: "月", repeat_radio_end: "終了日なし", repeat_text_occurrences_count: "回数", repeat_radio_end2: "後", repeat_radio_end3: "終了日まで", repeat_never: "決して", repeat_daily: "毎日", repeat_workdays: "毎営業日", repeat_weekly: "毎週", repeat_monthly: "毎月", repeat_yearly: "毎年", repeat_custom: "カスタム", repeat_freq_day: "日", repeat_freq_week: "週", repeat_freq_month: "月", repeat_freq_year: "年", repeat_on_date: "日にち", repeat_ends: "終了", month_for_recurring: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_for_recurring: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"] } };
8889
8890
  class LocaleManager {
8890
8891
  constructor(config) {
8891
8892
  this._locales = {};
@@ -8900,20 +8901,38 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
8900
8901
  return this._locales[name];
8901
8902
  }
8902
8903
  }
8903
- const nb = { date: { month_full: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], month_short: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], day_full: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], day_short: ["Søn", "Mon", "Tir", "Ons", "Tor", "Fre", "Lør"] }, labels: { dhx_cal_today_button: "I dag", day_tab: "Dag", week_tab: "Uke", month_tab: "Måned", new_event: "Ny hendelse", icon_save: "Lagre", icon_cancel: "Avbryt", icon_details: "Detaljer", icon_edit: "Rediger", icon_delete: "Slett", confirm_closing: "", confirm_deleting: "Hendelsen vil bli slettet permanent. Er du sikker?", section_description: "Beskrivelse", section_time: "Tidsperiode", confirm_recurring: "Vil du forandre hele dette settet av repeterende hendelser?", section_recurring: "Repeter hendelsen", button_recurring: "Av", button_recurring_open: "", button_edit_series: "Rediger serien", button_edit_occurrence: "Redigere en kopi", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Dato", description: "Beskrivelse", year_tab: "År", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daglig", repeat_radio_week: "Ukentlig", repeat_radio_month: "Månedlig", repeat_radio_year: "Årlig", repeat_radio_day_type: "Hver", repeat_text_day_count: "dag", repeat_radio_day_type2: "Alle hverdager", repeat_week: " Gjentas hver", repeat_text_week_count: "uke på:", repeat_radio_month_type: "På hver", repeat_radio_month_start: "", repeat_text_month_day: "dag hver", repeat_text_month_count: "måned", repeat_text_month_count2_before: "hver", repeat_text_month_count2_after: "måned", repeat_year_label: "", select_year_day2: "i", repeat_text_year_day: "dag i", select_year_month: "", repeat_radio_end: "Ingen sluttdato", repeat_text_occurrences_count: "forekomst", repeat_radio_end3: "Stop den", repeat_radio_end2: "Etter", repeat_never: "Aldri", repeat_daily: "Hver dag", repeat_workdays: "Hver ukedag", repeat_weekly: "Hver uke", repeat_monthly: "Hver måned", repeat_yearly: "Hvert år", repeat_custom: "Tilpasset", repeat_freq_day: "Dag", repeat_freq_week: "Uke", repeat_freq_month: "Måned", repeat_freq_year: "År", repeat_on_date: " dato", repeat_ends: "Slutter", month_for_recurring: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], day_for_recurring: ["Sondag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] } };
8904
- const nl = { date: { month_full: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"], day_short: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"] }, labels: { dhx_cal_today_button: "Vandaag", day_tab: "Dag", week_tab: "Week", month_tab: "Maand", new_event: "Nieuw item", icon_save: "Opslaan", icon_cancel: "Annuleren", icon_details: "Details", icon_edit: "Bewerken", icon_delete: "Verwijderen", confirm_closing: "", confirm_deleting: "Item zal permanent worden verwijderd, doorgaan?", section_description: "Beschrijving", section_time: "Tijd periode", full_day: "Hele dag", confirm_recurring: "Wilt u alle terugkerende items bijwerken?", section_recurring: "Item herhalen", button_recurring: "Uit", button_recurring_open: "Aan", button_edit_series: "Bewerk de serie", button_edit_occurrence: "Bewerk een kopie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Datum", description: "Omschrijving", year_tab: "Jaar", week_agenda_tab: "Agenda", grid_tab: "Tabel", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Dagelijks", repeat_radio_week: "Wekelijks", repeat_radio_month: "Maandelijks", repeat_radio_year: "Jaarlijks", repeat_radio_day_type: "Elke", repeat_text_day_count: "dag(en)", repeat_radio_day_type2: "Elke werkdag", repeat_week: " Herhaal elke", repeat_text_week_count: "week op de volgende dagen:", repeat_radio_month_type: "Herhaal", repeat_radio_month_start: "Op", repeat_text_month_day: "dag iedere", repeat_text_month_count: "maanden", repeat_text_month_count2_before: "iedere", repeat_text_month_count2_after: "maanden", repeat_year_label: "Op", select_year_day2: "van", repeat_text_year_day: "dag", select_year_month: "maand", repeat_radio_end: "Geen eind datum", repeat_text_occurrences_count: "keren", repeat_radio_end3: "Eindigd per", repeat_radio_end2: "Na", repeat_never: "Nooit", repeat_daily: "Elke dag", repeat_workdays: "Elke werkdag", repeat_weekly: "Elke week", repeat_monthly: "Elke maand", repeat_yearly: "Elk jaar", repeat_custom: "Aangepast", repeat_freq_day: "Dag", repeat_freq_week: "Week", repeat_freq_month: "Maand", repeat_freq_year: "Jaar", repeat_on_date: "Op datum", repeat_ends: "Eindigt", month_for_recurring: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"], day_for_recurring: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"] } };
8905
- const no = { date: { month_full: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], month_short: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], day_full: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], day_short: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"] }, labels: { dhx_cal_today_button: "Idag", day_tab: "Dag", week_tab: "Uke", month_tab: "Måned", new_event: "Ny", icon_save: "Lagre", icon_cancel: "Avbryt", icon_details: "Detaljer", icon_edit: "Endre", icon_delete: "Slett", confirm_closing: "Endringer blir ikke lagret, er du sikker?", confirm_deleting: "Oppføringen vil bli slettet, er du sikker?", section_description: "Beskrivelse", section_time: "Tidsperiode", full_day: "Full dag", confirm_recurring: "Vil du endre hele settet med repeterende oppføringer?", section_recurring: "Repeterende oppføring", button_recurring: "Ikke aktiv", button_recurring_open: "Aktiv", button_edit_series: "Rediger serien", button_edit_occurrence: "Redigere en kopi", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Dato", description: "Beskrivelse", year_tab: "År", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daglig", repeat_radio_week: "Ukentlig", repeat_radio_month: "Månedlig", repeat_radio_year: "Årlig", repeat_radio_day_type: "Hver", repeat_text_day_count: "dag", repeat_radio_day_type2: "Hver arbeidsdag", repeat_week: " Gjenta hver", repeat_text_week_count: "uke neste dager:", repeat_radio_month_type: "Gjenta", repeat_radio_month_start: "", repeat_text_month_day: "dag hver", repeat_text_month_count: "måned", repeat_text_month_count2_before: "hver", repeat_text_month_count2_after: "måned", repeat_year_label: "", select_year_day2: "av", repeat_text_year_day: "dag", select_year_month: "måned", repeat_radio_end: "Ingen sluttdato", repeat_text_occurrences_count: "forekomster", repeat_radio_end2: "Etter", repeat_radio_end3: "Slutt innen", repeat_never: "Aldri", repeat_daily: "Hver dag", repeat_workdays: "Hver ukedag", repeat_weekly: "Hver uke", repeat_monthly: "Hver måned", repeat_yearly: "Hvert år", repeat_custom: "Tilpasset", repeat_freq_day: "Dag", repeat_freq_week: "Uke", repeat_freq_month: "Måned", repeat_freq_year: "År", repeat_on_date: " dato", repeat_ends: "Slutter", month_for_recurring: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], day_for_recurring: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] } };
8906
- const pl = { date: { month_full: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], month_short: ["Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru"], day_full: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"], day_short: ["Nie", "Pon", "Wto", "Śro", "Czw", "Pią", "Sob"] }, labels: { dhx_cal_today_button: "Dziś", day_tab: "Dzień", week_tab: "Tydzień", month_tab: "Miesiąc", new_event: "Nowe zdarzenie", icon_save: "Zapisz", icon_cancel: "Anuluj", icon_details: "Szczegóły", icon_edit: "Edytuj", icon_delete: "Usuń", confirm_closing: "", confirm_deleting: "Zdarzenie zostanie usunięte na zawsze, kontynuować?", section_description: "Opis", section_time: "Okres czasu", full_day: "Cały dzień", confirm_recurring: "Czy chcesz edytować cały zbiór powtarzających się zdarzeń?", section_recurring: "Powtórz zdarzenie", button_recurring: "Nieaktywne", button_recurring_open: "Aktywne", button_edit_series: "Edytuj serię", button_edit_occurrence: "Edytuj kopię", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Opis", year_tab: "Rok", week_agenda_tab: "Agenda", grid_tab: "Tabela", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Codziennie", repeat_radio_week: "Co tydzie", repeat_radio_month: "Co miesic", repeat_radio_year: "Co rok", repeat_radio_day_type: "Kadego", repeat_text_day_count: "dnia", repeat_radio_day_type2: "Kadego dnia roboczego", repeat_week: " Powtarzaj kadego", repeat_text_week_count: "tygodnia w dni:", repeat_radio_month_type: "Powtrz", repeat_radio_month_start: "W", repeat_text_month_day: "dnia kadego", repeat_text_month_count: "miesica", repeat_text_month_count2_before: "kadego", repeat_text_month_count2_after: "miesica", repeat_year_label: "W", select_year_day2: "miesica", repeat_text_year_day: "dnia miesica", select_year_month: "", repeat_radio_end: "Bez daty kocowej", repeat_text_occurrences_count: "wystpieniu/ach", repeat_radio_end3: "Zakocz w", repeat_radio_end2: "Po", repeat_never: "Nigdy", repeat_daily: "Codziennie", repeat_workdays: "Każdy dzień roboczy", repeat_weekly: "Co tydzień", repeat_monthly: "Co miesiąc", repeat_yearly: "Co rok", repeat_custom: "Niestandardowy", repeat_freq_day: "Dzień", repeat_freq_week: "Tydzień", repeat_freq_month: "Miesiąc", repeat_freq_year: "Rok", repeat_on_date: "W dniu", repeat_ends: "Kończy się", month_for_recurring: ["Stycznia", "Lutego", "Marca", "Kwietnia", "Maja", "Czerwca", "Lipca", "Sierpnia", "Wrzenia", "Padziernka", "Listopada", "Grudnia"], day_for_recurring: ["Niedziela", "Poniedziaek", "Wtorek", "roda", "Czwartek", "Pitek", "Sobota"] } };
8907
- const pt = { date: { month_full: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], month_short: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], day_full: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"], day_short: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"] }, labels: { dhx_cal_today_button: "Hoje", day_tab: "Dia", week_tab: "Semana", month_tab: "Mês", new_event: "Novo evento", icon_save: "Salvar", icon_cancel: "Cancelar", icon_details: "Detalhes", icon_edit: "Editar", icon_delete: "Deletar", confirm_closing: "", confirm_deleting: "Tem certeza que deseja excluir?", section_description: "Descrição", section_time: "Período de tempo", full_day: "Dia inteiro", confirm_recurring: "Deseja editar todos esses eventos repetidos?", section_recurring: "Repetir evento", button_recurring: "Desabilitar", button_recurring_open: "Habilitar", button_edit_series: "Editar a série", button_edit_occurrence: "Editar uma cópia", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Dia", date: "Data", description: "Descrição", year_tab: "Ano", week_agenda_tab: "Dia", grid_tab: "Grade", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diário", repeat_radio_week: "Semanal", repeat_radio_month: "Mensal", repeat_radio_year: "Anual", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia(s)", repeat_radio_day_type2: "Cada trabalho diário", repeat_week: " Repita cada", repeat_text_week_count: "semana:", repeat_radio_month_type: "Repetir", repeat_radio_month_start: "Em", repeat_text_month_day: "todo dia", repeat_text_month_count: "mês", repeat_text_month_count2_before: "todo", repeat_text_month_count2_after: "mês", repeat_year_label: "Em", select_year_day2: "of", repeat_text_year_day: "dia", select_year_month: "mês", repeat_radio_end: "Sem data final", repeat_text_occurrences_count: "ocorrências", repeat_radio_end3: "Fim", repeat_radio_end2: "Depois", repeat_never: "Nunca", repeat_daily: "Todos os dias", repeat_workdays: "Todos os dias úteis", repeat_weekly: "Toda semana", repeat_monthly: "Todo mês", repeat_yearly: "Todo ano", repeat_custom: "Personalizado", repeat_freq_day: "Dia", repeat_freq_week: "Semana", repeat_freq_month: "Mês", repeat_freq_year: "Ano", repeat_on_date: "Na data", repeat_ends: "Termina", month_for_recurring: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], day_for_recurring: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"] } };
8908
- const ro = { date: { month_full: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "November", "December"], month_short: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"], day_full: ["Duminica", "Luni", "Marti", "Miercuri", "Joi", "Vineri", "Sambata"], day_short: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sa"] }, labels: { dhx_cal_today_button: "Astazi", day_tab: "Zi", week_tab: "Saptamana", month_tab: "Luna", new_event: "Eveniment nou", icon_save: "Salveaza", icon_cancel: "Anuleaza", icon_details: "Detalii", icon_edit: "Editeaza", icon_delete: "Sterge", confirm_closing: "Schimbarile nu vor fi salvate, esti sigur?", confirm_deleting: "Evenimentul va fi sters permanent, esti sigur?", section_description: "Descriere", section_time: "Interval", full_day: "Toata ziua", confirm_recurring: "Vrei sa editezi toata seria de evenimente repetate?", section_recurring: "Repetare", button_recurring: "Dezactivata", button_recurring_open: "Activata", button_edit_series: "Editeaza serie", button_edit_occurrence: "Editeaza doar intrare", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Descriere", year_tab: "An", week_agenda_tab: "Agenda", grid_tab: "Lista", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Zilnic", repeat_radio_week: "Saptamanal", repeat_radio_month: "Lunar", repeat_radio_year: "Anual", repeat_radio_day_type: "La fiecare", repeat_text_day_count: "zi(le)", repeat_radio_day_type2: "Fiecare zi lucratoare", repeat_week: " Repeta la fiecare", repeat_text_week_count: "saptamana in urmatoarele zile:", repeat_radio_month_type: "Repeta in", repeat_radio_month_start: "In a", repeat_text_month_day: "zi la fiecare", repeat_text_month_count: "luni", repeat_text_month_count2_before: "la fiecare", repeat_text_month_count2_after: "luni", repeat_year_label: "In", select_year_day2: "a lunii", repeat_text_year_day: "zi a lunii", select_year_month: "", repeat_radio_end: "Fara data de sfarsit", repeat_text_occurrences_count: "evenimente", repeat_radio_end3: "La data", repeat_radio_end2: "Dupa", repeat_never: "Niciodată", repeat_daily: "În fiecare zi", repeat_workdays: "În fiecare zi lucrătoare", repeat_weekly: "În fiecare săptămână", repeat_monthly: "În fiecare lună", repeat_yearly: "În fiecare an", repeat_custom: "Personalizat", repeat_freq_day: "Zi", repeat_freq_week: "Săptămână", repeat_freq_month: "Lună", repeat_freq_year: "An", repeat_on_date: "La data", repeat_ends: "Se termină", month_for_recurring: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"], day_for_recurring: ["Duminica", "Luni", "Marti", "Miercuri", "Joi", "Vineri", "Sambata"] } };
8909
- const ru = { date: { month_full: ["Январь", "Февраль", "Март", "Апрель", "Maй", "Июнь", "Июль", "Август", "Сентябрь", "Oктябрь", "Ноябрь", "Декабрь"], month_short: ["Янв", "Фев", "Maр", "Aпр", "Maй", "Июн", "Июл", "Aвг", "Сен", "Окт", "Ноя", "Дек"], day_full: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"], day_short: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"] }, labels: { dhx_cal_today_button: "Сегодня", day_tab: "День", week_tab: "Неделя", month_tab: "Месяц", new_event: "Новое событие", icon_save: "Сохранить", icon_cancel: "Отменить", icon_details: "Детали", icon_edit: "Изменить", icon_delete: "Удалить", confirm_closing: "", confirm_deleting: "Событие будет удалено безвозвратно, продолжить?", section_description: "Описание", section_time: "Период времени", full_day: "Весь день", confirm_recurring: "Вы хотите изменить всю серию повторяющихся событий?", section_recurring: "Повторение", button_recurring: "Отключено", button_recurring_open: "Включено", button_edit_series: "Редактировать серию", button_edit_occurrence: "Редактировать экземпляр", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Список", date: "Дата", description: "Описание", year_tab: "Год", week_agenda_tab: "Список", grid_tab: "Таблица", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "День", repeat_radio_week: "Неделя", repeat_radio_month: "Месяц", repeat_radio_year: "Год", repeat_radio_day_type: "Каждый", repeat_text_day_count: "день", repeat_radio_day_type2: "Каждый рабочий день", repeat_week: " Повторять каждую", repeat_text_week_count: "неделю , в:", repeat_radio_month_type: "Повторять", repeat_radio_month_start: "", repeat_text_month_day: " числа каждый ", repeat_text_month_count: "месяц", repeat_text_month_count2_before: "каждый ", repeat_text_month_count2_after: "месяц", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "день", select_year_month: "", repeat_radio_end: "Без даты окончания", repeat_text_occurrences_count: "повторений", repeat_radio_end3: "До ", repeat_radio_end2: "", repeat_never: "Никогда", repeat_daily: "Каждый день", repeat_workdays: "Каждый будний день", repeat_weekly: "Каждую неделю", repeat_monthly: "Каждый месяц", repeat_yearly: "Каждый год", repeat_custom: "Настроить", repeat_freq_day: "День", repeat_freq_week: "Неделя", repeat_freq_month: "Месяц", repeat_freq_year: "Год", repeat_on_date: "В дату", repeat_ends: "Заканчивается", month_for_recurring: ["Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря"], day_for_recurring: ["Воскресенье", "Понедельник", "Вторник", "Среду", "Четверг", "Пятницу", "Субботу"] } };
8910
- const si = { date: { month_full: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"], day_short: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"] }, labels: { dhx_cal_today_button: "Danes", day_tab: "Dan", week_tab: "Teden", month_tab: "Mesec", new_event: "Nov dogodek", icon_save: "Shrani", icon_cancel: "Prekliči", icon_details: "Podrobnosti", icon_edit: "Uredi", icon_delete: "Izbriši", confirm_closing: "", confirm_deleting: "Dogodek bo izbrisan. Želite nadaljevati?", section_description: "Opis", section_time: "Časovni okvir", full_day: "Ves dan", confirm_recurring: "Želite urediti celoten set ponavljajočih dogodkov?", section_recurring: "Ponovi dogodek", button_recurring: "Onemogočeno", button_recurring_open: "Omogočeno", button_edit_series: "Edit series", button_edit_occurrence: "Edit occurrence", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Zadeva", date: "Datum", description: "Opis", year_tab: "Leto", week_agenda_tab: "Zadeva", grid_tab: "Miza", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Dnevno", repeat_radio_week: "Tedensko", repeat_radio_month: "Mesečno", repeat_radio_year: "Letno", repeat_radio_day_type: "Vsak", repeat_text_day_count: "dan", repeat_radio_day_type2: "Vsak delovni dan", repeat_week: " Ponavljaj vsak", repeat_text_week_count: "teden na naslednje dni:", repeat_radio_month_type: "Ponavljaj", repeat_radio_month_start: "Na", repeat_text_month_day: "dan vsak", repeat_text_month_count: "mesec", repeat_text_month_count2_before: "vsak", repeat_text_month_count2_after: "mesec", repeat_year_label: "Na", select_year_day2: "od", repeat_text_year_day: "dan", select_year_month: "mesec", repeat_radio_end: "Brez končnega datuma", repeat_text_occurrences_count: "pojavitve", repeat_radio_end2: "Po", repeat_radio_end3: "Končaj do", repeat_never: "Nikoli", repeat_daily: "Vsak dan", repeat_workdays: "Vsak delovni dan", repeat_weekly: "Vsak teden", repeat_monthly: "Vsak mesec", repeat_yearly: "Vsako leto", repeat_custom: "Po meri", repeat_freq_day: "Dan", repeat_freq_week: "Teden", repeat_freq_month: "Mesec", repeat_freq_year: "Leto", repeat_on_date: "Na datum", repeat_ends: "Konča se", month_for_recurring: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], day_for_recurring: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"] } };
8911
- const sk = { date: { month_full: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sept", "Okt", "Nov", "Dec"], day_full: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"], day_short: ["Ne", "Po", "Ut", "St", "Št", "Pi", "So"] }, labels: { dhx_cal_today_button: "Dnes", day_tab: "Deň", week_tab: "Týždeň", month_tab: "Mesiac", new_event: "Nová udalosť", icon_save: "Uložiť", icon_cancel: "Späť", icon_details: "Detail", icon_edit: "Edituj", icon_delete: "Zmazať", confirm_closing: "Vaše zmeny nebudú uložené. Skutočne?", confirm_deleting: "Udalosť bude natrvalo vymazaná. Skutočne?", section_description: "Poznámky", section_time: "Doba platnosti", confirm_recurring: "Prajete si upraviť celú radu opakovaných udalostí?", section_recurring: "Opakovanie udalosti", button_recurring: "Vypnuté", button_recurring_open: "Zapnuté", button_edit_series: "Upraviť opakovania", button_edit_occurrence: "Upraviť inštancie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Program", date: "Dátum", description: "Poznámka", year_tab: "Rok", full_day: "Celý deň", week_agenda_tab: "Program", grid_tab: "Mriežka", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Denne", repeat_radio_week: "Týždenne", repeat_radio_month: "Mesaène", repeat_radio_year: "Roène", repeat_radio_day_type: "Každý", repeat_text_day_count: "deò", repeat_radio_day_type2: "Každý prac. deò", repeat_week: "Opakova každý", repeat_text_week_count: "týždeò v dòoch:", repeat_radio_month_type: "Opakova", repeat_radio_month_start: "On", repeat_text_month_day: "deò každý", repeat_text_month_count: "mesiac", repeat_text_month_count2_before: "každý", repeat_text_month_count2_after: "mesiac", repeat_year_label: "On", select_year_day2: "poèas", repeat_text_year_day: "deò", select_year_month: "mesiac", repeat_radio_end: "Bez dátumu ukonèenia", repeat_text_occurrences_count: "udalostiach", repeat_radio_end3: "Ukonèi", repeat_radio_end2: "Po", repeat_never: "Nikdy", repeat_daily: "Každý deň", repeat_workdays: "Každý pracovný deň", repeat_weekly: "Každý týždeň", repeat_monthly: "Každý mesiac", repeat_yearly: "Každý rok", repeat_custom: "Vlastné", repeat_freq_day: "Deň", repeat_freq_week: "Týždeň", repeat_freq_month: "Mesiac", repeat_freq_year: "Rok", repeat_on_date: "Na dátum", repeat_ends: "Koniec", month_for_recurring: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], day_for_recurring: ["Nede¾a", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"] } };
8912
- const sv = { date: { month_full: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"], day_short: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"] }, labels: { dhx_cal_today_button: "Idag", day_tab: "Dag", week_tab: "Vecka", month_tab: "Månad", new_event: "Ny händelse", icon_save: "Spara", icon_cancel: "Ångra", icon_details: "Detaljer", icon_edit: "Ändra", icon_delete: "Ta bort", confirm_closing: "", confirm_deleting: "Är du säker att du vill ta bort händelsen permanent?", section_description: "Beskrivning", section_time: "Tid", full_day: "Hela dagen", confirm_recurring: "Vill du redigera hela serien med repeterande händelser?", section_recurring: "Upprepa händelse", button_recurring: "Inaktiverat", button_recurring_open: "Aktiverat", button_edit_series: "Redigera serien", button_edit_occurrence: "Redigera en kopia", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Dagordning", date: "Datum", description: "Beskrivning", year_tab: "År", week_agenda_tab: "Dagordning", grid_tab: "Galler", drag_to_create: "Dra för att skapa ny", drag_to_move: "Dra för att flytta", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Dagligen", repeat_radio_week: "Veckovis", repeat_radio_month: "Månadsvis", repeat_radio_year: "Årligen", repeat_radio_day_type: "Var", repeat_text_day_count: "dag", repeat_radio_day_type2: "Varje arbetsdag", repeat_week: " Upprepa var", repeat_text_week_count: "vecka dessa dagar:", repeat_radio_month_type: "Upprepa", repeat_radio_month_start: "Den", repeat_text_month_day: "dagen var", repeat_text_month_count: "månad", repeat_text_month_count2_before: "var", repeat_text_month_count2_after: "månad", repeat_year_label: "Den", select_year_day2: "i", repeat_text_year_day: "dag i", select_year_month: "månad", repeat_radio_end: "Inget slutdatum", repeat_text_occurrences_count: "upprepningar", repeat_radio_end3: "Sluta efter", repeat_radio_end2: "Efter", repeat_never: "Aldrig", repeat_daily: "Varje dag", repeat_workdays: "Varje vardag", repeat_weekly: "Varje vecka", repeat_monthly: "Varje månad", repeat_yearly: "Varje år", repeat_custom: "Anpassad", repeat_freq_day: "Dag", repeat_freq_week: "Vecka", repeat_freq_month: "Månad", repeat_freq_year: "År", repeat_on_date: " datum", repeat_ends: "Slutar", month_for_recurring: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], day_for_recurring: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"] } };
8913
- const tr = { date: { month_full: ["Ocak", "Þubat", "Mart", "Nisan", "Mayýs", "Haziran", "Temmuz", "Aðustos", "Eylül", "Ekim", "Kasým", "Aralýk"], month_short: ["Oca", "Þub", "Mar", "Nis", "May", "Haz", "Tem", "Aðu", "Eyl", "Eki", "Kas", "Ara"], day_full: ["Pazar", "Pazartes,", "Salý", "Çarþamba", "Perþembe", "Cuma", "Cumartesi"], day_short: ["Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts"] }, labels: { dhx_cal_today_button: "Bugün", day_tab: "Gün", week_tab: "Hafta", month_tab: "Ay", new_event: "Uygun", icon_save: "Kaydet", icon_cancel: "Ýptal", icon_details: "Detaylar", icon_edit: "Düzenle", icon_delete: "Sil", confirm_closing: "", confirm_deleting: "Etkinlik silinecek, devam?", section_description: "Açýklama", section_time: "Zaman aralýðý", full_day: "Tam gün", confirm_recurring: "Tüm tekrar eden etkinlikler silinecek, devam?", section_recurring: "Etkinliði tekrarla", button_recurring: "Pasif", button_recurring_open: "Aktif", button_edit_series: "Dizi düzenleme", button_edit_occurrence: "Bir kopyasını düzenleyin", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Ajanda", date: "Tarih", description: "Açýklama", year_tab: "Yýl", week_agenda_tab: "Ajanda", grid_tab: "Izgara", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Günlük", repeat_radio_week: "Haftalık", repeat_radio_month: "Aylık", repeat_radio_year: "Yıllık", repeat_radio_day_type: "Her", repeat_text_day_count: "gün", repeat_radio_day_type2: "Her iş günü", repeat_week: " Tekrar her", repeat_text_week_count: "hafta şu günlerde:", repeat_radio_month_type: "Tekrar et", repeat_radio_month_start: "Tarihinde", repeat_text_month_day: "gün her", repeat_text_month_count: "ay", repeat_text_month_count2_before: "her", repeat_text_month_count2_after: "ay", repeat_year_label: "Tarihinde", select_year_day2: "ayın", repeat_text_year_day: "günü", select_year_month: "ay", repeat_radio_end: "Bitiş tarihi yok", repeat_text_occurrences_count: "olay", repeat_radio_end2: "Sonra", repeat_radio_end3: "Tarihinde bitir", repeat_never: "Asla", repeat_daily: "Her gün", repeat_workdays: "Her iş günü", repeat_weekly: "Her hafta", repeat_monthly: "Her ay", repeat_yearly: "Her yıl", repeat_custom: "Özel", repeat_freq_day: "Gün", repeat_freq_week: "Hafta", repeat_freq_month: "Ay", repeat_freq_year: "Yıl", repeat_on_date: "Tarihinde", repeat_ends: "Biter", month_for_recurring: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], day_for_recurring: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"] } };
8914
- const ua = { date: { month_full: ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], month_short: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"], day_full: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"], day_short: ["Нед", "Пон", "Вів", "Сер", "Чет", "Птн", "Суб"] }, labels: { dhx_cal_today_button: "Сьогодні", day_tab: "День", week_tab: "Тиждень", month_tab: "Місяць", new_event: "Нова подія", icon_save: "Зберегти", icon_cancel: "Відміна", icon_details: "Деталі", icon_edit: "Редагувати", icon_delete: "Вилучити", confirm_closing: "", confirm_deleting: "Подія вилучиться назавжди. Ви впевнені?", section_description: "Опис", section_time: "Часовий проміжок", full_day: "Весь день", confirm_recurring: "Хочете редагувати весь перелік повторюваних подій?", section_recurring: "Повторювана подія", button_recurring: "Відключено", button_recurring_open: "Включено", button_edit_series: "Редагувати серію", button_edit_occurrence: "Редагувати примірник", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Перелік", date: "Дата", description: "Опис", year_tab: "Рік", week_agenda_tab: "Перелік", grid_tab: "Таблиця", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "День", repeat_radio_week: "Тиждень", repeat_radio_month: "Місяць", repeat_radio_year: "Рік", repeat_radio_day_type: "Кожний", repeat_text_day_count: "день", repeat_radio_day_type2: "Кожний робочий день", repeat_week: " Повторювати кожен", repeat_text_week_count: "тиждень , по:", repeat_radio_month_type: "Повторювати", repeat_radio_month_start: "", repeat_text_month_day: " числа кожний ", repeat_text_month_count: "місяць", repeat_text_month_count2_before: "кожен ", repeat_text_month_count2_after: "місяць", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "день", select_year_month: "", repeat_radio_end: "Без дати закінчення", repeat_text_occurrences_count: "повторень", repeat_radio_end3: "До ", repeat_radio_end2: "", repeat_never: "Ніколи", repeat_daily: "Щодня", repeat_workdays: "Щодня в робочі дні", repeat_weekly: "Щотижня", repeat_monthly: "Щомісяця", repeat_yearly: "Щороку", repeat_custom: "Налаштоване", repeat_freq_day: "День", repeat_freq_week: "Тиждень", repeat_freq_month: "Місяць", repeat_freq_year: "Рік", repeat_on_date: "На дату", repeat_ends: "Закінчується", month_for_recurring: ["січня", "лютого", "березня", "квітня", "травня", "червня", "липня", "серпня", "вересня", "жовтня", "листопада", "грудня"], day_for_recurring: ["Неділям", "Понеділкам", "Вівторкам", "Середам", "Четвергам", "П'ятницям", "Суботам"] } };
8904
+ const locale_ar = { date: { month_full: ["كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"], month_short: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], day_full: ["الأحد", "الأثنين", "ألثلاثاء", "الأربعاء", "ألحميس", "ألجمعة", "السبت"], day_short: ["احد", "اثنين", "ثلاثاء", "اربعاء", "خميس", "جمعة", "سبت"] }, labels: { dhx_cal_today_button: "اليوم", day_tab: "يوم", week_tab: "أسبوع", month_tab: "شهر", new_event: "حدث جديد", icon_save: "اخزن", icon_cancel: "الغاء", icon_details: "تفاصيل", icon_edit: "تحرير", icon_delete: "حذف", confirm_closing: "التغييرات سوف تضيع, هل انت متأكد؟", confirm_deleting: "الحدث سيتم حذفها نهائيا ، هل أنت متأكد؟", section_description: "الوصف", section_time: "الفترة الزمنية", full_day: "طوال اليوم", confirm_recurring: "هل تريد تحرير مجموعة كاملة من الأحداث المتكررة؟", section_recurring: "تكرار الحدث", button_recurring: "تعطيل", button_recurring_open: "تمكين", button_edit_series: "تحرير سلسلة", button_edit_occurrence: "تعديل نسخة", button_edit_occurrence_and_following: "This and following events", grid_tab: "جدول", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "يومي", repeat_radio_week: "أسبوعي", repeat_radio_month: "شهري", repeat_radio_year: "سنوي", repeat_radio_day_type: "كل", repeat_text_day_count: "يوم", repeat_radio_day_type2: "كل يوم عمل", repeat_week: " تكرار كل", repeat_text_week_count: "أسبوع في الأيام التالية:", repeat_radio_month_type: "تكرار", repeat_radio_month_start: "في", repeat_text_month_day: "يوم كل", repeat_text_month_count: "شهر", repeat_text_month_count2_before: "كل", repeat_text_month_count2_after: "شهر", repeat_year_label: "في", select_year_day2: "من", repeat_text_year_day: "يوم", select_year_month: "شهر", repeat_radio_end: "بدون تاريخ انتهاء", repeat_text_occurrences_count: "تكرارات", repeat_radio_end2: "بعد", repeat_radio_end3: "ينتهي في", repeat_never: "أبداً", repeat_daily: "كل يوم", repeat_workdays: "كل يوم عمل", repeat_weekly: "كل أسبوع", repeat_monthly: "كل شهر", repeat_yearly: "كل سنة", repeat_custom: "تخصيص", repeat_freq_day: "يوم", repeat_freq_week: "أسبوع", repeat_freq_month: "شهر", repeat_freq_year: "سنة", repeat_on_date: "في التاريخ", repeat_ends: "ينتهي", month_for_recurring: ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], day_for_recurring: ["الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"] } };
8905
+ const locale_be = { date: { month_full: ["Студзень", "Люты", "Сакавік", "Красавік", "Maй", "Чэрвень", "Ліпень", "Жнівень", "Верасень", "Кастрычнік", "Лістапад", "Снежань"], month_short: ["Студз", "Лют", "Сак", "Крас", "Maй", "Чэр", "Ліп", "Жнів", "Вер", "Каст", "Ліст", "Снеж"], day_full: ["Нядзеля", "Панядзелак", "Аўторак", "Серада", "Чацвер", "Пятніца", "Субота"], day_short: ["Нд", "Пн", "Аўт", "Ср", "Чцв", "Пт", "Сб"] }, labels: { dhx_cal_today_button: "Сёння", day_tab: "Дзень", week_tab: "Тыдзень", month_tab: "Месяц", new_event: "Новая падзея", icon_save: "Захаваць", icon_cancel: "Адмяніць", icon_details: "Дэталі", icon_edit: "Змяніць", icon_delete: "Выдаліць", confirm_closing: "", confirm_deleting: "Падзея будзе выдалена незваротна, працягнуць?", section_description: "Апісанне", section_time: "Перыяд часу", full_day: "Увесь дзень", confirm_recurring: "Вы хочаце змяніць усю серыю паўтаральных падзей?", section_recurring: "Паўтарэнне", button_recurring: "Адключана", button_recurring_open: "Уключана", button_edit_series: "Рэдагаваць серыю", button_edit_occurrence: "Рэдагаваць асобнік", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Спіс", date: "Дата", description: "Апісанне", year_tab: "Год", week_agenda_tab: "Спіс", grid_tab: "Спic", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Дзень", repeat_radio_week: "Тыдзень", repeat_radio_month: "Месяц", repeat_radio_year: "Год", repeat_radio_day_type: "Кожны", repeat_text_day_count: "дзень", repeat_radio_day_type2: "Кожны працоўны дзень", repeat_week: " Паўтараць кожны", repeat_text_week_count: "тыдзень", repeat_radio_month_type: "Паўтараць", repeat_radio_month_start: "", repeat_text_month_day: " чысла кожнага", repeat_text_month_count: "месяцу", repeat_text_month_count2_before: "кожны ", repeat_text_month_count2_after: "месяц", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "дзень", select_year_month: "", repeat_radio_end: "Без даты заканчэння", repeat_text_occurrences_count: "паўтораў", repeat_radio_end2: "", repeat_radio_end3: "Да ", repeat_never: "Ніколі", repeat_daily: "Кожны дзень", repeat_workdays: "Кожны працоўны дзень", repeat_weekly: "Кожны тыдзень", repeat_monthly: "Кожны месяц", repeat_yearly: "Кожны год", repeat_custom: "Наладжвальны", repeat_freq_day: "Дзень", repeat_freq_week: "Тыдзень", repeat_freq_month: "Месяц", repeat_freq_year: "Год", repeat_on_date: "На дату", repeat_ends: "Заканчваецца", month_for_recurring: ["Студзеня", "Лютага", "Сакавіка", "Красавіка", "Мая", "Чэрвеня", "Ліпeня", "Жніўня", "Верасня", "Кастрычніка", "Лістапада", "Снежня"], day_for_recurring: ["Нядзелю", "Панядзелак", "Аўторак", "Сераду", "Чацвер", "Пятніцу", "Суботу"] } };
8906
+ const locale_ca = { date: { month_full: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], month_short: ["Gen", "Feb", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Oct", "Nov", "Des"], day_full: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"], day_short: ["Dg", "Dl", "Dm", "Dc", "Dj", "Dv", "Ds"] }, labels: { dhx_cal_today_button: "Hui", day_tab: "Dia", week_tab: "Setmana", month_tab: "Mes", new_event: "Nou esdeveniment", icon_save: "Guardar", icon_cancel: "Cancel·lar", icon_details: "Detalls", icon_edit: "Editar", icon_delete: "Esborrar", confirm_closing: "", confirm_deleting: "L'esdeveniment s'esborrarà definitivament, continuar ?", section_description: "Descripció", section_time: "Periode de temps", full_day: "Tot el dia", confirm_recurring: "¿Desitja modificar el conjunt d'esdeveniments repetits?", section_recurring: "Repeteixca l'esdeveniment", button_recurring: "Impedit", button_recurring_open: "Permés", button_edit_series: "Edit sèrie", button_edit_occurrence: "Edita Instància", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Descripció", year_tab: "Any", week_agenda_tab: "Agenda", grid_tab: "Taula", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diari", repeat_radio_week: "Setmanal", repeat_radio_month: "Mensual", repeat_radio_year: "Anual", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia", repeat_radio_day_type2: "Cada dia laborable", repeat_week: " Repetir cada", repeat_text_week_count: "setmana els dies següents:", repeat_radio_month_type: "Repetir", repeat_radio_month_start: "El", repeat_text_month_day: "dia cada", repeat_text_month_count: "mes", repeat_text_month_count2_before: "cada", repeat_text_month_count2_after: "mes", repeat_year_label: "El", select_year_day2: "de", repeat_text_year_day: "dia", select_year_month: "mes", repeat_radio_end: "Sense data de finalització", repeat_text_occurrences_count: "ocurrències", repeat_radio_end2: "Després", repeat_radio_end3: "Finalitzar el", repeat_never: "Mai", repeat_daily: "Cada dia", repeat_workdays: "Cada dia laborable", repeat_weekly: "Cada setmana", repeat_monthly: "Cada mes", repeat_yearly: "Cada any", repeat_custom: "Personalitzat", repeat_freq_day: "Dia", repeat_freq_week: "Setmana", repeat_freq_month: "Mes", repeat_freq_year: "Any", repeat_on_date: "En la data", repeat_ends: "Finalitza", month_for_recurring: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], day_for_recurring: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"] } };
8907
+ const locale_cn = { date: { month_full: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], month_short: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_full: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], day_short: ["", "", "", "", "", "", ""] }, labels: { dhx_cal_today_button: "今天", day_tab: "", week_tab: "", month_tab: "", new_event: "新建日程", icon_save: "保存", icon_cancel: "关闭", icon_details: "详细", icon_edit: "编辑", icon_delete: "删除", confirm_closing: "请确认是否撤销修改!", confirm_deleting: "是否删除日程?", section_description: "描述", section_time: "时间范围", full_day: "整天", confirm_recurring: "请确认是否将日程设为重复模式?", section_recurring: "重复周期", button_recurring: "禁用", button_recurring_open: "启用", button_edit_series: "编辑系列", button_edit_occurrence: "编辑实例", button_edit_occurrence_and_following: "This and following events", agenda_tab: "议程", date: "日期", description: "说明", year_tab: "今年", week_agenda_tab: "议程", grid_tab: "电网", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "按天", repeat_radio_week: "按周", repeat_radio_month: "按月", repeat_radio_year: "按年", repeat_radio_day_type: "", repeat_text_day_count: "", repeat_radio_day_type2: "每个工作日", repeat_week: " 重复 ", repeat_text_week_count: "星期的:", repeat_radio_month_type: "重复", repeat_radio_month_start: "", repeat_text_month_day: " ", repeat_text_month_count: "", repeat_text_month_count2_before: "", repeat_text_month_count2_after: "", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "", select_year_month: "", repeat_radio_end: "无结束日期", repeat_text_occurrences_count: "次结束", repeat_radio_end2: "重复", repeat_radio_end3: "结束于", repeat_never: "从不", repeat_daily: "每天", repeat_workdays: "每个工作日", repeat_weekly: "每周", repeat_monthly: "每月", repeat_yearly: "每年", repeat_custom: "自定义", repeat_freq_day: "", repeat_freq_week: "", repeat_freq_month: "", repeat_freq_year: "", repeat_on_date: "在日期", repeat_ends: "结束", month_for_recurring: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], day_for_recurring: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"] } };
8908
+ const locale_cs = { date: { month_full: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], month_short: ["Led", "Ún", "Bře", "Dub", "Kvě", "Čer", "Čec", "Srp", "Září", "Říj", "List", "Pro"], day_full: ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"], day_short: ["Ne", "Po", "Út", "St", "Čt", "", "So"] }, labels: { dhx_cal_today_button: "Dnes", day_tab: "Den", week_tab: "Týden", month_tab: "Měsíc", new_event: "Nová událost", icon_save: "Uložit", icon_cancel: "Zpět", icon_details: "Detail", icon_edit: "Edituj", icon_delete: "Smazat", confirm_closing: "", confirm_deleting: "Událost bude trvale smazána, opravdu?", section_description: "Poznámky", section_time: "Doba platnosti", confirm_recurring: "Přejete si upravit celou řadu opakovaných událostí?", section_recurring: "Opakování události", button_recurring: "Vypnuto", button_recurring_open: "Zapnuto", button_edit_series: "Edit series", button_edit_occurrence: "Upravit instance", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Program", date: "Datum", description: "Poznámka", year_tab: "Rok", full_day: "Full day", week_agenda_tab: "Program", grid_tab: "Mřížka", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Denně", repeat_radio_week: "Týdně", repeat_radio_month: "Měsíčně", repeat_radio_year: "Ročně", repeat_radio_day_type: "každý", repeat_text_day_count: "Den", repeat_radio_day_type2: "pracovní dny", repeat_week: "Opakuje každých", repeat_text_week_count: "Týdnů na:", repeat_radio_month_type: "u každého", repeat_radio_month_start: "na", repeat_text_month_day: "Den každého", repeat_text_month_count: "Měsíc", repeat_text_month_count2_before: "každý", repeat_text_month_count2_after: "Měsíc", repeat_year_label: "na", select_year_day2: "v", repeat_text_year_day: "Den v", select_year_month: "", repeat_radio_end: "bez data ukončení", repeat_text_occurrences_count: "Události", repeat_radio_end2: "po", repeat_radio_end3: "Konec", repeat_never: "Nikdy", repeat_daily: "Každý den", repeat_workdays: "Každý pracovní den", repeat_weekly: "Každý týden", repeat_monthly: "Každý měsíc", repeat_yearly: "Každý rok", repeat_custom: "Vlastní", repeat_freq_day: "Den", repeat_freq_week: "Týden", repeat_freq_month: "Měsíc", repeat_freq_year: "Rok", repeat_on_date: "Na datum", repeat_ends: "Končí", month_for_recurring: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], day_for_recurring: ["Neděle ", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"] } };
8909
+ const locale_da = { date: { month_full: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], day_short: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"] }, labels: { dhx_cal_today_button: "Idag", day_tab: "Dag", week_tab: "Uge", month_tab: "Måned", new_event: "Ny begivenhed", icon_save: "Gem", icon_cancel: "Fortryd", icon_details: "Detaljer", icon_edit: "Tilret", icon_delete: "Slet", confirm_closing: "Dine rettelser vil tabt.. Er dy sikker?", confirm_deleting: "Bigivenheden vil blive slettet permanent. Er du sikker?", section_description: "Beskrivelse", section_time: "Tidsperiode", confirm_recurring: "Vil du tilrette hele serien af gentagne begivenheder?", section_recurring: "Gentag begivenhed", button_recurring: "Frakoblet", button_recurring_open: "Tilkoblet", button_edit_series: "Rediger serien", button_edit_occurrence: "Rediger en kopi", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Dagsorden", date: "Dato", description: "Beskrivelse", year_tab: "År", week_agenda_tab: "Dagsorden", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daglig", repeat_radio_week: "Ugenlig", repeat_radio_month: "Månedlig", repeat_radio_year: "Årlig", repeat_radio_day_type: "Hver", repeat_text_day_count: "dag", repeat_radio_day_type2: " hver arbejdsdag", repeat_week: " Gentager sig hver", repeat_text_week_count: "uge følgende dage:", repeat_radio_month_type: "Hver den", repeat_radio_month_start: "Den", repeat_text_month_day: " i hver", repeat_text_month_count: "måned", repeat_text_month_count2_before: "hver", repeat_text_month_count2_after: "måned", repeat_year_label: "Den", select_year_day2: "i", repeat_text_year_day: "dag i", select_year_month: "", repeat_radio_end: "Ingen slutdato", repeat_text_occurrences_count: "gentagelse", repeat_radio_end2: "Efter", repeat_radio_end3: "Slut", repeat_never: "Aldrig", repeat_daily: "Hver dag", repeat_workdays: "Hver hverdag", repeat_weekly: "Hver uge", repeat_monthly: "Hver måned", repeat_yearly: "Hvert år", repeat_custom: "Brugerdefineret", repeat_freq_day: "Dag", repeat_freq_week: "Uge", repeat_freq_month: "Måned", repeat_freq_year: "År", repeat_on_date: " dato", repeat_ends: "Slutter", month_for_recurring: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], day_for_recurring: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] } };
8910
+ const locale_de = { date: { month_full: [" Januar", " Februar", " März ", " April", " Mai", " Juni", " Juli", " August", " September ", " Oktober", " November ", " Dezember"], month_short: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], day_full: ["Sonntag", "Montag", "Dienstag", " Mittwoch", " Donnerstag", "Freitag", "Samstag"], day_short: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"] }, labels: { dhx_cal_today_button: "Heute", day_tab: "Tag", week_tab: "Woche", month_tab: "Monat", new_event: "neuer Eintrag", icon_save: "Speichern", icon_cancel: "Abbrechen", icon_details: "Details", icon_edit: "Ändern", icon_delete: "Löschen", confirm_closing: "", confirm_deleting: "Der Eintrag wird gelöscht", section_description: "Beschreibung", section_time: "Zeitspanne", full_day: "Ganzer Tag", confirm_recurring: "Wollen Sie alle Einträge bearbeiten oder nur diesen einzelnen Eintrag?", section_recurring: "Wiederholung", button_recurring: "Aus", button_recurring_open: "An", button_edit_series: "Bearbeiten Sie die Serie", button_edit_occurrence: "Bearbeiten Sie eine Kopie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Datum", description: "Beschreibung", year_tab: "Jahre", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Täglich", repeat_radio_week: "Wöchentlich", repeat_radio_month: "Monatlich", repeat_radio_year: "Jährlich", repeat_radio_day_type: "jeden", repeat_text_day_count: "Tag", repeat_radio_day_type2: "an jedem Arbeitstag", repeat_week: " Wiederholt sich jede", repeat_text_week_count: "Woche am:", repeat_radio_month_type: "an jedem", repeat_radio_month_start: "am", repeat_text_month_day: "Tag eines jeden", repeat_text_month_count: "Monats", repeat_text_month_count2_before: "jeden", repeat_text_month_count2_after: "Monats", repeat_year_label: "am", select_year_day2: "im", repeat_text_year_day: "Tag im", select_year_month: "", repeat_radio_end: "kein Enddatum", repeat_text_occurrences_count: "Ereignissen", repeat_radio_end3: "Schluß", repeat_radio_end2: "nach", repeat_never: "Nie", repeat_daily: "Jeden Tag", repeat_workdays: "Jeden Werktag", repeat_weekly: "Jede Woche", repeat_monthly: "Jeden Monat", repeat_yearly: "Jedes Jahr", repeat_custom: "Benutzerdefiniert", repeat_freq_day: "Tag", repeat_freq_week: "Woche", repeat_freq_month: "Monat", repeat_freq_year: "Jahr", repeat_on_date: "Am Datum", repeat_ends: "Endet", month_for_recurring: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], day_for_recurring: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"] } };
8911
+ const locale_el = { date: { month_full: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], month_short: ["ΙΑΝ", "ΦΕΒ", "ΜΑΡ", "ΑΠΡ", "ΜΑΙ", "ΙΟΥΝ", "ΙΟΥΛ", "ΑΥΓ", "ΣΕΠ", "ΟΚΤ", "ΝΟΕ", "ΔΕΚ"], day_full: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"], day_short: ["ΚΥ", "ΔΕ", "ΤΡ", "ΤΕ", "ΠΕ", "ΠΑ", "ΣΑ"] }, labels: { dhx_cal_today_button: "Σήμερα", day_tab: "Ημέρα", week_tab: "Εβδομάδα", month_tab: "Μήνας", new_event: "Νέο έργο", icon_save: "Αποθήκευση", icon_cancel: "Άκυρο", icon_details: "Λεπτομέρειες", icon_edit: "Επεξεργασία", icon_delete: "Διαγραφή", confirm_closing: "", confirm_deleting: "Το έργο θα διαγραφεί οριστικά. Θέλετε να συνεχίσετε;", section_description: "Περιγραφή", section_time: "Χρονική περίοδος", full_day: "Πλήρης Ημέρα", confirm_recurring: "Θέλετε να επεξεργασθείτε ολόκληρη την ομάδα των επαναλαμβανόμενων έργων;", section_recurring: "Επαναλαμβανόμενο έργο", button_recurring: "Ανενεργό", button_recurring_open: "Ενεργό", button_edit_series: "Επεξεργαστείτε τη σειρά", button_edit_occurrence: "Επεξεργασία ένα αντίγραφο", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Ημερήσια Διάταξη", date: "Ημερομηνία", description: "Περιγραφή", year_tab: "Έτος", week_agenda_tab: "Ημερήσια Διάταξη", grid_tab: "Πλέγμα", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Ημερησίως", repeat_radio_week: "Εβδομαδιαίως", repeat_radio_month: "Μηνιαίως", repeat_radio_year: "Ετησίως", repeat_radio_day_type: "Κάθε", repeat_text_day_count: "ημέρα", repeat_radio_day_type2: "Κάθε εργάσιμη", repeat_week: " Επανάληψη κάθε", repeat_text_week_count: "εβδομάδα τις επόμενες ημέρες:", repeat_radio_month_type: "Επανάληψη", repeat_radio_month_start: "Την", repeat_text_month_day: "ημέρα κάθε", repeat_text_month_count: "μήνα", repeat_text_month_count2_before: "κάθε", repeat_text_month_count2_after: "μήνα", repeat_year_label: "Την", select_year_day2: "του", repeat_text_year_day: "ημέρα", select_year_month: "μήνα", repeat_radio_end: "Χωρίς ημερομηνία λήξεως", repeat_text_occurrences_count: "επαναλήψεις", repeat_radio_end3: "Λήγει την", repeat_radio_end2: "Μετά από", repeat_never: "Ποτέ", repeat_daily: "Κάθε μέρα", repeat_workdays: "Κάθε εργάσιμη μέρα", repeat_weekly: "Κάθε εβδομάδα", repeat_monthly: "Κάθε μήνα", repeat_yearly: "Κάθε χρόνο", repeat_custom: "Προσαρμοσμένο", repeat_freq_day: "Ημέρα", repeat_freq_week: "Εβδομάδα", repeat_freq_month: "Μήνας", repeat_freq_year: "Χρόνος", repeat_on_date: "Σε ημερομηνία", repeat_ends: "Λήγει", month_for_recurring: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάϊος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], day_for_recurring: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"] } };
8912
+ const locale_en = { date: { month_full: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], day_full: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], day_short: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] }, labels: { dhx_cal_today_button: "Today", day_tab: "Day", week_tab: "Week", month_tab: "Month", new_event: "New event", icon_save: "Save", icon_cancel: "Cancel", icon_details: "Details", icon_edit: "Edit", icon_delete: "Delete", confirm_closing: "", confirm_deleting: "Event will be deleted permanently, are you sure?", section_description: "Description", section_time: "Time period", full_day: "Full day", confirm_recurring: "Edit recurring event", section_recurring: "Repeat event", button_recurring: "Disabled", button_recurring_open: "Enabled", button_edit_series: "All events", button_edit_occurrence: "This event", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Date", description: "Description", year_tab: "Year", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daily", repeat_radio_week: "Weekly", repeat_radio_month: "Monthly", repeat_radio_year: "Yearly", repeat_radio_day_type: "Every", repeat_text_day_count: "day", repeat_radio_day_type2: "Every workday", repeat_week: " Repeat every", repeat_text_week_count: "week next days:", repeat_radio_month_type: "Repeat", repeat_radio_month_start: "On", repeat_text_month_day: "day every", repeat_text_month_count: "month", repeat_text_month_count2_before: "every", repeat_text_month_count2_after: "month", repeat_year_label: "On", select_year_day2: "of", repeat_text_year_day: "day", select_year_month: "month", repeat_radio_end: "No end date", repeat_text_occurrences_count: "occurrences", repeat_radio_end2: "After", repeat_radio_end3: "End by", repeat_never: "Never", repeat_daily: "Every day", repeat_workdays: "Every weekday", repeat_weekly: "Every week", repeat_monthly: "Every month", repeat_yearly: "Every year", repeat_custom: "Custom", repeat_freq_day: "Day", repeat_freq_week: "Week", repeat_freq_month: "Month", repeat_freq_year: "Year", repeat_on_date: "On date", repeat_ends: "Ends", month_for_recurring: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], day_for_recurring: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] } };
8913
+ const locale_es = { date: { month_full: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], month_short: ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"], day_full: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"], day_short: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"] }, labels: { dhx_cal_today_button: "Hoy", day_tab: "Día", week_tab: "Semana", month_tab: "Mes", new_event: "Nuevo evento", icon_save: "Guardar", icon_cancel: "Cancelar", icon_details: "Detalles", icon_edit: "Editar", icon_delete: "Eliminar", confirm_closing: "", confirm_deleting: "El evento se borrará definitivamente, ¿continuar?", section_description: "Descripción", section_time: "Período", full_day: "Todo el día", confirm_recurring: "¿Desea modificar el conjunto de eventos repetidos?", section_recurring: "Repita el evento", button_recurring: "Impedido", button_recurring_open: "Permitido", button_edit_series: "Editar la serie", button_edit_occurrence: "Editar este evento", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Día", date: "Fecha", description: "Descripción", year_tab: "Año", week_agenda_tab: "Día", grid_tab: "Reja", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diariamente", repeat_radio_week: "Semanalmente", repeat_radio_month: "Mensualmente", repeat_radio_year: "Anualmente", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia", repeat_radio_day_type2: "Cada jornada de trabajo", repeat_week: " Repetir cada", repeat_text_week_count: "semana:", repeat_radio_month_type: "Repita", repeat_radio_month_start: "El", repeat_text_month_day: "dia cada ", repeat_text_month_count: "mes", repeat_text_month_count2_before: "cada", repeat_text_month_count2_after: "mes", repeat_year_label: "El", select_year_day2: "del", repeat_text_year_day: "dia", select_year_month: "mes", repeat_radio_end: "Sin fecha de finalización", repeat_text_occurrences_count: "ocurrencias", repeat_radio_end3: "Fin", repeat_radio_end2: "Después de", repeat_never: "Nunca", repeat_daily: "Cada día", repeat_workdays: "Cada día laborable", repeat_weekly: "Cada semana", repeat_monthly: "Cada mes", repeat_yearly: "Cada año", repeat_custom: "Personalizado", repeat_freq_day: "Día", repeat_freq_week: "Semana", repeat_freq_month: "Mes", repeat_freq_year: "Año", repeat_on_date: "En la fecha", repeat_ends: "Termina", month_for_recurring: ["Enero", "Febrero", "Маrzo", "Аbril", "Mayo", "Junio", "Julio", "Аgosto", "Setiembre", "Octubre", "Noviembre", "Diciembre"], day_for_recurring: ["Domingo", "Lunes", "Martes", "Miércoles", "Jeuves", "Viernes", "Sabado"] } };
8914
+ const locale_fi = { date: { month_full: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], month_short: ["Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou"], day_full: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"], day_short: ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"] }, labels: { dhx_cal_today_button: "Tänään", day_tab: "Päivä", week_tab: "Viikko", month_tab: "Kuukausi", new_event: "Uusi tapahtuma", icon_save: "Tallenna", icon_cancel: "Peru", icon_details: "Tiedot", icon_edit: "Muokkaa", icon_delete: "Poista", confirm_closing: "", confirm_deleting: "Haluatko varmasti poistaa tapahtuman?", section_description: "Kuvaus", section_time: "Aikajakso", full_day: "Koko päivä", confirm_recurring: "Haluatko varmasti muokata toistuvan tapahtuman kaikkia jaksoja?", section_recurring: "Toista tapahtuma", button_recurring: "Ei k&auml;yt&ouml;ss&auml;", button_recurring_open: "K&auml;yt&ouml;ss&auml;", button_edit_series: "Muokkaa sarja", button_edit_occurrence: "Muokkaa kopio", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Esityslista", date: "Päivämäärä", description: "Kuvaus", year_tab: "Vuoden", week_agenda_tab: "Esityslista", grid_tab: "Ritilä", drag_to_create: "Luo uusi vetämällä", drag_to_move: "Siirrä vetämällä", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "P&auml;ivitt&auml;in", repeat_radio_week: "Viikoittain", repeat_radio_month: "Kuukausittain", repeat_radio_year: "Vuosittain", repeat_radio_day_type: "Joka", repeat_text_day_count: "p&auml;iv&auml;", repeat_radio_day_type2: "Joka arkip&auml;iv&auml;", repeat_week: "Toista joka", repeat_text_week_count: "viikko n&auml;in&auml; p&auml;ivin&auml;:", repeat_radio_month_type: "Toista", repeat_radio_month_start: "", repeat_text_month_day: "p&auml;iv&auml;n&auml; joka", repeat_text_month_count: "kuukausi", repeat_text_month_count2_before: "joka", repeat_text_month_count2_after: "kuukausi", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "p&auml;iv&auml;", select_year_month: "kuukausi", repeat_radio_end: "Ei loppumisaikaa", repeat_text_occurrences_count: "Toiston j&auml;lkeen", repeat_radio_end3: "Loppuu", repeat_radio_end2: "", repeat_never: "Ei koskaan", repeat_daily: "Joka päivä", repeat_workdays: "Joka arkipäivä", repeat_weekly: "Joka viikko", repeat_monthly: "Joka kuukausi", repeat_yearly: "Joka vuosi", repeat_custom: "Mukautettu", repeat_freq_day: "Päivä", repeat_freq_week: "Viikko", repeat_freq_month: "Kuukausi", repeat_freq_year: "Vuosi", repeat_on_date: "Tiettynä päivänä", repeat_ends: "Päättyy", month_for_recurring: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], day_for_recurring: ["Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"] } };
8915
+ const locale_fr = { date: { month_full: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], month_short: ["Jan", "Fév", "Mar", "Avr", "Mai", "Juin", "Juil", "Aoû", "Sep", "Oct", "Nov", "Déc"], day_full: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"], day_short: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"] }, labels: { dhx_cal_today_button: "Aujourd'hui", day_tab: "Jour", week_tab: "Semaine", month_tab: "Mois", new_event: "Nouvel événement", icon_save: "Enregistrer", icon_cancel: "Annuler", icon_details: "Détails", icon_edit: "Modifier", icon_delete: "Effacer", confirm_closing: "", confirm_deleting: "L'événement sera effacé sans appel, êtes-vous sûr ?", section_description: "Description", section_time: "Période", full_day: "Journée complète", confirm_recurring: "Voulez-vous éditer toute une série d'évènements répétés?", section_recurring: "Périodicité", button_recurring: "Désactivé", button_recurring_open: "Activé", button_edit_series: "Modifier la série", button_edit_occurrence: "Modifier une copie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Jour", date: "Date", description: "Description", year_tab: "Année", week_agenda_tab: "Jour", grid_tab: "Grille", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Quotidienne", repeat_radio_week: "Hebdomadaire", repeat_radio_month: "Mensuelle", repeat_radio_year: "Annuelle", repeat_radio_day_type: "Chaque", repeat_text_day_count: "jour", repeat_radio_day_type2: "Chaque journée de travail", repeat_week: " Répéter toutes les", repeat_text_week_count: "semaine:", repeat_radio_month_type: "Répéter", repeat_radio_month_start: "Le", repeat_text_month_day: "jour chaque", repeat_text_month_count: "mois", repeat_text_month_count2_before: "chaque", repeat_text_month_count2_after: "mois", repeat_year_label: "Le", select_year_day2: "du", repeat_text_year_day: "jour", select_year_month: "mois", repeat_radio_end: "Pas de date d&quot;achèvement", repeat_text_occurrences_count: "occurrences", repeat_radio_end3: "Fin", repeat_radio_end2: "Après", repeat_never: "Jamais", repeat_daily: "Chaque jour", repeat_workdays: "Chaque jour ouvrable", repeat_weekly: "Chaque semaine", repeat_monthly: "Chaque mois", repeat_yearly: "Chaque année", repeat_custom: "Personnalisé", repeat_freq_day: "Jour", repeat_freq_week: "Semaine", repeat_freq_month: "Mois", repeat_freq_year: "Année", repeat_on_date: "À la date", repeat_ends: "Se termine", month_for_recurring: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], day_for_recurring: ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"] } };
8916
+ const locale_he = { date: { month_full: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], month_short: ["ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ"], day_full: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"], day_short: ["א", "ב", "ג", "ד", "ה", "ו", "ש"] }, labels: { dhx_cal_today_button: "היום", day_tab: "יום", week_tab: "שבוע", month_tab: "חודש", new_event: "ארוע חדש", icon_save: "שמור", icon_cancel: "בטל", icon_details: "פרטים", icon_edit: "ערוך", icon_delete: "מחק", confirm_closing: "", confirm_deleting: "ארוע ימחק סופית.להמשיך?", section_description: "תיאור", section_time: "תקופה", confirm_recurring: "האם ברצונך לשנות כל סדרת ארועים מתמשכים?", section_recurring: "להעתיק ארוע", button_recurring: "לא פעיל", button_recurring_open: "פעיל", full_day: "יום שלם", button_edit_series: "ערוך את הסדרה", button_edit_occurrence: "עריכת עותק", button_edit_occurrence_and_following: "This and following events", agenda_tab: "סדר יום", date: "תאריך", description: "תיאור", year_tab: "לשנה", week_agenda_tab: "סדר יום", grid_tab: "סורג", drag_to_create: "Drag to create", drag_to_move: "גרור כדי להזיז", message_ok: "OK", message_cancel: "בטל", next: "הבא", prev: "הקודם", year: "שנה", month: "חודש", day: "יום", hour: "שעה", minute: "דקה", repeat_radio_day: "יומי", repeat_radio_week: "שבועי", repeat_radio_month: "חודשי", repeat_radio_year: "שנתי", repeat_radio_day_type: "חזור כל", repeat_text_day_count: "ימים", repeat_radio_day_type2: "חזור כל יום עבודה", repeat_week: " חזור כל", repeat_text_week_count: "שבוע לפי ימים:", repeat_radio_month_type: "חזור כל", repeat_radio_month_start: "כל", repeat_text_month_day: "ימים כל", repeat_text_month_count: "חודשים", repeat_text_month_count2_before: "חזור כל", repeat_text_month_count2_after: "חודש", repeat_year_label: "כל", select_year_day2: "בחודש", repeat_text_year_day: "ימים", select_year_month: "חודש", repeat_radio_end: "לעולם לא מסתיים", repeat_text_occurrences_count: "אירועים", repeat_radio_end3: "מסתיים ב", repeat_radio_end2: "אחרי", repeat_never: "אף פעם", repeat_daily: "כל יום", repeat_workdays: "כל יום עבודה", repeat_weekly: "כל שבוע", repeat_monthly: "כל חודש", repeat_yearly: "כל שנה", repeat_custom: "מותאם אישית", repeat_freq_day: "יום", repeat_freq_week: "שבוע", repeat_freq_month: "חודש", repeat_freq_year: "שנה", repeat_on_date: "בתאריך", repeat_ends: "מסתיים", month_for_recurring: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], day_for_recurring: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"] } };
8917
+ const locale_hu = { date: { month_full: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], month_short: ["Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Vasárnap", "Hétfõ", "Kedd", "Szerda", "Csütörtök", "Péntek", "szombat"], day_short: ["Va", "Hé", "Ke", "Sze", "Csü", "Pé", "Szo"] }, labels: { dhx_cal_today_button: "Ma", day_tab: "Nap", week_tab: "Hét", month_tab: "Hónap", new_event: "Új esemény", icon_save: "Mentés", icon_cancel: "Mégse", icon_details: "Részletek", icon_edit: "Szerkesztés", icon_delete: "Törlés", confirm_closing: "", confirm_deleting: "Az esemény törölve lesz, biztosan folytatja?", section_description: "Leírás", section_time: "Idõszak", full_day: "Egesz napos", confirm_recurring: "Biztosan szerkeszteni akarod az összes ismétlõdõ esemény beállítását?", section_recurring: "Esemény ismétlése", button_recurring: "Tiltás", button_recurring_open: "Engedélyezés", button_edit_series: "Edit series", button_edit_occurrence: "Szerkesztés bíróság", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Napirend", date: "Dátum", description: "Leírás", year_tab: "Év", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Napi", repeat_radio_week: "Heti", repeat_radio_month: "Havi", repeat_radio_year: "Éves", repeat_radio_day_type: "Minden", repeat_text_day_count: "nap", repeat_radio_day_type2: "Minden munkanap", repeat_week: " Ismételje meg minden", repeat_text_week_count: "héten a következő napokon:", repeat_radio_month_type: "Ismétlés", repeat_radio_month_start: "Ekkor", repeat_text_month_day: "nap minden", repeat_text_month_count: "hónapban", repeat_text_month_count2_before: "minden", repeat_text_month_count2_after: "hónapban", repeat_year_label: "Ekkor", select_year_day2: "-án/-én", repeat_text_year_day: "nap", select_year_month: "hónap", repeat_radio_end: "Nincs befejezési dátum", repeat_text_occurrences_count: "esemény", repeat_radio_end2: "Után", repeat_radio_end3: "Befejező dátum", repeat_never: "Soha", repeat_daily: "Minden nap", repeat_workdays: "Minden munkanap", repeat_weekly: "Minden héten", repeat_monthly: "Minden hónapban", repeat_yearly: "Minden évben", repeat_custom: "Egyedi", repeat_freq_day: "Nap", repeat_freq_week: "Hét", repeat_freq_month: "Hónap", repeat_freq_year: "Év", repeat_on_date: "Dátum szerint", repeat_ends: "Befejeződik", month_for_recurring: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], day_for_recurring: ["Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat"] } };
8918
+ const locale_id = { date: { month_full: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], month_short: ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Ags", "Sep", "Okt", "Nov", "Des"], day_full: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"], day_short: ["Ming", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"] }, labels: { dhx_cal_today_button: "Hari Ini", day_tab: "Hari", week_tab: "Minggu", month_tab: "Bulan", new_event: "Acara Baru", icon_save: "Simpan", icon_cancel: "Batal", icon_details: "Detail", icon_edit: "Edit", icon_delete: "Hapus", confirm_closing: "", confirm_deleting: "Acara akan dihapus", section_description: "Keterangan", section_time: "Periode", full_day: "Hari penuh", confirm_recurring: "Apakah acara ini akan berulang?", section_recurring: "Acara Rutin", button_recurring: "Tidak Difungsikan", button_recurring_open: "Difungsikan", button_edit_series: "Mengedit seri", button_edit_occurrence: "Mengedit salinan", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Tanggal", description: "Keterangan", year_tab: "Tahun", week_agenda_tab: "Agenda", grid_tab: "Tabel", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Harian", repeat_radio_week: "Mingguan", repeat_radio_month: "Bulanan", repeat_radio_year: "Tahunan", repeat_radio_day_type: "Setiap", repeat_text_day_count: "hari", repeat_radio_day_type2: "Setiap hari kerja", repeat_week: " Ulangi setiap", repeat_text_week_count: "minggu pada hari berikut:", repeat_radio_month_type: "Ulangi", repeat_radio_month_start: "Pada", repeat_text_month_day: "hari setiap", repeat_text_month_count: "bulan", repeat_text_month_count2_before: "setiap", repeat_text_month_count2_after: "bulan", repeat_year_label: "Pada", select_year_day2: "dari", repeat_text_year_day: "hari", select_year_month: "bulan", repeat_radio_end: "Tanpa tanggal akhir", repeat_text_occurrences_count: "kejadian", repeat_radio_end2: "Setelah", repeat_radio_end3: "Berakhir pada", repeat_never: "Tidak pernah", repeat_daily: "Setiap hari", repeat_workdays: "Setiap hari kerja", repeat_weekly: "Setiap minggu", repeat_monthly: "Setiap bulan", repeat_yearly: "Setiap tahun", repeat_custom: "Kustom", repeat_freq_day: "Hari", repeat_freq_week: "Minggu", repeat_freq_month: "Bulan", repeat_freq_year: "Tahun", repeat_on_date: "Pada tanggal", repeat_ends: "Berakhir", month_for_recurring: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], day_for_recurring: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"] } };
8919
+ const locale_it = { date: { month_full: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], month_short: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"], day_full: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"], day_short: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"] }, labels: { dhx_cal_today_button: "Oggi", day_tab: "Giorno", week_tab: "Settimana", month_tab: "Mese", new_event: "Nuovo evento", icon_save: "Salva", icon_cancel: "Chiudi", icon_details: "Dettagli", icon_edit: "Modifica", icon_delete: "Elimina", confirm_closing: "", confirm_deleting: "L'evento sarà eliminato, siete sicuri?", section_description: "Descrizione", section_time: "Periodo di tempo", full_day: "Intera giornata", confirm_recurring: "Vuoi modificare l'intera serie di eventi?", section_recurring: "Ripetere l'evento", button_recurring: "Disattivato", button_recurring_open: "Attivato", button_edit_series: "Modificare la serie", button_edit_occurrence: "Modificare una copia", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Descrizione", year_tab: "Anno", week_agenda_tab: "Agenda", grid_tab: "Griglia", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Quotidiano", repeat_radio_week: "Settimanale", repeat_radio_month: "Mensile", repeat_radio_year: "Annuale", repeat_radio_day_type: "Ogni", repeat_text_day_count: "giorno", repeat_radio_day_type2: "Ogni giornata lavorativa", repeat_week: " Ripetere ogni", repeat_text_week_count: "settimana:", repeat_radio_month_type: "Ripetere", repeat_radio_month_start: "Il", repeat_text_month_day: "giorno ogni", repeat_text_month_count: "mese", repeat_text_month_count2_before: "ogni", repeat_text_month_count2_after: "mese", repeat_year_label: "Il", select_year_day2: "del", repeat_text_year_day: "giorno", select_year_month: "mese", repeat_radio_end: "Senza data finale", repeat_text_occurrences_count: "occorenze", repeat_radio_end3: "Fine", repeat_radio_end2: "Dopo", repeat_never: "Mai", repeat_daily: "Ogni giorno", repeat_workdays: "Ogni giorno feriale", repeat_weekly: "Ogni settimana", repeat_monthly: "Ogni mese", repeat_yearly: "Ogni anno", repeat_custom: "Personalizzato", repeat_freq_day: "Giorno", repeat_freq_week: "Settimana", repeat_freq_month: "Mese", repeat_freq_year: "Anno", repeat_on_date: "Alla data", repeat_ends: "Finisce", month_for_recurring: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Jiugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], day_for_recurring: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Jovedì", "Venerdì", "Sabato"] } };
8920
+ const locale_jp = { date: { month_full: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], month_short: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_full: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"], day_short: ["日", "月", "火", "水", "木", "金", "土"] }, labels: { dhx_cal_today_button: "今日", day_tab: "日", week_tab: "週", month_tab: "月", new_event: "新イベント", icon_save: "保存", icon_cancel: "キャンセル", icon_details: "詳細", icon_edit: "編集", icon_delete: "削除", confirm_closing: "", confirm_deleting: "イベント完全に削除されます、宜しいですか?", section_description: "デスクリプション", section_time: "期間", confirm_recurring: "繰り返されているイベントを全て編集しますか?", section_recurring: "イベントを繰り返す", button_recurring: "無効", button_recurring_open: "有効", full_day: "終日", button_edit_series: "シリーズを編集します", button_edit_occurrence: "コピーを編集", button_edit_occurrence_and_following: "This and following events", agenda_tab: "議題は", date: "日付", description: "説明", year_tab: "今年", week_agenda_tab: "議題は", grid_tab: "グリッド", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "毎日", repeat_radio_week: "毎週", repeat_radio_month: "毎月", repeat_radio_year: "毎年", repeat_radio_day_type: "毎", repeat_text_day_count: "日", repeat_radio_day_type2: "毎営業日", repeat_week: " 繰り返し毎", repeat_text_week_count: "週 次の日:", repeat_radio_month_type: "繰り返し", repeat_radio_month_start: "オン", repeat_text_month_day: "日毎", repeat_text_month_count: "月", repeat_text_month_count2_before: "毎", repeat_text_month_count2_after: "月", repeat_year_label: "オン", select_year_day2: "の", repeat_text_year_day: "日", select_year_month: "月", repeat_radio_end: "終了日なし", repeat_text_occurrences_count: "回数", repeat_radio_end2: "後", repeat_radio_end3: "終了日まで", repeat_never: "決して", repeat_daily: "毎日", repeat_workdays: "毎営業日", repeat_weekly: "毎週", repeat_monthly: "毎月", repeat_yearly: "毎年", repeat_custom: "カスタム", repeat_freq_day: "日", repeat_freq_week: "週", repeat_freq_month: "月", repeat_freq_year: "年", repeat_on_date: "日にち", repeat_ends: "終了", month_for_recurring: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], day_for_recurring: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"] } };
8921
+ const locale_nb = { date: { month_full: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], month_short: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], day_full: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], day_short: ["Søn", "Mon", "Tir", "Ons", "Tor", "Fre", "Lør"] }, labels: { dhx_cal_today_button: "I dag", day_tab: "Dag", week_tab: "Uke", month_tab: "Måned", new_event: "Ny hendelse", icon_save: "Lagre", icon_cancel: "Avbryt", icon_details: "Detaljer", icon_edit: "Rediger", icon_delete: "Slett", confirm_closing: "", confirm_deleting: "Hendelsen vil bli slettet permanent. Er du sikker?", section_description: "Beskrivelse", section_time: "Tidsperiode", confirm_recurring: "Vil du forandre hele dette settet av repeterende hendelser?", section_recurring: "Repeter hendelsen", button_recurring: "Av", button_recurring_open: "På", button_edit_series: "Rediger serien", button_edit_occurrence: "Redigere en kopi", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Dato", description: "Beskrivelse", year_tab: "År", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daglig", repeat_radio_week: "Ukentlig", repeat_radio_month: "Månedlig", repeat_radio_year: "Årlig", repeat_radio_day_type: "Hver", repeat_text_day_count: "dag", repeat_radio_day_type2: "Alle hverdager", repeat_week: " Gjentas hver", repeat_text_week_count: "uke på:", repeat_radio_month_type: "På hver", repeat_radio_month_start: "På", repeat_text_month_day: "dag hver", repeat_text_month_count: "måned", repeat_text_month_count2_before: "hver", repeat_text_month_count2_after: "måned", repeat_year_label: "på", select_year_day2: "i", repeat_text_year_day: "dag i", select_year_month: "", repeat_radio_end: "Ingen sluttdato", repeat_text_occurrences_count: "forekomst", repeat_radio_end3: "Stop den", repeat_radio_end2: "Etter", repeat_never: "Aldri", repeat_daily: "Hver dag", repeat_workdays: "Hver ukedag", repeat_weekly: "Hver uke", repeat_monthly: "Hver måned", repeat_yearly: "Hvert år", repeat_custom: "Tilpasset", repeat_freq_day: "Dag", repeat_freq_week: "Uke", repeat_freq_month: "Måned", repeat_freq_year: "År", repeat_on_date: "På dato", repeat_ends: "Slutter", month_for_recurring: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], day_for_recurring: ["Sondag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] } };
8922
+ const locale_nl = { date: { month_full: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"], day_short: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"] }, labels: { dhx_cal_today_button: "Vandaag", day_tab: "Dag", week_tab: "Week", month_tab: "Maand", new_event: "Nieuw item", icon_save: "Opslaan", icon_cancel: "Annuleren", icon_details: "Details", icon_edit: "Bewerken", icon_delete: "Verwijderen", confirm_closing: "", confirm_deleting: "Item zal permanent worden verwijderd, doorgaan?", section_description: "Beschrijving", section_time: "Tijd periode", full_day: "Hele dag", confirm_recurring: "Wilt u alle terugkerende items bijwerken?", section_recurring: "Item herhalen", button_recurring: "Uit", button_recurring_open: "Aan", button_edit_series: "Bewerk de serie", button_edit_occurrence: "Bewerk een kopie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Datum", description: "Omschrijving", year_tab: "Jaar", week_agenda_tab: "Agenda", grid_tab: "Tabel", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Dagelijks", repeat_radio_week: "Wekelijks", repeat_radio_month: "Maandelijks", repeat_radio_year: "Jaarlijks", repeat_radio_day_type: "Elke", repeat_text_day_count: "dag(en)", repeat_radio_day_type2: "Elke werkdag", repeat_week: " Herhaal elke", repeat_text_week_count: "week op de volgende dagen:", repeat_radio_month_type: "Herhaal", repeat_radio_month_start: "Op", repeat_text_month_day: "dag iedere", repeat_text_month_count: "maanden", repeat_text_month_count2_before: "iedere", repeat_text_month_count2_after: "maanden", repeat_year_label: "Op", select_year_day2: "van", repeat_text_year_day: "dag", select_year_month: "maand", repeat_radio_end: "Geen eind datum", repeat_text_occurrences_count: "keren", repeat_radio_end3: "Eindigd per", repeat_radio_end2: "Na", repeat_never: "Nooit", repeat_daily: "Elke dag", repeat_workdays: "Elke werkdag", repeat_weekly: "Elke week", repeat_monthly: "Elke maand", repeat_yearly: "Elk jaar", repeat_custom: "Aangepast", repeat_freq_day: "Dag", repeat_freq_week: "Week", repeat_freq_month: "Maand", repeat_freq_year: "Jaar", repeat_on_date: "Op datum", repeat_ends: "Eindigt", month_for_recurring: ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"], day_for_recurring: ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"] } };
8923
+ const locale_no = { date: { month_full: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], month_short: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Des"], day_full: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], day_short: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"] }, labels: { dhx_cal_today_button: "Idag", day_tab: "Dag", week_tab: "Uke", month_tab: "Måned", new_event: "Ny", icon_save: "Lagre", icon_cancel: "Avbryt", icon_details: "Detaljer", icon_edit: "Endre", icon_delete: "Slett", confirm_closing: "Endringer blir ikke lagret, er du sikker?", confirm_deleting: "Oppføringen vil bli slettet, er du sikker?", section_description: "Beskrivelse", section_time: "Tidsperiode", full_day: "Full dag", confirm_recurring: "Vil du endre hele settet med repeterende oppføringer?", section_recurring: "Repeterende oppføring", button_recurring: "Ikke aktiv", button_recurring_open: "Aktiv", button_edit_series: "Rediger serien", button_edit_occurrence: "Redigere en kopi", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Dato", description: "Beskrivelse", year_tab: "År", week_agenda_tab: "Agenda", grid_tab: "Grid", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Daglig", repeat_radio_week: "Ukentlig", repeat_radio_month: "Månedlig", repeat_radio_year: "Årlig", repeat_radio_day_type: "Hver", repeat_text_day_count: "dag", repeat_radio_day_type2: "Hver arbeidsdag", repeat_week: " Gjenta hver", repeat_text_week_count: "uke neste dager:", repeat_radio_month_type: "Gjenta", repeat_radio_month_start: "På", repeat_text_month_day: "dag hver", repeat_text_month_count: "måned", repeat_text_month_count2_before: "hver", repeat_text_month_count2_after: "måned", repeat_year_label: "På", select_year_day2: "av", repeat_text_year_day: "dag", select_year_month: "måned", repeat_radio_end: "Ingen sluttdato", repeat_text_occurrences_count: "forekomster", repeat_radio_end2: "Etter", repeat_radio_end3: "Slutt innen", repeat_never: "Aldri", repeat_daily: "Hver dag", repeat_workdays: "Hver ukedag", repeat_weekly: "Hver uke", repeat_monthly: "Hver måned", repeat_yearly: "Hvert år", repeat_custom: "Tilpasset", repeat_freq_day: "Dag", repeat_freq_week: "Uke", repeat_freq_month: "Måned", repeat_freq_year: "År", repeat_on_date: "På dato", repeat_ends: "Slutter", month_for_recurring: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], day_for_recurring: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] } };
8924
+ const locale_pl = { date: { month_full: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], month_short: ["Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru"], day_full: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"], day_short: ["Nie", "Pon", "Wto", "Śro", "Czw", "Pią", "Sob"] }, labels: { dhx_cal_today_button: "Dziś", day_tab: "Dzień", week_tab: "Tydzień", month_tab: "Miesiąc", new_event: "Nowe zdarzenie", icon_save: "Zapisz", icon_cancel: "Anuluj", icon_details: "Szczegóły", icon_edit: "Edytuj", icon_delete: "Usuń", confirm_closing: "", confirm_deleting: "Zdarzenie zostanie usunięte na zawsze, kontynuować?", section_description: "Opis", section_time: "Okres czasu", full_day: "Cały dzień", confirm_recurring: "Czy chcesz edytować cały zbiór powtarzających się zdarzeń?", section_recurring: "Powtórz zdarzenie", button_recurring: "Nieaktywne", button_recurring_open: "Aktywne", button_edit_series: "Edytuj serię", button_edit_occurrence: "Edytuj kopię", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Opis", year_tab: "Rok", week_agenda_tab: "Agenda", grid_tab: "Tabela", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Codziennie", repeat_radio_week: "Co tydzie", repeat_radio_month: "Co miesic", repeat_radio_year: "Co rok", repeat_radio_day_type: "Kadego", repeat_text_day_count: "dnia", repeat_radio_day_type2: "Kadego dnia roboczego", repeat_week: " Powtarzaj kadego", repeat_text_week_count: "tygodnia w dni:", repeat_radio_month_type: "Powtrz", repeat_radio_month_start: "W", repeat_text_month_day: "dnia kadego", repeat_text_month_count: "miesica", repeat_text_month_count2_before: "kadego", repeat_text_month_count2_after: "miesica", repeat_year_label: "W", select_year_day2: "miesica", repeat_text_year_day: "dnia miesica", select_year_month: "", repeat_radio_end: "Bez daty kocowej", repeat_text_occurrences_count: "wystpieniu/ach", repeat_radio_end3: "Zakocz w", repeat_radio_end2: "Po", repeat_never: "Nigdy", repeat_daily: "Codziennie", repeat_workdays: "Każdy dzień roboczy", repeat_weekly: "Co tydzień", repeat_monthly: "Co miesiąc", repeat_yearly: "Co rok", repeat_custom: "Niestandardowy", repeat_freq_day: "Dzień", repeat_freq_week: "Tydzień", repeat_freq_month: "Miesiąc", repeat_freq_year: "Rok", repeat_on_date: "W dniu", repeat_ends: "Kończy się", month_for_recurring: ["Stycznia", "Lutego", "Marca", "Kwietnia", "Maja", "Czerwca", "Lipca", "Sierpnia", "Wrzenia", "Padziernka", "Listopada", "Grudnia"], day_for_recurring: ["Niedziela", "Poniedziaek", "Wtorek", "roda", "Czwartek", "Pitek", "Sobota"] } };
8925
+ const locale_pt = { date: { month_full: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], month_short: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], day_full: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"], day_short: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"] }, labels: { dhx_cal_today_button: "Hoje", day_tab: "Dia", week_tab: "Semana", month_tab: "Mês", new_event: "Novo evento", icon_save: "Salvar", icon_cancel: "Cancelar", icon_details: "Detalhes", icon_edit: "Editar", icon_delete: "Deletar", confirm_closing: "", confirm_deleting: "Tem certeza que deseja excluir?", section_description: "Descrição", section_time: "Período de tempo", full_day: "Dia inteiro", confirm_recurring: "Deseja editar todos esses eventos repetidos?", section_recurring: "Repetir evento", button_recurring: "Desabilitar", button_recurring_open: "Habilitar", button_edit_series: "Editar a série", button_edit_occurrence: "Editar uma cópia", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Dia", date: "Data", description: "Descrição", year_tab: "Ano", week_agenda_tab: "Dia", grid_tab: "Grade", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Diário", repeat_radio_week: "Semanal", repeat_radio_month: "Mensal", repeat_radio_year: "Anual", repeat_radio_day_type: "Cada", repeat_text_day_count: "dia(s)", repeat_radio_day_type2: "Cada trabalho diário", repeat_week: " Repita cada", repeat_text_week_count: "semana:", repeat_radio_month_type: "Repetir", repeat_radio_month_start: "Em", repeat_text_month_day: "todo dia", repeat_text_month_count: "mês", repeat_text_month_count2_before: "todo", repeat_text_month_count2_after: "mês", repeat_year_label: "Em", select_year_day2: "of", repeat_text_year_day: "dia", select_year_month: "mês", repeat_radio_end: "Sem data final", repeat_text_occurrences_count: "ocorrências", repeat_radio_end3: "Fim", repeat_radio_end2: "Depois", repeat_never: "Nunca", repeat_daily: "Todos os dias", repeat_workdays: "Todos os dias úteis", repeat_weekly: "Toda semana", repeat_monthly: "Todo mês", repeat_yearly: "Todo ano", repeat_custom: "Personalizado", repeat_freq_day: "Dia", repeat_freq_week: "Semana", repeat_freq_month: "Mês", repeat_freq_year: "Ano", repeat_on_date: "Na data", repeat_ends: "Termina", month_for_recurring: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], day_for_recurring: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"] } };
8926
+ const locale_ro = { date: { month_full: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "November", "December"], month_short: ["Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Nov", "Dec"], day_full: ["Duminica", "Luni", "Marti", "Miercuri", "Joi", "Vineri", "Sambata"], day_short: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sa"] }, labels: { dhx_cal_today_button: "Astazi", day_tab: "Zi", week_tab: "Saptamana", month_tab: "Luna", new_event: "Eveniment nou", icon_save: "Salveaza", icon_cancel: "Anuleaza", icon_details: "Detalii", icon_edit: "Editeaza", icon_delete: "Sterge", confirm_closing: "Schimbarile nu vor fi salvate, esti sigur?", confirm_deleting: "Evenimentul va fi sters permanent, esti sigur?", section_description: "Descriere", section_time: "Interval", full_day: "Toata ziua", confirm_recurring: "Vrei sa editezi toata seria de evenimente repetate?", section_recurring: "Repetare", button_recurring: "Dezactivata", button_recurring_open: "Activata", button_edit_series: "Editeaza serie", button_edit_occurrence: "Editeaza doar intrare", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Agenda", date: "Data", description: "Descriere", year_tab: "An", week_agenda_tab: "Agenda", grid_tab: "Lista", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Zilnic", repeat_radio_week: "Saptamanal", repeat_radio_month: "Lunar", repeat_radio_year: "Anual", repeat_radio_day_type: "La fiecare", repeat_text_day_count: "zi(le)", repeat_radio_day_type2: "Fiecare zi lucratoare", repeat_week: " Repeta la fiecare", repeat_text_week_count: "saptamana in urmatoarele zile:", repeat_radio_month_type: "Repeta in", repeat_radio_month_start: "In a", repeat_text_month_day: "zi la fiecare", repeat_text_month_count: "luni", repeat_text_month_count2_before: "la fiecare", repeat_text_month_count2_after: "luni", repeat_year_label: "In", select_year_day2: "a lunii", repeat_text_year_day: "zi a lunii", select_year_month: "", repeat_radio_end: "Fara data de sfarsit", repeat_text_occurrences_count: "evenimente", repeat_radio_end3: "La data", repeat_radio_end2: "Dupa", repeat_never: "Niciodată", repeat_daily: "În fiecare zi", repeat_workdays: "În fiecare zi lucrătoare", repeat_weekly: "În fiecare săptămână", repeat_monthly: "În fiecare lună", repeat_yearly: "În fiecare an", repeat_custom: "Personalizat", repeat_freq_day: "Zi", repeat_freq_week: "Săptămână", repeat_freq_month: "Lună", repeat_freq_year: "An", repeat_on_date: "La data", repeat_ends: "Se termină", month_for_recurring: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"], day_for_recurring: ["Duminica", "Luni", "Marti", "Miercuri", "Joi", "Vineri", "Sambata"] } };
8927
+ const locale_ru = { date: { month_full: ["Январь", "Февраль", "Март", "Апрель", "Maй", "Июнь", "Июль", "Август", "Сентябрь", "Oктябрь", "Ноябрь", "Декабрь"], month_short: ["Янв", "Фев", "Maр", "Aпр", "Maй", "Июн", "Июл", "Aвг", "Сен", "Окт", "Ноя", "Дек"], day_full: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"], day_short: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"] }, labels: { dhx_cal_today_button: "Сегодня", day_tab: "День", week_tab: "Неделя", month_tab: "Месяц", new_event: "Новое событие", icon_save: "Сохранить", icon_cancel: "Отменить", icon_details: "Детали", icon_edit: "Изменить", icon_delete: "Удалить", confirm_closing: "", confirm_deleting: "Событие будет удалено безвозвратно, продолжить?", section_description: "Описание", section_time: "Период времени", full_day: "Весь день", confirm_recurring: "Вы хотите изменить всю серию повторяющихся событий?", section_recurring: "Повторение", button_recurring: "Отключено", button_recurring_open: "Включено", button_edit_series: "Редактировать серию", button_edit_occurrence: "Редактировать экземпляр", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Список", date: "Дата", description: "Описание", year_tab: "Год", week_agenda_tab: "Список", grid_tab: "Таблица", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "День", repeat_radio_week: "Неделя", repeat_radio_month: "Месяц", repeat_radio_year: "Год", repeat_radio_day_type: "Каждый", repeat_text_day_count: "день", repeat_radio_day_type2: "Каждый рабочий день", repeat_week: " Повторять каждую", repeat_text_week_count: "неделю , в:", repeat_radio_month_type: "Повторять", repeat_radio_month_start: "", repeat_text_month_day: " числа каждый ", repeat_text_month_count: "месяц", repeat_text_month_count2_before: "каждый ", repeat_text_month_count2_after: "месяц", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "день", select_year_month: "", repeat_radio_end: "Без даты окончания", repeat_text_occurrences_count: "повторений", repeat_radio_end3: "До ", repeat_radio_end2: "", repeat_never: "Никогда", repeat_daily: "Каждый день", repeat_workdays: "Каждый будний день", repeat_weekly: "Каждую неделю", repeat_monthly: "Каждый месяц", repeat_yearly: "Каждый год", repeat_custom: "Настроить", repeat_freq_day: "День", repeat_freq_week: "Неделя", repeat_freq_month: "Месяц", repeat_freq_year: "Год", repeat_on_date: "В дату", repeat_ends: "Заканчивается", month_for_recurring: ["Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря"], day_for_recurring: ["Воскресенье", "Понедельник", "Вторник", "Среду", "Четверг", "Пятницу", "Субботу"] } };
8928
+ const locale_si = { date: { month_full: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"], day_short: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"] }, labels: { dhx_cal_today_button: "Danes", day_tab: "Dan", week_tab: "Teden", month_tab: "Mesec", new_event: "Nov dogodek", icon_save: "Shrani", icon_cancel: "Prekliči", icon_details: "Podrobnosti", icon_edit: "Uredi", icon_delete: "Izbriši", confirm_closing: "", confirm_deleting: "Dogodek bo izbrisan. Želite nadaljevati?", section_description: "Opis", section_time: "Časovni okvir", full_day: "Ves dan", confirm_recurring: "Želite urediti celoten set ponavljajočih dogodkov?", section_recurring: "Ponovi dogodek", button_recurring: "Onemogočeno", button_recurring_open: "Omogočeno", button_edit_series: "Edit series", button_edit_occurrence: "Edit occurrence", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Zadeva", date: "Datum", description: "Opis", year_tab: "Leto", week_agenda_tab: "Zadeva", grid_tab: "Miza", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Dnevno", repeat_radio_week: "Tedensko", repeat_radio_month: "Mesečno", repeat_radio_year: "Letno", repeat_radio_day_type: "Vsak", repeat_text_day_count: "dan", repeat_radio_day_type2: "Vsak delovni dan", repeat_week: " Ponavljaj vsak", repeat_text_week_count: "teden na naslednje dni:", repeat_radio_month_type: "Ponavljaj", repeat_radio_month_start: "Na", repeat_text_month_day: "dan vsak", repeat_text_month_count: "mesec", repeat_text_month_count2_before: "vsak", repeat_text_month_count2_after: "mesec", repeat_year_label: "Na", select_year_day2: "od", repeat_text_year_day: "dan", select_year_month: "mesec", repeat_radio_end: "Brez končnega datuma", repeat_text_occurrences_count: "pojavitve", repeat_radio_end2: "Po", repeat_radio_end3: "Končaj do", repeat_never: "Nikoli", repeat_daily: "Vsak dan", repeat_workdays: "Vsak delovni dan", repeat_weekly: "Vsak teden", repeat_monthly: "Vsak mesec", repeat_yearly: "Vsako leto", repeat_custom: "Po meri", repeat_freq_day: "Dan", repeat_freq_week: "Teden", repeat_freq_month: "Mesec", repeat_freq_year: "Leto", repeat_on_date: "Na datum", repeat_ends: "Konča se", month_for_recurring: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], day_for_recurring: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"] } };
8929
+ const locale_sk = { date: { month_full: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sept", "Okt", "Nov", "Dec"], day_full: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"], day_short: ["Ne", "Po", "Ut", "St", "Št", "Pi", "So"] }, labels: { dhx_cal_today_button: "Dnes", day_tab: "Deň", week_tab: "Týždeň", month_tab: "Mesiac", new_event: "Nová udalosť", icon_save: "Uložiť", icon_cancel: "Späť", icon_details: "Detail", icon_edit: "Edituj", icon_delete: "Zmazať", confirm_closing: "Vaše zmeny nebudú uložené. Skutočne?", confirm_deleting: "Udalosť bude natrvalo vymazaná. Skutočne?", section_description: "Poznámky", section_time: "Doba platnosti", confirm_recurring: "Prajete si upraviť celú radu opakovaných udalostí?", section_recurring: "Opakovanie udalosti", button_recurring: "Vypnuté", button_recurring_open: "Zapnuté", button_edit_series: "Upraviť opakovania", button_edit_occurrence: "Upraviť inštancie", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Program", date: "Dátum", description: "Poznámka", year_tab: "Rok", full_day: "Celý deň", week_agenda_tab: "Program", grid_tab: "Mriežka", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Denne", repeat_radio_week: "Týždenne", repeat_radio_month: "Mesaène", repeat_radio_year: "Roène", repeat_radio_day_type: "Každý", repeat_text_day_count: "deò", repeat_radio_day_type2: "Každý prac. deò", repeat_week: "Opakova každý", repeat_text_week_count: "týždeò v dòoch:", repeat_radio_month_type: "Opakova", repeat_radio_month_start: "On", repeat_text_month_day: "deò každý", repeat_text_month_count: "mesiac", repeat_text_month_count2_before: "každý", repeat_text_month_count2_after: "mesiac", repeat_year_label: "On", select_year_day2: "poèas", repeat_text_year_day: "deò", select_year_month: "mesiac", repeat_radio_end: "Bez dátumu ukonèenia", repeat_text_occurrences_count: "udalostiach", repeat_radio_end3: "Ukonèi", repeat_radio_end2: "Po", repeat_never: "Nikdy", repeat_daily: "Každý deň", repeat_workdays: "Každý pracovný deň", repeat_weekly: "Každý týždeň", repeat_monthly: "Každý mesiac", repeat_yearly: "Každý rok", repeat_custom: "Vlastné", repeat_freq_day: "Deň", repeat_freq_week: "Týždeň", repeat_freq_month: "Mesiac", repeat_freq_year: "Rok", repeat_on_date: "Na dátum", repeat_ends: "Koniec", month_for_recurring: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], day_for_recurring: ["Nede¾a", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"] } };
8930
+ const locale_sv = { date: { month_full: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], month_short: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], day_full: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"], day_short: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"] }, labels: { dhx_cal_today_button: "Idag", day_tab: "Dag", week_tab: "Vecka", month_tab: "Månad", new_event: "Ny händelse", icon_save: "Spara", icon_cancel: "Ångra", icon_details: "Detaljer", icon_edit: "Ändra", icon_delete: "Ta bort", confirm_closing: "", confirm_deleting: "Är du säker på att du vill ta bort händelsen permanent?", section_description: "Beskrivning", section_time: "Tid", full_day: "Hela dagen", confirm_recurring: "Vill du redigera hela serien med repeterande händelser?", section_recurring: "Upprepa händelse", button_recurring: "Inaktiverat", button_recurring_open: "Aktiverat", button_edit_series: "Redigera serien", button_edit_occurrence: "Redigera en kopia", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Dagordning", date: "Datum", description: "Beskrivning", year_tab: "År", week_agenda_tab: "Dagordning", grid_tab: "Galler", drag_to_create: "Dra för att skapa ny", drag_to_move: "Dra för att flytta", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Dagligen", repeat_radio_week: "Veckovis", repeat_radio_month: "Månadsvis", repeat_radio_year: "Årligen", repeat_radio_day_type: "Var", repeat_text_day_count: "dag", repeat_radio_day_type2: "Varje arbetsdag", repeat_week: " Upprepa var", repeat_text_week_count: "vecka dessa dagar:", repeat_radio_month_type: "Upprepa", repeat_radio_month_start: "Den", repeat_text_month_day: "dagen var", repeat_text_month_count: "månad", repeat_text_month_count2_before: "var", repeat_text_month_count2_after: "månad", repeat_year_label: "Den", select_year_day2: "i", repeat_text_year_day: "dag i", select_year_month: "månad", repeat_radio_end: "Inget slutdatum", repeat_text_occurrences_count: "upprepningar", repeat_radio_end3: "Sluta efter", repeat_radio_end2: "Efter", repeat_never: "Aldrig", repeat_daily: "Varje dag", repeat_workdays: "Varje vardag", repeat_weekly: "Varje vecka", repeat_monthly: "Varje månad", repeat_yearly: "Varje år", repeat_custom: "Anpassad", repeat_freq_day: "Dag", repeat_freq_week: "Vecka", repeat_freq_month: "Månad", repeat_freq_year: "År", repeat_on_date: "På datum", repeat_ends: "Slutar", month_for_recurring: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], day_for_recurring: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"] } };
8931
+ const locale_tr = { date: { month_full: ["Ocak", "Þubat", "Mart", "Nisan", "Mayýs", "Haziran", "Temmuz", "Aðustos", "Eylül", "Ekim", "Kasým", "Aralýk"], month_short: ["Oca", "Þub", "Mar", "Nis", "May", "Haz", "Tem", "Aðu", "Eyl", "Eki", "Kas", "Ara"], day_full: ["Pazar", "Pazartes,", "Salý", "Çarþamba", "Perþembe", "Cuma", "Cumartesi"], day_short: ["Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts"] }, labels: { dhx_cal_today_button: "Bugün", day_tab: "Gün", week_tab: "Hafta", month_tab: "Ay", new_event: "Uygun", icon_save: "Kaydet", icon_cancel: "Ýptal", icon_details: "Detaylar", icon_edit: "Düzenle", icon_delete: "Sil", confirm_closing: "", confirm_deleting: "Etkinlik silinecek, devam?", section_description: "Açýklama", section_time: "Zaman aralýðý", full_day: "Tam gün", confirm_recurring: "Tüm tekrar eden etkinlikler silinecek, devam?", section_recurring: "Etkinliði tekrarla", button_recurring: "Pasif", button_recurring_open: "Aktif", button_edit_series: "Dizi düzenleme", button_edit_occurrence: "Bir kopyasını düzenleyin", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Ajanda", date: "Tarih", description: "Açýklama", year_tab: "Yýl", week_agenda_tab: "Ajanda", grid_tab: "Izgara", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "Günlük", repeat_radio_week: "Haftalık", repeat_radio_month: "Aylık", repeat_radio_year: "Yıllık", repeat_radio_day_type: "Her", repeat_text_day_count: "gün", repeat_radio_day_type2: "Her iş günü", repeat_week: " Tekrar her", repeat_text_week_count: "hafta şu günlerde:", repeat_radio_month_type: "Tekrar et", repeat_radio_month_start: "Tarihinde", repeat_text_month_day: "gün her", repeat_text_month_count: "ay", repeat_text_month_count2_before: "her", repeat_text_month_count2_after: "ay", repeat_year_label: "Tarihinde", select_year_day2: "ayın", repeat_text_year_day: "günü", select_year_month: "ay", repeat_radio_end: "Bitiş tarihi yok", repeat_text_occurrences_count: "olay", repeat_radio_end2: "Sonra", repeat_radio_end3: "Tarihinde bitir", repeat_never: "Asla", repeat_daily: "Her gün", repeat_workdays: "Her iş günü", repeat_weekly: "Her hafta", repeat_monthly: "Her ay", repeat_yearly: "Her yıl", repeat_custom: "Özel", repeat_freq_day: "Gün", repeat_freq_week: "Hafta", repeat_freq_month: "Ay", repeat_freq_year: "Yıl", repeat_on_date: "Tarihinde", repeat_ends: "Biter", month_for_recurring: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], day_for_recurring: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"] } };
8932
+ const locale_ua = { date: { month_full: ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], month_short: ["Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру"], day_full: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"], day_short: ["Нед", "Пон", "Вів", "Сер", "Чет", "Птн", "Суб"] }, labels: { dhx_cal_today_button: "Сьогодні", day_tab: "День", week_tab: "Тиждень", month_tab: "Місяць", new_event: "Нова подія", icon_save: "Зберегти", icon_cancel: "Відміна", icon_details: "Деталі", icon_edit: "Редагувати", icon_delete: "Вилучити", confirm_closing: "", confirm_deleting: "Подія вилучиться назавжди. Ви впевнені?", section_description: "Опис", section_time: "Часовий проміжок", full_day: "Весь день", confirm_recurring: "Хочете редагувати весь перелік повторюваних подій?", section_recurring: "Повторювана подія", button_recurring: "Відключено", button_recurring_open: "Включено", button_edit_series: "Редагувати серію", button_edit_occurrence: "Редагувати примірник", button_edit_occurrence_and_following: "This and following events", agenda_tab: "Перелік", date: "Дата", description: "Опис", year_tab: "Рік", week_agenda_tab: "Перелік", grid_tab: "Таблиця", drag_to_create: "Drag to create", drag_to_move: "Drag to move", message_ok: "OK", message_cancel: "Cancel", next: "Next", prev: "Previous", year: "Year", month: "Month", day: "Day", hour: "Hour", minute: "Minute", repeat_radio_day: "День", repeat_radio_week: "Тиждень", repeat_radio_month: "Місяць", repeat_radio_year: "Рік", repeat_radio_day_type: "Кожний", repeat_text_day_count: "день", repeat_radio_day_type2: "Кожний робочий день", repeat_week: " Повторювати кожен", repeat_text_week_count: "тиждень , по:", repeat_radio_month_type: "Повторювати", repeat_radio_month_start: "", repeat_text_month_day: " числа кожний ", repeat_text_month_count: "місяць", repeat_text_month_count2_before: "кожен ", repeat_text_month_count2_after: "місяць", repeat_year_label: "", select_year_day2: "", repeat_text_year_day: "день", select_year_month: "", repeat_radio_end: "Без дати закінчення", repeat_text_occurrences_count: "повторень", repeat_radio_end3: "До ", repeat_radio_end2: "", repeat_never: "Ніколи", repeat_daily: "Щодня", repeat_workdays: "Щодня в робочі дні", repeat_weekly: "Щотижня", repeat_monthly: "Щомісяця", repeat_yearly: "Щороку", repeat_custom: "Налаштоване", repeat_freq_day: "День", repeat_freq_week: "Тиждень", repeat_freq_month: "Місяць", repeat_freq_year: "Рік", repeat_on_date: "На дату", repeat_ends: "Закінчується", month_for_recurring: ["січня", "лютого", "березня", "квітня", "травня", "червня", "липня", "серпня", "вересня", "жовтня", "листопада", "грудня"], day_for_recurring: ["Неділям", "Понеділкам", "Вівторкам", "Середам", "Четвергам", "П'ятницям", "Суботам"] } };
8933
+ const locales = Object.freeze(Object.defineProperty({ __proto__: null, ar: locale_ar, be: locale_be, ca: locale_ca, cn: locale_cn, cs: locale_cs, da: locale_da, de: locale_de, el: locale_el, en: locale_en, es: locale_es, fi: locale_fi, fr: locale_fr, he: locale_he, hu: locale_hu, id: locale_id, it: locale_it, jp: locale_jp, nb: locale_nb, nl: locale_nl, no: locale_no, pl: locale_pl, pt: locale_pt, ro: locale_ro, ru: locale_ru, si: locale_si, sk: locale_sk, sv: locale_sv, tr: locale_tr, ua: locale_ua }, Symbol.toStringTag, { value: "Module" }));
8915
8934
  function i18nFactory() {
8916
- return new LocaleManager({ en, ar, be, ca, cn, cs, da, de, el, es, fi, fr, he, hu, id, it, jp, nb, nl, no, pl, pt, ro, ru, si, sk, sv, tr, ua });
8935
+ return new LocaleManager(locales);
8917
8936
  }
8918
8937
  class DatePicker {
8919
8938
  constructor(scheduler2, container, state = {}) {
@@ -9200,7 +9219,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
9200
9219
  }
9201
9220
  }
9202
9221
  function factoryMethod(extensionManager) {
9203
- const scheduler2 = { version: "7.2.5" };
9222
+ const scheduler2 = { version: "7.2.8" };
9204
9223
  scheduler2.$stateProvider = StateService();
9205
9224
  scheduler2.getState = scheduler2.$stateProvider.getState;
9206
9225
  extend$n(scheduler2);
@@ -9224,7 +9243,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
9224
9243
  const messageApi = message(scheduler2);
9225
9244
  scheduler2.utils.mixin(scheduler2, messageApi);
9226
9245
  scheduler2.env = scheduler2.$env = env;
9227
- scheduler2.Promise = window.Promise;
9246
+ scheduler2.Promise = Promise;
9228
9247
  extend$g(scheduler2);
9229
9248
  extend$f(scheduler2);
9230
9249
  extend$e(scheduler2);
@@ -9289,6 +9308,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
9289
9308
  }
9290
9309
  }
9291
9310
  });
9311
+ return activePlugins;
9292
9312
  };
9293
9313
  function getExtensionList(config, dependencies, priorities) {
9294
9314
  const result = [];
@@ -9815,12 +9835,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
9815
9835
  return scheduler2.ext.allTimed.isMainAreaEvent(ev);
9816
9836
  };
9817
9837
  var oldUpdate = scheduler2.updateEvent;
9818
- scheduler2.updateEvent = function(id2) {
9819
- var ev = scheduler2.getEvent(id2);
9838
+ scheduler2.updateEvent = function(id) {
9839
+ var ev = scheduler2.getEvent(id);
9820
9840
  var fullRedrawNeeded;
9821
9841
  var initial;
9822
9842
  if (ev) {
9823
- fullRedrawNeeded = scheduler2.config.all_timed && !(scheduler2.isOneDayEvent(scheduler2._events[id2]) || scheduler2.getState().drag_id);
9843
+ fullRedrawNeeded = scheduler2.config.all_timed && !(scheduler2.isOneDayEvent(scheduler2._events[id]) || scheduler2.getState().drag_id);
9824
9844
  if (fullRedrawNeeded) {
9825
9845
  initial = scheduler2.config.update_render;
9826
9846
  scheduler2.config.update_render = true;
@@ -9844,20 +9864,20 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
9844
9864
  temp_section = scheduler2.getEvent(event_id)[scheduler2._get_section_property()];
9845
9865
  }
9846
9866
  }
9847
- scheduler2.attachEvent("onBeforeDrag", function(id2) {
9848
- _setTempSection(id2);
9867
+ scheduler2.attachEvent("onBeforeDrag", function(id) {
9868
+ _setTempSection(id);
9849
9869
  return true;
9850
9870
  });
9851
- scheduler2.attachEvent("onBeforeLightbox", function(id2) {
9852
- const ev = scheduler2.getEvent(id2);
9871
+ scheduler2.attachEvent("onBeforeLightbox", function(id) {
9872
+ const ev = scheduler2.getEvent(id);
9853
9873
  before = [ev.start_date, ev.end_date];
9854
- _setTempSection(id2);
9874
+ _setTempSection(id);
9855
9875
  return true;
9856
9876
  });
9857
- scheduler2.attachEvent("onEventChanged", function(id2) {
9858
- if (!id2 || !scheduler2.getEvent(id2))
9877
+ scheduler2.attachEvent("onEventChanged", function(id) {
9878
+ if (!id || !scheduler2.getEvent(id))
9859
9879
  return true;
9860
- const ev = scheduler2.getEvent(id2);
9880
+ const ev = scheduler2.getEvent(id);
9861
9881
  if (!scheduler2.checkCollision(ev)) {
9862
9882
  if (!before)
9863
9883
  return false;
@@ -9870,16 +9890,16 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
9870
9890
  scheduler2.attachEvent("onBeforeEventChanged", function(ev, e, is_new) {
9871
9891
  return scheduler2.checkCollision(ev);
9872
9892
  });
9873
- scheduler2.attachEvent("onEventAdded", function(id2, ev) {
9893
+ scheduler2.attachEvent("onEventAdded", function(id, ev) {
9874
9894
  const result = scheduler2.checkCollision(ev);
9875
9895
  if (!result)
9876
- scheduler2.deleteEvent(id2);
9896
+ scheduler2.deleteEvent(id);
9877
9897
  });
9878
- scheduler2.attachEvent("onEventSave", function(id2, edited_ev, is_new) {
9898
+ scheduler2.attachEvent("onEventSave", function(id, edited_ev, is_new) {
9879
9899
  edited_ev = scheduler2._lame_clone(edited_ev);
9880
- edited_ev.id = id2;
9900
+ edited_ev.id = id;
9881
9901
  if (!(edited_ev.start_date && edited_ev.end_date)) {
9882
- const ev = scheduler2.getEvent(id2);
9902
+ const ev = scheduler2.getEvent(id);
9883
9903
  edited_ev.start_date = new Date(ev.start_date);
9884
9904
  edited_ev.end_date = new Date(ev.end_date);
9885
9905
  }
@@ -10242,8 +10262,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
10242
10262
  }
10243
10263
  function cookie(scheduler2) {
10244
10264
  function setCookie(name, cookie_param, value) {
10245
- var str = name + "=" + value + (cookie_param ? "; " + cookie_param : "");
10246
- document.cookie = str;
10265
+ const str = `${name}=${value}${cookie_param ? `; ${cookie_param}` : ""}`;
10266
+ document.cookie = `${str}; Secure`;
10247
10267
  }
10248
10268
  function getCookie(name) {
10249
10269
  var search = name + "=";
@@ -10332,9 +10352,9 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
10332
10352
  }, set_value: function(node, value, ev, config) {
10333
10353
  (function() {
10334
10354
  resetCombo();
10335
- var id2 = scheduler2.attachEvent("onAfterLightbox", function() {
10355
+ var id = scheduler2.attachEvent("onAfterLightbox", function() {
10336
10356
  resetCombo();
10337
- scheduler2.detachEvent(id2);
10357
+ scheduler2.detachEvent(id);
10338
10358
  });
10339
10359
  function resetCombo() {
10340
10360
  if (node._combo && node._combo.DOMParent) {
@@ -10410,8 +10430,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
10410
10430
  var res = "";
10411
10431
  res += `<div class='dhx_cal_ltext dhx_cal_radio ${sns.vertical ? "dhx_cal_radio_vertical" : ""}' style='height:${sns.height}px;'>`;
10412
10432
  for (var i = 0; i < sns.options.length; i++) {
10413
- var id2 = scheduler2.uid();
10414
- res += "<label class='dhx_cal_radio_item' for='" + id2 + "'><input id='" + id2 + "' type='radio' name='" + sns.name + "' value='" + sns.options[i].key + "'><span> " + sns.options[i].label + "</span></label>";
10433
+ var id = scheduler2.uid();
10434
+ res += "<label class='dhx_cal_radio_item' for='" + id + "'><input id='" + id + "' type='radio' name='" + sns.name + "' value='" + sns.options[i].key + "'><span> " + sns.options[i].label + "</span></label>";
10415
10435
  }
10416
10436
  res += "</div>";
10417
10437
  return res;
@@ -10443,11 +10463,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
10443
10463
  if (config.height) {
10444
10464
  node.style.height = `${config.height}px`;
10445
10465
  }
10446
- var id2 = scheduler2.uid();
10466
+ var id = scheduler2.uid();
10447
10467
  var isChecked = typeof config.checked_value != "undefined" ? value == config.checked_value : !!value;
10448
10468
  node.className += " dhx_cal_checkbox";
10449
- var check_html = "<input id='" + id2 + "' type='checkbox' value='true' name='" + config.name + "'" + (isChecked ? "checked='true'" : "") + "'>";
10450
- var label_html = "<label for='" + id2 + "'>" + (scheduler2.locale.labels["section_" + config.name] || config.name) + "</label>";
10469
+ var check_html = "<input id='" + id + "' type='checkbox' value='true' name='" + config.name + "'" + (isChecked ? "checked='true'" : "") + "'>";
10470
+ var label_html = "<label for='" + id + "'>" + (scheduler2.locale.labels["section_" + config.name] || config.name) + "</label>";
10451
10471
  if (scheduler2.config.wide_form) {
10452
10472
  node.innerHTML = label_html;
10453
10473
  node.nextSibling.innerHTML = check_html;
@@ -10565,14 +10585,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
10565
10585
  scheduler2.attachEvent("onTemplatesReady", function() {
10566
10586
  var els = document.body.getElementsByTagName("DIV");
10567
10587
  for (var i = 0; i < els.length; i++) {
10568
- var cs2 = els[i].className || "";
10569
- cs2 = cs2.split(":");
10570
- if (cs2.length == 2 && cs2[0] == "template") {
10588
+ var cs = els[i].className || "";
10589
+ cs = cs.split(":");
10590
+ if (cs.length == 2 && cs[0] == "template") {
10571
10591
  var code = 'return "' + (els[i].innerHTML || "").replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/[\n\r]+/g, "") + '";';
10572
10592
  code = unescape(code).replace(/\{event\.([a-z]+)\}/g, function(all, mask) {
10573
10593
  return '"+ev.' + mask + '+"';
10574
10594
  });
10575
- scheduler2.templates[cs2[1]] = Function("start", "end", "ev", code);
10595
+ scheduler2.templates[cs[1]] = Function("start", "end", "ev", code);
10576
10596
  els[i].style.display = "none";
10577
10597
  }
10578
10598
  }
@@ -11075,15 +11095,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
11075
11095
  return evs[i];
11076
11096
  }
11077
11097
  return null;
11078
- }, nextEventHandler: function(id2) {
11098
+ }, nextEventHandler: function(id) {
11079
11099
  var activeNode = scheduler2.$keyboardNavigation.dispatcher.activeNode;
11080
- var startId = id2 || activeNode && activeNode.eventId;
11100
+ var startId = id || activeNode && activeNode.eventId;
11081
11101
  var nextEvent = null;
11082
11102
  if (startId && scheduler2.getEvent(startId)) {
11083
11103
  var currEvent = scheduler2.getEvent(startId);
11084
11104
  nextEvent = scheduler2.$keyboardNavigation.SchedulerNode.prototype._pickEvent(currEvent.start_date, scheduler2.date.add(currEvent.start_date, 1, "year"), currEvent.id, false);
11085
11105
  }
11086
- if (!nextEvent && !id2) {
11106
+ if (!nextEvent && !id) {
11087
11107
  var visibleDates = scheduler2.getState();
11088
11108
  nextEvent = scheduler2.$keyboardNavigation.SchedulerNode.prototype._pickEvent(visibleDates.min_date, scheduler2.date.add(visibleDates.min_date, 1, "year"), null, false);
11089
11109
  }
@@ -11098,15 +11118,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
11098
11118
  scheduler2.$keyboardNavigation.dispatcher.setActiveNode(nextEv);
11099
11119
  }
11100
11120
  }
11101
- }, prevEventHandler: function(id2) {
11121
+ }, prevEventHandler: function(id) {
11102
11122
  var activeNode = scheduler2.$keyboardNavigation.dispatcher.activeNode;
11103
- var startId = id2 || activeNode && activeNode.eventId;
11123
+ var startId = id || activeNode && activeNode.eventId;
11104
11124
  var nextEvent = null;
11105
11125
  if (startId && scheduler2.getEvent(startId)) {
11106
11126
  var currEvent = scheduler2.getEvent(startId);
11107
11127
  nextEvent = scheduler2.$keyboardNavigation.SchedulerNode.prototype._pickEvent(scheduler2.date.add(currEvent.end_date, -1, "year"), currEvent.end_date, currEvent.id, true);
11108
11128
  }
11109
- if (!nextEvent && !id2) {
11129
+ if (!nextEvent && !id) {
11110
11130
  var visibleDates = scheduler2.getState();
11111
11131
  nextEvent = scheduler2.$keyboardNavigation.SchedulerNode.prototype._pickEvent(scheduler2.date.add(visibleDates.max_date, -1, "year"), visibleDates.max_date, null, true);
11112
11132
  }
@@ -11247,14 +11267,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
11247
11267
  scheduler2.$keyboardNavigation.HeaderCell.prototype.bindAll(scheduler2.$keyboardNavigation.HeaderCell.prototype.keys);
11248
11268
  }
11249
11269
  function event(scheduler2) {
11250
- scheduler2.$keyboardNavigation.Event = function(id2) {
11270
+ scheduler2.$keyboardNavigation.Event = function(id) {
11251
11271
  this.eventId = null;
11252
- if (scheduler2.getEvent(id2)) {
11253
- var ev = scheduler2.getEvent(id2);
11272
+ if (scheduler2.getEvent(id)) {
11273
+ var ev = scheduler2.getEvent(id);
11254
11274
  this.start = new Date(ev.start_date);
11255
11275
  this.end = new Date(ev.end_date);
11256
11276
  this.section = this._getSection(ev);
11257
- this.eventId = id2;
11277
+ this.eventId = id;
11258
11278
  }
11259
11279
  };
11260
11280
  scheduler2.$keyboardNavigation.Event.prototype = scheduler2._compose(scheduler2.$keyboardNavigation.KeyNavNode, { _getNodes: function() {
@@ -11267,12 +11287,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
11267
11287
  if (!eventNode || !scheduler2._locate_event(eventNode)) {
11268
11288
  defaultElement = new scheduler2.$keyboardNavigation.TimeSlot();
11269
11289
  } else {
11270
- var id2 = scheduler2._locate_event(eventNode);
11271
- defaultElement = new scheduler2.$keyboardNavigation.Event(id2);
11290
+ var id = scheduler2._locate_event(eventNode);
11291
+ defaultElement = new scheduler2.$keyboardNavigation.Event(id);
11272
11292
  }
11273
11293
  return defaultElement;
11274
- }, isScrolledIntoView: function(el2) {
11275
- var eventBox = el2.getBoundingClientRect();
11294
+ }, isScrolledIntoView: function(el) {
11295
+ var eventBox = el.getBoundingClientRect();
11276
11296
  var viewPort = scheduler2.$container.querySelector(".dhx_cal_data").getBoundingClientRect();
11277
11297
  if (eventBox.bottom < viewPort.top || eventBox.top > viewPort.bottom) {
11278
11298
  return false;
@@ -12285,32 +12305,32 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
12285
12305
  }, focusGlobalNode: function() {
12286
12306
  this.blurNode(this.globalNode);
12287
12307
  this.focusNode(this.globalNode);
12288
- }, setActiveNode: function(el2) {
12289
- if (!el2 || !el2.isValid())
12308
+ }, setActiveNode: function(el) {
12309
+ if (!el || !el.isValid())
12290
12310
  return;
12291
12311
  if (this.activeNode) {
12292
- if (this.activeNode.compareTo(el2)) {
12312
+ if (this.activeNode.compareTo(el)) {
12293
12313
  return;
12294
12314
  }
12295
12315
  }
12296
12316
  if (this.isEnabled()) {
12297
12317
  this.blurNode(this.activeNode);
12298
- this.activeNode = el2;
12318
+ this.activeNode = el;
12299
12319
  this.focusNode(this.activeNode);
12300
12320
  }
12301
- }, focusNode: function(el2) {
12302
- if (el2 && el2.focus) {
12303
- el2.focus();
12304
- if (el2.getNode && document.activeElement != el2.getNode()) {
12321
+ }, focusNode: function(el) {
12322
+ if (el && el.focus) {
12323
+ el.focus();
12324
+ if (el.getNode && document.activeElement != el.getNode()) {
12305
12325
  this.setActiveNode(new scheduler2.$keyboardNavigation.DataArea());
12306
12326
  }
12307
12327
  }
12308
- }, blurNode: function(el2) {
12309
- if (el2 && el2.blur) {
12310
- el2.blur();
12328
+ }, blurNode: function(el) {
12329
+ if (el && el.blur) {
12330
+ el.blur();
12311
12331
  }
12312
- }, getInlineEditor: function(id2) {
12313
- var editor = scheduler2.$container.querySelector(".dhx_cal_editor[" + scheduler2.config.event_attribute + "='" + id2 + "'] textarea");
12332
+ }, getInlineEditor: function(id) {
12333
+ var editor = scheduler2.$container.querySelector(".dhx_cal_editor[" + scheduler2.config.event_attribute + "='" + id + "'] textarea");
12314
12334
  if (editor && editor.offsetWidth) {
12315
12335
  return editor;
12316
12336
  }
@@ -12371,7 +12391,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
12371
12391
  keyNavPointer = scheduler2.$keyboardNavigation.dispatcher.isEnabled();
12372
12392
  return mousePointer || keyNavPointer;
12373
12393
  }
12374
- scheduler2.attachEvent("onMouseMove", function(id2, e) {
12394
+ scheduler2.attachEvent("onMouseMove", function(id, e) {
12375
12395
  var state = scheduler2.getState();
12376
12396
  if (!(state.mode && state.min_date)) {
12377
12397
  return;
@@ -12595,11 +12615,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
12595
12615
  }
12596
12616
  }
12597
12617
  var updateEvent = scheduler2.updateEvent;
12598
- scheduler2.updateEvent = function(id2) {
12618
+ scheduler2.updateEvent = function(id) {
12599
12619
  var res = updateEvent.apply(this, arguments);
12600
12620
  if (scheduler2.config.key_nav && dispatcher.isEnabled()) {
12601
- if (scheduler2.getState().select_id == id2) {
12602
- var element = new scheduler2.$keyboardNavigation.Event(id2);
12621
+ if (scheduler2.getState().select_id == id) {
12622
+ var element = new scheduler2.$keyboardNavigation.Event(id);
12603
12623
  if (!scheduler2.getState().lightbox_id) {
12604
12624
  focusEvent(element);
12605
12625
  }
@@ -12607,12 +12627,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
12607
12627
  }
12608
12628
  return res;
12609
12629
  };
12610
- scheduler2.attachEvent("onEventDeleted", function(id2) {
12630
+ scheduler2.attachEvent("onEventDeleted", function(id) {
12611
12631
  if (!scheduler2.config.key_nav)
12612
12632
  return true;
12613
12633
  if (dispatcher.isEnabled()) {
12614
12634
  var activeNode = dispatcher.getActiveNode();
12615
- if (activeNode.eventId == id2) {
12635
+ if (activeNode.eventId == id) {
12616
12636
  dispatcher.setActiveNode(new scheduler2.$keyboardNavigation.TimeSlot());
12617
12637
  }
12618
12638
  }
@@ -12660,7 +12680,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
12660
12680
  var rowIndex = 0;
12661
12681
  var cellIndex = 0;
12662
12682
  if (cell) {
12663
- var tr2;
12683
+ var tr;
12664
12684
  var td;
12665
12685
  var current = target;
12666
12686
  while (current && current.tagName.toLowerCase() != "td") {
@@ -12668,17 +12688,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
12668
12688
  }
12669
12689
  if (current) {
12670
12690
  td = current;
12671
- tr2 = td.parentNode;
12691
+ tr = td.parentNode;
12672
12692
  }
12673
- if (tr2 && td) {
12674
- var rows = tr2.parentNode.querySelectorAll("tr");
12693
+ if (tr && td) {
12694
+ var rows = tr.parentNode.querySelectorAll("tr");
12675
12695
  for (var i = 0; i < rows.length; i++) {
12676
- if (rows[i] == tr2) {
12696
+ if (rows[i] == tr) {
12677
12697
  rowIndex = i;
12678
12698
  break;
12679
12699
  }
12680
12700
  }
12681
- var cells = tr2.querySelectorAll("td");
12701
+ var cells = tr.querySelectorAll("td");
12682
12702
  for (var i = 0; i < cells.length; i++) {
12683
12703
  if (cells[i] == td) {
12684
12704
  cellIndex = i;
@@ -12899,34 +12919,34 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
12899
12919
  });
12900
12920
  scheduler2._dp_init = function(dp) {
12901
12921
  dp._methods = ["_set_event_text_style", "", "changeEventId", "deleteEvent"];
12902
- this.attachEvent("onEventAdded", function(id2) {
12903
- if (!this._loading && this.validId(id2) && this.getEvent(id2) && this.getEvent(id2).layer == dp.layer)
12904
- dp.setUpdated(id2, true, "inserted");
12922
+ this.attachEvent("onEventAdded", function(id) {
12923
+ if (!this._loading && this.validId(id) && this.getEvent(id) && this.getEvent(id).layer == dp.layer)
12924
+ dp.setUpdated(id, true, "inserted");
12905
12925
  });
12906
- this.attachEvent("onBeforeEventDelete", function(id2) {
12907
- if (this.getEvent(id2) && this.getEvent(id2).layer == dp.layer) {
12908
- if (!this.validId(id2))
12926
+ this.attachEvent("onBeforeEventDelete", function(id) {
12927
+ if (this.getEvent(id) && this.getEvent(id).layer == dp.layer) {
12928
+ if (!this.validId(id))
12909
12929
  return;
12910
- var z = dp.getState(id2);
12930
+ var z = dp.getState(id);
12911
12931
  if (z == "inserted" || this._new_event) {
12912
- dp.setUpdated(id2, false);
12932
+ dp.setUpdated(id, false);
12913
12933
  return true;
12914
12934
  }
12915
12935
  if (z == "deleted")
12916
12936
  return false;
12917
12937
  if (z == "true_deleted")
12918
12938
  return true;
12919
- dp.setUpdated(id2, true, "deleted");
12939
+ dp.setUpdated(id, true, "deleted");
12920
12940
  return false;
12921
12941
  } else
12922
12942
  return true;
12923
12943
  });
12924
- this.attachEvent("onEventChanged", function(id2) {
12925
- if (!this._loading && this.validId(id2) && this.getEvent(id2) && this.getEvent(id2).layer == dp.layer)
12926
- dp.setUpdated(id2, true, "updated");
12944
+ this.attachEvent("onEventChanged", function(id) {
12945
+ if (!this._loading && this.validId(id) && this.getEvent(id) && this.getEvent(id).layer == dp.layer)
12946
+ dp.setUpdated(id, true, "updated");
12927
12947
  });
12928
- dp._getRowData = function(id2, pref) {
12929
- var ev = this.obj.getEvent(id2);
12948
+ dp._getRowData = function(id, pref) {
12949
+ var ev = this.obj.getEvent(id);
12930
12950
  var data = {};
12931
12951
  for (var a in ev) {
12932
12952
  if (a.indexOf("_") === 0)
@@ -12942,9 +12962,9 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
12942
12962
  };
12943
12963
  dp.attachEvent("insertCallback", scheduler2._update_callback);
12944
12964
  dp.attachEvent("updateCallback", scheduler2._update_callback);
12945
- dp.attachEvent("deleteCallback", function(upd, id2) {
12946
- this.obj.setUserData(id2, this.action_param, "true_deleted");
12947
- this.obj.deleteEvent(id2);
12965
+ dp.attachEvent("deleteCallback", function(upd, id) {
12966
+ this.obj.setUserData(id, this.action_param, "true_deleted");
12967
+ this.obj.deleteEvent(id);
12948
12968
  });
12949
12969
  };
12950
12970
  (function() {
@@ -13019,14 +13039,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
13019
13039
  }
13020
13040
  return count >= scheduler2.config.collision_limit;
13021
13041
  });
13022
- scheduler2.addEvent = function(start_date, end_date, text, id2, extra_data) {
13042
+ scheduler2.addEvent = function(start_date, end_date, text, id, extra_data) {
13023
13043
  var ev = start_date;
13024
13044
  if (arguments.length != 1) {
13025
13045
  ev = extra_data || {};
13026
13046
  ev.start_date = start_date;
13027
13047
  ev.end_date = end_date;
13028
13048
  ev.text = text;
13029
- ev.id = id2;
13049
+ ev.id = id;
13030
13050
  ev.layer = this.defaultLayer;
13031
13051
  }
13032
13052
  ev.id = ev.id || scheduler2.uid();
@@ -13127,21 +13147,21 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
13127
13147
  }
13128
13148
  };
13129
13149
  scheduler2._render_v_bar = function(ev, x, y, w, h, style, contentA, contentB, bottom) {
13130
- var id2 = ev.id;
13150
+ var id = ev.id;
13131
13151
  if (contentA.indexOf("<div class=") == -1)
13132
13152
  contentA = scheduler2.templates["event_header_" + ev.layer] ? scheduler2.templates["event_header_" + ev.layer](ev.start_date, ev.end_date, ev) : contentA;
13133
13153
  if (contentB.indexOf("<div class=") == -1)
13134
13154
  contentB = scheduler2.templates["event_text_" + ev.layer] ? scheduler2.templates["event_text_" + ev.layer](ev.start_date, ev.end_date, ev) : contentB;
13135
13155
  var d = document.createElement("div");
13136
- var cs2 = "dhx_cal_event";
13156
+ var cs = "dhx_cal_event";
13137
13157
  var cse = scheduler2.templates["event_class_" + ev.layer] ? scheduler2.templates["event_class_" + ev.layer](ev.start_date, ev.end_date, ev) : scheduler2.templates.event_class(ev.start_date, ev.end_date, ev);
13138
13158
  if (cse)
13139
- cs2 = cs2 + " " + cse;
13159
+ cs = cs + " " + cse;
13140
13160
  var borderBox = scheduler2._border_box_events();
13141
13161
  var borderBoxWidth = w - 2;
13142
13162
  var boxWidth = borderBox ? borderBoxWidth : w - 4, headerWidth = borderBox ? borderBoxWidth : w - 6, bodyWidth = borderBox ? borderBoxWidth : w - 14, footerWidth = borderBox ? borderBoxWidth - 2 : w - 8;
13143
13163
  var bodyHeight = borderBox ? h - this.xy.event_header_height : h - 30 + 1;
13144
- var html = '<div event_id="' + id2 + '" ' + scheduler2.config.event_attribute + '="' + id2 + '" class="' + cs2 + '" style="position:absolute; top:' + y + "px; left:" + x + "px; width:" + boxWidth + "px; height:" + h + "px;" + (style || "") + '">';
13164
+ var html = '<div event_id="' + id + '" ' + scheduler2.config.event_attribute + '="' + id + '" class="' + cs + '" style="position:absolute; top:' + y + "px; left:" + x + "px; width:" + boxWidth + "px; height:" + h + "px;" + (style || "") + '">';
13145
13165
  html += '<div class="dhx_header" style=" width:' + headerWidth + 'px;" >&nbsp;</div>';
13146
13166
  html += '<div class="dhx_title">' + contentA + "</div>";
13147
13167
  html += '<div class="dhx_body" style=" width:' + bodyWidth + "px; height:" + bodyHeight + 'px;">' + contentB + "</div>";
@@ -13159,11 +13179,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
13159
13179
  var hb = this.xy.bar_height;
13160
13180
  var y = this._colsS.heights[ev._sweek] + (this._colsS.height ? this.xy.month_scale_height + 2 : 2) + ev._sorder * hb;
13161
13181
  var d = document.createElement("div");
13162
- var cs2 = ev._timed ? "dhx_cal_event_clear" : "dhx_cal_event_line";
13182
+ var cs = ev._timed ? "dhx_cal_event_clear" : "dhx_cal_event_line";
13163
13183
  var cse = scheduler2.templates["event_class_" + ev.layer] ? scheduler2.templates["event_class_" + ev.layer](ev.start_date, ev.end_date, ev) : scheduler2.templates.event_class(ev.start_date, ev.end_date, ev);
13164
13184
  if (cse)
13165
- cs2 = cs2 + " " + cse;
13166
- var html = '<div event_id="' + ev.id + '" ' + this.config.event_attribute + '="' + ev.id + '" class="' + cs2 + '" style="position:absolute; top:' + y + "px; left:" + x + "px; width:" + (x2 - x - 15) + "px;" + (ev._text_style || "") + '">';
13185
+ cs = cs + " " + cse;
13186
+ var html = '<div event_id="' + ev.id + '" ' + this.config.event_attribute + '="' + ev.id + '" class="' + cs + '" style="position:absolute; top:' + y + "px; left:" + x + "px; width:" + (x2 - x - 15) + "px;" + (ev._text_style || "") + '">';
13167
13187
  if (ev._timed)
13168
13188
  html += scheduler2.templates["event_bar_date_" + ev.layer] ? scheduler2.templates["event_bar_date_" + ev.layer](ev.start_date, ev.end_date, ev) : scheduler2.templates.event_bar_date(ev.start_date, ev.end_date, ev);
13169
13189
  html += scheduler2.templates["event_bar_text_" + ev.layer] ? scheduler2.templates["event_bar_text_" + ev.layer](ev.start_date, ev.end_date, ev) : scheduler2.templates.event_bar_text(ev.start_date, ev.end_date, ev) + "</div>)";
@@ -13244,7 +13264,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
13244
13264
  this._rendered.push(obj);
13245
13265
  }
13246
13266
  };
13247
- scheduler2.filter_agenda = function(id2, event2) {
13267
+ scheduler2.filter_agenda = function(id, event2) {
13248
13268
  var layer2 = scheduler2.getLayer(event2.layer);
13249
13269
  return layer2 && layer2.visible;
13250
13270
  };
@@ -13282,22 +13302,22 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
13282
13302
  scheduler2.attachEvent("onMouseDown", function(classname) {
13283
13303
  return !(classname == dhx_time_block);
13284
13304
  });
13285
- scheduler2.attachEvent("onBeforeDrag", function(id2) {
13286
- if (!id2)
13305
+ scheduler2.attachEvent("onBeforeDrag", function(id) {
13306
+ if (!id)
13287
13307
  return true;
13288
- return scheduler2.checkLimitViolation(scheduler2.getEvent(id2));
13308
+ return scheduler2.checkLimitViolation(scheduler2.getEvent(id));
13289
13309
  });
13290
13310
  scheduler2.attachEvent("onClick", function(event_id, native_event_object) {
13291
13311
  return scheduler2.checkLimitViolation(scheduler2.getEvent(event_id));
13292
13312
  });
13293
- scheduler2.attachEvent("onBeforeLightbox", function(id2) {
13294
- var ev = scheduler2.getEvent(id2);
13313
+ scheduler2.attachEvent("onBeforeLightbox", function(id) {
13314
+ var ev = scheduler2.getEvent(id);
13295
13315
  before = [ev.start_date, ev.end_date];
13296
13316
  return scheduler2.checkLimitViolation(ev);
13297
13317
  });
13298
- scheduler2.attachEvent("onEventSave", function(id2, data, is_new_event) {
13318
+ scheduler2.attachEvent("onEventSave", function(id, data, is_new_event) {
13299
13319
  if (!(data.start_date && data.end_date)) {
13300
- var ev = scheduler2.getEvent(id2);
13320
+ var ev = scheduler2.getEvent(id);
13301
13321
  data.start_date = new Date(ev.start_date);
13302
13322
  data.end_date = new Date(ev.end_date);
13303
13323
  }
@@ -13308,10 +13328,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
13308
13328
  }
13309
13329
  return scheduler2.checkLimitViolation(data);
13310
13330
  });
13311
- scheduler2.attachEvent("onEventAdded", function(id2) {
13312
- if (!id2)
13331
+ scheduler2.attachEvent("onEventAdded", function(id) {
13332
+ if (!id)
13313
13333
  return true;
13314
- var ev = scheduler2.getEvent(id2);
13334
+ var ev = scheduler2.getEvent(id);
13315
13335
  if (!scheduler2.checkLimitViolation(ev) && scheduler2.config.limit_start && scheduler2.config.limit_end) {
13316
13336
  if (ev.start_date < scheduler2.config.limit_start) {
13317
13337
  ev.start_date = new Date(scheduler2.config.limit_start);
@@ -13332,10 +13352,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
13332
13352
  }
13333
13353
  return true;
13334
13354
  });
13335
- scheduler2.attachEvent("onEventChanged", function(id2) {
13336
- if (!id2)
13355
+ scheduler2.attachEvent("onEventChanged", function(id) {
13356
+ if (!id)
13337
13357
  return true;
13338
- var ev = scheduler2.getEvent(id2);
13358
+ var ev = scheduler2.getEvent(id);
13339
13359
  if (!scheduler2.checkLimitViolation(ev)) {
13340
13360
  if (!before)
13341
13361
  return false;
@@ -13817,13 +13837,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
13817
13837
  }
13818
13838
  };
13819
13839
  function attachSchedulerEvents() {
13820
- eventHandlerIds.push(scheduler2.attachEvent("onEventSave", function(id2, ev, is_new) {
13821
- let unmodifiedEvent = scheduler2.getEvent(id2);
13840
+ eventHandlerIds.push(scheduler2.attachEvent("onEventSave", function(id, ev, is_new) {
13841
+ let unmodifiedEvent = scheduler2.getEvent(id);
13822
13842
  if (unmodifiedEvent && unmodifiedEvent.event_location != ev.event_location) {
13823
13843
  scheduler2._eventLocationChanged = true;
13824
13844
  }
13825
13845
  return true;
13826
- }), scheduler2.attachEvent("onEventChanged", (id2, event2) => {
13846
+ }), scheduler2.attachEvent("onEventChanged", (id, event2) => {
13827
13847
  const { start_date, end_date } = event2;
13828
13848
  const { min_date, max_date } = scheduler2.getState();
13829
13849
  if (start_date.valueOf() < max_date.valueOf() && end_date.valueOf() > min_date.valueOf()) {
@@ -13841,7 +13861,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
13841
13861
  let newIdEvent = scheduler2.getEvent(new_id);
13842
13862
  mapAdapter == null ? void 0 : mapAdapter.removeEventMarker(old_id);
13843
13863
  mapAdapter == null ? void 0 : mapAdapter.addEventMarker(newIdEvent);
13844
- }), scheduler2.attachEvent("onEventAdded", (id2, event2) => {
13864
+ }), scheduler2.attachEvent("onEventAdded", (id, event2) => {
13845
13865
  const { start_date, end_date } = event2;
13846
13866
  const { min_date, max_date } = scheduler2.getState();
13847
13867
  if (start_date.valueOf() < max_date.valueOf() && end_date.valueOf() > min_date.valueOf()) {
@@ -13855,20 +13875,20 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
13855
13875
  }
13856
13876
  }
13857
13877
  }
13858
- }), scheduler2.attachEvent("onClick", function(id2, e) {
13859
- const event2 = scheduler2.getEvent(id2);
13878
+ }), scheduler2.attachEvent("onClick", function(id, e) {
13879
+ const event2 = scheduler2.getEvent(id);
13860
13880
  if (mapAdapter && event2)
13861
13881
  mapAdapter.onEventClick(event2);
13862
13882
  return false;
13863
- }), scheduler2.attachEvent("onBeforeEventDelete", (id2, event2) => {
13883
+ }), scheduler2.attachEvent("onBeforeEventDelete", (id, event2) => {
13864
13884
  if (mapAdapter) {
13865
- mapAdapter.removeEventMarker(id2);
13885
+ mapAdapter.removeEventMarker(id);
13866
13886
  }
13867
13887
  return true;
13868
13888
  }));
13869
13889
  }
13870
13890
  function detachSchedulerEvents() {
13871
- eventHandlerIds.forEach((id2) => scheduler2.detachEvent(id2));
13891
+ eventHandlerIds.forEach((id) => scheduler2.detachEvent(id));
13872
13892
  eventHandlerIds = [];
13873
13893
  }
13874
13894
  scheduler2.attachEvent("onSchedulerReady", function() {
@@ -14012,7 +14032,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
14012
14032
  scheduler2.set_sizes();
14013
14033
  }
14014
14034
  }
14015
- scheduler2.attachEvent("onLocationError", function(id2) {
14035
+ scheduler2.attachEvent("onLocationError", function(id) {
14016
14036
  alert("Location can't be found");
14017
14037
  return google.maps.LatLng(51.47784, -1492e-6);
14018
14038
  });
@@ -14209,10 +14229,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
14209
14229
  css = css || "dhx_calendar_click";
14210
14230
  if (!date)
14211
14231
  return;
14212
- var el2 = this._locateCalendar(cal, date);
14213
- if (!el2)
14232
+ var el = this._locateCalendar(cal, date);
14233
+ if (!el)
14214
14234
  return;
14215
- el2.className = (el2.className || "").replace(RegExp(css, "g"));
14235
+ el.className = (el.className || "").replace(RegExp(css, "g"));
14216
14236
  };
14217
14237
  scheduler2._week_template = function(width) {
14218
14238
  var summ = width || 250;
@@ -14755,36 +14775,36 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
14755
14775
  if (obj instanceof Backbone.Collection)
14756
14776
  _finish_ext_load(scheduler2);
14757
14777
  });
14758
- scheduler2.attachEvent("onEventCreated", function(id2) {
14759
- var ev = new events.model(scheduler2.getEvent(id2));
14760
- scheduler2._events[id2] = ev.toJSON();
14761
- scheduler2._events[id2].id = id2;
14778
+ scheduler2.attachEvent("onEventCreated", function(id) {
14779
+ var ev = new events.model(scheduler2.getEvent(id));
14780
+ scheduler2._events[id] = ev.toJSON();
14781
+ scheduler2._events[id].id = id;
14762
14782
  return true;
14763
14783
  });
14764
- scheduler2.attachEvent("onEventAdded", function(id2) {
14765
- if (!events.get(id2)) {
14766
- var data = sanitize(scheduler2.getEvent(id2));
14784
+ scheduler2.attachEvent("onEventAdded", function(id) {
14785
+ if (!events.get(id)) {
14786
+ var data = sanitize(scheduler2.getEvent(id));
14767
14787
  var model = new events.model(data);
14768
14788
  var cid = _get_id(model);
14769
- if (cid != id2)
14770
- this.changeEventId(id2, cid);
14789
+ if (cid != id)
14790
+ this.changeEventId(id, cid);
14771
14791
  events.add(model);
14772
14792
  events.trigger("scheduler:add", model);
14773
14793
  }
14774
14794
  return true;
14775
14795
  });
14776
- scheduler2.attachEvent("onEventChanged", function(id2) {
14777
- var ev = events.get(id2);
14778
- var upd = sanitize(scheduler2.getEvent(id2));
14796
+ scheduler2.attachEvent("onEventChanged", function(id) {
14797
+ var ev = events.get(id);
14798
+ var upd = sanitize(scheduler2.getEvent(id));
14779
14799
  ev.set(upd);
14780
14800
  events.trigger("scheduler:change", ev);
14781
14801
  return true;
14782
14802
  });
14783
- scheduler2.attachEvent("onEventDeleted", function(id2) {
14784
- var model = events.get(id2);
14803
+ scheduler2.attachEvent("onEventDeleted", function(id) {
14804
+ var model = events.get(id);
14785
14805
  if (model) {
14786
14806
  events.trigger("scheduler:remove", model);
14787
- events.remove(id2);
14807
+ events.remove(id);
14788
14808
  }
14789
14809
  return true;
14790
14810
  });
@@ -14802,10 +14822,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
14802
14822
  function on_drop(sourceHtmlObject, dhtmlObject, targetHtmlObject, targetHtml) {
14803
14823
  if (scheduler2.checkEvent("onBeforeExternalDragIn") && !scheduler2.callEvent("onBeforeExternalDragIn", [sourceHtmlObject, dhtmlObject, targetHtmlObject, targetHtml, last_event]))
14804
14824
  return;
14805
- var temp = scheduler2.attachEvent("onEventCreated", function(id2) {
14806
- if (!scheduler2.callEvent("onExternalDragIn", [id2, sourceHtmlObject, last_event])) {
14825
+ var temp = scheduler2.attachEvent("onEventCreated", function(id) {
14826
+ if (!scheduler2.callEvent("onExternalDragIn", [id, sourceHtmlObject, last_event])) {
14807
14827
  this._drag_mode = this._drag_id = null;
14808
- this.deleteEvent(id2);
14828
+ this.deleteEvent(id);
14809
14829
  }
14810
14830
  });
14811
14831
  var action_data = scheduler2.getActionData(last_event);
@@ -14869,8 +14889,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
14869
14889
  var header = scheduler2._els.dhx_cal_header[0].childNodes;
14870
14890
  var els = header[1] ? header[1].childNodes : header[0].childNodes;
14871
14891
  for (var i = 0; i < els.length; i++) {
14872
- var el2 = els[i].style ? els[i] : els[i].parentNode;
14873
- var w = parseFloat(el2.style.width);
14892
+ var el = els[i].style ? els[i] : els[i].parentNode;
14893
+ var w = parseFloat(el.style.width);
14874
14894
  if (width > w) {
14875
14895
  width -= w + 1;
14876
14896
  r += w + 1;
@@ -14950,8 +14970,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
14950
14970
  if (scheduler2.matrix && scheduler2.matrix[scheduler2._mode]) {
14951
14971
  xml += "<y>";
14952
14972
  for (var i = 0; i < yh.firstChild.rows.length; i++) {
14953
- var el2 = yh.firstChild.rows[i];
14954
- xml += "<row><![CDATA[" + clean_html(el2.cells[0].innerHTML) + "]]></row>";
14973
+ var el = yh.firstChild.rows[i];
14974
+ xml += "<row><![CDATA[" + clean_html(el.cells[0].innerHTML) + "]]></row>";
14955
14975
  }
14956
14976
  xml += "</y>";
14957
14977
  dy = yh.firstChild.rows[0].cells[0].offsetHeight;
@@ -15076,8 +15096,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
15076
15096
  week = de_week(evs[i], week);
15077
15097
  } else if (scheduler2.matrix && scheduler2.matrix[scheduler2._mode]) {
15078
15098
  day = 0;
15079
- var el2 = evs[i].parentNode.parentNode.parentNode;
15080
- week = el2.rowIndex;
15099
+ var el = evs[i].parentNode.parentNode.parentNode;
15100
+ week = el.rowIndex;
15081
15101
  var dy_copy = dy;
15082
15102
  dy = evs[i].parentNode.offsetHeight;
15083
15103
  zy = y_norm(evs[i].style.top);
@@ -15193,11 +15213,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
15193
15213
  });
15194
15214
  }
15195
15215
  });
15196
- scheduler2.attachEvent("onClick", function(id2) {
15216
+ scheduler2.attachEvent("onClick", function(id) {
15197
15217
  if (!scheduler2.config.show_quick_info) {
15198
15218
  return;
15199
15219
  }
15200
- scheduler2.showQuickInfo(id2);
15220
+ scheduler2.showQuickInfo(id);
15201
15221
  return true;
15202
15222
  });
15203
15223
  (function() {
@@ -15227,24 +15247,24 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
15227
15247
  return scheduler2.templates.week_date(start, end, ev);
15228
15248
  }
15229
15249
  };
15230
- scheduler2.showQuickInfo = function(id2) {
15231
- if (id2 == this._quick_info_box_id)
15250
+ scheduler2.showQuickInfo = function(id) {
15251
+ if (id == this._quick_info_box_id)
15232
15252
  return;
15233
15253
  this.hideQuickInfo(true);
15234
- if (this.callEvent("onBeforeQuickInfo", [id2]) === false) {
15254
+ if (this.callEvent("onBeforeQuickInfo", [id]) === false) {
15235
15255
  return;
15236
15256
  }
15237
15257
  let pos;
15238
- if (clickedElementPosition && clickedElementPosition.id == id2) {
15258
+ if (clickedElementPosition && clickedElementPosition.id == id) {
15239
15259
  pos = clickedElementPosition.position;
15240
15260
  } else {
15241
- pos = this._get_event_counter_part(id2);
15261
+ pos = this._get_event_counter_part(id);
15242
15262
  }
15243
15263
  if (pos) {
15244
15264
  this._quick_info_box = this._init_quick_info(pos);
15245
- this._fill_quick_data(id2);
15265
+ this._fill_quick_data(id);
15246
15266
  this._show_quick_info(pos);
15247
- this.callEvent("onQuickInfo", [id2]);
15267
+ this.callEvent("onQuickInfo", [id]);
15248
15268
  }
15249
15269
  };
15250
15270
  (function() {
@@ -15422,8 +15442,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
15422
15442
  }
15423
15443
  var mask = scheduler2._getClassName(node);
15424
15444
  if (mask.indexOf("_icon") != -1) {
15425
- var id2 = scheduler2._quick_info_box_id;
15426
- scheduler2._click.buttons[mask.split(" ")[1].replace("icon_", "")](id2);
15445
+ var id = scheduler2._quick_info_box_id;
15446
+ scheduler2._click.buttons[mask.split(" ")[1].replace("icon_", "")](id);
15427
15447
  } else
15428
15448
  scheduler2._qi_button_click(node.parentNode);
15429
15449
  };
@@ -15443,14 +15463,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
15443
15463
  }
15444
15464
  return 0;
15445
15465
  }
15446
- scheduler2._get_event_counter_part = function(id2) {
15447
- var domEv = scheduler2.getRenderedEvent(id2);
15466
+ scheduler2._get_event_counter_part = function(id) {
15467
+ var domEv = scheduler2.getRenderedEvent(id);
15448
15468
  return getPositionInsideScheduler(domEv);
15449
15469
  };
15450
- scheduler2._fill_quick_data = function(id2) {
15451
- var ev = scheduler2.getEvent(id2);
15470
+ scheduler2._fill_quick_data = function(id) {
15471
+ var ev = scheduler2.getEvent(id);
15452
15472
  var qi = scheduler2._quick_info_box;
15453
- scheduler2._quick_info_box_id = id2;
15473
+ scheduler2._quick_info_box_id = id;
15454
15474
  var header = { content: scheduler2.templates.quick_info_title(ev.start_date, ev.end_date, ev), date: scheduler2.templates.quick_info_date(ev.start_date, ev.end_date, ev) };
15455
15475
  var titleContent = qi.querySelector(".dhx_cal_qi_tcontent");
15456
15476
  titleContent.innerHTML = `<span>${header.content}</span>`;
@@ -15475,8 +15495,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
15475
15495
  }
15476
15496
  var original_left_buttons = scheduler2.config.buttons_left.slice();
15477
15497
  var original_right_buttons = scheduler2.config.buttons_right.slice();
15478
- scheduler2.attachEvent("onBeforeLightbox", function(id2) {
15479
- if (this.config.readonly_form || this.getEvent(id2).readonly) {
15498
+ scheduler2.attachEvent("onBeforeLightbox", function(id) {
15499
+ if (this.config.readonly_form || this.getEvent(id).readonly) {
15480
15500
  this.config.readonly_active = true;
15481
15501
  } else {
15482
15502
  this.config.readonly_active = false;
@@ -15864,14 +15884,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
15864
15884
  };
15865
15885
  function __spreadArray(to, from, pack) {
15866
15886
  if (pack || arguments.length === 2)
15867
- for (var i = 0, l = from.length, ar2; i < l; i++) {
15868
- if (ar2 || !(i in from)) {
15869
- if (!ar2)
15870
- ar2 = Array.prototype.slice.call(from, 0, i);
15871
- ar2[i] = from[i];
15887
+ for (var i = 0, l = from.length, ar; i < l; i++) {
15888
+ if (ar || !(i in from)) {
15889
+ if (!ar)
15890
+ ar = Array.prototype.slice.call(from, 0, i);
15891
+ ar[i] = from[i];
15872
15892
  }
15873
15893
  }
15874
- return to.concat(ar2 || Array.prototype.slice.call(from));
15894
+ return to.concat(ar || Array.prototype.slice.call(from));
15875
15895
  }
15876
15896
  typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message2) {
15877
15897
  var e = new Error(message2);
@@ -15897,8 +15917,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
15897
15917
  var contains = function(arr, val) {
15898
15918
  return arr.indexOf(val) !== -1;
15899
15919
  };
15900
- var defaultGetText = function(id2) {
15901
- return id2.toString();
15920
+ var defaultGetText = function(id) {
15921
+ return id.toString();
15902
15922
  };
15903
15923
  var defaultDateFormatter = function(year, month, day) {
15904
15924
  return "".concat(month, " ").concat(day, ", ").concat(year);
@@ -18159,13 +18179,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18159
18179
  event2.deleted = null;
18160
18180
  }
18161
18181
  function createException(ev) {
18162
- let id2 = ev.id.split("#");
18182
+ let id = ev.id.split("#");
18163
18183
  let nid = scheduler2.uid();
18164
18184
  scheduler2._not_render = true;
18165
18185
  let nev = scheduler2._copy_event(ev);
18166
18186
  nev.id = nid;
18167
- nev.recurring_event_id = id2[0];
18168
- let timestamp = id2[1];
18187
+ nev.recurring_event_id = id[0];
18188
+ let timestamp = id[1];
18169
18189
  nev.original_start = new Date(Number(timestamp));
18170
18190
  scheduler2._add_rec_marker(nev, timestamp);
18171
18191
  scheduler2.addEvent(nev);
@@ -18177,18 +18197,18 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18177
18197
  function setUTCPartsToDate(d) {
18178
18198
  return new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds());
18179
18199
  }
18180
- function updateFollowingEventsRRULE(ev) {
18200
+ function updateFollowingRRULEOnSave(ev) {
18181
18201
  if (ev.rrule.includes(";UNTIL=")) {
18182
18202
  ev.rrule = ev.rrule.split(";UNTIL=")[0];
18183
18203
  }
18184
- let parsedRRule = rrulestr(`RRULE:${ev.rrule};UNTIL=${toIcalString(ev._end_date || ev.end_date)}`, { dtstart: ev.start_date });
18204
+ let parsedRRule = rrulestr(`RRULE:${ev.rrule};UNTIL=${toIcalString(setUTCPartsToDate(ev._end_date || ev.end_date))}`, { dtstart: ev.start_date });
18185
18205
  let newRRULE = new RRule(parsedRRule.origOptions).toString().replace("RRULE:", "");
18186
18206
  newRRULE = newRRULE.split("\n")[1];
18187
18207
  ev.rrule = newRRULE;
18188
18208
  }
18189
- function updateFollowingWithWEEKLY(id2, ev) {
18209
+ function updateFollowingRRULE(id, ev) {
18190
18210
  if (!ev) {
18191
- ev = scheduler2.getEvent(id2);
18211
+ ev = scheduler2.getEvent(id);
18192
18212
  }
18193
18213
  let rruleStringparts = ev.rrule.split(";");
18194
18214
  let updatedRRULE = [];
@@ -18201,6 +18221,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18201
18221
  continue;
18202
18222
  }
18203
18223
  }
18224
+ if (code === "UNTIL") {
18225
+ const rule = rrulestr(ev.rrule);
18226
+ const untilDate = rule.options.until;
18227
+ if (untilDate.valueOf() < ev.start_date.valueOf()) {
18228
+ ev._end_date = ev.end_date;
18229
+ }
18230
+ }
18204
18231
  updatedRRULE.push(code);
18205
18232
  updatedRRULE.push("=");
18206
18233
  updatedRRULE.push(name);
@@ -18209,8 +18236,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18209
18236
  updatedRRULE.pop();
18210
18237
  ev.rrule = updatedRRULE.join("");
18211
18238
  }
18212
- scheduler2._isFollowing = function(id2) {
18213
- let ev = scheduler2.getEvent(id2);
18239
+ scheduler2._isFollowing = function(id) {
18240
+ let ev = scheduler2.getEvent(id);
18214
18241
  return !!(ev && ev._thisAndFollowing);
18215
18242
  };
18216
18243
  scheduler2._isFirstOccurrence = function(ev) {
@@ -18237,18 +18264,18 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18237
18264
  this._rec_markers_pull[ev.event_pid] = {};
18238
18265
  this._rec_markers_pull[ev.event_pid][time] = ev;
18239
18266
  };
18240
- scheduler2._get_rec_marker = function(time, id2) {
18241
- let ch = this._rec_markers_pull[id2];
18267
+ scheduler2._get_rec_marker = function(time, id) {
18268
+ let ch = this._rec_markers_pull[id];
18242
18269
  if (ch)
18243
18270
  return ch[time];
18244
18271
  return null;
18245
18272
  };
18246
- scheduler2._get_rec_markers = function(id2) {
18247
- return this._rec_markers_pull[id2] || [];
18273
+ scheduler2._get_rec_markers = function(id) {
18274
+ return this._rec_markers_pull[id] || [];
18248
18275
  };
18249
18276
  (function() {
18250
18277
  var old_add_event = scheduler2.addEvent;
18251
- scheduler2.addEvent = function(start_date, end_date, text, id2, extra_data) {
18278
+ scheduler2.addEvent = function(start_date, end_date, text, id, extra_data) {
18252
18279
  var ev_id = old_add_event.apply(this, arguments);
18253
18280
  if (ev_id && scheduler2.getEvent(ev_id)) {
18254
18281
  var ev = scheduler2.getEvent(ev_id);
@@ -18268,35 +18295,35 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18268
18295
  }
18269
18296
  return true;
18270
18297
  });
18271
- scheduler2.attachEvent("onEventIdChange", function(id2, new_id) {
18298
+ scheduler2.attachEvent("onEventIdChange", function(id, new_id) {
18272
18299
  if (this._ignore_call)
18273
18300
  return;
18274
18301
  this._ignore_call = true;
18275
- if (scheduler2._rec_markers[id2]) {
18276
- scheduler2._rec_markers[new_id] = scheduler2._rec_markers[id2];
18277
- delete scheduler2._rec_markers[id2];
18302
+ if (scheduler2._rec_markers[id]) {
18303
+ scheduler2._rec_markers[new_id] = scheduler2._rec_markers[id];
18304
+ delete scheduler2._rec_markers[id];
18278
18305
  }
18279
- if (scheduler2._rec_markers_pull[id2]) {
18280
- scheduler2._rec_markers_pull[new_id] = scheduler2._rec_markers_pull[id2];
18281
- delete scheduler2._rec_markers_pull[id2];
18306
+ if (scheduler2._rec_markers_pull[id]) {
18307
+ scheduler2._rec_markers_pull[new_id] = scheduler2._rec_markers_pull[id];
18308
+ delete scheduler2._rec_markers_pull[id];
18282
18309
  }
18283
18310
  for (var i = 0; i < this._rec_temp.length; i++) {
18284
18311
  var tev = this._rec_temp[i];
18285
- if (this._is_virtual_event(tev.id) && tev.id.split("#")[0] == id2) {
18312
+ if (this._is_virtual_event(tev.id) && tev.id.split("#")[0] == id) {
18286
18313
  tev.recurring_event_id = new_id;
18287
18314
  this.changeEventId(tev.id, new_id + "#" + tev.id.split("#")[1]);
18288
18315
  }
18289
18316
  }
18290
18317
  for (var i in this._rec_markers) {
18291
18318
  var tev = this._rec_markers[i];
18292
- if (tev.recurring_event_id == id2) {
18319
+ if (tev.recurring_event_id == id) {
18293
18320
  tev.recurring_event_id = new_id;
18294
18321
  tev._pid_changed = true;
18295
18322
  }
18296
18323
  }
18297
- var el2 = scheduler2._rec_markers[new_id];
18298
- if (el2 && el2._pid_changed) {
18299
- delete el2._pid_changed;
18324
+ var el = scheduler2._rec_markers[new_id];
18325
+ if (el && el._pid_changed) {
18326
+ delete el._pid_changed;
18300
18327
  setTimeout(function() {
18301
18328
  if (scheduler2.$destroyed) {
18302
18329
  return true;
@@ -18336,19 +18363,19 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18336
18363
  }
18337
18364
  }
18338
18365
  }
18339
- function updateTextEvents(id2, data) {
18366
+ function updateTextEvents(id, data) {
18340
18367
  for (let i in scheduler2._events) {
18341
18368
  let tev = scheduler2._events[i];
18342
- if (tev.recurring_event_id == id2 || scheduler2._is_virtual_event(tev.id) && tev.id.split("#")[0] == id2) {
18369
+ if (tev.recurring_event_id == id || scheduler2._is_virtual_event(tev.id) && tev.id.split("#")[0] == id) {
18343
18370
  tev.text = data.text;
18344
18371
  scheduler2.updateEvent(tev.id);
18345
18372
  }
18346
18373
  }
18347
18374
  }
18348
18375
  function deleteEventFromSeries(idTimestamp, ev) {
18349
- let id2 = idTimestamp;
18376
+ let id = idTimestamp;
18350
18377
  let originalStartTimestamp = new Date(ev.original_start).valueOf();
18351
- idTimestamp = String(id2).split("#") || ev._pid_time || originalStartTimestamp;
18378
+ idTimestamp = String(id).split("#") || ev._pid_time || originalStartTimestamp;
18352
18379
  let nid = scheduler2.uid();
18353
18380
  let tid = idTimestamp[1] ? idTimestamp[1] : ev._pid_time || originalStartTimestamp;
18354
18381
  let nev = scheduler2._copy_event(ev);
@@ -18358,29 +18385,29 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18358
18385
  nev.deleted = true;
18359
18386
  scheduler2.addEvent(nev);
18360
18387
  }
18361
- scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(id2) {
18362
- var ev = this.getEvent(id2);
18363
- if (this._is_virtual_event(id2) || this._is_modified_occurrence(ev) && !isDeletedOccurrence(ev)) {
18364
- deleteEventFromSeries(id2, ev);
18388
+ scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(id) {
18389
+ var ev = this.getEvent(id);
18390
+ if (this._is_virtual_event(id) || this._is_modified_occurrence(ev) && !isDeletedOccurrence(ev)) {
18391
+ deleteEventFromSeries(id, ev);
18365
18392
  } else {
18366
18393
  if (isSeries(ev) && this._lightbox_id)
18367
18394
  this._roll_back_dates(ev);
18368
- var sub = this._get_rec_markers(id2);
18395
+ var sub = this._get_rec_markers(id);
18369
18396
  for (var i in sub) {
18370
18397
  if (sub.hasOwnProperty(i)) {
18371
- id2 = sub[i].id;
18372
- if (this.getEvent(id2))
18373
- this.deleteEvent(id2, true);
18398
+ id = sub[i].id;
18399
+ if (this.getEvent(id))
18400
+ this.deleteEvent(id, true);
18374
18401
  }
18375
18402
  }
18376
18403
  }
18377
18404
  return true;
18378
18405
  });
18379
- scheduler2.attachEvent("onEventDeleted", function(id2, ev) {
18380
- if (!this._is_virtual_event(id2) && this._is_modified_occurrence(ev)) {
18381
- if (!scheduler2._events[id2]) {
18406
+ scheduler2.attachEvent("onEventDeleted", function(id, ev) {
18407
+ if (!this._is_virtual_event(id) && this._is_modified_occurrence(ev)) {
18408
+ if (!scheduler2._events[id]) {
18382
18409
  ev.deleted = true;
18383
- this.setEvent(id2, ev);
18410
+ this.setEvent(id, ev);
18384
18411
  scheduler2.render();
18385
18412
  }
18386
18413
  }
@@ -18408,11 +18435,11 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18408
18435
  }
18409
18436
  return true;
18410
18437
  });
18411
- scheduler2.attachEvent("onEventChanged", function(id2, event2) {
18438
+ scheduler2.attachEvent("onEventChanged", function(id, event2) {
18412
18439
  if (this._loading)
18413
18440
  return true;
18414
- let ev = this.getEvent(id2);
18415
- if (this._is_virtual_event(id2)) {
18441
+ let ev = this.getEvent(id);
18442
+ if (this._is_virtual_event(id)) {
18416
18443
  createException(ev);
18417
18444
  } else {
18418
18445
  if (ev.start_date) {
@@ -18422,23 +18449,23 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18422
18449
  ev.end_date = clearMilliseconds(ev.end_date);
18423
18450
  }
18424
18451
  if (isSeries(ev) && this._lightbox_id) {
18425
- if (ev._removeFollowing || this._isFollowing(id2)) {
18452
+ if (ev._removeFollowing || this._isFollowing(id)) {
18426
18453
  ev._removeFollowing = null;
18427
18454
  } else {
18428
18455
  this._roll_back_dates(ev);
18429
18456
  }
18430
18457
  }
18431
- var sub = this._get_rec_markers(id2);
18458
+ var sub = this._get_rec_markers(id);
18432
18459
  for (var i in sub) {
18433
18460
  if (sub.hasOwnProperty(i)) {
18434
18461
  delete this._rec_markers[sub[i].id];
18435
18462
  this.deleteEvent(sub[i].id, true);
18436
18463
  }
18437
18464
  }
18438
- delete this._rec_markers_pull[id2];
18465
+ delete this._rec_markers_pull[id];
18439
18466
  var isEventFound = false;
18440
18467
  for (var k = 0; k < this._rendered.length; k++) {
18441
- if (this._rendered[k].getAttribute(this.config.event_attribute) == id2)
18468
+ if (this._rendered[k].getAttribute(this.config.event_attribute) == id)
18442
18469
  isEventFound = true;
18443
18470
  }
18444
18471
  if (!isEventFound)
@@ -18447,21 +18474,21 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18447
18474
  removeTempDraggedEvent();
18448
18475
  return true;
18449
18476
  });
18450
- scheduler2.attachEvent("onEventAdded", function(id2) {
18477
+ scheduler2.attachEvent("onEventAdded", function(id) {
18451
18478
  if (!this._loading) {
18452
- var ev = this.getEvent(id2);
18479
+ var ev = this.getEvent(id);
18453
18480
  if (isSeries(ev)) {
18454
18481
  this._roll_back_dates(ev);
18455
18482
  }
18456
18483
  }
18457
18484
  return true;
18458
18485
  });
18459
- scheduler2.attachEvent("onEventSave", function(id2, data, is_new_event) {
18460
- let ev = this.getEvent(id2);
18486
+ scheduler2.attachEvent("onEventSave", function(id, data, is_new_event) {
18487
+ let ev = this.getEvent(id);
18461
18488
  let tempEvent = scheduler2._lame_clone(ev);
18462
18489
  let tempDataRRULE = data.rrule;
18463
18490
  if (ev && isSeries(ev)) {
18464
- if (!is_new_event && this._isFollowing(id2)) {
18491
+ if (!is_new_event && this._isFollowing(id)) {
18465
18492
  if (ev._removeFollowing) {
18466
18493
  let occurrence = scheduler2.getEvent(ev._thisAndFollowing);
18467
18494
  if (occurrence && (ev._firstOccurrence || ev._modified)) {
@@ -18473,13 +18500,13 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18473
18500
  ev._end_date = ev._shorten_end_date;
18474
18501
  ev.start_date = ev._start_date;
18475
18502
  ev._shorten = true;
18476
- updateFollowingEventsRRULE(ev);
18503
+ updateFollowingRRULEOnSave(ev);
18477
18504
  scheduler2.callEvent("onEventChanged", [ev.id, ev]);
18478
18505
  let occurrence2 = scheduler2.getEvent(ev._thisAndFollowing);
18479
18506
  if (occurrence2) {
18480
18507
  for (const i in scheduler2._events) {
18481
18508
  let tev = scheduler2._events[i];
18482
- if (tev.recurring_event_id === id2) {
18509
+ if (tev.recurring_event_id === id) {
18483
18510
  if (tev.start_date.valueOf() > tempEvent.start_date.valueOf()) {
18484
18511
  deleteEventFromSeries(tev.id, tev);
18485
18512
  }
@@ -18501,7 +18528,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18501
18528
  } else if (occurrence && ev._modified) {
18502
18529
  for (const i in scheduler2._events) {
18503
18530
  let tev = scheduler2._events[i];
18504
- if (tev.recurring_event_id == id2 && tev.id == tempEvent._thisAndFollowing) {
18531
+ if (tev.recurring_event_id == id && tev.id == tempEvent._thisAndFollowing) {
18505
18532
  setPropsForStorageEvent(i, data, ev, tempEvent);
18506
18533
  }
18507
18534
  }
@@ -18513,7 +18540,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18513
18540
  ev._end_date = ev._shorten_end_date;
18514
18541
  ev.start_date = ev._start_date;
18515
18542
  ev._shorten = true;
18516
- updateFollowingEventsRRULE(ev);
18543
+ updateFollowingRRULEOnSave(ev);
18517
18544
  scheduler2.callEvent("onEventChanged", [ev.id, ev]);
18518
18545
  let followingEv = { ...tempEvent };
18519
18546
  followingEv.text = data.text;
@@ -18524,7 +18551,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18524
18551
  scheduler2.addEvent(followingEv.start_date, followingEv.end_date, followingEv.text, followingEv.id, followingEv);
18525
18552
  }
18526
18553
  if (!is_new_event) {
18527
- updateTextEvents(id2, data);
18554
+ updateTextEvents(id, data);
18528
18555
  }
18529
18556
  scheduler2.hideLightbox();
18530
18557
  return false;
@@ -18532,7 +18559,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18532
18559
  }
18533
18560
  }
18534
18561
  if (!is_new_event) {
18535
- updateTextEvents(id2, data);
18562
+ updateTextEvents(id, data);
18536
18563
  }
18537
18564
  if (tempEvent._ocr && tempEvent._beforeEventChangedFlag) {
18538
18565
  ev.start_date = tempEvent.start_date;
@@ -18546,21 +18573,33 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18546
18573
  removeTempDraggedEvent();
18547
18574
  return true;
18548
18575
  });
18549
- scheduler2.attachEvent("onEventCreated", function(id2) {
18550
- var ev = this.getEvent(id2);
18576
+ scheduler2.attachEvent("onEventCreated", function(id) {
18577
+ var ev = this.getEvent(id);
18551
18578
  if (!isSeries(ev)) {
18552
18579
  clearRecurringProperties(ev);
18553
18580
  }
18554
18581
  return true;
18555
18582
  });
18556
- scheduler2.attachEvent("onEventCancel", function(id2) {
18557
- var ev = this.getEvent(id2);
18583
+ scheduler2.attachEvent("onEventCancel", function(id) {
18584
+ var ev = this.getEvent(id);
18558
18585
  if (isSeries(ev)) {
18559
18586
  this._roll_back_dates(ev);
18560
18587
  this.render_view_data();
18561
18588
  }
18562
18589
  removeTempDraggedEvent();
18563
18590
  });
18591
+ scheduler2.attachEvent("onLightbox", function(id) {
18592
+ const event2 = scheduler2.getEvent(id);
18593
+ if (scheduler2._is_virtual_event(event2.id)) {
18594
+ const body = scheduler2.formSection("recurring");
18595
+ if (body && body.node) {
18596
+ const select = body.node.querySelector("select");
18597
+ if (select) {
18598
+ select.disabled = true;
18599
+ }
18600
+ }
18601
+ }
18602
+ });
18564
18603
  scheduler2._roll_back_dates = function(ev) {
18565
18604
  if (ev.start_date) {
18566
18605
  ev.start_date = clearMilliseconds(ev.start_date);
@@ -18595,24 +18634,24 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18595
18634
  if (ev._modified)
18596
18635
  ev._modified = null;
18597
18636
  };
18598
- scheduler2._is_virtual_event = function(id2) {
18599
- return id2.toString().indexOf("#") != -1;
18637
+ scheduler2._is_virtual_event = function(id) {
18638
+ return id.toString().indexOf("#") != -1;
18600
18639
  };
18601
18640
  scheduler2._is_modified_occurrence = function(ev) {
18602
18641
  return ev.recurring_event_id && ev.recurring_event_id != "0";
18603
18642
  };
18604
18643
  scheduler2.showLightbox_rec = scheduler2.showLightbox;
18605
- scheduler2.showLightbox = function(id2) {
18644
+ scheduler2.showLightbox = function(id) {
18606
18645
  const locale = this.locale;
18607
18646
  let formSetting = scheduler2.config.lightbox_recurring;
18608
- let ev = this.getEvent(id2);
18647
+ let ev = this.getEvent(id);
18609
18648
  let pid = ev.recurring_event_id;
18610
- let isVirtual = this._is_virtual_event(id2);
18649
+ let isVirtual = this._is_virtual_event(id);
18611
18650
  if (isVirtual) {
18612
- pid = id2.split("#")[0];
18651
+ pid = id.split("#")[0];
18613
18652
  }
18614
- const showRequiredLightbox = function(id3, type) {
18615
- const occurrence = scheduler2.getEvent(id3);
18653
+ const showRequiredLightbox = function(id2, type) {
18654
+ const occurrence = scheduler2.getEvent(id2);
18616
18655
  const event2 = scheduler2.getEvent(pid);
18617
18656
  const view = scheduler2.getView();
18618
18657
  if (view && occurrence[view.y_property]) {
@@ -18622,7 +18661,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18622
18661
  event2[view.property] = occurrence[view.property];
18623
18662
  }
18624
18663
  if (type === "Occurrence") {
18625
- return scheduler2.showLightbox_rec(id3);
18664
+ return scheduler2.showLightbox_rec(id2);
18626
18665
  }
18627
18666
  if (type === "Following") {
18628
18667
  if (scheduler2._isExceptionFirstOccurrence(occurrence)) {
@@ -18668,14 +18707,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18668
18707
  }
18669
18708
  };
18670
18709
  if ((pid || pid * 1 === 0) && isSeries(ev)) {
18671
- return showRequiredLightbox(id2, "AllEvents");
18710
+ return showRequiredLightbox(id, "AllEvents");
18672
18711
  }
18673
18712
  if (!pid || pid === "0" || (!locale.labels.confirm_recurring || formSetting == "instance" || formSetting == "series" && !isVirtual)) {
18674
- return this.showLightbox_rec(id2);
18713
+ return this.showLightbox_rec(id);
18675
18714
  }
18676
18715
  if (formSetting === "ask") {
18677
18716
  const locale2 = scheduler2.locale;
18678
- showModalbox([{ value: "Occurrence", label: locale2.labels.button_edit_occurrence, checked: true, callback: () => showRequiredLightbox(id2, "Occurrence") }, { value: "Following", label: locale2.labels.button_edit_occurrence_and_following, callback: () => showRequiredLightbox(id2, "Following") }, { value: "AllEvents", label: locale2.labels.button_edit_series, callback: () => showRequiredLightbox(id2, "AllEvents") }]);
18717
+ showModalbox([{ value: "Occurrence", label: locale2.labels.button_edit_occurrence, checked: true, callback: () => showRequiredLightbox(id, "Occurrence") }, { value: "Following", label: locale2.labels.button_edit_occurrence_and_following, callback: () => showRequiredLightbox(id, "Following") }, { value: "AllEvents", label: locale2.labels.button_edit_series, callback: () => showRequiredLightbox(id, "AllEvents") }]);
18679
18718
  }
18680
18719
  };
18681
18720
  function showModalbox(options, callback) {
@@ -18711,10 +18750,10 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18711
18750
  }
18712
18751
  } });
18713
18752
  }
18714
- scheduler2._showRequiredModalBox = function(id2, type) {
18753
+ scheduler2._showRequiredModalBox = function(id, type) {
18715
18754
  let buttons;
18716
18755
  const locale = scheduler2.locale;
18717
- let occurrence = scheduler2.getEvent(id2);
18756
+ let occurrence = scheduler2.getEvent(id);
18718
18757
  let pid = occurrence.recurring_event_id;
18719
18758
  let isVirtual = scheduler2._is_virtual_event(occurrence.id);
18720
18759
  if (isVirtual) {
@@ -18772,7 +18811,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18772
18811
  tempEvent.duration = (+occurrence2.end_date - +occurrence2.start_date) / 1e3;
18773
18812
  tempEvent._beforeEventChangedFlag = occurrence2._beforeEventChangedFlag;
18774
18813
  if (tempEvent.rrule) {
18775
- updateFollowingWithWEEKLY(tempEvent.id, tempEvent);
18814
+ updateFollowingRRULE(tempEvent.id, tempEvent);
18776
18815
  }
18777
18816
  if (!scheduler2.config.collision_limit || scheduler2.checkCollision(tempEvent)) {
18778
18817
  for (const i in scheduler2._events) {
@@ -18792,7 +18831,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18792
18831
  tempEvent.start_date = occurrence2.start_date;
18793
18832
  tempEvent._thisAndFollowing = occurrence2.id;
18794
18833
  if (tempEvent.rrule) {
18795
- updateFollowingWithWEEKLY(tempEvent.id, tempEvent);
18834
+ updateFollowingRRULE(tempEvent.id, tempEvent);
18796
18835
  }
18797
18836
  let tempEnd = tempEvent.end_date;
18798
18837
  tempEvent.end_date = tempEvent._end_date;
@@ -18898,12 +18937,12 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18898
18937
  return old.call(this, ev);
18899
18938
  };
18900
18939
  var old_update_event = scheduler2.updateEvent;
18901
- scheduler2.updateEvent = function(id2) {
18902
- var ev = scheduler2.getEvent(id2);
18903
- if (ev && isSeries(ev) && !this._is_virtual_event(id2)) {
18940
+ scheduler2.updateEvent = function(id) {
18941
+ var ev = scheduler2.getEvent(id);
18942
+ if (ev && isSeries(ev) && !this._is_virtual_event(id)) {
18904
18943
  scheduler2.update_view();
18905
18944
  } else {
18906
- old_update_event.call(this, id2);
18945
+ old_update_event.call(this, id);
18907
18946
  }
18908
18947
  };
18909
18948
  })();
@@ -18992,8 +19031,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
18992
19031
  }
18993
19032
  return new Date(default_date.valueOf());
18994
19033
  };
18995
- scheduler2.getRecDates = function(id2, max) {
18996
- var ev = typeof id2 == "object" ? id2 : scheduler2.getEvent(id2);
19034
+ scheduler2.getRecDates = function(id, max) {
19035
+ var ev = typeof id == "object" ? id : scheduler2.getEvent(id);
18997
19036
  var recurrings = [];
18998
19037
  max = max || 100;
18999
19038
  if (!isSeries(ev)) {
@@ -19608,7 +19647,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
19608
19647
  return html;
19609
19648
  }
19610
19649
  var loc = scheduler2.locale.labels;
19611
- return '<div class="dhx_form_repeat"> <form> <div class="dhx_repeat_left"> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="day" />' + loc.repeat_radio_day + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="week"/>' + loc.repeat_radio_week + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="month" checked />' + loc.repeat_radio_month + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="year" />' + loc.repeat_radio_year + '</label></div> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_center"> <div style="display:none;" id="dhx_repeat_day"> <div><label><input class="dhx_repeat_radio" type="radio" name="day_type" value="d"/>' + loc.repeat_radio_day_type + '</label><label><input class="dhx_repeat_text" type="text" name="day_count" value="1" />' + loc.repeat_text_day_count + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="day_type" checked value="w"/>' + loc.repeat_radio_day_type2 + '</label></div> </div> <div style="display:none;" id="dhx_repeat_week"><div><label>' + loc.repeat_week + '<input class="dhx_repeat_text" type="text" name="week_count" value="1" /></label><span>' + loc.repeat_text_week_count + '</span></div> <table class="dhx_repeat_days"> <tr> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="1" />' + loc.day_for_recurring[1] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="4" />' + loc.day_for_recurring[4] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="2" />' + loc.day_for_recurring[2] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="5" />' + loc.day_for_recurring[5] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="3" />' + loc.day_for_recurring[3] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="6" />' + loc.day_for_recurring[6] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="0" />' + loc.day_for_recurring[0] + '</label></div> </td> </tr> </table> </div> <div id="dhx_repeat_month"> <div><label class = "dhx_repeat_month_label"><input class="dhx_repeat_radio" type="radio" name="month_type" value="d"/>' + loc.repeat_radio_month_type + '</label><label><input class="dhx_repeat_text" type="text" name="month_day" value="1" />' + loc.repeat_text_month_day + '</label><label><input class="dhx_repeat_text" type="text" name="month_count" value="1" />' + loc.repeat_text_month_count + '</label></div> <div><label class = "dhx_repeat_month_label"><input class="dhx_repeat_radio" type="radio" name="month_type" checked value="w"/>' + loc.repeat_radio_month_start + '</label><input class="dhx_repeat_text" type="text" name="month_week2" value="1" /><label><select name="month_day2"> <option value="1" selected >' + scheduler2.locale.date.day_full[1] + '<option value="2">' + scheduler2.locale.date.day_full[2] + '<option value="3">' + scheduler2.locale.date.day_full[3] + '<option value="4">' + scheduler2.locale.date.day_full[4] + '<option value="5">' + scheduler2.locale.date.day_full[5] + '<option value="6">' + scheduler2.locale.date.day_full[6] + '<option value="0">' + scheduler2.locale.date.day_full[0] + "</select>" + loc.repeat_text_month_count2_before + '</label><label><input class="dhx_repeat_text" type="text" name="month_count2" value="1" />' + loc.repeat_text_month_count2_after + '</label></div> </div> <div style="display:none;" id="dhx_repeat_year"> <div><label class = "dhx_repeat_year_label"><input class="dhx_repeat_radio" type="radio" name="year_type" value="d"/>' + loc.repeat_radio_day_type + '</label><label><input class="dhx_repeat_text" type="text" name="year_day" value="1" />' + loc.repeat_text_year_day + '</label><label><select name="year_month"><option value="0" selected >' + loc.month_for_recurring[0] + '<option value="1">' + loc.month_for_recurring[1] + '<option value="2">' + loc.month_for_recurring[2] + '<option value="3">' + loc.month_for_recurring[3] + '<option value="4">' + loc.month_for_recurring[4] + '<option value="5">' + loc.month_for_recurring[5] + '<option value="6">' + loc.month_for_recurring[6] + '<option value="7">' + loc.month_for_recurring[7] + '<option value="8">' + loc.month_for_recurring[8] + '<option value="9">' + loc.month_for_recurring[9] + '<option value="10">' + loc.month_for_recurring[10] + '<option value="11">' + loc.month_for_recurring[11] + "</select>" + loc.select_year_month + '</label></div> <div><label class = "dhx_repeat_year_label"><input class="dhx_repeat_radio" type="radio" name="year_type" checked value="w"/>' + loc.repeat_year_label + '</label><input class="dhx_repeat_text" type="text" name="year_week2" value="1" /><select name="year_day2"><option value="1" selected >' + scheduler2.locale.date.day_full[1] + '<option value="2">' + scheduler2.locale.date.day_full[2] + '<option value="3">' + scheduler2.locale.date.day_full[3] + '<option value="4">' + scheduler2.locale.date.day_full[4] + '<option value="5">' + scheduler2.locale.date.day_full[5] + '<option value="6">' + scheduler2.locale.date.day_full[6] + '<option value="7">' + scheduler2.locale.date.day_full[0] + "</select>" + loc.select_year_day2 + '<select name="year_month2"><option value="0" selected >' + loc.month_for_recurring[0] + '<option value="1">' + loc.month_for_recurring[1] + '<option value="2">' + loc.month_for_recurring[2] + '<option value="3">' + loc.month_for_recurring[3] + '<option value="4">' + loc.month_for_recurring[4] + '<option value="5">' + loc.month_for_recurring[5] + '<option value="6">' + loc.month_for_recurring[6] + '<option value="7">' + loc.month_for_recurring[7] + '<option value="8">' + loc.month_for_recurring[8] + '<option value="9">' + loc.month_for_recurring[9] + '<option value="10">' + loc.month_for_recurring[10] + '<option value="11">' + loc.month_for_recurring[11] + '</select></div> </div> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_right"> <div><label><input class="dhx_repeat_radio" type="radio" name="end" checked/>' + loc.repeat_radio_end + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="end" />' + loc.repeat_radio_end2 + '</label><input class="dhx_repeat_text" type="text" name="occurences_count" value="1" />' + loc.repeat_text_occurences_count + '</div> <div><label><input class="dhx_repeat_radio" type="radio" name="end" />' + loc.repeat_radio_end3 + '</label><input class="dhx_repeat_date" type="text" name="date_of_end" value="' + scheduler2.config.repeat_date_of_end + '" /></div> </div> </form> </div> </div>';
19650
+ return '<div class="dhx_form_repeat"> <form> <div class="dhx_repeat_left"> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="day" />' + loc.repeat_radio_day + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="week"/>' + loc.repeat_radio_week + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="month" checked />' + loc.repeat_radio_month + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="repeat" value="year" />' + loc.repeat_radio_year + '</label></div> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_center"> <div style="display:none;" id="dhx_repeat_day"> <div><label><input class="dhx_repeat_radio" type="radio" name="day_type" value="d"/>' + loc.repeat_radio_day_type + '</label><label><input class="dhx_repeat_text" type="text" name="day_count" value="1" />' + loc.repeat_text_day_count + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="day_type" checked value="w"/>' + loc.repeat_radio_day_type2 + '</label></div> </div> <div style="display:none;" id="dhx_repeat_week"><div><label>' + loc.repeat_week + '<input class="dhx_repeat_text" type="text" name="week_count" value="1" /></label><span>' + loc.repeat_text_week_count + '</span></div> <table class="dhx_repeat_days"> <tr> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="1" />' + loc.day_for_recurring[1] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="4" />' + loc.day_for_recurring[4] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="2" />' + loc.day_for_recurring[2] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="5" />' + loc.day_for_recurring[5] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="3" />' + loc.day_for_recurring[3] + '</label></div> <div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="6" />' + loc.day_for_recurring[6] + '</label></div></td> <td><div><label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="0" />' + loc.day_for_recurring[0] + '</label></div> </td> </tr> </table> </div> <div id="dhx_repeat_month"> <div><label class = "dhx_repeat_month_label"><input class="dhx_repeat_radio" type="radio" name="month_type" value="d"/>' + loc.repeat_radio_month_type + '</label><label><input class="dhx_repeat_text" type="text" name="month_day" value="1" />' + loc.repeat_text_month_day + '</label><label><input class="dhx_repeat_text" type="text" name="month_count" value="1" />' + loc.repeat_text_month_count + '</label></div> <div><label class = "dhx_repeat_month_label"><input class="dhx_repeat_radio" type="radio" name="month_type" checked value="w"/>' + loc.repeat_radio_month_start + '</label><input class="dhx_repeat_text" type="text" name="month_week2" value="1" /><label><select name="month_day2"> <option value="1" selected >' + scheduler2.locale.date.day_full[1] + '<option value="2">' + scheduler2.locale.date.day_full[2] + '<option value="3">' + scheduler2.locale.date.day_full[3] + '<option value="4">' + scheduler2.locale.date.day_full[4] + '<option value="5">' + scheduler2.locale.date.day_full[5] + '<option value="6">' + scheduler2.locale.date.day_full[6] + '<option value="0">' + scheduler2.locale.date.day_full[0] + "</select>" + loc.repeat_text_month_count2_before + '</label><label><input class="dhx_repeat_text" type="text" name="month_count2" value="1" />' + loc.repeat_text_month_count2_after + '</label></div> </div> <div style="display:none;" id="dhx_repeat_year"> <div><label class = "dhx_repeat_year_label"><input class="dhx_repeat_radio" type="radio" name="year_type" value="d"/>' + loc.repeat_radio_day_type + '</label><label><input class="dhx_repeat_text" type="text" name="year_day" value="1" />' + loc.repeat_text_year_day + '</label><label><select name="year_month"><option value="0" selected >' + loc.month_for_recurring[0] + '<option value="1">' + loc.month_for_recurring[1] + '<option value="2">' + loc.month_for_recurring[2] + '<option value="3">' + loc.month_for_recurring[3] + '<option value="4">' + loc.month_for_recurring[4] + '<option value="5">' + loc.month_for_recurring[5] + '<option value="6">' + loc.month_for_recurring[6] + '<option value="7">' + loc.month_for_recurring[7] + '<option value="8">' + loc.month_for_recurring[8] + '<option value="9">' + loc.month_for_recurring[9] + '<option value="10">' + loc.month_for_recurring[10] + '<option value="11">' + loc.month_for_recurring[11] + "</select>" + loc.select_year_month + '</label></div> <div><label class = "dhx_repeat_year_label"><input class="dhx_repeat_radio" type="radio" name="year_type" checked value="w"/>' + loc.repeat_year_label + '</label><input class="dhx_repeat_text" type="text" name="year_week2" value="1" /><select name="year_day2"><option value="1" selected >' + scheduler2.locale.date.day_full[1] + '<option value="2">' + scheduler2.locale.date.day_full[2] + '<option value="3">' + scheduler2.locale.date.day_full[3] + '<option value="4">' + scheduler2.locale.date.day_full[4] + '<option value="5">' + scheduler2.locale.date.day_full[5] + '<option value="6">' + scheduler2.locale.date.day_full[6] + '<option value="7">' + scheduler2.locale.date.day_full[0] + "</select>" + loc.select_year_day2 + '<select name="year_month2"><option value="0" selected >' + loc.month_for_recurring[0] + '<option value="1">' + loc.month_for_recurring[1] + '<option value="2">' + loc.month_for_recurring[2] + '<option value="3">' + loc.month_for_recurring[3] + '<option value="4">' + loc.month_for_recurring[4] + '<option value="5">' + loc.month_for_recurring[5] + '<option value="6">' + loc.month_for_recurring[6] + '<option value="7">' + loc.month_for_recurring[7] + '<option value="8">' + loc.month_for_recurring[8] + '<option value="9">' + loc.month_for_recurring[9] + '<option value="10">' + loc.month_for_recurring[10] + '<option value="11">' + loc.month_for_recurring[11] + '</select></div> </div> </div> <div class="dhx_repeat_divider"></div> <div class="dhx_repeat_right"> <div><label><input class="dhx_repeat_radio" type="radio" name="end" checked/>' + loc.repeat_radio_end + '</label></div> <div><label><input class="dhx_repeat_radio" type="radio" name="end" />' + loc.repeat_radio_end2 + '</label><input class="dhx_repeat_text" type="text" name="occurences_count" value="1" />' + loc.repeat_text_occurrences_count + '</div> <div><label><input class="dhx_repeat_radio" type="radio" name="end" />' + loc.repeat_radio_end3 + '</label><input class="dhx_repeat_date" type="text" name="date_of_end" value="' + scheduler2.config.repeat_date_of_end + '" /></div> </div> </form> </div> </div>';
19612
19651
  }, _ds: {}, _get_form_node: function(els, name, value) {
19613
19652
  var col = els[name];
19614
19653
  if (!col)
@@ -19918,15 +19957,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
19918
19957
  }
19919
19958
  scheduler2.form_blocks["recurring"]._set_repeat_code = set_repeat_code;
19920
19959
  for (var i = 0; i < top.elements.length; i++) {
19921
- var el2 = top.elements[i];
19922
- switch (el2.name) {
19960
+ var el = top.elements[i];
19961
+ switch (el.name) {
19923
19962
  case "repeat":
19924
- if (el2.nodeName == "SELECT" && !el2.$_eventAttached) {
19925
- el2.$_eventAttached = true;
19926
- el2.addEventListener("change", change_current_view);
19927
- } else if (!el2.$_eventAttached) {
19928
- el2.$_eventAttached = true;
19929
- el2.addEventListener("click", change_current_view);
19963
+ if (el.nodeName == "SELECT" && !el.$_eventAttached) {
19964
+ el.$_eventAttached = true;
19965
+ el.addEventListener("change", change_current_view);
19966
+ } else if (!el.$_eventAttached) {
19967
+ el.$_eventAttached = true;
19968
+ el.addEventListener("click", change_current_view);
19930
19969
  }
19931
19970
  break;
19932
19971
  }
@@ -19982,18 +20021,18 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
19982
20021
  block._toggle_block();
19983
20022
  }, _toggle_block: function() {
19984
20023
  var block = scheduler2.form_blocks.recurring;
19985
- var cont = block._get_form(), el2 = block._get_button();
20024
+ var cont = block._get_form(), el = block._get_button();
19986
20025
  if (!cont.open && !cont.blocked) {
19987
20026
  cont.style.height = "auto";
19988
- if (el2) {
19989
- el2.style.backgroundPosition = "-5px 0px";
19990
- el2.nextSibling.innerHTML = scheduler2.locale.labels.button_recurring_open;
20027
+ if (el) {
20028
+ el.style.backgroundPosition = "-5px 0px";
20029
+ el.nextSibling.innerHTML = scheduler2.locale.labels.button_recurring_open;
19991
20030
  }
19992
20031
  } else {
19993
20032
  cont.style.height = "0px";
19994
- if (el2) {
19995
- el2.style.backgroundPosition = "-5px 20px";
19996
- el2.nextSibling.innerHTML = scheduler2.locale.labels.button_recurring;
20033
+ if (el) {
20034
+ el.style.backgroundPosition = "-5px 20px";
20035
+ el.nextSibling.innerHTML = scheduler2.locale.labels.button_recurring;
19997
20036
  }
19998
20037
  }
19999
20038
  cont.open = !cont.open;
@@ -20046,14 +20085,14 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
20046
20085
  this._rec_markers_pull[ev.event_pid] = {};
20047
20086
  this._rec_markers_pull[ev.event_pid][time] = ev;
20048
20087
  };
20049
- scheduler2._get_rec_marker = function(time, id2) {
20050
- var ch = this._rec_markers_pull[id2];
20088
+ scheduler2._get_rec_marker = function(time, id) {
20089
+ var ch = this._rec_markers_pull[id];
20051
20090
  if (ch)
20052
20091
  return ch[time];
20053
20092
  return null;
20054
20093
  };
20055
- scheduler2._get_rec_markers = function(id2) {
20056
- return this._rec_markers_pull[id2] || [];
20094
+ scheduler2._get_rec_markers = function(id) {
20095
+ return this._rec_markers_pull[id] || [];
20057
20096
  };
20058
20097
  function clearMilliseconds(date) {
20059
20098
  return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
@@ -20061,7 +20100,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
20061
20100
  scheduler2._rec_temp = [];
20062
20101
  (function() {
20063
20102
  var old_add_event = scheduler2.addEvent;
20064
- scheduler2.addEvent = function(start_date, end_date, text, id2, extra_data) {
20103
+ scheduler2.addEvent = function(start_date, end_date, text, id, extra_data) {
20065
20104
  var ev_id = old_add_event.apply(this, arguments);
20066
20105
  if (ev_id && scheduler2.getEvent(ev_id)) {
20067
20106
  var ev = scheduler2.getEvent(ev_id);
@@ -20079,35 +20118,35 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
20079
20118
  return ev_id;
20080
20119
  };
20081
20120
  })();
20082
- scheduler2.attachEvent("onEventIdChange", function(id2, new_id) {
20121
+ scheduler2.attachEvent("onEventIdChange", function(id, new_id) {
20083
20122
  if (this._ignore_call)
20084
20123
  return;
20085
20124
  this._ignore_call = true;
20086
- if (scheduler2._rec_markers[id2]) {
20087
- scheduler2._rec_markers[new_id] = scheduler2._rec_markers[id2];
20088
- delete scheduler2._rec_markers[id2];
20125
+ if (scheduler2._rec_markers[id]) {
20126
+ scheduler2._rec_markers[new_id] = scheduler2._rec_markers[id];
20127
+ delete scheduler2._rec_markers[id];
20089
20128
  }
20090
- if (scheduler2._rec_markers_pull[id2]) {
20091
- scheduler2._rec_markers_pull[new_id] = scheduler2._rec_markers_pull[id2];
20092
- delete scheduler2._rec_markers_pull[id2];
20129
+ if (scheduler2._rec_markers_pull[id]) {
20130
+ scheduler2._rec_markers_pull[new_id] = scheduler2._rec_markers_pull[id];
20131
+ delete scheduler2._rec_markers_pull[id];
20093
20132
  }
20094
20133
  for (var i = 0; i < this._rec_temp.length; i++) {
20095
20134
  var tev = this._rec_temp[i];
20096
- if (tev.event_pid == id2) {
20135
+ if (tev.event_pid == id) {
20097
20136
  tev.event_pid = new_id;
20098
20137
  this.changeEventId(tev.id, new_id + "#" + tev.id.split("#")[1]);
20099
20138
  }
20100
20139
  }
20101
20140
  for (var i in this._rec_markers) {
20102
20141
  var tev = this._rec_markers[i];
20103
- if (tev.event_pid == id2) {
20142
+ if (tev.event_pid == id) {
20104
20143
  tev.event_pid = new_id;
20105
20144
  tev._pid_changed = true;
20106
20145
  }
20107
20146
  }
20108
- var el2 = scheduler2._rec_markers[new_id];
20109
- if (el2 && el2._pid_changed) {
20110
- delete el2._pid_changed;
20147
+ var el = scheduler2._rec_markers[new_id];
20148
+ if (el && el._pid_changed) {
20149
+ delete el._pid_changed;
20111
20150
  setTimeout(function() {
20112
20151
  if (scheduler2.$destroyed) {
20113
20152
  return true;
@@ -20117,15 +20156,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
20117
20156
  }
20118
20157
  delete this._ignore_call;
20119
20158
  });
20120
- scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(id2) {
20121
- var ev = this.getEvent(id2);
20122
- if (this._is_virtual_event(id2) || this._is_modified_occurence(ev) && ev.rec_type && ev.rec_type != "none") {
20123
- id2 = id2.split("#");
20159
+ scheduler2.attachEvent("onConfirmedBeforeEventDelete", function(id) {
20160
+ var ev = this.getEvent(id);
20161
+ if (this._is_virtual_event(id) || this._is_modified_occurence(ev) && ev.rec_type && ev.rec_type != "none") {
20162
+ id = id.split("#");
20124
20163
  var nid = this.uid();
20125
- var tid = id2[1] ? id2[1] : Math.round(ev._pid_time / 1e3);
20164
+ var tid = id[1] ? id[1] : Math.round(ev._pid_time / 1e3);
20126
20165
  var nev = this._copy_event(ev);
20127
20166
  nev.id = nid;
20128
- nev.event_pid = ev.event_pid || id2[0];
20167
+ nev.event_pid = ev.event_pid || id[0];
20129
20168
  var timestamp = tid;
20130
20169
  nev.event_length = timestamp;
20131
20170
  nev.rec_type = nev.rec_pattern = "none";
@@ -20134,37 +20173,37 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
20134
20173
  } else {
20135
20174
  if (ev.rec_type && this._lightbox_id)
20136
20175
  this._roll_back_dates(ev);
20137
- var sub = this._get_rec_markers(id2);
20176
+ var sub = this._get_rec_markers(id);
20138
20177
  for (var i in sub) {
20139
20178
  if (sub.hasOwnProperty(i)) {
20140
- id2 = sub[i].id;
20141
- if (this.getEvent(id2))
20142
- this.deleteEvent(id2, true);
20179
+ id = sub[i].id;
20180
+ if (this.getEvent(id))
20181
+ this.deleteEvent(id, true);
20143
20182
  }
20144
20183
  }
20145
20184
  }
20146
20185
  return true;
20147
20186
  });
20148
- scheduler2.attachEvent("onEventDeleted", function(id2, ev) {
20149
- if (!this._is_virtual_event(id2) && this._is_modified_occurence(ev)) {
20150
- if (!scheduler2._events[id2]) {
20187
+ scheduler2.attachEvent("onEventDeleted", function(id, ev) {
20188
+ if (!this._is_virtual_event(id) && this._is_modified_occurence(ev)) {
20189
+ if (!scheduler2._events[id]) {
20151
20190
  ev.rec_type = ev.rec_pattern = "none";
20152
- this.setEvent(id2, ev);
20191
+ this.setEvent(id, ev);
20153
20192
  }
20154
20193
  }
20155
20194
  });
20156
- scheduler2.attachEvent("onEventChanged", function(id2, event2) {
20195
+ scheduler2.attachEvent("onEventChanged", function(id, event2) {
20157
20196
  if (this._loading)
20158
20197
  return true;
20159
- var ev = this.getEvent(id2);
20160
- if (this._is_virtual_event(id2)) {
20161
- var id2 = id2.split("#");
20198
+ var ev = this.getEvent(id);
20199
+ if (this._is_virtual_event(id)) {
20200
+ var id = id.split("#");
20162
20201
  var nid = this.uid();
20163
20202
  this._not_render = true;
20164
20203
  var nev = this._copy_event(event2);
20165
20204
  nev.id = nid;
20166
- nev.event_pid = id2[0];
20167
- var timestamp = id2[1];
20205
+ nev.event_pid = id[0];
20206
+ var timestamp = id[1];
20168
20207
  nev.event_length = timestamp;
20169
20208
  nev.rec_type = nev.rec_pattern = "";
20170
20209
  this._add_rec_marker(nev, timestamp * 1e3);
@@ -20180,17 +20219,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
20180
20219
  if (ev.rec_type && this._lightbox_id) {
20181
20220
  this._roll_back_dates(ev);
20182
20221
  }
20183
- var sub = this._get_rec_markers(id2);
20222
+ var sub = this._get_rec_markers(id);
20184
20223
  for (var i in sub) {
20185
20224
  if (sub.hasOwnProperty(i)) {
20186
20225
  delete this._rec_markers[sub[i].id];
20187
20226
  this.deleteEvent(sub[i].id, true);
20188
20227
  }
20189
20228
  }
20190
- delete this._rec_markers_pull[id2];
20229
+ delete this._rec_markers_pull[id];
20191
20230
  var isEventFound = false;
20192
20231
  for (var k = 0; k < this._rendered.length; k++) {
20193
- if (this._rendered[k].getAttribute(this.config.event_attribute) == id2)
20232
+ if (this._rendered[k].getAttribute(this.config.event_attribute) == id)
20194
20233
  isEventFound = true;
20195
20234
  }
20196
20235
  if (!isEventFound)
@@ -20198,29 +20237,29 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
20198
20237
  }
20199
20238
  return true;
20200
20239
  });
20201
- scheduler2.attachEvent("onEventAdded", function(id2) {
20240
+ scheduler2.attachEvent("onEventAdded", function(id) {
20202
20241
  if (!this._loading) {
20203
- var ev = this.getEvent(id2);
20242
+ var ev = this.getEvent(id);
20204
20243
  if (ev.rec_type && !ev.event_length) {
20205
20244
  this._roll_back_dates(ev);
20206
20245
  }
20207
20246
  }
20208
20247
  return true;
20209
20248
  });
20210
- scheduler2.attachEvent("onEventSave", function(id2, data, is_new_event) {
20211
- var ev = this.getEvent(id2);
20212
- if (!ev.rec_type && data.rec_type && !this._is_virtual_event(id2))
20249
+ scheduler2.attachEvent("onEventSave", function(id, data, is_new_event) {
20250
+ var ev = this.getEvent(id);
20251
+ if (!ev.rec_type && data.rec_type && !this._is_virtual_event(id))
20213
20252
  this._select_id = null;
20214
20253
  return true;
20215
20254
  });
20216
- scheduler2.attachEvent("onEventCreated", function(id2) {
20217
- var ev = this.getEvent(id2);
20255
+ scheduler2.attachEvent("onEventCreated", function(id) {
20256
+ var ev = this.getEvent(id);
20218
20257
  if (!ev.rec_type)
20219
20258
  ev.rec_type = ev.rec_pattern = ev.event_length = ev.event_pid = "";
20220
20259
  return true;
20221
20260
  });
20222
- scheduler2.attachEvent("onEventCancel", function(id2) {
20223
- var ev = this.getEvent(id2);
20261
+ scheduler2.attachEvent("onEventCancel", function(id) {
20262
+ var ev = this.getEvent(id);
20224
20263
  if (ev.rec_type) {
20225
20264
  this._roll_back_dates(ev);
20226
20265
  this.render_view_data();
@@ -20242,32 +20281,32 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
20242
20281
  ev.start_date.setFullYear(ev._start_date.getFullYear());
20243
20282
  }
20244
20283
  };
20245
- scheduler2._is_virtual_event = function(id2) {
20246
- return id2.toString().indexOf("#") != -1;
20284
+ scheduler2._is_virtual_event = function(id) {
20285
+ return id.toString().indexOf("#") != -1;
20247
20286
  };
20248
20287
  scheduler2._is_modified_occurence = function(ev) {
20249
20288
  return ev.event_pid && ev.event_pid != "0";
20250
20289
  };
20251
20290
  scheduler2.showLightbox_rec = scheduler2.showLightbox;
20252
- scheduler2.showLightbox = function(id2) {
20291
+ scheduler2.showLightbox = function(id) {
20253
20292
  var locale = this.locale;
20254
20293
  var c = scheduler2.config.lightbox_recurring;
20255
- var ev = this.getEvent(id2);
20294
+ var ev = this.getEvent(id);
20256
20295
  var pid = ev.event_pid;
20257
- var isVirtual = this._is_virtual_event(id2);
20296
+ var isVirtual = this._is_virtual_event(id);
20258
20297
  if (isVirtual)
20259
- pid = id2.split("#")[0];
20260
- var showSeries = function(id3) {
20261
- var event2 = scheduler2.getEvent(id3);
20298
+ pid = id.split("#")[0];
20299
+ var showSeries = function(id2) {
20300
+ var event2 = scheduler2.getEvent(id2);
20262
20301
  event2._end_date = event2.end_date;
20263
20302
  event2.end_date = new Date(event2.start_date.valueOf() + event2.event_length * 1e3);
20264
- return scheduler2.showLightbox_rec(id3);
20303
+ return scheduler2.showLightbox_rec(id2);
20265
20304
  };
20266
20305
  if ((pid || pid * 1 === 0) && ev.rec_type) {
20267
- return showSeries(id2);
20306
+ return showSeries(id);
20268
20307
  }
20269
20308
  if (!pid || pid === "0" || (!locale.labels.confirm_recurring || c == "instance" || c == "series" && !isVirtual)) {
20270
- return this.showLightbox_rec(id2);
20309
+ return this.showLightbox_rec(id);
20271
20310
  }
20272
20311
  if (c == "ask") {
20273
20312
  var that = this;
@@ -20276,7 +20315,7 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
20276
20315
  case 0:
20277
20316
  return showSeries(pid);
20278
20317
  case 1:
20279
- return that.showLightbox_rec(id2);
20318
+ return that.showLightbox_rec(id);
20280
20319
  case 2:
20281
20320
  return;
20282
20321
  }
@@ -20309,15 +20348,15 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
20309
20348
  return old.call(this, ev);
20310
20349
  };
20311
20350
  var old_update_event = scheduler2.updateEvent;
20312
- scheduler2.updateEvent = function(id2) {
20313
- var ev = scheduler2.getEvent(id2);
20351
+ scheduler2.updateEvent = function(id) {
20352
+ var ev = scheduler2.getEvent(id);
20314
20353
  if (ev && ev.rec_type) {
20315
20354
  ev.rec_pattern = (ev.rec_type || "").split("#")[0];
20316
20355
  }
20317
- if (ev && ev.rec_type && !this._is_virtual_event(id2)) {
20356
+ if (ev && ev.rec_type && !this._is_virtual_event(id)) {
20318
20357
  scheduler2.update_view();
20319
20358
  } else {
20320
- old_update_event.call(this, id2);
20359
+ old_update_event.call(this, id);
20321
20360
  }
20322
20361
  };
20323
20362
  })();
@@ -20474,8 +20513,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
20474
20513
  }
20475
20514
  return new Date(default_date.valueOf());
20476
20515
  };
20477
- scheduler2.getRecDates = function(id2, max) {
20478
- var ev = typeof id2 == "object" ? id2 : scheduler2.getEvent(id2);
20516
+ scheduler2.getRecDates = function(id, max) {
20517
+ var ev = typeof id == "object" ? id : scheduler2.getEvent(id);
20479
20518
  var recurrings = [];
20480
20519
  max = max || 100;
20481
20520
  if (!ev.rec_type) {
@@ -21059,8 +21098,8 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
21059
21098
  t2.addEventListener("click", scheduler2._click.dhx_cal_data);
21060
21099
  t2.addEventListener("click", function(e2) {
21061
21100
  if (e2.target.closest(`[${scheduler2.config.event_attribute}]`)) {
21062
- const id2 = e2.target.closest(`[${scheduler2.config.event_attribute}]`).getAttribute(scheduler2.config.event_attribute);
21063
- scheduler2.showLightbox(id2);
21101
+ const id = e2.target.closest(`[${scheduler2.config.event_attribute}]`).getAttribute(scheduler2.config.event_attribute);
21102
+ scheduler2.showLightbox(id);
21064
21103
  }
21065
21104
  });
21066
21105
  }
@@ -21216,17 +21255,17 @@ To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product),
21216
21255
  };
21217
21256
  var locateEvent = scheduler2._locate_event;
21218
21257
  scheduler2._locate_event = function(node) {
21219
- var id2 = locateEvent.apply(scheduler2, arguments);
21220
- if (!id2) {
21258
+ var id = locateEvent.apply(scheduler2, arguments);
21259
+ if (!id) {
21221
21260
  var date = getCellDate(node);
21222
21261
  if (!date)
21223
21262
  return null;
21224
21263
  var evs = scheduler2.getEvents(date, scheduler2.date.add(date, 1, "day"));
21225
21264
  if (!evs.length)
21226
21265
  return null;
21227
- id2 = evs[0].id;
21266
+ id = evs[0].id;
21228
21267
  }
21229
- return id2;
21268
+ return id;
21230
21269
  };
21231
21270
  scheduler2.attachEvent("onDestroy", function() {
21232
21271
  scheduler2._hideToolTip();