dhtmlx-scheduler 5.3.14 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/bower.json +2 -2
- package/codebase/dhtmlxscheduler.css +10 -11
- package/codebase/dhtmlxscheduler.d.ts +164 -12
- package/codebase/dhtmlxscheduler.js +36 -354
- package/codebase/dhtmlxscheduler.js.map +1 -0
- package/codebase/dhtmlxscheduler_contrast_black.css +10 -11
- package/codebase/dhtmlxscheduler_contrast_white.css +10 -11
- package/codebase/dhtmlxscheduler_flat.css +10 -11
- package/codebase/dhtmlxscheduler_material.css +10 -11
- package/codebase/dhtmlxscheduler_material_nofont.css +10 -0
- package/codebase/dhtmlxscheduler_terrace.css +10 -11
- package/codebase/sources/{skins/dhtmlxscheduler.css → dhtmlxscheduler.css} +135 -78
- package/codebase/sources/dhtmlxscheduler.js +29566 -9186
- package/codebase/sources/less/dhtmlxscheduler_material.less +2 -0
- package/codebase/sources/less/dhtmlxscheduler_material_nofont.less +3 -0
- package/codebase/sources/less/package.json +13 -4
- package/codebase/sources/less/scripts.js +52 -0
- package/codebase/sources/less/skins/basic/ext.less +45 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/but_repeat.gif +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/buttons.png +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/calendar.gif +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/clock_big.gif +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/clock_small.gif +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/collapse_expand_icon.gif +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/controls.gif +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/databg.png +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/databg_now.png +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/export_ical.png +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/export_pdf.png +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/icon.png +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/images.png +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/loading.gif +0 -0
- package/codebase/{imgs → sources/less/skins/basic/imgs}/resize_dots.png +0 -0
- package/codebase/sources/less/skins/basic/lightbox.less +12 -0
- package/codebase/sources/less/skins/basic/message_default.less +43 -27
- package/codebase/sources/less/skins/basic/skin.less +2 -2
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/arrow_left.png +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/arrow_right.png +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/but_repeat.gif +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/calendar.gif +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/clock_big.gif +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/clock_small.gif +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/close_icon.png +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/collapse_expand_icon.gif +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/controls.png +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/databg.png +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/databg_now.png +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/export_ical.png +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/export_pdf.png +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/resize_dots.png +0 -0
- package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/resizing.png +0 -0
- package/codebase/sources/less/skins/contrast_black/skin.less +5 -5
- package/codebase/sources/less/skins/contrast_white/dhx_skin_contrast_white.less +3 -3
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/arrow_left.png +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/arrow_right.png +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/but_repeat.gif +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/calendar.gif +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/clock_big.gif +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/clock_small.gif +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/close_icon.png +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/collapse_expand_icon.gif +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/controls.png +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/databg.png +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/export_ical.png +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/export_pdf.png +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/quick_info_edit.png +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/resize_dots.png +0 -0
- package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/resizing.png +0 -0
- package/codebase/{imgs_flat → sources/less/skins/flat/imgs_flat}/agenda_bg.gif +0 -0
- package/codebase/{imgs_flat → sources/less/skins/flat/imgs_flat}/arrow_left.png +0 -0
- package/codebase/{imgs_flat → sources/less/skins/flat/imgs_flat}/arrow_right.png +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/but_repeat.gif +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/calendar.gif +0 -0
- package/codebase/{imgs_flat → sources/less/skins/flat/imgs_flat}/clock.png +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/clock_big.gif +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/clock_small.gif +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/flat/imgs_flat}/close_icon.png +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/collapse_expand_icon.gif +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/flat/imgs_flat}/controls.png +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/databg.png +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/databg_now.png +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/flat/imgs_flat}/export_ical.png +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/flat/imgs_flat}/export_pdf.png +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/resize_dots.png +0 -0
- package/codebase/{imgs_flat → sources/less/skins/flat/imgs_flat}/resizing.png +0 -0
- package/codebase/sources/less/skins/flat/skin.less +5 -5
- package/codebase/sources/less/skins/material/add_styles.less +22 -21
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/Shape.svg +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/agenda-calendar-hov.svg +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/agenda-calendar.svg +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/agenda_bg.png +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/arrow_left.svg +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/arrow_left_hov.svg +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/arrow_right.svg +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/arrow_right_hov.svg +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/but_repeat.png +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/calendar.svg +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/clock_big.png +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/clock_small.png +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/material/imgs_dhx_material}/close_icon.png +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/collapse_expand_icon.png +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/material/imgs_dhx_material}/controls.png +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/databg.png +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/drag-horizontal.svg +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/drag-vertical.svg +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/material/imgs_dhx_material}/export_ical.png +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/material/imgs_dhx_material}/export_pdf.png +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/icon.png +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/menu-down.svg +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/resizing.png +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/time.svg +0 -0
- package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/tree_arrow.svg +0 -0
- package/codebase/sources/less/skins/material/skin.less +4 -6
- package/codebase/{imgs_dhx_terrace → sources/less/skins/terrace/imgs_dhx_terrace}/arrow_left.png +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/terrace/imgs_dhx_terrace}/arrow_right.png +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/but_repeat.gif +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/calendar.gif +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/clock_big.gif +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/clock_small.gif +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/close_icon.png +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/collapse_expand_icon.gif +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/controls.png +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/databg.png +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/databg_now.png +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/export_ical.png +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/export_pdf.png +0 -0
- package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/resize_dots.png +0 -0
- package/codebase/{imgs_dhx_terrace → sources/less/skins/terrace/imgs_dhx_terrace}/resizing.png +0 -0
- package/codebase/sources/less/skins/terrace/skin.less +2 -2
- package/codebase/sources/skins/dhtmlxscheduler_contrast_black.css +136 -79
- package/codebase/sources/skins/dhtmlxscheduler_contrast_white.css +148 -91
- package/codebase/sources/skins/dhtmlxscheduler_flat.css +131 -74
- package/codebase/sources/skins/dhtmlxscheduler_material.css +174 -116
- package/codebase/sources/skins/dhtmlxscheduler_material_nofont.css +4359 -0
- package/codebase/sources/skins/dhtmlxscheduler_terrace.css +135 -78
- package/package.json +1 -1
- package/whatsnew.md +42 -0
- package/codebase/ext/dhtmlxscheduler_active_links.js +0 -13
- package/codebase/ext/dhtmlxscheduler_agenda_view.js +0 -18
- package/codebase/ext/dhtmlxscheduler_all_timed.js +0 -17
- package/codebase/ext/dhtmlxscheduler_collision.js +0 -15
- package/codebase/ext/dhtmlxscheduler_container_autoresize.js +0 -23
- package/codebase/ext/dhtmlxscheduler_cookie.js +0 -14
- package/codebase/ext/dhtmlxscheduler_csp.js +0 -16
- package/codebase/ext/dhtmlxscheduler_editors.js +0 -18
- package/codebase/ext/dhtmlxscheduler_expand.js +0 -15
- package/codebase/ext/dhtmlxscheduler_html_templates.js +0 -12
- package/codebase/ext/dhtmlxscheduler_key_nav.js +0 -111
- package/codebase/ext/dhtmlxscheduler_layer.js +0 -33
- package/codebase/ext/dhtmlxscheduler_limit.js +0 -44
- package/codebase/ext/dhtmlxscheduler_map_view.js +0 -35
- package/codebase/ext/dhtmlxscheduler_minical.js +0 -35
- package/codebase/ext/dhtmlxscheduler_monthheight.js +0 -13
- package/codebase/ext/dhtmlxscheduler_multiselect.js +0 -15
- package/codebase/ext/dhtmlxscheduler_multisource.js +0 -12
- package/codebase/ext/dhtmlxscheduler_mvc.js +0 -15
- package/codebase/ext/dhtmlxscheduler_outerdrag.js +0 -14
- package/codebase/ext/dhtmlxscheduler_pdf.js +0 -28
- package/codebase/ext/dhtmlxscheduler_quick_info.js +0 -23
- package/codebase/ext/dhtmlxscheduler_readonly.js +0 -18
- package/codebase/ext/dhtmlxscheduler_recurring.js +0 -54
- package/codebase/ext/dhtmlxscheduler_serialize.js +0 -16
- package/codebase/ext/dhtmlxscheduler_tooltip.js +0 -19
- package/codebase/ext/dhtmlxscheduler_url.js +0 -14
- package/codebase/ext/dhtmlxscheduler_wp.js +0 -12
- package/codebase/ext/dhtmlxscheduler_year_view.js +0 -30
- package/codebase/locale/locale_ar.js +0 -14
- package/codebase/locale/locale_be.js +0 -16
- package/codebase/locale/locale_ca.js +0 -14
- package/codebase/locale/locale_cn.js +0 -15
- package/codebase/locale/locale_cs.js +0 -16
- package/codebase/locale/locale_da.js +0 -16
- package/codebase/locale/locale_de.js +0 -16
- package/codebase/locale/locale_el.js +0 -16
- package/codebase/locale/locale_en.js +0 -16
- package/codebase/locale/locale_es.js +0 -16
- package/codebase/locale/locale_fi.js +0 -17
- package/codebase/locale/locale_fr.js +0 -16
- package/codebase/locale/locale_he.js +0 -16
- package/codebase/locale/locale_hu.js +0 -14
- package/codebase/locale/locale_id.js +0 -14
- package/codebase/locale/locale_it.js +0 -16
- package/codebase/locale/locale_jp.js +0 -14
- package/codebase/locale/locale_nb.js +0 -16
- package/codebase/locale/locale_nl.js +0 -16
- package/codebase/locale/locale_no.js +0 -14
- package/codebase/locale/locale_pl.js +0 -16
- package/codebase/locale/locale_pt.js +0 -16
- package/codebase/locale/locale_ro.js +0 -16
- package/codebase/locale/locale_ru.js +0 -16
- package/codebase/locale/locale_si.js +0 -14
- package/codebase/locale/locale_sk.js +0 -16
- package/codebase/locale/locale_sv.js +0 -16
- package/codebase/locale/locale_tr.js +0 -14
- package/codebase/locale/locale_ua.js +0 -16
- package/codebase/locale/recurring/locale_recurring_be.js +0 -14
- package/codebase/locale/recurring/locale_recurring_cn.js +0 -14
- package/codebase/locale/recurring/locale_recurring_cs.js +0 -14
- package/codebase/locale/recurring/locale_recurring_da.js +0 -14
- package/codebase/locale/recurring/locale_recurring_de.js +0 -14
- package/codebase/locale/recurring/locale_recurring_el.js +0 -14
- package/codebase/locale/recurring/locale_recurring_en.js +0 -14
- package/codebase/locale/recurring/locale_recurring_es.js +0 -14
- package/codebase/locale/recurring/locale_recurring_fi.js +0 -14
- package/codebase/locale/recurring/locale_recurring_fr.js +0 -14
- package/codebase/locale/recurring/locale_recurring_he.js +0 -14
- package/codebase/locale/recurring/locale_recurring_it.js +0 -14
- package/codebase/locale/recurring/locale_recurring_nb.js +0 -14
- package/codebase/locale/recurring/locale_recurring_nl.js +0 -14
- package/codebase/locale/recurring/locale_recurring_pl.js +0 -14
- package/codebase/locale/recurring/locale_recurring_pt.js +0 -14
- package/codebase/locale/recurring/locale_recurring_ro.js +0 -14
- package/codebase/locale/recurring/locale_recurring_ru.js +0 -14
- package/codebase/locale/recurring/locale_recurring_sk.js +0 -14
- package/codebase/locale/recurring/locale_recurring_sv.js +0 -14
- package/codebase/locale/recurring/locale_recurring_ua.js +0 -14
- package/codebase/locale/recurring/repeat_template_be.html +0 -57
- package/codebase/locale/recurring/repeat_template_cn.html +0 -57
- package/codebase/locale/recurring/repeat_template_de.html +0 -60
- package/codebase/locale/recurring/repeat_template_el.html +0 -57
- package/codebase/locale/recurring/repeat_template_en.html +0 -57
- package/codebase/locale/recurring/repeat_template_es.html +0 -57
- package/codebase/locale/recurring/repeat_template_fr.html +0 -57
- package/codebase/locale/recurring/repeat_template_he.html +0 -61
- package/codebase/locale/recurring/repeat_template_it.html +0 -57
- package/codebase/locale/recurring/repeat_template_nl.html +0 -65
- package/codebase/locale/recurring/repeat_template_ro.html +0 -57
- package/codebase/locale/recurring/repeat_template_ru.html +0 -57
- package/codebase/locale/recurring/repeat_template_sk.html +0 -57
- package/codebase/sources/dhtmlxscheduler.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_active_links.js +0 -50
- package/codebase/sources/ext/dhtmlxscheduler_active_links.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_agenda_view.js +0 -150
- package/codebase/sources/ext/dhtmlxscheduler_agenda_view.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_all_timed.js +0 -193
- package/codebase/sources/ext/dhtmlxscheduler_all_timed.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_collision.js +0 -140
- package/codebase/sources/ext/dhtmlxscheduler_collision.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_container_autoresize.js +0 -338
- package/codebase/sources/ext/dhtmlxscheduler_container_autoresize.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_cookie.js +0 -96
- package/codebase/sources/ext/dhtmlxscheduler_cookie.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_csp.js +0 -106
- package/codebase/sources/ext/dhtmlxscheduler_csp.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_editors.js +0 -183
- package/codebase/sources/ext/dhtmlxscheduler_editors.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_expand.js +0 -87
- package/codebase/sources/ext/dhtmlxscheduler_expand.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_html_templates.js +0 -29
- package/codebase/sources/ext/dhtmlxscheduler_html_templates.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_key_nav.js +0 -3099
- package/codebase/sources/ext/dhtmlxscheduler_key_nav.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_layer.js +0 -424
- package/codebase/sources/ext/dhtmlxscheduler_layer.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_limit.js +0 -1095
- package/codebase/sources/ext/dhtmlxscheduler_limit.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_map_view.js +0 -514
- package/codebase/sources/ext/dhtmlxscheduler_map_view.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_minical.js +0 -570
- package/codebase/sources/ext/dhtmlxscheduler_minical.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_monthheight.js +0 -41
- package/codebase/sources/ext/dhtmlxscheduler_monthheight.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_multiselect.js +0 -112
- package/codebase/sources/ext/dhtmlxscheduler_multiselect.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_multisource.js +0 -36
- package/codebase/sources/ext/dhtmlxscheduler_multisource.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_mvc.js +0 -154
- package/codebase/sources/ext/dhtmlxscheduler_mvc.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_outerdrag.js +0 -86
- package/codebase/sources/ext/dhtmlxscheduler_outerdrag.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_pdf.js +0 -405
- package/codebase/sources/ext/dhtmlxscheduler_pdf.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_quick_info.js +0 -288
- package/codebase/sources/ext/dhtmlxscheduler_quick_info.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_readonly.js +0 -200
- package/codebase/sources/ext/dhtmlxscheduler_readonly.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_recurring.js +0 -1324
- package/codebase/sources/ext/dhtmlxscheduler_recurring.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_serialize.js +0 -116
- package/codebase/sources/ext/dhtmlxscheduler_serialize.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_tooltip.js +0 -229
- package/codebase/sources/ext/dhtmlxscheduler_tooltip.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_url.js +0 -91
- package/codebase/sources/ext/dhtmlxscheduler_url.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_wp.js +0 -27
- package/codebase/sources/ext/dhtmlxscheduler_wp.js.map +0 -1
- package/codebase/sources/ext/dhtmlxscheduler_year_view.js +0 -442
- package/codebase/sources/ext/dhtmlxscheduler_year_view.js.map +0 -1
- package/codebase/sources/less/imgs/but_repeat.gif +0 -0
- package/codebase/sources/less/imgs/buttons.png +0 -0
- package/codebase/sources/less/imgs/calendar.gif +0 -0
- package/codebase/sources/less/imgs/clock_big.gif +0 -0
- package/codebase/sources/less/imgs/clock_small.gif +0 -0
- package/codebase/sources/less/imgs/collapse_expand_icon.gif +0 -0
- package/codebase/sources/less/imgs/controls.gif +0 -0
- package/codebase/sources/less/imgs/databg.png +0 -0
- package/codebase/sources/less/imgs/databg_now.png +0 -0
- package/codebase/sources/less/imgs/export_ical.png +0 -0
- package/codebase/sources/less/imgs/export_pdf.png +0 -0
- package/codebase/sources/less/imgs/icon.png +0 -0
- package/codebase/sources/less/imgs/images.png +0 -0
- package/codebase/sources/less/imgs/loading.gif +0 -0
- package/codebase/sources/less/imgs/resize_dots.png +0 -0
- package/codebase/sources/less/imgs_contrast_black/arrow_left.png +0 -0
- package/codebase/sources/less/imgs_contrast_black/arrow_right.png +0 -0
- package/codebase/sources/less/imgs_contrast_black/but_repeat.gif +0 -0
- package/codebase/sources/less/imgs_contrast_black/calendar.gif +0 -0
- package/codebase/sources/less/imgs_contrast_black/clock_big.gif +0 -0
- package/codebase/sources/less/imgs_contrast_black/clock_small.gif +0 -0
- package/codebase/sources/less/imgs_contrast_black/close_icon.png +0 -0
- package/codebase/sources/less/imgs_contrast_black/collapse_expand_icon.gif +0 -0
- package/codebase/sources/less/imgs_contrast_black/controls.png +0 -0
- package/codebase/sources/less/imgs_contrast_black/databg.png +0 -0
- package/codebase/sources/less/imgs_contrast_black/databg_now.png +0 -0
- package/codebase/sources/less/imgs_contrast_black/export_ical.png +0 -0
- package/codebase/sources/less/imgs_contrast_black/export_pdf.png +0 -0
- package/codebase/sources/less/imgs_contrast_black/resize_dots.png +0 -0
- package/codebase/sources/less/imgs_contrast_black/resizing.png +0 -0
- package/codebase/sources/less/imgs_contrast_white/arrow_left.png +0 -0
- package/codebase/sources/less/imgs_contrast_white/arrow_right.png +0 -0
- package/codebase/sources/less/imgs_contrast_white/but_repeat.gif +0 -0
- package/codebase/sources/less/imgs_contrast_white/calendar.gif +0 -0
- package/codebase/sources/less/imgs_contrast_white/clock_big.gif +0 -0
- package/codebase/sources/less/imgs_contrast_white/clock_small.gif +0 -0
- package/codebase/sources/less/imgs_contrast_white/close_icon.png +0 -0
- package/codebase/sources/less/imgs_contrast_white/collapse_expand_icon.gif +0 -0
- package/codebase/sources/less/imgs_contrast_white/controls.png +0 -0
- package/codebase/sources/less/imgs_contrast_white/databg.png +0 -0
- package/codebase/sources/less/imgs_contrast_white/export_ical.png +0 -0
- package/codebase/sources/less/imgs_contrast_white/export_pdf.png +0 -0
- package/codebase/sources/less/imgs_contrast_white/quick_info_edit.png +0 -0
- package/codebase/sources/less/imgs_contrast_white/resize_dots.png +0 -0
- package/codebase/sources/less/imgs_contrast_white/resizing.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/Shape.svg +0 -3
- package/codebase/sources/less/imgs_dhx_material/agenda-calendar-hov.svg +0 -4
- package/codebase/sources/less/imgs_dhx_material/agenda-calendar.svg +0 -4
- package/codebase/sources/less/imgs_dhx_material/agenda_bg.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/arrow_left.svg +0 -3
- package/codebase/sources/less/imgs_dhx_material/arrow_left_hov.svg +0 -3
- package/codebase/sources/less/imgs_dhx_material/arrow_right.svg +0 -3
- package/codebase/sources/less/imgs_dhx_material/arrow_right_hov.svg +0 -3
- package/codebase/sources/less/imgs_dhx_material/but_repeat.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/calendar.svg +0 -4
- package/codebase/sources/less/imgs_dhx_material/clock_big.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/clock_small.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/close_icon.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/collapse_expand_icon.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/controls.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/databg.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/drag-horizontal.svg +0 -5
- package/codebase/sources/less/imgs_dhx_material/drag-vertical.svg +0 -14
- package/codebase/sources/less/imgs_dhx_material/export_ical.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/export_pdf.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/icon.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/menu-down.svg +0 -1
- package/codebase/sources/less/imgs_dhx_material/resizing.png +0 -0
- package/codebase/sources/less/imgs_dhx_material/time.svg +0 -24
- package/codebase/sources/less/imgs_dhx_material/tree_arrow.svg +0 -3
- package/codebase/sources/less/imgs_dhx_terrace/arrow_left.png +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/arrow_right.png +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/but_repeat.gif +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/calendar.gif +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/clock_big.gif +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/clock_small.gif +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/close_icon.png +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/collapse_expand_icon.gif +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/controls.png +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/databg.png +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/databg_now.png +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/export_ical.png +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/export_pdf.png +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/resize_dots.png +0 -0
- package/codebase/sources/less/imgs_dhx_terrace/resizing.png +0 -0
- package/codebase/sources/less/imgs_flat/agenda_bg.gif +0 -0
- package/codebase/sources/less/imgs_flat/arrow_left.png +0 -0
- package/codebase/sources/less/imgs_flat/arrow_right.png +0 -0
- package/codebase/sources/less/imgs_flat/but_repeat.gif +0 -0
- package/codebase/sources/less/imgs_flat/calendar.gif +0 -0
- package/codebase/sources/less/imgs_flat/clock.png +0 -0
- package/codebase/sources/less/imgs_flat/clock_big.gif +0 -0
- package/codebase/sources/less/imgs_flat/clock_small.gif +0 -0
- package/codebase/sources/less/imgs_flat/close_icon.png +0 -0
- package/codebase/sources/less/imgs_flat/collapse_expand_icon.gif +0 -0
- package/codebase/sources/less/imgs_flat/controls.png +0 -0
- package/codebase/sources/less/imgs_flat/databg.png +0 -0
- package/codebase/sources/less/imgs_flat/databg_now.png +0 -0
- package/codebase/sources/less/imgs_flat/export_ical.png +0 -0
- package/codebase/sources/less/imgs_flat/export_pdf.png +0 -0
- package/codebase/sources/less/imgs_flat/resize_dots.png +0 -0
- package/codebase/sources/less/imgs_flat/resizing.png +0 -0
- package/codebase/sources/locale/locale_ar.js +0 -65
- package/codebase/sources/locale/locale_ar.js.map +0 -1
- package/codebase/sources/locale/locale_be.js +0 -104
- package/codebase/sources/locale/locale_be.js.map +0 -1
- package/codebase/sources/locale/locale_ca.js +0 -76
- package/codebase/sources/locale/locale_ca.js.map +0 -1
- package/codebase/sources/locale/locale_cn.js +0 -109
- package/codebase/sources/locale/locale_cn.js.map +0 -1
- package/codebase/sources/locale/locale_cs.js +0 -103
- package/codebase/sources/locale/locale_cs.js.map +0 -1
- package/codebase/sources/locale/locale_da.js +0 -102
- package/codebase/sources/locale/locale_da.js.map +0 -1
- package/codebase/sources/locale/locale_de.js +0 -102
- package/codebase/sources/locale/locale_de.js.map +0 -1
- package/codebase/sources/locale/locale_el.js +0 -103
- package/codebase/sources/locale/locale_el.js.map +0 -1
- package/codebase/sources/locale/locale_en.js +0 -103
- package/codebase/sources/locale/locale_en.js.map +0 -1
- package/codebase/sources/locale/locale_es.js +0 -104
- package/codebase/sources/locale/locale_es.js.map +0 -1
- package/codebase/sources/locale/locale_fi.js +0 -103
- package/codebase/sources/locale/locale_fi.js.map +0 -1
- package/codebase/sources/locale/locale_fr.js +0 -101
- package/codebase/sources/locale/locale_fr.js.map +0 -1
- package/codebase/sources/locale/locale_he.js +0 -103
- package/codebase/sources/locale/locale_he.js.map +0 -1
- package/codebase/sources/locale/locale_hu.js +0 -70
- package/codebase/sources/locale/locale_hu.js.map +0 -1
- package/codebase/sources/locale/locale_id.js +0 -11
- package/codebase/sources/locale/locale_id.js.map +0 -1
- package/codebase/sources/locale/locale_it.js +0 -101
- package/codebase/sources/locale/locale_it.js.map +0 -1
- package/codebase/sources/locale/locale_jp.js +0 -78
- package/codebase/sources/locale/locale_jp.js.map +0 -1
- package/codebase/sources/locale/locale_nb.js +0 -101
- package/codebase/sources/locale/locale_nb.js.map +0 -1
- package/codebase/sources/locale/locale_nl.js +0 -103
- package/codebase/sources/locale/locale_nl.js.map +0 -1
- package/codebase/sources/locale/locale_no.js +0 -76
- package/codebase/sources/locale/locale_no.js.map +0 -1
- package/codebase/sources/locale/locale_pl.js +0 -103
- package/codebase/sources/locale/locale_pl.js.map +0 -1
- package/codebase/sources/locale/locale_pt.js +0 -113
- package/codebase/sources/locale/locale_pt.js.map +0 -1
- package/codebase/sources/locale/locale_ro.js +0 -107
- package/codebase/sources/locale/locale_ro.js.map +0 -1
- package/codebase/sources/locale/locale_ru.js +0 -101
- package/codebase/sources/locale/locale_ru.js.map +0 -1
- package/codebase/sources/locale/locale_si.js +0 -76
- package/codebase/sources/locale/locale_si.js.map +0 -1
- package/codebase/sources/locale/locale_sk.js +0 -103
- package/codebase/sources/locale/locale_sk.js.map +0 -1
- package/codebase/sources/locale/locale_sv.js +0 -102
- package/codebase/sources/locale/locale_sv.js.map +0 -1
- package/codebase/sources/locale/locale_tr.js +0 -74
- package/codebase/sources/locale/locale_tr.js.map +0 -1
- package/codebase/sources/locale/locale_ua.js +0 -102
- package/codebase/sources/locale/locale_ua.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_be.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_be.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_cn.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_cn.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_cs.js +0 -12
- package/codebase/sources/locale/recurring/locale_recurring_cs.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_da.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_da.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_de.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_de.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_el.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_el.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_en.js +0 -11
- package/codebase/sources/locale/recurring/locale_recurring_en.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_es.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_es.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_fi.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_fi.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_fr.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_fr.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_he.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_he.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_it.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_it.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_nb.js +0 -11
- package/codebase/sources/locale/recurring/locale_recurring_nb.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_nl.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_nl.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_pl.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_pl.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_pt.js +0 -11
- package/codebase/sources/locale/recurring/locale_recurring_pt.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_ro.js +0 -17
- package/codebase/sources/locale/recurring/locale_recurring_ro.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_ru.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_ru.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_sk.js +0 -12
- package/codebase/sources/locale/recurring/locale_recurring_sk.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_sv.js +0 -11
- package/codebase/sources/locale/recurring/locale_recurring_sv.js.map +0 -1
- package/codebase/sources/locale/recurring/locale_recurring_ua.js +0 -13
- package/codebase/sources/locale/recurring/locale_recurring_ua.js.map +0 -1
- package/codebase/sources/locale/recurring/repeat_template_be.html +0 -57
- package/codebase/sources/locale/recurring/repeat_template_cn.html +0 -57
- package/codebase/sources/locale/recurring/repeat_template_de.html +0 -60
- package/codebase/sources/locale/recurring/repeat_template_el.html +0 -57
- package/codebase/sources/locale/recurring/repeat_template_en.html +0 -57
- package/codebase/sources/locale/recurring/repeat_template_es.html +0 -57
- package/codebase/sources/locale/recurring/repeat_template_fr.html +0 -57
- package/codebase/sources/locale/recurring/repeat_template_he.html +0 -61
- package/codebase/sources/locale/recurring/repeat_template_it.html +0 -57
- package/codebase/sources/locale/recurring/repeat_template_nl.html +0 -65
- package/codebase/sources/locale/recurring/repeat_template_ro.html +0 -57
- package/codebase/sources/locale/recurring/repeat_template_ru.html +0 -57
- package/codebase/sources/locale/recurring/repeat_template_sk.html +0 -57
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/webpack/bootstrap","webpack://[name]/./sources/global.js","webpack://[name]/(webpack)/buildin/global.js","webpack://[name]/./sources/core/common/get_serializable_events.js","webpack://[name]/./sources/core/common/url_serialize.js","webpack://[name]/./node_modules/process/browser.js","webpack://[name]/./node_modules/bluebird/js/browser/bluebird.core.js","webpack://[name]/./node_modules/timers-browserify/main.js","webpack://[name]/./node_modules/setimmediate/setImmediate.js","webpack://[name]/./sources/dhtmlx_hook.js","webpack://[name]/./sources/core/nav_bar.js","webpack://[name]/./sources/core/scheduler_resize_listener.js","webpack://[name]/./sources/utils/eventable.js","webpack://[name]/./sources/core/scheduler.js","webpack://[name]/./sources/core/utils/event.js","webpack://[name]/./sources/core/utils/scoped_event.js","webpack://[name]/./sources/core/common.js","webpack://[name]/./sources/core/wai_aria.js","webpack://[name]/./sources/core/utils/utils.js","webpack://[name]/./sources/core/utils/dom_helpers.js","webpack://[name]/./sources/utils/env.js","webpack://[name]/./sources/core/utils/bluebird.js","webpack://[name]/./sources/core/utils/ajax.js","webpack://[name]/./sources/core/base.js","webpack://[name]/./sources/core/event.js","webpack://[name]/./sources/core/loaders/json.js","webpack://[name]/./sources/core/load.js","webpack://[name]/./sources/core/loaders/xml.js","webpack://[name]/./sources/core/loaders/ical.js","webpack://[name]/./sources/core/touch.js","webpack://[name]/./sources/core/skins.js","webpack://[name]/./sources/core/dataprocessor/dataprocessor.js","webpack://[name]/./sources/core/message.js","webpack://[name]/./sources/core/dataprocessor/dataprocessor_hooks.js","webpack://[name]/./sources/locale/locale_ar.js","webpack://[name]/./sources/locale/locale_be.js","webpack://[name]/./sources/locale/locale_ca.js","webpack://[name]/./sources/locale/locale_cn.js","webpack://[name]/./sources/locale/locale_cs.js","webpack://[name]/./sources/locale/locale_da.js","webpack://[name]/./sources/locale/locale_de.js","webpack://[name]/./sources/locale/locale_el.js","webpack://[name]/./sources/locale/locale_en.js","webpack://[name]/./sources/locale/locale_es.js","webpack://[name]/./sources/locale/locale_fi.js","webpack://[name]/./sources/locale/locale_fr.js","webpack://[name]/./sources/locale/locale_he.js","webpack://[name]/./sources/locale/locale_hu.js","webpack://[name]/./sources/locale/locale_id.js","webpack://[name]/./sources/locale/locale_it.js","webpack://[name]/./sources/locale/locale_jp.js","webpack://[name]/./sources/locale/locale_manager.js","webpack://[name]/./sources/locale/locale_nb.js","webpack://[name]/./sources/locale/locale_nl.js","webpack://[name]/./sources/locale/locale_no.js","webpack://[name]/./sources/locale/locale_pl.js","webpack://[name]/./sources/locale/locale_pt.js","webpack://[name]/./sources/locale/locale_ro.js","webpack://[name]/./sources/locale/locale_ru.js","webpack://[name]/./sources/locale/locale_si.js","webpack://[name]/./sources/locale/locale_sk.js","webpack://[name]/./sources/locale/locale_sv.js","webpack://[name]/./sources/locale/locale_tr.js","webpack://[name]/./sources/locale/locale_ua.js","webpack://[name]/./sources/scheduler_factory_method.js","webpack://[name]/./sources/core/common_errors.js","webpack://[name]/./sources/core/common/assert.js","webpack://[name]/./sources/core/destructor.js","webpack://[name]/./sources/core/config.js","webpack://[name]/./sources/core/event_highlight.js","webpack://[name]/./sources/core/lightbox.js","webpack://[name]/./sources/core/dhtmlx/dhtmlx_suite_hooks.js","webpack://[name]/./sources/core/jquery.js","webpack://[name]/./sources/core/delay_render.js","webpack://[name]/./sources/core/connector.js","webpack://[name]/./sources/locale/index.js","webpack://[name]/./sources/ext/extension_manager.js","webpack://[name]/./sources/scheduler_factory.js","webpack://[name]/./sources/ext/restricted_extensions/not_implemented_extension.js","webpack://[name]/./sources/ext/keyboard_navigation/modals.js","webpack://[name]/./sources/ext/keyboard_navigation/key_nav_legacy.js","webpack://[name]/./sources/ext/keyboard_navigation/scheduler_handlers.js","webpack://[name]/./sources/ext/layer.js","webpack://[name]/./sources/ext/limit.js","webpack://[name]/./sources/ext/multisource.js","webpack://[name]/./sources/ext/pdf.js","webpack://[name]/./sources/ext/recurring.js","webpack://[name]/./sources/dhtmlxscheduler.gpl.js","webpack://[name]/./sources/ext/extensions_gpl.js","webpack://[name]/./sources/ext/active_links.js","webpack://[name]/./sources/ext/agenda_view.js","webpack://[name]/./sources/ext/all_timed.js","webpack://[name]/./sources/ext/collision.js","webpack://[name]/./sources/ext/container_autoresize.js","webpack://[name]/./sources/ext/cookie.js","webpack://[name]/./sources/ext/restricted_extensions/daytimeline.js","webpack://[name]/./sources/ext/restricted_extensions/drag_between.js","webpack://[name]/./sources/ext/editors.js","webpack://[name]/./sources/ext/expand.js","webpack://[name]/./sources/ext/restricted_extensions/grid_view.js","webpack://[name]/./sources/ext/html_templates.js","webpack://[name]/./sources/ext/key_nav.js","webpack://[name]/./sources/ext/keyboard_navigation/common/keyboard_shortcuts.js","webpack://[name]/./sources/ext/keyboard_navigation/common/eventhandler.js","webpack://[name]/./sources/ext/keyboard_navigation/common/trap_modal_focus.js","webpack://[name]/./sources/ext/keyboard_navigation/marker.js","webpack://[name]/./sources/ext/keyboard_navigation/elements/scheduler_node.js","webpack://[name]/./sources/ext/keyboard_navigation/elements/nav_node.js","webpack://[name]/./sources/ext/keyboard_navigation/elements/header_cell.js","webpack://[name]/./sources/ext/keyboard_navigation/elements/event.js","webpack://[name]/./sources/ext/keyboard_navigation/elements/time_slot.js","webpack://[name]/./sources/ext/keyboard_navigation/elements/minical_button.js","webpack://[name]/./sources/ext/keyboard_navigation/elements/minical_cell.js","webpack://[name]/./sources/ext/keyboard_navigation/elements/data_area.js","webpack://[name]/./sources/ext/keyboard_navigation/core.js","webpack://[name]/./sources/ext/keyboard_navigation/minical_handlers.js","webpack://[name]/./sources/ext/map_view.js","webpack://[name]/./sources/ext/minical.js","webpack://[name]/./sources/ext/monthheight.js","webpack://[name]/./sources/ext/restricted_extensions/multisection.js","webpack://[name]/./sources/ext/mvc.js","webpack://[name]/./sources/ext/outerdrag.js","webpack://[name]/./sources/ext/quick_info.js","webpack://[name]/./sources/ext/readonly.js","webpack://[name]/./sources/ext/serialize.js","webpack://[name]/./sources/ext/restricted_extensions/timeline.js","webpack://[name]/./sources/ext/tooltip.js","webpack://[name]/./sources/ext/restricted_extensions/treetimeline.js","webpack://[name]/./sources/ext/restricted_extensions/units.js","webpack://[name]/./sources/ext/url.js","webpack://[name]/./sources/ext/restricted_extensions/week_agenda.js","webpack://[name]/./sources/ext/wp.js","webpack://[name]/./sources/ext/year_view.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","globalScope","__webpack_exports__","_typeof","obj","iterator","constructor","g","this","Function","e","scheduler","res","a","_events","ev","id","toString","indexOf","data","result","serialized","encodeURIComponent","JSON","stringify","length","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","arguments","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","setImmediate","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","undefined","u","_dereq_","f","code","1","firstLineError","schedule","Queue","Async","_customScheduler","_isTickUsed","_lateQueue","_normalQueue","_haveDrainedQueues","self","drainQueues","_drainQueues","_schedule","_drainQueue","_drainQueueStep","fn","shift","_settlePromises","receiver","arg","setScheduler","prev","hasCustomScheduler","haveItemsQueued","fatalError","isNode","stderr","write","stack","exit","throwLater","invokeLater","_queueTick","invoke","settlePromises","promise","_pushOne","_reset","./queue","./schedule","2","Promise","INTERNAL","tryConvertToPromise","debug","calledBind","rejectThis","_","_reject","targetRejected","context","promiseRejectionQueued","bindingPromise","_then","bindingResolved","thisArg","_bitField","_resolveCallback","target","bindingRejected","_propagateFrom","propagateFromFunction","_boundValue","boundValueFunction","maybePromise","ret","_target","_setBoundTo","_setOnCancel","_boundTo","_isBound","resolve","3","old","bluebird","noConflict","./promise","4","PromiseArray","apiRejection","util","tryCatch","errorObj","async","_async","cancel","cancellation","_warn","child","_isCancellable","_cancelBy","_isFollowing","_followee","_cancelBranched","parent","_cancellationParent","_setWillBeCancelled","_branchHasCancelled","_branchesRemainingToCancel","_enoughBranchesHaveCancelled","canceller","_invokeOnCancel","_cancel","_setCancelled","_cancelPromises","_length","_unsetOnCancel","_onCancelField","isPending","_isCancelled","isCancellable","isCancelled","_doInvokeOnCancel","onCancelCallback","internalOnly","isArray","_attachExtraTrace","_resultCancelled","_onCancel","_invokeInternalOnCancel","./util","5","NEXT_FILTER","getKeys","keys","instances","cb","boundTo","predicateLoop","item","matchesPredicate","isObject","j","./es5","6","longStackTraces","contextStack","Context","_trace","CapturedTrace","peekContext","lastIndex","_promiseCreated","_pushContext","_popContext","_peekContext","trace","pop","deactivateLongStackTraces","activateLongStackTraces","Promise_pushContext","Promise_popContext","Promise_PeekContext","Promise_peekContext","Promise_promiseCreated","ctx","7","enableAsyncHooks","disableAsyncHooks","unhandledRejectionHandled","possiblyUnhandledRejection","printWarning","deferUnhandledRejectionCheck","Warning","es5","canAttachTrace","bluebirdFramePattern","nodeFramePattern","parseLinePattern","stackFramePattern","formatStack","indentStackFrames","debugging","warnings","wForgottenReturn","promises","unhandledRejectionCheck","_notifyUnhandledRejection","unhandledRejectionClear","suppressUnhandledRejections","_ensurePossibleRejectionHandled","_setRejectionIsUnhandled","_notifyUnhandledRejectionIsHandled","fireRejectionEvent","_setReturnedNonUndefined","_returnedNonUndefined","_isRejectionUnhandled","reason","_settledValue","_setUnhandledRejectionIsNotified","_unsetUnhandledRejectionIsNotified","_isUnhandledRejectionNotified","_unsetRejectionIsUnhandled","message","shouldUseOwnTrace","warn","onPossiblyUnhandledRejection","_getContext","contextBind","onUnhandledRejectionHandled","disableLongStackTraces","config","longStackTracesIsSupported","Promise_captureStackTrace","_captureStackTrace","Promise_attachExtraTrace","Promise_dereferenceTrace","_dereferenceTrace","longStackTracesCaptureStackTrace","longStackTracesAttachExtraTrace","longStackTracesDereferenceTrace","hasLongStackTraces","legacyHandlers","unhandledrejection","before","onunhandledrejection","after","rejectionhandled","onrejectionhandled","fireDomEvent","dispatch","legacy","dispatchEvent","CustomEvent","event","toLowerCase","domEvent","detail","cancelable","Event","document","createEvent","initCustomEvent","fireGlobalEvent","methodName","method","slice","generatePromiseLifecycleEventObject","eventToObjectGenerator","promiseCreated","promiseFulfilled","promiseRejected","promiseResolved","promiseCancelled","promiseChained","warning","_warning","unhandledRejection","rejectionHandled","activeFireEvent","globalEventFired","domEventFired","defaultFireEvent","cancellationExecute","executor","reject","onCancel","TypeError","_attachCancellationCallback","cancellationAttachCancellationCallback","previousOnCancel","cancellationOnCancel","cancellationSetOnCancel","cancellationClearCancellationData","cancellationPropagateFrom","flags","branchesRemainingToCancel","opts","warningsOption","_clearCancellationData","_execute","_propagateFromFunction","monitoring","_fireEvent","nodeSupportsAsyncResource","asyncHooks","cur","handler","_boundValueFunction","isFulfilled","error","ignoreSelf","_parent","attachExtraTrace","__stackCleaned__","parsed","parseStackAndMessage","notEnumerableProp","join","formatAndLogError","cleanStack","line","isTraceLine","test","isInternalFrame","shouldIgnore","charAt","replace","split","stackFramesAsArray","isSoft","console","String","log","localHandler","localEventFired","formatNonError","str","substr","maxChars","snip","captureStackTrace","parseLineInfoRegex","parseLineInfo","matches","match","fileName","parseInt","_promisesCreated","uncycle","inherits","nodes","stackToIndex","node","index","cycleEdgeNode","currentChildLength","stacks","current","currentLastIndex","currentLastLine","commonRootMeetPoint","removeCommonRoots","splice","removeDuplicateOrEmptyJumps","reconstructStack","v8stackFramePattern","v8stackFormatter","stackTraceLimit","ignoreUntil","hasStackAfterThrow","err","isTTY","color","checkForgottenReturns","returnValue","handlerLine","creatorLine","traceLines","lineMatches","firstUserLine","msg","setBounds","lastLineError","firstFileName","lastFileName","firstStackLines","lastStackLines","firstIndex","info","deprecated","replacement","./errors","8","returner","thrower","thenReturn","thenThrow","catchThrow","_reason","caught","catchReturn","_value","9","_TypeError","_RangeError","Objectfreeze","freeze","subError","nameProperty","defaultMessage","SubError","CancellationError","TimeoutError","AggregateError","RangeError","methods","configurable","writable","level","OperationalError","cause","indent","lines","errorTypes","RejectionError","10","isES5","getDescriptor","getOwnPropertyDescriptor","names","getOwnPropertyNames","getPrototypeOf","propertyIsWritable","prop","descriptor","set","has","proto","ObjectKeys","desc","11","catchFilter","PassThroughHandlerContext","type","called","cancelPromise","FinallyHandlerCancelReaction","finallyHandler","checkCancel","succeed","fail","reasonOrValue","isFinallyHandler","isRejected","_passThrough","success","then","lastly","tap","tapCatch","handlerOrPredicate","catchInstances","classString","./catch_filter","12","canEvaluate","last","spread","13","_resolveFromSyncValue","attempt","_rejectCallback","14","maybeWrapAsError","rErrorKey","wrapAsOperationalError","isUntypedError","markAsOriginatingFromRejection","multiArgs","wrapped","_fulfill","15","makeSelfResolutionError","reflectHandler","PromiseInspection","Proxyable","UNDEFINED_BINDING","setReflectHandler","getDomain","domain","getContextDomain","AsyncResource","getContextAsyncHooks","getContext","errors","APPLY","nodebackForPromise","check","_fulfillmentHandler0","_rejectionHandler0","_promise0","_receiver0","_resolveFromExecutor","deferResolve","v","deferReject","fillTypes","reflect","didFulfill","didReject","done","_setIsFinal","all","toJSON","fulfillmentValue","rejectionReason","originatesFromRejection","getNewLibraryCopy","is","val","fromNode","fromCallback","_isFateSealed","_setAsyncGuaranteed","cast","_setFulfilled","fulfilled","rejected","internalData","haveInternalData","bitField","settler","_settlePromiseCtx","_settlePromiseLateCancellationObserver","_addCallbacks","_setLength","_setRejected","_setFollowing","_isFinal","_unsetCancelled","_setNoAsyncGuarantee","_receiverAt","_promiseAt","_fulfillmentHandlerAt","_rejectionHandlerAt","_migrateCallback0","follower","fulfill","_migrateCallbackAt","base","_proxy","proxyable","shouldBind","_setFollowee","synchronous","ignoreNonErrorWarnings","ensureErrorObject","hasStack","_settlePromiseFromHandler","x","_settlePromise","isPromise","asyncGuaranteed","_promiseCancelled","_isResolved","_promiseFulfilled","_promiseRejected","_settlePromise0","_clearCallbackDataAtIndex","_fulfillPromises","_rejectPromises","defer","pending","toFastProperties","b","./async","./bind","./cancel","./context","./debuggability","./direct_resolve","./finally","./join","./method","./nodeback","./promise_array","./synchronous_inspection","./thenables","async_hooks","16","values","_promise","_values","_totalResolved","_init","init","resolveValueIfEmpty","asArray","_iterate","_resolveEmptyArray","_resolve","Map","toResolutionValue","getActualLength","shouldCopyValues","isResolved","17","capacity","_capacity","_front","_willBeOverCapacity","size","_checkCapacity","wrapMask","front","_resizeTo","oldCapacity","src","srcIndex","dst","dstIndex","arrayMove","18","NativePromise","getNativePromise","MutationObserver","GlobalSetImmediate","ProcessNextTick","isRecentNode","nativePromise","navigator","standalone","cordova","documentElement","div","createElement","attributes","toggleScheduled","div2","classList","toggle","observe","disconnect","19","_settledValueField","__isCancelled","20","hasProp","doGetThen","getThen","isAnyBluebirdPromise","doThenable","21","tryCatchTarget","globalObject","tryCatcher","Child","Parent","T","propertyName","constructor$","isPrimitive","maybeError","safeToString","withAppended","appendee","getDataPropertyOrDefault","defaultValue","inheritedDataKeys","excludedPrototypes","isExcludedProto","visitedKeys","enumeration","thisAssignmentPattern","isClass","hasMethods","hasMethodsOtherThanConstructor","hasThisAssignmentAndStaticMethods","FakeConstructor","ic","foo","rident","isIdentifier","filledRange","count","prefix","suffix","isError","ignore","copyDescriptors","from","to","filter","ArrayFrom","itResult","it","next","hasEnvVariables","runInAsyncScope","map","Number","supportsAsync","P","scope","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","messagePrefix","Math","random","onGlobalMessage","source","addEventListener","attachEvent","installPostMessageImplementation","MessageChannel","channel","port1","port2","installMessageChannelImplementation","html","script","onreadystatechange","removeChild","appendChild","installReadyStateChangeImplementation","callback","task","nav_bar_extend","className","element","forEach","cssClass","add","itemTypes","rows_container","row","view","setAttribute","fix_tab_position","$firstTab","$lastTab","date","button","builtInButton","spacer","minicalendarButton","minicalendarDiv","click","$_eventAttached","isCalendarVisible","destroyCalendar","renderCalendar","position","getState","navigation","calendar","setCurrentView","html_element","renderElement","renderer","rows","cols","findRenderer","css","width","style","height","innerHTML","align","justifyContent","prepareConfig","_init_nav_bar","items","navBar","$container","querySelector","_update_nav_bar","previousHeight","container","heightChanged","configChanged","newHeight","xy","nav_height","renderLayout","fragment","createDocumentFragment","unset_actions","_els","get_elements","set_actions","display","scheduler_resize_listener_extend","isAttachedNode","body","parentNode","getWindowSize","w","innerWidth","clientWidth","h","innerHeight","clientHeight","listenWindowResize","resizeDelay","oldSize","newSize","equals","triggerSchedulerResize","$destroyed","$root","callEvent","updateView","getComputedStyle","getPropertyValue","resizeWatcher","tabIndex","wai_aria_attributes","offsetHeight","previousWidth","offsetWidth","lowlevelResizeWatcher","watchNodeResize","contentWindow","addResizeListener","_defineProperties","props","EventHost","instance","Constructor","_classCallCheck","_silent_mode","protoProps","staticProps","_createClass","createEventStorage","handlers","eventStorage","combinedResult","handlerResult","addEvent","settings","handlerId","originalHandler","removeEvent","clear","eventable","eventHost","eventName","thisObject","attachAll","eventArguments","handlerName","checkEvent","detachEvent","list","eventId","detachAllEvents","utils_event","el","_event","eventRemove","removeEventListener","scoped_event","domEvents","eventScope","attach","capture","detach","detachAll","staticArray","extend","common_typeof","wai_aria_typeof","utils_typeof","uidSeed","Date","now","isDate","getFullYear","getMonth","getDate","utils","uid","mixin","force","copy","isStringObject","isNumberObject","isBooleanObject","Boolean","defined","getClassName","baseVal","locateCss","classname","strict","trg","srcElement","ind","left","trim","right","isVisible","visibility","currentStyle","hiddenSection","recurringSection","hasNonNegativeTabIndex","isNaN","getAttribute","hasHref","area","nodeName","loLowerCase","isEnabled","input","select","textarea","hasAttribute","isShadowDomSupported","head","createShadowRoot","attachShadow","getRootNode","ShadowRoot","host","_closest","dom_helpers","getAbsoluteLeft","htmlObject","getOffset","getAbsoluteTop","top","getOffsetSum","elem","offsetTop","offsetLeft","offsetParent","getOffsetRect","box","getBoundingClientRect","userAgent","dummy","dummyBox","docElem","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","round","closest","selector","insertAfter","newNode","referenceNode","nextSibling","insertBefore","remove","getFocusableNodes","querySelectorAll","nodesArray","$position","sort","hasShadowParent","getActiveElement","activeElement","shadowRoot","getSelection","focusNode","getRelativeEventPosition","bottom","y","elementPosition","clientX","clientY","Element","msMatchesSelector","webkitMatchesSelector","parentElement","nodeType","isWindowAwailable","isIE","isIE6","XMLHttpRequest","isIE7","isIE8","isOpera","isChrome","isKHTML","isFF","isIPad","search","isEdge","ajax_typeof","base_extend","generateStringToDate","format","utc","splt","mask","csp_str_to_date","temp","locale","month_short_hash","month_full_hash","UTC","canUseCsp","useCsp","csp","month_short","month_full","_bind_host_object","date_part","setHours","setMinutes","setSeconds","setMilliseconds","getHours","setTime","getTime","time_part","valueOf","getTimezoneOffset","week_start","getDay","start_on_monday","month_start","setDate","year_start","setMonth","day_start","_add_days","inc","ndate","rest","hours","setYear","to_fixed","num","date_to_str","getUTCDate","getUTCMonth","getUTCFullYear","day_short","getUTCDay","day_full","getUTCHours","getUTCMinutes","getMinutes","getUTCSeconds","getSeconds","getUTCISOWeek","getISOWeek","csp_date_to_str","func","str_to_date","exactFormat","stringToDateMethod","parseExactFormat","yyyyMMddhhIIss","MMddyyyyhhIIss","ddMMyyyyhhIIss","ISO8601","parseYMD","parseMDY","parseDMY","dateString","parse_exact_format","datestr","isYMDDate","isMDYDate","isDMYDate","isISO8601","nday","first_thursday","year_number","ordinal_date","floor","convert_to_utc","event_typeof","json_typeof","load_typeof","load_extend","_loaded","_load","url","_load_url","prevent_cache","_date","_load_mode","lf","templates","load_format","_min_date","cache_line","_max_date","temp_to","ajax","ajaxCallback","response","on_load","_parsers","xml","canParse","xhr","responseXML","firstChild","xmlDoc","parse","responseText","topElement","xmltop","tagName","loader","csrfToken","dhtmlx","security_key","xpath","arr","serverList","itms","attrs","label","k","attr","nodeValue","ud","udx","_xmlNodeToJSON","_userdata","text","evs","_init_event","xml_extend","json","events","dhx_security","collections","collections_loaded","collection","option","option_key","json_extend","ical","RegExp","c_start","c_end","incoming","event_r","e_start","e_end","exec","param","param_r","parse_param","parse_date","dh","dm","utcMark","dy","dn","dd","server_utc","ical_extend","foundParser","parser","_process","status","_process_loading","_loading","_not_render","_render_wait","render_view_data","_after_call","_tagvalue","start_date","_init_date","end_date","_helpers","parseDate","getSerializableData","get_serializable_events_default","serialize","dataset","allEvents","exportedEvent","exportValue","rawValue","xml_format","format_date","load","setLoadMode","childNodes","show_loading","_x","_y","_obj","touch_extend","_init_touch_events","touch","MSStream","platform","maxTouchPoints","scroll_width","_mobile","touchEventsSupported","_touch_events","touches","pageX","pageY","PointerEvent","pointerEnabled","pointerType","msPointerEnabled","MSPOINTER_TYPE_MOUSE","accessor","tracker","timer","drag_mode","scroll_mode","action_mode","dblclicktime","attachTouchEvent","_is_lightbox_open","passive","drag_cancel","_hide_global_tip","_on_mouse_up","_temp_touch_block","_drag_id","_drag_mode","_drag_pos","_pointerDragId","acc","dnd","timeline","matrix","_mode","original_render","drag_id","getEvent","y_property","getEvents","_sorder","_count","render_data","_on_mouse_move","preventDefault","cancelBubble","doMouseMove","_update_global_tip","abs","fake_event","pointerId","_click","dhx_cal_data","_on_dbl_click","_block_next_stop","touch_drag","actTask","_locate_event","fakeTask","sourceTask","_ignore_next_click","_getClassName","previousSibling","_on_mouse_down","for_rendered","_rendered","touch_tip","_show_global_tip","updateEvent","touch_swipe_dates","s_ev","e_ev","step","max_dy","scrollable","dx","dhx_cal_next_button","dhx_cal_prev_button","check_direction_swipe","toptip","_global_tip","time","_timed","event_header","day_date","labels","drag_to_create","drag_to_move","skins_extend","calculatedMaterial","cachedBorderBoxValue","checkIfBorderBoxStyling","_is_material_skin","probe","boxSizing","refreshAfterLoad","_border_box_events","oldStyling","_skin_settings","use_select_menu_space","wide_form","hour_size_px","displayed_event_color","displayed_event_text_color","_skin_xy","lightbox_additional_height","bar_height","skin","styles","checkIfMaterialSkin","_configure","col","_skin_init","links","getElementsByTagName","href","defaultButtonsLeft","buttons_left","$initial","defaultButtonsRight","buttons_right","tmp","event_header_height","week_agenda_scale_height","map_icon_width","_lightbox_controls","defaults","scale_height","hour_scale","min","minic","minicalendar","padding","event_bar_date","start","end","event_date","_old_month_day","month_day","old_month_day","_currentDate","dhx_cal_today_button","navline_divs","minical","positions","dataprocessor_typeof","DataProcessor","serverProcessorURL","serverProcessor","action_param","updatedRows","autoUpdate","updateMode","_tMode","_headers","_payload","post_delim","_waitMode","_in_progress","_invalid","messages","updated","inserted","deleted","invalid","invalid_cell","enableUTFencoding","message_typeof","setTransactionMode","total","headers","payload","_tSend","_endnm","_serializeAsJson","_router","router","escape","_escape","_utf","setDataColumns","_columns","getSyncState","enableDataNames","enablePartialDataSend","_changed","setUpdateMode","master","setUpdated","rowId","state","findRow","existing","$scheduler","getUserData","set_invalid","setUserData","is_invalid","markRow","sendData","_methods","details","getActionByState","checkBeforeUpdate","editStop","sendAllData","_beforeSendData","_getRowData","_sendData","_serializeAsJSON","serialize_one","pref","_applyPayload","urlSeparator","dataToSend","queryParams","ids","afterUpdate","urlParams","_user","_cleanupArgumentsBeforeSend","preprocessedData","_cleanupItemBeforeSend","action","query","actionPromise","_onResolvedCreateUpdate","tag","resultState","setRequestHeader","sid","tid","afterUpdateCallback","update","valid","_forEachUpdatedRow","_getAllData","out","has_one","pattern","defineAction","_uActions","btag","correct","originalSid","_errorResponse","cleanUpdate","_setDefaultTransactionMode","_serverProcessor","that","finalizeUpdate","atag","_initialized","_dp_init","dp","_validId","_set_event_text_style","cssText","event_updated","_update_callback","upd","rec_type","rec_pattern","_add_rec_marker","_dp_change_event_id","new_id","changeEventId","_dp_hook_delete","deleteEvent","setDp","_dp","extendScheduler","dataProcessorEvents","$dp","_dataProcessorHandlers","z","_new_event","_dataprocessor","setOnAfterUpdate","setOnBeforeUpdateHandler","setAutoUpdate","interval","user","_need_update","_update_busy","xml_node","afterAutoUpdate","fullSync","loadUpdate","getUpdates","_getXmlNodeValue","vers","updates","destructor","_url","processedData","updatedItem","output","_prepareDataItem","processedItem","formatDate","dataItem","core_message","boxAttribute","_dhx_msg_cfg","usercall","modalBox","hide","modal_key","which","keyCode","messageBox","keyboard","modality","cover","classValue","buttonAriaAttrs","_waiAria","messageButtonAttrString","buttonCss","messageInfoAttr","expire","timers","pull","getFirstDefined","_createBox","ok","contentId","messageModalAttr","inner","content","message_ok","message_cancel","buttons","btn","getElementById","_boxStructure","hidden","focus","alertPopup","confirmPopup","boxPopup","box_params","params","focusable","seed","hideAll","popups","alert","confirm","modalbox","locale_ar","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","grid_tab","year","month","day","hour","minute","locale_be","agenda_tab","description","year_tab","week_agenda_tab","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_occurences_count","repeat_radio_end2","repeat_radio_end3","month_for_recurring","day_for_recurring","locale_ca","locale_cn","locale_cs","locale_da","locale_de","locale_el","locale_en","locale_es","locale_fi","locale_fr","locale_he","locale_hu","locale_id","locale_it","locale_jp","locale_manager_defineProperties","LocaleManager","locale_manager_classCallCheck","_locales","locale_manager_createClass","locale_nb","locale_nl","locale_no","locale_pl","locale_pt","locale_ro","locale_ru","locale_si","locale_sk","locale_sv","locale_tr","locale_ua","scheduler_factory_method_typeof","scheduler_factory_method","extensionManager","commonViews","agenda","grid","unit","week_agenda","anythingElse","requiredExtensions","limit","_commonErrorMessages","unknownView","relatedExtension","collapsedContainer","createTimelineView","createUnitsView","createGridView","addMarkedTimespan","exportToPNG","exportToPDF","_eventRemoveAll","_createDomEventScope","_trim","_isDate","_isObject","common_extend","_detachDomEvent","_init_once","layout","render","hasSchedulerMarkup","wai_aria_application_role","header","views","_props","_grid","viewName","createDefaultHeader","rtl","_scroll","_quirks","$env","compatMode","_quirks7","appVersion","init_templates","set_sizes","min_event_height","scale_width","month_scale_height","menu_width","margin_top","margin_left","editor_width","month_head_height","edit_save","edit_cancel","functor","scale_x","_table_view","scale_s","materialScalePlaceholder","set_xy","_lightbox","_setLbPosition","actual_height","data_y","direction","max","els","class_name","attr_value","labelAttr","domEventsScope","_select_id","_close_not_saved","unselect","min_date","max_date","editor_id","_edit_id","lightbox_id","_lightbox_id","select_id","expanded","readonly","getActionData","def_step","dhx_cal_tab","deprecated_name","substring","delete","_dhtmlx_confirm","title_confirm_deleting","edit","save","showLightbox","addEventNow","event_duration","time_step","start_hour","first_hour","_drag_event","dblclick_create","details_on_dblclick","_get_column_index","x_pos","column","_cols","_ignores","_week_indexes_from_pos","pos","ceil","_mouse_coords","_colsS","$domHelpers","dataArea","heights","_ignores_detected","preserve_length","_event_length","_get_real_event_length","x_step","x_unit","timestamp","title_confirm_closing","positive_closing","_correct_shift","back","_is_pos_changed","old_pos","new_pos","diff","old_val","new_val","has_moved","_correct_drag_start_date","_start_correction","_end_correction","last_hour","_get_fictional_event_length","_correct_drag_end_date","duration","mousedownPos","_get_date_from_pos","_drag_start","fields","timeStep","custom","_dragEventBody","_move_event_shift","resize_date","_drag_from_start","resize_from_start","end_day_start","end_day_date","firstHour","maxY","precisePos","minDate","maxDate","preciseDate","cursor","new_end","new_start","limit_drag_out","all_timed","_get_section_view","_get_event_sday","getView","_allow_dnd","update_render","sx","update_view","drag_event_body","_lame_clone","_get_private_properties","_clear_temporary_properties","clean","flagged_event","initial","current_state","moved","_dhx_changed","is_new","edit_on_create","details_on_create","isOneDayEvent","_lame_copy","_trigger_dyn_loading","_reset_ignores","_reset_scale","isViewExists","_set_aria_buttons_attrs","buttonGroups","group","headerButtonsAttributes","oldClass","newClass","multidayScroll","prev_scroll","preserve_scroll","_dy_shift","tabs","tab","headerToggleState","_render_x_header","offset_top","left_border","columnHeaderText","dayHeaderAttr","_get_columns_num","count_n","_get_timeunit_start","_get_view_end","ed","_calc_scale_sizes","summ","_process_ignores","realcount","_set_scale_col_size","_render_scales","data_area","sd","today","scales","cls","week_date_class","dayColumnAttr","_getNavDateElement","drag_resize","drag_move","_scales","navBarDateStr","scaleElement","navBarDateAttr","_reset_month_scale","_reset_hours_scale","multi_day","c1","totalWidth","col_length","offset","hiddenWidth","c2","cloneNode","dhx_multi_day","cc","hourScaleAttr","scroll_hour","now_date","preserve","ign_date","_render_month_scale","view_start","cd","tdwidths","cell_width","getCellHeight","cellheight","table","tableBody","rendered_dates","row_height","cell","month_date_class","body_class","head_class","monthCellAttr","cellHead","cellBody","bf1","divs","getLabel","sections","lightbox","map_to","options","updateCollection","list_name","resetLightbox","hideCover","cache","n_ev","section","_focus","fd","end_slot","ev_length","start_slot","_get_date_index","last_column","per_day","days","_get_section_property","_is_initialized","scheduler_extend","htmlTags","extraSpaces","stripHTMLLite","htmlText","singleQuotes","escapeQuotes","getAttributeString","setAttributes","aria-label","_label","role","isActive","aria-pressed","getHeaderCellAttr","eventAttr","_eventCommonAttr","event_text","$dataprocessor_class","setEventBarAttr","_getAttributes","attributeSetter","eventBarAttrString","agendaHeadAttrString","agendaHeadDateString","agendaHeadDescriptionString","agendaDataAttrString","agendaEventAttrString","agendaDetailsBtnString","gridAttrString","gridRowAttrString","gridCellAttrString","mapAttrString","mapRowAttrString","mapDetailsBtnString","minicalHeader","headerId","aria-live","aria-atomic","minicalGrid","aria-labelledby","minicalRow","minicalDayCell","selected","aria-selected","minicalHeadCell","weekAgendaDayCell","weekAgendaEvent","lightboxHiddenAttr","lightboxVisibleAttr","lightboxSectionButtonAttrString","tabindex","yearHeader","yearGrid","yearHeadCell","yearRow","yearDayCell","lightboxAttr","lightboxButtonAttrString","buttonName","eventMenuAttrString","iconName","lightboxHeader","headerText","lightboxSelectAttrString","time_option","buttonLabel","quickInfoAttr","quickInfoHeaderAttrString","quickInfoHeader","quickInfoButtonAttrString","tooltipAttr","tooltipVisibleAttr","tooltipHiddenAttr","wai_aria_extend","dom","assert","show_errors","_getFocusableNodes","_locate_css","messageApi","clearAll","destructor_extend","createConfig","url_serialize_default","serializeRequestParams","DOMParser","ActiveXObject","loadXML","parseFromString","tagname","xpathExp","docObj","selectNodes","first","ownerDocument","evaluate","XPathResult","ANY_TYPE","iterateNext","_call","onLoad","getSync","put","postData","del","post","postSync","isQt","readyState","filePath","open","toUpperCase","send","$ajax","ajax_extend","default_date","month_date","load_date","week_date","hour_date","date_format","api_date","drag_create","resize_month_events","resize_month_timed","responsive_lightbox","cascade_event_display","cascade_event_count","cascade_event_margin","multi_day_height_limit","drag_lightbox","quick_info_detached","drag_highlight","icons_edit","icons_select","highlight_displayed_event","ajax_error","delay_render","timeline_swap_resize","event_attribute","xml_date","dhx_save_btn","dhx_cancel_btn","dhx_delete_btn","d1","d2","day_scale_date","month_scale_date","week_scale_date","time_picker","event_class","event_bar_text","month_events_link","drag_marker_class","drag_marker_content","tooltip_date_format","tooltip_text","config_extend","clear_view","extra_data","silent","setEvent","hash","create_getter","create_setter","is_visible_events","clear_event","evFirstHour","evLastHour","lastHour","checkEndDate","get_visible_events","only_timed","filter_event","_is_main_area_event","hold","full","_recalculate_timed","tvs","tvd","_rendered_location","buffer","renderedLocation","_view_month_day","_render_month_link","toRender","_sday","_eday","curr","_sweek","_get_event_bar_pos","widt","x2","_pre_render_events","containers","render_event_bar","max_evs","max_month_events","locate_holder","real","render_event","_get_first_visible_cell","cells","hb","h_old","_pre_render_events_table","_pre_render_events_line","evl","cellHeight","cHeight","unshift","scrollHeight","scroll_fix","scale_settings","sum_width","row_heights","full_multi_day_height","used_multi_day_height","used_multi_day_height_css","multi_day_section","multi_day_icon","overflowY","datePart","_get_event_mapped_end_date","separate_short_events","ev_duration","_min_mapped_duration","evs_originals","sh","eh","_inner","t_ev","slot_index","sorderSet","_is_sorder","_max_sorder","max_count","_copy_event","_time_order","_is_any_multiday_cell_visible","isAnyCellVisible","checkDate","noCells","lastDayEnd","weekCellIndex","locate_holder_day","weeks","chunks_info","first_chunk","last_chunk","chunk_info","locate_s","locate_e","stack_line","_first_chunk","_last_chunk","_copy_dummy","_y_from_date","sm","_calc_event_y","min_height","em","parentWidth","menu","menu_offset","pos_y","ev_count","ev_sorder","margin","_render_v_bar","_text_style","zIndex","backgroundColor","tplClass","_editor","shiftKey","ariaAttr","icons","icons_str","bg_color","textColor","highlightEventPosition","contentA","contentB","cs","cse","borderBox","borderBoxWidth","boxWidth","headerWidth","bodyWidth","footerWidth","bodyHeight","renderEvent","inner_html","footer_class","_drag_resize","past","_get_dnd_order","order","ev_height","max_height","_orig_sorder","evTop","columns","y_event_offset","resize_handle","resizable","left_chunk","right_chunk","resize_left","resize_right","timed","style_text","_edit_stop_event","getRenderedEvent","rendered_events","rendered_event","showEvent","original_color","original_text_color","section_delimiter","getSectionTop","posFromDate","_smartRenderingEnabled","restoreOriginalColors","scrollTo","event_extend","_append_drag_marker","scale","lastChild","_update_marker_position","event_highlight_extend","formSection","getLightbox","getValue","form_blocks","get_value","setValue","set_value","get_template_control","control","get_select_control","get_textarea_control","get_time_control","template","sns","defaultHeight","_get_input","_dhx_onchange","onchange","time_format","_time_format_order","cfg","dt","limit_time_select","selectBoxClass","range","start_year","end_year","year_range","tdate","_time_values","ariaAttrs","_full_day","checked","disabled","_fill_lightbox_select","auto_end_date","_update_lightbox_select","time_values","direct_value","fixed_value","value_found","t_v","selectedIndex","original","viewHeight","scrollWidth","showCover","show_cover","_fill_lightbox","lightbox_header","headerContent","headerDate","headerTitle","current_sns","_get_lightbox_section_node","block","default_value","_lightbox_out","_empty_lightbox","hide_lightbox","endLightbox","hide_cover","_cover","save_lightbox","startLightbox","_custom_lightbox","_temp_lightbox","cancel_lightbox","hideLightbox","_init_lightbox_events","buttonTarget","readonly_active","sectionButton","button_click","setLightboxSize","con","_init_dnd_events","_move_while_dnd","_finish_dnd","_dnd_start_lb","dhx_unselectable","lb","_lb_start","_ready_to_dnd","recurring","_lightbox_template","label_name","ds","t_ds","_bindLightboxLabels","inputBlock","fallback","inputId","old_id","lightbox_extend","getRootView","hooks","didInsert","cmp","dhtmlx_suite_hooks_extend","jQuery","$","counter","dhx_scheduler","each","Scheduler","getSchedulerInstance","comp","update_view_timer","curr_view_timer","lazy_setCurrentView","oldDate","oldMode","updateFlags","lazy_updateView","ars","delay_render_extend","createDataProcessor","tMode","batchUpdate","dataprocessor_extend","dhtmlxError","catchError","connector_extend","i18n","en","ar","be","ca","cn","da","de","es","fi","fr","he","hu","jp","nb","nl","no","pl","pt","ro","ru","si","sk","sv","tr","ua","addLocale","setLocale","localeObject","getLocale","ext","activePlugins","plugins","dependencies","priorities","extension","dep","dependencyName","orderA","orderB","getExtensionList","treetimeline","daytimeline","outerdrag","plugin","getExtension","extension_manager_defineProperties","ExtensionsManager","extension_manager_classCallCheck","_extensions","extension_manager_createClass","scheduler_factory_defineProperties","attaches","attachScheduler","_genStr","attachObject","vs","av","sched","schedId","setSizes","_viewRestore","not_implemented_extension","modals","modalsStack","isModal","afterPopup","isChildOf","trapFocus","currentTarget","isTopModal","$keyboardNavigation","startModal","_keyNavMessagePopup","focusElement","backupFocus","_modalsStack","key_nav_legacy","_temp_key_scope","key_nav","_pasteDate","_pasteSection","isCopy","trackMousePosition","mousePointer","keyNavPointer","elementFromPoint","dispatcher","copyEvent","_make_pasted_event","event_pid","event_length","clear_event_after","multisection","_do_paste","is_copy","modified_ev","original_ev","_is_key_nav_active","ctrlKey","metaKey","_buffer_event","_key_nav_copy_paste","getActiveNode","getSelectedEvent","new_ev","scheduler_handlers","attachSchedulerHandlers","waitCall","keyDownHandler","focusHandler","keepScrollPosition","focusGlobalNode","enable","reFocusActiveNode","activeNode","isValid","MinicalButton","MinicalCell","mousedownHandler","dataAreaClick","TimeSlot","nextSlot","delay","setActiveNode","removeAttribute","evNode","prevState","lastStart","lastEnd","lastSection","getNode","focusEvent","layer_typeof","limit_typeof","multisource_typeof","pdf_typeof","recurring_typeof","SchedulerFactory","extensions","scheduler_factory_classCallCheck","_seed","_schedulerPlugins","_bundledExtensions","_extensionsManager","scheduler_factory_createClass","initConfig","_internal_id","$syncFactory","_initFromConfig","calendars","addCalendar","active_links","active_link_view","_active_link_click","s_d","do_wrapper","fullname","week_x","d_s","agenda_view","add_agenda","agenda_time","agenda_text","agenda_date","agenda_start","old_dblclick_dhx_cal_data","dblclick_dhx_cal_data","fill_agenda_tab","old_render_view_data","ev_class","agendaDetailsButtonAttr","_agendaScrollTop","agenda_area","dateElement","agenda_end","rowAttr","dateHeader","descriptionHeader","set_full_view","all_timed_month","is_event_short","_safe_copy","isPrototypeOf","old_prerender_events_line","old_prerender_events_table","prerender_events","ce","_virtual","isOvernightEvent","getNextDay","setDateTime","event_changed","re","redraw","next_day","old_get_visible_events","old_mode","old_date","oldUpdate","fullRedrawNeeded","collision","temp_section","_setTempSection","event_id","collision_limit","checkCollision","edited_ev","_roll_back_dates","_check_sections_collision","second","evs_dates","getRecDates","tevs","concurrent","checked_mode","single","container_autoresize","month_day_min_height","min_grid_size","min_map_size","old_pre_render_event","total_height","multiday_height","_h_fix","checked_divs","updateContainterHeight","is_repaint","checked_div","year_y","cur_height","eventsContainer","_gridView","y_unit","getSectionHeight","getScrollSize","callUpdate","conditionalUpdateContainerHeight","asyncRepaint","requestAnimationFrame","autosizeEnabled","$original_scroll_width","$original_section_autoheight","section_autoheight","cookie","getCookieName","_get_url_nav","urlNavigationPlugin","schedulerCookie","getCookie","unescape","newMode","newDate","cookie_param","setCookie","old_load","drag_between","editors","cached_options","resetCombo","_combo","DOMParent","combo","unload","DOMelem","dhx_globalImgPath","image_path","dhtmlXCombo","options_height","setOptionHeight","enableFilteringMode","filtering","script_path","selected_id","addOption","disable","selectOption","setComboValue","all_options","single_option","getIndexByValue","getSelectedValue","getSelectedText","vertical","radiobuttons","checked_value","isChecked","check_html","label_html","checkbox","unchecked_value","expand","fullscreen","toggleIcon","_position","_width","_height","_overflow","overflow","_maximize","collapse","backgroundPosition","directions","prev_margin","grid_view","html_templates","getScope","scopes","minicalButton","minicalDate","SchedulerNode","DataArea","timeSlot","searchMap","key_nav_step","addShortcut","shortcut","scopeObject","getShortcutHandler","commands","shortcuts","findHandler","removeShortcut","unbind","disp","setDefaultNode","_compose","parts","createCommand","modifiers","alt","ctrl","meta","expr","getExpressions","words","getWords","command","commandKeys","specialKeys","charCodeAt","getCommandFromEvent","altKey","printableKey","fromCharCode","getHashFromEvent","getHash","junctionChar","term","combinationChar","backspace","enter","esc","space","up","down","home","pageup","pagedown","insert","plus","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","keyboard_shortcuts","EventHandler","_handlers","doAction","bindAll","initKeys","eventhandler","nextItem","currentFocus","currentIndex","trap_modal_focus","renderMultiple","currentStart","currentEnd","modes","_modes","_getMode","units","renderVerticalMarker","renderTimelineMarker","renderYearMarker","renderMonthMarker","weekAgenda","renderWeekAgendaMarker","renderAgendaMarker","dayColumns","addWaiAriaLabel","addDataAttributes","dateToStr","dateTimeLabel","currDate","markerDate","_wrapDiv","_get_year_cell","opacity","view_opts","areas","round_position","blocks","_trace_x","_is_column_visible","start_pos","_timeline_getX","end_pos","_section_height","_isRender","renderMonthCell","weekNumber","dayIndex","datatable","currentDate","inner_index","all_hours_height","lineHeight","getDefaultNode","getMode","blur","_compareEvents","_pickEvent","startId","reverse","nextEventHandler","nextEvent","currEvent","visibleDates","nextEv","prevEventHandler","alt+1, alt+2, alt+3, alt+4, alt+5, alt+6, alt+7, alt+8, alt+9","HeaderCell","getNodes","ctrl+left,meta+left","ctrl+right,meta+right","ctrl+up,meta+up","ctrl+down,meta+down","shift+e","ctrl+enter,meta+enter","ctrl+c,meta+c","ctrl+v,meta+v","ctrl+x,meta+x","scheduler_node","KeyNavNode","moveTo","compareTo","canStringifyThis","canStringifyThat","nav_node","defaultCell","newIndex","header_cell","_getSection","_getNodes","eventNode","defaultElement","isScrolledIntoView","eventBox","viewPort","idSelector","inlineEditor","getInlineEditor","isMultisectionEvent","_moveToSlot","slot","elements_event","movingDate","getDefaultDate","_getDefaultSection","visibleTime","nowTime","showNowTime","findVisibleColumn","dataContainer","clone","timeslot","_getMultisectionView","_getNextSection","sectionId","nextIndex","defaultSlot","addMonthDate","nextMonthSlot","_alignTimeSlot","nextTimelineSlot","startDate","endDate","newPos","nextUnitsSlot","optionsCount","nextDaySlot","_moveDate","isBeforeLastHour","isStartDate","minutes","isAfterFirstHour","isInVisibleDayTime","oldStart","toNextDay","testEnd","nextWeekAgendaSlot","nextAgendaSlot","isDateVisible","nextDateColumn","tempSlot","extendSlot","extendUnitsSlot","extendTimelineSlot","extendMonthSlot","extendDaySlot","extendWeekAgendaSlot","extendGenericSlot","allowedDirections","moveDate","newDates","extendSlotDates","oldSlot","newSlot","dateDirection","scrollSlot","shift+down","shift+up","shift+right","shift+left","time_slot","globalNode","minical_button","_getGrid","_getNode","enabled","newRow","newCol","minical_cell","up,down,right,left","blurNode","editor","defaultPrevented","schedulerNode","_timeout","_delay","core","_minicalendars","isMinical","minicalendars","patchMinicalendar","focusMinical","minicalClick","rowIndex","cellIndex","td","renderMinical","cal","added","destroyMinical","_def_count","minical_handlers","attachOnce","isSchedulerSelected","changeState","layer","layers","validId","_clearUpdateFlag","_cloneObj","_dataprocessors","_layers_zindex","initial_layer_zindex","isDefault","defaultLayer","showLayer","tlayer","toggleLayer","hideLayer","visible","getLayer","layer_name","native_event_object","noMenu","_evs_layer","_t_render_view_data","evs_layer","new_zIndex","filter_agenda","limit_start","limit_end","limit_view","check_limits","mark_now","display_marked_timespans","overwrite_marked_timespans","_temp_limit_scope","get_resulting_options","zones","fix_options","blockTime","unblockTime","deleteMarkedTimespan","om","od","nm","nd","isBlocked","date_end","resetDate","checkInMarkedTimespan","timespan_type","on_overlap","temp_start_date","temp_end_date","timespans","_marked_timespans","day_value","getZones","eventStart","_get_zone_minutes","eventEnd","markerStart","markerEnd","blocker","checkLimitViolation","dates","complete_res","allow","day_index","linker","_add_timespan_zones","_get_blocked_zones","timeline_zones","blocked_timeline_zones","_get_relevant_blocked_zones","resultZones","is_new_event","data_copy","native_object","_mark_now","_mark_now_timer","_remove_mark_now","_append_mark_now","zone_start","start_index","end_index","units_l","r_divs","t_day","t_div","_render_marked_timespan","_prepare_timespan_options","r_configs","temp_configs","t_days","cloned_config","invert_zones","invertZones","view_key","t_config","c_config","t_sd","t_ed","zone_end","_get_dates_by_index","start_day","delta","t_date","_get_css_classes_by_config","css_classes","dhx_time_block","_get_block_by_config","date_to_display","min_day","sweek","sday","columnNumber","block_proto","_mark_timespans","_on_scale_add_marker","markTimespan","configuration","rebuild_els","timespans_ids","_marked_timespans_ids","timespan_types","_marked_timespans_types","unmarkTimespan","_addMarkerTimespanConfig","unit_id","timespans_view","day_configs","_array","configs","current_zones","resulting_zones","c_zone_start","c_zone_end","isLast","_subtract_timespan_zones","is_modified","_delete_marked_timespan_by_id","parent_array","_delete_marked_timespan_by_config","viewspans","_delete_marked_timespans_list","dayConfig","day_timespans","d_t","related_zones","types","typedConfig","_get_types_to_render","common","specific","types_to_render","_get_configs_to_render","_get_unit_index","day_ind","unitsPerDay","unit_zones","unit_types","global_data","day_types","dblclick_dhx_marked_timespan","map_view","geocoder","map_date_width","map_description_width","map_resolve_event_location","map_resolve_user_location","map_initial_position","google","maps","LatLng","map_error_position","map_infowindow_max_width","map_type","MapTypeId","ROADMAP","map_zoom_after_resolve","marker_geo_success","marker_geo_fail","marker_date","marker_text","event_location","dblclick_dhx_map_area","map_time","map_text","map_start","add_map","map_date","_latLngUpdate","_isMapPositionSet","gmap","dhx_gmap","_setMapSize","mapOptions","zoom","map_initial_zoom","center","mapTypeId","disableDefaultUI","disableDoubleClickZoom","point","latLng","geocode","results","GeocoderStatus","OK","geometry","location","lat","lng","formatted_address","infoWindowOptions","maxWidth","_points","_markers","_infowindow","InfoWindow","_infowindows_content","_initialization_count","Geocoder","geolocation","getCurrentPosition","_userLocation","coords","latitude","longitude","setCenter","setZoom","setContent","getCenter","setPosition","getZoom","fill_map_tab","_selected_event_id","ariaButtonAttr","elem_id","marginRight","marginLeft","marginTop","showAddress","temp_center","map_end","markers","setMap","clear_map_tab","trigger","selectEvent","performClick","Marker","_displayEventOnMap","address","language","_updateEventLocation","event_object","old_event_id","new_event_id","_event_resolve_delay","minicalDomEvents","calendar_month","calendar_scale_date","calendar_date","mark_events","_synced_minicalendars","_prev","is_refresh","_render_calendar","unmarkCalendar","cont","tpos","_get_def_cont","$dom","dateAttribute","markCalendar","_last_date","conf","markedDates","_markCalendarCurrentDate","sync","_on_xle_handler","updateCalendar","_created","_locateCalendar","weekNum","dat","_week_template","week_template","dummy_date","_mini_cal_arrows","previous","ts","temp2","temp3","temp4","temp5","temp6","temp7","temp8","weekHeader","move_minicalendar_date","css_classnames","css_texts","diffs","arrow","dayHeaders","dayCells","firstDate","calendar_time","inputs","selects","inp","number","new_date","_update_minical_select","isFulldayEvent","_attach_action","_round_minutes","linkCalendar","datediff","dateNew","month_end","monthheight","old_s","multisource","backup","mvc","update_timer","use_id","sanitize","_finish_ext_load","_get_id","model","cid","backbone","changes","add_from_queue","Backbone","Collection","_start_ext_load","last_event","dragger","dhtmlDragAndDropObject","stopDrag","on_drop","sourceHtmlObject","dhtmlObject","targetHtmlObject","targetHtml","action_data","event_data","view_options","_locate_cell_timeline","addDragLanding","_drag","_dragIn","shtmlObject","_dragOut","DragControl","addDrop","onDrop","sourceDhtmlx","getMaster","onDragIn","pdf","html_regexp","newline_regexp","clean_html","x_norm","parseFloat","colsWidth","x_norm_event","is_left","dhx_cal_header","y_norm","get_style","de_day","de_week","xml_start","xml_end","xml_top","profile","footer","xml_body_header","dhx_cal_date","xh","xml_month_scale","xml_month","yh","xhs","second_scale","top_width","top_col","xml_body","colors","week_starts","_month","text_color","zx","zdx","left_norm","zy","zdy","e_type","dets","week","dy_copy","toXML","original_date","original_mode","temp_date","to_pdf","submit","send_xml","objects","getPDFData","schedulersToPdf","toPDF","toPDFRange","quick_info","show_quick_info","showQuickInfo","hiding_function","hideQuickInfo","quick_info_title","quick_info_content","quick_info_date","_quick_info_box_id","_get_event_counter_part","_quick_info_box","_init_quick_info","_fill_quick_data","_show_quick_info","cssTimeToMs","milliseconds","forced","qi","_quick_info_onscroll_handler","sizes","$testmode","quick_info_buttons","_qi_button_click","domEv","titleContent","originalRecurringSetValue","original_left_buttons","original_right_buttons","txt_replace","txts","txtt","readonly_form","wrapper","forbidden_buttons","button_arrays","forbidden_button","button_array","_lightbox_r","olds","getRecurringSection","getFirstSectionOfType","clearMilliseconds","occurrence_timestamp_in_utc","recurring_workdays","_get_node","_outer_html","outerHTML","getOuterHTML","form","rec","loc","repeat_date_of_end","_ds","_get_form_node","_get_node_value","multiselect","_get_node_numeric_value","_set_node_value","hash_value","_init_set_value","_end_date","str_date_format","repeat_date","str_date","_str_date","include_end_by","date_str","register_els","inps","formatter","change_current_view","set_end_rule","_get_repeat_code","get_rcode","repeat","get_end_rule","transpose_type","get_numeric_value","repeat_precise","_start","start_exists","transpose_day_week","set_rcode","_set_repeat_code","MouseEvent","elements","_rec_init_done","rf","blocked","_is_modified_occurence","_toggle_block","actual_dates","timeControl","getTimeSection","_start_date","_get_button","_get_form","_rec_markers","_rec_markers_pull","_pid_time","_get_rec_marker","ch","_get_rec_markers","_rec_temp","old_add_event","ev_id","_ignore_call","tev","_pid_changed","_is_virtual_event","nid","nev","sub","isEventFound","setFullYear","showLightbox_rec","lightbox_recurring","pid","isVirtual","showSeries","title_confirm_recurring","get_visible_events_rec","old_update_event","transponse_size","day_week","originalMonth","newMonth","cor","cor2","cday","transposeRecurring","recurringParts","addRecurring","recurringStepDays","weekDays","seriesInstance","currentCount","origMonth","origYear","correctOverflowInstances","recurring_overflow_instances","getMilliseconds","non_render","maxCount","startHour","visibleCount","_fix_daylight_saving_date","ted","recurrings","sev","data_attributes","all_events","_serialize_json_value","toICal","full_day_format","tooltip","tooltipEventScope","dhtmlXTooltip","timeout_to_display","timeout_to_hide","delta_x","delta_y","show","touch_tooltip","dhxTooltip","tooltip_div","tooltipStyle","isTooltip","actual_x","actual_y","tooltip_width","tooltip_height","relatedTarget","_clearTimeout","_timeout_id","is_tooltip","is_tooltip_target","isTooltipTarget","evt","s2d","d2s","select_event","wp","year_view","year_x","year_top","year_date","year_month","year_scale_date","year_tooltip","is_year_mode","dblclick_dhx_month_head","monthNode","chid","_year_render_event","_year_marked_cells","_hideToolTip","_tooltip","_showToolTip","_year_view_tooltip_handler","_init_year_tooltip","yearBox","_mark_year_date","_unmark_year_date","_reset_year_scale","scales_count","real_count","ssd","_get_year_month_date","_get_year_month_cell","_get_year_day_indexes","targetCell","_get_year_el_node","_locate_year_month_table","_locate_year_month_root","_locate_year_month_day","locateEvent","_locate_year_month_cell","_get_year_month_table","_get_year_month_root","condition","dhtmlxscheduler_gpl_scheduler","dhtmlxscheduler_gpl_Scheduler"],"mappings":"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","file":"dhtmlxscheduler.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"dhtmlxscheduler\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"dhtmlxscheduler\"] = factory();\n\telse\n\t\troot[\"dhtmlxscheduler\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/codebase/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 9);\n","/* eslint-disable no-restricted-globals */\nvar globalScope;\n\nif (typeof window !== \"undefined\") {\n globalScope = window;\n} else {\n globalScope = global;\n}\n/* eslint-enable no-restricted-globals */\n\n\nexport default globalScope;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","module.exports = function (scheduler) {\n return function () {\n var res = {};\n\n for (var a in this._events) {\n var ev = this._events[a];\n\n if (ev.id.toString().indexOf(\"#\") == -1) {\n res[ev.id] = ev;\n }\n }\n\n return res;\n }.bind(scheduler);\n};","module.exports = function (data) {\n if (typeof data === \"string\" || typeof data === \"number\") {\n return data;\n }\n\n var result = \"\";\n\n for (var key in data) {\n var serialized = \"\";\n\n if (data.hasOwnProperty(key)) {\n if (typeof data[key] === \"string\") {\n serialized = encodeURIComponent(data[key]);\n } else if (typeof data[key] === \"number\") {\n serialized = data[key];\n } else {\n serialized = encodeURIComponent(JSON.stringify(data[key]));\n }\n\n serialized = key + \"=\" + serialized;\n\n if (result.length) {\n serialized = \"&\" + serialized;\n }\n\n result += serialized;\n }\n }\n\n return result;\n};","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* @preserve\n * The MIT License (MIT)\n * \n * Copyright (c) 2013-2018 Petka Antonov\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n * \n */\n\n/**\n * bluebird build version 3.7.2\n * Features enabled: core\n * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each\n*/\n!function (e) {\n if (\"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module) module.exports = e();else if (\"function\" == typeof define && define.amd) define([], e);else {\n var f;\n \"undefined\" != typeof window ? f = window : \"undefined\" != typeof global ? f = global : \"undefined\" != typeof self && (f = self), f.Promise = e();\n }\n}(function () {\n var define, module, exports;\n return function e(t, n, r) {\n function s(o, u) {\n if (!n[o]) {\n if (!t[o]) {\n var a = typeof _dereq_ == \"function\" && _dereq_;\n if (!u && a) return a(o, !0);\n if (i) return i(o, !0);\n var f = new Error(\"Cannot find module '\" + o + \"'\");\n throw f.code = \"MODULE_NOT_FOUND\", f;\n }\n\n var l = n[o] = {\n exports: {}\n };\n t[o][0].call(l.exports, function (e) {\n var n = t[o][1][e];\n return s(n ? n : e);\n }, l, l.exports, e, t, n, r);\n }\n\n return n[o].exports;\n }\n\n var i = typeof _dereq_ == \"function\" && _dereq_;\n\n for (var o = 0; o < r.length; o++) {\n s(r[o]);\n }\n\n return s;\n }({\n 1: [function (_dereq_, module, exports) {\n \"use strict\";\n\n var firstLineError;\n\n try {\n throw new Error();\n } catch (e) {\n firstLineError = e;\n }\n\n var schedule = _dereq_(\"./schedule\");\n\n var Queue = _dereq_(\"./queue\");\n\n function Async() {\n this._customScheduler = false;\n this._isTickUsed = false;\n this._lateQueue = new Queue(16);\n this._normalQueue = new Queue(16);\n this._haveDrainedQueues = false;\n var self = this;\n\n this.drainQueues = function () {\n self._drainQueues();\n };\n\n this._schedule = schedule;\n }\n\n Async.prototype.setScheduler = function (fn) {\n var prev = this._schedule;\n this._schedule = fn;\n this._customScheduler = true;\n return prev;\n };\n\n Async.prototype.hasCustomScheduler = function () {\n return this._customScheduler;\n };\n\n Async.prototype.haveItemsQueued = function () {\n return this._isTickUsed || this._haveDrainedQueues;\n };\n\n Async.prototype.fatalError = function (e, isNode) {\n if (isNode) {\n process.stderr.write(\"Fatal \" + (e instanceof Error ? e.stack : e) + \"\\n\");\n process.exit(2);\n } else {\n this.throwLater(e);\n }\n };\n\n Async.prototype.throwLater = function (fn, arg) {\n if (arguments.length === 1) {\n arg = fn;\n\n fn = function fn() {\n throw arg;\n };\n }\n\n if (typeof setTimeout !== \"undefined\") {\n setTimeout(function () {\n fn(arg);\n }, 0);\n } else try {\n this._schedule(function () {\n fn(arg);\n });\n } catch (e) {\n throw new Error(\"No async scheduler available\\n\\n See http://goo.gl/MqrFmX\\n\");\n }\n };\n\n function AsyncInvokeLater(fn, receiver, arg) {\n this._lateQueue.push(fn, receiver, arg);\n\n this._queueTick();\n }\n\n function AsyncInvoke(fn, receiver, arg) {\n this._normalQueue.push(fn, receiver, arg);\n\n this._queueTick();\n }\n\n function AsyncSettlePromises(promise) {\n this._normalQueue._pushOne(promise);\n\n this._queueTick();\n }\n\n Async.prototype.invokeLater = AsyncInvokeLater;\n Async.prototype.invoke = AsyncInvoke;\n Async.prototype.settlePromises = AsyncSettlePromises;\n\n function _drainQueue(queue) {\n while (queue.length() > 0) {\n _drainQueueStep(queue);\n }\n }\n\n function _drainQueueStep(queue) {\n var fn = queue.shift();\n\n if (typeof fn !== \"function\") {\n fn._settlePromises();\n } else {\n var receiver = queue.shift();\n var arg = queue.shift();\n fn.call(receiver, arg);\n }\n }\n\n Async.prototype._drainQueues = function () {\n _drainQueue(this._normalQueue);\n\n this._reset();\n\n this._haveDrainedQueues = true;\n\n _drainQueue(this._lateQueue);\n };\n\n Async.prototype._queueTick = function () {\n if (!this._isTickUsed) {\n this._isTickUsed = true;\n\n this._schedule(this.drainQueues);\n }\n };\n\n Async.prototype._reset = function () {\n this._isTickUsed = false;\n };\n\n module.exports = Async;\n module.exports.firstLineError = firstLineError;\n }, {\n \"./queue\": 17,\n \"./schedule\": 18\n }],\n 2: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (Promise, INTERNAL, tryConvertToPromise, debug) {\n var calledBind = false;\n\n var rejectThis = function rejectThis(_, e) {\n this._reject(e);\n };\n\n var targetRejected = function targetRejected(e, context) {\n context.promiseRejectionQueued = true;\n\n context.bindingPromise._then(rejectThis, rejectThis, null, this, e);\n };\n\n var bindingResolved = function bindingResolved(thisArg, context) {\n if ((this._bitField & 50397184) === 0) {\n this._resolveCallback(context.target);\n }\n };\n\n var bindingRejected = function bindingRejected(e, context) {\n if (!context.promiseRejectionQueued) this._reject(e);\n };\n\n Promise.prototype.bind = function (thisArg) {\n if (!calledBind) {\n calledBind = true;\n Promise.prototype._propagateFrom = debug.propagateFromFunction();\n Promise.prototype._boundValue = debug.boundValueFunction();\n }\n\n var maybePromise = tryConvertToPromise(thisArg);\n var ret = new Promise(INTERNAL);\n\n ret._propagateFrom(this, 1);\n\n var target = this._target();\n\n ret._setBoundTo(maybePromise);\n\n if (maybePromise instanceof Promise) {\n var context = {\n promiseRejectionQueued: false,\n promise: ret,\n target: target,\n bindingPromise: maybePromise\n };\n\n target._then(INTERNAL, targetRejected, undefined, ret, context);\n\n maybePromise._then(bindingResolved, bindingRejected, undefined, ret, context);\n\n ret._setOnCancel(maybePromise);\n } else {\n ret._resolveCallback(target);\n }\n\n return ret;\n };\n\n Promise.prototype._setBoundTo = function (obj) {\n if (obj !== undefined) {\n this._bitField = this._bitField | 2097152;\n this._boundTo = obj;\n } else {\n this._bitField = this._bitField & ~2097152;\n }\n };\n\n Promise.prototype._isBound = function () {\n return (this._bitField & 2097152) === 2097152;\n };\n\n Promise.bind = function (thisArg, value) {\n return Promise.resolve(value).bind(thisArg);\n };\n };\n }, {}],\n 3: [function (_dereq_, module, exports) {\n \"use strict\";\n\n var old;\n if (typeof Promise !== \"undefined\") old = Promise;\n\n function noConflict() {\n try {\n if (Promise === bluebird) Promise = old;\n } catch (e) {}\n\n return bluebird;\n }\n\n var bluebird = _dereq_(\"./promise\")();\n\n bluebird.noConflict = noConflict;\n module.exports = bluebird;\n }, {\n \"./promise\": 15\n }],\n 4: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (Promise, PromiseArray, apiRejection, debug) {\n var util = _dereq_(\"./util\");\n\n var tryCatch = util.tryCatch;\n var errorObj = util.errorObj;\n var async = Promise._async;\n\n Promise.prototype[\"break\"] = Promise.prototype.cancel = function () {\n if (!debug.cancellation()) return this._warn(\"cancellation is disabled\");\n var promise = this;\n var child = promise;\n\n while (promise._isCancellable()) {\n if (!promise._cancelBy(child)) {\n if (child._isFollowing()) {\n child._followee().cancel();\n } else {\n child._cancelBranched();\n }\n\n break;\n }\n\n var parent = promise._cancellationParent;\n\n if (parent == null || !parent._isCancellable()) {\n if (promise._isFollowing()) {\n promise._followee().cancel();\n } else {\n promise._cancelBranched();\n }\n\n break;\n } else {\n if (promise._isFollowing()) promise._followee().cancel();\n\n promise._setWillBeCancelled();\n\n child = promise;\n promise = parent;\n }\n }\n };\n\n Promise.prototype._branchHasCancelled = function () {\n this._branchesRemainingToCancel--;\n };\n\n Promise.prototype._enoughBranchesHaveCancelled = function () {\n return this._branchesRemainingToCancel === undefined || this._branchesRemainingToCancel <= 0;\n };\n\n Promise.prototype._cancelBy = function (canceller) {\n if (canceller === this) {\n this._branchesRemainingToCancel = 0;\n\n this._invokeOnCancel();\n\n return true;\n } else {\n this._branchHasCancelled();\n\n if (this._enoughBranchesHaveCancelled()) {\n this._invokeOnCancel();\n\n return true;\n }\n }\n\n return false;\n };\n\n Promise.prototype._cancelBranched = function () {\n if (this._enoughBranchesHaveCancelled()) {\n this._cancel();\n }\n };\n\n Promise.prototype._cancel = function () {\n if (!this._isCancellable()) return;\n\n this._setCancelled();\n\n async.invoke(this._cancelPromises, this, undefined);\n };\n\n Promise.prototype._cancelPromises = function () {\n if (this._length() > 0) this._settlePromises();\n };\n\n Promise.prototype._unsetOnCancel = function () {\n this._onCancelField = undefined;\n };\n\n Promise.prototype._isCancellable = function () {\n return this.isPending() && !this._isCancelled();\n };\n\n Promise.prototype.isCancellable = function () {\n return this.isPending() && !this.isCancelled();\n };\n\n Promise.prototype._doInvokeOnCancel = function (onCancelCallback, internalOnly) {\n if (util.isArray(onCancelCallback)) {\n for (var i = 0; i < onCancelCallback.length; ++i) {\n this._doInvokeOnCancel(onCancelCallback[i], internalOnly);\n }\n } else if (onCancelCallback !== undefined) {\n if (typeof onCancelCallback === \"function\") {\n if (!internalOnly) {\n var e = tryCatch(onCancelCallback).call(this._boundValue());\n\n if (e === errorObj) {\n this._attachExtraTrace(e.e);\n\n async.throwLater(e.e);\n }\n }\n } else {\n onCancelCallback._resultCancelled(this);\n }\n }\n };\n\n Promise.prototype._invokeOnCancel = function () {\n var onCancelCallback = this._onCancel();\n\n this._unsetOnCancel();\n\n async.invoke(this._doInvokeOnCancel, this, onCancelCallback);\n };\n\n Promise.prototype._invokeInternalOnCancel = function () {\n if (this._isCancellable()) {\n this._doInvokeOnCancel(this._onCancel(), true);\n\n this._unsetOnCancel();\n }\n };\n\n Promise.prototype._resultCancelled = function () {\n this.cancel();\n };\n };\n }, {\n \"./util\": 21\n }],\n 5: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (NEXT_FILTER) {\n var util = _dereq_(\"./util\");\n\n var getKeys = _dereq_(\"./es5\").keys;\n\n var tryCatch = util.tryCatch;\n var errorObj = util.errorObj;\n\n function catchFilter(instances, cb, promise) {\n return function (e) {\n var boundTo = promise._boundValue();\n\n predicateLoop: for (var i = 0; i < instances.length; ++i) {\n var item = instances[i];\n\n if (item === Error || item != null && item.prototype instanceof Error) {\n if (e instanceof item) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (typeof item === \"function\") {\n var matchesPredicate = tryCatch(item).call(boundTo, e);\n\n if (matchesPredicate === errorObj) {\n return matchesPredicate;\n } else if (matchesPredicate) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (util.isObject(e)) {\n var keys = getKeys(item);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n\n if (item[key] != e[key]) {\n continue predicateLoop;\n }\n }\n\n return tryCatch(cb).call(boundTo, e);\n }\n }\n\n return NEXT_FILTER;\n };\n }\n\n return catchFilter;\n };\n }, {\n \"./es5\": 10,\n \"./util\": 21\n }],\n 6: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (Promise) {\n var longStackTraces = false;\n var contextStack = [];\n\n Promise.prototype._promiseCreated = function () {};\n\n Promise.prototype._pushContext = function () {};\n\n Promise.prototype._popContext = function () {\n return null;\n };\n\n Promise._peekContext = Promise.prototype._peekContext = function () {};\n\n function Context() {\n this._trace = new Context.CapturedTrace(peekContext());\n }\n\n Context.prototype._pushContext = function () {\n if (this._trace !== undefined) {\n this._trace._promiseCreated = null;\n contextStack.push(this._trace);\n }\n };\n\n Context.prototype._popContext = function () {\n if (this._trace !== undefined) {\n var trace = contextStack.pop();\n var ret = trace._promiseCreated;\n trace._promiseCreated = null;\n return ret;\n }\n\n return null;\n };\n\n function createContext() {\n if (longStackTraces) return new Context();\n }\n\n function peekContext() {\n var lastIndex = contextStack.length - 1;\n\n if (lastIndex >= 0) {\n return contextStack[lastIndex];\n }\n\n return undefined;\n }\n\n Context.CapturedTrace = null;\n Context.create = createContext;\n\n Context.deactivateLongStackTraces = function () {};\n\n Context.activateLongStackTraces = function () {\n var Promise_pushContext = Promise.prototype._pushContext;\n var Promise_popContext = Promise.prototype._popContext;\n var Promise_PeekContext = Promise._peekContext;\n var Promise_peekContext = Promise.prototype._peekContext;\n var Promise_promiseCreated = Promise.prototype._promiseCreated;\n\n Context.deactivateLongStackTraces = function () {\n Promise.prototype._pushContext = Promise_pushContext;\n Promise.prototype._popContext = Promise_popContext;\n Promise._peekContext = Promise_PeekContext;\n Promise.prototype._peekContext = Promise_peekContext;\n Promise.prototype._promiseCreated = Promise_promiseCreated;\n longStackTraces = false;\n };\n\n longStackTraces = true;\n Promise.prototype._pushContext = Context.prototype._pushContext;\n Promise.prototype._popContext = Context.prototype._popContext;\n Promise._peekContext = Promise.prototype._peekContext = peekContext;\n\n Promise.prototype._promiseCreated = function () {\n var ctx = this._peekContext();\n\n if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;\n };\n };\n\n return Context;\n };\n }, {}],\n 7: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (Promise, Context, enableAsyncHooks, disableAsyncHooks) {\n var async = Promise._async;\n\n var Warning = _dereq_(\"./errors\").Warning;\n\n var util = _dereq_(\"./util\");\n\n var es5 = _dereq_(\"./es5\");\n\n var canAttachTrace = util.canAttachTrace;\n var unhandledRejectionHandled;\n var possiblyUnhandledRejection;\n var bluebirdFramePattern = /[\\\\\\/]bluebird[\\\\\\/]js[\\\\\\/](release|debug|instrumented)/;\n var nodeFramePattern = /\\((?:timers\\.js):\\d+:\\d+\\)/;\n var parseLinePattern = /[\\/<\\(](.+?):(\\d+):(\\d+)\\)?\\s*$/;\n var stackFramePattern = null;\n var formatStack = null;\n var indentStackFrames = false;\n var printWarning;\n var debugging = !!(util.env(\"BLUEBIRD_DEBUG\") != 0 && (true || util.env(\"BLUEBIRD_DEBUG\") || util.env(\"NODE_ENV\") === \"development\"));\n var warnings = !!(util.env(\"BLUEBIRD_WARNINGS\") != 0 && (debugging || util.env(\"BLUEBIRD_WARNINGS\")));\n var longStackTraces = !!(util.env(\"BLUEBIRD_LONG_STACK_TRACES\") != 0 && (debugging || util.env(\"BLUEBIRD_LONG_STACK_TRACES\")));\n var wForgottenReturn = util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\") != 0 && (warnings || !!util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\"));\n var deferUnhandledRejectionCheck;\n\n (function () {\n var promises = [];\n\n function unhandledRejectionCheck() {\n for (var i = 0; i < promises.length; ++i) {\n promises[i]._notifyUnhandledRejection();\n }\n\n unhandledRejectionClear();\n }\n\n function unhandledRejectionClear() {\n promises.length = 0;\n }\n\n deferUnhandledRejectionCheck = function deferUnhandledRejectionCheck(promise) {\n promises.push(promise);\n setTimeout(unhandledRejectionCheck, 1);\n };\n\n es5.defineProperty(Promise, \"_unhandledRejectionCheck\", {\n value: unhandledRejectionCheck\n });\n es5.defineProperty(Promise, \"_unhandledRejectionClear\", {\n value: unhandledRejectionClear\n });\n })();\n\n Promise.prototype.suppressUnhandledRejections = function () {\n var target = this._target();\n\n target._bitField = target._bitField & ~1048576 | 524288;\n };\n\n Promise.prototype._ensurePossibleRejectionHandled = function () {\n if ((this._bitField & 524288) !== 0) return;\n\n this._setRejectionIsUnhandled();\n\n deferUnhandledRejectionCheck(this);\n };\n\n Promise.prototype._notifyUnhandledRejectionIsHandled = function () {\n fireRejectionEvent(\"rejectionHandled\", unhandledRejectionHandled, undefined, this);\n };\n\n Promise.prototype._setReturnedNonUndefined = function () {\n this._bitField = this._bitField | 268435456;\n };\n\n Promise.prototype._returnedNonUndefined = function () {\n return (this._bitField & 268435456) !== 0;\n };\n\n Promise.prototype._notifyUnhandledRejection = function () {\n if (this._isRejectionUnhandled()) {\n var reason = this._settledValue();\n\n this._setUnhandledRejectionIsNotified();\n\n fireRejectionEvent(\"unhandledRejection\", possiblyUnhandledRejection, reason, this);\n }\n };\n\n Promise.prototype._setUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField | 262144;\n };\n\n Promise.prototype._unsetUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField & ~262144;\n };\n\n Promise.prototype._isUnhandledRejectionNotified = function () {\n return (this._bitField & 262144) > 0;\n };\n\n Promise.prototype._setRejectionIsUnhandled = function () {\n this._bitField = this._bitField | 1048576;\n };\n\n Promise.prototype._unsetRejectionIsUnhandled = function () {\n this._bitField = this._bitField & ~1048576;\n\n if (this._isUnhandledRejectionNotified()) {\n this._unsetUnhandledRejectionIsNotified();\n\n this._notifyUnhandledRejectionIsHandled();\n }\n };\n\n Promise.prototype._isRejectionUnhandled = function () {\n return (this._bitField & 1048576) > 0;\n };\n\n Promise.prototype._warn = function (message, shouldUseOwnTrace, promise) {\n return warn(message, shouldUseOwnTrace, promise || this);\n };\n\n Promise.onPossiblyUnhandledRejection = function (fn) {\n var context = Promise._getContext();\n\n possiblyUnhandledRejection = util.contextBind(context, fn);\n };\n\n Promise.onUnhandledRejectionHandled = function (fn) {\n var context = Promise._getContext();\n\n unhandledRejectionHandled = util.contextBind(context, fn);\n };\n\n var disableLongStackTraces = function disableLongStackTraces() {};\n\n Promise.longStackTraces = function () {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\n\\n See http://goo.gl/MqrFmX\\n\");\n }\n\n if (!config.longStackTraces && longStackTracesIsSupported()) {\n var Promise_captureStackTrace = Promise.prototype._captureStackTrace;\n var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;\n var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace;\n config.longStackTraces = true;\n\n disableLongStackTraces = function disableLongStackTraces() {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\n\\n See http://goo.gl/MqrFmX\\n\");\n }\n\n Promise.prototype._captureStackTrace = Promise_captureStackTrace;\n Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;\n Promise.prototype._dereferenceTrace = Promise_dereferenceTrace;\n Context.deactivateLongStackTraces();\n config.longStackTraces = false;\n };\n\n Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;\n Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;\n Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace;\n Context.activateLongStackTraces();\n }\n };\n\n Promise.hasLongStackTraces = function () {\n return config.longStackTraces && longStackTracesIsSupported();\n };\n\n var legacyHandlers = {\n unhandledrejection: {\n before: function before() {\n var ret = util.global.onunhandledrejection;\n util.global.onunhandledrejection = null;\n return ret;\n },\n after: function after(fn) {\n util.global.onunhandledrejection = fn;\n }\n },\n rejectionhandled: {\n before: function before() {\n var ret = util.global.onrejectionhandled;\n util.global.onrejectionhandled = null;\n return ret;\n },\n after: function after(fn) {\n util.global.onrejectionhandled = fn;\n }\n }\n };\n\n var fireDomEvent = function () {\n var dispatch = function dispatch(legacy, e) {\n if (legacy) {\n var fn;\n\n try {\n fn = legacy.before();\n return !util.global.dispatchEvent(e);\n } finally {\n legacy.after(fn);\n }\n } else {\n return !util.global.dispatchEvent(e);\n }\n };\n\n try {\n if (typeof CustomEvent === \"function\") {\n var event = new CustomEvent(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function (name, event) {\n name = name.toLowerCase();\n var eventData = {\n detail: event,\n cancelable: true\n };\n var domEvent = new CustomEvent(name, eventData);\n es5.defineProperty(domEvent, \"promise\", {\n value: event.promise\n });\n es5.defineProperty(domEvent, \"reason\", {\n value: event.reason\n });\n return dispatch(legacyHandlers[name], domEvent);\n };\n } else if (typeof Event === \"function\") {\n var event = new Event(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function (name, event) {\n name = name.toLowerCase();\n var domEvent = new Event(name, {\n cancelable: true\n });\n domEvent.detail = event;\n es5.defineProperty(domEvent, \"promise\", {\n value: event.promise\n });\n es5.defineProperty(domEvent, \"reason\", {\n value: event.reason\n });\n return dispatch(legacyHandlers[name], domEvent);\n };\n } else {\n var event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(\"testingtheevent\", false, true, {});\n util.global.dispatchEvent(event);\n return function (name, event) {\n name = name.toLowerCase();\n var domEvent = document.createEvent(\"CustomEvent\");\n domEvent.initCustomEvent(name, false, true, event);\n return dispatch(legacyHandlers[name], domEvent);\n };\n }\n } catch (e) {}\n\n return function () {\n return false;\n };\n }();\n\n var fireGlobalEvent = function () {\n if (util.isNode) {\n return function () {\n return process.emit.apply(process, arguments);\n };\n } else {\n if (!util.global) {\n return function () {\n return false;\n };\n }\n\n return function (name) {\n var methodName = \"on\" + name.toLowerCase();\n var method = util.global[methodName];\n if (!method) return false;\n method.apply(util.global, [].slice.call(arguments, 1));\n return true;\n };\n }\n }();\n\n function generatePromiseLifecycleEventObject(name, promise) {\n return {\n promise: promise\n };\n }\n\n var eventToObjectGenerator = {\n promiseCreated: generatePromiseLifecycleEventObject,\n promiseFulfilled: generatePromiseLifecycleEventObject,\n promiseRejected: generatePromiseLifecycleEventObject,\n promiseResolved: generatePromiseLifecycleEventObject,\n promiseCancelled: generatePromiseLifecycleEventObject,\n promiseChained: function promiseChained(name, promise, child) {\n return {\n promise: promise,\n child: child\n };\n },\n warning: function warning(name, _warning) {\n return {\n warning: _warning\n };\n },\n unhandledRejection: function unhandledRejection(name, reason, promise) {\n return {\n reason: reason,\n promise: promise\n };\n },\n rejectionHandled: generatePromiseLifecycleEventObject\n };\n\n var activeFireEvent = function activeFireEvent(name) {\n var globalEventFired = false;\n\n try {\n globalEventFired = fireGlobalEvent.apply(null, arguments);\n } catch (e) {\n async.throwLater(e);\n globalEventFired = true;\n }\n\n var domEventFired = false;\n\n try {\n domEventFired = fireDomEvent(name, eventToObjectGenerator[name].apply(null, arguments));\n } catch (e) {\n async.throwLater(e);\n domEventFired = true;\n }\n\n return domEventFired || globalEventFired;\n };\n\n Promise.config = function (opts) {\n opts = Object(opts);\n\n if (\"longStackTraces\" in opts) {\n if (opts.longStackTraces) {\n Promise.longStackTraces();\n } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {\n disableLongStackTraces();\n }\n }\n\n if (\"warnings\" in opts) {\n var warningsOption = opts.warnings;\n config.warnings = !!warningsOption;\n wForgottenReturn = config.warnings;\n\n if (util.isObject(warningsOption)) {\n if (\"wForgottenReturn\" in warningsOption) {\n wForgottenReturn = !!warningsOption.wForgottenReturn;\n }\n }\n }\n\n if (\"cancellation\" in opts && opts.cancellation && !config.cancellation) {\n if (async.haveItemsQueued()) {\n throw new Error(\"cannot enable cancellation after promises are in use\");\n }\n\n Promise.prototype._clearCancellationData = cancellationClearCancellationData;\n Promise.prototype._propagateFrom = cancellationPropagateFrom;\n Promise.prototype._onCancel = cancellationOnCancel;\n Promise.prototype._setOnCancel = cancellationSetOnCancel;\n Promise.prototype._attachCancellationCallback = cancellationAttachCancellationCallback;\n Promise.prototype._execute = cancellationExecute;\n _propagateFromFunction = cancellationPropagateFrom;\n config.cancellation = true;\n }\n\n if (\"monitoring\" in opts) {\n if (opts.monitoring && !config.monitoring) {\n config.monitoring = true;\n Promise.prototype._fireEvent = activeFireEvent;\n } else if (!opts.monitoring && config.monitoring) {\n config.monitoring = false;\n Promise.prototype._fireEvent = defaultFireEvent;\n }\n }\n\n if (\"asyncHooks\" in opts && util.nodeSupportsAsyncResource) {\n var prev = config.asyncHooks;\n var cur = !!opts.asyncHooks;\n\n if (prev !== cur) {\n config.asyncHooks = cur;\n\n if (cur) {\n enableAsyncHooks();\n } else {\n disableAsyncHooks();\n }\n }\n }\n\n return Promise;\n };\n\n function defaultFireEvent() {\n return false;\n }\n\n Promise.prototype._fireEvent = defaultFireEvent;\n\n Promise.prototype._execute = function (executor, resolve, reject) {\n try {\n executor(resolve, reject);\n } catch (e) {\n return e;\n }\n };\n\n Promise.prototype._onCancel = function () {};\n\n Promise.prototype._setOnCancel = function (handler) {\n ;\n };\n\n Promise.prototype._attachCancellationCallback = function (onCancel) {\n ;\n };\n\n Promise.prototype._captureStackTrace = function () {};\n\n Promise.prototype._attachExtraTrace = function () {};\n\n Promise.prototype._dereferenceTrace = function () {};\n\n Promise.prototype._clearCancellationData = function () {};\n\n Promise.prototype._propagateFrom = function (parent, flags) {\n ;\n ;\n };\n\n function cancellationExecute(executor, resolve, reject) {\n var promise = this;\n\n try {\n executor(resolve, reject, function (onCancel) {\n if (typeof onCancel !== \"function\") {\n throw new TypeError(\"onCancel must be a function, got: \" + util.toString(onCancel));\n }\n\n promise._attachCancellationCallback(onCancel);\n });\n } catch (e) {\n return e;\n }\n }\n\n function cancellationAttachCancellationCallback(onCancel) {\n if (!this._isCancellable()) return this;\n\n var previousOnCancel = this._onCancel();\n\n if (previousOnCancel !== undefined) {\n if (util.isArray(previousOnCancel)) {\n previousOnCancel.push(onCancel);\n } else {\n this._setOnCancel([previousOnCancel, onCancel]);\n }\n } else {\n this._setOnCancel(onCancel);\n }\n }\n\n function cancellationOnCancel() {\n return this._onCancelField;\n }\n\n function cancellationSetOnCancel(onCancel) {\n this._onCancelField = onCancel;\n }\n\n function cancellationClearCancellationData() {\n this._cancellationParent = undefined;\n this._onCancelField = undefined;\n }\n\n function cancellationPropagateFrom(parent, flags) {\n if ((flags & 1) !== 0) {\n this._cancellationParent = parent;\n var branchesRemainingToCancel = parent._branchesRemainingToCancel;\n\n if (branchesRemainingToCancel === undefined) {\n branchesRemainingToCancel = 0;\n }\n\n parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;\n }\n\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n }\n\n function bindingPropagateFrom(parent, flags) {\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n }\n\n var _propagateFromFunction = bindingPropagateFrom;\n\n function _boundValueFunction() {\n var ret = this._boundTo;\n\n if (ret !== undefined) {\n if (ret instanceof Promise) {\n if (ret.isFulfilled()) {\n return ret.value();\n } else {\n return undefined;\n }\n }\n }\n\n return ret;\n }\n\n function longStackTracesCaptureStackTrace() {\n this._trace = new CapturedTrace(this._peekContext());\n }\n\n function longStackTracesAttachExtraTrace(error, ignoreSelf) {\n if (canAttachTrace(error)) {\n var trace = this._trace;\n\n if (trace !== undefined) {\n if (ignoreSelf) trace = trace._parent;\n }\n\n if (trace !== undefined) {\n trace.attachExtraTrace(error);\n } else if (!error.__stackCleaned__) {\n var parsed = parseStackAndMessage(error);\n util.notEnumerableProp(error, \"stack\", parsed.message + \"\\n\" + parsed.stack.join(\"\\n\"));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n }\n }\n }\n\n function longStackTracesDereferenceTrace() {\n this._trace = undefined;\n }\n\n function checkForgottenReturns(returnValue, promiseCreated, name, promise, parent) {\n if (returnValue === undefined && promiseCreated !== null && wForgottenReturn) {\n if (parent !== undefined && parent._returnedNonUndefined()) return;\n if ((promise._bitField & 65535) === 0) return;\n if (name) name = name + \" \";\n var handlerLine = \"\";\n var creatorLine = \"\";\n\n if (promiseCreated._trace) {\n var traceLines = promiseCreated._trace.stack.split(\"\\n\");\n\n var stack = cleanStack(traceLines);\n\n for (var i = stack.length - 1; i >= 0; --i) {\n var line = stack[i];\n\n if (!nodeFramePattern.test(line)) {\n var lineMatches = line.match(parseLinePattern);\n\n if (lineMatches) {\n handlerLine = \"at \" + lineMatches[1] + \":\" + lineMatches[2] + \":\" + lineMatches[3] + \" \";\n }\n\n break;\n }\n }\n\n if (stack.length > 0) {\n var firstUserLine = stack[0];\n\n for (var i = 0; i < traceLines.length; ++i) {\n if (traceLines[i] === firstUserLine) {\n if (i > 0) {\n creatorLine = \"\\n\" + traceLines[i - 1];\n }\n\n break;\n }\n }\n }\n }\n\n var msg = \"a promise was created in a \" + name + \"handler \" + handlerLine + \"but was not returned from it, \" + \"see http://goo.gl/rRqMUw\" + creatorLine;\n\n promise._warn(msg, true, promiseCreated);\n }\n }\n\n function deprecated(name, replacement) {\n var message = name + \" is deprecated and will be removed in a future version.\";\n if (replacement) message += \" Use \" + replacement + \" instead.\";\n return warn(message);\n }\n\n function warn(message, shouldUseOwnTrace, promise) {\n if (!config.warnings) return;\n var warning = new Warning(message);\n var ctx;\n\n if (shouldUseOwnTrace) {\n promise._attachExtraTrace(warning);\n } else if (config.longStackTraces && (ctx = Promise._peekContext())) {\n ctx.attachExtraTrace(warning);\n } else {\n var parsed = parseStackAndMessage(warning);\n warning.stack = parsed.message + \"\\n\" + parsed.stack.join(\"\\n\");\n }\n\n if (!activeFireEvent(\"warning\", warning)) {\n formatAndLogError(warning, \"\", true);\n }\n }\n\n function reconstructStack(message, stacks) {\n for (var i = 0; i < stacks.length - 1; ++i) {\n stacks[i].push(\"From previous event:\");\n stacks[i] = stacks[i].join(\"\\n\");\n }\n\n if (i < stacks.length) {\n stacks[i] = stacks[i].join(\"\\n\");\n }\n\n return message + \"\\n\" + stacks.join(\"\\n\");\n }\n\n function removeDuplicateOrEmptyJumps(stacks) {\n for (var i = 0; i < stacks.length; ++i) {\n if (stacks[i].length === 0 || i + 1 < stacks.length && stacks[i][0] === stacks[i + 1][0]) {\n stacks.splice(i, 1);\n i--;\n }\n }\n }\n\n function removeCommonRoots(stacks) {\n var current = stacks[0];\n\n for (var i = 1; i < stacks.length; ++i) {\n var prev = stacks[i];\n var currentLastIndex = current.length - 1;\n var currentLastLine = current[currentLastIndex];\n var commonRootMeetPoint = -1;\n\n for (var j = prev.length - 1; j >= 0; --j) {\n if (prev[j] === currentLastLine) {\n commonRootMeetPoint = j;\n break;\n }\n }\n\n for (var j = commonRootMeetPoint; j >= 0; --j) {\n var line = prev[j];\n\n if (current[currentLastIndex] === line) {\n current.pop();\n currentLastIndex--;\n } else {\n break;\n }\n }\n\n current = prev;\n }\n }\n\n function cleanStack(stack) {\n var ret = [];\n\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n var isTraceLine = \" (No stack trace)\" === line || stackFramePattern.test(line);\n var isInternalFrame = isTraceLine && shouldIgnore(line);\n\n if (isTraceLine && !isInternalFrame) {\n if (indentStackFrames && line.charAt(0) !== \" \") {\n line = \" \" + line;\n }\n\n ret.push(line);\n }\n }\n\n return ret;\n }\n\n function stackFramesAsArray(error) {\n var stack = error.stack.replace(/\\s+$/g, \"\").split(\"\\n\");\n\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n\n if (\" (No stack trace)\" === line || stackFramePattern.test(line)) {\n break;\n }\n }\n\n if (i > 0 && error.name != \"SyntaxError\") {\n stack = stack.slice(i);\n }\n\n return stack;\n }\n\n function parseStackAndMessage(error) {\n var stack = error.stack;\n var message = error.toString();\n stack = typeof stack === \"string\" && stack.length > 0 ? stackFramesAsArray(error) : [\" (No stack trace)\"];\n return {\n message: message,\n stack: error.name == \"SyntaxError\" ? stack : cleanStack(stack)\n };\n }\n\n function formatAndLogError(error, title, isSoft) {\n if (typeof console !== \"undefined\") {\n var message;\n\n if (util.isObject(error)) {\n var stack = error.stack;\n message = title + formatStack(stack, error);\n } else {\n message = title + String(error);\n }\n\n if (typeof printWarning === \"function\") {\n printWarning(message, isSoft);\n } else if (typeof console.log === \"function\" || _typeof(console.log) === \"object\") {\n console.log(message);\n }\n }\n }\n\n function fireRejectionEvent(name, localHandler, reason, promise) {\n var localEventFired = false;\n\n try {\n if (typeof localHandler === \"function\") {\n localEventFired = true;\n\n if (name === \"rejectionHandled\") {\n localHandler(promise);\n } else {\n localHandler(reason, promise);\n }\n }\n } catch (e) {\n async.throwLater(e);\n }\n\n if (name === \"unhandledRejection\") {\n if (!activeFireEvent(name, reason, promise) && !localEventFired) {\n formatAndLogError(reason, \"Unhandled rejection \");\n }\n } else {\n activeFireEvent(name, promise);\n }\n }\n\n function formatNonError(obj) {\n var str;\n\n if (typeof obj === \"function\") {\n str = \"[function \" + (obj.name || \"anonymous\") + \"]\";\n } else {\n str = obj && typeof obj.toString === \"function\" ? obj.toString() : util.toString(obj);\n var ruselessToString = /\\[object [a-zA-Z0-9$_]+\\]/;\n\n if (ruselessToString.test(str)) {\n try {\n var newStr = JSON.stringify(obj);\n str = newStr;\n } catch (e) {}\n }\n\n if (str.length === 0) {\n str = \"(empty array)\";\n }\n }\n\n return \"(<\" + snip(str) + \">, no stack trace)\";\n }\n\n function snip(str) {\n var maxChars = 41;\n\n if (str.length < maxChars) {\n return str;\n }\n\n return str.substr(0, maxChars - 3) + \"...\";\n }\n\n function longStackTracesIsSupported() {\n return typeof captureStackTrace === \"function\";\n }\n\n var shouldIgnore = function shouldIgnore() {\n return false;\n };\n\n var parseLineInfoRegex = /[\\/<\\(]([^:\\/]+):(\\d+):(?:\\d+)\\)?\\s*$/;\n\n function parseLineInfo(line) {\n var matches = line.match(parseLineInfoRegex);\n\n if (matches) {\n return {\n fileName: matches[1],\n line: parseInt(matches[2], 10)\n };\n }\n }\n\n function setBounds(firstLineError, lastLineError) {\n if (!longStackTracesIsSupported()) return;\n var firstStackLines = (firstLineError.stack || \"\").split(\"\\n\");\n var lastStackLines = (lastLineError.stack || \"\").split(\"\\n\");\n var firstIndex = -1;\n var lastIndex = -1;\n var firstFileName;\n var lastFileName;\n\n for (var i = 0; i < firstStackLines.length; ++i) {\n var result = parseLineInfo(firstStackLines[i]);\n\n if (result) {\n firstFileName = result.fileName;\n firstIndex = result.line;\n break;\n }\n }\n\n for (var i = 0; i < lastStackLines.length; ++i) {\n var result = parseLineInfo(lastStackLines[i]);\n\n if (result) {\n lastFileName = result.fileName;\n lastIndex = result.line;\n break;\n }\n }\n\n if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || firstFileName !== lastFileName || firstIndex >= lastIndex) {\n return;\n }\n\n shouldIgnore = function shouldIgnore(line) {\n if (bluebirdFramePattern.test(line)) return true;\n var info = parseLineInfo(line);\n\n if (info) {\n if (info.fileName === firstFileName && firstIndex <= info.line && info.line <= lastIndex) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function CapturedTrace(parent) {\n this._parent = parent;\n this._promisesCreated = 0;\n var length = this._length = 1 + (parent === undefined ? 0 : parent._length);\n captureStackTrace(this, CapturedTrace);\n if (length > 32) this.uncycle();\n }\n\n util.inherits(CapturedTrace, Error);\n Context.CapturedTrace = CapturedTrace;\n\n CapturedTrace.prototype.uncycle = function () {\n var length = this._length;\n if (length < 2) return;\n var nodes = [];\n var stackToIndex = {};\n\n for (var i = 0, node = this; node !== undefined; ++i) {\n nodes.push(node);\n node = node._parent;\n }\n\n length = this._length = i;\n\n for (var i = length - 1; i >= 0; --i) {\n var stack = nodes[i].stack;\n\n if (stackToIndex[stack] === undefined) {\n stackToIndex[stack] = i;\n }\n }\n\n for (var i = 0; i < length; ++i) {\n var currentStack = nodes[i].stack;\n var index = stackToIndex[currentStack];\n\n if (index !== undefined && index !== i) {\n if (index > 0) {\n nodes[index - 1]._parent = undefined;\n nodes[index - 1]._length = 1;\n }\n\n nodes[i]._parent = undefined;\n nodes[i]._length = 1;\n var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;\n\n if (index < length - 1) {\n cycleEdgeNode._parent = nodes[index + 1];\n\n cycleEdgeNode._parent.uncycle();\n\n cycleEdgeNode._length = cycleEdgeNode._parent._length + 1;\n } else {\n cycleEdgeNode._parent = undefined;\n cycleEdgeNode._length = 1;\n }\n\n var currentChildLength = cycleEdgeNode._length + 1;\n\n for (var j = i - 2; j >= 0; --j) {\n nodes[j]._length = currentChildLength;\n currentChildLength++;\n }\n\n return;\n }\n }\n };\n\n CapturedTrace.prototype.attachExtraTrace = function (error) {\n if (error.__stackCleaned__) return;\n this.uncycle();\n var parsed = parseStackAndMessage(error);\n var message = parsed.message;\n var stacks = [parsed.stack];\n var trace = this;\n\n while (trace !== undefined) {\n stacks.push(cleanStack(trace.stack.split(\"\\n\")));\n trace = trace._parent;\n }\n\n removeCommonRoots(stacks);\n removeDuplicateOrEmptyJumps(stacks);\n util.notEnumerableProp(error, \"stack\", reconstructStack(message, stacks));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n };\n\n var captureStackTrace = function stackDetection() {\n var v8stackFramePattern = /^\\s*at\\s*/;\n\n var v8stackFormatter = function v8stackFormatter(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if (error.name !== undefined && error.message !== undefined) {\n return error.toString();\n }\n\n return formatNonError(error);\n };\n\n if (typeof Error.stackTraceLimit === \"number\" && typeof Error.captureStackTrace === \"function\") {\n Error.stackTraceLimit += 6;\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n var captureStackTrace = Error.captureStackTrace;\n\n shouldIgnore = function shouldIgnore(line) {\n return bluebirdFramePattern.test(line);\n };\n\n return function (receiver, ignoreUntil) {\n Error.stackTraceLimit += 6;\n captureStackTrace(receiver, ignoreUntil);\n Error.stackTraceLimit -= 6;\n };\n }\n\n var err = new Error();\n\n if (typeof err.stack === \"string\" && err.stack.split(\"\\n\")[0].indexOf(\"stackDetection@\") >= 0) {\n stackFramePattern = /@/;\n formatStack = v8stackFormatter;\n indentStackFrames = true;\n return function captureStackTrace(o) {\n o.stack = new Error().stack;\n };\n }\n\n var hasStackAfterThrow;\n\n try {\n throw new Error();\n } catch (e) {\n hasStackAfterThrow = \"stack\" in e;\n }\n\n if (!(\"stack\" in err) && hasStackAfterThrow && typeof Error.stackTraceLimit === \"number\") {\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n return function captureStackTrace(o) {\n Error.stackTraceLimit += 6;\n\n try {\n throw new Error();\n } catch (e) {\n o.stack = e.stack;\n }\n\n Error.stackTraceLimit -= 6;\n };\n }\n\n formatStack = function formatStack(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if ((_typeof(error) === \"object\" || typeof error === \"function\") && error.name !== undefined && error.message !== undefined) {\n return error.toString();\n }\n\n return formatNonError(error);\n };\n\n return null;\n }([]);\n\n if (typeof console !== \"undefined\" && typeof console.warn !== \"undefined\") {\n printWarning = function printWarning(message) {\n console.warn(message);\n };\n\n if (util.isNode && process.stderr.isTTY) {\n printWarning = function printWarning(message, isSoft) {\n var color = isSoft ? \"\\x1B[33m\" : \"\\x1B[31m\";\n console.warn(color + message + \"\\x1B[0m\\n\");\n };\n } else if (!util.isNode && typeof new Error().stack === \"string\") {\n printWarning = function printWarning(message, isSoft) {\n console.warn(\"%c\" + message, isSoft ? \"color: darkorange\" : \"color: red\");\n };\n }\n }\n\n var config = {\n warnings: warnings,\n longStackTraces: false,\n cancellation: false,\n monitoring: false,\n asyncHooks: false\n };\n if (longStackTraces) Promise.longStackTraces();\n return {\n asyncHooks: function asyncHooks() {\n return config.asyncHooks;\n },\n longStackTraces: function longStackTraces() {\n return config.longStackTraces;\n },\n warnings: function warnings() {\n return config.warnings;\n },\n cancellation: function cancellation() {\n return config.cancellation;\n },\n monitoring: function monitoring() {\n return config.monitoring;\n },\n propagateFromFunction: function propagateFromFunction() {\n return _propagateFromFunction;\n },\n boundValueFunction: function boundValueFunction() {\n return _boundValueFunction;\n },\n checkForgottenReturns: checkForgottenReturns,\n setBounds: setBounds,\n warn: warn,\n deprecated: deprecated,\n CapturedTrace: CapturedTrace,\n fireDomEvent: fireDomEvent,\n fireGlobalEvent: fireGlobalEvent\n };\n };\n }, {\n \"./errors\": 9,\n \"./es5\": 10,\n \"./util\": 21\n }],\n 8: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (Promise) {\n function returner() {\n return this.value;\n }\n\n function thrower() {\n throw this.reason;\n }\n\n Promise.prototype[\"return\"] = Promise.prototype.thenReturn = function (value) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(returner, undefined, undefined, {\n value: value\n }, undefined);\n };\n\n Promise.prototype[\"throw\"] = Promise.prototype.thenThrow = function (reason) {\n return this._then(thrower, undefined, undefined, {\n reason: reason\n }, undefined);\n };\n\n Promise.prototype.catchThrow = function (reason) {\n if (arguments.length <= 1) {\n return this._then(undefined, thrower, undefined, {\n reason: reason\n }, undefined);\n } else {\n var _reason = arguments[1];\n\n var handler = function handler() {\n throw _reason;\n };\n\n return this.caught(reason, handler);\n }\n };\n\n Promise.prototype.catchReturn = function (value) {\n if (arguments.length <= 1) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(undefined, returner, undefined, {\n value: value\n }, undefined);\n } else {\n var _value = arguments[1];\n if (_value instanceof Promise) _value.suppressUnhandledRejections();\n\n var handler = function handler() {\n return _value;\n };\n\n return this.caught(value, handler);\n }\n };\n };\n }, {}],\n 9: [function (_dereq_, module, exports) {\n \"use strict\";\n\n var es5 = _dereq_(\"./es5\");\n\n var Objectfreeze = es5.freeze;\n\n var util = _dereq_(\"./util\");\n\n var inherits = util.inherits;\n var notEnumerableProp = util.notEnumerableProp;\n\n function subError(nameProperty, defaultMessage) {\n function SubError(message) {\n if (!(this instanceof SubError)) return new SubError(message);\n notEnumerableProp(this, \"message\", typeof message === \"string\" ? message : defaultMessage);\n notEnumerableProp(this, \"name\", nameProperty);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n Error.call(this);\n }\n }\n\n inherits(SubError, Error);\n return SubError;\n }\n\n var _TypeError, _RangeError;\n\n var Warning = subError(\"Warning\", \"warning\");\n var CancellationError = subError(\"CancellationError\", \"cancellation error\");\n var TimeoutError = subError(\"TimeoutError\", \"timeout error\");\n var AggregateError = subError(\"AggregateError\", \"aggregate error\");\n\n try {\n _TypeError = TypeError;\n _RangeError = RangeError;\n } catch (e) {\n _TypeError = subError(\"TypeError\", \"type error\");\n _RangeError = subError(\"RangeError\", \"range error\");\n }\n\n var methods = (\"join pop push shift unshift slice filter forEach some \" + \"every map indexOf lastIndexOf reduce reduceRight sort reverse\").split(\" \");\n\n for (var i = 0; i < methods.length; ++i) {\n if (typeof Array.prototype[methods[i]] === \"function\") {\n AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];\n }\n }\n\n es5.defineProperty(AggregateError.prototype, \"length\", {\n value: 0,\n configurable: false,\n writable: true,\n enumerable: true\n });\n AggregateError.prototype[\"isOperational\"] = true;\n var level = 0;\n\n AggregateError.prototype.toString = function () {\n var indent = Array(level * 4 + 1).join(\" \");\n var ret = \"\\n\" + indent + \"AggregateError of:\" + \"\\n\";\n level++;\n indent = Array(level * 4 + 1).join(\" \");\n\n for (var i = 0; i < this.length; ++i) {\n var str = this[i] === this ? \"[Circular AggregateError]\" : this[i] + \"\";\n var lines = str.split(\"\\n\");\n\n for (var j = 0; j < lines.length; ++j) {\n lines[j] = indent + lines[j];\n }\n\n str = lines.join(\"\\n\");\n ret += str + \"\\n\";\n }\n\n level--;\n return ret;\n };\n\n function OperationalError(message) {\n if (!(this instanceof OperationalError)) return new OperationalError(message);\n notEnumerableProp(this, \"name\", \"OperationalError\");\n notEnumerableProp(this, \"message\", message);\n this.cause = message;\n this[\"isOperational\"] = true;\n\n if (message instanceof Error) {\n notEnumerableProp(this, \"message\", message.message);\n notEnumerableProp(this, \"stack\", message.stack);\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n inherits(OperationalError, Error);\n var errorTypes = Error[\"__BluebirdErrorTypes__\"];\n\n if (!errorTypes) {\n errorTypes = Objectfreeze({\n CancellationError: CancellationError,\n TimeoutError: TimeoutError,\n OperationalError: OperationalError,\n RejectionError: OperationalError,\n AggregateError: AggregateError\n });\n es5.defineProperty(Error, \"__BluebirdErrorTypes__\", {\n value: errorTypes,\n writable: false,\n enumerable: false,\n configurable: false\n });\n }\n\n module.exports = {\n Error: Error,\n TypeError: _TypeError,\n RangeError: _RangeError,\n CancellationError: errorTypes.CancellationError,\n OperationalError: errorTypes.OperationalError,\n TimeoutError: errorTypes.TimeoutError,\n AggregateError: errorTypes.AggregateError,\n Warning: Warning\n };\n }, {\n \"./es5\": 10,\n \"./util\": 21\n }],\n 10: [function (_dereq_, module, exports) {\n var isES5 = function () {\n \"use strict\";\n\n return this === undefined;\n }();\n\n if (isES5) {\n module.exports = {\n freeze: Object.freeze,\n defineProperty: Object.defineProperty,\n getDescriptor: Object.getOwnPropertyDescriptor,\n keys: Object.keys,\n names: Object.getOwnPropertyNames,\n getPrototypeOf: Object.getPrototypeOf,\n isArray: Array.isArray,\n isES5: isES5,\n propertyIsWritable: function propertyIsWritable(obj, prop) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n return !!(!descriptor || descriptor.writable || descriptor.set);\n }\n };\n } else {\n var has = {}.hasOwnProperty;\n var str = {}.toString;\n var proto = {}.constructor.prototype;\n\n var ObjectKeys = function ObjectKeys(o) {\n var ret = [];\n\n for (var key in o) {\n if (has.call(o, key)) {\n ret.push(key);\n }\n }\n\n return ret;\n };\n\n var ObjectGetDescriptor = function ObjectGetDescriptor(o, key) {\n return {\n value: o[key]\n };\n };\n\n var ObjectDefineProperty = function ObjectDefineProperty(o, key, desc) {\n o[key] = desc.value;\n return o;\n };\n\n var ObjectFreeze = function ObjectFreeze(obj) {\n return obj;\n };\n\n var ObjectGetPrototypeOf = function ObjectGetPrototypeOf(obj) {\n try {\n return Object(obj).constructor.prototype;\n } catch (e) {\n return proto;\n }\n };\n\n var ArrayIsArray = function ArrayIsArray(obj) {\n try {\n return str.call(obj) === \"[object Array]\";\n } catch (e) {\n return false;\n }\n };\n\n module.exports = {\n isArray: ArrayIsArray,\n keys: ObjectKeys,\n names: ObjectKeys,\n defineProperty: ObjectDefineProperty,\n getDescriptor: ObjectGetDescriptor,\n freeze: ObjectFreeze,\n getPrototypeOf: ObjectGetPrototypeOf,\n isES5: isES5,\n propertyIsWritable: function propertyIsWritable() {\n return true;\n }\n };\n }\n }, {}],\n 11: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (Promise, tryConvertToPromise, NEXT_FILTER) {\n var util = _dereq_(\"./util\");\n\n var CancellationError = Promise.CancellationError;\n var errorObj = util.errorObj;\n\n var catchFilter = _dereq_(\"./catch_filter\")(NEXT_FILTER);\n\n function PassThroughHandlerContext(promise, type, handler) {\n this.promise = promise;\n this.type = type;\n this.handler = handler;\n this.called = false;\n this.cancelPromise = null;\n }\n\n PassThroughHandlerContext.prototype.isFinallyHandler = function () {\n return this.type === 0;\n };\n\n function FinallyHandlerCancelReaction(finallyHandler) {\n this.finallyHandler = finallyHandler;\n }\n\n FinallyHandlerCancelReaction.prototype._resultCancelled = function () {\n checkCancel(this.finallyHandler);\n };\n\n function checkCancel(ctx, reason) {\n if (ctx.cancelPromise != null) {\n if (arguments.length > 1) {\n ctx.cancelPromise._reject(reason);\n } else {\n ctx.cancelPromise._cancel();\n }\n\n ctx.cancelPromise = null;\n return true;\n }\n\n return false;\n }\n\n function succeed() {\n return finallyHandler.call(this, this.promise._target()._settledValue());\n }\n\n function fail(reason) {\n if (checkCancel(this, reason)) return;\n errorObj.e = reason;\n return errorObj;\n }\n\n function finallyHandler(reasonOrValue) {\n var promise = this.promise;\n var handler = this.handler;\n\n if (!this.called) {\n this.called = true;\n var ret = this.isFinallyHandler() ? handler.call(promise._boundValue()) : handler.call(promise._boundValue(), reasonOrValue);\n\n if (ret === NEXT_FILTER) {\n return ret;\n } else if (ret !== undefined) {\n promise._setReturnedNonUndefined();\n\n var maybePromise = tryConvertToPromise(ret, promise);\n\n if (maybePromise instanceof Promise) {\n if (this.cancelPromise != null) {\n if (maybePromise._isCancelled()) {\n var reason = new CancellationError(\"late cancellation observer\");\n\n promise._attachExtraTrace(reason);\n\n errorObj.e = reason;\n return errorObj;\n } else if (maybePromise.isPending()) {\n maybePromise._attachCancellationCallback(new FinallyHandlerCancelReaction(this));\n }\n }\n\n return maybePromise._then(succeed, fail, undefined, this, undefined);\n }\n }\n }\n\n if (promise.isRejected()) {\n checkCancel(this);\n errorObj.e = reasonOrValue;\n return errorObj;\n } else {\n checkCancel(this);\n return reasonOrValue;\n }\n }\n\n Promise.prototype._passThrough = function (handler, type, success, fail) {\n if (typeof handler !== \"function\") return this.then();\n return this._then(success, fail, undefined, new PassThroughHandlerContext(this, type, handler), undefined);\n };\n\n Promise.prototype.lastly = Promise.prototype[\"finally\"] = function (handler) {\n return this._passThrough(handler, 0, finallyHandler, finallyHandler);\n };\n\n Promise.prototype.tap = function (handler) {\n return this._passThrough(handler, 1, finallyHandler);\n };\n\n Promise.prototype.tapCatch = function (handlerOrPredicate) {\n var len = arguments.length;\n\n if (len === 1) {\n return this._passThrough(handlerOrPredicate, 1, undefined, finallyHandler);\n } else {\n var catchInstances = new Array(len - 1),\n j = 0,\n i;\n\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return Promise.reject(new TypeError(\"tapCatch statement predicate: \" + \"expecting an object but got \" + util.classString(item)));\n }\n }\n\n catchInstances.length = j;\n var handler = arguments[i];\n return this._passThrough(catchFilter(catchInstances, handler, this), 1, undefined, finallyHandler);\n }\n };\n\n return PassThroughHandlerContext;\n };\n }, {\n \"./catch_filter\": 5,\n \"./util\": 21\n }],\n 12: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (Promise, PromiseArray, tryConvertToPromise, INTERNAL, async) {\n var util = _dereq_(\"./util\");\n\n var canEvaluate = util.canEvaluate;\n var tryCatch = util.tryCatch;\n var errorObj = util.errorObj;\n var reject;\n\n if (!true) {\n if (canEvaluate) {\n var thenCallback = function thenCallback(i) {\n return new Function(\"value\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = value; \\n\\\n holder.checkFulfillment(this); \\n\\\n \".replace(/Index/g, i));\n };\n\n var promiseSetter = function promiseSetter(i) {\n return new Function(\"promise\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = promise; \\n\\\n \".replace(/Index/g, i));\n };\n\n var generateHolderClass = function generateHolderClass(total) {\n var props = new Array(total);\n\n for (var i = 0; i < props.length; ++i) {\n props[i] = \"this.p\" + (i + 1);\n }\n\n var assignment = props.join(\" = \") + \" = null;\";\n var cancellationCode = \"var promise;\\n\" + props.map(function (prop) {\n return \" \\n\\\n promise = \" + prop + \"; \\n\\\n if (promise instanceof Promise) { \\n\\\n promise.cancel(); \\n\\\n } \\n\\\n \";\n }).join(\"\\n\");\n var passedArguments = props.join(\", \");\n var name = \"Holder$\" + total;\n var code = \"return function(tryCatch, errorObj, Promise, async) { \\n\\\n 'use strict'; \\n\\\n function [TheName](fn) { \\n\\\n [TheProperties] \\n\\\n this.fn = fn; \\n\\\n this.asyncNeeded = true; \\n\\\n this.now = 0; \\n\\\n } \\n\\\n \\n\\\n [TheName].prototype._callFunction = function(promise) { \\n\\\n promise._pushContext(); \\n\\\n var ret = tryCatch(this.fn)([ThePassedArguments]); \\n\\\n promise._popContext(); \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(ret.e, false); \\n\\\n } else { \\n\\\n promise._resolveCallback(ret); \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype.checkFulfillment = function(promise) { \\n\\\n var now = ++this.now; \\n\\\n if (now === [TheTotal]) { \\n\\\n if (this.asyncNeeded) { \\n\\\n async.invoke(this._callFunction, this, promise); \\n\\\n } else { \\n\\\n this._callFunction(promise); \\n\\\n } \\n\\\n \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype._resultCancelled = function() { \\n\\\n [CancellationCode] \\n\\\n }; \\n\\\n \\n\\\n return [TheName]; \\n\\\n }(tryCatch, errorObj, Promise, async); \\n\\\n \";\n code = code.replace(/\\[TheName\\]/g, name).replace(/\\[TheTotal\\]/g, total).replace(/\\[ThePassedArguments\\]/g, passedArguments).replace(/\\[TheProperties\\]/g, assignment).replace(/\\[CancellationCode\\]/g, cancellationCode);\n return new Function(\"tryCatch\", \"errorObj\", \"Promise\", \"async\", code)(tryCatch, errorObj, Promise, async);\n };\n\n var holderClasses = [];\n var thenCallbacks = [];\n var promiseSetters = [];\n\n for (var i = 0; i < 8; ++i) {\n holderClasses.push(generateHolderClass(i + 1));\n thenCallbacks.push(thenCallback(i + 1));\n promiseSetters.push(promiseSetter(i + 1));\n }\n\n reject = function reject(reason) {\n this._reject(reason);\n };\n }\n }\n\n Promise.join = function () {\n var last = arguments.length - 1;\n var fn;\n\n if (last > 0 && typeof arguments[last] === \"function\") {\n fn = arguments[last];\n\n if (!true) {\n if (last <= 8 && canEvaluate) {\n var ret = new Promise(INTERNAL);\n\n ret._captureStackTrace();\n\n var HolderClass = holderClasses[last - 1];\n var holder = new HolderClass(fn);\n var callbacks = thenCallbacks;\n\n for (var i = 0; i < last; ++i) {\n var maybePromise = tryConvertToPromise(arguments[i], ret);\n\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n\n if ((bitField & 50397184) === 0) {\n maybePromise._then(callbacks[i], reject, undefined, ret, holder);\n\n promiseSetters[i](maybePromise, holder);\n holder.asyncNeeded = false;\n } else if ((bitField & 33554432) !== 0) {\n callbacks[i].call(ret, maybePromise._value(), holder);\n } else if ((bitField & 16777216) !== 0) {\n ret._reject(maybePromise._reason());\n } else {\n ret._cancel();\n }\n } else {\n callbacks[i].call(ret, maybePromise, holder);\n }\n }\n\n if (!ret._isFateSealed()) {\n if (holder.asyncNeeded) {\n var context = Promise._getContext();\n\n holder.fn = util.contextBind(context, holder.fn);\n }\n\n ret._setAsyncGuaranteed();\n\n ret._setOnCancel(holder);\n }\n\n return ret;\n }\n }\n }\n\n var args = [].slice.call(arguments);\n ;\n if (fn) args.pop();\n var ret = new PromiseArray(args).promise();\n return fn !== undefined ? ret.spread(fn) : ret;\n };\n };\n }, {\n \"./util\": 21\n }],\n 13: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {\n var util = _dereq_(\"./util\");\n\n var tryCatch = util.tryCatch;\n\n Promise.method = function (fn) {\n if (typeof fn !== \"function\") {\n throw new Promise.TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n\n return function () {\n var ret = new Promise(INTERNAL);\n\n ret._captureStackTrace();\n\n ret._pushContext();\n\n var value = tryCatch(fn).apply(this, arguments);\n\n var promiseCreated = ret._popContext();\n\n debug.checkForgottenReturns(value, promiseCreated, \"Promise.method\", ret);\n\n ret._resolveFromSyncValue(value);\n\n return ret;\n };\n };\n\n Promise.attempt = Promise[\"try\"] = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n\n var ret = new Promise(INTERNAL);\n\n ret._captureStackTrace();\n\n ret._pushContext();\n\n var value;\n\n if (arguments.length > 1) {\n debug.deprecated(\"calling Promise.try with more than 1 argument\");\n var arg = arguments[1];\n var ctx = arguments[2];\n value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) : tryCatch(fn).call(ctx, arg);\n } else {\n value = tryCatch(fn)();\n }\n\n var promiseCreated = ret._popContext();\n\n debug.checkForgottenReturns(value, promiseCreated, \"Promise.try\", ret);\n\n ret._resolveFromSyncValue(value);\n\n return ret;\n };\n\n Promise.prototype._resolveFromSyncValue = function (value) {\n if (value === util.errorObj) {\n this._rejectCallback(value.e, false);\n } else {\n this._resolveCallback(value, true);\n }\n };\n };\n }, {\n \"./util\": 21\n }],\n 14: [function (_dereq_, module, exports) {\n \"use strict\";\n\n var util = _dereq_(\"./util\");\n\n var maybeWrapAsError = util.maybeWrapAsError;\n\n var errors = _dereq_(\"./errors\");\n\n var OperationalError = errors.OperationalError;\n\n var es5 = _dereq_(\"./es5\");\n\n function isUntypedError(obj) {\n return obj instanceof Error && es5.getPrototypeOf(obj) === Error.prototype;\n }\n\n var rErrorKey = /^(?:name|message|stack|cause)$/;\n\n function wrapAsOperationalError(obj) {\n var ret;\n\n if (isUntypedError(obj)) {\n ret = new OperationalError(obj);\n ret.name = obj.name;\n ret.message = obj.message;\n ret.stack = obj.stack;\n var keys = es5.keys(obj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!rErrorKey.test(key)) {\n ret[key] = obj[key];\n }\n }\n\n return ret;\n }\n\n util.markAsOriginatingFromRejection(obj);\n return obj;\n }\n\n function nodebackForPromise(promise, multiArgs) {\n return function (err, value) {\n if (promise === null) return;\n\n if (err) {\n var wrapped = wrapAsOperationalError(maybeWrapAsError(err));\n\n promise._attachExtraTrace(wrapped);\n\n promise._reject(wrapped);\n } else if (!multiArgs) {\n promise._fulfill(value);\n } else {\n var args = [].slice.call(arguments, 1);\n ;\n\n promise._fulfill(args);\n }\n\n promise = null;\n };\n }\n\n module.exports = nodebackForPromise;\n }, {\n \"./errors\": 9,\n \"./es5\": 10,\n \"./util\": 21\n }],\n 15: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function () {\n var makeSelfResolutionError = function makeSelfResolutionError() {\n return new TypeError(\"circular promise resolution chain\\n\\n See http://goo.gl/MqrFmX\\n\");\n };\n\n var reflectHandler = function reflectHandler() {\n return new Promise.PromiseInspection(this._target());\n };\n\n var apiRejection = function apiRejection(msg) {\n return Promise.reject(new TypeError(msg));\n };\n\n function Proxyable() {}\n\n var UNDEFINED_BINDING = {};\n\n var util = _dereq_(\"./util\");\n\n util.setReflectHandler(reflectHandler);\n\n var getDomain = function getDomain() {\n var domain = process.domain;\n\n if (domain === undefined) {\n return null;\n }\n\n return domain;\n };\n\n var getContextDefault = function getContextDefault() {\n return null;\n };\n\n var getContextDomain = function getContextDomain() {\n return {\n domain: getDomain(),\n async: null\n };\n };\n\n var AsyncResource = util.isNode && util.nodeSupportsAsyncResource ? _dereq_(\"async_hooks\").AsyncResource : null;\n\n var getContextAsyncHooks = function getContextAsyncHooks() {\n return {\n domain: getDomain(),\n async: new AsyncResource(\"Bluebird::Promise\")\n };\n };\n\n var getContext = util.isNode ? getContextDomain : getContextDefault;\n util.notEnumerableProp(Promise, \"_getContext\", getContext);\n\n var enableAsyncHooks = function enableAsyncHooks() {\n getContext = getContextAsyncHooks;\n util.notEnumerableProp(Promise, \"_getContext\", getContextAsyncHooks);\n };\n\n var disableAsyncHooks = function disableAsyncHooks() {\n getContext = getContextDomain;\n util.notEnumerableProp(Promise, \"_getContext\", getContextDomain);\n };\n\n var es5 = _dereq_(\"./es5\");\n\n var Async = _dereq_(\"./async\");\n\n var async = new Async();\n es5.defineProperty(Promise, \"_async\", {\n value: async\n });\n\n var errors = _dereq_(\"./errors\");\n\n var TypeError = Promise.TypeError = errors.TypeError;\n Promise.RangeError = errors.RangeError;\n var CancellationError = Promise.CancellationError = errors.CancellationError;\n Promise.TimeoutError = errors.TimeoutError;\n Promise.OperationalError = errors.OperationalError;\n Promise.RejectionError = errors.OperationalError;\n Promise.AggregateError = errors.AggregateError;\n\n var INTERNAL = function INTERNAL() {};\n\n var APPLY = {};\n var NEXT_FILTER = {};\n\n var tryConvertToPromise = _dereq_(\"./thenables\")(Promise, INTERNAL);\n\n var PromiseArray = _dereq_(\"./promise_array\")(Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable);\n\n var Context = _dereq_(\"./context\")(Promise);\n /*jshint unused:false*/\n\n\n var createContext = Context.create;\n\n var debug = _dereq_(\"./debuggability\")(Promise, Context, enableAsyncHooks, disableAsyncHooks);\n\n var CapturedTrace = debug.CapturedTrace;\n\n var PassThroughHandlerContext = _dereq_(\"./finally\")(Promise, tryConvertToPromise, NEXT_FILTER);\n\n var catchFilter = _dereq_(\"./catch_filter\")(NEXT_FILTER);\n\n var nodebackForPromise = _dereq_(\"./nodeback\");\n\n var errorObj = util.errorObj;\n var tryCatch = util.tryCatch;\n\n function check(self, executor) {\n if (self == null || self.constructor !== Promise) {\n throw new TypeError(\"the promise constructor cannot be invoked directly\\n\\n See http://goo.gl/MqrFmX\\n\");\n }\n\n if (typeof executor !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(executor));\n }\n }\n\n function Promise(executor) {\n if (executor !== INTERNAL) {\n check(this, executor);\n }\n\n this._bitField = 0;\n this._fulfillmentHandler0 = undefined;\n this._rejectionHandler0 = undefined;\n this._promise0 = undefined;\n this._receiver0 = undefined;\n\n this._resolveFromExecutor(executor);\n\n this._promiseCreated();\n\n this._fireEvent(\"promiseCreated\", this);\n }\n\n Promise.prototype.toString = function () {\n return \"[object Promise]\";\n };\n\n Promise.prototype.caught = Promise.prototype[\"catch\"] = function (fn) {\n var len = arguments.length;\n\n if (len > 1) {\n var catchInstances = new Array(len - 1),\n j = 0,\n i;\n\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return apiRejection(\"Catch statement predicate: \" + \"expecting an object but got \" + util.classString(item));\n }\n }\n\n catchInstances.length = j;\n fn = arguments[i];\n\n if (typeof fn !== \"function\") {\n throw new TypeError(\"The last argument to .catch() \" + \"must be a function, got \" + util.toString(fn));\n }\n\n return this.then(undefined, catchFilter(catchInstances, fn, this));\n }\n\n return this.then(undefined, fn);\n };\n\n Promise.prototype.reflect = function () {\n return this._then(reflectHandler, reflectHandler, undefined, this, undefined);\n };\n\n Promise.prototype.then = function (didFulfill, didReject) {\n if (debug.warnings() && arguments.length > 0 && typeof didFulfill !== \"function\" && typeof didReject !== \"function\") {\n var msg = \".then() only accepts functions but was passed: \" + util.classString(didFulfill);\n\n if (arguments.length > 1) {\n msg += \", \" + util.classString(didReject);\n }\n\n this._warn(msg);\n }\n\n return this._then(didFulfill, didReject, undefined, undefined, undefined);\n };\n\n Promise.prototype.done = function (didFulfill, didReject) {\n var promise = this._then(didFulfill, didReject, undefined, undefined, undefined);\n\n promise._setIsFinal();\n };\n\n Promise.prototype.spread = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n\n return this.all()._then(fn, undefined, undefined, APPLY, undefined);\n };\n\n Promise.prototype.toJSON = function () {\n var ret = {\n isFulfilled: false,\n isRejected: false,\n fulfillmentValue: undefined,\n rejectionReason: undefined\n };\n\n if (this.isFulfilled()) {\n ret.fulfillmentValue = this.value();\n ret.isFulfilled = true;\n } else if (this.isRejected()) {\n ret.rejectionReason = this.reason();\n ret.isRejected = true;\n }\n\n return ret;\n };\n\n Promise.prototype.all = function () {\n if (arguments.length > 0) {\n this._warn(\".all() was passed arguments but it does not take any\");\n }\n\n return new PromiseArray(this).promise();\n };\n\n Promise.prototype.error = function (fn) {\n return this.caught(util.originatesFromRejection, fn);\n };\n\n Promise.getNewLibraryCopy = module.exports;\n\n Promise.is = function (val) {\n return val instanceof Promise;\n };\n\n Promise.fromNode = Promise.fromCallback = function (fn) {\n var ret = new Promise(INTERNAL);\n\n ret._captureStackTrace();\n\n var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs : false;\n var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs));\n\n if (result === errorObj) {\n ret._rejectCallback(result.e, true);\n }\n\n if (!ret._isFateSealed()) ret._setAsyncGuaranteed();\n return ret;\n };\n\n Promise.all = function (promises) {\n return new PromiseArray(promises).promise();\n };\n\n Promise.cast = function (obj) {\n var ret = tryConvertToPromise(obj);\n\n if (!(ret instanceof Promise)) {\n ret = new Promise(INTERNAL);\n\n ret._captureStackTrace();\n\n ret._setFulfilled();\n\n ret._rejectionHandler0 = obj;\n }\n\n return ret;\n };\n\n Promise.resolve = Promise.fulfilled = Promise.cast;\n\n Promise.reject = Promise.rejected = function (reason) {\n var ret = new Promise(INTERNAL);\n\n ret._captureStackTrace();\n\n ret._rejectCallback(reason, true);\n\n return ret;\n };\n\n Promise.setScheduler = function (fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n\n return async.setScheduler(fn);\n };\n\n Promise.prototype._then = function (didFulfill, didReject, _, receiver, internalData) {\n var haveInternalData = internalData !== undefined;\n var promise = haveInternalData ? internalData : new Promise(INTERNAL);\n\n var target = this._target();\n\n var bitField = target._bitField;\n\n if (!haveInternalData) {\n promise._propagateFrom(this, 3);\n\n promise._captureStackTrace();\n\n if (receiver === undefined && (this._bitField & 2097152) !== 0) {\n if (!((bitField & 50397184) === 0)) {\n receiver = this._boundValue();\n } else {\n receiver = target === this ? undefined : this._boundTo;\n }\n }\n\n this._fireEvent(\"promiseChained\", this, promise);\n }\n\n var context = getContext();\n\n if (!((bitField & 50397184) === 0)) {\n var handler,\n value,\n settler = target._settlePromiseCtx;\n\n if ((bitField & 33554432) !== 0) {\n value = target._rejectionHandler0;\n handler = didFulfill;\n } else if ((bitField & 16777216) !== 0) {\n value = target._fulfillmentHandler0;\n handler = didReject;\n\n target._unsetRejectionIsUnhandled();\n } else {\n settler = target._settlePromiseLateCancellationObserver;\n value = new CancellationError(\"late cancellation observer\");\n\n target._attachExtraTrace(value);\n\n handler = didReject;\n }\n\n async.invoke(settler, target, {\n handler: util.contextBind(context, handler),\n promise: promise,\n receiver: receiver,\n value: value\n });\n } else {\n target._addCallbacks(didFulfill, didReject, promise, receiver, context);\n }\n\n return promise;\n };\n\n Promise.prototype._length = function () {\n return this._bitField & 65535;\n };\n\n Promise.prototype._isFateSealed = function () {\n return (this._bitField & 117506048) !== 0;\n };\n\n Promise.prototype._isFollowing = function () {\n return (this._bitField & 67108864) === 67108864;\n };\n\n Promise.prototype._setLength = function (len) {\n this._bitField = this._bitField & -65536 | len & 65535;\n };\n\n Promise.prototype._setFulfilled = function () {\n this._bitField = this._bitField | 33554432;\n\n this._fireEvent(\"promiseFulfilled\", this);\n };\n\n Promise.prototype._setRejected = function () {\n this._bitField = this._bitField | 16777216;\n\n this._fireEvent(\"promiseRejected\", this);\n };\n\n Promise.prototype._setFollowing = function () {\n this._bitField = this._bitField | 67108864;\n\n this._fireEvent(\"promiseResolved\", this);\n };\n\n Promise.prototype._setIsFinal = function () {\n this._bitField = this._bitField | 4194304;\n };\n\n Promise.prototype._isFinal = function () {\n return (this._bitField & 4194304) > 0;\n };\n\n Promise.prototype._unsetCancelled = function () {\n this._bitField = this._bitField & ~65536;\n };\n\n Promise.prototype._setCancelled = function () {\n this._bitField = this._bitField | 65536;\n\n this._fireEvent(\"promiseCancelled\", this);\n };\n\n Promise.prototype._setWillBeCancelled = function () {\n this._bitField = this._bitField | 8388608;\n };\n\n Promise.prototype._setAsyncGuaranteed = function () {\n if (async.hasCustomScheduler()) return;\n var bitField = this._bitField;\n this._bitField = bitField | (bitField & 536870912) >> 2 ^ 134217728;\n };\n\n Promise.prototype._setNoAsyncGuarantee = function () {\n this._bitField = (this._bitField | 536870912) & ~134217728;\n };\n\n Promise.prototype._receiverAt = function (index) {\n var ret = index === 0 ? this._receiver0 : this[index * 4 - 4 + 3];\n\n if (ret === UNDEFINED_BINDING) {\n return undefined;\n } else if (ret === undefined && this._isBound()) {\n return this._boundValue();\n }\n\n return ret;\n };\n\n Promise.prototype._promiseAt = function (index) {\n return this[index * 4 - 4 + 2];\n };\n\n Promise.prototype._fulfillmentHandlerAt = function (index) {\n return this[index * 4 - 4 + 0];\n };\n\n Promise.prototype._rejectionHandlerAt = function (index) {\n return this[index * 4 - 4 + 1];\n };\n\n Promise.prototype._boundValue = function () {};\n\n Promise.prototype._migrateCallback0 = function (follower) {\n var bitField = follower._bitField;\n var fulfill = follower._fulfillmentHandler0;\n var reject = follower._rejectionHandler0;\n var promise = follower._promise0;\n\n var receiver = follower._receiverAt(0);\n\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n };\n\n Promise.prototype._migrateCallbackAt = function (follower, index) {\n var fulfill = follower._fulfillmentHandlerAt(index);\n\n var reject = follower._rejectionHandlerAt(index);\n\n var promise = follower._promiseAt(index);\n\n var receiver = follower._receiverAt(index);\n\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n };\n\n Promise.prototype._addCallbacks = function (fulfill, reject, promise, receiver, context) {\n var index = this._length();\n\n if (index >= 65535 - 4) {\n index = 0;\n\n this._setLength(0);\n }\n\n if (index === 0) {\n this._promise0 = promise;\n this._receiver0 = receiver;\n\n if (typeof fulfill === \"function\") {\n this._fulfillmentHandler0 = util.contextBind(context, fulfill);\n }\n\n if (typeof reject === \"function\") {\n this._rejectionHandler0 = util.contextBind(context, reject);\n }\n } else {\n var base = index * 4 - 4;\n this[base + 2] = promise;\n this[base + 3] = receiver;\n\n if (typeof fulfill === \"function\") {\n this[base + 0] = util.contextBind(context, fulfill);\n }\n\n if (typeof reject === \"function\") {\n this[base + 1] = util.contextBind(context, reject);\n }\n }\n\n this._setLength(index + 1);\n\n return index;\n };\n\n Promise.prototype._proxy = function (proxyable, arg) {\n this._addCallbacks(undefined, undefined, arg, proxyable, null);\n };\n\n Promise.prototype._resolveCallback = function (value, shouldBind) {\n if ((this._bitField & 117506048) !== 0) return;\n if (value === this) return this._rejectCallback(makeSelfResolutionError(), false);\n var maybePromise = tryConvertToPromise(value, this);\n if (!(maybePromise instanceof Promise)) return this._fulfill(value);\n if (shouldBind) this._propagateFrom(maybePromise, 2);\n\n var promise = maybePromise._target();\n\n if (promise === this) {\n this._reject(makeSelfResolutionError());\n\n return;\n }\n\n var bitField = promise._bitField;\n\n if ((bitField & 50397184) === 0) {\n var len = this._length();\n\n if (len > 0) promise._migrateCallback0(this);\n\n for (var i = 1; i < len; ++i) {\n promise._migrateCallbackAt(this, i);\n }\n\n this._setFollowing();\n\n this._setLength(0);\n\n this._setFollowee(maybePromise);\n } else if ((bitField & 33554432) !== 0) {\n this._fulfill(promise._value());\n } else if ((bitField & 16777216) !== 0) {\n this._reject(promise._reason());\n } else {\n var reason = new CancellationError(\"late cancellation observer\");\n\n promise._attachExtraTrace(reason);\n\n this._reject(reason);\n }\n };\n\n Promise.prototype._rejectCallback = function (reason, synchronous, ignoreNonErrorWarnings) {\n var trace = util.ensureErrorObject(reason);\n var hasStack = trace === reason;\n\n if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {\n var message = \"a promise was rejected with a non-error: \" + util.classString(reason);\n\n this._warn(message, true);\n }\n\n this._attachExtraTrace(trace, synchronous ? hasStack : false);\n\n this._reject(reason);\n };\n\n Promise.prototype._resolveFromExecutor = function (executor) {\n if (executor === INTERNAL) return;\n var promise = this;\n\n this._captureStackTrace();\n\n this._pushContext();\n\n var synchronous = true;\n\n var r = this._execute(executor, function (value) {\n promise._resolveCallback(value);\n }, function (reason) {\n promise._rejectCallback(reason, synchronous);\n });\n\n synchronous = false;\n\n this._popContext();\n\n if (r !== undefined) {\n promise._rejectCallback(r, true);\n }\n };\n\n Promise.prototype._settlePromiseFromHandler = function (handler, receiver, value, promise) {\n var bitField = promise._bitField;\n if ((bitField & 65536) !== 0) return;\n\n promise._pushContext();\n\n var x;\n\n if (receiver === APPLY) {\n if (!value || typeof value.length !== \"number\") {\n x = errorObj;\n x.e = new TypeError(\"cannot .spread() a non-array: \" + util.classString(value));\n } else {\n x = tryCatch(handler).apply(this._boundValue(), value);\n }\n } else {\n x = tryCatch(handler).call(receiver, value);\n }\n\n var promiseCreated = promise._popContext();\n\n bitField = promise._bitField;\n if ((bitField & 65536) !== 0) return;\n\n if (x === NEXT_FILTER) {\n promise._reject(value);\n } else if (x === errorObj) {\n promise._rejectCallback(x.e, false);\n } else {\n debug.checkForgottenReturns(x, promiseCreated, \"\", promise, this);\n\n promise._resolveCallback(x);\n }\n };\n\n Promise.prototype._target = function () {\n var ret = this;\n\n while (ret._isFollowing()) {\n ret = ret._followee();\n }\n\n return ret;\n };\n\n Promise.prototype._followee = function () {\n return this._rejectionHandler0;\n };\n\n Promise.prototype._setFollowee = function (promise) {\n this._rejectionHandler0 = promise;\n };\n\n Promise.prototype._settlePromise = function (promise, handler, receiver, value) {\n var isPromise = promise instanceof Promise;\n var bitField = this._bitField;\n var asyncGuaranteed = (bitField & 134217728) !== 0;\n\n if ((bitField & 65536) !== 0) {\n if (isPromise) promise._invokeInternalOnCancel();\n\n if (receiver instanceof PassThroughHandlerContext && receiver.isFinallyHandler()) {\n receiver.cancelPromise = promise;\n\n if (tryCatch(handler).call(receiver, value) === errorObj) {\n promise._reject(errorObj.e);\n }\n } else if (handler === reflectHandler) {\n promise._fulfill(reflectHandler.call(receiver));\n } else if (receiver instanceof Proxyable) {\n receiver._promiseCancelled(promise);\n } else if (isPromise || promise instanceof PromiseArray) {\n promise._cancel();\n } else {\n receiver.cancel();\n }\n } else if (typeof handler === \"function\") {\n if (!isPromise) {\n handler.call(receiver, value, promise);\n } else {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (receiver instanceof Proxyable) {\n if (!receiver._isResolved()) {\n if ((bitField & 33554432) !== 0) {\n receiver._promiseFulfilled(value, promise);\n } else {\n receiver._promiseRejected(value, promise);\n }\n }\n } else if (isPromise) {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n\n if ((bitField & 33554432) !== 0) {\n promise._fulfill(value);\n } else {\n promise._reject(value);\n }\n }\n };\n\n Promise.prototype._settlePromiseLateCancellationObserver = function (ctx) {\n var handler = ctx.handler;\n var promise = ctx.promise;\n var receiver = ctx.receiver;\n var value = ctx.value;\n\n if (typeof handler === \"function\") {\n if (!(promise instanceof Promise)) {\n handler.call(receiver, value, promise);\n } else {\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (promise instanceof Promise) {\n promise._reject(value);\n }\n };\n\n Promise.prototype._settlePromiseCtx = function (ctx) {\n this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value);\n };\n\n Promise.prototype._settlePromise0 = function (handler, value, bitField) {\n var promise = this._promise0;\n\n var receiver = this._receiverAt(0);\n\n this._promise0 = undefined;\n this._receiver0 = undefined;\n\n this._settlePromise(promise, handler, receiver, value);\n };\n\n Promise.prototype._clearCallbackDataAtIndex = function (index) {\n var base = index * 4 - 4;\n this[base + 2] = this[base + 3] = this[base + 0] = this[base + 1] = undefined;\n };\n\n Promise.prototype._fulfill = function (value) {\n var bitField = this._bitField;\n if ((bitField & 117506048) >>> 16) return;\n\n if (value === this) {\n var err = makeSelfResolutionError();\n\n this._attachExtraTrace(err);\n\n return this._reject(err);\n }\n\n this._setFulfilled();\n\n this._rejectionHandler0 = value;\n\n if ((bitField & 65535) > 0) {\n if ((bitField & 134217728) !== 0) {\n this._settlePromises();\n } else {\n async.settlePromises(this);\n }\n\n this._dereferenceTrace();\n }\n };\n\n Promise.prototype._reject = function (reason) {\n var bitField = this._bitField;\n if ((bitField & 117506048) >>> 16) return;\n\n this._setRejected();\n\n this._fulfillmentHandler0 = reason;\n\n if (this._isFinal()) {\n return async.fatalError(reason, util.isNode);\n }\n\n if ((bitField & 65535) > 0) {\n async.settlePromises(this);\n } else {\n this._ensurePossibleRejectionHandled();\n }\n };\n\n Promise.prototype._fulfillPromises = function (len, value) {\n for (var i = 1; i < len; i++) {\n var handler = this._fulfillmentHandlerAt(i);\n\n var promise = this._promiseAt(i);\n\n var receiver = this._receiverAt(i);\n\n this._clearCallbackDataAtIndex(i);\n\n this._settlePromise(promise, handler, receiver, value);\n }\n };\n\n Promise.prototype._rejectPromises = function (len, reason) {\n for (var i = 1; i < len; i++) {\n var handler = this._rejectionHandlerAt(i);\n\n var promise = this._promiseAt(i);\n\n var receiver = this._receiverAt(i);\n\n this._clearCallbackDataAtIndex(i);\n\n this._settlePromise(promise, handler, receiver, reason);\n }\n };\n\n Promise.prototype._settlePromises = function () {\n var bitField = this._bitField;\n var len = bitField & 65535;\n\n if (len > 0) {\n if ((bitField & 16842752) !== 0) {\n var reason = this._fulfillmentHandler0;\n\n this._settlePromise0(this._rejectionHandler0, reason, bitField);\n\n this._rejectPromises(len, reason);\n } else {\n var value = this._rejectionHandler0;\n\n this._settlePromise0(this._fulfillmentHandler0, value, bitField);\n\n this._fulfillPromises(len, value);\n }\n\n this._setLength(0);\n }\n\n this._clearCancellationData();\n };\n\n Promise.prototype._settledValue = function () {\n var bitField = this._bitField;\n\n if ((bitField & 33554432) !== 0) {\n return this._rejectionHandler0;\n } else if ((bitField & 16777216) !== 0) {\n return this._fulfillmentHandler0;\n }\n };\n\n if (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n es5.defineProperty(Promise.prototype, Symbol.toStringTag, {\n get: function get() {\n return \"Object\";\n }\n });\n }\n\n function deferResolve(v) {\n this.promise._resolveCallback(v);\n }\n\n function deferReject(v) {\n this.promise._rejectCallback(v, false);\n }\n\n Promise.defer = Promise.pending = function () {\n debug.deprecated(\"Promise.defer\", \"new Promise\");\n var promise = new Promise(INTERNAL);\n return {\n promise: promise,\n resolve: deferResolve,\n reject: deferReject\n };\n };\n\n util.notEnumerableProp(Promise, \"_makeSelfResolutionError\", makeSelfResolutionError);\n\n _dereq_(\"./method\")(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug);\n\n _dereq_(\"./bind\")(Promise, INTERNAL, tryConvertToPromise, debug);\n\n _dereq_(\"./cancel\")(Promise, PromiseArray, apiRejection, debug);\n\n _dereq_(\"./direct_resolve\")(Promise);\n\n _dereq_(\"./synchronous_inspection\")(Promise);\n\n _dereq_(\"./join\")(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async);\n\n Promise.Promise = Promise;\n Promise.version = \"3.7.2\";\n util.toFastProperties(Promise);\n util.toFastProperties(Promise.prototype);\n\n function fillTypes(value) {\n var p = new Promise(INTERNAL);\n p._fulfillmentHandler0 = value;\n p._rejectionHandler0 = value;\n p._promise0 = value;\n p._receiver0 = value;\n } // Complete slack tracking, opt out of field-type tracking and \n // stabilize map \n\n\n fillTypes({\n a: 1\n });\n fillTypes({\n b: 2\n });\n fillTypes({\n c: 3\n });\n fillTypes(1);\n fillTypes(function () {});\n fillTypes(undefined);\n fillTypes(false);\n fillTypes(new Promise(INTERNAL));\n debug.setBounds(Async.firstLineError, util.lastLineError);\n return Promise;\n };\n }, {\n \"./async\": 1,\n \"./bind\": 2,\n \"./cancel\": 4,\n \"./catch_filter\": 5,\n \"./context\": 6,\n \"./debuggability\": 7,\n \"./direct_resolve\": 8,\n \"./errors\": 9,\n \"./es5\": 10,\n \"./finally\": 11,\n \"./join\": 12,\n \"./method\": 13,\n \"./nodeback\": 14,\n \"./promise_array\": 16,\n \"./synchronous_inspection\": 19,\n \"./thenables\": 20,\n \"./util\": 21,\n \"async_hooks\": undefined\n }],\n 16: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (Promise, INTERNAL, tryConvertToPromise, apiRejection, Proxyable) {\n var util = _dereq_(\"./util\");\n\n var isArray = util.isArray;\n\n function toResolutionValue(val) {\n switch (val) {\n case -2:\n return [];\n\n case -3:\n return {};\n\n case -6:\n return new Map();\n }\n }\n\n function PromiseArray(values) {\n var promise = this._promise = new Promise(INTERNAL);\n\n if (values instanceof Promise) {\n promise._propagateFrom(values, 3);\n\n values.suppressUnhandledRejections();\n }\n\n promise._setOnCancel(this);\n\n this._values = values;\n this._length = 0;\n this._totalResolved = 0;\n\n this._init(undefined, -2);\n }\n\n util.inherits(PromiseArray, Proxyable);\n\n PromiseArray.prototype.length = function () {\n return this._length;\n };\n\n PromiseArray.prototype.promise = function () {\n return this._promise;\n };\n\n PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) {\n var values = tryConvertToPromise(this._values, this._promise);\n\n if (values instanceof Promise) {\n values = values._target();\n var bitField = values._bitField;\n ;\n this._values = values;\n\n if ((bitField & 50397184) === 0) {\n this._promise._setAsyncGuaranteed();\n\n return values._then(init, this._reject, undefined, this, resolveValueIfEmpty);\n } else if ((bitField & 33554432) !== 0) {\n values = values._value();\n } else if ((bitField & 16777216) !== 0) {\n return this._reject(values._reason());\n } else {\n return this._cancel();\n }\n }\n\n values = util.asArray(values);\n\n if (values === null) {\n var err = apiRejection(\"expecting an array or an iterable object but got \" + util.classString(values)).reason();\n\n this._promise._rejectCallback(err, false);\n\n return;\n }\n\n if (values.length === 0) {\n if (resolveValueIfEmpty === -5) {\n this._resolveEmptyArray();\n } else {\n this._resolve(toResolutionValue(resolveValueIfEmpty));\n }\n\n return;\n }\n\n this._iterate(values);\n };\n\n PromiseArray.prototype._iterate = function (values) {\n var len = this.getActualLength(values.length);\n this._length = len;\n this._values = this.shouldCopyValues() ? new Array(len) : this._values;\n var result = this._promise;\n var isResolved = false;\n var bitField = null;\n\n for (var i = 0; i < len; ++i) {\n var maybePromise = tryConvertToPromise(values[i], result);\n\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n bitField = maybePromise._bitField;\n } else {\n bitField = null;\n }\n\n if (isResolved) {\n if (bitField !== null) {\n maybePromise.suppressUnhandledRejections();\n }\n } else if (bitField !== null) {\n if ((bitField & 50397184) === 0) {\n maybePromise._proxy(this, i);\n\n this._values[i] = maybePromise;\n } else if ((bitField & 33554432) !== 0) {\n isResolved = this._promiseFulfilled(maybePromise._value(), i);\n } else if ((bitField & 16777216) !== 0) {\n isResolved = this._promiseRejected(maybePromise._reason(), i);\n } else {\n isResolved = this._promiseCancelled(i);\n }\n } else {\n isResolved = this._promiseFulfilled(maybePromise, i);\n }\n }\n\n if (!isResolved) result._setAsyncGuaranteed();\n };\n\n PromiseArray.prototype._isResolved = function () {\n return this._values === null;\n };\n\n PromiseArray.prototype._resolve = function (value) {\n this._values = null;\n\n this._promise._fulfill(value);\n };\n\n PromiseArray.prototype._cancel = function () {\n if (this._isResolved() || !this._promise._isCancellable()) return;\n this._values = null;\n\n this._promise._cancel();\n };\n\n PromiseArray.prototype._reject = function (reason) {\n this._values = null;\n\n this._promise._rejectCallback(reason, false);\n };\n\n PromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n\n return true;\n }\n\n return false;\n };\n\n PromiseArray.prototype._promiseCancelled = function () {\n this._cancel();\n\n return true;\n };\n\n PromiseArray.prototype._promiseRejected = function (reason) {\n this._totalResolved++;\n\n this._reject(reason);\n\n return true;\n };\n\n PromiseArray.prototype._resultCancelled = function () {\n if (this._isResolved()) return;\n var values = this._values;\n\n this._cancel();\n\n if (values instanceof Promise) {\n values.cancel();\n } else {\n for (var i = 0; i < values.length; ++i) {\n if (values[i] instanceof Promise) {\n values[i].cancel();\n }\n }\n }\n };\n\n PromiseArray.prototype.shouldCopyValues = function () {\n return true;\n };\n\n PromiseArray.prototype.getActualLength = function (len) {\n return len;\n };\n\n return PromiseArray;\n };\n }, {\n \"./util\": 21\n }],\n 17: [function (_dereq_, module, exports) {\n \"use strict\";\n\n function arrayMove(src, srcIndex, dst, dstIndex, len) {\n for (var j = 0; j < len; ++j) {\n dst[j + dstIndex] = src[j + srcIndex];\n src[j + srcIndex] = void 0;\n }\n }\n\n function Queue(capacity) {\n this._capacity = capacity;\n this._length = 0;\n this._front = 0;\n }\n\n Queue.prototype._willBeOverCapacity = function (size) {\n return this._capacity < size;\n };\n\n Queue.prototype._pushOne = function (arg) {\n var length = this.length();\n\n this._checkCapacity(length + 1);\n\n var i = this._front + length & this._capacity - 1;\n this[i] = arg;\n this._length = length + 1;\n };\n\n Queue.prototype.push = function (fn, receiver, arg) {\n var length = this.length() + 3;\n\n if (this._willBeOverCapacity(length)) {\n this._pushOne(fn);\n\n this._pushOne(receiver);\n\n this._pushOne(arg);\n\n return;\n }\n\n var j = this._front + length - 3;\n\n this._checkCapacity(length);\n\n var wrapMask = this._capacity - 1;\n this[j + 0 & wrapMask] = fn;\n this[j + 1 & wrapMask] = receiver;\n this[j + 2 & wrapMask] = arg;\n this._length = length;\n };\n\n Queue.prototype.shift = function () {\n var front = this._front,\n ret = this[front];\n this[front] = undefined;\n this._front = front + 1 & this._capacity - 1;\n this._length--;\n return ret;\n };\n\n Queue.prototype.length = function () {\n return this._length;\n };\n\n Queue.prototype._checkCapacity = function (size) {\n if (this._capacity < size) {\n this._resizeTo(this._capacity << 1);\n }\n };\n\n Queue.prototype._resizeTo = function (capacity) {\n var oldCapacity = this._capacity;\n this._capacity = capacity;\n var front = this._front;\n var length = this._length;\n var moveItemsCount = front + length & oldCapacity - 1;\n arrayMove(this, 0, this, oldCapacity, moveItemsCount);\n };\n\n module.exports = Queue;\n }, {}],\n 18: [function (_dereq_, module, exports) {\n \"use strict\";\n\n var util = _dereq_(\"./util\");\n\n var schedule;\n\n var noAsyncScheduler = function noAsyncScheduler() {\n throw new Error(\"No async scheduler available\\n\\n See http://goo.gl/MqrFmX\\n\");\n };\n\n var NativePromise = util.getNativePromise();\n\n if (util.isNode && typeof MutationObserver === \"undefined\") {\n var GlobalSetImmediate = global.setImmediate;\n var ProcessNextTick = process.nextTick;\n schedule = util.isRecentNode ? function (fn) {\n GlobalSetImmediate.call(global, fn);\n } : function (fn) {\n ProcessNextTick.call(process, fn);\n };\n } else if (typeof NativePromise === \"function\" && typeof NativePromise.resolve === \"function\") {\n var nativePromise = NativePromise.resolve();\n\n schedule = function schedule(fn) {\n nativePromise.then(fn);\n };\n } else if (typeof MutationObserver !== \"undefined\" && !(typeof window !== \"undefined\" && window.navigator && (window.navigator.standalone || window.cordova)) && \"classList\" in document.documentElement) {\n schedule = function () {\n var div = document.createElement(\"div\");\n var opts = {\n attributes: true\n };\n var toggleScheduled = false;\n var div2 = document.createElement(\"div\");\n var o2 = new MutationObserver(function () {\n div.classList.toggle(\"foo\");\n toggleScheduled = false;\n });\n o2.observe(div2, opts);\n\n var scheduleToggle = function scheduleToggle() {\n if (toggleScheduled) return;\n toggleScheduled = true;\n div2.classList.toggle(\"foo\");\n };\n\n return function schedule(fn) {\n var o = new MutationObserver(function () {\n o.disconnect();\n fn();\n });\n o.observe(div, opts);\n scheduleToggle();\n };\n }();\n } else if (typeof setImmediate !== \"undefined\") {\n schedule = function schedule(fn) {\n setImmediate(fn);\n };\n } else if (typeof setTimeout !== \"undefined\") {\n schedule = function schedule(fn) {\n setTimeout(fn, 0);\n };\n } else {\n schedule = noAsyncScheduler;\n }\n\n module.exports = schedule;\n }, {\n \"./util\": 21\n }],\n 19: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (Promise) {\n function PromiseInspection(promise) {\n if (promise !== undefined) {\n promise = promise._target();\n this._bitField = promise._bitField;\n this._settledValueField = promise._isFateSealed() ? promise._settledValue() : undefined;\n } else {\n this._bitField = 0;\n this._settledValueField = undefined;\n }\n }\n\n PromiseInspection.prototype._settledValue = function () {\n return this._settledValueField;\n };\n\n var value = PromiseInspection.prototype.value = function () {\n if (!this.isFulfilled()) {\n throw new TypeError(\"cannot get fulfillment value of a non-fulfilled promise\\n\\n See http://goo.gl/MqrFmX\\n\");\n }\n\n return this._settledValue();\n };\n\n var reason = PromiseInspection.prototype.error = PromiseInspection.prototype.reason = function () {\n if (!this.isRejected()) {\n throw new TypeError(\"cannot get rejection reason of a non-rejected promise\\n\\n See http://goo.gl/MqrFmX\\n\");\n }\n\n return this._settledValue();\n };\n\n var isFulfilled = PromiseInspection.prototype.isFulfilled = function () {\n return (this._bitField & 33554432) !== 0;\n };\n\n var isRejected = PromiseInspection.prototype.isRejected = function () {\n return (this._bitField & 16777216) !== 0;\n };\n\n var isPending = PromiseInspection.prototype.isPending = function () {\n return (this._bitField & 50397184) === 0;\n };\n\n var isResolved = PromiseInspection.prototype.isResolved = function () {\n return (this._bitField & 50331648) !== 0;\n };\n\n PromiseInspection.prototype.isCancelled = function () {\n return (this._bitField & 8454144) !== 0;\n };\n\n Promise.prototype.__isCancelled = function () {\n return (this._bitField & 65536) === 65536;\n };\n\n Promise.prototype._isCancelled = function () {\n return this._target().__isCancelled();\n };\n\n Promise.prototype.isCancelled = function () {\n return (this._target()._bitField & 8454144) !== 0;\n };\n\n Promise.prototype.isPending = function () {\n return isPending.call(this._target());\n };\n\n Promise.prototype.isRejected = function () {\n return isRejected.call(this._target());\n };\n\n Promise.prototype.isFulfilled = function () {\n return isFulfilled.call(this._target());\n };\n\n Promise.prototype.isResolved = function () {\n return isResolved.call(this._target());\n };\n\n Promise.prototype.value = function () {\n return value.call(this._target());\n };\n\n Promise.prototype.reason = function () {\n var target = this._target();\n\n target._unsetRejectionIsUnhandled();\n\n return reason.call(target);\n };\n\n Promise.prototype._value = function () {\n return this._settledValue();\n };\n\n Promise.prototype._reason = function () {\n this._unsetRejectionIsUnhandled();\n\n return this._settledValue();\n };\n\n Promise.PromiseInspection = PromiseInspection;\n };\n }, {}],\n 20: [function (_dereq_, module, exports) {\n \"use strict\";\n\n module.exports = function (Promise, INTERNAL) {\n var util = _dereq_(\"./util\");\n\n var errorObj = util.errorObj;\n var isObject = util.isObject;\n\n function tryConvertToPromise(obj, context) {\n if (isObject(obj)) {\n if (obj instanceof Promise) return obj;\n var then = getThen(obj);\n\n if (then === errorObj) {\n if (context) context._pushContext();\n var ret = Promise.reject(then.e);\n if (context) context._popContext();\n return ret;\n } else if (typeof then === \"function\") {\n if (isAnyBluebirdPromise(obj)) {\n var ret = new Promise(INTERNAL);\n\n obj._then(ret._fulfill, ret._reject, undefined, ret, null);\n\n return ret;\n }\n\n return doThenable(obj, then, context);\n }\n }\n\n return obj;\n }\n\n function doGetThen(obj) {\n return obj.then;\n }\n\n function getThen(obj) {\n try {\n return doGetThen(obj);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n }\n\n var hasProp = {}.hasOwnProperty;\n\n function isAnyBluebirdPromise(obj) {\n try {\n return hasProp.call(obj, \"_promise0\");\n } catch (e) {\n return false;\n }\n }\n\n function doThenable(x, then, context) {\n var promise = new Promise(INTERNAL);\n var ret = promise;\n if (context) context._pushContext();\n\n promise._captureStackTrace();\n\n if (context) context._popContext();\n var synchronous = true;\n var result = util.tryCatch(then).call(x, resolve, reject);\n synchronous = false;\n\n if (promise && result === errorObj) {\n promise._rejectCallback(result.e, true, true);\n\n promise = null;\n }\n\n function resolve(value) {\n if (!promise) return;\n\n promise._resolveCallback(value);\n\n promise = null;\n }\n\n function reject(reason) {\n if (!promise) return;\n\n promise._rejectCallback(reason, synchronous, true);\n\n promise = null;\n }\n\n return ret;\n }\n\n return tryConvertToPromise;\n };\n }, {\n \"./util\": 21\n }],\n 21: [function (_dereq_, module, exports) {\n \"use strict\";\n\n var es5 = _dereq_(\"./es5\");\n\n var canEvaluate = typeof navigator == \"undefined\";\n var errorObj = {\n e: {}\n };\n var tryCatchTarget;\n var globalObject = typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : this !== undefined ? this : null;\n\n function tryCatcher() {\n try {\n var target = tryCatchTarget;\n tryCatchTarget = null;\n return target.apply(this, arguments);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n }\n\n function tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n }\n\n var inherits = function inherits(Child, Parent) {\n var hasProp = {}.hasOwnProperty;\n\n function T() {\n this.constructor = Child;\n this.constructor$ = Parent;\n\n for (var propertyName in Parent.prototype) {\n if (hasProp.call(Parent.prototype, propertyName) && propertyName.charAt(propertyName.length - 1) !== \"$\") {\n this[propertyName + \"$\"] = Parent.prototype[propertyName];\n }\n }\n }\n\n T.prototype = Parent.prototype;\n Child.prototype = new T();\n return Child.prototype;\n };\n\n function isPrimitive(val) {\n return val == null || val === true || val === false || typeof val === \"string\" || typeof val === \"number\";\n }\n\n function isObject(value) {\n return typeof value === \"function\" || _typeof(value) === \"object\" && value !== null;\n }\n\n function maybeWrapAsError(maybeError) {\n if (!isPrimitive(maybeError)) return maybeError;\n return new Error(safeToString(maybeError));\n }\n\n function withAppended(target, appendee) {\n var len = target.length;\n var ret = new Array(len + 1);\n var i;\n\n for (i = 0; i < len; ++i) {\n ret[i] = target[i];\n }\n\n ret[i] = appendee;\n return ret;\n }\n\n function getDataPropertyOrDefault(obj, key, defaultValue) {\n if (es5.isES5) {\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n\n if (desc != null) {\n return desc.get == null && desc.set == null ? desc.value : defaultValue;\n }\n } else {\n return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined;\n }\n }\n\n function notEnumerableProp(obj, name, value) {\n if (isPrimitive(obj)) return obj;\n var descriptor = {\n value: value,\n configurable: true,\n enumerable: false,\n writable: true\n };\n es5.defineProperty(obj, name, descriptor);\n return obj;\n }\n\n function thrower(r) {\n throw r;\n }\n\n var inheritedDataKeys = function () {\n var excludedPrototypes = [Array.prototype, Object.prototype, Function.prototype];\n\n var isExcludedProto = function isExcludedProto(val) {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (excludedPrototypes[i] === val) {\n return true;\n }\n }\n\n return false;\n };\n\n if (es5.isES5) {\n var getKeys = Object.getOwnPropertyNames;\n return function (obj) {\n var ret = [];\n var visitedKeys = Object.create(null);\n\n while (obj != null && !isExcludedProto(obj)) {\n var keys;\n\n try {\n keys = getKeys(obj);\n } catch (e) {\n return ret;\n }\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (visitedKeys[key]) continue;\n visitedKeys[key] = true;\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n\n if (desc != null && desc.get == null && desc.set == null) {\n ret.push(key);\n }\n }\n\n obj = es5.getPrototypeOf(obj);\n }\n\n return ret;\n };\n } else {\n var hasProp = {}.hasOwnProperty;\n return function (obj) {\n if (isExcludedProto(obj)) return [];\n var ret = [];\n /*jshint forin:false */\n\n enumeration: for (var key in obj) {\n if (hasProp.call(obj, key)) {\n ret.push(key);\n } else {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (hasProp.call(excludedPrototypes[i], key)) {\n continue enumeration;\n }\n }\n\n ret.push(key);\n }\n }\n\n return ret;\n };\n }\n }();\n\n var thisAssignmentPattern = /this\\s*\\.\\s*\\S+\\s*=/;\n\n function isClass(fn) {\n try {\n if (typeof fn === \"function\") {\n var keys = es5.names(fn.prototype);\n var hasMethods = es5.isES5 && keys.length > 1;\n var hasMethodsOtherThanConstructor = keys.length > 0 && !(keys.length === 1 && keys[0] === \"constructor\");\n var hasThisAssignmentAndStaticMethods = thisAssignmentPattern.test(fn + \"\") && es5.names(fn).length > 0;\n\n if (hasMethods || hasMethodsOtherThanConstructor || hasThisAssignmentAndStaticMethods) {\n return true;\n }\n }\n\n return false;\n } catch (e) {\n return false;\n }\n }\n\n function toFastProperties(obj) {\n /*jshint -W027,-W055,-W031*/\n function FakeConstructor() {}\n\n FakeConstructor.prototype = obj;\n var receiver = new FakeConstructor();\n\n function ic() {\n return _typeof(receiver.foo);\n }\n\n ic();\n ic();\n return obj;\n eval(obj);\n }\n\n var rident = /^[a-z$_][a-z$_0-9]*$/i;\n\n function isIdentifier(str) {\n return rident.test(str);\n }\n\n function filledRange(count, prefix, suffix) {\n var ret = new Array(count);\n\n for (var i = 0; i < count; ++i) {\n ret[i] = prefix + i + suffix;\n }\n\n return ret;\n }\n\n function safeToString(obj) {\n try {\n return obj + \"\";\n } catch (e) {\n return \"[no string representation]\";\n }\n }\n\n function isError(obj) {\n return obj instanceof Error || obj !== null && _typeof(obj) === \"object\" && typeof obj.message === \"string\" && typeof obj.name === \"string\";\n }\n\n function markAsOriginatingFromRejection(e) {\n try {\n notEnumerableProp(e, \"isOperational\", true);\n } catch (ignore) {}\n }\n\n function originatesFromRejection(e) {\n if (e == null) return false;\n return e instanceof Error[\"__BluebirdErrorTypes__\"].OperationalError || e[\"isOperational\"] === true;\n }\n\n function canAttachTrace(obj) {\n return isError(obj) && es5.propertyIsWritable(obj, \"stack\");\n }\n\n var ensureErrorObject = function () {\n if (!(\"stack\" in new Error())) {\n return function (value) {\n if (canAttachTrace(value)) return value;\n\n try {\n throw new Error(safeToString(value));\n } catch (err) {\n return err;\n }\n };\n } else {\n return function (value) {\n if (canAttachTrace(value)) return value;\n return new Error(safeToString(value));\n };\n }\n }();\n\n function classString(obj) {\n return {}.toString.call(obj);\n }\n\n function copyDescriptors(from, to, filter) {\n var keys = es5.names(from);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (filter(key)) {\n try {\n es5.defineProperty(to, key, es5.getDescriptor(from, key));\n } catch (ignore) {}\n }\n }\n }\n\n var asArray = function asArray(v) {\n if (es5.isArray(v)) {\n return v;\n }\n\n return null;\n };\n\n if (typeof Symbol !== \"undefined\" && Symbol.iterator) {\n var ArrayFrom = typeof Array.from === \"function\" ? function (v) {\n return Array.from(v);\n } : function (v) {\n var ret = [];\n var it = v[Symbol.iterator]();\n var itResult;\n\n while (!(itResult = it.next()).done) {\n ret.push(itResult.value);\n }\n\n return ret;\n };\n\n asArray = function asArray(v) {\n if (es5.isArray(v)) {\n return v;\n } else if (v != null && typeof v[Symbol.iterator] === \"function\") {\n return ArrayFrom(v);\n }\n\n return null;\n };\n }\n\n var isNode = typeof process !== \"undefined\" && classString(process).toLowerCase() === \"[object process]\";\n var hasEnvVariables = typeof process !== \"undefined\" && typeof process.env !== \"undefined\";\n\n function env(key) {\n return hasEnvVariables ? process.env[key] : undefined;\n }\n\n function getNativePromise() {\n if (typeof Promise === \"function\") {\n try {\n var promise = new Promise(function () {});\n\n if (classString(promise) === \"[object Promise]\") {\n return Promise;\n }\n } catch (e) {}\n }\n }\n\n var reflectHandler;\n\n function contextBind(ctx, cb) {\n if (ctx === null || typeof cb !== \"function\" || cb === reflectHandler) {\n return cb;\n }\n\n if (ctx.domain !== null) {\n cb = ctx.domain.bind(cb);\n }\n\n var async = ctx.async;\n\n if (async !== null) {\n var old = cb;\n\n cb = function cb() {\n var args = new Array(2).concat([].slice.call(arguments));\n ;\n args[0] = old;\n args[1] = this;\n return async.runInAsyncScope.apply(async, args);\n };\n }\n\n return cb;\n }\n\n var ret = {\n setReflectHandler: function setReflectHandler(fn) {\n reflectHandler = fn;\n },\n isClass: isClass,\n isIdentifier: isIdentifier,\n inheritedDataKeys: inheritedDataKeys,\n getDataPropertyOrDefault: getDataPropertyOrDefault,\n thrower: thrower,\n isArray: es5.isArray,\n asArray: asArray,\n notEnumerableProp: notEnumerableProp,\n isPrimitive: isPrimitive,\n isObject: isObject,\n isError: isError,\n canEvaluate: canEvaluate,\n errorObj: errorObj,\n tryCatch: tryCatch,\n inherits: inherits,\n withAppended: withAppended,\n maybeWrapAsError: maybeWrapAsError,\n toFastProperties: toFastProperties,\n filledRange: filledRange,\n toString: safeToString,\n canAttachTrace: canAttachTrace,\n ensureErrorObject: ensureErrorObject,\n originatesFromRejection: originatesFromRejection,\n markAsOriginatingFromRejection: markAsOriginatingFromRejection,\n classString: classString,\n copyDescriptors: copyDescriptors,\n isNode: isNode,\n hasEnvVariables: hasEnvVariables,\n env: env,\n global: globalObject,\n getNativePromise: getNativePromise,\n contextBind: contextBind\n };\n\n ret.isRecentNode = ret.isNode && function () {\n var version;\n\n if (process.versions && process.versions.node) {\n version = process.versions.node.split(\".\").map(Number);\n } else if (process.version) {\n version = process.version.split(\".\").map(Number);\n }\n\n return version[0] === 0 && version[1] > 10 || version[0] > 0;\n }();\n\n ret.nodeSupportsAsyncResource = ret.isNode && function () {\n var supportsAsync = false;\n\n try {\n var res = _dereq_(\"async_hooks\").AsyncResource;\n\n supportsAsync = typeof res.prototype.runInAsyncScope === \"function\";\n } catch (e) {\n supportsAsync = false;\n }\n\n return supportsAsync;\n }();\n\n if (ret.isNode) ret.toFastProperties(process);\n\n try {\n throw new Error();\n } catch (e) {\n ret.lastLineError = e;\n }\n\n module.exports = ret;\n }, {\n \"./es5\": 10,\n \"async_hooks\": undefined\n }]\n }, {}, [3])(3);\n});\n;\n\nif (typeof window !== 'undefined' && window !== null) {\n window.P = window.Promise;\n} else if (typeof self !== 'undefined' && self !== null) {\n self.P = self.Promise;\n}","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function registerImmediate(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n } // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n\n\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global; // Don't get fooled by e.g. browserify environments.\n\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n})(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self);","export default function () {\n /* global dhtmlx */\n if (typeof dhtmlx != \"undefined\" && dhtmlx.attaches) {\n dhtmlx.attaches.attachScheduler = function (day, mode, tabs, scheduler) {\n var tabs = tabs || '<div class=\"dhx_cal_tab\" name=\"day_tab\" data-tab=\"day\" style=\"right:204px;\"></div><div class=\"dhx_cal_tab\" name=\"week_tab\" data-tab=\"week\" style=\"right:140px;\"></div><div class=\"dhx_cal_tab\" name=\"month_tab\" data-tab=\"month\" style=\"right:76px;\"></div>';\n var obj = document.createElement(\"DIV\");\n obj.id = \"dhxSchedObj_\" + this._genStr(12);\n obj.innerHTML = '<div id=\"' + obj.id + '\" class=\"dhx_cal_container\" style=\"width:100%; height:100%;\"><div class=\"dhx_cal_navline\"><div class=\"dhx_cal_prev_button\"> </div><div class=\"dhx_cal_next_button\"> </div><div class=\"dhx_cal_today_button\"></div><div class=\"dhx_cal_date\"></div>' + tabs + '</div><div class=\"dhx_cal_header\"></div><div class=\"dhx_cal_data\"></div></div>';\n document.body.appendChild(obj.firstChild);\n this.attachObject(obj.id, false, true);\n this.vs[this.av].sched = scheduler;\n this.vs[this.av].schedId = obj.id;\n scheduler.setSizes = scheduler.updateView;\n\n scheduler.destructor = function () {};\n\n scheduler.init(obj.id, day, mode);\n return this.vs[this._viewRestore()].sched;\n };\n }\n}","export default function extend(scheduler) {\n function div(className) {\n var element = document.createElement(\"div\");\n var classes = (className || \"\").split(\" \");\n classes.forEach(function (cssClass) {\n element.classList.add(cssClass);\n });\n return element;\n }\n\n var itemTypes = {\n rows_container: function rows_container() {\n return div(\"dhx_cal_navbar_rows_container\");\n },\n row: function row() {\n return div(\"dhx_cal_navbar_row\");\n },\n view: function view(config) {\n var element = div(\"dhx_cal_tab\");\n element.setAttribute(\"name\", config.view + \"_tab\");\n element.setAttribute(\"data-tab\", config.view); // element.setAttribute(\"data-viewname\", config.view); // FIXME: need to remove? not used anywhere\n\n if (scheduler.config.fix_tab_position) {\n if (config.$firstTab) {\n element.classList.add(\"dhx_cal_tab_first\");\n } else if (config.$lastTab) {\n element.classList.add(\"dhx_cal_tab_last\");\n } else if (config.view !== \"week\") {\n element.classList.add(\"dhx_cal_tab_standalone\");\n }\n }\n\n return element;\n },\n date: function date() {\n return div(\"dhx_cal_date\");\n },\n button: function button(config) {\n return div(\"dhx_cal_nav_button dhx_cal_nav_button_custom dhx_cal_tab\");\n },\n builtInButton: function builtInButton(config) {\n return div(\"dhx_cal_\" + config.view + \"_button dhx_cal_nav_button\");\n },\n spacer: function spacer() {\n return div(\"dhx_cal_line_spacer\");\n },\n minicalendarButton: function minicalendarButton(config) {\n var minicalendarDiv = div('dhx_minical_icon');\n\n if (!config.click && !minicalendarDiv.$_eventAttached) {\n scheduler.event(minicalendarDiv, \"click\", function () {\n if (scheduler.isCalendarVisible()) {\n scheduler.destroyCalendar();\n } else {\n scheduler.renderCalendar({\n position: this,\n date: scheduler.getState().date,\n navigation: true,\n handler: function handler(date, calendar) {\n scheduler.setCurrentView(date);\n scheduler.destroyCalendar();\n }\n });\n }\n });\n }\n\n return minicalendarDiv;\n },\n html_element: function html_element(config) {\n return div(\"dhx_cal_nav_content\");\n }\n };\n\n function findRenderer(config) {\n var renderer;\n\n if (config.view) {\n switch (config.view) {\n case \"today\":\n case \"next\":\n case \"prev\":\n renderer = itemTypes.builtInButton;\n break;\n\n case \"date\":\n renderer = itemTypes.date;\n break;\n\n case \"spacer\":\n renderer = itemTypes.spacer;\n break;\n\n case \"button\":\n renderer = itemTypes.button;\n break;\n\n case \"minicalendar\":\n renderer = itemTypes.minicalendarButton;\n break;\n\n default:\n renderer = itemTypes.view;\n break;\n }\n } else if (config.rows) {\n renderer = itemTypes.rows_container;\n } else if (config.cols) {\n renderer = itemTypes.row;\n }\n\n return renderer;\n }\n\n function renderElement(config) {\n var renderer = findRenderer(config);\n\n if (!renderer) {\n return;\n }\n\n var element = renderer(config);\n\n if (config.css) {\n element.classList.add(config.css);\n }\n\n if (config.width) {\n var value = config.width;\n\n if (value === value * 1) {\n value += \"px\";\n }\n\n element.style.width = value;\n }\n\n if (config.height) {\n var value = config.height;\n\n if (value === value * 1) {\n value += \"px\";\n }\n\n element.style.height = value;\n }\n\n if (config.click) {\n element.addEventListener(\"click\", config.click);\n }\n\n if (config.html) {\n element.innerHTML = config.html;\n }\n\n if (config.align) {\n var value = \"\";\n\n if (config.align == \"right\") {\n value = \"flex-end\";\n } else if (config.align == \"left\") {\n value = \"flex-start\";\n }\n\n element.style.justifyContent = value;\n }\n\n return element;\n }\n\n function prepareConfig(config) {\n if (typeof config === \"string\") {\n config = {\n view: config\n };\n }\n\n if (!config.view && !config.rows && !config.cols) {\n config.view = \"button\";\n }\n\n return config;\n }\n\n function renderLayout(config) {\n var fragment = document.createDocumentFragment();\n var items;\n\n if (Array.isArray(config)) {\n items = config;\n } else {\n items = [config];\n }\n\n for (var i = 0; i < items.length; i++) {\n var view = prepareConfig(items[i]);\n\n if (view.view === \"day\" && items[i + 1]) {\n var next = prepareConfig(items[i + 1]);\n\n if (next.view === \"week\" || next.view === \"month\") {\n view.$firstTab = true;\n }\n }\n\n if (view.view === \"month\" && items[i - 1]) {\n var next = prepareConfig(items[i - 1]);\n\n if (next.view === \"week\" || next.view === \"day\") {\n view.$lastTab = true;\n }\n }\n\n var element = renderElement(view);\n fragment.appendChild(element);\n\n if (view.cols || view.rows) {\n element.appendChild(renderLayout(view.cols || view.rows));\n }\n }\n\n return fragment;\n }\n\n scheduler._init_nav_bar = function (items) {\n var navBar = this.$container.querySelector(\".dhx_cal_navline\");\n\n if (!navBar) {\n navBar = document.createElement(\"div\");\n navBar.className = \"dhx_cal_navline dhx_cal_navline_flex\";\n\n scheduler._update_nav_bar(items, navBar);\n\n return navBar;\n }\n\n return navBar;\n };\n\n var previousNavbar = null;\n var previousHeight = null;\n\n scheduler._update_nav_bar = function (config, container) {\n if (!config) {\n return;\n }\n\n var heightChanged = false;\n var configChanged = false;\n var newHeight = config.height || scheduler.xy.nav_height;\n\n if (previousHeight === null || previousHeight !== newHeight) {\n heightChanged = true;\n }\n\n if (!previousNavbar || JSON.stringify(config) !== previousNavbar) {\n configChanged = true;\n }\n\n if (heightChanged) {\n scheduler.xy.nav_height = newHeight;\n }\n\n if (configChanged) {\n container.innerHTML = \"\";\n container.appendChild(renderLayout(config));\n }\n\n if (heightChanged || configChanged) {\n scheduler.unset_actions();\n scheduler._els = [];\n scheduler.get_elements();\n scheduler.set_actions();\n }\n\n if (newHeight === 0) {\n container.style.display = \"none\";\n } else {\n container.style.display = \"\";\n }\n\n previousHeight = newHeight;\n };\n}","export default function extend(scheduler) {\n function isAttachedNode(container) {\n var root = document.body;\n\n while (container && container != root) {\n container = container.parentNode;\n }\n\n return !!(root == container);\n }\n\n function getWindowSize(window) {\n return {\n w: window.innerWidth || document.documentElement.clientWidth,\n h: window.innerHeight || document.documentElement.clientHeight\n };\n }\n\n function equals(a, b) {\n return a.w == b.w && a.h == b.h;\n }\n\n function listenWindowResize(scheduler, window) {\n var oldSize = getWindowSize(window);\n var resizeDelay;\n scheduler.event(window, \"resize\", function () {\n clearTimeout(resizeDelay);\n resizeDelay = setTimeout(function () {\n if (!isAttachedNode(scheduler.$container)) {\n return;\n }\n\n var newSize = getWindowSize(window); // element may be resized by container-autoresize exteinsion\n // check if the size is actually changed in order to not to get endless loop\n\n if (!equals(oldSize, newSize)) {\n oldSize = newSize;\n triggerSchedulerResize(scheduler);\n }\n }, 150);\n });\n }\n\n function triggerSchedulerResize(scheduler) {\n if (scheduler.$destroyed || !scheduler.$root || !isAttachedNode(scheduler.$root)) {\n return;\n }\n\n if (scheduler.callEvent(\"onSchedulerResize\", [])) {\n scheduler.updateView();\n scheduler.callEvent(\"onAfterSchedulerResize\", []);\n }\n }\n\n function watchNodeResize(scheduler) {\n var previousHeight = scheduler.$root.offsetHeight;\n var previousWidth = scheduler.$root.offsetWidth;\n\n function lowlevelResizeWatcher() {\n if (scheduler.$destroyed) {\n return;\n }\n\n if (scheduler.$root) {\n if (scheduler.$root.offsetHeight != previousHeight || scheduler.$root.offsetWidth != previousWidth) {\n triggerSchedulerResize(scheduler);\n }\n\n previousHeight = scheduler.$root.offsetHeight;\n previousWidth = scheduler.$root.offsetWidth;\n }\n\n setTimeout(lowlevelResizeWatcher, 200);\n }\n\n lowlevelResizeWatcher();\n }\n\n function addResizeListener(scheduler) {\n var root = scheduler.$container;\n var containerStyles = window.getComputedStyle(root);\n\n if (containerStyles.getPropertyValue(\"position\") == \"static\") {\n root.style.position = \"relative\";\n }\n\n var resizeWatcher = document.createElement('iframe');\n resizeWatcher.className = \"scheduler_container_resize_watcher\";\n resizeWatcher.tabIndex = -1;\n\n if (scheduler.config.wai_aria_attributes) {\n resizeWatcher.setAttribute(\"role\", \"none\");\n resizeWatcher.setAttribute(\"aria-hidden\", true);\n } // in some environments (namely, in SalesForce) iframe.contentWindow is not available\n\n\n var salesforce_environment = !!window[\"Sfdc\"] || !!window[\"$A\"] || window[\"Aura\"];\n\n if (salesforce_environment) {\n watchNodeResize(scheduler);\n } else {\n root.appendChild(resizeWatcher);\n\n if (resizeWatcher.contentWindow) {\n listenWindowResize(scheduler, resizeWatcher.contentWindow);\n } else {\n // if so - ditch the iframe and fallback to listening the main window resize\n root.removeChild(resizeWatcher);\n listenWindowResize(scheduler, window);\n }\n }\n }\n\n addResizeListener(scheduler);\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar EventHost = /*#__PURE__*/function () {\n function EventHost() {\n _classCallCheck(this, EventHost);\n\n this._silent_mode = false;\n this.listeners = {};\n }\n\n _createClass(EventHost, [{\n key: \"_silentStart\",\n value: function _silentStart() {\n this._silent_mode = true;\n }\n }, {\n key: \"_silentEnd\",\n value: function _silentEnd() {\n this._silent_mode = false;\n }\n }]);\n\n return EventHost;\n}();\n\nvar createEventStorage = function createEventStorage(obj) {\n var handlers = {};\n var index = 0;\n\n var eventStorage = function eventStorage() {\n var combinedResult = true;\n\n for (var i in handlers) {\n var handlerResult = handlers[i].apply(obj, arguments);\n combinedResult = combinedResult && handlerResult;\n }\n\n return combinedResult;\n };\n\n eventStorage.addEvent = function (handler, settings) {\n if (typeof handler == \"function\") {\n var handlerId;\n\n if (settings && settings.id) {\n handlerId = settings.id;\n } else {\n handlerId = index;\n index++;\n }\n\n if (settings && settings.once) {\n var originalHandler = handler;\n\n handler = function handler() {\n originalHandler();\n eventStorage.removeEvent(handlerId);\n };\n }\n\n handlers[handlerId] = handler;\n return handlerId;\n }\n\n return false;\n };\n\n eventStorage.removeEvent = function (id) {\n delete handlers[id];\n };\n\n eventStorage.clear = function () {\n handlers = {};\n };\n\n return eventStorage;\n};\n\nfunction makeEventable(obj) {\n var eventHost = new EventHost();\n\n obj.attachEvent = function (eventName, handler, settings) {\n eventName = 'ev_' + eventName.toLowerCase();\n\n if (!eventHost.listeners[eventName]) {\n eventHost.listeners[eventName] = createEventStorage(this);\n }\n\n if (settings && settings.thisObject) {\n handler = handler.bind(settings.thisObject);\n }\n\n var innerId = eventHost.listeners[eventName].addEvent(handler, settings);\n var handlerId = eventName + ':' + innerId; //return ID (ev_eventname:1)\n\n if (settings && settings.id) {\n handlerId = settings.id;\n }\n\n return handlerId;\n };\n\n obj.attachAll = function (callback) {\n this.attachEvent('listen_all', callback);\n };\n\n obj.callEvent = function (name, eventArguments) {\n if (eventHost._silent_mode) return true;\n var handlerName = 'ev_' + name.toLowerCase();\n var listeners = eventHost.listeners;\n\n if (listeners['ev_listen_all']) {\n listeners['ev_listen_all'].apply(this, [name].concat(eventArguments));\n }\n\n if (listeners[handlerName]) return listeners[handlerName].apply(this, eventArguments);\n return true;\n };\n\n obj.checkEvent = function (name) {\n var listeners = eventHost.listeners;\n return !!listeners['ev_' + name.toLowerCase()];\n };\n\n obj.detachEvent = function (id) {\n if (id) {\n var listeners = eventHost.listeners;\n\n for (var i in listeners) {\n listeners[i].removeEvent(id); //remove event\n }\n\n var list = id.split(':'); //get EventName and ID\n\n listeners = eventHost.listeners;\n\n if (list.length === 2) {\n var eventName = list[0];\n var eventId = list[1];\n\n if (listeners[eventName]) {\n listeners[eventName].removeEvent(eventId); //remove event\n }\n }\n }\n };\n\n obj.detachAllEvents = function () {\n for (var name in eventHost.listeners) {\n eventHost.listeners[name].clear();\n }\n };\n}\n\nexport default makeEventable;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport nav_bar from \"./nav_bar\";\nimport scheduler_resize_listener from \"./scheduler_resize_listener\";\nimport eventable from \"../utils/eventable\";\nexport default function extend(scheduler) {\n eventable(scheduler);\n nav_bar(scheduler);\n\n scheduler._detachDomEvent = function (el, event, handler) {\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, false);\n } else if (el.detachEvent) {\n el.detachEvent(\"on\" + event, handler);\n }\n };\n\n scheduler._init_once = function () {\n scheduler_resize_listener(scheduler);\n\n scheduler._init_once = function () {};\n };\n\n var layout = {\n \"navbar\": {\n render: function render(config) {\n return scheduler._init_nav_bar(config);\n }\n },\n \"header\": {\n render: function render(config) {\n var element = document.createElement(\"div\");\n element.className = \"dhx_cal_header\";\n return element;\n }\n },\n \"dataArea\": {\n render: function render(config) {\n var element = document.createElement(\"div\");\n element.className = \"dhx_cal_data\";\n return element;\n }\n },\n \"html_element\": {\n render: function render(config) {\n return config.html;\n }\n }\n };\n\n function hasSchedulerMarkup(element) {\n return !!(element.querySelector(\".dhx_cal_header\") && element.querySelector(\".dhx_cal_data\") && element.querySelector(\".dhx_cal_navline\"));\n }\n\n function createDefaultHeader(scheduler) {\n var views = [\"day\", \"week\", \"month\"];\n var date = [\"date\"];\n var nav = [\"prev\", \"today\", \"next\"];\n\n if (scheduler.matrix) {\n for (var i in scheduler.matrix) {\n views.push(i);\n }\n }\n\n if (scheduler._props) {\n for (var i in scheduler._props) {\n views.push(i);\n }\n }\n\n if (scheduler._grid && scheduler._grid.names) {\n for (var i in scheduler._grid.names) {\n views.push(i);\n }\n }\n\n var optionalViews = [\"map\", \"agenda\", \"week_agenda\", \"year\"];\n optionalViews.forEach(function (viewName) {\n if (scheduler[viewName + \"_view\"]) {\n views.push(viewName);\n }\n });\n return views.concat(date).concat(nav);\n }\n\n scheduler.init = function (id, date, mode) {\n if (this.$destroyed) {\n return; // not have errors when try to reinit destroyed scheduler\n }\n\n date = date || scheduler._currentDate();\n mode = mode || \"week\";\n\n if (this._obj) {\n this.unset_actions();\n }\n\n this._obj = typeof id == \"string\" ? document.getElementById(id) : id;\n this.$container = this._obj;\n this.$root = this._obj;\n\n if (!this.$container.offsetHeight && this.$container.offsetWidth && this.$container.style.height === \"100%\") {\n // scheduler container has zero height and non-zero width\n window.console.error(scheduler._commonErrorMessages.collapsedContainer(), this.$container);\n }\n\n if (this.config.wai_aria_attributes && this.config.wai_aria_application_role) {\n this.$container.setAttribute(\"role\", \"application\");\n }\n\n if (!this.config.header && !hasSchedulerMarkup(this.$container)) {\n // if no header config and no required markup - use the default header\n // so the scheduler could be initialized in an empty div\n this.config.header = createDefaultHeader(this);\n window.console.log([// jshint ignore:line\n \"Required DOM elements are missing from the scheduler container and **scheduler.config.header** is not specified.\", \"Using a default header configuration: \", \"scheduler.config.header = \" + JSON.stringify(this.config.header, null, 2), \"Check this article for the details: https://docs.dhtmlx.com/scheduler/initialization.html\"].join(\"\\n\")); // jshint ignore:line\n }\n\n if (this.config.header) {\n this.$container.innerHTML = \"\";\n this.$container.classList.add(\"dhx_cal_container\");\n\n if (this.config.header.height) {\n this.xy.nav_height = this.config.header.height;\n }\n\n this.$container.appendChild(layout.navbar.render(this.config.header));\n this.$container.appendChild(layout.header.render());\n this.$container.appendChild(layout.dataArea.render());\n } else {\n // if no header config provided - make sure scheduler container has all necessary elements\n if (!hasSchedulerMarkup(this.$container)) {\n throw new Error([\"Required DOM elements are missing from the scheduler container.\", \"Be sure to either specify them manually in the markup: https://docs.dhtmlx.com/scheduler/initialization.html#initializingschedulerviamarkup\", \"Or to use **scheduler.config.header** setting so they could be created automatically: https://docs.dhtmlx.com/scheduler/initialization.html#initializingschedulerviaheaderconfig\"].join(\"\\n\"));\n }\n }\n\n if (this.config.rtl) this.$container.className += \" dhx_cal_container_rtl\"; //hook for terrace skin\n\n if (this._skin_init) scheduler._skin_init();\n scheduler.date.init();\n this._scroll = true;\n this._quirks = this.$env.isIE && document.compatMode == \"BackCompat\";\n this._quirks7 = this.$env.isIE && navigator.appVersion.indexOf(\"MSIE 8\") == -1;\n this._els = [];\n this.get_elements();\n this.init_templates();\n this.set_actions();\n\n this._init_once();\n\n this._init_touch_events();\n\n this.set_sizes();\n scheduler.callEvent('onSchedulerReady', []);\n this.setCurrentView(date, mode);\n };\n\n scheduler.xy = {\n min_event_height: 40,\n scale_width: 50,\n scroll_width: 18,\n scale_height: 20,\n month_scale_height: 20,\n menu_width: 25,\n margin_top: 0,\n margin_left: 0,\n editor_width: 140,\n month_head_height: 22,\n event_header_height: 14\n };\n scheduler.keys = {\n edit_save: 13,\n edit_cancel: 27\n };\n\n scheduler.bind = function bind(functor, object) {\n if (functor.bind) return functor.bind(object);else return function () {\n return functor.apply(object, arguments);\n };\n };\n\n scheduler.set_sizes = function () {\n var w = this._x = this._obj.clientWidth - this.xy.margin_left;\n var h = this._y = this._obj.clientHeight - this.xy.margin_top; //not-table mode always has scroll - need to be fixed in future\n\n var scale_x = this._table_view ? 0 : this.xy.scale_width + this.xy.scroll_width;\n var scale_s = this._table_view ? -1 : this.xy.scale_width;\n var materialScalePlaceholder = this.$container.querySelector(\".dhx_cal_scale_placeholder\");\n\n if (scheduler._is_material_skin()) {\n if (!materialScalePlaceholder) {\n materialScalePlaceholder = document.createElement(\"div\");\n materialScalePlaceholder.className = \"dhx_cal_scale_placeholder\";\n this.$container.insertBefore(materialScalePlaceholder, this._els[\"dhx_cal_header\"][0]);\n }\n\n materialScalePlaceholder.style.display = \"block\";\n this.set_xy(materialScalePlaceholder, w, this.xy.scale_height + 1, 0, this.xy.nav_height + (this._quirks ? -1 : 1));\n } else {\n if (materialScalePlaceholder) {\n materialScalePlaceholder.parentNode.removeChild(materialScalePlaceholder);\n }\n }\n\n if (this._lightbox) {\n if (scheduler.$container.offsetWidth < 1200) {} else {\n this._setLbPosition(document.querySelector(\".dhx_cal_light\"));\n }\n }\n\n this.set_xy(this._els[\"dhx_cal_navline\"][0], w, this.xy.nav_height, 0, 0);\n this.set_xy(this._els[\"dhx_cal_header\"][0], w - scale_x, this.xy.scale_height, scale_s, this.xy.nav_height + (this._quirks ? -1 : 1)); //to support alter-skin, we need a way to alter height directly from css\n\n var actual_height = this._els[\"dhx_cal_navline\"][0].offsetHeight;\n if (actual_height > 0) this.xy.nav_height = actual_height;\n var data_y = this.xy.scale_height + this.xy.nav_height + (this._quirks ? -2 : 0);\n this.set_xy(this._els[\"dhx_cal_data\"][0], w, h - (data_y + 2), 0, data_y + 2);\n };\n\n scheduler.set_xy = function (node, w, h, x, y) {\n var direction = 'left';\n node.style.width = Math.max(0, w) + \"px\";\n node.style.height = Math.max(0, h) + \"px\";\n\n if (arguments.length > 3) {\n if (this.config.rtl) direction = 'right';\n node.style[direction] = x + \"px\";\n node.style.top = y + \"px\";\n }\n };\n\n scheduler.get_elements = function () {\n //get all child elements as named hash\n var els = this._obj.getElementsByTagName(\"DIV\");\n\n for (var i = 0; i < els.length; i++) {\n var class_name = scheduler._getClassName(els[i]);\n\n var attr_value = els[i].getAttribute(\"data-tab\") || els[i].getAttribute(\"name\") || \"\";\n if (class_name) class_name = class_name.split(\" \")[0];\n if (!this._els[class_name]) this._els[class_name] = [];\n\n this._els[class_name].push(els[i]); //check if name need to be changed\n // scheduler.locale.labels[attr_value+\"_tab\"] - to fix getting labels for data-tab\n\n\n var label = scheduler.locale.labels[attr_value + \"_tab\"] || scheduler.locale.labels[attr_value || class_name];\n if (typeof label !== \"string\" && attr_value && !els[i].innerHTML) label = attr_value.split(\"_\")[0];\n\n if (label) {\n this._waiAria.labelAttr(els[i], label);\n\n els[i].innerHTML = label;\n }\n }\n };\n\n var domEventsScope = scheduler._createDomEventScope();\n\n scheduler.unset_actions = function () {\n domEventsScope.detachAll();\n };\n\n scheduler.set_actions = function () {\n for (var a in this._els) {\n if (this._click[a]) {\n for (var i = 0; i < this._els[a].length; i++) {\n var element = this._els[a][i];\n\n var handler = this._click[a].bind(element);\n\n domEventsScope.attach(element, \"click\", handler);\n }\n }\n }\n\n domEventsScope.attach(this._obj, \"selectstart\", function (e) {\n e.preventDefault();\n return false;\n }); //this._obj.onselectstart=function(e){ return false; };\n\n domEventsScope.attach(this._obj, \"mousemove\", function (e) {\n if (!scheduler._temp_touch_block) scheduler._on_mouse_move(e);\n });\n domEventsScope.attach(this._obj, \"mousedown\", function (e) {\n if (!scheduler._ignore_next_click) scheduler._on_mouse_down(e);\n });\n domEventsScope.attach(this._obj, \"mouseup\", function (e) {\n if (!scheduler._ignore_next_click) scheduler._on_mouse_up(e);\n });\n domEventsScope.attach(this._obj, \"dblclick\", function (e) {\n scheduler._on_dbl_click(e);\n });\n domEventsScope.attach(this._obj, \"contextmenu\", function (e) {\n var ev = e;\n var src = ev.target || ev.srcElement;\n var returnValue = scheduler.callEvent(\"onContextMenu\", [scheduler._locate_event(src), ev]);\n return returnValue;\n });\n };\n\n scheduler.select = function (id) {\n if (this._select_id == id) return;\n\n scheduler._close_not_saved();\n\n this.editStop(false);\n\n if (this._select_id) {\n this.unselect();\n }\n\n this._select_id = id;\n this.updateEvent(id);\n this.callEvent(\"onEventSelected\", [id]);\n };\n\n scheduler.unselect = function (id) {\n if (id && id != this._select_id) return;\n var t = this._select_id;\n this._select_id = null;\n if (t && this.getEvent(t)) this.updateEvent(t);\n this.callEvent(\"onEventUnselected\", [t]);\n };\n\n scheduler.getState = function () {\n return {\n mode: this._mode,\n date: new Date(this._date),\n min_date: new Date(this._min_date),\n max_date: new Date(this._max_date),\n editor_id: this._edit_id,\n lightbox_id: this._lightbox_id,\n new_event: this._new_event,\n select_id: this._select_id,\n expanded: this.expanded,\n drag_id: this._drag_id,\n drag_mode: this._drag_mode\n };\n };\n\n scheduler._click = {\n dhx_cal_data: function dhx_cal_data(e) {\n //in case of touch disable click processing\n if (scheduler._ignore_next_click) {\n if (e.preventDefault) e.preventDefault();\n e.cancelBubble = true;\n scheduler._ignore_next_click = false;\n return false;\n }\n\n var trg = e.target;\n\n var id = scheduler._locate_event(trg);\n\n if (!id) {\n scheduler.callEvent(\"onEmptyClick\", [scheduler.getActionData(e).date, e]);\n } else {\n if (!scheduler.callEvent(\"onClick\", [id, e]) || scheduler.config.readonly) return;\n }\n\n if (id && scheduler.config.select) {\n scheduler.select(id);\n\n var mask = scheduler._getClassName(trg);\n\n if (mask.indexOf(\"_icon\") != -1) scheduler._click.buttons[mask.split(\" \")[1].replace(\"icon_\", \"\")](id);\n } else {\n scheduler._close_not_saved();\n\n if (scheduler.getState().select_id && new Date().valueOf() - (scheduler._new_event || 0) > 500) {\n scheduler.unselect();\n }\n }\n },\n dhx_cal_prev_button: function dhx_cal_prev_button() {\n scheduler._click.dhx_cal_next_button(0, -1);\n },\n dhx_cal_next_button: function dhx_cal_next_button(dummy, step) {\n var def_step = 1;\n\n if (scheduler.config.rtl) {\n step = -step;\n def_step = -def_step;\n }\n\n scheduler.setCurrentView(scheduler.date.add( //next line changes scheduler._date , but seems it has not side-effects\n scheduler.date[scheduler._mode + \"_start\"](new Date(scheduler._date)), step || def_step, scheduler._mode));\n },\n dhx_cal_today_button: function dhx_cal_today_button() {\n if (scheduler.callEvent(\"onBeforeTodayDisplayed\", [])) {\n scheduler.setCurrentView(scheduler._currentDate());\n }\n },\n dhx_cal_tab: function dhx_cal_tab() {\n var name = this.getAttribute(\"data-tab\");\n var deprecated_name = this.getAttribute(\"name\");\n var mode = name || deprecated_name.substring(0, deprecated_name.search(\"_tab\"));\n scheduler.setCurrentView(scheduler._date, mode);\n },\n buttons: {\n \"delete\": function _delete(id) {\n var c = scheduler.locale.labels.confirm_deleting;\n\n scheduler._dhtmlx_confirm(c, scheduler.locale.labels.title_confirm_deleting, function () {\n scheduler.deleteEvent(id);\n });\n },\n edit: function edit(id) {\n scheduler.edit(id);\n },\n save: function save(id) {\n scheduler.editStop(true);\n },\n details: function details(id) {\n scheduler.showLightbox(id);\n },\n cancel: function cancel(id) {\n scheduler.editStop(false);\n }\n }\n };\n\n scheduler._dhtmlx_confirm = function (message, title, callback) {\n if (!message) return callback();\n var opts = {\n text: message\n };\n if (title) opts.title = title;\n\n if (callback) {\n opts.callback = function (result) {\n if (result) callback();\n };\n }\n\n scheduler.confirm(opts);\n };\n\n scheduler.addEventNow = function (start, end, e) {\n var base = {};\n\n if (scheduler._isObject(start) && !scheduler._isDate(start)) {\n base = start;\n start = null;\n }\n\n var d = (this.config.event_duration || this.config.time_step) * 60000;\n if (!start) start = base.start_date || Math.round(scheduler._currentDate().valueOf() / d) * d;\n var start_date = new Date(start);\n\n if (!end) {\n var start_hour = this.config.first_hour;\n\n if (start_hour > start_date.getHours()) {\n start_date.setHours(start_hour);\n start = start_date.valueOf();\n }\n\n end = start.valueOf() + d;\n }\n\n var end_date = new Date(end); // scheduler.addEventNow(new Date(), new Date()) + collision though get_visible events defect (such event was not retrieved)\n\n if (start_date.valueOf() == end_date.valueOf()) end_date.setTime(end_date.valueOf() + d);\n base.start_date = base.start_date || start_date;\n base.end_date = base.end_date || end_date;\n base.text = base.text || this.locale.labels.new_event;\n base.id = this._drag_id = base.id || this.uid();\n this._drag_mode = \"new-size\";\n this._loading = true;\n var eventId = this.addEvent(base);\n this.callEvent(\"onEventCreated\", [this._drag_id, e]);\n this._loading = false;\n this._drag_event = {}; //dummy , to trigger correct event updating logic\n\n this._on_mouse_up(e);\n\n return eventId;\n };\n\n scheduler._on_dbl_click = function (e, src) {\n src = src || e.target || e.srcElement;\n if (this.config.readonly) return;\n\n var name = scheduler._getClassName(src).split(\" \")[0];\n\n switch (name) {\n case \"dhx_scale_holder\":\n case \"dhx_scale_holder_now\":\n case \"dhx_month_body\":\n case \"dhx_wa_day_data\":\n if (!scheduler.config.dblclick_create) break;\n this.addEventNow(this.getActionData(e).date, null, e);\n break;\n\n case \"dhx_cal_event\":\n case \"dhx_wa_ev_body\":\n case \"dhx_agenda_line\":\n case \"dhx_grid_event\":\n case \"dhx_cal_event_line\":\n case \"dhx_cal_event_clear\":\n var id = this._locate_event(src);\n\n if (!this.callEvent(\"onDblClick\", [id, e])) return;\n if (this.config.details_on_dblclick || this._table_view || !this.getEvent(id)._timed || !this.config.select) this.showLightbox(id);else this.edit(id);\n break;\n\n case \"dhx_time_block\":\n case \"dhx_cal_container\":\n return;\n\n default:\n var t = this[\"dblclick_\" + name];\n\n if (t) {\n t.call(this, e);\n } else {\n if (src.parentNode && src != this) return scheduler._on_dbl_click(e, src.parentNode);\n }\n\n break;\n }\n }; //column index by mouse x-coordinate\n\n\n scheduler._get_column_index = function (x_pos) {\n var column = 0;\n\n if (this._cols) {\n var width = 0;\n var i = 0;\n\n while (width + this._cols[i] < x_pos && i < this._cols.length) {\n width += this._cols[i];\n i++;\n }\n\n column = i + (this._cols[i] ? (x_pos - width) / this._cols[i] : 0);\n\n if (this._ignores) {\n if (column >= this._cols.length) {\n while (column >= 1 && this._ignores[Math.floor(column)]) {\n column--;\n }\n }\n }\n }\n\n return column;\n }; //transform mouse coordinates to day-time indexes of week based view\n\n\n scheduler._week_indexes_from_pos = function (pos) {\n //\"get position\" can be invoked before columns are loaded into the units view(e.g. by onMouseMove handler in key_nav.js)\n if (!this._cols) {\n return pos;\n } else {\n var column = this._get_column_index(pos.x);\n\n pos.x = Math.min(this._cols.length - 1, Math.max(0, Math.ceil(column) - 1));\n pos.y = Math.max(0, Math.ceil(pos.y * 60 / (this.config.time_step * this.config.hour_size_px)) - 1) + this.config.first_hour * (60 / this.config.time_step);\n return pos;\n }\n };\n\n scheduler._mouse_coords = function (ev) {\n var pos;\n var b = document.body;\n var d = document.documentElement;\n if (!this.$env.isIE && (ev.pageX || ev.pageY)) pos = {\n x: ev.pageX,\n y: ev.pageY\n };else pos = {\n x: ev.clientX + (b.scrollLeft || d.scrollLeft || 0) - b.clientLeft,\n y: ev.clientY + (b.scrollTop || d.scrollTop || 0) - b.clientTop\n }; //apply layout\n\n if (this.config.rtl && this._colsS) {\n pos.x = this.$container.querySelector(\".dhx_cal_data\").offsetWidth - pos.x;\n\n if (this._mode !== \"month\") {\n pos.x -= this.xy.scale_width;\n }\n } else {\n pos.x -= this.$domHelpers.getAbsoluteLeft(this._obj) + (this._table_view ? 0 : this.xy.scale_width);\n }\n\n var dataArea = this.$container.querySelector(\".dhx_cal_data\"); //pos.y-=this.$domHelpers.getAbsoluteTop(this._obj)+this.xy.nav_height+(this._dy_shift||0)+this.xy.scale_height-this._els[\"dhx_cal_data\"][0].scrollTop;\n\n pos.y -= this.$domHelpers.getAbsoluteTop(dataArea) - this._els[\"dhx_cal_data\"][0].scrollTop;\n pos.ev = ev;\n var handler = this[\"mouse_\" + this._mode];\n\n if (handler) {\n pos = handler.call(this, pos);\n } else {\n //transform to date\n if (!this._table_view) {\n pos = this._week_indexes_from_pos(pos);\n } else {\n var column = this._get_column_index(pos.x);\n\n if (!this._cols || !this._colsS) // agenda/map views\n return pos;\n var dy = 0;\n\n for (dy = 1; dy < this._colsS.heights.length; dy++) {\n if (this._colsS.heights[dy] > pos.y) break;\n }\n\n pos.y = Math.ceil((Math.max(0, column) + Math.max(0, dy - 1) * 7) * 24 * 60 / this.config.time_step);\n if (scheduler._drag_mode || this._mode == \"month\") pos.y = (Math.max(0, Math.ceil(column) - 1) + Math.max(0, dy - 1) * 7) * 24 * 60 / this.config.time_step; //we care about ignored days only during event moving in month view\n\n if (this._drag_mode == \"move\") {\n if (scheduler._ignores_detected && scheduler.config.preserve_length) {\n pos._ignores = true; //get real lengtn of event\n\n if (!this._drag_event._event_length) this._drag_event._event_length = this._get_real_event_length(this._drag_event.start_date, this._drag_event.end_date, {\n x_step: 1,\n x_unit: \"day\"\n });\n }\n }\n\n pos.x = 0;\n }\n }\n\n pos.timestamp = +new Date();\n return pos;\n };\n\n scheduler._close_not_saved = function () {\n if (new Date().valueOf() - (scheduler._new_event || 0) > 500 && scheduler._edit_id) {\n var c = scheduler.locale.labels.confirm_closing;\n\n scheduler._dhtmlx_confirm(c, scheduler.locale.labels.title_confirm_closing, function () {\n scheduler.editStop(scheduler.config.positive_closing);\n });\n\n if (c) {\n this._drag_id = this._drag_pos = this._drag_mode = null;\n }\n }\n };\n\n scheduler._correct_shift = function (start, back) {\n return start -= (new Date(scheduler._min_date).getTimezoneOffset() - new Date(start).getTimezoneOffset()) * 60000 * (back ? -1 : 1);\n };\n\n scheduler._is_pos_changed = function (old_pos, new_pos) {\n function diff(old_val, new_val, acc) {\n return !!(Math.abs(old_val - new_val) > acc);\n }\n\n if (!(old_pos && this._drag_pos)) {\n return true;\n }\n\n var delay = 100,\n d_pos = 5; // start drag only if passed some time since mouse down, or if mouse position changed sufficiently\n\n return !!(this._drag_pos.has_moved || !this._drag_pos.timestamp || new_pos.timestamp - this._drag_pos.timestamp > delay || diff(old_pos.ev.clientX, new_pos.ev.clientX, d_pos) || diff(old_pos.ev.clientY, new_pos.ev.clientY, d_pos));\n };\n\n scheduler._correct_drag_start_date = function (start) {\n var obj;\n if (scheduler.matrix) obj = scheduler.matrix[scheduler._mode];\n obj = obj || {\n x_step: 1,\n x_unit: \"day\"\n };\n start = new Date(start);\n var len = 1;\n if (obj._start_correction || obj._end_correction) len = (obj.last_hour || 0) * 60 - (start.getHours() * 60 + start.getMinutes()) || 1;\n return start * 1 + (scheduler._get_fictional_event_length(start, len, obj) - len);\n };\n\n scheduler._correct_drag_end_date = function (start, duration) {\n var obj;\n if (scheduler.matrix) obj = scheduler.matrix[scheduler._mode];\n obj = obj || {\n x_step: 1,\n x_unit: \"day\"\n };\n\n var end = start * 1 + scheduler._get_fictional_event_length(start, duration, obj);\n\n return new Date(end * 1 - (scheduler._get_fictional_event_length(end, -1, obj, -1) + 1));\n };\n\n scheduler._on_mouse_move = function (e) {\n if (this._drag_mode) {\n var pos = this._mouse_coords(e);\n\n if (this._is_pos_changed(this._drag_pos, pos)) {\n var start, end;\n if (this._edit_id != this._drag_id) this._close_not_saved();\n if (!this._drag_mode) return;\n var mousedownPos = null;\n\n if (this._drag_pos && !this._drag_pos.has_moved) {\n mousedownPos = this._drag_pos;\n mousedownPos.has_moved = true;\n }\n\n this._drag_pos = pos;\n this._drag_pos.has_moved = true;\n\n if (this._drag_mode == \"create\") {\n // use mouse down position as a starting point for drag-create\n if (mousedownPos) {\n pos = mousedownPos;\n }\n\n this._close_not_saved();\n\n this.unselect(this._select_id);\n this._loading = true; //will be ignored by dataprocessor\n\n start = this._get_date_from_pos(pos).valueOf();\n\n if (!this._drag_start) {\n var res = this.callEvent(\"onBeforeEventCreated\", [e, this._drag_id]);\n\n if (!res) {\n this._loading = false;\n return;\n }\n\n this._loading = false;\n this._drag_start = start;\n return;\n }\n\n end = start;\n\n if (end == this._drag_start) {}\n\n var start_date = new Date(this._drag_start);\n var end_date = new Date(end);\n\n if ((this._mode == \"day\" || this._mode == \"week\") && start_date.getHours() == end_date.getHours() && start_date.getMinutes() == end_date.getMinutes()) {\n end_date = new Date(this._drag_start + 1000);\n }\n\n this._drag_id = this.uid();\n this.addEvent(start_date, end_date, this.locale.labels.new_event, this._drag_id, pos.fields);\n this.callEvent(\"onEventCreated\", [this._drag_id, e]);\n this._loading = false;\n this._drag_mode = \"new-size\";\n }\n\n var timeStep = this.config.time_step;\n var ev = this.getEvent(this._drag_id);\n var obj;\n if (scheduler.matrix) obj = scheduler.matrix[scheduler._mode];\n obj = obj || {\n x_step: 1,\n x_unit: \"day\"\n };\n\n if (this._drag_mode == \"move\") {\n start = this._min_date.valueOf() + (pos.y * this.config.time_step + pos.x * 24 * 60) * 60000;\n\n if (!pos.custom && this._table_view) {\n start += this.date.time_part(ev.start_date) * 1000;\n }\n\n if (!this._table_view && this._dragEventBody && this._drag_event._move_event_shift === undefined) {\n this._drag_event._move_event_shift = start - ev.start_date;\n }\n\n if (this._drag_event._move_event_shift) {\n start -= this._drag_event._move_event_shift;\n }\n\n start = this._correct_shift(start);\n\n if (pos._ignores && this.config.preserve_length && this._table_view) {\n start = scheduler._correct_drag_start_date(start);\n end = scheduler._correct_drag_end_date(start, this._drag_event._event_length);\n } else end = ev.end_date.valueOf() - (ev.start_date.valueOf() - start);\n } else {\n // resize\n start = ev.start_date.valueOf();\n end = ev.end_date.valueOf();\n\n if (this._table_view) {\n var resize_date = this._min_date.valueOf() + pos.y * this.config.time_step * 60000 + (pos.custom ? 0 : 24 * 60 * 60000);\n\n if (this._mode == \"month\") {\n resize_date = this._correct_shift(resize_date, false);\n\n if (this._drag_from_start) {\n var day = 24 * 60 * 60000;\n if (resize_date <= scheduler.date.date_part(new Date(end + day - 1)).valueOf()) // to get end time as 23:59:59 and then the day start\n start = resize_date - day;\n } else {\n end = resize_date;\n }\n } else {\n if (this.config.preserve_length) {\n if (pos.resize_from_start) {\n start = scheduler._correct_drag_start_date(resize_date);\n } else {\n end = scheduler._correct_drag_end_date(resize_date, 0);\n }\n } else {\n if (pos.resize_from_start) {\n start = resize_date;\n } else {\n end = resize_date;\n }\n }\n }\n } else {\n var end_day_start = this.date.date_part(new Date(ev.end_date.valueOf() - 1)).valueOf();\n var end_day_date = new Date(end_day_start);\n var firstHour = this.config.first_hour;\n var lastHour = this.config.last_hour;\n var maxY = (lastHour - firstHour) * (60 / timeStep);\n this.config.time_step = 1;\n\n var precisePos = this._mouse_coords(e);\n\n this.config.time_step = timeStep;\n var minDate = pos.y * timeStep * 60000;\n var maxDate = Math.min(pos.y + 1, maxY) * timeStep * 60000;\n var preciseDate = precisePos.y * 60000; // rounding end date to the closest time step\n\n if (Math.abs(minDate - preciseDate) > Math.abs(maxDate - preciseDate)) {\n end = end_day_start + maxDate;\n } else {\n end = end_day_start + minDate;\n }\n\n end = end + (new Date(end).getTimezoneOffset() - end_day_date.getTimezoneOffset()) * 60000;\n this._els[\"dhx_cal_data\"][0].style.cursor = \"s-resize\";\n if (this._mode == \"week\" || this._mode == \"day\") end = this._correct_shift(end);\n }\n\n if (this._drag_mode == \"new-size\") {\n if (end <= this._drag_start) {\n var shift = pos.shift || (this._table_view && !pos.custom ? 24 * 60 * 60000 : 0);\n start = end - (pos.shift ? 0 : shift);\n end = this._drag_start + (shift || timeStep * 60000);\n } else {\n start = this._drag_start;\n }\n } else {\n if (end <= start) end = start + timeStep * 60000;\n }\n }\n\n var new_end = new Date(end - 1);\n var new_start = new Date(start); //deny drag out of visible scheduler scale in timeline view\n\n if (this._drag_mode == \"move\" && scheduler.config.limit_drag_out && (+new_start < +scheduler._min_date || +end > +scheduler._max_date)) {\n if (+ev.start_date < +scheduler._min_date || +ev.end_date > +scheduler._max_date) {\n // not move event if it's already outside time scale\n new_start = new Date(ev.start_date);\n end = new Date(ev.end_date);\n } else {\n var duration = end - new_start;\n\n if (+new_start < +scheduler._min_date) {\n new_start = new Date(scheduler._min_date);\n\n if (pos._ignores && this.config.preserve_length && this._table_view) {\n new_start = new Date(scheduler._correct_drag_start_date(new_start));\n if (obj._start_correction) new_start = new Date(new_start.valueOf() + obj._start_correction);\n end = new Date(new_start * 1 + this._get_fictional_event_length(new_start, this._drag_event._event_length, obj));\n } else {\n end = new Date(+new_start + duration);\n }\n } else {\n end = new Date(scheduler._max_date);\n\n if (pos._ignores && this.config.preserve_length && this._table_view) {\n if (obj._end_correction) end = new Date(end.valueOf() - obj._end_correction);\n end = new Date(end * 1 - this._get_fictional_event_length(end, 0, obj, true));\n new_start = new Date(end * 1 - this._get_fictional_event_length(end, this._drag_event._event_length, obj, true));\n\n if (this._ignores_detected) {\n new_start = scheduler.date.add(new_start, obj.x_step, obj.x_unit);\n end = new Date(end * 1 - this._get_fictional_event_length(end, 0, obj, true));\n end = scheduler.date.add(end, obj.x_step, obj.x_unit);\n }\n } else {\n new_start = new Date(+end - duration);\n }\n }\n }\n\n var new_end = new Date(end - 1);\n } // fix event dates when resized to bottom of the column (day/week views)\n\n\n if (!this._table_view && this._dragEventBody && !scheduler.config.all_timed && (!scheduler._get_section_view() && pos.x != this._get_event_sday({\n start_date: new Date(start),\n end_date: new Date(start)\n }) || new Date(start).getHours() < this.config.first_hour)) {\n var duration = end - new_start;\n\n if (this._drag_mode == \"move\") {\n var day = this._min_date.valueOf() + pos.x * 24 * 60 * 60000;\n new_start = new Date(day);\n new_start.setHours(this.config.first_hour);\n end = new Date(new_start.valueOf() + duration);\n new_end = new Date(end - 1);\n }\n } // fix event dates when resized to bottom of the column (day/week views)\n\n\n if (!this._table_view && !scheduler.config.all_timed && (!scheduler.getView() && pos.x != this._get_event_sday({\n start_date: new Date(end),\n end_date: new Date(end)\n }) || new Date(end).getHours() >= this.config.last_hour)) {\n var duration = end - new_start;\n var day = this._min_date.valueOf() + pos.x * 24 * 60 * 60000;\n end = scheduler.date.date_part(new Date(day));\n end.setHours(this.config.last_hour);\n new_end = new Date(end - 1);\n\n if (this._drag_mode == \"move\") {\n new_start = new Date(+end - duration);\n }\n } //prevent out-of-borders situation for day|week view\n\n\n if (this._table_view || new_end.getDate() == new_start.getDate() && new_end.getHours() < this.config.last_hour || scheduler._allow_dnd) {\n ev.start_date = new_start;\n ev.end_date = new Date(end);\n\n if (this.config.update_render) {\n //fix for repaint after dnd and scroll issue, #231\n var sx = scheduler._els[\"dhx_cal_data\"][0].scrollTop;\n this.update_view();\n scheduler._els[\"dhx_cal_data\"][0].scrollTop = sx;\n } else this.updateEvent(this._drag_id);\n }\n\n if (this._table_view) {\n this.for_rendered(this._drag_id, function (r) {\n r.className += \" dhx_in_move dhx_cal_event_drag\";\n });\n }\n\n this.callEvent(\"onEventDrag\", [this._drag_id, this._drag_mode, e]);\n }\n } else {\n if (scheduler.checkEvent(\"onMouseMove\")) {\n var id = this._locate_event(e.target || e.srcElement);\n\n this.callEvent(\"onMouseMove\", [id, e]);\n }\n }\n };\n\n scheduler._on_mouse_down = function (e, src) {\n // on Mac we do not get onmouseup event when clicking right mouse button leaving us in dnd state\n // let's ignore right mouse button then\n if (e.button == 2) return;\n if (this.config.readonly || this._drag_mode) return;\n src = src || e.target || e.srcElement;\n\n var classname = scheduler._getClassName(src).split(\" \")[0];\n\n if (this.config.drag_event_body && classname == \"dhx_body\") {\n if (src.parentNode && src.parentNode.className.indexOf(\"dhx_cal_select_menu\") === -1) {\n classname = \"dhx_event_move\";\n this._dragEventBody = true;\n }\n }\n\n switch (classname) {\n case \"dhx_cal_event_line\":\n case \"dhx_cal_event_clear\":\n if (this._table_view) this._drag_mode = \"move\"; //item in table mode\n\n break;\n\n case \"dhx_event_move\":\n case \"dhx_wa_ev_body\":\n this._drag_mode = \"move\";\n break;\n\n case \"dhx_event_resize\":\n this._drag_mode = \"resize\";\n\n var fullClass = scheduler._getClassName(src);\n\n if (fullClass.indexOf(\"dhx_event_resize_end\") < 0) {\n scheduler._drag_from_start = true;\n } else {\n scheduler._drag_from_start = false;\n }\n\n break;\n\n case \"dhx_scale_holder\":\n case \"dhx_scale_holder_now\":\n case \"dhx_month_body\":\n case \"dhx_matrix_cell\":\n case \"dhx_marked_timespan\":\n this._drag_mode = \"create\";\n break;\n\n case \"\":\n if (src.parentNode) return scheduler._on_mouse_down(e, src.parentNode);\n break;\n\n default:\n if (!scheduler.checkEvent(\"onMouseDown\") || scheduler.callEvent(\"onMouseDown\", [classname, e])) {\n if (src.parentNode && src != this && classname != \"dhx_body\") {\n return scheduler._on_mouse_down(e, src.parentNode);\n }\n }\n\n this._drag_mode = null;\n this._drag_id = null;\n break;\n }\n\n if (this._drag_mode) {\n var id = this._locate_event(src);\n\n if (!this.config[\"drag_\" + this._drag_mode] || !this.callEvent(\"onBeforeDrag\", [id, this._drag_mode, e])) this._drag_mode = this._drag_id = 0;else {\n this._drag_id = id;\n if (this._edit_id != this._drag_id || this._edit_id && this._drag_mode == \"create\") this._close_not_saved();\n if (!this._drag_mode) return;\n this._drag_event = scheduler._lame_clone(this.getEvent(this._drag_id) || {});\n this._drag_pos = this._mouse_coords(e);\n }\n }\n\n this._drag_start = null;\n };\n\n scheduler._get_private_properties = function (event) {\n var fields = {};\n\n for (var i in event) {\n if (i.indexOf(\"_\") === 0) {\n fields[i] = true;\n }\n }\n\n return fields;\n };\n\n scheduler._clear_temporary_properties = function (clean, flagged_event) {\n var initial = this._get_private_properties(clean);\n\n var current_state = this._get_private_properties(flagged_event);\n\n for (var i in current_state) {\n if (!initial[i]) {\n delete flagged_event[i];\n }\n }\n };\n\n scheduler._on_mouse_up = function (e) {\n if (e && e.button == 2 && this._mobile) return;\n\n if (this._drag_mode && this._drag_id) {\n this._els[\"dhx_cal_data\"][0].style.cursor = \"default\"; //drop\n\n var drag_id = this._drag_id;\n var mode = this._drag_mode;\n var moved = !this._drag_pos || this._drag_pos.has_moved;\n delete this._drag_event._move_event_shift;\n var ev = this.getEvent(this._drag_id);\n\n if (moved && (this._drag_event._dhx_changed || !this._drag_event.start_date || ev.start_date.valueOf() != this._drag_event.start_date.valueOf() || ev.end_date.valueOf() != this._drag_event.end_date.valueOf())) {\n var is_new = this._drag_mode == \"new-size\";\n\n if (!this.callEvent(\"onBeforeEventChanged\", [ev, e, is_new, this._drag_event])) {\n if (is_new) this.deleteEvent(ev.id, true);else {\n this._drag_event._dhx_changed = false;\n\n this._clear_temporary_properties(ev, this._drag_event);\n\n scheduler._lame_copy(ev, this._drag_event);\n\n this.updateEvent(ev.id);\n }\n } else {\n this._drag_id = this._drag_mode = null;\n\n if (is_new && this.config.edit_on_create) {\n this.unselect();\n this._new_event = new Date(); //timestamp of creation\n //if selection disabled - force lightbox usage\n\n if (this._table_view || this.config.details_on_create || !this.config.select || !this.isOneDayEvent(this.getEvent(drag_id))) {\n scheduler.callEvent(\"onDragEnd\", [drag_id, mode, e]);\n return this.showLightbox(drag_id);\n }\n\n this._drag_pos = true; //set flag to trigger full redraw\n\n this._select_id = this._edit_id = drag_id;\n } else {\n if (!this._new_event) this.callEvent(is_new ? \"onEventAdded\" : \"onEventChanged\", [drag_id, this.getEvent(drag_id)]);\n }\n }\n }\n\n if (this._drag_pos && (this._drag_pos.has_moved || this._drag_pos === true)) {\n this._drag_id = this._drag_mode = null; // set null to prevent _sorder recalculation for drag event\n\n this.render_view_data(); //redraw even if there is no real changes - necessary for correct positioning item after drag\n }\n\n scheduler.callEvent(\"onDragEnd\", [drag_id, mode, e]);\n }\n\n this._drag_id = null;\n this._drag_mode = null;\n this._drag_pos = null;\n };\n\n scheduler._trigger_dyn_loading = function () {\n if (this._load_mode && this._load()) {\n this._render_wait = true;\n return true;\n } else {\n return false;\n }\n };\n\n scheduler.update_view = function () {\n this._reset_ignores();\n\n this._update_nav_bar(this.config.header, this.$container.querySelector(\".dhx_cal_navline\"));\n\n var view = this[this._mode + \"_view\"];\n\n if (view) {\n view.call(this, true);\n } else {\n this._reset_scale();\n }\n\n if (this._trigger_dyn_loading()) {\n return true;\n }\n\n this.render_view_data();\n };\n\n scheduler.isViewExists = function (mode) {\n return !!(scheduler[mode + \"_view\"] || scheduler.date[mode + \"_start\"] && scheduler.templates[mode + \"_date\"] && scheduler.templates[mode + \"_scale_date\"]);\n };\n\n scheduler._set_aria_buttons_attrs = function () {\n var buttonGroups = [\"dhx_cal_next_button\", \"dhx_cal_prev_button\", \"dhx_cal_tab\", \"dhx_cal_today_button\"];\n\n for (var i = 0; i < buttonGroups.length; i++) {\n var group = this._els[buttonGroups[i]];\n\n for (var j = 0; group && j < group.length; j++) {\n var name = group[j].getAttribute(\"data-tab\") || group[j].getAttribute(\"name\");\n var label = this.locale.labels[buttonGroups[i]];\n\n if (name) {\n label = this.locale.labels[name + \"_tab\"] || this.locale.labels[name] || label;\n }\n\n if (buttonGroups[i] == \"dhx_cal_next_button\") {\n label = this.locale.labels.next;\n } else if (buttonGroups[i] == \"dhx_cal_prev_button\") {\n label = this.locale.labels.prev;\n }\n\n this._waiAria.headerButtonsAttributes(group[j], label || \"\");\n }\n }\n };\n\n scheduler.updateView = function (date, mode) {\n if (!this.$container) {\n throw new Error(\"The scheduler is not initialized. \\n **scheduler.updateView** or **scheduler.setCurrentView** can be called only after **scheduler.init**\");\n }\n\n date = date || this._date;\n mode = mode || this._mode;\n var dhx_cal_data = 'dhx_cal_data';\n var container = this._obj;\n var oldClass = \"dhx_scheduler_\" + this._mode;\n var newClass = \"dhx_scheduler_\" + mode;\n\n if (!this._mode || container.className.indexOf(oldClass) == -1) {\n container.className += \" \" + newClass;\n } else {\n container.className = container.className.replace(oldClass, newClass);\n }\n\n var dhx_multi_day = 'dhx_multi_day';\n var prev_scroll = this._mode == mode && this.config.preserve_scroll ? this._els[dhx_cal_data][0].scrollTop : false; // saving current scroll\n\n var multidayScroll;\n\n if (this._els[dhx_multi_day] && this._els[dhx_multi_day][0]) {\n multidayScroll = this._els[dhx_multi_day][0].scrollTop;\n } //hide old custom view\n\n\n if (this[this._mode + \"_view\"] && mode && this._mode != mode) this[this._mode + \"_view\"](false);\n\n this._close_not_saved();\n\n if (this._els[dhx_multi_day]) {\n this._els[dhx_multi_day][0].parentNode.removeChild(this._els[dhx_multi_day][0]);\n\n this._els[dhx_multi_day] = null;\n }\n\n this._mode = mode;\n this._date = date;\n this._table_view = this._mode == \"month\";\n this._dy_shift = 0; //correction for multiday section in week/day views\n //show new view\n\n this.update_view();\n\n this._set_aria_buttons_attrs();\n\n var tabs = this._els[\"dhx_cal_tab\"];\n\n if (tabs) {\n //calendar can work without view tabs\n for (var i = 0; i < tabs.length; i++) {\n var tab = tabs[i];\n\n if (tab.getAttribute(\"data-tab\") == this._mode || tab.getAttribute(\"name\") == this._mode + \"_tab\") {\n tab.classList.add(\"active\");\n\n this._waiAria.headerToggleState(tab, true);\n } else {\n tab.classList.remove(\"active\");\n\n this._waiAria.headerToggleState(tab, false);\n }\n }\n }\n\n if (typeof prev_scroll == \"number\") // if we are updating or working with the same view scrollTop should be saved\n this._els[dhx_cal_data][0].scrollTop = prev_scroll; // restoring original scroll\n\n if (typeof multidayScroll == \"number\" && this._els[dhx_multi_day] && this._els[dhx_multi_day][0]) {\n this._els[dhx_multi_day][0].scrollTop = multidayScroll;\n }\n };\n\n scheduler.setCurrentView = function (date, mode) {\n if (!this.callEvent(\"onBeforeViewChange\", [this._mode, this._date, mode || this._mode, date || this._date])) return;\n this.updateView(date, mode);\n this.callEvent(\"onViewChange\", [this._mode, this._date]);\n };\n\n scheduler.render = function (date, mode) {\n scheduler.setCurrentView(date, mode);\n };\n\n scheduler._render_x_header = function (i, left, d, h, offset_top) {\n offset_top = offset_top || 0; //header scale\n\n var head = document.createElement(\"div\");\n head.className = \"dhx_scale_bar\";\n\n if (this.templates[this._mode + \"_scalex_class\"]) {\n //'_scalex_class' - timeline already have similar template, use the same name\n head.className += ' ' + this.templates[this._mode + \"_scalex_class\"](d);\n }\n\n var width = this._cols[i] - 1;\n\n if (this._mode == \"month\" && i === 0 && this.config.left_border) {\n head.className += \" dhx_scale_bar_border\";\n left = left + 1;\n }\n\n this.set_xy(head, width, this.xy.scale_height - 2, left, offset_top); //-1 for border\n\n var columnHeaderText = this.templates[this._mode + \"_scale_date\"](d, this._mode); //TODO - move in separate method\n\n head.innerHTML = columnHeaderText;\n\n this._waiAria.dayHeaderAttr(head, columnHeaderText);\n\n h.appendChild(head);\n };\n\n scheduler._get_columns_num = function (from, to) {\n var count = 7;\n\n if (!scheduler._table_view) {\n var count_n = scheduler.date[\"get_\" + scheduler._mode + \"_end\"];\n if (count_n) to = count_n(from);\n count = Math.round((to.valueOf() - from.valueOf()) / (1000 * 60 * 60 * 24));\n }\n\n return count;\n };\n\n scheduler._get_timeunit_start = function () {\n //start date of currently displayed time unit(day, week,...)\n return this.date[this._mode + \"_start\"](new Date(this._date.valueOf()));\n };\n\n scheduler._get_view_end = function () {\n var dd = this._get_timeunit_start();\n\n var ed = scheduler.date.add(dd, 1, this._mode);\n\n if (!scheduler._table_view) {\n var count_n = scheduler.date[\"get_\" + scheduler._mode + \"_end\"];\n if (count_n) ed = count_n(dd);\n }\n\n return ed;\n };\n\n scheduler._calc_scale_sizes = function (width, from, to) {\n //\n //calculates number of displayed columns(days/units/month view cols) and their widths\n var rtl = this.config.rtl;\n var summ = width; //border delta\n\n var count = this._get_columns_num(from, to); //if (this.config.rtl) this._process_ignores(scheduler.date.add(to, -1, \"day\"), count, \"day\", -1);\n //else\n\n\n this._process_ignores(from, count, \"day\", 1);\n\n var realcount = count - this._ignores_detected;\n\n for (var i = 0; i < count; i++) {\n if (this._ignores[i]) {\n this._cols[i] = 0;\n realcount++;\n } else {\n this._cols[i] = Math.floor(summ / (realcount - i));\n }\n\n summ -= this._cols[i];\n this._colsS[i] = (this._cols[i - 1] || 0) + (this._colsS[i - 1] || (this._table_view ? 0 : (rtl ? this.xy.scroll_width : this.xy.scale_width) + 2)); //this._colsS[j]=(this._cols[rtl ? j+1 : (i-1)]||0)+(this._colsS[rtl ? j+1 : (i-1)]||(this._table_view?0:(rtl?this.xy.scroll_width:this.xy.scale_width)+2));\n }\n\n this._colsS['col_length'] = count;\n this._colsS[count] = this._cols[count - 1] + this._colsS[count - 1] || 0; //this._colsS[count] = (this._cols[rtl ? 0 : count-1]+this._colsS[rtl ? 0 : count-1]) || 0;\n };\n\n scheduler._set_scale_col_size = function (div, width, left) {\n var c = this.config;\n this.set_xy(div, width - 1, c.hour_size_px * (c.last_hour - c.first_hour), left + this.xy.scale_width + 1, 0); //-1 for border\n };\n\n scheduler._render_scales = function (header, data_area) {\n //render columns in week/units view, or header in month view\n var sd = new Date(scheduler._min_date),\n ed = new Date(scheduler._max_date),\n today = this.date.date_part(scheduler._currentDate());\n var summ = parseInt(header.style.width, 10); //border delta\n\n var d = new Date(this._min_date); // if (this.config.rtl) {\n // \td = new Date(scheduler.date.add(this._max_date, -1, \"day\"));\n // }\n\n var count = this._get_columns_num(sd, ed);\n\n this._calc_scale_sizes(summ, sd, ed);\n\n var left = 0;\n header.innerHTML = \"\";\n\n for (var i = 0; i < count; i++) {\n if (!this._ignores[i]) {\n this._render_x_header(i, left, d, header);\n }\n\n if (!this._table_view) {\n var scales = document.createElement(\"div\");\n var cls = \"dhx_scale_holder\";\n if (d.valueOf() == today.valueOf()) cls = \"dhx_scale_holder_now\";\n scales.setAttribute(\"data-column-index\", i);\n\n if (this._ignores_detected && this._ignores[i]) {\n cls += \" dhx_scale_ignore\";\n }\n\n scales.className = cls + \" \" + this.templates.week_date_class(d, today);\n\n this._waiAria.dayColumnAttr(scales, d);\n\n this._set_scale_col_size(scales, this._cols[i], left);\n\n data_area.appendChild(scales);\n this.callEvent(\"onScaleAdd\", [scales, d]);\n }\n\n left += this._cols[i]; //if (this.config.rtl) d=this.date.add(d,-1,\"day\");\n //else\n\n d = this.date.add(d, 1, \"day\");\n d = this.date.day_start(d);\n }\n };\n\n scheduler._getNavDateElement = function () {\n return this.$container.querySelector(\".dhx_cal_date\");\n };\n\n scheduler._reset_scale = function () {\n //current mode doesn't support scales\n //we mustn't call reset_scale for such modes, so it just to be sure\n if (!this.templates[this._mode + \"_date\"]) return;\n var h = this._els[\"dhx_cal_header\"][0];\n var data_area = this._els[\"dhx_cal_data\"][0];\n var c = this.config;\n h.innerHTML = \"\"; //data_area.scrollTop = 0; //fix flickering in FF; makes IE8 flicker instead\n\n data_area.innerHTML = \"\";\n var str = (c.readonly || !c.drag_resize ? \" dhx_resize_denied\" : \"\") + (c.readonly || !c.drag_move ? \" dhx_move_denied\" : \"\");\n data_area.className = \"dhx_cal_data\" + str;\n this._scales = {};\n this._cols = []; //store for data section\n\n this._colsS = {\n height: 0\n };\n this._dy_shift = 0;\n this.set_sizes();\n var d, sd;\n\n var dd = this._get_timeunit_start(),\n ed = scheduler._get_view_end();\n\n d = sd = this._table_view ? scheduler.date.week_start(dd) : dd;\n this._min_date = d;\n var navBarDateStr = this.templates[this._mode + \"_date\"](dd, ed, this._mode);\n\n var scaleElement = this._getNavDateElement();\n\n if (scaleElement) {\n scaleElement.innerHTML = navBarDateStr;\n\n this._waiAria.navBarDateAttr(scaleElement, navBarDateStr);\n }\n\n this._max_date = ed;\n\n scheduler._render_scales(h, data_area);\n\n if (this._table_view) // month view\n this._reset_month_scale(data_area, dd, sd);else {\n this._reset_hours_scale(data_area, dd, sd);\n\n if (c.multi_day) {\n var dhx_multi_day = 'dhx_multi_day';\n\n if (this._els[dhx_multi_day]) {\n this._els[dhx_multi_day][0].parentNode.removeChild(this._els[dhx_multi_day][0]);\n\n this._els[dhx_multi_day] = null;\n }\n\n var navline = this._els[\"dhx_cal_navline\"][0];\n var top = navline.offsetHeight + this._els[\"dhx_cal_header\"][0].offsetHeight + 1;\n var c1 = document.createElement(\"div\");\n c1.className = dhx_multi_day;\n c1.style.visibility = \"hidden\";\n var totalWidth = this._colsS[this._colsS.col_length];\n var offset = c.rtl ? this.xy.scale_width : this.xy.scroll_width;\n var hiddenWidth = Math.max(totalWidth + offset - 2, 0);\n this.set_xy(c1, hiddenWidth, 0, 0, top); // 2 extra borders, dhx_header has -1 bottom margin\n\n data_area.parentNode.insertBefore(c1, data_area);\n var c2 = c1.cloneNode(true);\n c2.className = dhx_multi_day + \"_icon\";\n c2.style.visibility = \"hidden\";\n this.set_xy(c2, this.xy.scale_width, 0, 0, top); // dhx_header has -1 bottom margin\n\n c1.appendChild(c2);\n this._els[dhx_multi_day] = [c1, c2];\n scheduler.event(this._els[dhx_multi_day][0], \"click\", this._click.dhx_cal_data);\n }\n }\n };\n\n scheduler._reset_hours_scale = function (b, dd, sd) {\n var c = document.createElement(\"div\");\n c.className = \"dhx_scale_holder\";\n var date = new Date(1980, 1, 1, this.config.first_hour, 0, 0);\n\n for (var i = this.config.first_hour * 1; i < this.config.last_hour; i++) {\n var cc = document.createElement(\"div\");\n cc.className = \"dhx_scale_hour\";\n cc.style.height = this.config.hour_size_px + \"px\";\n var width = this.xy.scale_width;\n\n if (this.config.left_border) {\n cc.className += \" dhx_scale_hour_border\";\n }\n\n cc.style.width = width + \"px\";\n var content = scheduler.templates.hour_scale(date);\n cc.innerHTML = content;\n\n this._waiAria.hourScaleAttr(cc, content);\n\n c.appendChild(cc);\n date = this.date.add(date, 1, \"hour\");\n }\n\n b.appendChild(c);\n if (this.config.scroll_hour) b.scrollTop = this.config.hour_size_px * (this.config.scroll_hour - this.config.first_hour);\n };\n\n scheduler._currentDate = function () {\n if (scheduler.config.now_date) {\n return new Date(scheduler.config.now_date);\n }\n\n return new Date();\n };\n\n scheduler._reset_ignores = function () {\n this._ignores = {};\n this._ignores_detected = 0;\n };\n\n scheduler._process_ignores = function (sd, n, mode, step, preserve) {\n this._reset_ignores();\n\n var ignore = scheduler[\"ignore_\" + this._mode];\n\n if (ignore) {\n var ign_date = new Date(sd);\n\n for (var i = 0; i < n; i++) {\n if (ignore(ign_date)) {\n this._ignores_detected += 1;\n this._ignores[i] = true;\n if (preserve) n++;\n }\n\n ign_date = scheduler.date.add(ign_date, step, mode);\n if (scheduler.date[mode + '_start']) ign_date = scheduler.date[mode + '_start'](ign_date);\n }\n }\n };\n\n scheduler._render_month_scale = function (div, dd\n /*month start*/\n , sd\n /*view start*/\n , rows) {\n //renders month view layout\n var ed = scheduler.date.add(dd, 1, \"month\"),\n view_start = new Date(sd);\n\n var cd = scheduler._currentDate();\n\n this.date.date_part(cd);\n this.date.date_part(sd);\n rows = rows || Math.ceil(Math.round((ed.valueOf() - sd.valueOf()) / (60 * 60 * 24 * 1000)) / 7);\n var tdwidths = [];\n\n for (var i = 0; i <= 7; i++) {\n var cell_width = (this._cols[i] || 0) - 1;\n\n if (i === 0 && this.config.left_border) {\n cell_width = cell_width - 1;\n }\n\n tdwidths[i] = cell_width + \"px\";\n }\n\n function getCellHeight(row) {\n var h = scheduler._colsS.height;\n\n if (scheduler._colsS.heights[row + 1] !== undefined) {\n h = scheduler._colsS.heights[row + 1] - (scheduler._colsS.heights[row] || 0);\n }\n\n return h;\n }\n\n var cellheight = 0;\n var table = document.createElement(\"table\");\n table.setAttribute(\"cellpadding\", \"0\");\n table.setAttribute(\"cellspacing\", \"0\");\n var tableBody = document.createElement(\"tbody\");\n table.appendChild(tableBody);\n var rendered_dates = [];\n\n for (var i = 0; i < rows; i++) {\n var row = document.createElement(\"tr\");\n tableBody.appendChild(row);\n var row_height = Math.max(getCellHeight(i) - scheduler.xy.month_head_height, 0);\n\n for (var j = 0; j < 7; j++) {\n var cell = document.createElement(\"td\");\n row.appendChild(cell);\n var cls = \"\";\n if (sd < dd) cls = 'dhx_before';else if (sd >= ed) cls = 'dhx_after';else if (sd.valueOf() == cd.valueOf()) cls = 'dhx_now';\n\n if (this._ignores_detected && this._ignores[j]) {\n cls += \" dhx_scale_ignore\";\n }\n\n cell.className = cls + \" \" + this.templates.month_date_class(sd, cd);\n cell.setAttribute(\"data-cell-date\", scheduler.templates.format_date(sd));\n var body_class = \"dhx_month_body\";\n var head_class = \"dhx_month_head\";\n\n if (j === 0 && this.config.left_border) {\n body_class += \" dhx_month_body_border\";\n head_class += \" dhx_month_head_border\";\n }\n\n if (!this._ignores_detected || !this._ignores[j]) {\n this._waiAria.monthCellAttr(cell, sd);\n\n var cellHead = document.createElement(\"div\");\n cellHead.className = head_class;\n cellHead.innerHTML = this.templates.month_day(sd);\n cell.appendChild(cellHead);\n var cellBody = document.createElement(\"div\");\n cellBody.className = body_class;\n cellBody.style.height = row_height + \"px\";\n cellBody.style.width = tdwidths[j];\n cell.appendChild(cellBody);\n } else {\n cell.appendChild(document.createElement(\"div\"));\n cell.appendChild(document.createElement(\"div\"));\n }\n\n rendered_dates.push(sd);\n var bf1 = sd.getDate();\n sd = this.date.add(sd, 1, \"day\");\n if (sd.getDate() - bf1 > 1) sd = new Date(sd.getFullYear(), sd.getMonth(), bf1 + 1, 12, 0);\n }\n\n scheduler._colsS.heights[i] = cellheight;\n cellheight += getCellHeight(i);\n }\n\n this._min_date = view_start;\n this._max_date = sd;\n div.innerHTML = \"\";\n div.appendChild(table);\n this._scales = {};\n var divs = div.getElementsByTagName('div');\n\n for (var i = 0; i < rendered_dates.length; i++) {\n // [header, body, header, body, ...]\n var div = divs[i * 2 + 1];\n var date = rendered_dates[i];\n this._scales[+date] = div;\n }\n\n for (var i = 0; i < rendered_dates.length; i++) {\n var date = rendered_dates[i];\n this.callEvent(\"onScaleAdd\", [this._scales[+date], date]);\n }\n\n return this._max_date;\n };\n\n scheduler._reset_month_scale = function (b, dd, sd, rows) {\n //recalculates rows height and redraws month layout\n var ed = scheduler.date.add(dd, 1, \"month\"); //trim time part for comparison reasons\n\n var cd = scheduler._currentDate();\n\n this.date.date_part(cd);\n this.date.date_part(sd);\n rows = rows || Math.ceil(Math.round((ed.valueOf() - sd.valueOf()) / (60 * 60 * 24 * 1000)) / 7);\n var height = Math.floor(b.clientHeight / rows) - this.xy.month_head_height;\n this._colsS.height = height + this.xy.month_head_height;\n this._colsS.heights = [];\n return scheduler._render_month_scale(b, dd, sd, rows);\n };\n\n scheduler.getView = function (viewName) {\n if (!viewName) {\n viewName = scheduler.getState().mode;\n }\n\n if (scheduler.matrix && scheduler.matrix[viewName]) {\n return scheduler.matrix[viewName];\n }\n\n if (scheduler._props && scheduler._props[viewName]) {\n return scheduler._props[viewName];\n }\n\n return null;\n };\n\n scheduler.getLabel = function (property, key) {\n var sections = this.config.lightbox.sections;\n\n for (var i = 0; i < sections.length; i++) {\n if (sections[i].map_to == property) {\n var options = sections[i].options;\n\n for (var j = 0; j < options.length; j++) {\n if (options[j].key == key) {\n return options[j].label;\n }\n }\n }\n }\n\n return \"\";\n };\n\n scheduler.updateCollection = function (list_name, collection) {\n var list = scheduler.serverList(list_name);\n if (!list) return false;\n list.splice(0, list.length);\n list.push.apply(list, collection || []);\n scheduler.callEvent(\"onOptionsLoad\", []);\n scheduler.resetLightbox();\n scheduler.hideCover();\n return true;\n };\n\n scheduler._lame_clone = function (object, cache) {\n var i, t, result; // iterator, types array, result\n\n cache = cache || [];\n\n for (i = 0; i < cache.length; i += 2) {\n if (object === cache[i]) return cache[i + 1];\n }\n\n if (object && _typeof(object) == \"object\") {\n result = Object.create(object); // preserve prototype methods\n\n t = [Array, Date, Number, String, Boolean];\n\n for (i = 0; i < t.length; i++) {\n if (object instanceof t[i]) result = i ? new t[i](object) : new t[i](); // first one is array\n }\n\n cache.push(object, result);\n\n for (i in object) {\n if (Object.prototype.hasOwnProperty.apply(object, [i])) result[i] = scheduler._lame_clone(object[i], cache);\n }\n }\n\n return result || object;\n };\n\n scheduler._lame_copy = function (target, source) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n\n return target;\n };\n\n scheduler._get_date_from_pos = function (pos) {\n var start = this._min_date.valueOf() + (pos.y * this.config.time_step + (this._table_view ? 0 : pos.x) * 24 * 60) * 60000; //if (this.config.rtl) start=scheduler.date.add(this._max_date, -1, \"day\").valueOf()+(pos.y*this.config.time_step-(this._table_view?0:pos.x)*24*60)*60000;\n\n return new Date(this._correct_shift(start));\n }; // n_ev - native event\n\n\n scheduler.getActionData = function (n_ev) {\n var pos = this._mouse_coords(n_ev);\n\n return {\n date: this._get_date_from_pos(pos),\n section: pos.section\n };\n };\n\n scheduler._focus = function (node, select) {\n if (node && node.focus) {\n if (this._mobile) {\n window.setTimeout(function () {\n node.focus();\n }, 10);\n } else {\n try {\n if (select && node.select && node.offsetWidth) {\n node.select();\n }\n\n node.focus();\n } catch (e) {}\n }\n }\n }; //non-linear scales\n\n\n scheduler._get_real_event_length = function (sd, fd, obj) {\n var ev_length = fd - sd;\n var hours = obj._start_correction + obj._end_correction || 0;\n var ignore = this[\"ignore_\" + this._mode];\n var start_slot = 0,\n end_slot;\n\n if (obj.render) {\n start_slot = this._get_date_index(obj, sd);\n end_slot = this._get_date_index(obj, fd);\n } else {\n end_slot = Math.round(ev_length / 60 / 60 / 1000 / 24);\n }\n\n var last_column = true;\n\n while (start_slot < end_slot) {\n var check = scheduler.date.add(fd, -obj.x_step, obj.x_unit);\n\n if (ignore && ignore(fd) && (!last_column || last_column && ignore(check))) {\n ev_length -= fd - check;\n } else {\n last_column = false;\n ev_length -= hours;\n }\n\n fd = check;\n end_slot--;\n }\n\n return ev_length;\n };\n\n scheduler._get_fictional_event_length = function (end_date, ev_length, obj, back) {\n var sd = new Date(end_date);\n var dir = back ? -1 : 1; //get difference caused by first|last hour\n\n if (obj._start_correction || obj._end_correction) {\n var today;\n if (back) today = sd.getHours() * 60 + sd.getMinutes() - (obj.first_hour || 0) * 60;else today = (obj.last_hour || 0) * 60 - (sd.getHours() * 60 + sd.getMinutes());\n var per_day = (obj.last_hour - obj.first_hour) * 60;\n var days = Math.ceil((ev_length / (60 * 1000) - today) / per_day);\n if (days < 0) days = 0;\n ev_length += days * (24 * 60 - per_day) * 60 * 1000;\n }\n\n var fd = new Date(end_date * 1 + ev_length * dir);\n var ignore = this[\"ignore_\" + this._mode];\n var start_slot = 0,\n end_slot;\n\n if (obj.render) {\n start_slot = this._get_date_index(obj, sd);\n end_slot = this._get_date_index(obj, fd);\n } else {\n end_slot = Math.round(ev_length / 60 / 60 / 1000 / 24);\n }\n\n while (start_slot * dir <= end_slot * dir) {\n var check = scheduler.date.add(sd, obj.x_step * dir, obj.x_unit);\n\n if (ignore && ignore(sd)) {\n ev_length += (check - sd) * dir;\n end_slot += dir;\n }\n\n sd = check;\n start_slot += dir;\n }\n\n return ev_length;\n };\n\n scheduler._get_section_view = function () {\n return this.getView();\n };\n\n scheduler._get_section_property = function () {\n if (this.matrix && this.matrix[this._mode]) {\n return this.matrix[this._mode].y_property;\n } else if (this._props && this._props[this._mode]) {\n return this._props[this._mode].map_to;\n }\n\n return null;\n };\n\n scheduler._is_initialized = function () {\n var state = this.getState();\n return this._obj && state.date && state.mode;\n };\n\n scheduler._is_lightbox_open = function () {\n var state = this.getState();\n return state.lightbox_id !== null && state.lightbox_id !== undefined;\n };\n}","export default {\n event: function event(el, _event, handler) {\n if (el.addEventListener) el.addEventListener(_event, handler, false);else if (el.attachEvent) el.attachEvent(\"on\" + _event, handler);\n },\n eventRemove: function eventRemove(el, event, handler) {\n if (el.removeEventListener) el.removeEventListener(event, handler, false);else if (el.detachEvent) el.detachEvent(\"on\" + event, handler);\n }\n};","import defaultDomEvents from './event';\nexport default function () {\n var domEvents = function domEvents(addEvent, removeEvent) {\n addEvent = addEvent || defaultDomEvents.event;\n removeEvent = removeEvent || defaultDomEvents.eventRemove;\n var handlers = [];\n var eventScope = {\n attach: function attach(el, event, callback, capture) {\n handlers.push({\n element: el,\n event: event,\n callback: callback,\n capture: capture\n });\n addEvent(el, event, callback, capture);\n },\n detach: function detach(el, event, callback, capture) {\n removeEvent(el, event, callback, capture);\n\n for (var i = 0; i < handlers.length; i++) {\n var handler = handlers[i];\n\n if (handler.element === el && handler.event === event && handler.callback === callback && handler.capture === capture) {\n handlers.splice(i, 1);\n i--;\n }\n }\n },\n detachAll: function detachAll() {\n var staticArray = handlers.slice(); // original handlers array can be spliced on every iteration\n\n for (var i = 0; i < staticArray.length; i++) {\n var handler = staticArray[i];\n eventScope.detach(handler.element, handler.event, handler.callback, handler.capture);\n eventScope.detach(handler.element, handler.event, handler.callback, undefined);\n eventScope.detach(handler.element, handler.event, handler.callback, false);\n eventScope.detach(handler.element, handler.event, handler.callback, true);\n }\n\n handlers.splice(0, handlers.length);\n },\n extend: function extend() {\n return domEvents(this.event, this.eventRemove);\n }\n };\n return eventScope;\n };\n\n return domEvents();\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport createEventScope from './utils/scoped_event';\nexport default function extend(scheduler) {\n var domEvents = createEventScope();\n scheduler.event = domEvents.attach;\n scheduler.eventRemove = domEvents.detach;\n scheduler._eventRemoveAll = domEvents.detachAll;\n scheduler._createDomEventScope = domEvents.extend;\n\n scheduler._trim = function (str) {\n var func = String.prototype.trim || function () {\n return this.replace(/^\\s+|\\s+$/g, \"\");\n };\n\n return func.apply(str);\n };\n\n scheduler._isDate = function (obj) {\n if (obj && _typeof(obj) == \"object\") {\n return !!(obj.getFullYear && obj.getMonth && obj.getDate);\n } else {\n return false;\n }\n };\n\n scheduler._isObject = function (obj) {\n return obj && _typeof(obj) == \"object\";\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function extend(scheduler) {\n (function () {\n // eslint-disable-next-line no-control-regex\n var htmlTags = new RegExp(\"<(?:.|\\n)*?>\", \"gm\");\n var extraSpaces = new RegExp(\" +\", \"gm\");\n\n function stripHTMLLite(htmlText) {\n return (htmlText + \"\").replace(htmlTags, \" \").replace(extraSpaces, \" \");\n }\n\n var singleQuotes = new RegExp(\"'\", \"gm\");\n\n function escapeQuotes(text) {\n return (text + \"\").replace(singleQuotes, \"'\");\n }\n\n scheduler._waiAria = {\n getAttributeString: function getAttributeString(attr) {\n var attributes = [\" \"];\n\n for (var i in attr) {\n if (typeof attr[i] != \"function\" && _typeof(attr[i]) != \"object\") {\n var text = escapeQuotes(stripHTMLLite(attr[i]));\n attributes.push(i + \"='\" + text + \"'\");\n }\n }\n\n attributes.push(\" \");\n return attributes.join(\" \");\n },\n setAttributes: function setAttributes(div, values) {\n for (var i in values) {\n div.setAttribute(i, stripHTMLLite(values[i]));\n }\n\n return div;\n },\n labelAttr: function labelAttr(div, content) {\n return this.setAttributes(div, {\n \"aria-label\": content\n });\n },\n label: function label(_label) {\n return scheduler._waiAria.getAttributeString({\n \"aria-label\": _label\n });\n },\n // day/week/units\n hourScaleAttr: function hourScaleAttr(div, content) {\n this.labelAttr(div, content);\n },\n monthCellAttr: function monthCellAttr(div, date) {\n this.labelAttr(div, scheduler.templates.day_date(date));\n },\n navBarDateAttr: function navBarDateAttr(div, content) {\n this.labelAttr(div, content);\n },\n dayHeaderAttr: function dayHeaderAttr(div, content) {\n this.labelAttr(div, content);\n },\n dayColumnAttr: function dayColumnAttr(div, date) {\n this.dayHeaderAttr(div, scheduler.templates.day_date(date));\n },\n headerButtonsAttributes: function headerButtonsAttributes(div, label) {\n return this.setAttributes(div, {\n \"role\": \"button\",\n \"aria-label\": label\n });\n },\n headerToggleState: function headerToggleState(div, isActive) {\n return this.setAttributes(div, {\n \"aria-pressed\": isActive ? \"true\" : \"false\"\n });\n },\n getHeaderCellAttr: function getHeaderCellAttr(dateString) {\n return scheduler._waiAria.getAttributeString({\n \"aria-label\": dateString\n });\n },\n eventAttr: function eventAttr(event, div) {\n this._eventCommonAttr(event, div);\n },\n _eventCommonAttr: function _eventCommonAttr(event, div) {\n div.setAttribute(\"aria-label\", stripHTMLLite(scheduler.templates.event_text(event.start_date, event.end_date, event)));\n\n if (scheduler.config.readonly) {\n div.setAttribute(\"aria-readonly\", true);\n }\n\n if (event.$dataprocessor_class) {\n div.setAttribute(\"aria-busy\", true);\n }\n\n div.setAttribute(\"aria-selected\", scheduler.getState().select_id == event.id ? \"true\" : \"false\");\n },\n setEventBarAttr: function setEventBarAttr(event, div) {\n this._eventCommonAttr(event, div);\n },\n _getAttributes: function _getAttributes(attributeSetter, arg) {\n var result = {\n setAttribute: function setAttribute(name, value) {\n this[name] = value;\n }\n };\n attributeSetter.apply(this, [arg, result]);\n return result;\n },\n eventBarAttrString: function eventBarAttrString(event) {\n return this.getAttributeString(this._getAttributes(this.setEventBarAttr, event));\n },\n agendaHeadAttrString: function agendaHeadAttrString() {\n return this.getAttributeString({\n role: \"row\"\n });\n },\n agendaHeadDateString: function agendaHeadDateString(label) {\n return this.getAttributeString({\n role: \"columnheader\",\n \"aria-label\": label\n });\n },\n agendaHeadDescriptionString: function agendaHeadDescriptionString(label) {\n return this.agendaHeadDateString(label);\n },\n agendaDataAttrString: function agendaDataAttrString() {\n return this.getAttributeString({\n role: \"grid\"\n });\n },\n agendaEventAttrString: function agendaEventAttrString(event) {\n var attrs = this._getAttributes(this._eventCommonAttr, event);\n\n attrs[\"role\"] = \"row\";\n return this.getAttributeString(attrs);\n },\n agendaDetailsBtnString: function agendaDetailsBtnString() {\n return this.getAttributeString({\n \"role\": \"button\",\n \"aria-label\": scheduler.locale.labels.icon_details\n });\n },\n gridAttrString: function gridAttrString() {\n return this.getAttributeString({\n role: \"grid\"\n });\n },\n gridRowAttrString: function gridRowAttrString(event) {\n return this.agendaEventAttrString(event);\n },\n gridCellAttrString: function gridCellAttrString(event, column, value) {\n return this.getAttributeString({\n \"role\": \"gridcell\",\n \"aria-label\": [column.label === undefined ? column.id : column.label, \": \", value]\n });\n },\n mapAttrString: function mapAttrString() {\n return this.gridAttrString();\n },\n mapRowAttrString: function mapRowAttrString(event) {\n return this.gridRowAttrString(event);\n },\n mapDetailsBtnString: function mapDetailsBtnString() {\n return this.agendaDetailsBtnString();\n },\n minicalHeader: function minicalHeader(div, headerId) {\n this.setAttributes(div, {\n \"id\": headerId + \"\",\n \"aria-live\": \"assertice\",\n \"aria-atomic\": \"true\"\n });\n },\n minicalGrid: function minicalGrid(div, headerId) {\n this.setAttributes(div, {\n \"aria-labelledby\": headerId + \"\",\n \"role\": \"grid\"\n });\n },\n minicalRow: function minicalRow(div) {\n this.setAttributes(div, {\n \"role\": \"row\"\n });\n },\n minicalDayCell: function minicalDayCell(div, date) {\n var selected = date.valueOf() < scheduler._max_date.valueOf() && date.valueOf() >= scheduler._min_date.valueOf();\n\n this.setAttributes(div, {\n \"role\": \"gridcell\",\n \"aria-label\": scheduler.templates.day_date(date),\n \"aria-selected\": selected ? \"true\" : \"false\"\n });\n },\n minicalHeadCell: function minicalHeadCell(div) {\n this.setAttributes(div, {\n \"role\": \"columnheader\"\n });\n },\n weekAgendaDayCell: function weekAgendaDayCell(div, date) {\n var header = div.querySelector(\".dhx_wa_scale_bar\");\n var content = div.querySelector(\".dhx_wa_day_data\");\n var headerId = scheduler.uid() + \"\";\n this.setAttributes(header, {\n \"id\": headerId\n });\n this.setAttributes(content, {\n \"aria-labelledby\": headerId\n });\n },\n weekAgendaEvent: function weekAgendaEvent(div, event) {\n this.eventAttr(event, div);\n },\n lightboxHiddenAttr: function lightboxHiddenAttr(div) {\n div.setAttribute(\"aria-hidden\", \"true\");\n },\n lightboxVisibleAttr: function lightboxVisibleAttr(div) {\n div.setAttribute(\"aria-hidden\", \"false\");\n },\n lightboxSectionButtonAttrString: function lightboxSectionButtonAttrString(label) {\n return this.getAttributeString({\n \"role\": \"button\",\n \"aria-label\": label,\n \"tabindex\": \"0\"\n });\n },\n yearHeader: function yearHeader(div, headerId) {\n this.setAttributes(div, {\n \"id\": headerId + \"\"\n });\n },\n yearGrid: function yearGrid(div, headerId) {\n this.minicalGrid(div, headerId);\n },\n yearHeadCell: function yearHeadCell(div) {\n return this.minicalHeadCell(div);\n },\n yearRow: function yearRow(div) {\n return this.minicalRow(div);\n },\n yearDayCell: function yearDayCell(div) {\n this.setAttributes(div, {\n \"role\": \"gridcell\"\n });\n },\n lightboxAttr: function lightboxAttr(div) {\n div.setAttribute(\"role\", \"dialog\");\n div.setAttribute(\"aria-hidden\", \"true\");\n div.firstChild.setAttribute(\"role\", \"heading\");\n },\n lightboxButtonAttrString: function lightboxButtonAttrString(buttonName) {\n return this.getAttributeString({\n \"role\": \"button\",\n \"aria-label\": scheduler.locale.labels[buttonName],\n \"tabindex\": \"0\"\n });\n },\n eventMenuAttrString: function eventMenuAttrString(iconName) {\n return this.getAttributeString({\n \"role\": \"button\",\n \"aria-label\": scheduler.locale.labels[iconName]\n });\n },\n lightboxHeader: function lightboxHeader(div, headerText) {\n div.setAttribute(\"aria-label\", headerText);\n },\n lightboxSelectAttrString: function lightboxSelectAttrString(time_option) {\n var label = \"\";\n\n switch (time_option) {\n case \"%Y\":\n label = scheduler.locale.labels.year;\n break;\n\n case \"%m\":\n label = scheduler.locale.labels.month;\n break;\n\n case \"%d\":\n label = scheduler.locale.labels.day;\n break;\n\n case \"%H:%i\":\n label = scheduler.locale.labels.hour + \" \" + scheduler.locale.labels.minute;\n break;\n\n default:\n break;\n }\n\n return scheduler._waiAria.getAttributeString({\n \"aria-label\": label\n });\n },\n messageButtonAttrString: function messageButtonAttrString(buttonLabel) {\n return \"tabindex='0' role='button' aria-label='\" + buttonLabel + \"'\";\n },\n messageInfoAttr: function messageInfoAttr(div) {\n div.setAttribute(\"role\", \"alert\"); //div.setAttribute(\"tabindex\", \"-1\");\n },\n messageModalAttr: function messageModalAttr(div, uid) {\n div.setAttribute(\"role\", \"dialog\");\n\n if (uid) {\n div.setAttribute(\"aria-labelledby\", uid);\n } //\tdiv.setAttribute(\"tabindex\", \"-1\");\n\n },\n quickInfoAttr: function quickInfoAttr(div) {\n div.setAttribute(\"role\", \"dialog\");\n },\n quickInfoHeaderAttrString: function quickInfoHeaderAttrString() {\n return \" role='heading' \";\n },\n quickInfoHeader: function quickInfoHeader(div, header) {\n div.setAttribute(\"aria-label\", header);\n },\n quickInfoButtonAttrString: function quickInfoButtonAttrString(label) {\n return scheduler._waiAria.getAttributeString({\n \"role\": \"button\",\n \"aria-label\": label,\n \"tabindex\": \"0\"\n });\n },\n tooltipAttr: function tooltipAttr(div) {\n div.setAttribute(\"role\", \"tooltip\");\n },\n tooltipVisibleAttr: function tooltipVisibleAttr(div) {\n div.setAttribute(\"aria-hidden\", \"false\");\n },\n tooltipHiddenAttr: function tooltipHiddenAttr(div) {\n div.setAttribute(\"aria-hidden\", \"true\");\n }\n };\n\n function isDisabled() {\n return !scheduler.config.wai_aria_attributes;\n }\n\n for (var i in scheduler._waiAria) {\n scheduler._waiAria[i] = function (payload) {\n return function () {\n if (isDisabled()) {\n return \" \";\n }\n\n return payload.apply(this, arguments);\n };\n }(scheduler._waiAria[i]);\n }\n })();\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar uidSeed = Date.now();\n\nfunction uid() {\n return uidSeed++;\n} // iframe-safe array type check instead of using instanceof\n\n\nfunction isArray(obj) {\n if (Array.isArray) {\n return Array.isArray(obj);\n } else {\n // close enough\n return obj && obj.length !== undefined && obj.pop && obj.push;\n }\n} // non-primitive string object, e.g. new String(\"abc\")\n\n\nfunction isStringObject(obj) {\n return obj && _typeof(obj) === \"object\" && Function.prototype.toString.call(obj.constructor) === \"function String() { [native code] }\";\n} // non-primitive number object, e.g. new Number(5)\n\n\nfunction isNumberObject(obj) {\n return obj && _typeof(obj) === \"object\" && Function.prototype.toString.call(obj.constructor) === \"function Number() { [native code] }\";\n} // non-primitive number object, e.g. new Boolean(true)\n\n\nfunction isBooleanObject(obj) {\n return obj && _typeof(obj) === \"object\" && Function.prototype.toString.call(obj.constructor) === \"function Boolean() { [native code] }\";\n}\n\nfunction isDate(obj) {\n if (obj && _typeof(obj) === \"object\") {\n return !!(obj.getFullYear && obj.getMonth && obj.getDate);\n } else {\n return false;\n }\n}\n\nfunction defined(obj) {\n return typeof obj != \"undefined\";\n}\n\nexport default {\n uid: uid,\n mixin: function mixin(target, source, force) {\n for (var f in source) {\n if (target[f] === undefined || force) target[f] = source[f];\n }\n\n return target;\n },\n copy: function copy(object) {\n var i, result; // iterator, types array, result\n\n if (object && _typeof(object) == \"object\") {\n switch (true) {\n case isDate(object):\n result = new Date(object);\n break;\n\n case isArray(object):\n result = new Array(object.length);\n\n for (i = 0; i < object.length; i++) {\n result[i] = copy(object[i]);\n }\n\n break;\n\n case isStringObject(object):\n result = new String(object); // jshint ignore:line\n\n break;\n\n case isNumberObject(object):\n result = new Number(object); // jshint ignore:line\n\n break;\n\n case isBooleanObject(object):\n result = new Boolean(object); // jshint ignore:line\n\n break;\n\n default:\n result = {};\n\n for (i in object) {\n if (Object.prototype.hasOwnProperty.apply(object, [i])) result[i] = copy(object[i]);\n }\n\n break;\n }\n }\n\n return result || object;\n },\n defined: defined,\n isDate: isDate\n};","//returns position of html element on the page\nfunction elementPosition(elem) {\n var top = 0,\n left = 0,\n right = 0,\n bottom = 0;\n\n if (elem.getBoundingClientRect) {\n //HTML5 method\n var box = elem.getBoundingClientRect();\n var body = document.body;\n var docElem = document.documentElement || document.body.parentNode || document.body;\n var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;\n var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;\n var clientTop = docElem.clientTop || body.clientTop || 0;\n var clientLeft = docElem.clientLeft || body.clientLeft || 0;\n top = box.top + scrollTop - clientTop;\n left = box.left + scrollLeft - clientLeft;\n right = document.body.offsetWidth - box.right;\n bottom = document.body.offsetHeight - box.bottom;\n } else {\n //fallback to naive approach\n while (elem) {\n top = top + parseInt(elem.offsetTop, 10);\n left = left + parseInt(elem.offsetLeft, 10);\n elem = elem.offsetParent;\n }\n\n right = document.body.offsetWidth - elem.offsetWidth - left;\n bottom = document.body.offsetHeight - elem.offsetHeight - top;\n }\n\n return {\n y: Math.round(top),\n x: Math.round(left),\n width: elem.offsetWidth,\n height: elem.offsetHeight,\n right: Math.round(right),\n bottom: Math.round(bottom)\n };\n}\n/*\r\nevent position relatively to DOM element\r\n */\n\n\nfunction getRelativeEventPosition(ev, node) {\n var d = document.documentElement;\n var box = elementPosition(node);\n return {\n x: ev.clientX + d.scrollLeft - d.clientLeft - box.x + node.scrollLeft,\n y: ev.clientY + d.scrollTop - d.clientTop - box.y + node.scrollTop\n };\n}\n\nfunction getClassName(node) {\n if (!node) return \"\";\n var className = node.className || \"\";\n if (className.baseVal) //'className' exist but not a string - IE svg element in DOM\n className = className.baseVal;\n if (!className.indexOf) className = '';\n return className || \"\";\n}\n\nfunction locateCss(e, classname, strict) {\n if (strict === undefined) strict = true;\n var trg = e.target || e.srcElement;\n var css = '';\n\n while (trg) {\n css = getClassName(trg);\n\n if (css) {\n var ind = css.indexOf(classname);\n\n if (ind >= 0) {\n if (!strict) return trg; //check that we have exact match\n\n var left = ind === 0 || !(css.charAt(ind - 1) || \"\").trim();\n var right = ind + classname.length >= css.length || !css.charAt(ind + classname.length).trim();\n if (left && right) return trg;\n }\n }\n\n trg = trg.parentNode;\n }\n\n return null;\n} // get focusable nodes\n\n\nfunction isVisible(node) {\n var display = false,\n visibility = false;\n\n if (window.getComputedStyle) {\n var style = window.getComputedStyle(node, null);\n display = style[\"display\"];\n visibility = style[\"visibility\"];\n } else if (node.currentStyle) {\n display = node.currentStyle[\"display\"];\n visibility = node.currentStyle[\"visibility\"];\n }\n\n var hiddenSection = false;\n var recurringSection = locateCss({\n target: node\n }, \"dhx_form_repeat\", false);\n\n if (recurringSection) {\n hiddenSection = !!(recurringSection.style.height == \"0px\");\n }\n\n hiddenSection = hiddenSection || !node.offsetHeight;\n return display != \"none\" && visibility != \"hidden\" && !hiddenSection;\n}\n\nfunction hasNonNegativeTabIndex(node) {\n return !isNaN(node.getAttribute(\"tabindex\")) && node.getAttribute(\"tabindex\") * 1 >= 0;\n}\n\nfunction hasHref(node) {\n var canHaveHref = {\n \"a\": true,\n \"area\": true\n };\n\n if (canHaveHref[node.nodeName.loLowerCase()]) {\n return !!node.getAttribute(\"href\");\n }\n\n return true;\n}\n\nfunction isEnabled(node) {\n var canDisable = {\n \"input\": true,\n \"select\": true,\n \"textarea\": true,\n \"button\": true,\n \"object\": true\n };\n\n if (canDisable[node.nodeName.toLowerCase()]) {\n return !node.hasAttribute(\"disabled\");\n }\n\n return true;\n}\n\nfunction getFocusableNodes(root) {\n var nodes = root.querySelectorAll([\"a[href]\", \"area[href]\", \"input\", \"select\", \"textarea\", \"button\", \"iframe\", \"object\", \"embed\", \"[tabindex]\", \"[contenteditable]\"].join(\", \"));\n var nodesArray = Array.prototype.slice.call(nodes, 0);\n\n for (var i = 0; i < nodesArray.length; i++) {\n nodesArray[i].$position = i; // we remember original nodes order, \n // so when we sort them by tabindex we ensure order of nodes with same tabindex is preserved, \n // since some browsers do unstable sort\n }\n\n nodesArray.sort(function (a, b) {\n if (a.tabIndex === 0 && b.tabIndex !== 0) {\n return 1;\n }\n\n if (a.tabIndex !== 0 && b.tabIndex === 0) {\n return -1;\n }\n\n if (a.tabIndex === b.tabIndex) {\n // ensure we do stable sort\n return a.$position - b.$position;\n }\n\n if (a.tabIndex < b.tabIndex) {\n return -1;\n }\n\n return 1;\n });\n\n for (var i = 0; i < nodesArray.length; i++) {\n var node = nodesArray[i];\n var isValid = (hasNonNegativeTabIndex(node) || isEnabled(node) || hasHref(node)) && isVisible(node);\n\n if (!isValid) {\n nodesArray.splice(i, 1);\n i--;\n }\n }\n\n return nodesArray;\n}\n\nfunction isShadowDomSupported() {\n return document.head.createShadowRoot || document.head.attachShadow;\n}\n/**\r\n * Returns element that has the browser focus, or null if no element has focus.\r\n * Works with shadow DOM, so it's prefereed to use this function instead of document.activeElement directly.\r\n * @returns HTMLElement\r\n */\n\n\nfunction getActiveElement() {\n var activeElement = document.activeElement;\n\n if (activeElement.shadowRoot) {\n activeElement = activeElement.shadowRoot.activeElement;\n }\n\n if (activeElement === document.body && document.getSelection) {\n activeElement = document.getSelection().focusNode || document.body;\n }\n\n return activeElement;\n}\n/**\r\n * Returns document.body or the host node of the ShadowRoot, if the element is attached to ShadowDom\r\n * @param {HTMLElement} element \r\n * @returns HTMLElement\r\n */\n\n\nfunction getRootNode(element) {\n if (!element) {\n return document.body;\n }\n\n if (!isShadowDomSupported()) {\n return document.body;\n }\n\n while (element.parentNode && (element = element.parentNode)) {\n if (element instanceof ShadowRoot) {\n return element.host;\n }\n }\n\n return document.body;\n}\n\nfunction hasShadowParent(element) {\n return !!getRootNode(element);\n}\n\nexport default {\n /**\r\n * @desc: Calculate absolute position of html object\r\n * @type: private\r\n * @param: htmlObject - html object\r\n * @topic: 0\r\n */\n getAbsoluteLeft: function getAbsoluteLeft(htmlObject) {\n return this.getOffset(htmlObject).left;\n },\n\n /**\r\n * @desc: Calculate absolute position of html object\r\n * @type: private\r\n * @param: htmlObject - html object\r\n * @topic: 0\r\n */\n getAbsoluteTop: function getAbsoluteTop(htmlObject) {\n return this.getOffset(htmlObject).top;\n },\n getOffsetSum: function getOffsetSum(elem) {\n var top = 0,\n left = 0;\n\n while (elem) {\n top = top + parseInt(elem.offsetTop);\n left = left + parseInt(elem.offsetLeft);\n elem = elem.offsetParent;\n }\n\n return {\n top: top,\n left: left\n };\n },\n getOffsetRect: function getOffsetRect(elem) {\n var box = elem.getBoundingClientRect();\n var top = 0,\n left = 0; // https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent#Mobile_Tablet_or_Desktop\n\n if (!/Mobi/.test(navigator.userAgent)) {\n var body = document.body;\n var docElem = document.documentElement;\n var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;\n var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;\n var clientTop = docElem.clientTop || body.clientTop || 0;\n var clientLeft = docElem.clientLeft || body.clientLeft || 0;\n top = box.top + scrollTop - clientTop;\n left = box.left + scrollLeft - clientLeft;\n } else {\n // incorrect left coordinate on mobile zoom\n // https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n var dummy = document.createElement(\"div\");\n dummy.style.position = \"absolute\";\n dummy.style.left = \"0px\";\n dummy.style.top = \"0px\";\n dummy.style.width = \"1px\";\n dummy.style.height = \"1px\";\n document.body.appendChild(dummy);\n var dummyBox = dummy.getBoundingClientRect();\n top = box.top - dummyBox.top;\n left = box.left - dummyBox.left;\n dummy.parentNode.removeChild(dummy);\n }\n\n return {\n top: Math.round(top),\n left: Math.round(left)\n };\n },\n getOffset: function getOffset(elem) {\n if (elem.getBoundingClientRect) {\n return this.getOffsetRect(elem);\n } else {\n return this.getOffsetSum(elem);\n }\n },\n closest: function closest(element, selector) {\n if (!element || !selector) {\n return null;\n }\n\n return _closest(element, selector);\n },\n insertAfter: function insertAfter(newNode, referenceNode) {\n if (referenceNode.nextSibling) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n } else {\n referenceNode.parentNode.appendChild(newNode);\n }\n },\n remove: function remove(node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n },\n getFocusableNodes: getFocusableNodes,\n getClassName: getClassName,\n locateCss: locateCss,\n getRootNode: getRootNode,\n hasShadowParent: hasShadowParent,\n isShadowDomSupported: isShadowDomSupported,\n getActiveElement: getActiveElement,\n getRelativeEventPosition: getRelativeEventPosition\n};\n\nvar _closest;\n\nif (Element.prototype.closest) {\n _closest = function _closest(element, selector) {\n return element.closest(selector);\n };\n} else {\n var matches = Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n _closest = function _closest(element, selector) {\n var el = element;\n\n do {\n if (matches.call(el, selector)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n\n return null;\n };\n}","/* eslint-disable no-restricted-globals */\nvar isWindowAwailable = typeof window !== \"undefined\";\n/* eslint-enable no-restricted-globals */\n\nexport default {\n isIE: isWindowAwailable && (navigator.userAgent.indexOf(\"MSIE\") >= 0 || navigator.userAgent.indexOf(\"Trident\") >= 0),\n isIE6: isWindowAwailable && !XMLHttpRequest && navigator.userAgent.indexOf(\"MSIE\") >= 0,\n isIE7: isWindowAwailable && navigator.userAgent.indexOf(\"MSIE 7.0\") >= 0 && navigator.userAgent.indexOf(\"Trident\") < 0,\n isIE8: isWindowAwailable && navigator.userAgent.indexOf(\"MSIE 8.0\") >= 0 && navigator.userAgent.indexOf(\"Trident\") >= 0,\n isOpera: isWindowAwailable && navigator.userAgent.indexOf(\"Opera\") >= 0,\n isChrome: isWindowAwailable && navigator.userAgent.indexOf(\"Chrome\") >= 0,\n isKHTML: isWindowAwailable && (navigator.userAgent.indexOf(\"Safari\") >= 0 || navigator.userAgent.indexOf(\"Konqueror\") >= 0),\n isFF: isWindowAwailable && navigator.userAgent.indexOf(\"Firefox\") >= 0,\n isIPad: isWindowAwailable && navigator.userAgent.search(/iPad/gi) >= 0,\n isEdge: isWindowAwailable && navigator.userAgent.indexOf(\"Edge\") != -1,\n isNode: !isWindowAwailable || typeof navigator == \"undefined\"\n};","import { Promise } from \"bluebird/js/browser/bluebird.core\";\n/** \r\n * @preserve\r\n * The MIT License (MIT)\r\n * \r\n * Copyright (c) 2013-2018 Petka Antonov\r\n * \r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n * \r\n */\n\n/**\r\n * bluebird build version 3.7.2\r\n * Features enabled: core\r\n * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each\r\n*/\n\nexport default Promise;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport Promise from \"./bluebird\";\nimport serialize from \"../common/url_serialize.js\";\nexport default function extend(scheduler) {\n scheduler.Promise = Promise; // bluebird package (./bluebird.js)\n\n function createConfig(method, args) {\n var result = {\n method: method\n };\n\n if (args.length === 0) {\n throw new Error(\"Arguments list of query is wrong.\");\n }\n\n if (args.length === 1) {\n if (typeof args[0] === \"string\") {\n result.url = args[0];\n result.async = true;\n } else {\n result.url = args[0].url;\n result.async = args[0].async || true;\n result.callback = args[0].callback;\n result.headers = args[0].headers;\n }\n\n if (method === \"POST\" || \"PUT\") {\n if (args[0].data) {\n if (typeof args[0].data !== \"string\") {\n result.data = serialize(args[0].data);\n } else {\n result.data = args[0].data;\n }\n } else {\n result.data = \"\";\n }\n }\n\n return result;\n }\n\n result.url = args[0];\n\n switch (method) {\n case \"GET\":\n case \"DELETE\":\n result.callback = args[1];\n result.headers = args[2];\n break;\n\n case \"POST\":\n case \"PUT\":\n if (args[1]) {\n if (typeof args[1] !== \"string\") {\n result.data = serialize(args[1]);\n } else {\n result.data = args[1];\n }\n } else {\n result.data = \"\";\n }\n\n result.callback = args[2];\n result.headers = args[3];\n break;\n }\n\n return result;\n }\n\n scheduler.ajax = {\n // if false - dhxr param will added to prevent caching on client side (default),\n // if true - do not add extra params\n cache: true,\n // default method for load/loadStruct, post/get allowed\n method: \"get\",\n serializeRequestParams: serialize,\n parse: function parse(data) {\n if (typeof data !== \"string\") return data;\n var obj;\n data = data.replace(/^[\\s]+/, \"\");\n\n if (typeof DOMParser !== \"undefined\" && !scheduler.$env.isIE) {\n // ff,ie9\n obj = new DOMParser().parseFromString(data, \"text/xml\");\n } else if (typeof window.ActiveXObject !== \"undefined\") {\n obj = new window.ActiveXObject(\"Microsoft.XMLDOM\");\n obj.async = \"false\";\n obj.loadXML(data);\n }\n\n return obj;\n },\n xmltop: function xmltop(tagname, xhr, obj) {\n if (typeof xhr.status == \"undefined\" || xhr.status < 400) {\n var xml = !xhr.responseXML ? this.parse(xhr.responseText || xhr) : xhr.responseXML || xhr;\n\n if (xml && xml.documentElement !== null && !xml.getElementsByTagName(\"parsererror\").length) {\n return xml.getElementsByTagName(tagname)[0];\n }\n }\n\n if (obj !== -1) scheduler.callEvent(\"onLoadXMLError\", [\"Incorrect XML\", arguments[1], obj]);\n return document.createElement(\"DIV\");\n },\n xpath: function xpath(xpathExp, docObj) {\n if (!docObj.nodeName) docObj = docObj.responseXML || docObj;\n\n if (scheduler.$env.isIE) {\n return docObj.selectNodes(xpathExp) || [];\n } else {\n var rows = [];\n var first;\n var col = (docObj.ownerDocument || docObj).evaluate(xpathExp, docObj, null, XPathResult.ANY_TYPE, null);\n\n while (true) {\n first = col.iterateNext();\n\n if (first) {\n rows.push(first);\n } else {\n break;\n }\n }\n\n return rows;\n }\n },\n query: function query(config) {\n return this._call(config.method || \"GET\", config.url, config.data || \"\", config.async || true, config.callback, config.headers);\n },\n get: function get(url, onLoad, headers) {\n var config = createConfig(\"GET\", arguments);\n return this.query(config);\n },\n getSync: function getSync(url, headers) {\n var config = createConfig(\"GET\", arguments);\n config.async = false;\n return this.query(config);\n },\n put: function put(url, postData, onLoad, headers) {\n var config = createConfig(\"PUT\", arguments);\n return this.query(config);\n },\n del: function del(url, onLoad, headers) {\n /**\r\n * https://tools.ietf.org/html/rfc7231#section-4.3.5\r\n * A payload within a DELETE request message has no defined semantics;\r\n * sending a payload body on a DELETE request might cause some existing\r\n * implementations to reject the request.\r\n */\n var config = createConfig(\"DELETE\", arguments);\n return this.query(config);\n },\n post: function post(url, postData, onLoad, headers) {\n if (arguments.length == 1) {\n postData = \"\";\n } else if (arguments.length == 2 && typeof postData == \"function\") {\n onLoad = postData;\n postData = \"\";\n }\n\n var config = createConfig(\"POST\", arguments);\n return this.query(config);\n },\n postSync: function postSync(url, postData, headers) {\n postData = postData === null ? \"\" : String(postData);\n var config = createConfig(\"POST\", arguments);\n config.async = false;\n return this.query(config);\n },\n _call: function _call(method, url, postData, async, onLoad, headers) {\n return new scheduler.Promise(function (resolve, reject) {\n var t = (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) !== undefined && !scheduler.$env.isIE ? new XMLHttpRequest() : new window.ActiveXObject(\"Microsoft.XMLHTTP\");\n var isQt = navigator.userAgent.match(/AppleWebKit/) !== null && navigator.userAgent.match(/Qt/) !== null && navigator.userAgent.match(/Safari/) !== null;\n\n if (!!async) {\n t.addEventListener(\"readystatechange\", function () {\n if (t.readyState == 4 || isQt && t.readyState == 3) {\n // what for long response and status 404?\n if (t.status != 200 || t.responseText === \"\") if (!scheduler.callEvent(\"onAjaxError\", [t])) return;\n setTimeout(function () {\n if (typeof onLoad == \"function\") {\n onLoad.apply(window, [{\n xmlDoc: t,\n filePath: url\n }]); // dhtmlx-compat, response.xmlDoc.responseXML/responseText\n }\n\n resolve(t);\n\n if (typeof onLoad == \"function\") {\n onLoad = null;\n t = null;\n }\n }, 0);\n }\n });\n }\n\n if (method == \"GET\" && !this.cache) {\n url += (url.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + \"dhxr\" + new Date().getTime() + \"=1\";\n }\n\n t.open(method, url, async);\n\n if (headers) {\n for (var key in headers) {\n t.setRequestHeader(key, headers[key]);\n }\n } else if (method.toUpperCase() == \"POST\" || method == \"PUT\" || method == \"DELETE\") {\n t.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n } else if (method == \"GET\") {\n postData = null;\n }\n\n t.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n t.send(postData);\n if (!async) return {\n xmlDoc: t,\n filePath: url\n }; // dhtmlx-compat, response.xmlDoc.responseXML/responseText\n }.bind(this));\n },\n urlSeparator: function urlSeparator(str) {\n if (str.indexOf(\"?\") != -1) return \"&\";else return \"?\";\n }\n };\n scheduler.$ajax = scheduler.ajax; // for old\n}","export default function extend(scheduler) {\n var generateStringToDate = function generateStringToDate(format, utc) {\n var splt = \"var temp=date.match(/[a-zA-Z]+|[0-9]+/g);\";\n var mask = format.match(/%[a-zA-Z]/g);\n\n for (var i = 0; i < mask.length; i++) {\n switch (mask[i]) {\n case \"%j\":\n case \"%d\":\n splt += \"set[2]=temp[\" + i + \"]||1;\";\n break;\n\n case \"%n\":\n case \"%m\":\n splt += \"set[1]=(temp[\" + i + \"]||1)-1;\";\n break;\n\n case \"%y\":\n splt += \"set[0]=temp[\" + i + \"]*1+(temp[\" + i + \"]>50?1900:2000);\";\n break;\n\n case \"%g\":\n case \"%G\":\n case \"%h\":\n case \"%H\":\n splt += \"set[3]=temp[\" + i + \"]||0;\";\n break;\n\n case \"%i\":\n splt += \"set[4]=temp[\" + i + \"]||0;\";\n break;\n\n case \"%Y\":\n splt += \"set[0]=temp[\" + i + \"]||0;\";\n break;\n\n case \"%a\":\n case \"%A\":\n splt += \"set[3]=set[3]%12+((temp[\" + i + \"]||'').toLowerCase()=='am'?0:12);\";\n break;\n\n case \"%s\":\n splt += \"set[5]=temp[\" + i + \"]||0;\";\n break;\n\n case \"%M\":\n splt += \"set[1]=this.locale.date.month_short_hash[temp[\" + i + \"]]||0;\";\n break;\n\n case \"%F\":\n splt += \"set[1]=this.locale.date.month_full_hash[temp[\" + i + \"]]||0;\";\n break;\n\n default:\n break;\n }\n }\n\n var code = \"set[0],set[1],set[2],set[3],set[4],set[5]\";\n if (utc) code = \" Date.UTC(\" + code + \")\";\n return new Function(\"date\", \"var set=[0,0,1,0,0,0]; \" + splt + \" return new Date(\" + code + \");\");\n };\n\n var csp_date_to_str = function csp_date_to_str(format, utc) {\n return function (date) {\n return format.replace(/%[a-zA-Z]/g, function (a) {\n switch (a) {\n case \"%d\":\n return utc ? scheduler.date.to_fixed(date.getUTCDate()) : scheduler.date.to_fixed(date.getDate());\n\n case \"%m\":\n return utc ? scheduler.date.to_fixed(date.getUTCMonth() + 1) : scheduler.date.to_fixed(date.getMonth() + 1);\n\n case \"%j\":\n return utc ? date.getUTCDate() : date.getDate();\n\n case \"%n\":\n return utc ? date.getUTCMonth() + 1 : date.getMonth() + 1;\n\n case \"%y\":\n return utc ? scheduler.date.to_fixed(date.getUTCFullYear() % 100) : scheduler.date.to_fixed(date.getFullYear() % 100);\n\n case \"%Y\":\n return utc ? date.getUTCFullYear() : date.getFullYear();\n\n case \"%D\":\n return utc ? scheduler.locale.date.day_short[date.getUTCDay()] : scheduler.locale.date.day_short[date.getDay()];\n\n case \"%l\":\n return utc ? scheduler.locale.date.day_full[date.getUTCDay()] : scheduler.locale.date.day_full[date.getDay()];\n\n case \"%M\":\n return utc ? scheduler.locale.date.month_short[date.getUTCMonth()] : scheduler.locale.date.month_short[date.getMonth()];\n\n case \"%F\":\n return utc ? scheduler.locale.date.month_full[date.getUTCMonth()] : scheduler.locale.date.month_full[date.getMonth()];\n\n case \"%h\":\n return utc ? scheduler.date.to_fixed((date.getUTCHours() + 11) % 12 + 1) : scheduler.date.to_fixed((date.getHours() + 11) % 12 + 1);\n\n case \"%g\":\n return utc ? (date.getUTCHours() + 11) % 12 + 1 : (date.getHours() + 11) % 12 + 1;\n\n case \"%G\":\n return utc ? date.getUTCHours() : date.getHours();\n\n case \"%H\":\n return utc ? scheduler.date.to_fixed(date.getUTCHours()) : scheduler.date.to_fixed(date.getHours());\n\n case \"%i\":\n return utc ? scheduler.date.to_fixed(date.getUTCMinutes()) : scheduler.date.to_fixed(date.getMinutes());\n\n case \"%a\":\n return utc ? date.getUTCHours() > 11 ? \"pm\" : \"am\" : date.getHours() > 11 ? \"pm\" : \"am\";\n\n case \"%A\":\n return utc ? date.getUTCHours() > 11 ? \"PM\" : \"AM\" : date.getHours() > 11 ? \"PM\" : \"AM\";\n\n case \"%s\":\n return utc ? scheduler.date.to_fixed(date.getUTCSeconds()) : scheduler.date.to_fixed(date.getSeconds());\n\n case \"%W\":\n return utc ? scheduler.date.to_fixed(scheduler.date.getUTCISOWeek(date)) : scheduler.date.to_fixed(scheduler.date.getISOWeek(date));\n\n default:\n return a;\n }\n });\n };\n };\n\n var csp_str_to_date = function csp_str_to_date(format, utc) {\n return function (date) {\n var set = [0, 0, 1, 0, 0, 0];\n var temp = date.match(/[a-zA-Z]+|[0-9]+/g);\n var mask = format.match(/%[a-zA-Z]/g);\n\n for (var i = 0; i < mask.length; i++) {\n switch (mask[i]) {\n case \"%j\":\n case \"%d\":\n set[2] = temp[i] || 1;\n break;\n\n case \"%n\":\n case \"%m\":\n set[1] = (temp[i] || 1) - 1;\n break;\n\n case \"%y\":\n set[0] = temp[i] * 1 + (temp[i] > 50 ? 1900 : 2000);\n break;\n\n case \"%g\":\n case \"%G\":\n case \"%h\":\n case \"%H\":\n set[3] = temp[i] || 0;\n break;\n\n case \"%i\":\n set[4] = temp[i] || 0;\n break;\n\n case \"%Y\":\n set[0] = temp[i] || 0;\n break;\n\n case \"%a\":\n case \"%A\":\n set[3] = set[3] % 12 + ((temp[i] || '').toLowerCase() == 'am' ? 0 : 12);\n break;\n\n case \"%s\":\n set[5] = temp[i] || 0;\n break;\n\n case \"%M\":\n set[1] = scheduler.locale.date.month_short_hash[temp[i]] || 0;\n break;\n\n case \"%F\":\n set[1] = scheduler.locale.date.month_full_hash[temp[i]] || 0;\n break;\n\n default:\n break;\n }\n }\n\n if (utc) {\n return new Date(Date.UTC(set[0], set[1], set[2], set[3], set[4], set[5]));\n }\n\n return new Date(set[0], set[1], set[2], set[3], set[4], set[5]);\n };\n };\n\n var canUseCsp = false;\n\n (function () {\n try {\n new Function(\"canUseCsp = false;\");\n } catch (e) {\n canUseCsp = true;\n }\n })();\n\n function useCsp() {\n var result = false;\n\n if (scheduler.config.csp === \"auto\") {\n result = canUseCsp;\n } else {\n result = scheduler.config.csp;\n }\n\n return result;\n }\n\n scheduler.date = {\n init: function init() {\n var s = scheduler.locale.date.month_short;\n var t = scheduler.locale.date.month_short_hash = {};\n\n for (var i = 0; i < s.length; i++) {\n t[s[i]] = i;\n }\n\n var s = scheduler.locale.date.month_full;\n var t = scheduler.locale.date.month_full_hash = {};\n\n for (var i = 0; i < s.length; i++) {\n t[s[i]] = i;\n }\n },\n _bind_host_object: function _bind_host_object(method) {\n if (method.bind) {\n return method.bind(scheduler);\n } else {\n return function () {\n return method.apply(scheduler, arguments);\n };\n }\n },\n date_part: function date_part(date) {\n var old = new Date(date);\n date.setHours(0);\n date.setMinutes(0);\n date.setSeconds(0);\n date.setMilliseconds(0);\n if (date.getHours() && ( //shift to yesterday on dst\n date.getDate() < old.getDate() || date.getMonth() < old.getMonth() || date.getFullYear() < old.getFullYear())) date.setTime(date.getTime() + 60 * 60 * 1000 * (24 - date.getHours()));\n return date;\n },\n time_part: function time_part(date) {\n return (date.valueOf() / 1000 - date.getTimezoneOffset() * 60) % 86400;\n },\n week_start: function week_start(date) {\n var shift = date.getDay();\n\n if (scheduler.config.start_on_monday) {\n if (shift === 0) shift = 6;else shift--;\n }\n\n return this.date_part(this.add(date, -1 * shift, \"day\"));\n },\n month_start: function month_start(date) {\n date.setDate(1);\n return this.date_part(date);\n },\n year_start: function year_start(date) {\n date.setMonth(0);\n return this.month_start(date);\n },\n day_start: function day_start(date) {\n return this.date_part(date);\n },\n _add_days: function _add_days(date, inc) {\n var ndate = new Date(date.valueOf());\n ndate.setDate(ndate.getDate() + inc); // Workaround for Safari/iOS timezone bug, ref:OKZ-149693\n\n if (inc == Math.round(inc) && inc > 0) {\n var datesDiff = +ndate - +date,\n rest = datesDiff % (24 * 60 * 60 * 1000);\n\n if (rest && date.getTimezoneOffset() == ndate.getTimezoneOffset()) {\n var hours = rest / (60 * 60 * 1000);\n ndate.setTime(ndate.getTime() + (24 - hours) * 60 * 60 * 1000);\n }\n }\n\n if (inc >= 0 && !date.getHours() && ndate.getHours() && ( //shift to yesterday on dst\n ndate.getDate() < date.getDate() || ndate.getMonth() < date.getMonth() || ndate.getFullYear() < date.getFullYear())) ndate.setTime(ndate.getTime() + 60 * 60 * 1000 * (24 - ndate.getHours()));\n return ndate;\n },\n add: function add(date, inc, mode) {\n var ndate = new Date(date.valueOf());\n\n switch (mode) {\n case \"day\":\n ndate = scheduler.date._add_days(ndate, inc);\n break;\n\n case \"week\":\n ndate = scheduler.date._add_days(ndate, inc * 7);\n break;\n\n case \"month\":\n ndate.setMonth(ndate.getMonth() + inc);\n break;\n\n case \"year\":\n ndate.setYear(ndate.getFullYear() + inc);\n break;\n\n case \"hour\":\n /*\r\n setHour(getHour() + inc) and setMinutes gives weird result when is applied on a Daylight Saving time switch\r\n setTime seems working as expected\r\n */\n ndate.setTime(ndate.getTime() + inc * 60 * 60 * 1000);\n break;\n\n case \"minute\":\n ndate.setTime(ndate.getTime() + inc * 60 * 1000);\n break;\n\n default:\n return scheduler.date[\"add_\" + mode](date, inc, mode);\n }\n\n return ndate;\n },\n to_fixed: function to_fixed(num) {\n if (num < 10) return \"0\" + num;\n return num;\n },\n copy: function copy(date) {\n return new Date(date.valueOf());\n },\n date_to_str: function date_to_str(format, utc) {\n if (useCsp()) {\n return csp_date_to_str(format, utc);\n }\n\n format = format.replace(/%[a-zA-Z]/g, function (a) {\n switch (a) {\n case \"%d\":\n return \"\\\"+this.date.to_fixed(date.getDate())+\\\"\";\n\n case \"%m\":\n return \"\\\"+this.date.to_fixed((date.getMonth()+1))+\\\"\";\n\n case \"%j\":\n return \"\\\"+date.getDate()+\\\"\";\n\n case \"%n\":\n return \"\\\"+(date.getMonth()+1)+\\\"\";\n\n case \"%y\":\n return \"\\\"+this.date.to_fixed(date.getFullYear()%100)+\\\"\";\n\n case \"%Y\":\n return \"\\\"+date.getFullYear()+\\\"\";\n\n case \"%D\":\n return \"\\\"+this.locale.date.day_short[date.getDay()]+\\\"\";\n\n case \"%l\":\n return \"\\\"+this.locale.date.day_full[date.getDay()]+\\\"\";\n\n case \"%M\":\n return \"\\\"+this.locale.date.month_short[date.getMonth()]+\\\"\";\n\n case \"%F\":\n return \"\\\"+this.locale.date.month_full[date.getMonth()]+\\\"\";\n\n case \"%h\":\n return \"\\\"+this.date.to_fixed((date.getHours()+11)%12+1)+\\\"\";\n\n case \"%g\":\n return \"\\\"+((date.getHours()+11)%12+1)+\\\"\";\n\n case \"%G\":\n return \"\\\"+date.getHours()+\\\"\";\n\n case \"%H\":\n return \"\\\"+this.date.to_fixed(date.getHours())+\\\"\";\n\n case \"%i\":\n return \"\\\"+this.date.to_fixed(date.getMinutes())+\\\"\";\n\n case \"%a\":\n return \"\\\"+(date.getHours()>11?\\\"pm\\\":\\\"am\\\")+\\\"\";\n\n case \"%A\":\n return \"\\\"+(date.getHours()>11?\\\"PM\\\":\\\"AM\\\")+\\\"\";\n\n case \"%s\":\n return \"\\\"+this.date.to_fixed(date.getSeconds())+\\\"\";\n\n case \"%W\":\n return \"\\\"+this.date.to_fixed(this.date.getISOWeek(date))+\\\"\";\n\n default:\n return a;\n }\n });\n if (utc) format = format.replace(/date\\.get/g, \"date.getUTC\");\n var func = new Function(\"date\", \"return \\\"\" + format + \"\\\";\");\n return scheduler.date._bind_host_object(func);\n },\n str_to_date: function str_to_date(format, utc, exactFormat) {\n var stringToDateMethod = useCsp() ? csp_str_to_date : generateStringToDate;\n var parseExactFormat = stringToDateMethod(format, utc); //return scheduler.date._bind_host_object(func);\n // eslint-disable-next-line\n\n var yyyyMMddhhIIss = /^[0-9]{4}(\\-|\\/)[0-9]{2}(\\-|\\/)[0-9]{2} ?(([0-9]{1,2}:[0-9]{1,2})(:[0-9]{1,2})?)?$/; // MM/dd/yyyy - default old format for xml-date\n // eslint-disable-next-line\n\n var MMddyyyyhhIIss = /^[0-9]{2}\\/[0-9]{2}\\/[0-9]{4} ?(([0-9]{1,2}:[0-9]{2})(:[0-9]{1,2})?)?$/; // dd-MM-yyyy - default old format for api-date\n // eslint-disable-next-line\n\n var ddMMyyyyhhIIss = /^[0-9]{2}\\-[0-9]{2}\\-[0-9]{4} ?(([0-9]{1,2}:[0-9]{1,2})(:[0-9]{1,2})?)?$/; // eslint-disable-next-line\n\n var ISO8601 = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n\n var isYMDDate = function isYMDDate(datestr) {\n return yyyyMMddhhIIss.test(String(datestr));\n };\n\n var isMDYDate = function isMDYDate(datestr) {\n return MMddyyyyhhIIss.test(String(datestr));\n };\n\n var isDMYDate = function isDMYDate(datestr) {\n return ddMMyyyyhhIIss.test(String(datestr));\n };\n\n var isISO8601 = function isISO8601(datestr) {\n return ISO8601.test(datestr);\n };\n\n var parseYMD = stringToDateMethod(\"%Y-%m-%d %H:%i:%s\", utc);\n var parseMDY = stringToDateMethod(\"%m/%d/%Y %H:%i:%s\", utc);\n var parseDMY = stringToDateMethod(\"%d-%m-%Y %H:%i:%s\", utc);\n return function (dateString) {\n if (!exactFormat && !scheduler.config.parse_exact_format) {\n if (dateString && dateString.getISOWeek) {\n return new Date(dateString);\n } else if (typeof dateString === \"number\") {\n return new Date(dateString);\n } else if (isYMDDate(dateString)) {\n return parseYMD(dateString);\n } else if (isMDYDate(dateString)) {\n return parseMDY(dateString);\n } else if (isDMYDate(dateString)) {\n return parseDMY(dateString);\n } else if (isISO8601(dateString)) {\n return new Date(dateString);\n }\n }\n\n return parseExactFormat.call(scheduler, dateString);\n };\n },\n getISOWeek: function getISOWeek(ndate) {\n if (!ndate) return false;\n ndate = this.date_part(new Date(ndate));\n var nday = ndate.getDay();\n\n if (nday === 0) {\n nday = 7;\n }\n\n var first_thursday = new Date(ndate.valueOf());\n first_thursday.setDate(ndate.getDate() + (4 - nday));\n var year_number = first_thursday.getFullYear(); // year of the first Thursday\n\n var ordinal_date = Math.round((first_thursday.getTime() - new Date(year_number, 0, 1).getTime()) / 86400000); //ordinal date of the first Thursday - 1 (so not really ordinal date)\n\n var week_number = 1 + Math.floor(ordinal_date / 7);\n return week_number;\n },\n getUTCISOWeek: function getUTCISOWeek(ndate) {\n return this.getISOWeek(this.convert_to_utc(ndate));\n },\n convert_to_utc: function convert_to_utc(date) {\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());\n }\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function extend(scheduler) {\n scheduler._events = {};\n\n scheduler.clearAll = function () {\n this._events = {};\n this._loaded = {};\n this._edit_id = null;\n this._select_id = null;\n this._drag_id = null;\n this._drag_mode = null;\n this._drag_pos = null;\n this._new_event = null;\n this.clear_view();\n this.callEvent(\"onClearAll\", []);\n };\n\n scheduler.addEvent = function (start_date, end_date, text, id, extra_data) {\n if (!arguments.length) return this.addEventNow();\n var ev = start_date;\n\n if (arguments.length != 1) {\n ev = extra_data || {};\n ev.start_date = start_date;\n ev.end_date = end_date;\n ev.text = text;\n ev.id = id;\n }\n\n ev.id = ev.id || scheduler.uid();\n ev.text = ev.text || \"\";\n if (typeof ev.start_date == \"string\") ev.start_date = this.templates.api_date(ev.start_date);\n if (typeof ev.end_date == \"string\") ev.end_date = this.templates.api_date(ev.end_date);\n var d = (this.config.event_duration || this.config.time_step) * 60000;\n if (ev.start_date.valueOf() == ev.end_date.valueOf()) ev.end_date.setTime(ev.end_date.valueOf() + d);\n ev.start_date.setMilliseconds(0);\n ev.end_date.setMilliseconds(0);\n ev._timed = this.isOneDayEvent(ev);\n var is_new = !this._events[ev.id];\n this._events[ev.id] = ev;\n this.event_updated(ev);\n if (!this._loading) this.callEvent(is_new ? \"onEventAdded\" : \"onEventChanged\", [ev.id, ev]);\n return ev.id;\n };\n\n scheduler.deleteEvent = function (id, silent) {\n var ev = this._events[id];\n if (!silent && (!this.callEvent(\"onBeforeEventDelete\", [id, ev]) || !this.callEvent(\"onConfirmedBeforeEventDelete\", [id, ev]))) return;\n\n if (ev) {\n if (scheduler.getState().select_id == id) {\n scheduler.unselect();\n }\n\n delete this._events[id];\n this.event_updated(ev);\n\n if (this._drag_id == ev.id) {\n this._drag_id = null;\n this._drag_mode = null;\n this._drag_pos = null;\n }\n }\n\n this.callEvent(\"onEventDeleted\", [id, ev]);\n };\n\n scheduler.getEvent = function (id) {\n return this._events[id];\n };\n\n scheduler.setEvent = function (id, hash) {\n if (!hash.id) hash.id = id;\n this._events[id] = hash;\n };\n\n scheduler.for_rendered = function (id, method) {\n for (var i = this._rendered.length - 1; i >= 0; i--) {\n if (this._rendered[i].getAttribute(this.config.event_attribute) == id) method(this._rendered[i], i);\n }\n };\n\n scheduler.changeEventId = function (id, new_id) {\n if (id == new_id) return;\n var ev = this._events[id];\n\n if (ev) {\n ev.id = new_id;\n this._events[new_id] = ev;\n delete this._events[id];\n }\n\n this.for_rendered(id, function (r) {\n r.setAttribute(\"event_id\", new_id); // for backward compatibility\n\n r.setAttribute(scheduler.config.event_attribute, new_id);\n });\n if (this._select_id == id) this._select_id = new_id;\n if (this._edit_id == id) this._edit_id = new_id; //if (this._drag_id==id) this._drag_id=new_id;\n\n this.callEvent(\"onEventIdChange\", [id, new_id]);\n };\n\n (function () {\n var attrs = [\"text\", \"Text\", \"start_date\", \"StartDate\", \"end_date\", \"EndDate\"];\n\n var create_getter = function create_getter(name) {\n return function (id) {\n return scheduler.getEvent(id)[name];\n };\n };\n\n var create_setter = function create_setter(name) {\n return function (id, value) {\n var ev = scheduler.getEvent(id);\n ev[name] = value;\n ev._changed = true;\n ev._timed = this.isOneDayEvent(ev);\n scheduler.event_updated(ev, true);\n };\n };\n\n for (var i = 0; i < attrs.length; i += 2) {\n scheduler[\"getEvent\" + attrs[i + 1]] = create_getter(attrs[i]);\n scheduler[\"setEvent\" + attrs[i + 1]] = create_setter(attrs[i]);\n }\n })();\n\n scheduler.event_updated = function (ev, force) {\n if (this.is_visible_events(ev)) this.render_view_data();else this.clear_event(ev.id);\n };\n\n scheduler.is_visible_events = function (ev) {\n if (!this._min_date || !this._max_date) {\n return false;\n } //if in displayed dates\n\n\n var in_visible_range = ev.start_date.valueOf() < this._max_date.valueOf() && this._min_date.valueOf() < ev.end_date.valueOf();\n\n if (in_visible_range) {\n //end dates are not between last/first hours\n var evFirstHour = ev.start_date.getHours(),\n evLastHour = ev.end_date.getHours() + ev.end_date.getMinutes() / 60,\n lastHour = this.config.last_hour,\n firstHour = this.config.first_hour;\n var end_dates_visible = this._table_view || !((evLastHour > lastHour || evLastHour <= firstHour) && (evFirstHour >= lastHour || evFirstHour < firstHour));\n\n if (end_dates_visible) {\n return true;\n } else {\n //event is bigger than area hidden between last/first hours\n var event_duration = (ev.end_date.valueOf() - ev.start_date.valueOf()) / (1000 * 60 * 60),\n //hours\n hidden_duration = 24 - (this.config.last_hour - this.config.first_hour);\n return !!(event_duration > hidden_duration || evFirstHour < lastHour && evLastHour > firstHour);\n }\n } else {\n return false;\n }\n };\n\n scheduler.isOneDayEvent = function (ev) {\n // decrease by one ms so events that ends on midnight on the next day were still considered one day events\n // e.g. (09-02-2018 19:00 - 10-02-2018 00:00)\n // events >= 24h long are considered multiday\n var checkEndDate = new Date(ev.end_date.valueOf() - 1);\n return ev.start_date.getFullYear() === checkEndDate.getFullYear() && ev.start_date.getMonth() === checkEndDate.getMonth() && ev.start_date.getDate() === checkEndDate.getDate() && ev.end_date.valueOf() - ev.start_date.valueOf() < 1000 * 60 * 60 * 24;\n };\n\n scheduler.get_visible_events = function (only_timed) {\n //not the best strategy for sure\n var stack = [];\n\n for (var id in this._events) {\n if (this.is_visible_events(this._events[id])) if (!only_timed || this._events[id]._timed) if (this.filter_event(id, this._events[id])) stack.push(this._events[id]);\n }\n\n return stack;\n };\n\n scheduler.filter_event = function (id, ev) {\n var filter = this[\"filter_\" + this._mode];\n return filter ? filter(id, ev) : true;\n };\n\n scheduler._is_main_area_event = function (ev) {\n return !!ev._timed;\n };\n\n scheduler.render_view_data = function (evs, hold) {\n var full = false;\n\n if (!evs) {\n full = true;\n\n if (this._not_render) {\n this._render_wait = true;\n return;\n }\n\n this._render_wait = false;\n this.clear_view();\n evs = this.get_visible_events(!(this._table_view || this.config.multi_day));\n }\n\n for (var i = 0, len = evs.length; i < len; i++) {\n this._recalculate_timed(evs[i]);\n }\n\n if (this.config.multi_day && !this._table_view) {\n var tvs = [];\n var tvd = [];\n\n for (var i = 0; i < evs.length; i++) {\n if (this._is_main_area_event(evs[i])) tvs.push(evs[i]);else tvd.push(evs[i]);\n }\n\n if (!this._els['dhx_multi_day']) {\n var message = scheduler._commonErrorMessages.unknownView(this._mode);\n\n throw new Error(message);\n } // multiday events\n\n\n this._rendered_location = this._els['dhx_multi_day'][0];\n this._table_view = true;\n this.render_data(tvd, hold);\n this._table_view = false; // normal events\n\n this._rendered_location = this._els['dhx_cal_data'][0];\n this._table_view = false;\n this.render_data(tvs, hold);\n } else {\n var buffer = document.createDocumentFragment();\n var renderedLocation = this._els['dhx_cal_data'][0];\n this._rendered_location = buffer;\n this.render_data(evs, hold);\n renderedLocation.appendChild(buffer);\n this._rendered_location = renderedLocation;\n }\n\n if (full) {\n this.callEvent(\"onDataRender\", []);\n }\n };\n\n scheduler._view_month_day = function (e) {\n var date = scheduler.getActionData(e).date;\n if (!scheduler.callEvent(\"onViewMoreClick\", [date])) return;\n scheduler.setCurrentView(date, \"day\");\n };\n\n scheduler._render_month_link = function (ev) {\n var parent = this._rendered_location;\n\n var toRender = this._lame_clone(ev); //render links in each cell of multiday events\n\n\n for (var d = ev._sday; d < ev._eday; d++) {\n toRender._sday = d;\n toRender._eday = d + 1;\n var date = scheduler.date;\n var curr = scheduler._min_date;\n curr = date.add(curr, toRender._sweek, \"week\");\n curr = date.add(curr, toRender._sday, \"day\");\n var count = scheduler.getEvents(curr, date.add(curr, 1, \"day\")).length;\n\n var pos = this._get_event_bar_pos(toRender);\n\n var widt = pos.x2 - pos.x;\n var el = document.createElement(\"div\");\n scheduler.event(el, \"click\", function (e) {\n scheduler._view_month_day(e);\n });\n el.className = \"dhx_month_link\";\n el.style.top = pos.y + \"px\";\n el.style.left = pos.x + \"px\";\n el.style.width = widt + \"px\";\n el.innerHTML = scheduler.templates.month_events_link(curr, count);\n\n this._rendered.push(el);\n\n parent.appendChild(el);\n }\n };\n\n scheduler._recalculate_timed = function (id) {\n if (!id) return;\n var ev;\n if (_typeof(id) != \"object\") ev = this._events[id];else ev = id;\n if (!ev) return;\n ev._timed = scheduler.isOneDayEvent(ev);\n };\n\n scheduler.attachEvent(\"onEventChanged\", scheduler._recalculate_timed);\n scheduler.attachEvent(\"onEventAdded\", scheduler._recalculate_timed);\n\n scheduler.render_data = function (evs, hold) {\n evs = this._pre_render_events(evs, hold);\n var containers = {};\n\n for (var i = 0; i < evs.length; i++) {\n if (this._table_view) {\n if (scheduler._mode != 'month') {\n this.render_event_bar(evs[i]); //may be multiday section on other views\n } else {\n var max_evs = scheduler.config.max_month_events;\n\n if (max_evs !== max_evs * 1 || evs[i]._sorder < max_evs) {\n //of max number events per month cell is set and event can be rendered\n this.render_event_bar(evs[i]);\n } else if (max_evs !== undefined && evs[i]._sorder == max_evs) {\n //render 'view more' links\n scheduler._render_month_link(evs[i]);\n } else {//do not render events with ordinal number > maximum events per cell\n }\n }\n } else {\n var ev = evs[i];\n var parent = scheduler.locate_holder(ev._sday);\n if (!parent) continue; //attempt to render non-visible event\n\n if (!containers[ev._sday]) {\n containers[ev._sday] = {\n real: parent,\n buffer: document.createDocumentFragment(),\n width: parent.clientWidth\n };\n }\n\n var container = containers[ev._sday];\n this.render_event(ev, container.buffer, container.width);\n }\n }\n\n for (var i in containers) {\n var container = containers[i];\n\n if (container.real && container.buffer) {\n container.real.appendChild(container.buffer);\n }\n }\n };\n\n scheduler._get_first_visible_cell = function (cells) {\n for (var i = 0; i < cells.length; i++) {\n if ((cells[i].className || \"\").indexOf(\"dhx_scale_ignore\") == -1) {\n return cells[i];\n }\n } // if no visible cell found, return cells[0] to be more tolerant, since it's the original logic\n\n\n return cells[0];\n };\n\n scheduler._pre_render_events = function (evs, hold) {\n var hb = this.xy.bar_height;\n var h_old = this._colsS.heights;\n var h = this._colsS.heights = [0, 0, 0, 0, 0, 0, 0];\n var data = this._els[\"dhx_cal_data\"][0];\n\n if (!this._table_view) {\n evs = this._pre_render_events_line(evs, hold); //ignore long events for now\n } else {\n evs = this._pre_render_events_table(evs, hold);\n }\n\n if (this._table_view) {\n if (hold) this._colsS.heights = h_old;else {\n var evl = data.firstChild;\n\n if (evl.rows) {\n for (var i = 0; i < evl.rows.length; i++) {\n h[i]++;\n var cells = evl.rows[i].cells;\n var cellHeight = this._colsS.height - this.xy.month_head_height;\n\n if (h[i] * hb > cellHeight) {\n // 22 - height of cell's header\n //we have overflow, update heights\n var cHeight = cellHeight;\n\n if (this.config.max_month_events * 1 !== this.config.max_month_events || h[i] <= this.config.max_month_events) {\n cHeight = h[i] * hb;\n } else if ((this.config.max_month_events + 1) * hb > cellHeight) {\n cHeight = (this.config.max_month_events + 1) * hb;\n }\n\n for (var j = 0; j < cells.length; j++) {\n cells[j].childNodes[1].style.height = cHeight + \"px\";\n } //\th[i] = (h[i - 1] || 0) + cells[0].offsetHeight;\n\n }\n\n h[i] = (h[i - 1] || 0) + scheduler._get_first_visible_cell(cells).offsetHeight;\n }\n\n h.unshift(0);\n\n if (evl.parentNode.offsetHeight < evl.parentNode.scrollHeight && !scheduler._colsS.scroll_fix && scheduler.xy.scroll_width) {\n var scale_settings = scheduler._colsS,\n sum_width = scale_settings[scale_settings.col_length],\n row_heights = scale_settings.heights.slice();\n sum_width -= scheduler.xy.scroll_width || 0;\n\n this._calc_scale_sizes(sum_width, this._min_date, this._max_date);\n\n scheduler._colsS.heights = row_heights;\n this.set_xy(this._els[\"dhx_cal_header\"][0], sum_width, this.xy.scale_height);\n\n scheduler._render_scales(this._els[\"dhx_cal_header\"][0]);\n\n scheduler._render_month_scale(this._els[\"dhx_cal_data\"][0], this._get_timeunit_start(), this._min_date);\n\n scale_settings.scroll_fix = true;\n }\n } else {\n if (!evs.length && this._els[\"dhx_multi_day\"][0].style.visibility == \"visible\") h[0] = -1;\n\n if (evs.length || h[0] == -1) {\n //shift days to have space for multiday events\n //var childs = evl.parentNode.childNodes;\n // +1 so multiday events would have 2px from top and 2px from bottom by default\n var full_multi_day_height = (h[0] + 1) * hb + 1;\n var used_multi_day_height = full_multi_day_height;\n var used_multi_day_height_css = full_multi_day_height + \"px\";\n\n if (this.config.multi_day_height_limit) {\n used_multi_day_height = Math.min(full_multi_day_height, this.config.multi_day_height_limit);\n used_multi_day_height_css = used_multi_day_height + \"px\";\n }\n\n data.style.top = this._els[\"dhx_cal_navline\"][0].offsetHeight + this._els[\"dhx_cal_header\"][0].offsetHeight + used_multi_day_height + 'px';\n data.style.height = this._obj.offsetHeight - parseInt(data.style.top, 10) - (this.xy.margin_top || 0) + 'px';\n var multi_day_section = this._els[\"dhx_multi_day\"][0];\n multi_day_section.style.height = used_multi_day_height_css;\n multi_day_section.style.visibility = h[0] == -1 ? \"hidden\" : \"visible\"; // icon\n\n var multi_day_icon = this._els[\"dhx_multi_day\"][1];\n multi_day_icon.style.height = used_multi_day_height_css;\n multi_day_icon.style.visibility = h[0] == -1 ? \"hidden\" : \"visible\";\n multi_day_icon.className = h[0] ? \"dhx_multi_day_icon\" : \"dhx_multi_day_icon_small\";\n this._dy_shift = (h[0] + 1) * hb;\n\n if (this.config.multi_day_height_limit) {\n this._dy_shift = Math.min(this.config.multi_day_height_limit, this._dy_shift);\n }\n\n h[0] = 0;\n\n if (used_multi_day_height != full_multi_day_height) {\n data.style.top = parseInt(data.style.top) + 2 + \"px\";\n multi_day_section.style.overflowY = \"auto\"; //\tmulti_day_section.style.width = (parseInt(this._els[\"dhx_cal_navline\"][0].style.width)) + \"px\";\n\n multi_day_icon.style.position = \"fixed\";\n multi_day_icon.style.top = \"\";\n multi_day_icon.style.left = \"\";\n }\n }\n }\n }\n }\n\n return evs;\n };\n\n scheduler._get_event_sday = function (ev) {\n // get day in current view\n // use rounding for 23 or 25 hour days on DST\n var datePart = this.date.day_start(new Date(ev.start_date));\n return Math.round((datePart.valueOf() - this._min_date.valueOf()) / (24 * 60 * 60 * 1000));\n };\n\n scheduler._get_event_mapped_end_date = function (ev) {\n var end_date = ev.end_date;\n\n if (this.config.separate_short_events) {\n var ev_duration = (ev.end_date - ev.start_date) / 60000; // minutes\n\n if (ev_duration < this._min_mapped_duration) {\n end_date = this.date.add(end_date, this._min_mapped_duration - ev_duration, \"minute\");\n }\n }\n\n return end_date;\n };\n\n scheduler._pre_render_events_line = function (evs, hold) {\n evs.sort(function (a, b) {\n if (a.start_date.valueOf() == b.start_date.valueOf()) return a.id > b.id ? 1 : -1;\n return a.start_date > b.start_date ? 1 : -1;\n });\n var days = []; //events by weeks\n\n var evs_originals = [];\n this._min_mapped_duration = Math.ceil(this.xy.min_event_height * 60 / this.config.hour_size_px); // values could change along the way\n\n for (var i = 0; i < evs.length; i++) {\n var ev = evs[i]; //check date overflow\n\n var sd = ev.start_date;\n var ed = ev.end_date; //check scale overflow\n\n var sh = sd.getHours();\n var eh = ed.getHours();\n ev._sday = this._get_event_sday(ev); // sday based on event start_date\n\n if (this._ignores[ev._sday]) {\n //ignore event\n evs.splice(i, 1);\n i--;\n continue;\n }\n\n if (!days[ev._sday]) days[ev._sday] = [];\n\n if (!hold) {\n ev._inner = false;\n var stack = days[ev._sday];\n\n while (stack.length) {\n var t_ev = stack[stack.length - 1];\n\n var t_end_date = this._get_event_mapped_end_date(t_ev);\n\n if (t_end_date.valueOf() <= ev.start_date.valueOf()) {\n stack.splice(stack.length - 1, 1);\n } else {\n break;\n }\n }\n\n var slot_index = stack.length;\n var sorderSet = false;\n\n for (var j = 0; j < stack.length; j++) {\n var t_ev = stack[j];\n\n var t_end_date = this._get_event_mapped_end_date(t_ev);\n\n if (t_end_date.valueOf() <= ev.start_date.valueOf()) {\n sorderSet = true;\n ev._sorder = t_ev._sorder;\n slot_index = j;\n ev._inner = true;\n break;\n }\n }\n\n if (stack.length) stack[stack.length - 1]._inner = true;\n\n if (!sorderSet) {\n if (stack.length) {\n if (stack.length <= stack[stack.length - 1]._sorder) {\n if (!stack[stack.length - 1]._sorder) ev._sorder = 0;else for (j = 0; j < stack.length; j++) {\n var _is_sorder = false;\n\n for (var k = 0; k < stack.length; k++) {\n if (stack[k]._sorder == j) {\n _is_sorder = true;\n break;\n }\n }\n\n if (!_is_sorder) {\n ev._sorder = j;\n break;\n }\n }\n ev._inner = true;\n } else {\n var _max_sorder = stack[0]._sorder;\n\n for (j = 1; j < stack.length; j++) {\n if (stack[j]._sorder > _max_sorder) _max_sorder = stack[j]._sorder;\n }\n\n ev._sorder = _max_sorder + 1;\n ev._inner = false;\n }\n } else ev._sorder = 0;\n }\n\n stack.splice(slot_index, slot_index == stack.length ? 0 : 1, ev);\n\n if (stack.length > (stack.max_count || 0)) {\n stack.max_count = stack.length;\n ev._count = stack.length;\n } else {\n ev._count = ev._count ? ev._count : 1;\n }\n }\n\n if (sh < this.config.first_hour || eh >= this.config.last_hour) {\n // Need to create copy of event as we will be changing it's start/end date\n // e.g. first_hour = 11 and event.start_date hours = 9. Need to preserve that info\n evs_originals.push(ev);\n evs[i] = ev = this._copy_event(ev);\n\n if (sh < this.config.first_hour) {\n ev.start_date.setHours(this.config.first_hour);\n ev.start_date.setMinutes(0);\n }\n\n if (eh >= this.config.last_hour) {\n ev.end_date.setMinutes(0);\n ev.end_date.setHours(this.config.last_hour);\n }\n\n if (ev.start_date > ev.end_date || sh == this.config.last_hour) {\n evs.splice(i, 1);\n i--;\n continue;\n }\n }\n }\n\n if (!hold) {\n for (var i = 0; i < evs.length; i++) {\n evs[i]._count = days[evs[i]._sday].max_count;\n }\n\n for (var i = 0; i < evs_originals.length; i++) {\n evs_originals[i]._count = days[evs_originals[i]._sday].max_count;\n }\n }\n\n return evs;\n };\n\n scheduler._time_order = function (evs) {\n evs.sort(function (a, b) {\n if (a.start_date.valueOf() == b.start_date.valueOf()) {\n if (a._timed && !b._timed) return 1;\n if (!a._timed && b._timed) return -1;\n return a.id > b.id ? 1 : -1;\n }\n\n return a.start_date > b.start_date ? 1 : -1;\n });\n };\n\n scheduler._is_any_multiday_cell_visible = function (from, to, event) {\n var cols = this._cols.length;\n var isAnyCellVisible = false;\n var checkDate = from;\n var noCells = true;\n var lastDayEnd = new Date(to);\n\n if (scheduler.date.day_start(new Date(to)).valueOf() != to.valueOf()) {\n lastDayEnd = scheduler.date.day_start(lastDayEnd);\n lastDayEnd = scheduler.date.add(lastDayEnd, 1, \"day\");\n }\n\n while (checkDate < lastDayEnd) {\n noCells = false;\n var cellIndex = this.locate_holder_day(checkDate, false, event);\n var weekCellIndex = cellIndex % cols;\n\n if (!this._ignores[weekCellIndex]) {\n isAnyCellVisible = true;\n break;\n }\n\n checkDate = scheduler.date.add(checkDate, 1, \"day\");\n }\n\n return noCells || isAnyCellVisible;\n };\n\n scheduler._pre_render_events_table = function (evs, hold) {\n // max - max height of week slot\n this._time_order(evs);\n\n var out = [];\n var weeks = [[], [], [], [], [], [], []]; //events by weeks\n\n var max = this._colsS.heights;\n var start_date;\n var cols = this._cols.length;\n var chunks_info = {};\n\n for (var i = 0; i < evs.length; i++) {\n var ev = evs[i];\n var id = ev.id;\n\n if (!chunks_info[id]) {\n chunks_info[id] = {\n first_chunk: true,\n last_chunk: true\n };\n }\n\n var chunk_info = chunks_info[id];\n var sd = start_date || ev.start_date;\n var ed = ev.end_date; //trim events which are crossing through current view\n\n if (sd < this._min_date) {\n chunk_info.first_chunk = false;\n sd = this._min_date;\n }\n\n if (ed > this._max_date) {\n chunk_info.last_chunk = false;\n ed = this._max_date;\n }\n\n var locate_s = this.locate_holder_day(sd, false, ev);\n ev._sday = locate_s % cols; //skip single day events for ignored dates\n\n if (this._ignores[ev._sday] && ev._timed) continue;\n var locate_e = this.locate_holder_day(ed, true, ev) || cols;\n ev._eday = locate_e % cols || cols; //cols used to fill full week, when event end on monday\n\n ev._length = locate_e - locate_s; //3600000 - compensate 1 hour during winter|summer time shift\n\n ev._sweek = Math.floor((this._correct_shift(sd.valueOf(), 1) - this._min_date.valueOf()) / (60 * 60 * 1000 * 24 * cols));\n\n var isAnyCellVisible = scheduler._is_any_multiday_cell_visible(sd, ed, ev);\n\n if (!isAnyCellVisible) {\n continue;\n } //current slot\n\n\n var stack = weeks[ev._sweek]; //check order position\n\n var stack_line;\n\n for (stack_line = 0; stack_line < stack.length; stack_line++) {\n if (stack[stack_line]._eday <= ev._sday) break;\n }\n\n if (!ev._sorder || !hold) {\n ev._sorder = stack_line;\n }\n\n if (ev._sday + ev._length <= cols) {\n start_date = null;\n out.push(ev);\n stack[stack_line] = ev; //get max height of slot\n\n max[ev._sweek] = stack.length - 1;\n ev._first_chunk = chunk_info.first_chunk;\n ev._last_chunk = chunk_info.last_chunk;\n } else {\n // split long event in chunks\n var copy = this._copy_event(ev);\n\n copy.id = ev.id;\n copy._length = cols - ev._sday;\n copy._eday = cols;\n copy._sday = ev._sday;\n copy._sweek = ev._sweek;\n copy._sorder = ev._sorder;\n copy.end_date = this.date.add(sd, copy._length, \"day\");\n copy._first_chunk = chunk_info.first_chunk;\n\n if (chunk_info.first_chunk) {\n chunk_info.first_chunk = false;\n }\n\n out.push(copy);\n stack[stack_line] = copy;\n start_date = copy.end_date; //get max height of slot\n\n max[ev._sweek] = stack.length - 1;\n i--;\n continue; //repeat same step\n }\n }\n\n return out;\n };\n\n scheduler._copy_dummy = function () {\n var a = new Date(this.start_date);\n var b = new Date(this.end_date);\n this.start_date = a;\n this.end_date = b;\n };\n\n scheduler._copy_event = function (ev) {\n this._copy_dummy.prototype = ev;\n return new this._copy_dummy(); //return {start_date:ev.start_date, end_date:ev.end_date, text:ev.text, id:ev.id}\n };\n\n scheduler._rendered = [];\n\n scheduler.clear_view = function () {\n for (var i = 0; i < this._rendered.length; i++) {\n var obj = this._rendered[i];\n if (obj.parentNode) obj.parentNode.removeChild(obj);\n }\n\n this._rendered = [];\n };\n\n scheduler.updateEvent = function (id) {\n var ev = this.getEvent(id);\n this.clear_event(id);\n\n if (ev && this.is_visible_events(ev) && this.filter_event(id, ev) && (this._table_view || this.config.multi_day || ev._timed)) {\n if (this.config.update_render) {\n this.render_view_data();\n } else {\n if (this.getState().mode == \"month\" && !this.getState().drag_id && !this.isOneDayEvent(ev)) {\n this.render_view_data();\n } else {\n this.render_view_data([ev], true);\n }\n }\n }\n };\n\n scheduler.clear_event = function (id) {\n this.for_rendered(id, function (node, i) {\n if (node.parentNode) node.parentNode.removeChild(node);\n\n scheduler._rendered.splice(i, 1);\n });\n };\n\n scheduler._y_from_date = function (date) {\n var sm = date.getHours() * 60 + date.getMinutes();\n return Math.round((sm * 60 * 1000 - this.config.first_hour * 60 * 60 * 1000) * this.config.hour_size_px / (60 * 60 * 1000)) % (this.config.hour_size_px * 24); //42px/hour\n };\n\n scheduler._calc_event_y = function (ev, min_height) {\n min_height = min_height || 0;\n var sm = ev.start_date.getHours() * 60 + ev.start_date.getMinutes();\n var em = ev.end_date.getHours() * 60 + ev.end_date.getMinutes() || scheduler.config.last_hour * 60;\n\n var top = this._y_from_date(ev.start_date);\n\n var height = Math.max(min_height, (em - sm) * this.config.hour_size_px / 60); //42px/hour\n\n return {\n top: top,\n height: height\n };\n };\n\n scheduler.render_event = function (ev, buffer, parentWidth) {\n var menu = scheduler.xy.menu_width;\n var menu_offset = this.config.use_select_menu_space ? 0 : menu;\n if (ev._sday < 0) return; //can occur in case of recurring event during time shift\n\n var parent = scheduler.locate_holder(ev._sday);\n if (!parent) return; //attempt to render non-visible event\n\n buffer = buffer || parent;\n\n var pos_y = this._calc_event_y(ev, scheduler.xy.min_event_height);\n\n var top = pos_y.top,\n height = pos_y.height;\n var ev_count = ev._count || 1;\n var ev_sorder = ev._sorder || 0;\n parentWidth = parentWidth || parent.clientWidth;\n var width = Math.floor((parentWidth - menu_offset) / ev_count);\n var left = ev_sorder * width + 1;\n if (!ev._inner) width = width * (ev_count - ev_sorder);\n\n if (this.config.cascade_event_display) {\n var limit = this.config.cascade_event_count;\n var margin = this.config.cascade_event_margin;\n left = ev_sorder % limit * margin;\n var right = ev._inner ? (ev_count - ev_sorder - 1) % limit * margin / 2 : 0;\n width = Math.floor(parentWidth - menu_offset - left - right);\n }\n\n var d = this._render_v_bar(ev, menu_offset + left, top, width, height, ev._text_style, scheduler.templates.event_header(ev.start_date, ev.end_date, ev), scheduler.templates.event_text(ev.start_date, ev.end_date, ev));\n\n this._waiAria.eventAttr(ev, d);\n\n this._rendered.push(d);\n\n buffer.appendChild(d);\n var parentPosition = parseInt(this.config.rtl ? parent.style.right : parent.style.left, 10);\n left = left + parentPosition + menu_offset;\n\n if (this._edit_id == ev.id) {\n d.style.zIndex = 1; //fix overlapping issue\n\n width = Math.max(width - 4, scheduler.xy.editor_width);\n d = document.createElement(\"div\");\n d.setAttribute(\"event_id\", ev.id); // for backward compatibility\n\n d.setAttribute(this.config.event_attribute, ev.id);\n\n this._waiAria.eventAttr(ev, d);\n\n d.className = \"dhx_cal_event dhx_cal_editor\";\n if (this.config.rtl) left++;\n this.set_xy(d, width, height - 20, left, top + (scheduler.xy.event_header_height || 14));\n\n if (ev.color) {\n d.style.backgroundColor = ev.color;\n }\n\n var tplClass = scheduler.templates.event_class(ev.start_date, ev.end_date, ev);\n\n if (tplClass) {\n d.className += \" \" + tplClass;\n }\n\n var d2 = document.createElement(\"div\");\n this.set_xy(d2, width - 6, height - 26);\n d2.style.cssText += \";margin:2px 2px 2px 2px;overflow:hidden;\";\n d.appendChild(d2);\n\n this._els[\"dhx_cal_data\"][0].appendChild(d);\n\n this._rendered.push(d);\n\n d2.innerHTML = \"<textarea class='dhx_cal_editor'>\" + ev.text + \"</textarea>\";\n this._editor = d2.querySelector(\"textarea\");\n if (this._quirks7) this._editor.style.height = height - 12 + \"px\"; //IEFIX\n\n scheduler.event(this._editor, \"keydown\", function (e) {\n if (e.shiftKey) return true;\n var code = e.keyCode;\n if (code == scheduler.keys.edit_save) scheduler.editStop(true);\n if (code == scheduler.keys.edit_cancel) scheduler.editStop(false);\n\n if (code == scheduler.keys.edit_save || code == scheduler.keys.edit_cancel) {\n if (e.preventDefault) e.preventDefault();\n }\n });\n scheduler.event(this._editor, \"selectstart\", function (e) {\n e.cancelBubble = true;\n return true;\n });\n\n scheduler._focus(this._editor, true); //IE and opera can add x-scroll during focusing\n\n\n this._els[\"dhx_cal_data\"][0].scrollLeft = 0;\n }\n\n if (this.xy.menu_width !== 0 && this._select_id == ev.id) {\n if (this.config.cascade_event_display && this._drag_mode) d.style.zIndex = 1; //fix overlapping issue for cascade view in case of dnd of selected event\n\n var icons = this.config[\"icons_\" + (this._edit_id == ev.id ? \"edit\" : \"select\")];\n var icons_str = \"\";\n var bg_color = ev.color ? \"background-color: \" + ev.color + \";\" : \"\";\n var color = ev.textColor ? \"color: \" + ev.textColor + \";\" : \"\";\n var ariaAttr;\n\n for (var i = 0; i < icons.length; i++) {\n ariaAttr = this._waiAria.eventMenuAttrString(icons[i]);\n icons_str += \"<div class='dhx_menu_icon \" + icons[i] + \"' style='\" + bg_color + \"\" + color + \"' title='\" + this.locale.labels[icons[i]] + \"'\" + ariaAttr + \"></div>\";\n }\n\n var obj = this._render_v_bar(ev, left - menu + 1, top, menu, icons.length * 20 + 26 - 2, \"\", \"<div style='\" + bg_color + \"\" + color + \"' class='dhx_menu_head'></div>\", icons_str, true);\n\n obj.style.left = left - menu + 1;\n\n this._els[\"dhx_cal_data\"][0].appendChild(obj);\n\n this._rendered.push(obj);\n }\n\n if (this.config.drag_highlight && this._drag_id == ev.id) {\n this.highlightEventPosition(ev);\n }\n };\n\n scheduler._render_v_bar = function (ev, x, y, w, h, style, contentA, contentB, bottom) {\n var d = document.createElement(\"div\");\n var id = ev.id;\n var cs = bottom ? \"dhx_cal_event dhx_cal_select_menu\" : \"dhx_cal_event\";\n var state = scheduler.getState();\n\n if (state.drag_id == ev.id) {\n cs += \" dhx_cal_event_drag\";\n }\n\n if (state.select_id == ev.id) {\n cs += \" dhx_cal_event_selected\";\n }\n\n var cse = scheduler.templates.event_class(ev.start_date, ev.end_date, ev);\n if (cse) cs = cs + \" \" + cse;\n\n if (this.config.cascade_event_display) {\n cs += \" dhx_cal_event_cascade\";\n }\n\n var bg_color = ev.color ? \"background-color:\" + ev.color + \";\" : \"\";\n var color = ev.textColor ? \"color:\" + ev.textColor + \";\" : \"\";\n\n var borderBox = scheduler._border_box_events();\n\n var borderBoxWidth = w - 2;\n var boxWidth = borderBox ? borderBoxWidth : w - 4,\n headerWidth = borderBox ? borderBoxWidth : w - 6,\n bodyWidth = borderBox ? borderBoxWidth : w - (this._quirks ? 4 : 14),\n footerWidth = borderBox ? borderBoxWidth - 2 : w - 8;\n var bodyHeight = borderBox ? h - this.xy.event_header_height - 1 : h - (this._quirks ? 20 : 30) + 1;\n var html = '<div event_id=\"' + id + '\" ' + this.config.event_attribute + '=\"' + id + '\" class=\"' + cs + '\" style=\"position:absolute; top:' + y + 'px; ' + (this.config.rtl ? 'right:' : 'left:') + x + 'px; width:' + boxWidth + 'px; height:' + h + 'px;' + (style || \"\") + '\"></div>';\n d.innerHTML = html;\n var container = d.cloneNode(true).firstChild;\n\n if (!bottom && scheduler.renderEvent(container, ev, w, h, contentA, contentB)) {\n return container;\n } else {\n container = d.firstChild;\n var inner_html = '<div class=\"dhx_event_move dhx_header\" style=\" width:' + headerWidth + 'px;' + bg_color + '\" > </div>';\n inner_html += '<div class=\"dhx_event_move dhx_title\" style=\"' + bg_color + '' + color + '\">' + contentA + '</div>';\n inner_html += '<div class=\"dhx_body\" style=\" width:' + bodyWidth + 'px; height:' + bodyHeight + 'px;' + bg_color + '' + color + '\">' + contentB + '</div>'; // +2 css specific, moved from render_event\n\n var footer_class = \"dhx_event_resize dhx_footer\";\n if (bottom || ev._drag_resize === false) footer_class = \"dhx_resize_denied \" + footer_class;\n inner_html += '<div class=\"' + footer_class + '\" style=\" width:' + footerWidth + 'px;' + (bottom ? ' margin-top:-1px;' : '') + '' + bg_color + '' + color + '\" ></div>';\n container.innerHTML = inner_html;\n }\n\n return container;\n };\n\n scheduler.renderEvent = function () {\n return false;\n };\n\n scheduler.locate_holder = function (day) {\n if (this._mode == \"day\") return this._els[\"dhx_cal_data\"][0].firstChild; //dirty\n\n return this._els[\"dhx_cal_data\"][0].childNodes[day];\n };\n\n scheduler.locate_holder_day = function (date, past) {\n var day = Math.floor((this._correct_shift(date, 1) - this._min_date) / (60 * 60 * 24 * 1000)); //when locating end data of event , we need to use next day if time part was defined\n\n if (past && this.date.time_part(date)) day++;\n return day;\n };\n\n scheduler._get_dnd_order = function (order, ev_height, max_height) {\n if (!this._drag_event) return order;\n if (!this._drag_event._orig_sorder) this._drag_event._orig_sorder = order;else order = this._drag_event._orig_sorder;\n var evTop = ev_height * order;\n\n while (evTop + ev_height > max_height) {\n order--;\n evTop -= ev_height;\n }\n\n order = Math.max(order, 0);\n return order;\n }; //scheduler._get_event_bar_pos = function(sday, eday, week, drag){\n\n\n scheduler._get_event_bar_pos = function (ev) {\n var rtl = this.config.rtl;\n var columns = this._colsS;\n var x = columns[ev._sday];\n var x2 = columns[ev._eday];\n\n if (rtl) {\n x = columns[columns.col_length] - columns[ev._eday] + columns[0];\n x2 = columns[columns.col_length] - columns[ev._sday] + columns[0];\n }\n\n if (x2 == x) x2 = columns[ev._eday + 1];\n var hb = this.xy.bar_height;\n var order = ev._sorder;\n\n if (ev.id == this._drag_id) {\n var cellHeight = columns.heights[ev._sweek + 1] - columns.heights[ev._sweek] - this.xy.month_head_height; //22 for month head height\n\n order = scheduler._get_dnd_order(order, hb, cellHeight);\n }\n\n var y_event_offset = order * hb;\n var y = columns.heights[ev._sweek] + (columns.height ? this.xy.month_scale_height + 2 : 2) + y_event_offset;\n return {\n x: x,\n x2: x2,\n y: y\n };\n };\n\n scheduler.render_event_bar = function (ev) {\n var parent = this._rendered_location;\n\n var pos = this._get_event_bar_pos(ev);\n\n var y = pos.y;\n var x = pos.x;\n var x2 = pos.x2; // resize for month mutliday events\n\n var resize_handle = \"\"; //events in ignored dates\n\n if (!x2) return;\n var resizable = scheduler.config.resize_month_events && this._mode == \"month\" && (!ev._timed || scheduler.config.resize_month_timed);\n var d = document.createElement(\"div\");\n\n var left_chunk = ev.hasOwnProperty(\"_first_chunk\") && ev._first_chunk,\n right_chunk = ev.hasOwnProperty(\"_last_chunk\") && ev._last_chunk;\n\n var resize_left = resizable && (ev._timed || left_chunk);\n var resize_right = resizable && (ev._timed || right_chunk);\n var timed = true;\n var cs = \"dhx_cal_event_clear\";\n\n if (!ev._timed || resizable) {\n timed = false;\n cs = \"dhx_cal_event_line\";\n }\n\n if (left_chunk) {\n cs += \" dhx_cal_event_line_start\";\n }\n\n if (right_chunk) {\n cs += \" dhx_cal_event_line_end\";\n }\n\n if (resize_left) {\n resize_handle += \"<div class='dhx_event_resize dhx_event_resize_start'></div>\";\n }\n\n if (resize_right) {\n resize_handle += \"<div class='dhx_event_resize dhx_event_resize_end'></div>\";\n }\n\n var cse = scheduler.templates.event_class(ev.start_date, ev.end_date, ev);\n\n if (cse) {\n cs += \" \" + cse;\n }\n\n var bg_color = ev.color ? \"background:\" + ev.color + \";\" : \"\";\n var color = ev.textColor ? \"color:\" + ev.textColor + \";\" : \"\";\n var style_text = [\"position:absolute\", \"top:\" + y + \"px\", \"left:\" + x + \"px\", \"width:\" + (x2 - x - 3 - (timed ? 1 : 0)) + \"px\", color, bg_color, ev._text_style || \"\"].join(\";\");\n var html = \"<div event_id='\" + ev.id + \"' \" + this.config.event_attribute + \"='\" + ev.id + \"' class='\" + cs + \"' style='\" + style_text + \"'\" + this._waiAria.eventBarAttrString(ev) + \">\";\n\n if (resizable) {\n html += resize_handle;\n }\n\n if (scheduler.getState().mode == \"month\") {\n ev = scheduler.getEvent(ev.id); // ev at this point could be a part (row in a month view) of a larger event\n }\n\n if (ev._timed) html += scheduler.templates.event_bar_date(ev.start_date, ev.end_date, ev);\n html += scheduler.templates.event_bar_text(ev.start_date, ev.end_date, ev) + '</div>';\n html += '</div>';\n d.innerHTML = html;\n\n this._rendered.push(d.firstChild);\n\n parent.appendChild(d.firstChild);\n };\n\n scheduler._locate_event = function (node) {\n var id = null;\n\n while (node && !id && node.getAttribute) {\n id = node.getAttribute(this.config.event_attribute);\n node = node.parentNode;\n }\n\n return id;\n };\n\n scheduler.edit = function (id) {\n if (this._edit_id == id) return;\n this.editStop(false, id);\n this._edit_id = id;\n this.updateEvent(id);\n };\n\n scheduler.editStop = function (mode, id) {\n if (id && this._edit_id == id) return;\n var ev = this.getEvent(this._edit_id);\n\n if (ev) {\n if (mode) ev.text = this._editor.value;\n this._edit_id = null;\n this._editor = null;\n this.updateEvent(ev.id);\n\n this._edit_stop_event(ev, mode);\n }\n };\n\n scheduler._edit_stop_event = function (ev, mode) {\n if (this._new_event) {\n if (!mode) {\n if (ev) // in case of custom lightbox user can already delete event\n this.deleteEvent(ev.id, true);\n } else {\n this.callEvent(\"onEventAdded\", [ev.id, ev]);\n }\n\n this._new_event = null;\n } else {\n if (mode) {\n this.callEvent(\"onEventChanged\", [ev.id, ev]);\n }\n }\n };\n\n scheduler.getEvents = function (from, to) {\n var result = [];\n\n for (var a in this._events) {\n var ev = this._events[a];\n if (ev && (!from && !to || ev.start_date < to && ev.end_date > from)) result.push(ev);\n }\n\n return result;\n };\n\n scheduler.getRenderedEvent = function (id) {\n if (!id) return;\n var rendered_events = scheduler._rendered;\n\n for (var i = 0; i < rendered_events.length; i++) {\n var rendered_event = rendered_events[i];\n\n if (rendered_event.getAttribute(scheduler.config.event_attribute) == id) {\n return rendered_event;\n }\n }\n\n return null;\n };\n\n scheduler.showEvent = function (id, mode) {\n var section;\n\n if (id && _typeof(id) === \"object\") {\n mode = id.mode;\n section = id.section;\n id = id.section;\n }\n\n var ev = typeof id == \"number\" || typeof id == \"string\" ? scheduler.getEvent(id) : id;\n mode = mode || scheduler._mode;\n if (!ev || this.checkEvent(\"onBeforeEventDisplay\") && !this.callEvent(\"onBeforeEventDisplay\", [ev, mode])) return;\n var scroll_hour = scheduler.config.scroll_hour;\n scheduler.config.scroll_hour = ev.start_date.getHours();\n var preserve_scroll = scheduler.config.preserve_scroll;\n scheduler.config.preserve_scroll = false;\n var original_color = ev.color;\n var original_text_color = ev.textColor;\n\n if (scheduler.config.highlight_displayed_event) {\n ev.color = scheduler.config.displayed_event_color;\n ev.textColor = scheduler.config.displayed_event_text_color;\n }\n\n scheduler.setCurrentView(new Date(ev.start_date), mode);\n\n function restoreOriginalColors() {\n ev.color = original_color;\n ev.textColor = original_text_color;\n }\n\n scheduler.config.scroll_hour = scroll_hour;\n scheduler.config.preserve_scroll = preserve_scroll;\n\n if (scheduler.matrix && scheduler.matrix[mode]) {\n var timeline = scheduler.getView();\n var property = timeline.y_property;\n var event = scheduler.getEvent(ev.id);\n\n if (event) {\n if (!section) {\n var section = event[property];\n\n if (Array.isArray(section)) {\n section = section[0];\n } else if (typeof section === \"string\" && scheduler.config.section_delimiter && section.indexOf(scheduler.config.section_delimiter) > -1) {\n section = section.split(scheduler.config.section_delimiter)[0];\n }\n }\n\n var top = timeline.getSectionTop(section);\n var left = timeline.posFromDate(event.start_date);\n var container = scheduler.$container.querySelector(\".dhx_timeline_data_wrapper\");\n left = left - (container.offsetWidth - timeline.dx) / 2;\n top = top - container.offsetHeight / 2 + timeline.dy / 2;\n\n if (timeline._smartRenderingEnabled()) {\n var handlerId = timeline.attachEvent(\"onScroll\", function () {\n restoreOriginalColors();\n timeline.detachEvent(handlerId);\n });\n }\n\n timeline.scrollTo({\n left: left,\n top: top\n });\n\n if (!timeline._smartRenderingEnabled()) {\n restoreOriginalColors();\n }\n }\n } else {\n restoreOriginalColors();\n }\n\n scheduler.callEvent(\"onAfterEventDisplay\", [ev, mode]);\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function extend(scheduler) {\n scheduler.json = scheduler._parsers.json = {\n canParse: function canParse(data) {\n if (data && _typeof(data) === \"object\") {\n return true;\n } else if (typeof data === \"string\") {\n try {\n var result = JSON.parse(data);\n return Object.prototype.toString.call(result) === '[object Object]' || Object.prototype.toString.call(result) === '[object Array]';\n } catch (err) {\n return false;\n }\n }\n\n return false;\n },\n parse: function parse(data) {\n var events = [];\n\n if (typeof data == \"string\") {\n data = JSON.parse(data);\n }\n\n if (Object.prototype.toString.call(data) === '[object Array]') {\n events = data;\n } else {\n if (data) {\n if (data.events) {\n events = data.events;\n } else if (data.data) {\n events = data.data;\n }\n }\n }\n\n events = events || [];\n\n if (data.dhx_security) {\n if (window.dhtmlx) {\n window.dhtmlx.security_key = data.dhx_security;\n }\n\n scheduler.security_key = data.dhx_security;\n }\n\n var collections = data && data.collections ? data.collections : {};\n var collections_loaded = false;\n\n for (var key in collections) {\n if (collections.hasOwnProperty(key)) {\n collections_loaded = true;\n var collection = collections[key];\n var arr = scheduler.serverList[key];\n\n if (!arr) {\n scheduler.serverList[key] = arr = [];\n }\n\n arr.splice(0, arr.length); //clear old options\n\n for (var j = 0; j < collection.length; j++) {\n var option = collection[j];\n var obj = {\n key: option.value,\n label: option.label\n }; // resulting option object\n\n for (var option_key in option) {\n if (option.hasOwnProperty(option_key)) {\n if (option_key == \"value\" || option_key == \"label\") continue;\n obj[option_key] = option[option_key]; // obj['value'] = option['value']\n }\n }\n\n arr.push(obj);\n }\n }\n }\n\n if (collections_loaded) scheduler.callEvent(\"onOptionsLoad\", []);\n var evs = [];\n\n for (var i = 0; i < events.length; i++) {\n var event = events[i];\n\n scheduler._init_event(event);\n\n evs.push(event);\n }\n\n return evs;\n }\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport xmlLoaded from \"./loaders/xml\";\nimport jsonLoader from \"./loaders/json\";\nimport iCalLoader from \"./loaders/ical\";\nimport createSerializator from \"../core/common/get_serializable_events\";\nexport default function extend(scheduler) {\n scheduler._loaded = {};\n\n scheduler._load = function (url, from) {\n url = url || this._load_url;\n\n if (!url) {\n //if scheduler.setLoadMode is called before scheduler.init, initial rendering will invoke data loading while url is undefined\n return;\n }\n\n url += (url.indexOf(\"?\") == -1 ? \"?\" : \"&\") + \"timeshift=\" + new Date().getTimezoneOffset();\n if (this.config.prevent_cache) url += \"&uid=\" + this.uid();\n var to;\n from = from || this._date;\n\n function ajaxCallback(response) {\n scheduler.on_load(response);\n scheduler.callEvent(\"onLoadEnd\", []);\n }\n\n if (this._load_mode) {\n var lf = this.templates.load_format;\n from = this.date[this._load_mode + \"_start\"](new Date(from.valueOf()));\n\n while (from > this._min_date) {\n from = this.date.add(from, -1, this._load_mode);\n }\n\n to = from;\n var cache_line = true;\n\n while (to < this._max_date) {\n to = this.date.add(to, 1, this._load_mode);\n if (this._loaded[lf(from)] && cache_line) from = this.date.add(from, 1, this._load_mode);else cache_line = false;\n }\n\n var temp_to = to;\n\n do {\n to = temp_to;\n temp_to = this.date.add(to, -1, this._load_mode);\n } while (temp_to > from && this._loaded[lf(temp_to)]);\n\n if (to <= from) return false; //already loaded\n\n scheduler.ajax.get(url + \"&from=\" + lf(from) + \"&to=\" + lf(to), ajaxCallback);\n\n while (from < to) {\n this._loaded[lf(from)] = true;\n from = this.date.add(from, 1, this._load_mode);\n }\n } else {\n scheduler.ajax.get(url, ajaxCallback);\n } // TODO: remove onXLS\n\n\n this.callEvent(\"onXLS\", []);\n this.callEvent(\"onLoadStart\", []);\n return true;\n };\n\n scheduler._parsers = {};\n xmlLoaded(scheduler);\n jsonLoader(scheduler);\n iCalLoader(scheduler);\n\n scheduler.on_load = function (loader) {\n this.callEvent(\"onBeforeParse\", []);\n var evs;\n var error = false;\n var foundParser = false;\n\n for (var i in this._parsers) {\n var parser = this._parsers[i];\n\n if (parser.canParse(loader.xmlDoc.responseText, loader.xmlDoc)) {\n try {\n var param = loader.xmlDoc.responseText;\n\n if (i === \"xml\") {\n param = loader;\n }\n\n evs = parser.parse(param);\n\n if (!evs) {\n error = true;\n }\n } catch (e) {\n error = true;\n }\n\n foundParser = true;\n break;\n }\n }\n\n if (!foundParser) {\n if (this._process && this[this._process]) {\n try {\n evs = this[this._process].parse(loader.xmlDoc.responseText);\n } catch (e) {\n error = true;\n }\n } else {\n error = true;\n }\n }\n\n if (error || loader.xmlDoc.status && loader.xmlDoc.status >= 400) {\n this.callEvent(\"onLoadError\", [loader.xmlDoc]);\n evs = [];\n }\n\n this._process_loading(evs); // TODO: remove onXLE\n\n\n this.callEvent(\"onXLE\", []);\n this.callEvent(\"onParse\", []);\n };\n\n scheduler._process_loading = function (evs) {\n this._loading = true;\n this._not_render = true;\n\n for (var i = 0; i < evs.length; i++) {\n if (!this.callEvent(\"onEventLoading\", [evs[i]])) continue;\n this.addEvent(evs[i]);\n }\n\n this._not_render = false;\n if (this._render_wait) this.render_view_data();\n this._loading = false;\n if (this._after_call) this._after_call();\n this._after_call = null;\n };\n\n scheduler._init_event = function (event) {\n event.text = event.text || event._tagvalue || \"\";\n event.start_date = scheduler._init_date(event.start_date);\n event.end_date = scheduler._init_date(event.end_date);\n };\n\n scheduler._init_date = function (date) {\n if (!date) return null;\n\n if (typeof date == \"string\") {\n return scheduler._helpers.parseDate(date);\n } else return new Date(date);\n };\n\n var getSerializableData = createSerializator(scheduler);\n\n scheduler.serialize = function () {\n var dataset = [];\n var allEvents = getSerializableData();\n\n for (var a in allEvents) {\n var exportedEvent = {};\n var ev = allEvents[a];\n\n for (var key in ev) {\n if (key.charAt(0) == \"$\" || key.charAt(0) == \"_\") {\n continue;\n }\n\n var exportValue = void 0;\n var rawValue = ev[key];\n\n if (scheduler.utils.isDate(rawValue)) {\n exportValue = scheduler.defined(scheduler.templates.xml_format) ? scheduler.templates.xml_format(rawValue) : scheduler.templates.format_date(rawValue);\n } else {\n exportValue = rawValue;\n }\n\n exportedEvent[key] = exportValue;\n }\n\n dataset.push(exportedEvent);\n }\n\n return dataset;\n };\n /*\r\n scheduler.json = {};\r\n scheduler.json.parse = function(data) {\r\n \r\n \tvar events = [];\r\n \r\n \tif (typeof data == \"string\") {\r\n \t\tdata = JSON.parse(data);\r\n \t}\r\n \tif (Object.prototype.toString.call(data) === '[object Array]') {\r\n \t\tevents = data;\r\n \t} else {\r\n \t\tif(data){\r\n \t\t\tif(data.events){\r\n \t\t\t\tevents = data.events;\r\n \t\t\t}else if(data.data){\r\n \t\t\t\tevents = data.data;\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n \tevents = events || [];\r\n \r\n \tif (data.dhx_security) {\r\n \t\tif (window.dhtmlx) {\r\n \t\t\twindow.dhtmlx.security_key = data.dhx_security;\r\n \t\t}\r\n \t\tscheduler.security_key = data.dhx_security;\r\n \t}\r\n \r\n \tvar collections = (data && data.collections) ? data.collections : {};\r\n \tvar collections_loaded = false;\r\n \tfor (var key in collections) {\r\n \t\tif (collections.hasOwnProperty(key)) {\r\n \t\t\tcollections_loaded = true;\r\n \t\t\tvar collection = collections[key];\r\n \t\t\tvar arr = scheduler.serverList[key];\r\n \t\t\tif (!arr) {\r\n \t\t\t\tscheduler.serverList[key] = arr = [];\r\n \t\t\t}\r\n \t\t\tarr.splice(0, arr.length); //clear old options\r\n \t\t\tfor (var j = 0; j < collection.length; j++) {\r\n \t\t\t\tvar option = collection[j];\r\n \t\t\t\tvar obj = { key: option.value, label: option.label }; // resulting option object\r\n \t\t\t\tfor (var option_key in option) {\r\n \t\t\t\t\tif (option.hasOwnProperty(option_key)) {\r\n \t\t\t\t\t\tif (option_key == \"value\" || option_key == \"label\")\r\n \t\t\t\t\t\t\tcontinue;\r\n \t\t\t\t\t\tobj[option_key] = option[option_key]; // obj['value'] = option['value']\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t\tarr.push(obj);\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n \tif (collections_loaded)\r\n \t\tscheduler.callEvent(\"onOptionsLoad\", []);\r\n \r\n \tvar evs = [];\r\n \tfor (var i = 0; i < events.length; i++) {\r\n \t\tvar event = events[i];\r\n \t\tscheduler._init_event(event);\r\n \t\tevs.push(event);\r\n \t}\r\n \treturn evs;\r\n };*/\n\n\n scheduler.parse = function (data, type) {\n this._process = type;\n this.on_load({\n xmlDoc: {\n responseText: data\n }\n });\n };\n\n scheduler.load = function (url, call) {\n if (typeof call == \"string\") {\n this._process = call;\n call = arguments[2];\n }\n\n this._load_url = url;\n this._after_call = call;\n\n this._load(url, this._date);\n }; //possible values - day,week,month,year,all\n\n\n scheduler.setLoadMode = function (mode) {\n if (mode == \"all\") mode = \"\";\n this._load_mode = mode;\n };\n\n scheduler.serverList = function (name, array) {\n if (array) {\n this.serverList[name] = array.slice(0);\n return this.serverList[name];\n }\n\n this.serverList[name] = this.serverList[name] || [];\n return this.serverList[name];\n };\n\n scheduler._userdata = {};\n\n scheduler._xmlNodeToJSON = function (node) {\n var t = {};\n\n for (var i = 0; i < node.attributes.length; i++) {\n t[node.attributes[i].name] = node.attributes[i].value;\n }\n\n for (var i = 0; i < node.childNodes.length; i++) {\n var child = node.childNodes[i];\n if (child.nodeType == 1) t[child.tagName] = child.firstChild ? child.firstChild.nodeValue : \"\";\n }\n\n if (!t.text) t.text = node.firstChild ? node.firstChild.nodeValue : \"\";\n return t;\n };\n\n scheduler.attachEvent(\"onXLS\", function () {\n if (this.config.show_loading === true) {\n var t;\n t = this.config.show_loading = document.createElement(\"div\");\n t.className = 'dhx_loading';\n t.style.left = Math.round((this._x - 128) / 2) + \"px\";\n t.style.top = Math.round((this._y - 15) / 2) + \"px\";\n\n this._obj.appendChild(t);\n }\n });\n scheduler.attachEvent(\"onXLE\", function () {\n var t = this.config.show_loading;\n\n if (t && _typeof(t) == \"object\") {\n if (t.parentNode) {\n t.parentNode.removeChild(t);\n }\n\n this.config.show_loading = true;\n }\n });\n}","export default function extend(scheduler) {\n scheduler._parsers.xml = {\n canParse: function canParse(data, xhr) {\n // IE returns non-empty responseXML type regardless of actual data type\n if (xhr.responseXML && xhr.responseXML.firstChild) {\n return true;\n }\n\n try {\n var xmlDoc = scheduler.ajax.parse(xhr.responseText);\n var topElement = scheduler.ajax.xmltop(\"data\", xmlDoc);\n\n if (topElement && topElement.tagName === \"data\") {\n return true;\n }\n } catch (e) {}\n\n return false;\n },\n parse: function parse(loader) {\n var xml;\n\n if (!loader.xmlDoc.responseXML) {\n //from a string\n loader.xmlDoc.responseXML = scheduler.ajax.parse(loader.xmlDoc.responseText);\n }\n\n xml = scheduler.ajax.xmltop(\"data\", loader.xmlDoc);\n if (xml.tagName != \"data\") return null; //not an xml\n\n var csrfToken = xml.getAttribute(\"dhx_security\");\n\n if (csrfToken) {\n if (window.dhtmlx) {\n window.dhtmlx.security_key = csrfToken;\n }\n\n scheduler.security_key = csrfToken;\n }\n\n var opts = scheduler.ajax.xpath(\"//coll_options\", loader.xmlDoc);\n\n for (var i = 0; i < opts.length; i++) {\n var bind = opts[i].getAttribute(\"for\");\n var arr = scheduler.serverList[bind];\n\n if (!arr) {\n scheduler.serverList[bind] = arr = [];\n }\n\n arr.splice(0, arr.length); //clear old options\n\n var itms = scheduler.ajax.xpath(\".//item\", opts[i]);\n\n for (var j = 0; j < itms.length; j++) {\n var itm = itms[j];\n var attrs = itm.attributes;\n var obj = {\n key: itms[j].getAttribute(\"value\"),\n label: itms[j].getAttribute(\"label\")\n };\n\n for (var k = 0; k < attrs.length; k++) {\n var attr = attrs[k];\n if (attr.nodeName == \"value\" || attr.nodeName == \"label\") continue;\n obj[attr.nodeName] = attr.nodeValue;\n }\n\n arr.push(obj);\n }\n }\n\n if (opts.length) scheduler.callEvent(\"onOptionsLoad\", []);\n var ud = scheduler.ajax.xpath(\"//userdata\", loader.xmlDoc);\n\n for (var i = 0; i < ud.length; i++) {\n var udx = scheduler._xmlNodeToJSON(ud[i]);\n\n scheduler._userdata[udx.name] = udx.text;\n }\n\n var evs = [];\n xml = scheduler.ajax.xpath(\"//event\", loader.xmlDoc);\n\n for (var i = 0; i < xml.length; i++) {\n var ev = evs[i] = scheduler._xmlNodeToJSON(xml[i]);\n\n scheduler._init_event(ev);\n }\n\n return evs;\n }\n };\n}","export default function extend(scheduler) {\n scheduler.ical = scheduler._parsers.ical = {\n canParse: function canParse(data) {\n if (typeof data === \"string\") {\n return new RegExp(\"^BEGIN:VCALENDAR\").test(data);\n }\n\n return false;\n },\n parse: function parse(str) {\n var data = str.match(RegExp(this.c_start + \"[^\\f]*\" + this.c_end, \"\"));\n if (!data.length) return; // mpl: handle bad unfolding\n\n data[0] = data[0].replace(/[\\r\\n]+ /g, \"\"); //unfolding \n\n data[0] = data[0].replace(/[\\r\\n]+(?=[a-z \\t])/g, \" \"); //drop property\n\n data[0] = data[0].replace(/;[^:\\r\\n]*:/g, \":\");\n var incoming = [];\n var match;\n var event_r = RegExp(\"(?:\" + this.e_start + \")([^\\f]*?)(?:\" + this.e_end + \")\", \"g\");\n\n while ((match = event_r.exec(data)) !== null) {\n var e = {};\n var param;\n var param_r = /[^\\r\\n]+[\\r\\n]+/g;\n\n while ((param = param_r.exec(match[1])) !== null) {\n this.parse_param(param.toString(), e);\n }\n\n if (e.uid && !e.id) e.id = e.uid; //fallback to UID, when ID is not defined\n\n incoming.push(e);\n }\n\n return incoming;\n },\n parse_param: function parse_param(str, obj) {\n var d = str.indexOf(\":\");\n if (d == -1) return;\n var name = str.substr(0, d).toLowerCase();\n var value = str.substr(d + 1).replace(/\\\\,/g, \",\").replace(/[\\r\\n]+$/, \"\");\n if (name == \"summary\") name = \"text\";else if (name == \"dtstart\") {\n name = \"start_date\";\n value = this.parse_date(value, 0, 0);\n } else if (name == \"dtend\") {\n name = \"end_date\";\n value = this.parse_date(value, 0, 0);\n }\n obj[name] = value;\n },\n parse_date: function parse_date(value, dh, dm) {\n var t = value.split(\"T\");\n var utcMark = false;\n\n if (t[1]) {\n dh = t[1].substr(0, 2);\n dm = t[1].substr(2, 2);\n utcMark = !!(t[1][6] == \"Z\");\n }\n\n var dy = t[0].substr(0, 4);\n var dn = parseInt(t[0].substr(4, 2), 10) - 1;\n var dd = t[0].substr(6, 2);\n\n if (scheduler.config.server_utc || utcMark) {\n return new Date(Date.UTC(dy, dn, dd, dh, dm));\n } else {\n return new Date(dy, dn, dd, dh, dm);\n }\n },\n c_start: \"BEGIN:VCALENDAR\",\n e_start: \"BEGIN:VEVENT\",\n e_end: \"END:VEVENT\",\n c_end: \"END:VCALENDAR\"\n };\n}","export default function extend(scheduler) {\n scheduler._init_touch_events = function () {\n var mobile = this.config.touch && (navigator.userAgent.indexOf(\"Mobile\") != -1 || navigator.userAgent.indexOf(\"iPad\") != -1 || navigator.userAgent.indexOf(\"Android\") != -1 || navigator.userAgent.indexOf(\"Touch\") != -1) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n\n if (mobile) {\n this.xy.scroll_width = 0;\n this._mobile = true;\n }\n\n if (this.config.touch) {\n var touchEventsSupported = true;\n\n try {\n document.createEvent(\"TouchEvent\");\n } catch (e) {\n touchEventsSupported = false;\n }\n\n if (touchEventsSupported) {\n this._touch_events([\"touchmove\", \"touchstart\", \"touchend\"], function (ev) {\n if (ev.touches && ev.touches.length > 1) return null;\n if (ev.touches[0]) return {\n target: ev.target,\n pageX: ev.touches[0].pageX,\n pageY: ev.touches[0].pageY,\n clientX: ev.touches[0].clientX,\n clientY: ev.touches[0].clientY\n };else return ev;\n }, function () {\n return false;\n });\n } else if (window.PointerEvent || window.navigator.pointerEnabled) {\n this._touch_events([\"pointermove\", \"pointerdown\", \"pointerup\"], function (ev) {\n if (ev.pointerType == \"mouse\") return null;\n return ev;\n }, function (ev) {\n return !ev || ev.pointerType == \"mouse\";\n });\n } else if (window.navigator.msPointerEnabled) {\n this._touch_events([\"MSPointerMove\", \"MSPointerDown\", \"MSPointerUp\"], function (ev) {\n if (ev.pointerType == ev.MSPOINTER_TYPE_MOUSE) return null;\n return ev;\n }, function (ev) {\n return !ev || ev.pointerType == ev.MSPOINTER_TYPE_MOUSE;\n });\n }\n }\n };\n\n scheduler._touch_events = function (names, accessor, ignore) {\n //webkit on android need to be handled separately\n //var a_webkit = (navigator.userAgent.indexOf(\"Android\")!=-1) && (navigator.userAgent.indexOf(\"WebKit\")!=-1);\n var source, tracker, timer, drag_mode, scroll_mode, action_mode;\n var dblclicktime = 0;\n\n function attachTouchEvent(element, name, callback) {\n //touch gestures must be disabled when ligthbox is opened\n element.addEventListener(name, function (e) {\n if (scheduler._is_lightbox_open()) {\n return true;\n } else {\n if (ignore(e)) return;\n return callback(e);\n }\n }, {\n passive: false\n });\n }\n\n function check_direction_swipe(s_ev, e_ev, step, max_dy) {\n if (!s_ev || !e_ev) return false;\n var t = s_ev.target;\n\n while (t && t != scheduler._obj) {\n t = t.parentNode;\n }\n\n if (t != scheduler._obj) {\n //swipe outside scheduler\n return false;\n } // ignore swipe in horizontal timeline\n\n\n if (scheduler.matrix && scheduler.matrix[scheduler.getState().mode]) {\n var timeline = scheduler.matrix[scheduler.getState().mode];\n\n if (timeline.scrollable) {\n return false;\n }\n }\n\n var dy = Math.abs(s_ev.pageY - e_ev.pageY);\n var dx = Math.abs(s_ev.pageX - e_ev.pageX);\n\n if (dy < max_dy && dx > step && (!dy || dx / dy > 3)) {\n if (s_ev.pageX > e_ev.pageX) {\n scheduler._click.dhx_cal_next_button();\n } else {\n scheduler._click.dhx_cal_prev_button();\n }\n\n return true;\n }\n\n return false;\n }\n\n function doMouseMove(e) {\n if (ignore(e)) return;\n var dnd = scheduler.getState().drag_mode,\n timeline = scheduler.matrix ? scheduler.matrix[scheduler._mode] : false;\n var original_render = scheduler.render_view_data;\n\n if (dnd == 'create' && timeline) {\n //suppress full redraw of timeline on creating event\n scheduler.render_view_data = function () {\n var id = scheduler.getState().drag_id;\n var ev = scheduler.getEvent(id);\n var property = timeline.y_property;\n var evs = scheduler.getEvents(ev.start_date, ev.end_date);\n\n for (var i = 0; i < evs.length; i++) {\n if (evs[i][property] != ev[property]) {\n evs.splice(i, 1);\n i--;\n }\n }\n\n ev._sorder = evs.length - 1;\n ev._count = evs.length;\n this.render_data([ev], scheduler.getState().mode);\n };\n }\n\n scheduler._on_mouse_move(e);\n\n if (dnd == 'create' && timeline) {\n scheduler.render_view_data = original_render;\n }\n\n if (e.preventDefault) e.preventDefault();\n e.cancelBubble = true;\n return false;\n } // touchmove\n\n\n attachTouchEvent(document.body, names[0], function (e) {\n if (ignore(e)) return;\n var acc = accessor(e);\n if (!acc) return;\n\n if (drag_mode) {\n doMouseMove(acc);\n if (e.preventDefault) e.preventDefault();\n e.cancelBubble = true;\n\n scheduler._update_global_tip();\n\n return false;\n } //if (tracker && a_webkit){\n //\tcheck_direction_swipe(tracker, accessor(e), 0);\n //}\n\n\n tracker = accessor(e); //ignore common and scrolling moves\n\n if (!action_mode) return; //multitouch\n\n if (!tracker) {\n scroll_mode = true;\n return;\n } //target changed - probably in scroll mode\n\n\n if (source.target != tracker.target || Math.abs(source.pageX - tracker.pageX) > 5 || Math.abs(source.pageY - tracker.pageY) > 5) {\n scroll_mode = true;\n clearTimeout(timer);\n }\n }); //attachTouchEvent(this._els[\"dhx_cal_data\"][0], \"scroll\", drag_cancel);\n\n attachTouchEvent(this._els[\"dhx_cal_data\"][0], \"touchcancel\", drag_cancel);\n attachTouchEvent(this._els[\"dhx_cal_data\"][0], \"contextmenu\", function (e) {\n if (ignore(e)) return;\n\n if (action_mode) {\n if (e && e.preventDefault) e.preventDefault();\n e.cancelBubble = true;\n return false;\n }\n }); // touchstart\n\n attachTouchEvent(this._obj, names[1], function (e) {\n // block pull-to-refresh\n if (document && document.body) {\n document.body.classList.add(\"dhx_cal_touch_active\");\n }\n\n if (ignore(e)) return;\n scheduler._pointerDragId = e.pointerId;\n var fake_event;\n drag_mode = scroll_mode = false;\n action_mode = true;\n fake_event = tracker = accessor(e);\n\n if (!fake_event) {\n scroll_mode = true;\n return;\n } //dbl click\n\n\n var now = new Date();\n\n if (!scroll_mode && !drag_mode && now - dblclicktime < 250) {\n scheduler._click.dhx_cal_data(fake_event);\n\n window.setTimeout(function () {\n fake_event.type = \"dblclick\";\n\n scheduler._on_dbl_click(fake_event);\n }, 50);\n if (e.preventDefault) e.preventDefault();\n e.cancelBubble = true;\n scheduler._block_next_stop = true;\n return false;\n }\n\n dblclicktime = now; //drag\n\n if (scroll_mode || drag_mode || !scheduler.config.touch_drag) return;\n\n var actTask = scheduler._locate_event(document.activeElement);\n\n var fakeTask = scheduler._locate_event(fake_event.target);\n\n var sourceTask = source ? scheduler._locate_event(source.target) : null;\n\n if (actTask && fakeTask && actTask == fakeTask && actTask != sourceTask) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n e.cancelBubble = true;\n scheduler._ignore_next_click = false;\n\n scheduler._click.dhx_cal_data(fake_event);\n\n source = fake_event;\n return false;\n } //there is no target\n\n\n timer = setTimeout(function () {\n drag_mode = true;\n var target = source.target;\n\n var className = scheduler._getClassName(target);\n\n if (target && className.indexOf(\"dhx_body\") != -1) target = target.previousSibling;\n\n scheduler._on_mouse_down(source, target);\n\n if (scheduler._drag_mode && scheduler._drag_mode != \"create\") {\n scheduler.for_rendered(scheduler._drag_id, function (node, i) {\n node.style.display = 'none';\n\n scheduler._rendered.splice(i, 1);\n });\n }\n\n if (scheduler.config.touch_tip) {\n scheduler._show_global_tip();\n }\n\n scheduler.updateEvent(scheduler._drag_id);\n }, scheduler.config.touch_drag);\n source = fake_event;\n });\n\n function drag_cancel(e) {\n if (ignore(e)) return;\n\n scheduler._hide_global_tip();\n\n if (drag_mode) {\n scheduler._on_mouse_up(accessor(e));\n\n scheduler._temp_touch_block = false;\n }\n\n scheduler._drag_id = null;\n scheduler._drag_mode = null;\n scheduler._drag_pos = null;\n scheduler._pointerDragId = null;\n clearTimeout(timer);\n drag_mode = action_mode = false;\n scroll_mode = true;\n } // touch end\n\n\n attachTouchEvent(this._els[\"dhx_cal_data\"][0], names[2], function (e) {\n if (document && document.body) {\n document.body.classList.remove(\"dhx_cal_touch_active\");\n }\n\n if (ignore(e)) return;\n\n if (scheduler.config.touch_swipe_dates) {\n if (!drag_mode && check_direction_swipe(source, tracker, 200, 100)) {\n scheduler._block_next_stop = true;\n }\n }\n\n if (drag_mode) {\n scheduler._ignore_next_click = true;\n setTimeout(function () {\n scheduler._ignore_next_click = false;\n }, 100);\n }\n\n drag_cancel(e);\n\n if (scheduler._block_next_stop) {\n scheduler._block_next_stop = false;\n if (e.preventDefault) e.preventDefault();\n e.cancelBubble = true;\n return false;\n }\n });\n scheduler.event(document.body, names[2], drag_cancel);\n };\n\n scheduler._show_global_tip = function () {\n scheduler._hide_global_tip();\n\n var toptip = scheduler._global_tip = document.createElement(\"div\");\n toptip.className = 'dhx_global_tip';\n\n scheduler._update_global_tip(1);\n\n document.body.appendChild(toptip);\n };\n\n scheduler._update_global_tip = function (init) {\n var toptip = scheduler._global_tip;\n\n if (toptip) {\n var time = \"\";\n\n if (scheduler._drag_id && !init) {\n var ev = scheduler.getEvent(scheduler._drag_id);\n if (ev) time = \"<div>\" + (ev._timed ? scheduler.templates.event_header(ev.start_date, ev.end_date, ev) : scheduler.templates.day_date(ev.start_date, ev.end_date, ev)) + \"</div>\";\n }\n\n if (scheduler._drag_mode == \"create\" || scheduler._drag_mode == \"new-size\") toptip.innerHTML = (scheduler.locale.labels.drag_to_create || \"Drag to create\") + time;else toptip.innerHTML = (scheduler.locale.labels.drag_to_move || \"Drag to move\") + time;\n }\n };\n\n scheduler._hide_global_tip = function () {\n var toptip = scheduler._global_tip;\n\n if (toptip && toptip.parentNode) {\n toptip.parentNode.removeChild(toptip);\n scheduler._global_tip = 0;\n }\n };\n}","export default function extend(scheduler) {\n scheduler._skin_settings = {\n fix_tab_position: [1, 0],\n use_select_menu_space: [1, 0],\n wide_form: [1, 0],\n hour_size_px: [44, 42],\n displayed_event_color: [\"#ff4a4a\", \"ffc5ab\"],\n displayed_event_text_color: [\"#ffef80\", \"7e2727\"]\n };\n scheduler._skin_xy = {\n lightbox_additional_height: [90, 50],\n nav_height: [59, 22],\n bar_height: [24, 20]\n }; // material skin uses a different box sizing model than other skins, and also requires some post-processing.\n // In order to render events correctly, we need to know which box sizing model is used\n // We can detect it by styles applied, taking into account that styles may be loaded after scheduler is rendered\n\n scheduler._is_material_skin = function () {\n if (!scheduler.skin) {\n return checkIfMaterialSkin();\n } else {\n return (scheduler.skin + \"\").indexOf(\"material\") > -1;\n }\n };\n\n var calculatedMaterial;\n\n function checkIfMaterialSkin() {\n if (calculatedMaterial === undefined) {\n var probe = document.createElement(\"div\");\n probe.style.position = \"absolute\";\n probe.style.left = \"-9999px\";\n probe.style.top = \"-9999px\";\n probe.innerHTML = \"<div class='dhx_cal_container'>\" + \"<div class='dhx_cal_scale_placeholder'>\" + \"</div>\" + \"<div>\";\n document.body.appendChild(probe);\n var styles = window.getComputedStyle(probe.querySelector(\".dhx_cal_scale_placeholder\"));\n var position = styles.getPropertyValue('position');\n\n if (position === \"absolute\") {\n // page has skins for placeholder element from material skin\n calculatedMaterial = true;\n } else {\n calculatedMaterial = false;\n }\n\n setTimeout(function () {\n calculatedMaterial = null;\n }, 500);\n }\n\n return calculatedMaterial;\n }\n\n var cachedBorderBoxValue;\n\n function checkIfBorderBoxStyling() {\n if (scheduler._is_material_skin()) {\n return true;\n } else {\n if (cachedBorderBoxValue === undefined) {\n var probe = document.createElement(\"div\");\n probe.style.position = \"absolute\";\n probe.style.left = \"-9999px\";\n probe.style.top = \"-9999px\";\n probe.innerHTML = \"<div class='dhx_cal_container'>\" + \"<div class='dhx_cal_data'>\" + \"<div class='dhx_cal_event'><div class='dhx_body'></div>\" + \"</div>\" + \"<div>\";\n document.body.appendChild(probe);\n var styles = window.getComputedStyle(probe.querySelector(\".dhx_body\"));\n var boxSizing = styles.getPropertyValue('box-sizing');\n document.body.removeChild(probe);\n cachedBorderBoxValue = !!(boxSizing === \"border-box\");\n\n if (!cachedBorderBoxValue) {\n setTimeout(function () {\n cachedBorderBoxValue = undefined;\n }, 1000); // recalculate in case scheduler initialized before skin is loaded\n }\n } else {\n return cachedBorderBoxValue;\n }\n }\n }\n\n function refreshAfterLoad() {\n if (scheduler._is_material_skin() || scheduler._border_box_events()) {\n return;\n }\n\n var oldStyling = cachedBorderBoxValue;\n cachedBorderBoxValue = undefined;\n calculatedMaterial = undefined;\n var newStyling = checkIfBorderBoxStyling(); // if box styling model changed - means scheduler was rendered before stylesheet was loaded or parsed inline\n // repaint scheduler in order to apply new styles\n\n if (oldStyling !== newStyling && scheduler.$container && scheduler.getState().mode) {\n scheduler.setCurrentView();\n }\n }\n\n window.addEventListener('DOMContentLoaded', refreshAfterLoad);\n window.addEventListener('load', refreshAfterLoad);\n\n scheduler._border_box_events = function () {\n return checkIfBorderBoxStyling();\n };\n\n scheduler._configure = function (col, data, skin) {\n for (var key in data) {\n if (typeof col[key] == \"undefined\") col[key] = data[key][skin];\n }\n };\n\n scheduler._skin_init = function () {\n if (!scheduler.skin) {\n var links = document.getElementsByTagName(\"link\");\n\n for (var i = 0; i < links.length; i++) {\n var res = links[i].href.match(\"dhtmlxscheduler_([a-z]+).css\");\n\n if (res) {\n scheduler.skin = res[1];\n break;\n }\n }\n }\n\n var set = 0;\n if (scheduler.skin && (scheduler.skin === \"classic\" || scheduler.skin === \"glossy\")) set = 1;\n\n if (scheduler._is_material_skin()) {\n var defaultButtonsLeft = scheduler.config.buttons_left.$initial;\n var defaultButtonsRight = scheduler.config.buttons_right.$initial;\n\n if (defaultButtonsLeft && scheduler.config.buttons_left.slice().join() == defaultButtonsLeft && defaultButtonsRight && scheduler.config.buttons_right.slice().join() == defaultButtonsRight) {\n var tmp = scheduler.config.buttons_left.slice();\n scheduler.config.buttons_left = scheduler.config.buttons_right.slice();\n scheduler.config.buttons_right = tmp;\n }\n\n scheduler.xy.event_header_height = 18; //\tscheduler.xy.menu_width = 25;\n\n scheduler.xy.week_agenda_scale_height = 35;\n scheduler.xy.map_icon_width = 38;\n scheduler._lightbox_controls.defaults.textarea.height = 64;\n scheduler._lightbox_controls.defaults.time.height = 'auto';\n } //apply skin related settings\n\n\n this._configure(scheduler.config, scheduler._skin_settings, set);\n\n this._configure(scheduler.xy, scheduler._skin_xy, set);\n\n if (scheduler.skin === \"flat\") {\n scheduler.xy.scale_height = 35;\n\n scheduler.templates.hour_scale = function (date) {\n var min = date.getMinutes();\n min = min < 10 ? \"0\" + min : min;\n var html = \"<span class='dhx_scale_h'>\" + date.getHours() + \"</span>\" + \"<span class='dhx_scale_m'> \" + min + \"</span>\";\n return html;\n };\n } //classic skin need not any further customization\n\n\n if (set) return;\n var minic = scheduler.config.minicalendar;\n if (minic) minic.padding = 14;\n\n scheduler.templates.event_bar_date = function (start, end, ev) {\n return \"• <b>\" + scheduler.templates.event_date(start) + \"</b> \";\n }; //scheduler._lightbox_template=\"<div class='dhx_cal_ltitle'><span class='dhx_mark'> </span><span class='dhx_time'></span><span class='dhx_title'></span><div class='dhx_close_icon'></div></div><div class='dhx_cal_larea'></div>\";\n\n\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n var date_to_str = scheduler.date.date_to_str(\"%d\");\n\n if (!scheduler.templates._old_month_day) {\n scheduler.templates._old_month_day = scheduler.templates.month_day;\n }\n\n var old_month_day = scheduler.templates._old_month_day;\n\n scheduler.templates.month_day = function (date) {\n if (this._mode == \"month\") {\n var label = date_to_str(date);\n\n if (date.getDate() == 1) {\n label = scheduler.locale.date.month_full[date.getMonth()] + \" \" + label;\n }\n\n if (+date == +scheduler.date.date_part(this._currentDate())) {\n label = scheduler.locale.labels.dhx_cal_today_button + \" \" + label;\n }\n\n return label;\n } else {\n return old_month_day.call(this, date);\n }\n };\n\n if (scheduler.config.fix_tab_position) {\n var navline_divs = scheduler._els[\"dhx_cal_navline\"][0].getElementsByTagName('div');\n\n var minical = null; //var tabs = [];\n\n var last = 211;\n var positions = [14, 75, 136];\n var inc = 14;\n\n if (scheduler._is_material_skin()) {\n positions = [16, 103, 192];\n last = 294;\n inc = -1;\n }\n\n for (var i = 0; i < navline_divs.length; i++) {\n var div = navline_divs[i];\n var name = div.getAttribute(\"data-tab\") || div.getAttribute(\"name\");\n\n if (name) {\n // mode tab\n div.style.right = \"auto\";\n\n switch (name) {\n case \"day\":\n case \"day_tab\":\n div.style.left = positions[0] + \"px\";\n div.className += \" dhx_cal_tab_first\";\n break;\n\n case \"week\":\n case \"week_tab\":\n div.style.left = positions[1] + \"px\";\n break;\n\n case \"month\":\n case \"month_tab\":\n div.style.left = positions[2] + \"px\";\n div.className += \" dhx_cal_tab_last\";\n break;\n\n default:\n div.style.left = last + \"px\";\n div.className += \" dhx_cal_tab_standalone\";\n last = last + inc + div.offsetWidth;\n break;\n }\n\n div.className += \" \" + name;\n } else {\n if ((div.className || \"\").indexOf(\"dhx_minical_icon\") === 0 && div.parentNode == scheduler._els[\"dhx_cal_navline\"][0]) {\n // if default minicalendar icon\n minical = div;\n }\n }\n }\n\n if (minical) {\n minical.style.left = last + \"px\";\n }\n }\n });\n\n scheduler._skin_init = function () {};\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport DataProcessorEvents from \"./dataprocessor_hooks\";\nimport { extendScheduler } from \"./dataprocessor_hooks\";\nimport eventable from \"../../utils/eventable\";\nimport global from \"../../global\";\n/**\r\n *\t@desc: constructor, data processor object\r\n *\t@param: serverProcessorURL - url used for update\r\n *\t@type: public\r\n */\n\nexport function DataProcessor(serverProcessorURL) {\n this.serverProcessor = serverProcessorURL;\n this.action_param = \"!nativeeditor_status\";\n this.object = null;\n this.updatedRows = []; // ids of updated rows\n\n this.autoUpdate = true;\n this.updateMode = \"cell\";\n this._tMode = \"GET\";\n this._headers = null;\n this._payload = null;\n this.post_delim = \"_\";\n this._waitMode = 0;\n this._in_progress = {};\n this._invalid = {};\n this.messages = [];\n this.styles = {\n updated: \"font-weight:bold;\",\n inserted: \"font-weight:bold;\",\n deleted: \"text-decoration : line-through;\",\n invalid: \"background-color:FFE0E0;\",\n invalid_cell: \"border-bottom:2px solid red;\",\n error: \"color:red;\",\n clear: \"font-weight:normal;text-decoration:none;\"\n };\n this.enableUTFencoding(true);\n eventable(this); // TODO: need to update\n\n return this;\n}\nDataProcessor.prototype = {\n setTransactionMode: function setTransactionMode(mode, total) {\n if (_typeof(mode) == \"object\") {\n this._tMode = mode.mode || this._tMode;\n\n if (mode.headers !== undefined) {\n this._headers = mode.headers;\n }\n\n if (mode.payload !== undefined) {\n this._payload = mode.payload;\n }\n\n this._tSend = !!total;\n } else {\n this._tMode = mode;\n this._tSend = total;\n }\n\n if (this._tMode == \"REST\") {\n this._tSend = false;\n this._endnm = true;\n }\n\n if (this._tMode === \"JSON\" || this._tMode === \"REST-JSON\") {\n this._tSend = false;\n this._endnm = true;\n this._serializeAsJson = true;\n this._headers = this._headers || {};\n this._headers[\"Content-Type\"] = \"application/json\";\n } else {\n if (this._headers && !this._headers[\"Content-Type\"]) {\n this._headers[\"Content-Type\"] = \"application/x-www-form-urlencoded\";\n }\n }\n\n if (this._tMode === \"CUSTOM\") {\n this._tSend = false;\n this._endnm = true;\n this._router = mode.router;\n }\n },\n escape: function (_escape) {\n function escape(_x) {\n return _escape.apply(this, arguments);\n }\n\n escape.toString = function () {\n return _escape.toString();\n };\n\n return escape;\n }(function (data) {\n if (this._utf) return encodeURIComponent(data);else return escape(data);\n }),\n\n /**\r\n *\t@desc: allows to set escaping mode\r\n *\t@param: true - utf based escaping, simple - use current page encoding\r\n *\t@type: public\r\n */\n enableUTFencoding: function enableUTFencoding(mode) {\n this._utf = !!mode;\n },\n\n /**\r\n *\t@desc: allows to define, which column may trigger update\r\n *\t@param: val - array or list of true/false values\r\n *\t@type: public\r\n */\n setDataColumns: function setDataColumns(val) {\n this._columns = typeof val == \"string\" ? val.split(\",\") : val;\n },\n\n /**\r\n *\t@desc: get state of updating\r\n *\t@returns: true - all in sync with server, false - some items not updated yet.\r\n *\t@type: public\r\n */\n getSyncState: function getSyncState() {\n return !this.updatedRows.length;\n },\n\n /**\r\n *\t@desc: enable/disable named field for data syncing, will use column ids for grid\r\n *\t@param: mode - true/false\r\n *\t@type: public\r\n */\n enableDataNames: function enableDataNames(mode) {\n this._endnm = !!mode;\n },\n\n /**\r\n *\t@desc: enable/disable mode , when only changed fields and row id send to the server side, instead of all fields in default mode\r\n *\t@param: mode - true/false\r\n *\t@type: public\r\n */\n enablePartialDataSend: function enablePartialDataSend(mode) {\n this._changed = !!mode;\n },\n\n /**\r\n *\t@desc: set if rows should be send to server automatically\r\n *\t@param: mode - \"row\" - based on row selection changed, \"cell\" - based on cell editing finished, \"off\" - manual data sending\r\n *\t@type: public\r\n */\n setUpdateMode: function setUpdateMode(mode, dnd) {\n this.autoUpdate = mode == \"cell\";\n this.updateMode = mode;\n this.dnd = dnd;\n },\n ignore: function ignore(code, master) {\n this._silent_mode = true;\n code.call(master || window);\n this._silent_mode = false;\n },\n\n /**\r\n *\t@desc: mark row as updated/normal. check mandatory fields,initiate autoupdate (if turned on)\r\n *\t@param: rowId - id of row to set update-status for\r\n *\t@param: state - true for \"updated\", false for \"not updated\"\r\n *\t@param: mode - update mode name\r\n *\t@type: public\r\n */\n setUpdated: function setUpdated(rowId, state, mode) {\n if (this._silent_mode) return;\n var ind = this.findRow(rowId);\n mode = mode || \"updated\";\n var existing = this.$scheduler.getUserData(rowId, this.action_param);\n if (existing && mode == \"updated\") mode = existing;\n\n if (state) {\n this.set_invalid(rowId, false); //clear previous error flag\n\n this.updatedRows[ind] = rowId;\n this.$scheduler.setUserData(rowId, this.action_param, mode);\n if (this._in_progress[rowId]) this._in_progress[rowId] = \"wait\";\n } else {\n if (!this.is_invalid(rowId)) {\n this.updatedRows.splice(ind, 1);\n this.$scheduler.setUserData(rowId, this.action_param, \"\");\n }\n }\n\n this.markRow(rowId, state, mode);\n if (state && this.autoUpdate) this.sendData(rowId);\n },\n markRow: function markRow(id, state, mode) {\n var str = \"\";\n var invalid = this.is_invalid(id);\n\n if (invalid) {\n str = this.styles[invalid];\n state = true;\n }\n\n if (this.callEvent(\"onRowMark\", [id, state, mode, invalid])) {\n //default logic\n str = this.styles[state ? mode : \"clear\"] + str;\n\n this.$scheduler[this._methods[0]](id, str);\n\n if (invalid && invalid.details) {\n str += this.styles[invalid + \"_cell\"];\n\n for (var i = 0; i < invalid.details.length; i++) {\n if (invalid.details[i]) this.$scheduler[this._methods[1]](id, i, str);\n }\n }\n }\n },\n getActionByState: function getActionByState(state) {\n if (state === \"inserted\") {\n return \"create\";\n }\n\n if (state === \"updated\") {\n return \"update\";\n }\n\n if (state === \"deleted\") {\n return \"delete\";\n }\n\n return \"update\";\n },\n getState: function getState(id) {\n return this.$scheduler.getUserData(id, this.action_param);\n },\n is_invalid: function is_invalid(id) {\n return this._invalid[id];\n },\n set_invalid: function set_invalid(id, mode, details) {\n if (details) mode = {\n value: mode,\n details: details,\n toString: function toString() {\n return this.value.toString();\n }\n };\n this._invalid[id] = mode;\n },\n\n /**\r\n *\t@desc: check mandatory fields and varify values of cells, initiate update (if specified)\r\n *\t@param: rowId - id of row to set update-status for\r\n *\t@type: public\r\n */\n checkBeforeUpdate: function checkBeforeUpdate(rowId) {\n return true;\n },\n\n /**\r\n *\t@desc: send row(s) values to server\r\n *\t@param: rowId - id of row which data to send. If not specified, then all \"updated\" rows will be send\r\n *\t@type: public\r\n */\n sendData: function sendData(rowId) {\n if (this.$scheduler.editStop) this.$scheduler.editStop();\n if (typeof rowId == \"undefined\" || this._tSend) return this.sendAllData();\n if (this._in_progress[rowId]) return false;\n this.messages = [];\n if (!this.checkBeforeUpdate(rowId) && this.callEvent(\"onValidationError\", [rowId, this.messages])) return false;\n\n this._beforeSendData(this._getRowData(rowId), rowId);\n },\n _beforeSendData: function _beforeSendData(data, rowId) {\n if (!this.callEvent(\"onBeforeUpdate\", [rowId, this.getState(rowId), data])) return false;\n\n this._sendData(data, rowId);\n },\n serialize: function serialize(data, id) {\n if (this._serializeAsJson) {\n return this._serializeAsJSON(data);\n }\n\n if (typeof data == \"string\") return data;\n if (typeof id != \"undefined\") return this.serialize_one(data, \"\");else {\n var stack = [];\n var keys = [];\n\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n stack.push(this.serialize_one(data[key], key + this.post_delim));\n keys.push(key);\n }\n }\n\n stack.push(\"ids=\" + this.escape(keys.join(\",\")));\n if (this.$scheduler.security_key) stack.push(\"dhx_security=\" + this.$scheduler.security_key);\n return stack.join(\"&\");\n }\n },\n serialize_one: function serialize_one(data, pref) {\n if (typeof data == \"string\") return data;\n var stack = [];\n var serialized = \"\";\n\n for (var key in data) {\n if (data.hasOwnProperty(key)) {\n if ((key == \"id\" || key == this.action_param) && this._tMode == \"REST\") continue;\n\n if (typeof data[key] === \"string\" || typeof data[key] === \"number\") {\n serialized = data[key];\n } else {\n serialized = JSON.stringify(data[key]);\n }\n\n stack.push(this.escape((pref || \"\") + key) + \"=\" + this.escape(serialized));\n }\n }\n\n return stack.join(\"&\");\n },\n _applyPayload: function _applyPayload(url) {\n var ajax = this.$scheduler.ajax;\n if (this._payload) for (var key in this._payload) {\n url = url + ajax.urlSeparator(url) + this.escape(key) + \"=\" + this.escape(this._payload[key]);\n }\n return url;\n },\n _sendData: function _sendData(dataToSend, rowId) {\n if (!dataToSend) {\n return; // nothing to send\n }\n\n if (!this.callEvent(\"onBeforeDataSending\", rowId ? [rowId, this.getState(rowId), dataToSend] : [null, null, dataToSend])) {\n return false;\n }\n\n if (rowId) {\n this._in_progress[rowId] = new Date().valueOf();\n }\n\n var self = this;\n var ajax = this.$scheduler.ajax;\n\n if (this._tMode === \"CUSTOM\") {\n var state = this.getState(rowId);\n var action = this.getActionByState(state);\n\n var _onResolvedCreateUpdate = function _onResolvedCreateUpdate(tag) {\n var resultState = state;\n\n if (tag && tag.responseText && tag.setRequestHeader) {\n if (tag.status !== 200) {\n resultState = \"error\";\n }\n\n try {\n tag = JSON.parse(tag.responseText);\n } catch (e) {}\n }\n\n resultState = resultState || \"updated\";\n var sid = rowId;\n var tid = rowId;\n\n if (tag) {\n resultState = tag.action || resultState;\n sid = tag.sid || sid;\n tid = tag.id || tag.tid || tid;\n }\n\n self.afterUpdateCallback(sid, tid, resultState, tag);\n };\n\n var routerMode = \"event\";\n var actionPromise;\n\n if (this._router instanceof Function) {\n actionPromise = this._router(routerMode, action, dataToSend, rowId);\n } else {\n switch (state) {\n case \"inserted\":\n actionPromise = this._router[routerMode].create(dataToSend);\n break;\n\n case \"deleted\":\n actionPromise = this._router[routerMode][\"delete\"](rowId);\n break;\n\n default:\n actionPromise = this._router[routerMode].update(dataToSend, rowId);\n break;\n }\n }\n\n if (actionPromise) {\n // neither promise nor {tid: newId} response object\n if (!actionPromise.then && actionPromise.id === undefined && actionPromise.tid === undefined && actionPromise.action === undefined) {\n throw new Error(\"Incorrect router return value. A Promise or a response object is expected\");\n }\n\n if (actionPromise.then) {\n actionPromise.then(_onResolvedCreateUpdate)[\"catch\"](function (error) {\n if (error && error.action) {\n _onResolvedCreateUpdate(error);\n } else {\n _onResolvedCreateUpdate({\n action: \"error\",\n value: error\n });\n }\n });\n } else {\n // custom method may return a response object in case of sync action\n _onResolvedCreateUpdate(actionPromise);\n }\n } else {\n _onResolvedCreateUpdate(null);\n }\n\n return;\n }\n\n var queryParams = {\n callback: function callback(xml) {\n var ids = [];\n\n if (rowId) {\n ids.push(rowId);\n } else if (dataToSend) {\n for (var key in dataToSend) {\n ids.push(key);\n }\n }\n\n return self.afterUpdate(self, xml, ids);\n },\n headers: self._headers\n };\n var urlParams = this.serverProcessor + (this._user ? ajax.urlSeparator(this.serverProcessor) + [\"dhx_user=\" + this._user, \"dhx_version=\" + this.$scheduler.getUserData(0, \"version\")].join(\"&\") : \"\");\n\n var url = this._applyPayload(urlParams);\n\n var data;\n\n switch (this._tMode) {\n case \"GET\":\n data = this._cleanupArgumentsBeforeSend(dataToSend);\n queryParams.url = url + ajax.urlSeparator(url) + this.serialize(data, rowId);\n queryParams.method = \"GET\";\n break;\n\n case \"POST\":\n data = this._cleanupArgumentsBeforeSend(dataToSend);\n queryParams.url = url;\n queryParams.method = \"POST\";\n queryParams.data = this.serialize(data, rowId);\n break;\n\n case \"JSON\":\n data = {};\n\n var preprocessedData = this._cleanupItemBeforeSend(dataToSend);\n\n for (var key in preprocessedData) {\n if (key === this.action_param || key === \"id\" || key === \"gr_id\") {\n continue;\n }\n\n data[key] = preprocessedData[key];\n }\n\n queryParams.url = url;\n queryParams.method = \"POST\";\n queryParams.data = JSON.stringify({\n id: rowId,\n action: dataToSend[this.action_param],\n data: data\n });\n break;\n\n case \"REST\":\n case \"REST-JSON\":\n url = urlParams.replace(/(&|\\?)editing=true/, \"\");\n data = \"\";\n\n switch (this.getState(rowId)) {\n case \"inserted\":\n queryParams.method = \"POST\";\n queryParams.data = this.serialize(dataToSend, rowId);\n break;\n\n case \"deleted\":\n queryParams.method = \"DELETE\";\n url = url + (url.slice(-1) === \"/\" ? \"\" : \"/\") + rowId;\n break;\n\n default:\n queryParams.method = \"PUT\";\n queryParams.data = this.serialize(dataToSend, rowId);\n url = url + (url.slice(-1) === \"/\" ? \"\" : \"/\") + rowId;\n break;\n }\n\n queryParams.url = this._applyPayload(url);\n break;\n }\n\n this._waitMode++;\n return ajax.query(queryParams);\n },\n sendAllData: function sendAllData() {\n if (!this.updatedRows.length || this.updateMode === \"off\") {\n // FIXME: need to leave checking 'this.updateMode === \"off\"'?\n return;\n }\n\n this.messages = [];\n var valid = true;\n\n this._forEachUpdatedRow(function (rowId) {\n valid = valid && this.checkBeforeUpdate(rowId);\n });\n\n if (!valid && !this.callEvent(\"onValidationError\", [\"\", this.messages])) {\n return false;\n }\n\n if (this._tSend) {\n this._sendData(this._getAllData());\n } else {\n this._forEachUpdatedRow(function (rowId) {\n if (!this._in_progress[rowId]) {\n if (this.is_invalid(rowId)) {\n return;\n }\n\n this._beforeSendData(this._getRowData(rowId), rowId);\n }\n });\n }\n },\n _getAllData: function _getAllData(rowId) {\n var out = {};\n var has_one = false;\n\n this._forEachUpdatedRow(function (id) {\n if (this._in_progress[id] || this.is_invalid(id)) {\n return;\n }\n\n var row = this._getRowData(id);\n\n if (!this.callEvent(\"onBeforeUpdate\", [id, this.getState(id), row])) {\n return;\n }\n\n out[id] = row;\n has_one = true;\n this._in_progress[id] = new Date().valueOf();\n });\n\n return has_one ? out : null;\n },\n findRow: function findRow(pattern) {\n var i = 0;\n\n for (i = 0; i < this.updatedRows.length; i++) {\n if (pattern == this.updatedRows[i]) break;\n }\n\n return i;\n },\n\n /**\r\n *\t@desc: define custom actions\r\n *\t@param: name - name of action, same as value of action attribute\r\n *\t@param: handler - custom function, which receives a XMl response content for action\r\n *\t@type: private\r\n */\n defineAction: function defineAction(name, handler) {\n if (!this._uActions) this._uActions = {};\n this._uActions[name] = handler;\n },\n\n /**\r\n *\t @desc: used in combination with setOnBeforeUpdateHandler to create custom client-server transport system\r\n *\t @param: sid - id of item before update\r\n *\t @param: tid - id of item after up0ate\r\n *\t @param: action - action name\r\n *\t @type: public\r\n *\t @topic: 0\r\n */\n afterUpdateCallback: function afterUpdateCallback(sid, tid, action, btag) {\n if (!this.$scheduler) {\n // destructor has been called before the callback\n return;\n }\n\n var marker = sid;\n var correct = action !== \"error\" && action !== \"invalid\";\n\n if (!correct) {\n this.set_invalid(sid, action);\n }\n\n if (this._uActions && this._uActions[action] && !this._uActions[action](btag)) {\n return delete this._in_progress[marker];\n }\n\n if (this._in_progress[marker] !== \"wait\") {\n this.setUpdated(sid, false);\n }\n\n var originalSid = sid;\n\n switch (action) {\n case \"inserted\":\n case \"insert\":\n if (tid != sid) {\n this.setUpdated(sid, false);\n\n this.$scheduler[this._methods[2]](sid, tid);\n\n sid = tid;\n }\n\n break;\n\n case \"delete\":\n case \"deleted\":\n this.$scheduler.setUserData(sid, this.action_param, \"true_deleted\");\n\n this.$scheduler[this._methods[3]](sid, tid);\n\n delete this._in_progress[marker];\n return this.callEvent(\"onAfterUpdate\", [sid, action, tid, btag]);\n }\n\n if (this._in_progress[marker] !== \"wait\") {\n if (correct) {\n this.$scheduler.setUserData(sid, this.action_param, \"\");\n }\n\n delete this._in_progress[marker];\n } else {\n delete this._in_progress[marker];\n this.setUpdated(tid, true, this.$scheduler.getUserData(sid, this.action_param));\n }\n\n this.callEvent(\"onAfterUpdate\", [originalSid, action, tid, btag]);\n },\n _errorResponse: function _errorResponse(xml, id) {\n if (this.$scheduler && this.$scheduler.callEvent) {\n this.$scheduler.callEvent(\"onSaveError\", [id, xml.xmlDoc]);\n }\n\n return this.cleanUpdate(id);\n },\n _setDefaultTransactionMode: function _setDefaultTransactionMode() {\n if (this.serverProcessor) {\n this.setTransactionMode(\"POST\", true);\n this.serverProcessor += (this.serverProcessor.indexOf(\"?\") !== -1 ? \"&\" : \"?\") + \"editing=true\";\n this._serverProcessor = this.serverProcessor;\n }\n },\n\n /**\r\n *\t@desc: response from server\r\n *\t@param: xml - XMLLoader object with response XML\r\n *\t@type: private\r\n */\n afterUpdate: function afterUpdate(that, xml, id) {\n var ajax = this.$scheduler.ajax;\n\n if (xml.xmlDoc.status !== 200) {\n this._errorResponse(xml, id);\n\n return;\n } // try to use json first\n\n\n var tag;\n\n try {\n tag = JSON.parse(xml.xmlDoc.responseText);\n } catch (e) {\n // empty response also can be processed by json handler\n if (!xml.xmlDoc.responseText.length) {\n tag = {};\n }\n }\n\n if (tag) {\n var action = tag.action || this.getState(id) || \"updated\";\n var sid = tag.sid || id[0];\n var tid = tag.tid || id[0];\n that.afterUpdateCallback(sid, tid, action, tag);\n that.finalizeUpdate();\n return;\n } // xml response\n\n\n var top = ajax.xmltop(\"data\", xml.xmlDoc); // fix incorrect content type in IE\n\n if (!top) {\n return this._errorResponse(xml, id);\n }\n\n var atag = ajax.xpath(\"//data/action\", top);\n\n if (!atag.length) {\n return this._errorResponse(xml, id);\n }\n\n for (var i = 0; i < atag.length; i++) {\n var btag = atag[i];\n var action = btag.getAttribute(\"type\");\n var sid = btag.getAttribute(\"sid\");\n var tid = btag.getAttribute(\"tid\");\n that.afterUpdateCallback(sid, tid, action, btag);\n }\n\n that.finalizeUpdate();\n },\n cleanUpdate: function cleanUpdate(id) {\n if (id) for (var i = 0; i < id.length; i++) {\n delete this._in_progress[id[i]];\n }\n },\n finalizeUpdate: function finalizeUpdate() {\n if (this._waitMode) this._waitMode--;\n this.callEvent(\"onAfterUpdateFinish\", []);\n if (!this.updatedRows.length) this.callEvent(\"onFullSync\", []);\n },\n\n /**\r\n *\t@desc: initializes data-processor\r\n *\t@param: scheduler - dhtmlxScheduler object to attach this data-processor to\r\n *\t@type: public\r\n */\n init: function init(scheduler) {\n if (this._initialized) {\n return;\n }\n\n this.$scheduler = scheduler;\n\n if (this.$scheduler._dp_init) {\n this.$scheduler._dp_init(this);\n }\n\n this._setDefaultTransactionMode();\n\n this._methods = this._methods || [\"_set_event_text_style\", \"\", \"_dp_change_event_id\", \"_dp_hook_delete\"];\n extendScheduler(this.$scheduler, this);\n var dataProcessorEvents = new DataProcessorEvents(this.$scheduler, this);\n dataProcessorEvents.attach();\n this.attachEvent(\"onDestroy\", function () {\n delete this._getRowData;\n delete this.$scheduler._dp;\n delete this.$scheduler._dataprocessor;\n delete this.$scheduler._set_event_text_style;\n delete this.$scheduler._dp_change_event_id;\n delete this.$scheduler._dp_hook_delete;\n delete this.$scheduler;\n dataProcessorEvents.detach();\n });\n this.$scheduler.callEvent(\"onDataProcessorReady\", [this]);\n this._initialized = true;\n scheduler._dataprocessor = this;\n },\n setOnAfterUpdate: function setOnAfterUpdate(ev) {\n this.attachEvent(\"onAfterUpdate\", ev);\n },\n setOnBeforeUpdateHandler: function setOnBeforeUpdateHandler(func) {\n this.attachEvent(\"onBeforeDataSending\", func);\n },\n\n /* starts autoupdate mode\r\n \t@param interval time interval for sending update requests\r\n */\n setAutoUpdate: function setAutoUpdate(interval, user) {\n interval = interval || 2000;\n this._user = user || new Date().valueOf();\n this._need_update = false; //this._loader = null;\n\n this._update_busy = false;\n this.attachEvent(\"onAfterUpdate\", function (sid, action, tid, xml_node) {\n this.afterAutoUpdate(sid, action, tid, xml_node);\n });\n this.attachEvent(\"onFullSync\", function () {\n this.fullSync();\n });\n var self = this;\n global.setInterval(function () {\n self.loadUpdate();\n }, interval);\n },\n\n /* process updating request answer\r\n \tif status == collision version is deprecated\r\n \tset flag for autoupdating immediately\r\n */\n afterAutoUpdate: function afterAutoUpdate(sid, action, tid, xml_node) {\n if (action == 'collision') {\n this._need_update = true;\n return false;\n } else {\n return true;\n }\n },\n\n /* callback function for onFillSync event\r\n \tcall update function if it's need\r\n */\n fullSync: function fullSync() {\n if (this._need_update) {\n this._need_update = false;\n this.loadUpdate();\n }\n\n return true;\n },\n\n /* sends query to the server and call callback function\r\n */\n getUpdates: function getUpdates(url, callback) {\n var ajax = this.$scheduler.ajax;\n if (this._update_busy) return false;else this._update_busy = true;\n ajax.get(url, callback);\n },\n\n /* returns xml node value\r\n \t@param node\r\n \t\txml node\r\n */\n _getXmlNodeValue: function _getXmlNodeValue(node) {\n if (node.firstChild) {\n return node.firstChild.nodeValue;\n }\n\n return \"\";\n },\n\n /* loads updates and processes them\r\n */\n loadUpdate: function loadUpdate() {\n var self = this;\n var ajax = this.$scheduler.ajax;\n var version = this.$scheduler.getUserData(0, \"version\");\n var url = this.serverProcessor + ajax.urlSeparator(this.serverProcessor) + [\"dhx_user=\" + this._user, \"dhx_version=\" + version].join(\"&\");\n url = url.replace(\"editing=true&\", \"\");\n this.getUpdates(url, function (xml) {\n var vers = ajax.xpath(\"//userdata\", xml);\n self.$scheduler.setUserData(0, \"version\", self._getXmlNodeValue(vers[0]));\n var updates = ajax.xpath(\"//update\", xml);\n\n if (updates.length) {\n self._silent_mode = true;\n\n for (var i = 0; i < updates.length; i++) {\n var status = updates[i].getAttribute(\"status\");\n var id = updates[i].getAttribute(\"id\");\n var parent = updates[i].getAttribute(\"parent\");\n\n switch (status) {\n case \"inserted\":\n this.callEvent(\"insertCallback\", [updates[i], id, parent]);\n break;\n\n case \"updated\":\n this.callEvent(\"updateCallback\", [updates[i], id, parent]);\n break;\n\n case \"deleted\":\n this.callEvent(\"deleteCallback\", [updates[i], id, parent]);\n break;\n }\n }\n\n self._silent_mode = false;\n }\n\n self._update_busy = false;\n self = null;\n });\n },\n destructor: function destructor() {\n this.callEvent(\"onDestroy\", []);\n this.detachAllEvents();\n this.updatedRows = [];\n this._in_progress = {};\n this._invalid = {};\n this._headers = null;\n this._payload = null;\n delete this._initialized;\n },\n url: function url(_url) {\n this.serverProcessor = this._serverProcessor = _url;\n },\n _serializeAsJSON: function _serializeAsJSON(data) {\n if (typeof data === \"string\") {\n return data;\n }\n\n var copy = this.$scheduler.utils.copy(data);\n\n if (this._tMode === \"REST-JSON\") {\n delete copy.id;\n delete copy[this.action_param];\n }\n\n return JSON.stringify(copy);\n },\n // GET/POST/JSON modes of the dataProcessor didn't send the whole data items in 'delete' requests\n // clear extra info from the data in order not to change the request format\n _cleanupArgumentsBeforeSend: function _cleanupArgumentsBeforeSend(dataToSend) {\n var processedData;\n\n if (dataToSend[this.action_param] === undefined) {\n // hash of updated items, and not an individual item\n processedData = {};\n\n for (var i in dataToSend) {\n processedData[i] = this._cleanupArgumentsBeforeSend(dataToSend[i]);\n }\n } else {\n processedData = this._cleanupItemBeforeSend(dataToSend);\n }\n\n return processedData;\n },\n _cleanupItemBeforeSend: function _cleanupItemBeforeSend(updatedItem) {\n var output = null;\n\n if (updatedItem) {\n if (updatedItem[this.action_param] === \"deleted\") {\n output = {};\n output.id = updatedItem.id;\n output[this.action_param] = updatedItem[this.action_param];\n } else {\n output = updatedItem;\n }\n }\n\n return output;\n },\n _forEachUpdatedRow: function _forEachUpdatedRow(code) {\n var updatedRows = this.updatedRows.slice();\n\n for (var i = 0; i < updatedRows.length; i++) {\n var rowId = updatedRows[i];\n\n if (this.$scheduler.getUserData(rowId, this.action_param)) {\n code.call(this, rowId);\n }\n }\n },\n _prepareDataItem: function _prepareDataItem(item) {\n var processedItem = {};\n var scheduler = this.$scheduler;\n var copy = scheduler.utils.copy(item);\n\n for (var i in copy) {\n if (i.indexOf(\"_\") === 0) {\n continue;\n } else if (copy[i]) {\n if (copy[i].getUTCFullYear) {\n processedItem[i] = scheduler._helpers.formatDate(copy[i]);\n } else if (_typeof(copy[i]) == \"object\") {\n processedItem[i] = this._prepareDataItem(copy[i]);\n } else if (copy[i] === null) {\n processedItem[i] = \"\";\n } else {\n processedItem[i] = copy[i];\n }\n }\n }\n\n processedItem[this.action_param] = scheduler.getUserData(item.id, this.action_param);\n return processedItem;\n },\n _getRowData: function _getRowData(id) {\n var dataItem = this.$scheduler.getEvent(id);\n\n if (!dataItem) {\n dataItem = {\n id: id\n };\n }\n\n return this._prepareDataItem(dataItem);\n }\n};\nexport default function extend(scheduler) {\n scheduler.createDataProcessor = function (config) {\n var router;\n var tMode;\n\n if (config instanceof Function) {\n router = config;\n } else if (config.hasOwnProperty(\"router\")) {\n router = config.router;\n } else if (config.hasOwnProperty(\"event\")) {\n router = config;\n }\n\n if (router) {\n tMode = \"CUSTOM\";\n } else {\n tMode = config.mode || \"REST-JSON\";\n }\n\n var dp = new DataProcessor(config.url);\n dp.init(scheduler);\n dp.setTransactionMode({\n mode: tMode,\n router: router\n }, config.batchUpdate); // FIXME: config.batchUpdate where it is explained?\n\n return dp;\n };\n\n scheduler.DataProcessor = DataProcessor;\n} //var dataProcessor = global.dataProcessor = DataProcessor; // for old","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport utils from \"./utils/utils\";\nimport domHelpers from \"./utils/dom_helpers\";\nexport default function (scheduler) {\n var boxAttribute = \"data-dhxbox\";\n var _dhx_msg_cfg = null;\n\n function callback(config, result) {\n var usercall = config.callback;\n modalBox.hide(config.box);\n _dhx_msg_cfg = config.box = null;\n if (usercall) usercall(result);\n }\n\n function modal_key(event) {\n if (_dhx_msg_cfg) {\n var code = event.which || event.keyCode;\n var preventDefault = false;\n\n if (messageBox.keyboard) {\n if (code == 13 || code == 32) {\n // default behavior is to confirm/submit popup on space/enter\n // if browser focus is set on button element - do button click instead of default behavior\n var target = event.target || event.srcElement;\n\n if (domHelpers.getClassName(target).indexOf(\"scheduler_popup_button\") > -1 && target.click) {\n target.click();\n } else {\n callback(_dhx_msg_cfg, true);\n preventDefault = true;\n }\n }\n\n if (code == 27) {\n callback(_dhx_msg_cfg, false);\n preventDefault = true;\n }\n }\n\n if (preventDefault) {\n if (event.preventDefault) {\n event.preventDefault();\n }\n\n return !(event.cancelBubble = true);\n }\n\n return;\n }\n }\n\n scheduler.event(document, \"keydown\", modal_key, true);\n\n function modality(mode) {\n if (!modality.cover) {\n modality.cover = document.createElement(\"div\"); //necessary for IE only\n\n scheduler.event(modality.cover, \"keydown\", modal_key);\n modality.cover.className = \"dhx_modal_cover\";\n document.body.appendChild(modality.cover);\n }\n\n modality.cover.style.display = mode ? \"inline-block\" : \"none\";\n }\n\n function button(text, classValue, result) {\n var buttonAriaAttrs = scheduler._waiAria.messageButtonAttrString(text);\n\n var name = (classValue || \"\").toLowerCase().replace(/ /g, \"_\");\n var buttonCss = \"scheduler_\".concat(name, \"_button dhtmlx_\").concat(name, \"_button\");\n return \"<div \".concat(buttonAriaAttrs, \" class='scheduler_popup_button dhtmlx_popup_button \").concat(buttonCss, \"' data-result='\").concat(result, \"' result='\").concat(result, \"' ><div>\").concat(text, \"</div></div>\");\n }\n\n function info(text) {\n if (!messageBox.area) {\n messageBox.area = document.createElement(\"div\");\n messageBox.area.className = \"scheduler_message_area dhtmlx_message_area\";\n messageBox.area.style[messageBox.position] = \"5px\";\n document.body.appendChild(messageBox.area);\n }\n\n messageBox.hide(text.id);\n var message = document.createElement(\"div\");\n message.innerHTML = \"<div>\" + text.text + \"</div>\";\n message.className = \"scheduler-info dhtmlx-info scheduler-\" + text.type + \" dhtmlx-\" + text.type;\n scheduler.event(message, \"click\", function () {\n messageBox.hide(text.id);\n text = null;\n });\n\n scheduler._waiAria.messageInfoAttr(message);\n\n if (messageBox.position == \"bottom\" && messageBox.area.firstChild) messageBox.area.insertBefore(message, messageBox.area.firstChild);else messageBox.area.appendChild(message);\n if (text.expire > 0) messageBox.timers[text.id] = window.setTimeout(function () {\n // GS-1213: We need that when Scheduler is destroyed\n if (messageBox) messageBox.hide(text.id);\n }, text.expire);\n messageBox.pull[text.id] = message;\n message = null;\n return text.id;\n }\n\n function getFirstDefined() {\n var values = [].slice.apply(arguments, [0]);\n\n for (var i = 0; i < values.length; i++) {\n if (values[i]) {\n return values[i];\n }\n }\n }\n\n function _boxStructure(config, ok, cancel) {\n var box = document.createElement(\"div\");\n var contentId = utils.uid();\n\n scheduler._waiAria.messageModalAttr(box, contentId);\n\n box.className = \" scheduler_modal_box dhtmlx_modal_box scheduler-\" + config.type + \" dhtmlx-\" + config.type;\n box.setAttribute(boxAttribute, 1);\n var inner = '';\n if (config.width) box.style.width = config.width;\n if (config.height) box.style.height = config.height;\n if (config.title) inner += '<div class=\"scheduler_popup_title dhtmlx_popup_title\">' + config.title + '</div>';\n inner += '<div class=\"scheduler_popup_text dhtmlx_popup_text\" id=\"' + contentId + '\"><span>' + (config.content ? '' : config.text) + '</span></div><div class=\"scheduler_popup_controls dhtmlx_popup_controls\">';\n if (ok) inner += button(getFirstDefined(config.ok, scheduler.locale.labels.message_ok, \"OK\"), \"ok\", true);\n if (cancel) inner += button(getFirstDefined(config.cancel, scheduler.locale.labels.message_cancel, \"Cancel\"), \"cancel\", false);\n\n if (config.buttons) {\n for (var i = 0; i < config.buttons.length; i++) {\n var btn = config.buttons[i];\n\n if (_typeof(btn) == \"object\") {\n // Support { label:\"Save\", css:\"main_button\", value:\"save\" }\n var label = btn.label;\n var css = btn.css || \"scheduler_\" + btn.label.toLowerCase() + \"_button dhtmlx_\" + btn.label.toLowerCase() + \"_button\";\n var value = btn.value || i;\n inner += button(label, css, value);\n } else {\n inner += button(btn, btn, i);\n }\n }\n }\n\n inner += '</div>';\n box.innerHTML = inner;\n\n if (config.content) {\n var node = config.content;\n if (typeof node == \"string\") node = document.getElementById(node);\n if (node.style.display == 'none') node.style.display = \"\";\n box.childNodes[config.title ? 1 : 0].appendChild(node);\n }\n\n scheduler.event(box, \"click\", function (event) {\n var source = event.target || event.srcElement;\n if (!source.className) source = source.parentNode;\n\n if (domHelpers.closest(source, \".scheduler_popup_button\")) {\n var result = source.getAttribute(\"data-result\");\n result = result == \"true\" || (result == \"false\" ? false : result);\n callback(config, result);\n }\n });\n config.box = box;\n if (ok || cancel) _dhx_msg_cfg = config;\n return box;\n }\n\n function _createBox(config, ok, cancel) {\n var box = config.tagName ? config : _boxStructure(config, ok, cancel);\n if (!config.hidden) modality(true);\n document.body.appendChild(box);\n var x = Math.abs(Math.floor(((window.innerWidth || document.documentElement.offsetWidth) - box.offsetWidth) / 2));\n var y = Math.abs(Math.floor(((window.innerHeight || document.documentElement.offsetHeight) - box.offsetHeight) / 2));\n if (config.position == \"top\") box.style.top = \"-3px\";else box.style.top = y + 'px';\n box.style.left = x + 'px'; //necessary for IE only\n\n scheduler.event(box, \"keydown\", modal_key);\n modalBox.focus(box);\n if (config.hidden) modalBox.hide(box);\n scheduler.callEvent(\"onMessagePopup\", [box]);\n return box;\n }\n\n function alertPopup(config) {\n return _createBox(config, true, false);\n }\n\n function confirmPopup(config) {\n return _createBox(config, true, true);\n }\n\n function boxPopup(config) {\n return _createBox(config);\n }\n\n function box_params(text, type, callback) {\n if (_typeof(text) != \"object\") {\n if (typeof type == \"function\") {\n callback = type;\n type = \"\";\n }\n\n text = {\n text: text,\n type: type,\n callback: callback\n };\n }\n\n return text;\n }\n\n function params(text, type, expire, id) {\n if (_typeof(text) != \"object\") text = {\n text: text,\n type: type,\n expire: expire,\n id: id\n };\n text.id = text.id || utils.uid();\n text.expire = text.expire || messageBox.expire;\n return text;\n }\n\n var alertBox = function alertBox() {\n var text = box_params.apply(this, arguments);\n text.type = text.type || \"confirm\";\n return alertPopup(text);\n };\n\n var confirmBox = function confirmBox() {\n var text = box_params.apply(this, arguments);\n text.type = text.type || \"alert\";\n return confirmPopup(text);\n };\n\n var modalBox = function modalBox() {\n var text = box_params.apply(this, arguments);\n text.type = text.type || \"alert\";\n return boxPopup(text);\n };\n\n modalBox.hide = function (node) {\n while (node && node.getAttribute && !node.getAttribute(boxAttribute)) {\n node = node.parentNode;\n }\n\n if (node) {\n node.parentNode.removeChild(node);\n modality(false);\n scheduler.callEvent(\"onAfterMessagePopup\", [node]);\n }\n };\n\n modalBox.focus = function (node) {\n setTimeout(function () {\n var focusable = domHelpers.getFocusableNodes(node);\n\n if (focusable.length) {\n if (focusable[0].focus) focusable[0].focus();\n }\n }, 1);\n };\n\n var messageBox = function messageBox(text, type, expire, id) {\n text = params.apply(this, arguments);\n text.type = text.type || \"info\";\n var subtype = text.type.split(\"-\")[0];\n\n switch (subtype) {\n case \"alert\":\n return alertPopup(text);\n\n case \"confirm\":\n return confirmPopup(text);\n\n case \"modalbox\":\n return boxPopup(text);\n\n default:\n return info(text);\n }\n };\n\n messageBox.seed = new Date().valueOf();\n messageBox.uid = utils.uid;\n messageBox.expire = 4000;\n messageBox.keyboard = true;\n messageBox.position = \"top\";\n messageBox.pull = {};\n messageBox.timers = {};\n\n messageBox.hideAll = function () {\n for (var key in messageBox.pull) {\n messageBox.hide(key);\n }\n };\n\n messageBox.hide = function (id) {\n var obj = messageBox.pull[id];\n\n if (obj && obj.parentNode) {\n window.setTimeout(function () {\n obj.parentNode.removeChild(obj);\n obj = null;\n }, 2000);\n obj.className += \" hidden\";\n if (messageBox.timers[id]) window.clearTimeout(messageBox.timers[id]);\n delete messageBox.pull[id];\n }\n };\n\n var popups = [];\n scheduler.attachEvent(\"onMessagePopup\", function (box) {\n popups.push(box);\n });\n scheduler.attachEvent(\"onAfterMessagePopup\", function (box) {\n for (var i = 0; i < popups.length; i++) {\n if (popups[i] === box) {\n popups.splice(i, 1);\n i--;\n }\n }\n });\n scheduler.attachEvent(\"onDestroy\", function () {\n if (modality.cover && modality.cover.parentNode) {\n modality.cover.parentNode.removeChild(modality.cover);\n }\n\n for (var i = 0; i < popups.length; i++) {\n if (popups[i].parentNode) {\n popups[i].parentNode.removeChild(popups[i]);\n }\n }\n\n popups = null;\n\n if (messageBox.area && messageBox.area.parentNode) {\n messageBox.area.parentNode.removeChild(messageBox.area);\n }\n\n messageBox = null;\n });\n return {\n alert: alertBox,\n confirm: confirmBox,\n message: messageBox,\n modalbox: modalBox\n };\n}","export default function DataProcessorEvents(scheduler, dp) {\n this.$scheduler = scheduler;\n this.$dp = dp;\n this._dataProcessorHandlers = [];\n\n this.attach = function () {\n var dp = this.$dp;\n var scheduler = this.$scheduler;\n\n this._dataProcessorHandlers.push(scheduler.attachEvent(\"onEventAdded\", function (id) {\n if (!this._loading && this._validId(id)) dp.setUpdated(id, true, \"inserted\");\n }));\n\n this._dataProcessorHandlers.push(scheduler.attachEvent(\"onConfirmedBeforeEventDelete\", function (id) {\n if (!this._validId(id)) return;\n var z = dp.getState(id);\n\n if (z == \"inserted\" || this._new_event) {\n dp.setUpdated(id, false);\n return true;\n }\n\n if (z == \"deleted\") return false;\n if (z == \"true_deleted\") return true;\n dp.setUpdated(id, true, \"deleted\");\n return false;\n }));\n\n this._dataProcessorHandlers.push(scheduler.attachEvent(\"onEventChanged\", function (id) {\n if (!this._loading && this._validId(id)) dp.setUpdated(id, true, \"updated\");\n }));\n\n this._dataProcessorHandlers.push(scheduler.attachEvent(\"onClearAll\", function () {\n // clear dataprocessor state when scheduler is reset\n dp._in_progress = {};\n dp._invalid = {};\n dp.updatedRows = [];\n dp._waitMode = 0;\n }));\n\n dp.attachEvent(\"insertCallback\", scheduler._update_callback);\n dp.attachEvent(\"updateCallback\", scheduler._update_callback);\n dp.attachEvent(\"deleteCallback\", function (upd, id) {\n if (scheduler.getEvent(id)) {\n scheduler.setUserData(id, this.action_param, \"true_deleted\");\n scheduler.deleteEvent(id);\n } else if (scheduler._add_rec_marker) scheduler._update_callback(upd, id);\n });\n };\n\n this.detach = function () {\n for (var key in this._dataProcessorHandlers) {\n var handler = this._dataProcessorHandlers[key];\n this.$scheduler.detachEvent(handler);\n }\n\n this._dataProcessorHandlers = [];\n };\n}\nexport function extendScheduler(scheduler, dp) {\n scheduler._validId = function (id) {\n return true;\n };\n\n scheduler.setUserData = function (id, name, value) {\n if (id) {\n var ev = this.getEvent(id);\n if (ev) ev[name] = value;\n } else {\n this._userdata[name] = value;\n }\n };\n\n scheduler.getUserData = function (id, name) {\n if (id) {\n var ev = this.getEvent(id);\n if (ev) return ev[name];else return null;\n } else {\n return this._userdata[name];\n }\n };\n\n scheduler._set_event_text_style = function (id, style) {\n if (!scheduler.getEvent(id)) return;\n this.for_rendered(id, function (r) {\n r.style.cssText += \";\" + style;\n });\n var ev = this.getEvent(id);\n ev[\"_text_style\"] = style;\n this.event_updated(ev);\n };\n\n scheduler._update_callback = function (upd, id) {\n var data = scheduler._xmlNodeToJSON(upd.firstChild); //fix for updates of recurring events\n\n\n if (data.rec_type == \"none\") data.rec_pattern = \"none\";\n data.text = data.text || data._tagvalue;\n data.start_date = scheduler._helpers.parseDate(data.start_date);\n data.end_date = scheduler._helpers.parseDate(data.end_date);\n scheduler.addEvent(data);\n if (scheduler._add_rec_marker) scheduler.setCurrentView();\n };\n\n scheduler._dp_change_event_id = function (id, new_id) {\n if (!scheduler.getEvent(id)) return;\n scheduler.changeEventId(id, new_id);\n };\n\n scheduler._dp_hook_delete = function (id, new_id) {\n if (!scheduler.getEvent(id)) return;\n\n if (new_id && id != new_id) {\n if (this.getUserData(id, dp.action_param) == \"true_deleted\") this.setUserData(id, dp.action_param, \"updated\");\n this.changeEventId(id, new_id);\n }\n\n return this.deleteEvent(new_id, true);\n };\n\n scheduler.setDp = function () {\n this._dp = dp;\n };\n\n scheduler.setDp();\n}","export default {\n date: {\n month_full: [\"كانون الثاني\", \"شباط\", \"آذار\", \"نيسان\", \"أيار\", \"حزيران\", \"تموز\", \"آب\", \"أيلول\", \"تشرين الأول\", \"تشرين الثاني\", \"كانون الأول\"],\n month_short: [\"يناير\", \"فبراير\", \"مارس\", \"أبريل\", \"مايو\", \"يونيو\", \"يوليو\", \"أغسطس\", \"سبتمبر\", \"أكتوبر\", \"نوفمبر\", \"ديسمبر\"],\n day_full: [\"الأحد\", \"الأثنين\", \"ألثلاثاء\", \"الأربعاء\", \"ألحميس\", \"ألجمعة\", \"السبت\"],\n day_short: [\"احد\", \"اثنين\", \"ثلاثاء\", \"اربعاء\", \"خميس\", \"جمعة\", \"سبت\"]\n },\n labels: {\n dhx_cal_today_button: \"اليوم\",\n day_tab: \"يوم\",\n week_tab: \"أسبوع\",\n month_tab: \"شهر\",\n new_event: \"حدث جديد\",\n icon_save: \"اخزن\",\n icon_cancel: \"الغاء\",\n icon_details: \"تفاصيل\",\n icon_edit: \"تحرير\",\n icon_delete: \"حذف\",\n confirm_closing: \"التغييرات سوف تضيع, هل انت متأكد؟\",\n //Your changes will be lost, are your sure ?\n confirm_deleting: \"الحدث سيتم حذفها نهائيا ، هل أنت متأكد؟\",\n section_description: \"الوصف\",\n section_time: \"الفترة الزمنية\",\n full_day: \"طوال اليوم\",\n confirm_recurring: \"هل تريد تحرير مجموعة كاملة من الأحداث المتكررة؟\",\n section_recurring: \"تكرار الحدث\",\n button_recurring: \"تعطيل\",\n button_recurring_open: \"تمكين\",\n button_edit_series: \"تحرير سلسلة\",\n button_edit_occurrence: \"تعديل نسخة\",\n\n /*grid view extension*/\n grid_tab: \"جدول\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\"\n }\n};","/*\r\n Translation by Sofya Morozova\r\n */\nexport default {\n date: {\n month_full: [\"Студзень\", \"Люты\", \"Сакавік\", \"Красавік\", \"Maй\", \"Чэрвень\", \"Ліпень\", \"Жнівень\", \"Верасень\", \"Кастрычнік\", \"Лістапад\", \"Снежань\"],\n month_short: [\"Студз\", \"Лют\", \"Сак\", \"Крас\", \"Maй\", \"Чэр\", \"Ліп\", \"Жнів\", \"Вер\", \"Каст\", \"Ліст\", \"Снеж\"],\n day_full: [\"Нядзеля\", \"Панядзелак\", \"Аўторак\", \"Серада\", \"Чацвер\", \"Пятніца\", \"Субота\"],\n day_short: [\"Нд\", \"Пн\", \"Аўт\", \"Ср\", \"Чцв\", \"Пт\", \"Сб\"]\n },\n labels: {\n dhx_cal_today_button: \"Сёння\",\n day_tab: \"Дзень\",\n week_tab: \"Тыдзень\",\n month_tab: \"Месяц\",\n new_event: \"Новая падзея\",\n icon_save: \"Захаваць\",\n icon_cancel: \"Адмяніць\",\n icon_details: \"Дэталі\",\n icon_edit: \"Змяніць\",\n icon_delete: \"Выдаліць\",\n confirm_closing: \"\",\n //Унесеныя змены будуць страчаны, працягнуць?\n confirm_deleting: \"Падзея будзе выдалена незваротна, працягнуць?\",\n section_description: \"Апісанне\",\n section_time: \"Перыяд часу\",\n full_day: \"Увесь дзень\",\n confirm_recurring: \"Вы хочаце змяніць усю серыю паўтаральных падзей?\",\n section_recurring: \"Паўтарэнне\",\n button_recurring: \"Адключана\",\n button_recurring_open: \"Уключана\",\n button_edit_series: \"Рэдагаваць серыю\",\n button_edit_occurrence: \"Рэдагаваць асобнік\",\n\n /*agenda view extension*/\n agenda_tab: \"Спіс\",\n date: \"Дата\",\n description: \"Апісанне\",\n\n /*year view extension*/\n year_tab: \"Год\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Спіс\",\n\n /*grid view extension*/\n grid_tab: \"Спic\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Дзень\",\n repeat_radio_week: \"Тыдзень\",\n repeat_radio_month: \"Месяц\",\n repeat_radio_year: \"Год\",\n repeat_radio_day_type: \"Кожны\",\n repeat_text_day_count: \"дзень\",\n repeat_radio_day_type2: \"Кожны працоўны дзень\",\n repeat_week: \" Паўтараць кожны\",\n repeat_text_week_count: \"тыдзень\",\n repeat_radio_month_type: \"Паўтараць\",\n repeat_radio_month_start: \"\",\n repeat_text_month_day: \" чысла кожнага\",\n repeat_text_month_count: \"месяцу\",\n repeat_text_month_count2_before: \"кожны \",\n repeat_text_month_count2_after: \"месяц\",\n repeat_year_label: \"\",\n select_year_day2: \"\",\n repeat_text_year_day: \"день\",\n select_year_month: \"\",\n repeat_radio_end: \"Без даты заканчэння\",\n repeat_text_occurences_count: \"паўтораў\",\n repeat_radio_end2: \"\",\n repeat_radio_end3: \"Да \",\n month_for_recurring: [\"Студзеня\", \"Лютага\", \"Сакавіка\", \"Красавіка\", \"Мая\", \"Чэрвеня\", \"Ліпeня\", \"Жніўня\", \"Верасня\", \"Кастрычніка\", \"Лістапада\", \"Снежня\"],\n day_for_recurring: [\"Нядзелю\", \"Панядзелак\", \"Аўторак\", \"Сераду\", \"Чацвер\", \"Пятніцу\", \"Суботу\"]\n }\n};","/*\r\n @Traducido por Vicente Adria Bohigues - vicenteadria@hotmail.com\r\n */\nexport default {\n date: {\n month_full: [\"Gener\", \"Febrer\", \"Març\", \"Abril\", \"Maig\", \"Juny\", \"Juliol\", \"Agost\", \"Setembre\", \"Octubre\", \"Novembre\", \"Desembre\"],\n month_short: [\"Gen\", \"Feb\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Oct\", \"Nov\", \"Des\"],\n day_full: [\"Diumenge\", \"Dilluns\", \"Dimarts\", \"Dimecres\", \"Dijous\", \"Divendres\", \"Dissabte\"],\n day_short: [\"Dg\", \"Dl\", \"Dm\", \"Dc\", \"Dj\", \"Dv\", \"Ds\"]\n },\n labels: {\n dhx_cal_today_button: \"Hui\",\n day_tab: \"Dia\",\n week_tab: \"Setmana\",\n month_tab: \"Mes\",\n new_event: \"Nou esdeveniment\",\n icon_save: \"Guardar\",\n icon_cancel: \"Cancel·lar\",\n icon_details: \"Detalls\",\n icon_edit: \"Editar\",\n icon_delete: \"Esborrar\",\n confirm_closing: \"\",\n //\"Els seus canvis es perdràn, continuar ?\"\n confirm_deleting: \"L'esdeveniment s'esborrarà definitivament, continuar ?\",\n section_description: \"Descripció\",\n section_time: \"Periode de temps\",\n full_day: \"Tot el dia\",\n confirm_recurring: \"¿Desitja modificar el conjunt d'esdeveniments repetits?\",\n section_recurring: \"Repeteixca l'esdeveniment\",\n button_recurring: \"Impedit\",\n button_recurring_open: \"Permés\",\n button_edit_series: \"Edit sèrie\",\n button_edit_occurrence: \"Edita Instància\",\n\n /*agenda view extension*/\n agenda_tab: \"Agenda\",\n date: \"Data\",\n description: \"Descripció\",\n\n /*year view extension*/\n year_tab: \"Any\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Agenda\",\n\n /*grid view extension*/\n grid_tab: \"Taula\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\"\n }\n};","/*\r\nTranslation by FreezeSoul\r\n*/\n//scheduler.config.day_date=\"%M %d日 %D\";\n//scheduler.config.default_date=\"%Y年 %M %d日\";\n//scheduler.config.month_date=\"%Y年 %M\";\nexport default {\n date: {\n month_full: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n month_short: [\"1月\", \"2月\", \"3月\", \"4月\", \"5月\", \"6月\", \"7月\", \"8月\", \"9月\", \"10月\", \"11月\", \"12月\"],\n day_full: [\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\"],\n day_short: [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"]\n },\n labels: {\n dhx_cal_today_button: \"今天\",\n day_tab: \"日\",\n week_tab: \"周\",\n month_tab: \"月\",\n new_event: \"新建日程\",\n icon_save: \"保存\",\n icon_cancel: \"关闭\",\n icon_details: \"详细\",\n icon_edit: \"编辑\",\n icon_delete: \"删除\",\n confirm_closing: \"请确认是否撤销修改!\",\n //Your changes will be lost, are your sure?\n confirm_deleting: \"是否删除日程?\",\n section_description: \"描述\",\n section_time: \"时间范围\",\n full_day: \"整天\",\n confirm_recurring: \"请确认是否将日程设为重复模式?\",\n section_recurring: \"重复周期\",\n button_recurring: \"禁用\",\n button_recurring_open: \"启用\",\n button_edit_series: \"编辑系列\",\n button_edit_occurrence: \"编辑实例\",\n\n /*agenda view extension*/\n agenda_tab: \"议程\",\n date: \"日期\",\n description: \"说明\",\n\n /*year view extension*/\n year_tab: \"今年\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"议程\",\n\n /*grid view extension*/\n grid_tab: \"电网\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"按天\",\n repeat_radio_week: \"按周\",\n repeat_radio_month: \"按月\",\n repeat_radio_year: \"按年\",\n repeat_radio_day_type: \"每\",\n repeat_text_day_count: \"天\",\n repeat_radio_day_type2: \"每个工作日\",\n repeat_week: \" 重复 每\",\n repeat_text_week_count: \"星期的:\",\n repeat_radio_month_type: \"重复\",\n repeat_radio_month_start: \"在\",\n repeat_text_month_day: \"日 每\",\n repeat_text_month_count: \"月\",\n repeat_text_month_count2_before: \"每\",\n repeat_text_month_count2_after: \"月\",\n repeat_year_label: \"在\",\n select_year_day2: \"的\",\n repeat_text_year_day: \"日\",\n select_year_month: \"月\",\n repeat_radio_end: \"无结束日期\",\n repeat_text_occurences_count: \"次结束\",\n repeat_radio_end2: \"重复\",\n repeat_radio_end3: \"结束于\",\n month_for_recurring: [\"一月\", \"二月\", \"三月\", \"四月\", \"五月\", \"六月\", \"七月\", \"八月\", \"九月\", \"十月\", \"十一月\", \"十二月\"],\n day_for_recurring: [\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\"]\n }\n};","export default {\n date: {\n month_full: [\"Leden\", \"Únor\", \"Březen\", \"Duben\", \"Květen\", \"Červen\", \"Červenec\", \"Srpen\", \"Září\", \"Říjen\", \"Listopad\", \"Prosinec\"],\n month_short: [\"Led\", \"Ún\", \"Bře\", \"Dub\", \"Kvě\", \"Čer\", \"Čec\", \"Srp\", \"Září\", \"Říj\", \"List\", \"Pro\"],\n day_full: [\"Neděle\", \"Pondělí\", \"Úterý\", \"Středa\", \"Čtvrtek\", \"Pátek\", \"Sobota\"],\n day_short: [\"Ne\", \"Po\", \"Út\", \"St\", \"Čt\", \"Pá\", \"So\"]\n },\n labels: {\n dhx_cal_today_button: \"Dnes\",\n day_tab: \"Den\",\n week_tab: \"Týden\",\n month_tab: \"Měsíc\",\n new_event: \"Nová událost\",\n icon_save: \"Uložit\",\n icon_cancel: \"Zpět\",\n icon_details: \"Detail\",\n icon_edit: \"Edituj\",\n icon_delete: \"Smazat\",\n confirm_closing: \"\",\n //Vaše změny budou ztraceny, opravdu ?\n confirm_deleting: \"Událost bude trvale smazána, opravdu?\",\n section_description: \"Poznámky\",\n section_time: \"Doba platnosti\",\n\n /*recurring events*/\n confirm_recurring: \"Přejete si upravit celou řadu opakovaných událostí?\",\n section_recurring: \"Opakování události\",\n button_recurring: \"Vypnuto\",\n button_recurring_open: \"Zapnuto\",\n button_edit_series: \"Edit series\",\n button_edit_occurrence: \"Upravit instance\",\n\n /*agenda view extension*/\n agenda_tab: \"Program\",\n date: \"Datum\",\n description: \"Poznámka\",\n\n /*year view extension*/\n year_tab: \"Rok\",\n full_day: \"Full day\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Program\",\n\n /*grid view extension*/\n grid_tab: \"Mřížka\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Denně\",\n repeat_radio_week: \"Týdně\",\n repeat_radio_month: \"Měsíčně\",\n repeat_radio_year: \"Ročně\",\n repeat_radio_day_type: \"každý\",\n repeat_text_day_count: \"Den\",\n repeat_radio_day_type2: \"pracovní dny\",\n repeat_week: \"Opakuje každých\",\n repeat_text_week_count: \"Týdnů na:\",\n repeat_radio_month_type: \"u každého\",\n repeat_radio_month_start: \"na\",\n repeat_text_month_day: \"Den každého\",\n repeat_text_month_count: \"Měsíc\",\n repeat_text_month_count2_before: \"každý\",\n repeat_text_month_count2_after: \"Měsíc\",\n repeat_year_label: \"na\",\n select_year_day2: \"v\",\n repeat_text_year_day: \"Den v\",\n select_year_month: \"\",\n repeat_radio_end: \"bez data ukončení\",\n repeat_text_occurences_count: \"Události\",\n repeat_radio_end2: \"po\",\n repeat_radio_end3: \"Konec\",\n month_for_recurring: [\"Leden\", \"Únor\", \"Březen\", \"Duben\", \"Květen\", \"Červen\", \"Červenec\", \"Srpen\", \"Září\", \"Říjen\", \"Listopad\", \"Prosinec\"],\n day_for_recurring: [\"Neděle \", \"Pondělí\", \"Úterý\", \"Středa\", \"Čtvrtek\", \"Pátek\", \"Sobota\"]\n }\n};","export default {\n date: {\n month_full: [\"Januar\", \"Februar\", \"Marts\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"December\"],\n month_short: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n day_full: [\"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\"],\n day_short: [\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\"]\n },\n labels: {\n dhx_cal_today_button: \"Idag\",\n day_tab: \"Dag\",\n week_tab: \"Uge\",\n month_tab: \"Måned\",\n new_event: \"Ny begivenhed\",\n icon_save: \"Gem\",\n icon_cancel: \"Fortryd\",\n icon_details: \"Detaljer\",\n icon_edit: \"Tilret\",\n icon_delete: \"Slet\",\n confirm_closing: \"Dine rettelser vil gå tabt.. Er dy sikker?\",\n //Your changes will be lost, are your sure ?\n confirm_deleting: \"Bigivenheden vil blive slettet permanent. Er du sikker?\",\n section_description: \"Beskrivelse\",\n section_time: \"Tidsperiode\",\n\n /*recurring events*/\n confirm_recurring: \"Vil du tilrette hele serien af gentagne begivenheder?\",\n section_recurring: \"Gentag begivenhed\",\n button_recurring: \"Frakoblet\",\n button_recurring_open: \"Tilkoblet\",\n button_edit_series: \"Rediger serien\",\n button_edit_occurrence: \"Rediger en kopi\",\n\n /*agenda view extension*/\n agenda_tab: \"Dagsorden\",\n date: \"Dato\",\n description: \"Beskrivelse\",\n\n /*year view extension*/\n year_tab: \"År\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Dagsorden\",\n\n /*grid view extension*/\n grid_tab: \"Grid\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Daglig\",\n repeat_radio_week: \"Ugenlig\",\n repeat_radio_month: \"Månedlig\",\n repeat_radio_year: \"Årlig\",\n repeat_radio_day_type: \"Hver\",\n repeat_text_day_count: \"dag\",\n repeat_radio_day_type2: \"På hver arbejdsdag\",\n repeat_week: \" Gentager sig hver\",\n repeat_text_week_count: \"uge på følgende dage:\",\n repeat_radio_month_type: \"Hver den\",\n repeat_radio_month_start: \"Den\",\n repeat_text_month_day: \" i hver\",\n repeat_text_month_count: \"måned\",\n repeat_text_month_count2_before: \"hver\",\n repeat_text_month_count2_after: \"måned\",\n repeat_year_label: \"Den\",\n select_year_day2: \"i\",\n repeat_text_year_day: \"dag i\",\n select_year_month: \"\",\n repeat_radio_end: \"Ingen slutdato\",\n repeat_text_occurences_count: \"gentagelse\",\n repeat_radio_end2: \"Efter\",\n repeat_radio_end3: \"Slut\",\n month_for_recurring: [\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"],\n day_for_recurring: [\"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\"]\n }\n};","export default {\n date: {\n month_full: [\" Januar\", \" Februar\", \" März \", \" April\", \" Mai\", \" Juni\", \" Juli\", \" August\", \" September \", \" Oktober\", \" November \", \" Dezember\"],\n month_short: [\"Jan\", \"Feb\", \"Mär\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dez\"],\n day_full: [\"Sonntag\", \"Montag\", \"Dienstag\", \" Mittwoch\", \" Donnerstag\", \"Freitag\", \"Samstag\"],\n day_short: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"]\n },\n labels: {\n dhx_cal_today_button: \"Heute\",\n day_tab: \"Tag\",\n week_tab: \"Woche\",\n month_tab: \"Monat\",\n new_event: \"neuer Eintrag\",\n icon_save: \"Speichern\",\n icon_cancel: \"Abbrechen\",\n icon_details: \"Details\",\n icon_edit: \"Ändern\",\n icon_delete: \"Löschen\",\n confirm_closing: \"\",\n //\"Ihre Veränderungen werden verloren sein, wollen Sie ergänzen? \"\n confirm_deleting: \"Der Eintrag wird gelöscht\",\n section_description: \"Beschreibung\",\n section_time: \"Zeitspanne\",\n full_day: \"Ganzer Tag\",\n confirm_recurring: \"Wollen Sie alle Einträge bearbeiten oder nur diesen einzelnen Eintrag?\",\n section_recurring: \"Wiederholung\",\n button_recurring: \"Aus\",\n button_recurring_open: \"An\",\n button_edit_series: \"Bearbeiten Sie die Serie\",\n button_edit_occurrence: \"Bearbeiten Sie eine Kopie\",\n\n /*agenda view extension*/\n agenda_tab: \"Agenda\",\n date: \"Datum\",\n description: \"Beschreibung\",\n\n /*year view extension*/\n year_tab: \"Jahre\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Agenda\",\n\n /*grid view extension*/\n grid_tab: \"Grid\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Täglich\",\n repeat_radio_week: \"Wöchentlich\",\n repeat_radio_month: \"Monatlich\",\n repeat_radio_year: \"Jährlich\",\n repeat_radio_day_type: \"jeden\",\n repeat_text_day_count: \"Tag\",\n repeat_radio_day_type2: \"an jedem Arbeitstag\",\n repeat_week: \" Wiederholt sich jede\",\n repeat_text_week_count: \"Woche am:\",\n repeat_radio_month_type: \"an jedem\",\n repeat_radio_month_start: \"am\",\n repeat_text_month_day: \"Tag eines jeden\",\n repeat_text_month_count: \"Monats\",\n repeat_text_month_count2_before: \"jeden\",\n repeat_text_month_count2_after: \"Monats\",\n repeat_year_label: \"am\",\n select_year_day2: \"im\",\n repeat_text_year_day: \"Tag im\",\n select_year_month: \"\",\n repeat_radio_end: \"kein Enddatum\",\n repeat_text_occurences_count: \"Ereignissen\",\n repeat_radio_end3: \"Schluß\",\n repeat_radio_end2: \"nach\",\n month_for_recurring: [\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"],\n day_for_recurring: [\"Sonntag\", \"Montag\", \"Dienstag\", \"Mittwoch\", \"Donnerstag\", \"Freitag\", \"Samstag\"]\n }\n};","export default {\n date: {\n month_full: [\"Ιανουάριος\", \"Φεβρουάριος\", \"Μάρτιος\", \"Απρίλιος\", \"Μάϊος\", \"Ιούνιος\", \"Ιούλιος\", \"Αύγουστος\", \"Σεπτέμβριος\", \"Οκτώβριος\", \"Νοέμβριος\", \"Δεκέμβριος\"],\n month_short: [\"ΙΑΝ\", \"ΦΕΒ\", \"ΜΑΡ\", \"ΑΠΡ\", \"ΜΑΙ\", \"ΙΟΥΝ\", \"ΙΟΥΛ\", \"ΑΥΓ\", \"ΣΕΠ\", \"ΟΚΤ\", \"ΝΟΕ\", \"ΔΕΚ\"],\n day_full: [\"Κυριακή\", \"Δευτέρα\", \"Τρίτη\", \"Τετάρτη\", \"Πέμπτη\", \"Παρασκευή\", \"Κυριακή\"],\n day_short: [\"ΚΥ\", \"ΔΕ\", \"ΤΡ\", \"ΤΕ\", \"ΠΕ\", \"ΠΑ\", \"ΣΑ\"]\n },\n labels: {\n dhx_cal_today_button: \"Σήμερα\",\n day_tab: \"Ημέρα\",\n week_tab: \"Εβδομάδα\",\n month_tab: \"Μήνας\",\n new_event: \"Νέο έργο\",\n icon_save: \"Αποθήκευση\",\n icon_cancel: \"Άκυρο\",\n icon_details: \"Λεπτομέρειες\",\n icon_edit: \"Επεξεργασία\",\n icon_delete: \"Διαγραφή\",\n confirm_closing: \"\",\n //Your changes will be lost, are your sure ?\n confirm_deleting: \"Το έργο θα διαγραφεί οριστικά. Θέλετε να συνεχίσετε;\",\n section_description: \"Περιγραφή\",\n section_time: \"Χρονική περίοδος\",\n full_day: \"Πλήρης Ημέρα\",\n\n /*recurring events*/\n confirm_recurring: \"Θέλετε να επεξεργασθείτε ολόκληρη την ομάδα των επαναλαμβανόμενων έργων;\",\n section_recurring: \"Επαναλαμβανόμενο έργο\",\n button_recurring: \"Ανενεργό\",\n button_recurring_open: \"Ενεργό\",\n button_edit_series: \"Επεξεργαστείτε τη σειρά\",\n button_edit_occurrence: \"Επεξεργασία ένα αντίγραφο\",\n\n /*agenda view extension*/\n agenda_tab: \"Ημερήσια Διάταξη\",\n date: \"Ημερομηνία\",\n description: \"Περιγραφή\",\n\n /*year view extension*/\n year_tab: \"Έτος\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Ημερήσια Διάταξη\",\n\n /*grid view extension*/\n grid_tab: \"Πλέγμα\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Ημερησίως\",\n repeat_radio_week: \"Εβδομαδιαίως\",\n repeat_radio_month: \"Μηνιαίως\",\n repeat_radio_year: \"Ετησίως\",\n repeat_radio_day_type: \"Κάθε\",\n repeat_text_day_count: \"ημέρα\",\n repeat_radio_day_type2: \"Κάθε εργάσιμη\",\n repeat_week: \" Επανάληψη κάθε\",\n repeat_text_week_count: \"εβδομάδα τις επόμενες ημέρες:\",\n repeat_radio_month_type: \"Επανάληψη\",\n repeat_radio_month_start: \"Την\",\n repeat_text_month_day: \"ημέρα κάθε\",\n repeat_text_month_count: \"μήνα\",\n repeat_text_month_count2_before: \"κάθε\",\n repeat_text_month_count2_after: \"μήνα\",\n repeat_year_label: \"Την\",\n select_year_day2: \"του\",\n repeat_text_year_day: \"ημέρα\",\n select_year_month: \"μήνα\",\n repeat_radio_end: \"Χωρίς ημερομηνία λήξεως\",\n repeat_text_occurences_count: \"επαναλήψεις\",\n repeat_radio_end3: \"Λήγει την\",\n repeat_radio_end2: \"Μετά από\",\n month_for_recurring: [\"Ιανουάριος\", \"Φεβρουάριος\", \"Μάρτιος\", \"Απρίλιος\", \"Μάϊος\", \"Ιούνιος\", \"Ιούλιος\", \"Αύγουστος\", \"Σεπτέμβριος\", \"Οκτώβριος\", \"Νοέμβριος\", \"Δεκέμβριος\"],\n day_for_recurring: [\"Κυριακή\", \"Δευτέρα\", \"Τρίτη\", \"Τετάρτη\", \"Πέμπτη\", \"Παρασκευή\", \"Σάββατο\"]\n }\n};","export default {\n date: {\n month_full: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n month_short: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n day_full: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n day_short: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]\n },\n labels: {\n dhx_cal_today_button: \"Today\",\n day_tab: \"Day\",\n week_tab: \"Week\",\n month_tab: \"Month\",\n new_event: \"New event\",\n icon_save: \"Save\",\n icon_cancel: \"Cancel\",\n icon_details: \"Details\",\n icon_edit: \"Edit\",\n icon_delete: \"Delete\",\n confirm_closing: \"\",\n //Your changes will be lost, are your sure ?\n confirm_deleting: \"Event will be deleted permanently, are you sure?\",\n section_description: \"Description\",\n section_time: \"Time period\",\n full_day: \"Full day\",\n\n /*recurring events*/\n confirm_recurring: \"Do you want to edit the whole set of repeated events?\",\n section_recurring: \"Repeat event\",\n button_recurring: \"Disabled\",\n button_recurring_open: \"Enabled\",\n button_edit_series: \"Edit series\",\n button_edit_occurrence: \"Edit occurrence\",\n\n /*agenda view extension*/\n agenda_tab: \"Agenda\",\n date: \"Date\",\n description: \"Description\",\n\n /*year view extension*/\n year_tab: \"Year\",\n\n /* week agenda extension */\n week_agenda_tab: \"Agenda\",\n\n /*grid view extension*/\n grid_tab: \"Grid\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Daily\",\n //name=\"repeat\" value=\"day\"\n repeat_radio_week: \"Weekly\",\n //name=\"repeat\" value=\"week\n repeat_radio_month: \"Monthly\",\n repeat_radio_year: \"Yearly\",\n repeat_radio_day_type: \"Every\",\n repeat_text_day_count: \"day\",\n repeat_radio_day_type2: \"Every workday\",\n repeat_week: \" Repeat every\",\n repeat_text_week_count: \"week next days:\",\n repeat_radio_month_type: \"Repeat\",\n repeat_radio_month_start: \"On\",\n repeat_text_month_day: \"day every\",\n repeat_text_month_count: \"month\",\n repeat_text_month_count2_before: \"every\",\n repeat_text_month_count2_after: \"month\",\n repeat_year_label: \"On\",\n select_year_day2: \"of\",\n repeat_text_year_day: \"day\",\n select_year_month: \"month\",\n repeat_radio_end: \"No end date\",\n repeat_text_occurences_count: \"occurrences\",\n repeat_radio_end2: \"After\",\n repeat_radio_end3: \"End by\",\n month_for_recurring: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n day_for_recurring: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"] //\n\n }\n};","/*\r\n @Autor Manuel Fernandez Panzuela - www.mfernandez.es\r\n */\nexport default {\n date: {\n month_full: [\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"],\n month_short: [\"Ene\", \"Feb\", \"Mar\", \"Abr\", \"May\", \"Jun\", \"Jul\", \"Ago\", \"Sep\", \"Oct\", \"Nov\", \"Dic\"],\n day_full: [\"Domingo\", \"Lunes\", \"Martes\", \"Miércoles\", \"Jueves\", \"Viernes\", \"Sábado\"],\n day_short: [\"Dom\", \"Lun\", \"Mar\", \"Mié\", \"Jue\", \"Vie\", \"Sáb\"]\n },\n labels: {\n dhx_cal_today_button: \"Hoy\",\n day_tab: \"Día\",\n week_tab: \"Semana\",\n month_tab: \"Mes\",\n new_event: \"Nuevo evento\",\n icon_save: \"Guardar\",\n icon_cancel: \"Cancelar\",\n icon_details: \"Detalles\",\n icon_edit: \"Editar\",\n icon_delete: \"Eliminar\",\n confirm_closing: \"\",\n //\"Sus cambios se perderán, continuar ?\"\n confirm_deleting: \"El evento se borrará definitivamente, ¿continuar?\",\n section_description: \"Descripción\",\n section_time: \"Período\",\n full_day: \"Todo el día\",\n confirm_recurring: \"¿Desea modificar el conjunto de eventos repetidos?\",\n section_recurring: \"Repita el evento\",\n button_recurring: \"Impedido\",\n button_recurring_open: \"Permitido\",\n button_edit_series: \"Editar la serie\",\n button_edit_occurrence: \"Editar este evento\",\n\n /*agenda view extension*/\n agenda_tab: \"Día\",\n date: \"Fecha\",\n description: \"Descripción\",\n\n /*year view extension*/\n year_tab: \"Año\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Día\",\n\n /*grid view extension*/\n grid_tab: \"Reja\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Diariamente\",\n repeat_radio_week: \"Semanalmente\",\n repeat_radio_month: \"Mensualmente\",\n repeat_radio_year: \"Anualmente\",\n repeat_radio_day_type: \"Cada\",\n repeat_text_day_count: \"dia\",\n repeat_radio_day_type2: \"Cada jornada de trabajo\",\n repeat_week: \" Repetir cada\",\n repeat_text_week_count: \"semana:\",\n repeat_radio_month_type: \"Repita\",\n repeat_radio_month_start: \"El\",\n repeat_text_month_day: \"dia cada \",\n repeat_text_month_count: \"mes\",\n repeat_text_month_count2_before: \"cada\",\n repeat_text_month_count2_after: \"mes\",\n repeat_year_label: \"El\",\n select_year_day2: \"del\",\n repeat_text_year_day: \"dia\",\n select_year_month: \"mes\",\n repeat_radio_end: \"Sin fecha de finalización\",\n repeat_text_occurences_count: \"ocurrencias\",\n repeat_radio_end3: \"Fin\",\n repeat_radio_end2: \"Después de\",\n month_for_recurring: [\"Enero\", \"Febrero\", \"Маrzo\", \"Аbril\", \"Mayo\", \"Junio\", \"Julio\", \"Аgosto\", \"Setiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"],\n day_for_recurring: [\"Domingo\", \"Lunes\", \"Martes\", \"Miércoles\", \"Jeuves\", \"Viernes\", \"Sabado\"]\n }\n};","export default {\n date: {\n month_full: [\"Tammikuu\", \"Helmikuu\", \"Maaliskuu\", \"Huhtikuu\", \"Toukokuu\", \"Kesäkuu\", \"Heinäkuu\", \"Elokuu\", \"Syyskuu\", \"Lokakuu\", \"Marraskuu\", \"Joulukuu\"],\n month_short: [\"Tam\", \"Hel\", \"Maa\", \"Huh\", \"Tou\", \"Kes\", \"Hei\", \"Elo\", \"Syy\", \"Lok\", \"Mar\", \"Jou\"],\n day_full: [\"Sunnuntai\", \"Maanantai\", \"Tiistai\", \"Keskiviikko\", \"Torstai\", \"Perjantai\", \"Lauantai\"],\n day_short: [\"Su\", \"Ma\", \"Ti\", \"Ke\", \"To\", \"Pe\", \"La\"]\n },\n labels: {\n dhx_cal_today_button: \"Tänään\",\n day_tab: \"Päivä\",\n week_tab: \"Viikko\",\n month_tab: \"Kuukausi\",\n new_event: \"Uusi tapahtuma\",\n icon_save: \"Tallenna\",\n icon_cancel: \"Peru\",\n icon_details: \"Tiedot\",\n icon_edit: \"Muokkaa\",\n icon_delete: \"Poista\",\n confirm_closing: \"\",\n //Your changes will be lost, are your sure ?\n confirm_deleting: \"Haluatko varmasti poistaa tapahtuman?\",\n section_description: \"Kuvaus\",\n section_time: \"Aikajakso\",\n full_day: \"Koko päivä\",\n confirm_recurring: \"Haluatko varmasti muokata toistuvan tapahtuman kaikkia jaksoja?\",\n section_recurring: \"Toista tapahtuma\",\n button_recurring: \"Ei käytössä\",\n button_recurring_open: \"Käytössä\",\n button_edit_series: \"Muokkaa sarja\",\n button_edit_occurrence: \"Muokkaa kopio\",\n\n /*agenda view extension*/\n agenda_tab: \"Esityslista\",\n date: \"Päivämäärä\",\n description: \"Kuvaus\",\n\n /*year view extension*/\n year_tab: \"Vuoden\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Esityslista\",\n\n /*grid view extension*/\n grid_tab: \"Ritilä\",\n\n /* touch tooltip*/\n drag_to_create: \"Luo uusi vetämällä\",\n drag_to_move: \"Siirrä vetämällä\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Päivittäin\",\n repeat_radio_week: \"Viikoittain\",\n repeat_radio_month: \"Kuukausittain\",\n repeat_radio_year: \"Vuosittain\",\n repeat_radio_day_type: \"Joka\",\n repeat_text_day_count: \"päivä\",\n repeat_radio_day_type2: \"Joka arkipäivä\",\n repeat_week: \"Toista joka\",\n repeat_text_week_count: \"viikko näinä päivinä:\",\n repeat_radio_month_type: \"Toista\",\n repeat_radio_month_start: \"\",\n repeat_text_month_day: \"päivänä joka\",\n repeat_text_month_count: \"kuukausi\",\n repeat_text_month_count2_before: \"joka\",\n repeat_text_month_count2_after: \"kuukausi\",\n repeat_year_label: \"\",\n select_year_day2: \"\",\n repeat_text_year_day: \"päivä\",\n select_year_month: \"kuukausi\",\n repeat_radio_end: \"Ei loppumisaikaa\",\n repeat_text_occurences_count: \"Toiston jälkeen\",\n repeat_radio_end3: \"Loppuu\",\n repeat_radio_end2: \"\",\n month_for_recurring: [\"Tammikuu\", \"Helmikuu\", \"Maaliskuu\", \"Huhtikuu\", \"Toukokuu\", \"Kesäkuu\", \"Heinäkuu\", \"Elokuu\", \"Syyskuu\", \"Lokakuu\", \"Marraskuu\", \"Joulukuu\"],\n day_for_recurring: [\"Sunnuntai\", \"Maanantai\", \"Tiistai\", \"Keskiviikko\", \"Torstai\", \"Perjantai\", \"Lauantai\"]\n }\n};","export default {\n date: {\n month_full: [\"Janvier\", \"Février\", \"Mars\", \"Avril\", \"Mai\", \"Juin\", \"Juillet\", \"Août\", \"Septembre\", \"Octobre\", \"Novembre\", \"Décembre\"],\n month_short: [\"Jan\", \"Fév\", \"Mar\", \"Avr\", \"Mai\", \"Juin\", \"Juil\", \"Aoû\", \"Sep\", \"Oct\", \"Nov\", \"Déc\"],\n day_full: [\"Dimanche\", \"Lundi\", \"Mardi\", \"Mercredi\", \"Jeudi\", \"Vendredi\", \"Samedi\"],\n day_short: [\"Dim\", \"Lun\", \"Mar\", \"Mer\", \"Jeu\", \"Ven\", \"Sam\"]\n },\n labels: {\n dhx_cal_today_button: \"Aujourd'hui\",\n day_tab: \"Jour\",\n week_tab: \"Semaine\",\n month_tab: \"Mois\",\n new_event: \"Nouvel événement\",\n icon_save: \"Enregistrer\",\n icon_cancel: \"Annuler\",\n icon_details: \"Détails\",\n icon_edit: \"Modifier\",\n icon_delete: \"Effacer\",\n confirm_closing: \"\",\n //Vos modifications seront perdus, êtes-vous sûr ?\n confirm_deleting: \"L'événement sera effacé sans appel, êtes-vous sûr ?\",\n section_description: \"Description\",\n section_time: \"Période\",\n full_day: \"Journée complète\",\n confirm_recurring: \"Voulez-vous éditer toute une série d'évènements répétés?\",\n section_recurring: \"Périodicité\",\n button_recurring: \"Désactivé\",\n button_recurring_open: \"Activé\",\n button_edit_series: \"Modifier la série\",\n button_edit_occurrence: \"Modifier une copie\",\n\n /*agenda view extension*/\n agenda_tab: \"Jour\",\n date: \"Date\",\n description: \"Description\",\n\n /*year view extension*/\n year_tab: \"Année\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Jour\",\n\n /*grid view extension*/\n grid_tab: \"Grille\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Quotidienne\",\n repeat_radio_week: \"Hebdomadaire\",\n repeat_radio_month: \"Mensuelle\",\n repeat_radio_year: \"Annuelle\",\n repeat_radio_day_type: \"Chaque\",\n repeat_text_day_count: \"jour\",\n repeat_radio_day_type2: \"Chaque journée de travail\",\n repeat_week: \" Répéter toutes les\",\n repeat_text_week_count: \"semaine:\",\n repeat_radio_month_type: \"Répéter\",\n repeat_radio_month_start: \"Le\",\n repeat_text_month_day: \"jour chaque\",\n repeat_text_month_count: \"mois\",\n repeat_text_month_count2_before: \"chaque\",\n repeat_text_month_count2_after: \"mois\",\n repeat_year_label: \"Le\",\n select_year_day2: \"du\",\n repeat_text_year_day: \"jour\",\n select_year_month: \"mois\",\n repeat_radio_end: \"Pas de date d"achèvement\",\n repeat_text_occurences_count: \"occurrences\",\n repeat_radio_end3: \"Fin\",\n repeat_radio_end2: \"Après\",\n month_for_recurring: [\"Janvier\", \"Février\", \"Mars\", \"Avril\", \"Mai\", \"Juin\", \"Juillet\", \"Août\", \"Septembre\", \"Octobre\", \"Novembre\", \"Décembre\"],\n day_for_recurring: [\"Dimanche\", \"Lundi\", \"Mardi\", \"Mercredi\", \"Jeudi\", \"Vendredi\", \"Samedi\"]\n }\n};","export default {\n date: {\n month_full: [\"ינואר\", \"פברואר\", \"מרץ\", \"אפריל\", \"מאי\", \"יוני\", \"יולי\", \"אוגוסט\", \"ספטמבר\", \"אוקטובר\", \"נובמבר\", \"דצמבר\"],\n month_short: [\"ינו\", \"פבר\", \"מרץ\", \"אפר\", \"מאי\", \"יונ\", \"יול\", \"אוג\", \"ספט\", \"אוק\", \"נוב\", \"דצמ\"],\n day_full: [\"ראשון\", \"שני\", \"שלישי\", \"רביעי\", \"חמישי\", \"שישי\", \"שבת\"],\n day_short: [\"א\", \"ב\", \"ג\", \"ד\", \"ה\", \"ו\", \"ש\"]\n },\n labels: {\n dhx_cal_today_button: \"היום\",\n day_tab: \"יום\",\n week_tab: \"שבוע\",\n month_tab: \"חודש\",\n new_event: \"ארוע חדש\",\n icon_save: \"שמור\",\n icon_cancel: \"בטל\",\n icon_details: \"פרטים\",\n icon_edit: \"ערוך\",\n icon_delete: \"מחק\",\n confirm_closing: \"\",\n //Your changes will be lost, are your sure ?\n confirm_deleting: \"ארוע ימחק סופית.להמשיך?\",\n section_description: \"תיאור\",\n section_time: \"תקופה\",\n confirm_recurring: \"האם ברצונך לשנות כל סדרת ארועים מתמשכים?\",\n section_recurring: \"להעתיק ארוע\",\n button_recurring: \"לא פעיל\",\n button_recurring_open: \"פעיל\",\n full_day: \"יום שלם\",\n button_edit_series: \"ערוך את הסדרה\",\n button_edit_occurrence: \"עריכת עותק\",\n\n /*agenda view extension*/\n agenda_tab: \"סדר יום\",\n date: \"תאריך\",\n description: \"תיאור\",\n\n /*year view extension*/\n year_tab: \"לשנה\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"סדר יום\",\n\n /*grid view extension*/\n grid_tab: \"סורג\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"גרור כדי להזיז\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"בטל\",\n\n /* wai aria labels for non-text controls */\n next: \"הבא\",\n prev: \"הקודם\",\n year: \"שנה\",\n month: \"חודש\",\n day: \"יום\",\n hour: \"שעה\",\n minute: \"דקה\",\n\n /* recurring event components */\n repeat_radio_day: \"יומי\",\n repeat_radio_week: \"שבועי\",\n repeat_radio_month: \"חודשי\",\n repeat_radio_year: \"שנתי\",\n repeat_radio_day_type: \"חזור כל\",\n repeat_text_day_count: \"ימים\",\n repeat_radio_day_type2: \"חזור כל יום עבודה\",\n repeat_week: \" חזור כל\",\n repeat_text_week_count: \"שבוע לפי ימים:\",\n repeat_radio_month_type: \"חזור כל\",\n repeat_radio_month_start: \"כל\",\n repeat_text_month_day: \"ימים כל\",\n repeat_text_month_count: \"חודשים\",\n repeat_text_month_count2_before: \"חזור כל\",\n repeat_text_month_count2_after: \"חודש\",\n repeat_year_label: \"כל\",\n select_year_day2: \"בחודש\",\n repeat_text_year_day: \"ימים\",\n select_year_month: \"חודש\",\n repeat_radio_end: \"לעולם לא מסתיים\",\n repeat_text_occurences_count: \"אירועים\",\n repeat_radio_end3: \"מסתיים ב\",\n repeat_radio_end2: \"אחרי\",\n month_for_recurring: [\"ינואר\", \"פברואר\", \"מרץ\", \"אפריל\", \"מאי\", \"יוני\", \"יולי\", \"אוגוסט\", \"ספטמבר\", \"אוקטובר\", \"נובמבר\", \"דצמבר\"],\n day_for_recurring: [\"ראשון\", \"שני\", \"שלישי\", \"רביעי\", \"חמישי\", \"שישי\", \"שבת\"]\n }\n};","export default {\n date: {\n month_full: [\"Január\", \"Február\", \"Március\", \"Április\", \"Május\", \"Június\", \"Július\", \"Augusztus\", \"Szeptember\", \"Október\", \"November\", \"December\"],\n month_short: [\"Jan\", \"Feb\", \"Már\", \"Ápr\", \"Máj\", \"Jún\", \"Júl\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n day_full: [\"Vasárnap\", \"Hétfõ\", \"Kedd\", \"Szerda\", \"Csütörtök\", \"Péntek\", \"szombat\"],\n day_short: [\"Va\", \"Hé\", \"Ke\", \"Sze\", \"Csü\", \"Pé\", \"Szo\"]\n },\n labels: {\n dhx_cal_today_button: \"Ma\",\n day_tab: \"Nap\",\n week_tab: \"Hét\",\n month_tab: \"Hónap\",\n new_event: \"Új esemény\",\n icon_save: \"Mentés\",\n icon_cancel: \"Mégse\",\n icon_details: \"Részletek\",\n icon_edit: \"Szerkesztés\",\n icon_delete: \"Törlés\",\n confirm_closing: \"\",\n //A változások elvesznek, biztosan folytatja? \"\n confirm_deleting: \"Az esemény törölve lesz, biztosan folytatja?\",\n section_description: \"Leírás\",\n section_time: \"Idõszak\",\n full_day: \"Egesz napos\",\n\n /*ismétlõdõ események*/\n confirm_recurring: \"Biztosan szerkeszteni akarod az összes ismétlõdõ esemény beállítását?\",\n section_recurring: \"Esemény ismétlése\",\n button_recurring: \"Tiltás\",\n button_recurring_open: \"Engedélyezés\",\n button_edit_series: \"Edit series\",\n button_edit_occurrence: \"Szerkesztés bíróság\",\n\n /*napirendi nézet*/\n agenda_tab: \"Napirend\",\n date: \"Dátum\",\n description: \"Leírás\",\n\n /*éves nézet*/\n year_tab: \"Év\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\"\n }\n};","export default {\n date: {\n month_full: [\"Januari\", \"Februari\", \"Maret\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Agustus\", \"September\", \"Oktober\", \"November\", \"Desember\"],\n month_short: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Ags\", \"Sep\", \"Okt\", \"Nov\", \"Des\"],\n day_full: [\"Minggu\", \"Senin\", \"Selasa\", \"Rabu\", \"Kamis\", \"Jumat\", \"Sabtu\"],\n day_short: [\"Ming\", \"Sen\", \"Sel\", \"Rab\", \"Kam\", \"Jum\", \"Sab\"]\n },\n labels: {\n dhx_cal_today_button: \"Hari Ini\",\n day_tab: \"Hari\",\n week_tab: \"Minggu\",\n month_tab: \"Bulan\",\n new_event: \"Acara Baru\",\n icon_save: \"Simpan\",\n icon_cancel: \"Batal\",\n icon_details: \"Detail\",\n icon_edit: \"Edit\",\n icon_delete: \"Hapus\",\n confirm_closing: \"\",\n\n /*Perubahan tidak akan disimpan ?*/\n confirm_deleting: \"Acara akan dihapus\",\n section_description: \"Keterangan\",\n section_time: \"Periode\",\n full_day: \"Hari penuh\",\n\n /*recurring events*/\n confirm_recurring: \"Apakah acara ini akan berulang?\",\n section_recurring: \"Acara Rutin\",\n button_recurring: \"Tidak Difungsikan\",\n button_recurring_open: \"Difungsikan\",\n button_edit_series: \"Mengedit seri\",\n button_edit_occurrence: \"Mengedit salinan\",\n\n /*agenda view extension*/\n agenda_tab: \"Agenda\",\n date: \"Tanggal\",\n description: \"Keterangan\",\n\n /*year view extension*/\n year_tab: \"Tahun\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Agenda\",\n\n /*grid view extension*/\n grid_tab: \"Tabel\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\"\n }\n};","export default {\n date: {\n month_full: [\"Gennaio\", \"Febbraio\", \"Marzo\", \"Aprile\", \"Maggio\", \"Giugno\", \"Luglio\", \"Agosto\", \"Settembre\", \"Ottobre\", \"Novembre\", \"Dicembre\"],\n month_short: [\"Gen\", \"Feb\", \"Mar\", \"Apr\", \"Mag\", \"Giu\", \"Lug\", \"Ago\", \"Set\", \"Ott\", \"Nov\", \"Dic\"],\n day_full: [\"Domenica\", \"Lunedì\", \"Martedì\", \"Mercoledì\", \"Giovedì\", \"Venerdì\", \"Sabato\"],\n day_short: [\"Dom\", \"Lun\", \"Mar\", \"Mer\", \"Gio\", \"Ven\", \"Sab\"]\n },\n labels: {\n dhx_cal_today_button: \"Oggi\",\n day_tab: \"Giorno\",\n week_tab: \"Settimana\",\n month_tab: \"Mese\",\n new_event: \"Nuovo evento\",\n icon_save: \"Salva\",\n icon_cancel: \"Chiudi\",\n icon_details: \"Dettagli\",\n icon_edit: \"Modifica\",\n icon_delete: \"Elimina\",\n confirm_closing: \"\",\n //Le modifiche apportate saranno perse, siete sicuri?\n confirm_deleting: \"L'evento sarà eliminato, siete sicuri?\",\n section_description: \"Descrizione\",\n section_time: \"Periodo di tempo\",\n full_day: \"Intera giornata\",\n confirm_recurring: \"Vuoi modificare l'intera serie di eventi?\",\n section_recurring: \"Ripetere l'evento\",\n button_recurring: \"Disattivato\",\n button_recurring_open: \"Attivato\",\n button_edit_series: \"Modificare la serie\",\n button_edit_occurrence: \"Modificare una copia\",\n\n /*agenda view extension*/\n agenda_tab: \"Agenda\",\n date: \"Data\",\n description: \"Descrizione\",\n\n /*year view extension*/\n year_tab: \"Anno\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Agenda\",\n\n /*grid view extension*/\n grid_tab: \"Griglia\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Quotidiano\",\n repeat_radio_week: \"Settimanale\",\n repeat_radio_month: \"Mensile\",\n repeat_radio_year: \"Annuale\",\n repeat_radio_day_type: \"Ogni\",\n repeat_text_day_count: \"giorno\",\n repeat_radio_day_type2: \"Ogni giornata lavorativa\",\n repeat_week: \" Ripetere ogni\",\n repeat_text_week_count: \"settimana:\",\n repeat_radio_month_type: \"Ripetere\",\n repeat_radio_month_start: \"Il\",\n repeat_text_month_day: \"giorno ogni\",\n repeat_text_month_count: \"mese\",\n repeat_text_month_count2_before: \"ogni\",\n repeat_text_month_count2_after: \"mese\",\n repeat_year_label: \"Il\",\n select_year_day2: \"del\",\n repeat_text_year_day: \"giorno\",\n select_year_month: \"mese\",\n repeat_radio_end: \"Senza data finale\",\n repeat_text_occurences_count: \"occorenze\",\n repeat_radio_end3: \"Fine\",\n repeat_radio_end2: \"Dopo\",\n month_for_recurring: [\"Gennaio\", \"Febbraio\", \"Marzo\", \"Aprile\", \"Maggio\", \"Jiugno\", \"Luglio\", \"Agosto\", \"Settembre\", \"Ottobre\", \"Novembre\", \"Dicembre\"],\n day_for_recurring: [\"Domenica\", \"Lunedì\", \"Martedì\", \"Mercoledì\", \"Jovedì\", \"Venerdì\", \"Sabato\"]\n }\n};","/*\r\n Translation by Genexus Japan Inc.\r\n */\nexport default {\n date: {\n month_full: [\"1月\", \"2月\", \"3月\", \"4月\", \"5月\", \"6月\", \"7月\", \"8月\", \"9月\", \"10月\", \"11月\", \"12月\"],\n month_short: [\"1月\", \"2月\", \"3月\", \"4月\", \"5月\", \"6月\", \"7月\", \"8月\", \"9月\", \"10月\", \"11月\", \"12月\"],\n day_full: [\"日曜日\", \"月曜日\", \"火曜日\", \"水曜日\", \"木曜日\", \"金曜日\", \"土曜日\"],\n day_short: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"]\n },\n labels: {\n dhx_cal_today_button: \"今日\",\n day_tab: \"日\",\n week_tab: \"週\",\n month_tab: \"月\",\n new_event: \"新イベント\",\n icon_save: \"保存\",\n icon_cancel: \"キャンセル\",\n icon_details: \"詳細\",\n icon_edit: \"編集\",\n icon_delete: \"削除\",\n confirm_closing: \"\",\n //変更が取り消されます、宜しいですか?\n confirm_deleting: \"イベント完全に削除されます、宜しいですか?\",\n section_description: \"デスクリプション\",\n section_time: \"期間\",\n confirm_recurring: \"繰り返されているイベントを全て編集しますか?\",\n section_recurring: \"イベントを繰り返す\",\n button_recurring: \"無効\",\n button_recurring_open: \"有効\",\n full_day: \"終日\",\n button_edit_series: \"シリーズを編集します\",\n button_edit_occurrence: \"コピーを編集\",\n\n /*agenda view extension*/\n agenda_tab: \"議題は\",\n date: \"日付\",\n description: \"説明\",\n\n /*year view extension*/\n year_tab: \"今年\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"議題は\",\n\n /*grid view extension*/\n grid_tab: \"グリッド\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\"\n }\n};","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar LocaleManager = /*#__PURE__*/function () {\n function LocaleManager(config) {\n _classCallCheck(this, LocaleManager);\n\n this._locales = {};\n\n for (var i in config) {\n this._locales[i] = config[i];\n }\n }\n\n _createClass(LocaleManager, [{\n key: \"addLocale\",\n value: function addLocale(name, locale) {\n this._locales[name] = locale;\n }\n }, {\n key: \"getLocale\",\n value: function getLocale(name) {\n return this._locales[name];\n }\n }]);\n\n return LocaleManager;\n}();\n\nexport { LocaleManager as default };","export default {\n date: {\n month_full: [\"Januar\", \"Februar\", \"Mars\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Desember\"],\n month_short: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Des\"],\n day_full: [\"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\"],\n day_short: [\"Søn\", \"Mon\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\"]\n },\n labels: {\n dhx_cal_today_button: \"I dag\",\n day_tab: \"Dag\",\n week_tab: \"Uke\",\n month_tab: \"Måned\",\n new_event: \"Ny hendelse\",\n icon_save: \"Lagre\",\n icon_cancel: \"Avbryt\",\n icon_details: \"Detaljer\",\n icon_edit: \"Rediger\",\n icon_delete: \"Slett\",\n confirm_closing: \"\",\n //Your changes will be lost, are your sure ?\n confirm_deleting: \"Hendelsen vil bli slettet permanent. Er du sikker?\",\n section_description: \"Beskrivelse\",\n section_time: \"Tidsperiode\",\n\n /*recurring events*/\n confirm_recurring: \"Vil du forandre hele dette settet av repeterende hendelser?\",\n section_recurring: \"Repeter hendelsen\",\n button_recurring: \"Av\",\n button_recurring_open: \"På\",\n button_edit_series: \"Rediger serien\",\n button_edit_occurrence: \"Redigere en kopi\",\n\n /*agenda view extension*/\n agenda_tab: \"Agenda\",\n date: \"Dato\",\n description: \"Beskrivelse\",\n\n /*year view extension*/\n year_tab: \"År\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Agenda\",\n\n /*grid view extension*/\n grid_tab: \"Grid\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Daglig\",\n repeat_radio_week: \"Ukentlig\",\n repeat_radio_month: \"Månedlig\",\n repeat_radio_year: \"Årlig\",\n repeat_radio_day_type: \"Hver\",\n repeat_text_day_count: \"dag\",\n repeat_radio_day_type2: \"Alle hverdager\",\n repeat_week: \" Gjentas hver\",\n repeat_text_week_count: \"uke på:\",\n repeat_radio_month_type: \"På hver\",\n repeat_radio_month_start: \"På\",\n repeat_text_month_day: \"dag hver\",\n repeat_text_month_count: \"måned\",\n repeat_text_month_count2_before: \"hver\",\n repeat_text_month_count2_after: \"måned\",\n repeat_year_label: \"på\",\n select_year_day2: \"i\",\n repeat_text_year_day: \"dag i\",\n select_year_month: \"\",\n repeat_radio_end: \"Ingen sluttdato\",\n repeat_text_occurences_count: \"forekomst\",\n repeat_radio_end3: \"Stop den\",\n repeat_radio_end2: \"Etter\",\n month_for_recurring: [\"Januar\", \"Februar\", \"Mars\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Desember\"],\n day_for_recurring: [\"Sondag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\"]\n }\n};","export default {\n date: {\n month_full: [\"Januari\", \"Februari\", \"Maart\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Augustus\", \"September\", \"Oktober\", \"November\", \"December\"],\n month_short: [\"Jan\", \"Feb\", \"mrt\", \"Apr\", \"Mei\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n day_full: [\"Zondag\", \"Maandag\", \"Dinsdag\", \"Woensdag\", \"Donderdag\", \"Vrijdag\", \"Zaterdag\"],\n day_short: [\"Zo\", \"Ma\", \"Di\", \"Wo\", \"Do\", \"Vr\", \"Za\"]\n },\n labels: {\n dhx_cal_today_button: \"Vandaag\",\n day_tab: \"Dag\",\n week_tab: \"Week\",\n month_tab: \"Maand\",\n new_event: \"Nieuw item\",\n icon_save: \"Opslaan\",\n icon_cancel: \"Annuleren\",\n icon_details: \"Details\",\n icon_edit: \"Bewerken\",\n icon_delete: \"Verwijderen\",\n confirm_closing: \"\",\n //Your changes will be lost, are your sure ?\n confirm_deleting: \"Item zal permanent worden verwijderd, doorgaan?\",\n section_description: \"Beschrijving\",\n section_time: \"Tijd periode\",\n full_day: \"Hele dag\",\n confirm_recurring: \"Wilt u alle terugkerende items bijwerken?\",\n section_recurring: \"Item herhalen\",\n button_recurring: \"Uit\",\n button_recurring_open: \"Aan\",\n button_edit_series: \"Bewerk de serie\",\n button_edit_occurrence: \"Bewerk een kopie\",\n\n /*agenda view extension*/\n agenda_tab: \"Agenda\",\n date: \"Datum\",\n description: \"Omschrijving\",\n\n /*year view extension*/\n year_tab: \"Jaar\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Agenda\",\n\n /*grid view extension*/\n grid_tab: \"Tabel\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Dagelijks\",\n repeat_radio_week: \"Wekelijks\",\n repeat_radio_month: \"Maandelijks\",\n repeat_radio_year: \"Jaarlijks\",\n repeat_radio_day_type: \"Elke\",\n repeat_text_day_count: \"dag(en)\",\n repeat_radio_day_type2: \"Elke werkdag\",\n repeat_week: \" Herhaal elke\",\n repeat_text_week_count: \"week op de volgende dagen:\",\n repeat_radio_month_type: \"Herhaal\",\n repeat_radio_month_start: \"Op\",\n repeat_text_month_day: \"dag iedere\",\n repeat_text_month_count: \"maanden\",\n repeat_text_month_count2_before: \"iedere\",\n repeat_text_month_count2_after: \"maanden\",\n repeat_year_label: \"Op\",\n select_year_day2: \"van\",\n repeat_text_year_day: \"dag\",\n select_year_month: \"maand\",\n repeat_radio_end: \"Geen eind datum\",\n repeat_text_occurences_count: \"keren\",\n repeat_radio_end3: \"Eindigd per\",\n repeat_radio_end2: \"Na\",\n month_for_recurring: [\"Januari\", \"Februari\", \"Maart\", \"April\", \"Mei\", \"Juni\", \"Juli\", \"Augustus\", \"September\", \"Oktober\", \"November\", \"December\"],\n day_for_recurring: [\"Zondag\", \"Maandag\", \"Dinsdag\", \"Woensdag\", \"Donderdag\", \"Vrijdag\", \"Zaterdag\"]\n }\n};","export default {\n date: {\n month_full: [\"Januar\", \"Februar\", \"Mars\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Desember\"],\n month_short: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Des\"],\n day_full: [\"Søndag\", \"Mandag\", \"Tirsdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lørdag\"],\n day_short: [\"Søn\", \"Man\", \"Tir\", \"Ons\", \"Tor\", \"Fre\", \"Lør\"]\n },\n labels: {\n dhx_cal_today_button: \"Idag\",\n day_tab: \"Dag\",\n week_tab: \"Uke\",\n month_tab: \"Måned\",\n new_event: \"Ny\",\n icon_save: \"Lagre\",\n icon_cancel: \"Avbryt\",\n icon_details: \"Detaljer\",\n icon_edit: \"Endre\",\n icon_delete: \"Slett\",\n confirm_closing: \"Endringer blir ikke lagret, er du sikker?\",\n //Endringer blir ikke lagret, er du sikker?\n confirm_deleting: \"Oppføringen vil bli slettet, er du sikker?\",\n section_description: \"Beskrivelse\",\n section_time: \"Tidsperiode\",\n full_day: \"Full dag\",\n\n /*recurring events*/\n confirm_recurring: \"Vil du endre hele settet med repeterende oppføringer?\",\n section_recurring: \"Repeterende oppføring\",\n button_recurring: \"Ikke aktiv\",\n button_recurring_open: \"Aktiv\",\n button_edit_series: \"Rediger serien\",\n button_edit_occurrence: \"Redigere en kopi\",\n\n /*agenda view extension*/\n agenda_tab: \"Agenda\",\n date: \"Dato\",\n description: \"Beskrivelse\",\n\n /*year view extension*/\n year_tab: \"År\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Agenda\",\n\n /*grid view extension*/\n grid_tab: \"Grid\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\"\n }\n};","export default {\n date: {\n month_full: [\"Styczeń\", \"Luty\", \"Marzec\", \"Kwiecień\", \"Maj\", \"Czerwiec\", \"Lipiec\", \"Sierpień\", \"Wrzesień\", \"Październik\", \"Listopad\", \"Grudzień\"],\n month_short: [\"Sty\", \"Lut\", \"Mar\", \"Kwi\", \"Maj\", \"Cze\", \"Lip\", \"Sie\", \"Wrz\", \"Paź\", \"Lis\", \"Gru\"],\n day_full: [\"Niedziela\", \"Poniedziałek\", \"Wtorek\", \"Środa\", \"Czwartek\", \"Piątek\", \"Sobota\"],\n day_short: [\"Nie\", \"Pon\", \"Wto\", \"Śro\", \"Czw\", \"Pią\", \"Sob\"]\n },\n labels: {\n dhx_cal_today_button: \"Dziś\",\n day_tab: \"Dzień\",\n week_tab: \"Tydzień\",\n month_tab: \"Miesiąc\",\n new_event: \"Nowe zdarzenie\",\n icon_save: \"Zapisz\",\n icon_cancel: \"Anuluj\",\n icon_details: \"Szczegóły\",\n icon_edit: \"Edytuj\",\n icon_delete: \"Usuń\",\n confirm_closing: \"\",\n //Zmiany zostaną usunięte, jesteś pewien?\n confirm_deleting: \"Zdarzenie zostanie usunięte na zawsze, kontynuować?\",\n section_description: \"Opis\",\n section_time: \"Okres czasu\",\n full_day: \"Cały dzień\",\n\n /*recurring events*/\n confirm_recurring: \"Czy chcesz edytować cały zbiór powtarzających się zdarzeń?\",\n section_recurring: \"Powtórz zdarzenie\",\n button_recurring: \"Nieaktywne\",\n button_recurring_open: \"Aktywne\",\n button_edit_series: \"Edytuj serię\",\n button_edit_occurrence: \"Edytuj kopię\",\n\n /*agenda view extension*/\n agenda_tab: \"Agenda\",\n date: \"Data\",\n description: \"Opis\",\n\n /*year view extension*/\n year_tab: \"Rok\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Agenda\",\n\n /*grid view extension*/\n grid_tab: \"Tabela\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Codziennie\",\n repeat_radio_week: \"Co tydzie\",\n repeat_radio_month: \"Co miesic\",\n repeat_radio_year: \"Co rok\",\n repeat_radio_day_type: \"Kadego\",\n repeat_text_day_count: \"dnia\",\n repeat_radio_day_type2: \"Kadego dnia roboczego\",\n repeat_week: \" Powtarzaj kadego\",\n repeat_text_week_count: \"tygodnia w dni:\",\n repeat_radio_month_type: \"Powtrz\",\n repeat_radio_month_start: \"W\",\n repeat_text_month_day: \"dnia kadego\",\n repeat_text_month_count: \"miesica\",\n repeat_text_month_count2_before: \"kadego\",\n repeat_text_month_count2_after: \"miesica\",\n repeat_year_label: \"W\",\n select_year_day2: \"miesica\",\n repeat_text_year_day: \"dnia miesica\",\n select_year_month: \"\",\n repeat_radio_end: \"Bez daty kocowej\",\n repeat_text_occurences_count: \"wystpieniu/ach\",\n repeat_radio_end3: \"Zakocz w\",\n repeat_radio_end2: \"Po\",\n month_for_recurring: [\"Stycznia\", \"Lutego\", \"Marca\", \"Kwietnia\", \"Maja\", \"Czerwca\", \"Lipca\", \"Sierpnia\", \"Wrzenia\", \"Padziernka\", \"Listopada\", \"Grudnia\"],\n day_for_recurring: [\"Niedziela\", \"Poniedziaek\", \"Wtorek\", \"roda\", \"Czwartek\", \"Pitek\", \"Sobota\"]\n }\n};","/*\r\n\r\n TRANSLATION BY MATTHEUS PIROVANI RORIZ GONЗALVES\r\n\r\n mattheusroriz@hotmail.com / mattheus.pirovani@gmail.com /\r\n\r\n www.atrixian.com.br\r\n\r\n */\nexport default {\n date: {\n month_full: [\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"],\n month_short: [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"],\n day_full: [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"],\n day_short: [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sab\"]\n },\n labels: {\n dhx_cal_today_button: \"Hoje\",\n day_tab: \"Dia\",\n week_tab: \"Semana\",\n month_tab: \"Mês\",\n new_event: \"Novo evento\",\n icon_save: \"Salvar\",\n icon_cancel: \"Cancelar\",\n icon_details: \"Detalhes\",\n icon_edit: \"Editar\",\n icon_delete: \"Deletar\",\n confirm_closing: \"\",\n //Your changes will be lost, are your sure ?\n confirm_deleting: \"Tem certeza que deseja excluir?\",\n section_description: \"Descrição\",\n section_time: \"Período de tempo\",\n full_day: \"Dia inteiro\",\n confirm_recurring: \"Deseja editar todos esses eventos repetidos?\",\n section_recurring: \"Repetir evento\",\n button_recurring: \"Desabilitar\",\n button_recurring_open: \"Habilitar\",\n button_edit_series: \"Editar a série\",\n button_edit_occurrence: \"Editar uma cópia\",\n\n /*agenda view extension*/\n agenda_tab: \"Dia\",\n date: \"Data\",\n description: \"Descrição\",\n\n /*year view extension*/\n year_tab: \"Ano\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Dia\",\n\n /*grid view extension*/\n grid_tab: \"Grade\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Diário\",\n repeat_radio_week: \"Semanal\",\n repeat_radio_month: \"Mensal\",\n repeat_radio_year: \"Anual\",\n repeat_radio_day_type: \"Cada\",\n repeat_text_day_count: \"dia(s)\",\n repeat_radio_day_type2: \"Cada trabalho diário\",\n repeat_week: \" Repita cada\",\n repeat_text_week_count: \"semana:\",\n repeat_radio_month_type: \"Repetir\",\n repeat_radio_month_start: \"Em\",\n repeat_text_month_day: \"todo dia\",\n repeat_text_month_count: \"mês\",\n repeat_text_month_count2_before: \"todo\",\n repeat_text_month_count2_after: \"mês\",\n repeat_year_label: \"Em\",\n select_year_day2: \"of\",\n repeat_text_year_day: \"dia\",\n select_year_month: \"mês\",\n repeat_radio_end: \"Sem data final\",\n repeat_text_occurences_count: \"ocorrências\",\n repeat_radio_end3: \"Fim\",\n repeat_radio_end2: \"Depois\",\n month_for_recurring: [\"Janeiro\", \"Fevereiro\", \"Março\", \"Abril\", \"Maio\", \"Junho\", \"Julho\", \"Agosto\", \"Setembro\", \"Outubro\", \"Novembro\", \"Dezembro\"],\n day_for_recurring: [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"]\n }\n};","/*\r\n\tTraducere de Ovidiu Lixandru: http://www.madball.ro\r\n */\nexport default {\n date: {\n month_full: [\"Ianuarie\", \"Februarie\", \"Martie\", \"Aprilie\", \"Mai\", \"Iunie\", \"Iulie\", \"August\", \"Septembrie\", \"Octombrie\", \"November\", \"December\"],\n month_short: [\"Ian\", \"Feb\", \"Mar\", \"Apr\", \"Mai\", \"Iun\", \"Iul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n day_full: [\"Duminica\", \"Luni\", \"Marti\", \"Miercuri\", \"Joi\", \"Vineri\", \"Sambata\"],\n day_short: [\"Du\", \"Lu\", \"Ma\", \"Mi\", \"Jo\", \"Vi\", \"Sa\"]\n },\n labels: {\n dhx_cal_today_button: \"Astazi\",\n day_tab: \"Zi\",\n week_tab: \"Saptamana\",\n month_tab: \"Luna\",\n new_event: \"Eveniment nou\",\n icon_save: \"Salveaza\",\n icon_cancel: \"Anuleaza\",\n icon_details: \"Detalii\",\n icon_edit: \"Editeaza\",\n icon_delete: \"Sterge\",\n confirm_closing: \"Schimbarile nu vor fi salvate, esti sigur?\",\n //Your changes will be lost, are your sure ?\n confirm_deleting: \"Evenimentul va fi sters permanent, esti sigur?\",\n section_description: \"Descriere\",\n section_time: \"Interval\",\n full_day: \"Toata ziua\",\n\n /*recurring events*/\n confirm_recurring: \"Vrei sa editezi toata seria de evenimente repetate?\",\n section_recurring: \"Repetare\",\n button_recurring: \"Dezactivata\",\n button_recurring_open: \"Activata\",\n button_edit_series: \"Editeaza serie\",\n button_edit_occurrence: \"Editeaza doar intrare\",\n\n /*agenda view extension*/\n agenda_tab: \"Agenda\",\n date: \"Data\",\n description: \"Descriere\",\n\n /*year view extension*/\n year_tab: \"An\",\n\n /* week agenda extension */\n week_agenda_tab: \"Agenda\",\n\n /*grid view extension*/\n grid_tab: \"Lista\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Zilnic\",\n repeat_radio_week: \"Saptamanal\",\n repeat_radio_month: \"Lunar\",\n repeat_radio_year: \"Anual\",\n repeat_radio_day_type: \"La fiecare\",\n repeat_text_day_count: \"zi(le)\",\n repeat_radio_day_type2: \"Fiecare zi lucratoare\",\n repeat_week: \" Repeta la fiecare\",\n repeat_text_week_count: \"saptamana in urmatoarele zile:\",\n repeat_radio_month_type: \"Repeta in\",\n repeat_radio_month_start: \"In a\",\n repeat_text_month_day: \"zi la fiecare\",\n repeat_text_month_count: \"luni\",\n repeat_text_month_count2_before: \"la fiecare\",\n repeat_text_month_count2_after: \"luni\",\n repeat_year_label: \"In\",\n select_year_day2: \"a lunii\",\n repeat_text_year_day: \"zi a lunii\",\n select_year_month: \"\",\n repeat_radio_end: \"Fara data de sfarsit\",\n repeat_text_occurences_count: \"evenimente\",\n repeat_radio_end3: \"La data\",\n repeat_radio_end2: \"Dupa\",\n month_for_recurring: [\"Ianuarie\", \"Februarie\", \"Martie\", \"Aprilie\", \"Mai\", \"Iunie\", \"Iulie\", \"August\", \"Septembrie\", \"Octombrie\", \"Noiembrie\", \"Decembrie\"],\n day_for_recurring: [\"Duminica\", \"Luni\", \"Marti\", \"Miercuri\", \"Joi\", \"Vineri\", \"Sambata\"]\n }\n};","export default {\n date: {\n month_full: [\"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Maй\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Oктябрь\", \"Ноябрь\", \"Декабрь\"],\n month_short: [\"Янв\", \"Фев\", \"Maр\", \"Aпр\", \"Maй\", \"Июн\", \"Июл\", \"Aвг\", \"Сен\", \"Окт\", \"Ноя\", \"Дек\"],\n day_full: [\"Воскресенье\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\"],\n day_short: [\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"]\n },\n labels: {\n dhx_cal_today_button: \"Сегодня\",\n day_tab: \"День\",\n week_tab: \"Неделя\",\n month_tab: \"Месяц\",\n new_event: \"Новое событие\",\n icon_save: \"Сохранить\",\n icon_cancel: \"Отменить\",\n icon_details: \"Детали\",\n icon_edit: \"Изменить\",\n icon_delete: \"Удалить\",\n confirm_closing: \"\",\n //Ваши изменения будут потеряны, продолжить?\n confirm_deleting: \"Событие будет удалено безвозвратно, продолжить?\",\n section_description: \"Описание\",\n section_time: \"Период времени\",\n full_day: \"Весь день\",\n confirm_recurring: \"Вы хотите изменить всю серию повторяющихся событий?\",\n section_recurring: \"Повторение\",\n button_recurring: \"Отключено\",\n button_recurring_open: \"Включено\",\n button_edit_series: \"Редактировать серию\",\n button_edit_occurrence: \"Редактировать экземпляр\",\n\n /*agenda view extension*/\n agenda_tab: \"Список\",\n date: \"Дата\",\n description: \"Описание\",\n\n /*year view extension*/\n year_tab: \"Год\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Список\",\n\n /*grid view extension*/\n grid_tab: \"Таблица\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"День\",\n repeat_radio_week: \"Неделя\",\n repeat_radio_month: \"Месяц\",\n repeat_radio_year: \"Год\",\n repeat_radio_day_type: \"Каждый\",\n repeat_text_day_count: \"день\",\n repeat_radio_day_type2: \"Каждый рабочий день\",\n repeat_week: \" Повторять каждую\",\n repeat_text_week_count: \"неделю , в:\",\n repeat_radio_month_type: \"Повторять\",\n repeat_radio_month_start: \"\",\n repeat_text_month_day: \" числа каждый \",\n repeat_text_month_count: \"месяц\",\n repeat_text_month_count2_before: \"каждый \",\n repeat_text_month_count2_after: \"месяц\",\n repeat_year_label: \"\",\n select_year_day2: \"\",\n repeat_text_year_day: \"день\",\n select_year_month: \"\",\n repeat_radio_end: \"Без даты окончания\",\n repeat_text_occurences_count: \"повторений\",\n repeat_radio_end3: \"До \",\n repeat_radio_end2: \"\",\n month_for_recurring: [\"Января\", \"Февраля\", \"Марта\", \"Апреля\", \"Мая\", \"Июня\", \"Июля\", \"Августа\", \"Сентября\", \"Октября\", \"Ноября\", \"Декабря\"],\n day_for_recurring: [\"Воскресенье\", \"Понедельник\", \"Вторник\", \"Среду\", \"Четверг\", \"Пятницу\", \"Субботу\"]\n }\n};","export default {\n date: {\n month_full: [\"Januar\", \"Februar\", \"Marec\", \"April\", \"Maj\", \"Junij\", \"Julij\", \"Avgust\", \"September\", \"Oktober\", \"November\", \"December\"],\n month_short: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n day_full: [\"Nedelja\", \"Ponedeljek\", \"Torek\", \"Sreda\", \"Četrtek\", \"Petek\", \"Sobota\"],\n day_short: [\"Ned\", \"Pon\", \"Tor\", \"Sre\", \"Čet\", \"Pet\", \"Sob\"]\n },\n labels: {\n dhx_cal_today_button: \"Danes\",\n day_tab: \"Dan\",\n week_tab: \"Teden\",\n month_tab: \"Mesec\",\n new_event: \"Nov dogodek\",\n icon_save: \"Shrani\",\n icon_cancel: \"Prekliči\",\n icon_details: \"Podrobnosti\",\n icon_edit: \"Uredi\",\n icon_delete: \"Izbriši\",\n confirm_closing: \"\",\n //Spremembe ne bodo shranjene. Želite nadaljevati ?\n confirm_deleting: \"Dogodek bo izbrisan. Želite nadaljevati?\",\n section_description: \"Opis\",\n section_time: \"Časovni okvir\",\n full_day: \"Ves dan\",\n\n /*recurring events*/\n confirm_recurring: \"Želite urediti celoten set ponavljajočih dogodkov?\",\n section_recurring: \"Ponovi dogodek\",\n button_recurring: \"Onemogočeno\",\n button_recurring_open: \"Omogočeno\",\n button_edit_series: \"Edit series\",\n button_edit_occurrence: \"Edit occurrence\",\n\n /*agenda view extension*/\n agenda_tab: \"Zadeva\",\n date: \"Datum\",\n description: \"Opis\",\n\n /*year view extension*/\n year_tab: \"Leto\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Zadeva\",\n\n /*grid view extension*/\n grid_tab: \"Miza\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\"\n }\n};","export default {\n date: {\n month_full: [\"Január\", \"Február\", \"Marec\", \"Apríl\", \"Máj\", \"Jún\", \"Júl\", \"August\", \"September\", \"Október\", \"November\", \"December\"],\n month_short: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Máj\", \"Jún\", \"Júl\", \"Aug\", \"Sept\", \"Okt\", \"Nov\", \"Dec\"],\n day_full: [\"Nedeľa\", \"Pondelok\", \"Utorok\", \"Streda\", \"Štvrtok\", \"Piatok\", \"Sobota\"],\n day_short: [\"Ne\", \"Po\", \"Ut\", \"St\", \"Št\", \"Pi\", \"So\"]\n },\n labels: {\n dhx_cal_today_button: \"Dnes\",\n day_tab: \"Deň\",\n week_tab: \"Týždeň\",\n month_tab: \"Mesiac\",\n new_event: \"Nová udalosť\",\n icon_save: \"Uložiť\",\n icon_cancel: \"Späť\",\n icon_details: \"Detail\",\n icon_edit: \"Edituj\",\n icon_delete: \"Zmazať\",\n confirm_closing: \"Vaše zmeny nebudú uložené. Skutočne?\",\n //Vaše změny budou ztraceny, opravdu ?\n confirm_deleting: \"Udalosť bude natrvalo vymazaná. Skutočne?\",\n section_description: \"Poznámky\",\n section_time: \"Doba platnosti\",\n\n /*recurring events*/\n confirm_recurring: \"Prajete si upraviť celú radu opakovaných udalostí?\",\n section_recurring: \"Opakovanie udalosti\",\n button_recurring: \"Vypnuté\",\n button_recurring_open: \"Zapnuté\",\n button_edit_series: \"Upraviť opakovania\",\n button_edit_occurrence: \"Upraviť inštancie\",\n\n /*agenda view extension*/\n agenda_tab: \"Program\",\n date: \"Dátum\",\n description: \"Poznámka\",\n\n /*year view extension*/\n year_tab: \"Rok\",\n full_day: \"Celý deň\",\n // Full day\n\n /*week agenda view extension*/\n week_agenda_tab: \"Program\",\n\n /*grid view extension*/\n grid_tab: \"Mriežka\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Denne\",\n repeat_radio_week: \"Týždenne\",\n repeat_radio_month: \"Mesaène\",\n repeat_radio_year: \"Roène\",\n repeat_radio_day_type: \"Každý\",\n repeat_text_day_count: \"deò\",\n repeat_radio_day_type2: \"Každý prac. deò\",\n repeat_week: \"Opakova každý\",\n repeat_text_week_count: \"týždeò v dòoch:\",\n repeat_radio_month_type: \"Opakova\",\n repeat_radio_month_start: \"On\",\n repeat_text_month_day: \"deò každý\",\n repeat_text_month_count: \"mesiac\",\n repeat_text_month_count2_before: \"každý\",\n repeat_text_month_count2_after: \"mesiac\",\n repeat_year_label: \"On\",\n select_year_day2: \"poèas\",\n repeat_text_year_day: \"deò\",\n select_year_month: \"mesiac\",\n repeat_radio_end: \"Bez dátumu ukonèenia\",\n repeat_text_occurences_count: \"udalostiach\",\n repeat_radio_end3: \"Ukonèi\",\n repeat_radio_end2: \"Po\",\n month_for_recurring: [\"Január\", \"Február\", \"Marec\", \"Apríl\", \"Máj\", \"Jún\", \"Júl\", \"August\", \"September\", \"Október\", \"November\", \"December\"],\n day_for_recurring: [\"Nede¾a\", \"Pondelok\", \"Utorok\", \"Streda\", \"Štvrtok\", \"Piatok\", \"Sobota\"]\n }\n};","export default {\n date: {\n month_full: [\"Januari\", \"Februari\", \"Mars\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"Augusti\", \"September\", \"Oktober\", \"November\", \"December\"],\n month_short: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"Maj\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dec\"],\n day_full: [\"Söndag\", \"Måndag\", \"Tisdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lördag\"],\n day_short: [\"Sön\", \"Mån\", \"Tis\", \"Ons\", \"Tor\", \"Fre\", \"Lör\"]\n },\n labels: {\n dhx_cal_today_button: \"Idag\",\n day_tab: \"Dag\",\n week_tab: \"Vecka\",\n month_tab: \"Månad\",\n new_event: \"Ny händelse\",\n icon_save: \"Spara\",\n icon_cancel: \"Ångra\",\n icon_details: \"Detaljer\",\n icon_edit: \"Ändra\",\n icon_delete: \"Ta bort\",\n confirm_closing: \"\",\n //Dina förändingar kommer gå förlorade, är du säker?\n confirm_deleting: \"Är du säker på att du vill ta bort händelsen permanent?\",\n section_description: \"Beskrivning\",\n section_time: \"Tid\",\n full_day: \"Hela dagen\",\n\n /*recurring events*/\n confirm_recurring: \"Vill du redigera hela serien med repeterande händelser?\",\n section_recurring: \"Upprepa händelse\",\n button_recurring: \"Inaktiverat\",\n button_recurring_open: \"Aktiverat\",\n button_edit_series: \"Redigera serien\",\n button_edit_occurrence: \"Redigera en kopia\",\n\n /*agenda view extension*/\n agenda_tab: \"Dagordning\",\n date: \"Datum\",\n description: \"Beskrivning\",\n\n /*year view extension*/\n year_tab: \"År\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Dagordning\",\n\n /*grid view extension*/\n grid_tab: \"Galler\",\n\n /* touch tooltip*/\n drag_to_create: \"Dra för att skapa ny\",\n drag_to_move: \"Dra för att flytta\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"Dagligen\",\n repeat_radio_week: \"Veckovis\",\n repeat_radio_month: \"Månadsvis\",\n repeat_radio_year: \"Årligen\",\n repeat_radio_day_type: \"Var\",\n repeat_text_day_count: \"dag\",\n repeat_radio_day_type2: \"Varje arbetsdag\",\n repeat_week: \" Upprepa var\",\n repeat_text_week_count: \"vecka dessa dagar:\",\n repeat_radio_month_type: \"Upprepa\",\n repeat_radio_month_start: \"Den\",\n repeat_text_month_day: \"dagen var\",\n repeat_text_month_count: \"månad\",\n repeat_text_month_count2_before: \"var\",\n repeat_text_month_count2_after: \"månad\",\n repeat_year_label: \"Den\",\n select_year_day2: \"i\",\n repeat_text_year_day: \"dag i\",\n select_year_month: \"månad\",\n repeat_radio_end: \"Inget slutdatum\",\n repeat_text_occurences_count: \"upprepningar\",\n repeat_radio_end3: \"Sluta efter\",\n repeat_radio_end2: \"Efter\",\n month_for_recurring: [\"Januari\", \"Februari\", \"Mars\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"Augusti\", \"September\", \"Oktober\", \"November\", \"December\"],\n day_for_recurring: [\"Söndag\", \"Måndag\", \"Tisdag\", \"Onsdag\", \"Torsdag\", \"Fredag\", \"Lördag\"]\n }\n};","export default {\n date: {\n month_full: [\"Ocak\", \"Þubat\", \"Mart\", \"Nisan\", \"Mayýs\", \"Haziran\", \"Temmuz\", \"Aðustos\", \"Eylül\", \"Ekim\", \"Kasým\", \"Aralýk\"],\n month_short: [\"Oca\", \"Þub\", \"Mar\", \"Nis\", \"May\", \"Haz\", \"Tem\", \"Aðu\", \"Eyl\", \"Eki\", \"Kas\", \"Ara\"],\n day_full: [\"Pazar\", \"Pazartes,\", \"Salý\", \"Çarþamba\", \"Perþembe\", \"Cuma\", \"Cumartesi\"],\n day_short: [\"Paz\", \"Pts\", \"Sal\", \"Çar\", \"Per\", \"Cum\", \"Cts\"]\n },\n labels: {\n dhx_cal_today_button: \"Bugün\",\n day_tab: \"Gün\",\n week_tab: \"Hafta\",\n month_tab: \"Ay\",\n new_event: \"Uygun\",\n icon_save: \"Kaydet\",\n icon_cancel: \"Ýptal\",\n icon_details: \"Detaylar\",\n icon_edit: \"Düzenle\",\n icon_delete: \"Sil\",\n confirm_closing: \"\",\n //Your changes will be lost, are your sure ?\n confirm_deleting: \"Etkinlik silinecek, devam?\",\n section_description: \"Açýklama\",\n section_time: \"Zaman aralýðý\",\n full_day: \"Tam gün\",\n\n /*recurring events*/\n confirm_recurring: \"Tüm tekrar eden etkinlikler silinecek, devam?\",\n section_recurring: \"Etkinliði tekrarla\",\n button_recurring: \"Pasif\",\n button_recurring_open: \"Aktif\",\n button_edit_series: \"Dizi düzenleme\",\n button_edit_occurrence: \"Bir kopyasını düzenleyin\",\n\n /*agenda view extension*/\n agenda_tab: \"Ajanda\",\n date: \"Tarih\",\n description: \"Açýklama\",\n\n /*year view extension*/\n year_tab: \"Yýl\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Ajanda\",\n\n /*grid view extension*/\n grid_tab: \"Izgara\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\"\n }\n};","export default {\n date: {\n month_full: [\"Січень\", \"Лютий\", \"Березень\", \"Квітень\", \"Травень\", \"Червень\", \"Липень\", \"Серпень\", \"Вересень\", \"Жовтень\", \"Листопад\", \"Грудень\"],\n month_short: [\"Січ\", \"Лют\", \"Бер\", \"Кві\", \"Тра\", \"Чер\", \"Лип\", \"Сер\", \"Вер\", \"Жов\", \"Лис\", \"Гру\"],\n day_full: [\"Неділя\", \"Понеділок\", \"Вівторок\", \"Середа\", \"Четвер\", \"П'ятниця\", \"Субота\"],\n day_short: [\"Нед\", \"Пон\", \"Вів\", \"Сер\", \"Чет\", \"Птн\", \"Суб\"]\n },\n labels: {\n dhx_cal_today_button: \"Сьогодні\",\n day_tab: \"День\",\n week_tab: \"Тиждень\",\n month_tab: \"Місяць\",\n new_event: \"Нова подія\",\n icon_save: \"Зберегти\",\n icon_cancel: \"Відміна\",\n icon_details: \"Деталі\",\n icon_edit: \"Редагувати\",\n icon_delete: \"Вилучити\",\n confirm_closing: \"\",\n //Ваші зміни втратяться. Ви впевнені ?\n confirm_deleting: \"Подія вилучиться назавжди. Ви впевнені?\",\n section_description: \"Опис\",\n section_time: \"Часовий проміжок\",\n full_day: \"Весь день\",\n\n /*recurring events*/\n confirm_recurring: \"Хочете редагувати весь перелік повторюваних подій?\",\n section_recurring: \"Повторювана подія\",\n button_recurring: \"Відключено\",\n button_recurring_open: \"Включено\",\n button_edit_series: \"Редагувати серію\",\n button_edit_occurrence: \"Редагувати примірник\",\n\n /*agenda view extension*/\n agenda_tab: \"Перелік\",\n date: \"Дата\",\n description: \"Опис\",\n\n /*year view extension*/\n year_tab: \"Рік\",\n\n /*week agenda view extension*/\n week_agenda_tab: \"Перелік\",\n\n /*grid view extension*/\n grid_tab: \"Таблиця\",\n\n /* touch tooltip*/\n drag_to_create: \"Drag to create\",\n drag_to_move: \"Drag to move\",\n\n /* dhtmlx message default buttons */\n message_ok: \"OK\",\n message_cancel: \"Cancel\",\n\n /* wai aria labels for non-text controls */\n next: \"Next\",\n prev: \"Previous\",\n year: \"Year\",\n month: \"Month\",\n day: \"Day\",\n hour: \"Hour\",\n minute: \"Minute\",\n\n /* recurring event components */\n repeat_radio_day: \"День\",\n repeat_radio_week: \"Тиждень\",\n repeat_radio_month: \"Місяць\",\n repeat_radio_year: \"Рік\",\n repeat_radio_day_type: \"Кожний\",\n repeat_text_day_count: \"день\",\n repeat_radio_day_type2: \"Кожний робочий день\",\n repeat_week: \" Повторювати кожен\",\n repeat_text_week_count: \"тиждень , по:\",\n repeat_radio_month_type: \"Повторювати\",\n repeat_radio_month_start: \"\",\n repeat_text_month_day: \" числа кожний \",\n repeat_text_month_count: \"місяць\",\n repeat_text_month_count2_before: \"кожен \",\n repeat_text_month_count2_after: \"місяць\",\n repeat_year_label: \"\",\n select_year_day2: \"\",\n repeat_text_year_day: \"день\",\n select_year_month: \"\",\n repeat_radio_end: \"Без дати закінчення\",\n repeat_text_occurences_count: \"повторень\",\n repeat_radio_end3: \"До \",\n repeat_radio_end2: \"\",\n month_for_recurring: [\"січня\", \"лютого\", \"березня\", \"квітня\", \"травня\", \"червня\", \"липня\", \"серпня\", \"вересня\", \"жовтня\", \"листопада\", \"грудня\"],\n day_for_recurring: [\"Неділям\", \"Понеділкам\", \"Вівторкам\", \"Середам\", \"Четвергам\", \"П'ятницям\", \"Суботам\"]\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport \"./css/terrace.skin\";\nimport assert from \"./core/common/assert\";\nimport common_errors from \"./core/common_errors\";\nimport connector from \"./core/connector\";\nimport schedulerCore from \"./core/scheduler\";\nimport common from \"./core/common\";\nimport wai_aria from \"./core/wai_aria\";\nimport utils from \"./core/utils/utils\";\nimport dom_helpers from \"./core/utils/dom_helpers\";\nimport env from \"./utils/env\";\nimport bluebird from \"./core/utils/bluebird\";\nimport destructor from \"./core/destructor\";\nimport ajax from \"./core/utils/ajax\";\nimport base from \"./core/base\";\nimport config from \"./core/config\";\nimport event from \"./core/event\";\nimport event_highlight from \"./core/event_highlight\";\nimport load from \"./core/load\";\nimport lightbox from \"./core/lightbox\";\nimport touch from \"./core/touch\";\nimport dhtmlx_suite_hooks from \"./core/dhtmlx/dhtmlx_suite_hooks\";\nimport skins from \"./core/skins\";\nimport jquery from \"./core/jquery\";\nimport delay_render from \"./core/delay_render\";\nimport dataProcessorExtend from \"./core/dataprocessor/dataprocessor\";\nimport message from \"./core/message\";\nimport i18nFactory from \"./locale\";\nimport voidFirst from \"./publish_helpers/void_script_first\";\nimport voidSecond from \"./publish_helpers/void_script_second\";\nimport voidThird from \"./publish_helpers/void_script_third\";\nexport default function (extensionManager) {\n var scheduler = {\n version: VERSION\n };\n common_errors(scheduler);\n common(scheduler);\n schedulerCore(scheduler);\n wai_aria(scheduler); //utils(scheduler);\n\n scheduler.utils = utils;\n scheduler.$domHelpers = dom_helpers;\n scheduler.utils.dom = dom_helpers;\n scheduler.uid = utils.uid;\n scheduler.mixin = utils.mixin;\n scheduler.defined = utils.defined;\n scheduler.assert = assert(scheduler);\n scheduler.copy = utils.copy; //old api compatibility\n\n scheduler._getFocusableNodes = dom_helpers.getFocusableNodes;\n scheduler._getClassName = dom_helpers.getClassName;\n scheduler._locate_css = dom_helpers.locateCss;\n var messageApi = message(scheduler);\n scheduler.utils.mixin(scheduler, messageApi);\n scheduler.env = scheduler.$env = env;\n scheduler.Promise = bluebird;\n destructor(scheduler);\n ajax(scheduler);\n voidFirst(scheduler);\n base(scheduler);\n config(scheduler);\n event(scheduler);\n event_highlight(scheduler);\n load(scheduler);\n lightbox(scheduler);\n touch(scheduler);\n dhtmlx_suite_hooks(scheduler);\n voidSecond(scheduler);\n skins(scheduler);\n jquery(scheduler);\n delay_render(scheduler);\n dataProcessorExtend(scheduler);\n voidThird(scheduler);\n connector(scheduler);\n var i18n = i18nFactory();\n scheduler.i18n = {\n addLocale: i18n.addLocale,\n setLocale: function setLocale(locale) {\n if (typeof locale === \"string\") {\n var localeObject = i18n.getLocale(locale);\n\n if (!localeObject) {\n localeObject = i18n.getLocale(\"en\");\n }\n\n scheduler.locale = localeObject;\n } else if (locale) {\n if (!scheduler.locale) {\n scheduler.locale = locale;\n } else {\n for (var i in locale) {\n if (locale[i] && _typeof(locale[i]) === \"object\") {\n if (!scheduler.locale[i]) {\n scheduler.locale[i] = {};\n }\n\n scheduler.mixin(scheduler.locale[i], locale[i], true);\n } else {\n scheduler.locale[i] = locale[i];\n }\n }\n }\n }\n },\n getLocale: i18n.getLocale\n };\n scheduler.i18n.setLocale(\"en\");\n scheduler.ext = {};\n var activePlugins = {};\n\n scheduler.plugins = function (config) {\n var extensionList = getExtensionList(config, {\n treetimeline: [\"timeline\"],\n daytimeline: [\"timeline\"],\n outerdrag: [\"legacy\"]\n }, {\n legacy: 1,\n limit: 1,\n timeline: 2,\n daytimeline: 3,\n treetimeline: 3,\n outerdrag: 6\n });\n extensionList.forEach(function (name) {\n if (!activePlugins[name]) {\n var plugin = extensionManager.getExtension(name);\n\n if (plugin) {\n plugin(scheduler);\n activePlugins[name] = true;\n } else {\n throw new Error(\"unknown plugin \" + name);\n }\n }\n });\n };\n\n function getExtensionList(config, dependencies, priorities) {\n var result = [];\n\n for (var i in config) {\n if (config[i]) {\n var extension = i.toLowerCase();\n\n if (dependencies[extension]) {\n dependencies[extension].forEach(function (dep) {\n var dependencyName = dep.toLowerCase();\n\n if (!config[dependencyName]) {\n result.push(dependencyName);\n }\n });\n }\n\n result.push(extension);\n }\n }\n\n result.sort(function (a, b) {\n var orderA = priorities[a] || 0;\n var orderB = priorities[b] || 0;\n\n if (orderA > orderB) {\n return 1;\n } else if (orderA < orderB) {\n return -1;\n } else {\n return 0;\n }\n });\n return result;\n }\n\n return scheduler;\n}","export default function extend(scheduler) {\n var commonViews = {\n agenda: \"https://docs.dhtmlx.com/scheduler/agenda_view.html\",\n grid: \"https://docs.dhtmlx.com/scheduler/grid_view.html\",\n map: \"https://docs.dhtmlx.com/scheduler/map_view.html\",\n unit: \"https://docs.dhtmlx.com/scheduler/units_view.html\",\n timeline: \"https://docs.dhtmlx.com/scheduler/timeline_view.html\",\n week_agenda: \"https://docs.dhtmlx.com/scheduler/weekagenda_view.html\",\n year: \"https://docs.dhtmlx.com/scheduler/year_view.html\",\n anythingElse: \"https://docs.dhtmlx.com/scheduler/views.html\"\n };\n var requiredExtensions = {\n agenda: \"ext/dhtmlxscheduler_agenda_view.js\",\n grid: \"ext/dhtmlxscheduler_grid_view.js\",\n map: \"ext/dhtmlxscheduler_map_view.js\",\n unit: \"ext/dhtmlxscheduler_units.js\",\n timeline: \"ext/dhtmlxscheduler_timeline.js, ext/dhtmlxscheduler_treetimeline.js, ext/dhtmlxscheduler_daytimeline.js\",\n week_agenda: \"ext/dhtmlxscheduler_week_agenda.js\",\n year: \"ext/dhtmlxscheduler_year_view.js\",\n limit: \"ext/dhtmlxscheduler_limit.js\"\n };\n scheduler._commonErrorMessages = {\n unknownView: function unknownView(view) {\n var relatedDoc = \"Related docs: \" + (commonViews[view] || commonViews.anythingElse);\n var relatedExtension = requiredExtensions[view] ? \"You're probably missing \" + requiredExtensions[view] + \".\" : \"\";\n return \"`\" + view + \"` view is not defined. \\n\" + \"Please check parameters you pass to `scheduler.init` or `scheduler.setCurrentView` in your code and ensure you've imported appropriate extensions. \\n\" + relatedDoc + \"\\n\" + (relatedExtension ? relatedExtension + \"\\n\" : \"\");\n },\n collapsedContainer: function collapsedContainer(div) {\n return \"Scheduler container height is set to *100%* but the rendered height is zero and the scheduler is not visible. \\n\" + \"Make sure that the container has some initial height or use different units. For example:\\n\" + \"<div id='scheduler_here' class='dhx_cal_container' style='width:100%; height:600px;'> \\n\";\n }\n };\n\n scheduler.createTimelineView = function () {\n throw new Error(\"scheduler.createTimelineView is not implemented. Be sure to add the required extension: \" + requiredExtensions.timeline + \"\\n\" + \"Related docs: \" + commonViews.timeline);\n };\n\n scheduler.createUnitsView = function () {\n throw new Error(\"scheduler.createUnitsView is not implemented. Be sure to add the required extension: \" + requiredExtensions.unit + \"\\n\" + \"Related docs: \" + commonViews.unit);\n };\n\n scheduler.createGridView = function () {\n throw new Error(\"scheduler.createGridView is not implemented. Be sure to add the required extension: \" + requiredExtensions.grid + \"\\n\" + \"Related docs: \" + commonViews.grid);\n };\n\n scheduler.addMarkedTimespan = function () {\n throw new Error(\"scheduler.addMarkedTimespan is not implemented. Be sure to add the required extension: ext/dhtmlxscheduler_limit.js\" + \"\\n\" + \"Related docs: https://docs.dhtmlx.com/scheduler/limits.html\");\n };\n\n scheduler.renderCalendar = function () {\n throw new Error(\"scheduler.renderCalendar is not implemented. Be sure to add the required extension: ext/dhtmlxscheduler_minical.js\" + \"\\n\" + \"https://docs.dhtmlx.com/scheduler/minicalendar.html\");\n };\n\n scheduler.exportToPNG = function () {\n 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\"));\n };\n\n scheduler.exportToPDF = function () {\n throw new Error([\"scheduler.exportToPDF is not implemented.\", \"This feature requires an additional module, be sure to check the related doc here https://docs.dhtmlx.com/scheduler/pdf.html\", \"Licensing info: https://dhtmlx.com/docs/products/dhtmlxScheduler/export.shtml\"].join(\"\\n\"));\n };\n}","export default function (scheduler) {\n return function assert(check, message) {\n if (!check) {\n if (scheduler.config.show_errors && scheduler.callEvent(\"onError\", [message]) !== false) {\n if (scheduler.message) {\n scheduler.message({\n type: \"error\",\n text: message,\n expire: -1\n });\n } else {\n // eslint-disable-next-line\n console.log(message);\n } // eslint-disable-next-line no-debugger\n\n\n debugger;\n }\n }\n };\n}","export default function extend(scheduler) {\n scheduler.destructor = function () {\n scheduler.callEvent(\"onDestroy\", []);\n this.clearAll();\n\n if (this.$container) {\n // FIXME: clear container or remove container\n this.$container.innerHTML = \"\"; // scheduler.$domHelpers.remove(this.$container);\n }\n\n if (this._eventRemoveAll) {\n this._eventRemoveAll();\n }\n\n if (this.resetLightbox) {\n this.resetLightbox();\n }\n\n if (this._dp && this._dp.destructor) {\n this._dp.destructor();\n } // detachAllEvents should be called last, because in components may be attached events\n\n\n this.detachAllEvents();\n\n for (var i in this) {\n if (i.indexOf(\"$\") === 0) {\n delete this[i];\n }\n }\n\n scheduler.$destroyed = true;\n };\n}","export default function extend(scheduler) {\n /*\r\n %e\tDay of the month without leading zeros (01..31)\r\n %d\tDay of the month, 2 digits with leading zeros (01..31)\r\n %j\tDay of the year, 3 digits with leading zeros (001..366)\r\n %a\tA textual representation of a day, two letters\r\n %W\tA full textual representation of the day of the week\r\n \r\n %c\tNumeric representation of a month, without leading zeros (0..12)\r\n %m\tNumeric representation of a month, with leading zeros (00..12)\r\n %b\tA short textual representation of a month, three letters (Jan..Dec)\r\n %M\tA full textual representation of a month, such as January or March (January..December)\r\n \r\n %y\tA two digit representation of a year (93..03)\r\n %Y\tA full numeric representation of a year, 4 digits (1993..03)\r\n */\n scheduler.config = {\n default_date: \"%j %M %Y\",\n month_date: \"%F %Y\",\n load_date: \"%Y-%m-%d\",\n week_date: \"%l\",\n day_date: \"%D, %F %j\",\n hour_date: \"%H:%i\",\n month_day: \"%d\",\n //xml_date: \"%m/%d/%Y %H:%i\",\n date_format: \"%Y-%m-%d %H:%i\",\n api_date: \"%d-%m-%Y %H:%i\",\n parse_exact_format: false,\n preserve_length: true,\n time_step: 5,\n start_on_monday: true,\n first_hour: 0,\n last_hour: 24,\n readonly: false,\n drag_resize: true,\n drag_move: true,\n drag_create: true,\n drag_event_body: true,\n dblclick_create: true,\n edit_on_create: true,\n details_on_create: false,\n header: null,\n resize_month_events: false,\n resize_month_timed: false,\n responsive_lightbox: false,\n rtl: false,\n cascade_event_display: false,\n cascade_event_count: 4,\n cascade_event_margin: 30,\n multi_day: true,\n multi_day_height_limit: 0,\n drag_lightbox: true,\n preserve_scroll: true,\n select: true,\n server_utc: false,\n touch: true,\n touch_tip: true,\n touch_drag: 500,\n touch_swipe_dates: false,\n quick_info_detached: true,\n positive_closing: false,\n drag_highlight: true,\n limit_drag_out: false,\n icons_edit: [\"icon_save\", \"icon_cancel\"],\n icons_select: [\"icon_details\", \"icon_edit\", \"icon_delete\"],\n buttons_left: [\"dhx_save_btn\", \"dhx_cancel_btn\"],\n buttons_right: [\"dhx_delete_btn\"],\n lightbox: {\n sections: [{\n name: \"description\",\n map_to: \"text\",\n type: \"textarea\",\n focus: true\n }, {\n name: \"time\",\n height: 72,\n type: \"time\",\n map_to: \"auto\"\n }]\n },\n highlight_displayed_event: true,\n left_border: false,\n ajax_error: \"alert\",\n //\"ignore\"|\"console\"\n delay_render: 0,\n timeline_swap_resize: true,\n wai_aria_attributes: true,\n wai_aria_application_role: true,\n csp: \"auto\",\n event_attribute: \"data-event-id\",\n show_errors: true\n };\n scheduler.config.buttons_left.$initial = scheduler.config.buttons_left.join();\n scheduler.config.buttons_right.$initial = scheduler.config.buttons_right.join();\n scheduler._helpers = {\n parseDate: function parseDate(date) {\n var parse = scheduler.templates.xml_date || scheduler.templates.parse_date;\n return parse(date);\n },\n formatDate: function formatDate(date) {\n var format = scheduler.templates.xml_format || scheduler.templates.format_date;\n return format(date);\n }\n };\n scheduler.templates = {};\n\n scheduler.init_templates = function () {\n var labels = scheduler.locale.labels;\n labels.dhx_save_btn = labels.icon_save;\n labels.dhx_cancel_btn = labels.icon_cancel;\n labels.dhx_delete_btn = labels.icon_delete;\n var d = scheduler.date.date_to_str;\n var c = scheduler.config;\n\n var f = function f(a, b) {\n for (var c in b) {\n if (!a[c]) a[c] = b[c];\n }\n };\n\n f(scheduler.templates, {\n day_date: d(c.default_date),\n month_date: d(c.month_date),\n week_date: function week_date(d1, d2) {\n if (c.rtl) {\n return scheduler.templates.day_date(scheduler.date.add(d2, -1, \"day\")) + \" – \" + scheduler.templates.day_date(d1);\n }\n\n return scheduler.templates.day_date(d1) + \" – \" + scheduler.templates.day_date(scheduler.date.add(d2, -1, \"day\"));\n },\n day_scale_date: d(c.default_date),\n month_scale_date: d(c.week_date),\n week_scale_date: d(c.day_date),\n hour_scale: d(c.hour_date),\n time_picker: d(c.hour_date),\n event_date: d(c.hour_date),\n month_day: d(c.month_day),\n load_format: d(c.load_date),\n //\txml_date:scheduler.date.str_to_date(c.xml_date,c.server_utc),\n //\txml_format:d(c.date_format,c.server_utc),\n format_date: d(c.date_format, c.server_utc),\n parse_date: scheduler.date.str_to_date(c.date_format, c.server_utc),\n api_date: scheduler.date.str_to_date(c.api_date, false, false),\n event_header: function event_header(start, end, ev) {\n // if (scheduler.config.rtl) {\n // \treturn scheduler.templates.event_date(end)+\" - \"+scheduler.templates.event_date(start);\n // }\n return scheduler.templates.event_date(start) + \" - \" + scheduler.templates.event_date(end);\n },\n event_text: function event_text(start, end, ev) {\n return ev.text;\n },\n event_class: function event_class(start, end, ev) {\n return \"\";\n },\n month_date_class: function month_date_class(d) {\n return \"\";\n },\n week_date_class: function week_date_class(d) {\n return \"\";\n },\n event_bar_date: function event_bar_date(start, end, ev) {\n return scheduler.templates.event_date(start) + \" \";\n },\n event_bar_text: function event_bar_text(start, end, ev) {\n return ev.text;\n },\n month_events_link: function month_events_link(date, count) {\n return \"<a>View more(\" + count + \" events)</a>\";\n },\n drag_marker_class: function drag_marker_class(start, end, event) {\n return \"\";\n },\n drag_marker_content: function drag_marker_content(start, end, event) {\n return \"\";\n },\n\n /* Could be redifined */\n tooltip_date_format: scheduler.date.date_to_str(\"%Y-%m-%d %H:%i\"),\n tooltip_text: function tooltip_text(start, end, event) {\n return \"<b>Event:</b> \" + event.text + \"<br/><b>Start date:</b> \" + scheduler.templates.tooltip_date_format(start) + \"<br/><b>End date:</b> \" + scheduler.templates.tooltip_date_format(end);\n }\n });\n this.callEvent(\"onTemplatesReady\", []);\n };\n}","export default function extend(scheduler) {\n scheduler._append_drag_marker = function (m) {\n if (m.parentNode) return;\n var zone = scheduler._els[\"dhx_cal_data\"][0];\n var scale = zone.lastChild;\n\n var className = scheduler._getClassName(scale);\n\n if (className.indexOf(\"dhx_scale_holder\") < 0 && scale.previousSibling) {\n scale = scale.previousSibling;\n }\n\n className = scheduler._getClassName(scale);\n\n if (scale && className.indexOf(\"dhx_scale_holder\") === 0) {\n scale.appendChild(m);\n }\n };\n\n scheduler._update_marker_position = function (m, event) {\n var size = scheduler._calc_event_y(event, 0);\n\n m.style.top = size.top + \"px\";\n m.style.height = size.height + \"px\";\n };\n\n scheduler.highlightEventPosition = function (event) {\n var m = document.createElement(\"div\");\n m.setAttribute(\"event_id\", event.id); // for backward compatibility\n\n m.setAttribute(this.config.event_attribute, event.id);\n\n this._rendered.push(m);\n\n this._update_marker_position(m, event);\n\n var css = this.templates.drag_marker_class(event.start_date, event.end_date, event);\n var html = this.templates.drag_marker_content(event.start_date, event.end_date, event);\n m.className = \"dhx_drag_marker\";\n if (css) m.className += \" \" + css;\n if (html) m.innerHTML = html;\n\n this._append_drag_marker(m);\n };\n}","export default function extend(scheduler) {\n scheduler._lightbox_controls = {};\n\n scheduler.formSection = function (name) {\n var config = this.config.lightbox.sections;\n var i = 0;\n\n for (i; i < config.length; i++) {\n if (config[i].name == name) {\n break;\n }\n }\n\n if (i === config.length) {\n // GS-1662 section not found, should exit here instead of throwing an error\n return null;\n }\n\n var section = config[i];\n\n if (!scheduler._lightbox) {\n scheduler.getLightbox();\n }\n\n var header = document.getElementById(section.id);\n var node = header.nextSibling;\n var result = {\n section: section,\n header: header,\n node: node,\n getValue: function getValue(ev) {\n return scheduler.form_blocks[section.type].get_value(node, ev || {}, section);\n },\n setValue: function setValue(value, ev) {\n return scheduler.form_blocks[section.type].set_value(node, value, ev || {}, section);\n }\n };\n var handler = scheduler._lightbox_controls[\"get_\" + section.type + \"_control\"];\n return handler ? handler(result) : result;\n };\n\n scheduler._lightbox_controls.get_template_control = function (result) {\n result.control = result.node;\n return result;\n };\n\n scheduler._lightbox_controls.get_select_control = function (result) {\n result.control = result.node.getElementsByTagName('select')[0];\n return result;\n };\n\n scheduler._lightbox_controls.get_textarea_control = function (result) {\n result.control = result.node.getElementsByTagName('textarea')[0];\n return result;\n };\n\n scheduler._lightbox_controls.get_time_control = function (result) {\n result.control = result.node.getElementsByTagName('select'); // array\n\n return result;\n };\n\n scheduler._lightbox_controls.defaults = {\n template: {\n height: 30\n },\n textarea: {\n height: 200\n },\n select: {\n height: 23\n },\n time: {\n height: 20\n }\n };\n scheduler.form_blocks = {\n template: {\n render: function render(sns) {\n var defaults = scheduler._lightbox_controls.defaults.template;\n var defaultHeight = defaults ? defaults.height : 30;\n var height = (sns.height || defaultHeight || 30) + \"px\";\n return \"<div class='dhx_cal_ltext dhx_cal_template' style='height:\" + height + \";'></div>\";\n },\n set_value: function set_value(node, value, ev, config) {\n node.innerHTML = value || \"\";\n },\n get_value: function get_value(node, ev, config) {\n return node.innerHTML || \"\";\n },\n focus: function focus(node) {}\n },\n textarea: {\n render: function render(sns) {\n var defaults = scheduler._lightbox_controls.defaults.textarea;\n var defaultHeight = defaults ? defaults.height : 200;\n var height = (sns.height || defaultHeight || \"130\") + \"px\";\n return \"<div class='dhx_cal_ltext' style='height:\" + height + \";'><textarea></textarea></div>\";\n },\n set_value: function set_value(node, value, ev) {\n scheduler.form_blocks.textarea._get_input(node).value = value || \"\";\n },\n get_value: function get_value(node, ev) {\n return scheduler.form_blocks.textarea._get_input(node).value;\n },\n focus: function focus(node) {\n var a = scheduler.form_blocks.textarea._get_input(node);\n\n scheduler._focus(a, true);\n },\n _get_input: function _get_input(node) {\n return node.getElementsByTagName(\"textarea\")[0];\n }\n },\n select: {\n render: function render(sns) {\n var defaults = scheduler._lightbox_controls.defaults.select;\n var defaultHeight = defaults ? defaults.height : 23;\n var height = (sns.height || defaultHeight || \"23\") + \"px\";\n var html = \"<div class='dhx_cal_ltext' style='height:\" + height + \";'><select style='width:100%;'>\";\n\n for (var i = 0; i < sns.options.length; i++) {\n html += \"<option value='\" + sns.options[i].key + \"'>\" + sns.options[i].label + \"</option>\";\n }\n\n html += \"</select></div>\";\n return html;\n },\n set_value: function set_value(node, value, ev, sns) {\n var select = node.firstChild;\n\n if (!select._dhx_onchange && sns.onchange) {\n scheduler.event(select, \"change\", sns.onchange);\n select._dhx_onchange = true;\n }\n\n if (typeof value == \"undefined\") value = (select.options[0] || {}).value;\n select.value = value || \"\";\n },\n get_value: function get_value(node, ev) {\n return node.firstChild.value;\n },\n focus: function focus(node) {\n var a = node.firstChild;\n\n scheduler._focus(a, true);\n }\n },\n time: {\n render: function render(sns) {\n if (!sns.time_format) {\n // default order\n sns.time_format = [\"%H:%i\", \"%d\", \"%m\", \"%Y\"];\n } // map: default order => real one\n\n\n sns._time_format_order = {};\n var time_format = sns.time_format;\n var cfg = scheduler.config;\n var dt = scheduler.date.date_part(scheduler._currentDate());\n var last = 24 * 60,\n first = 0;\n\n if (scheduler.config.limit_time_select) {\n last = 60 * cfg.last_hour + 1;\n first = 60 * cfg.first_hour;\n dt.setHours(cfg.first_hour);\n }\n\n var html = \"\";\n\n for (var p = 0; p < time_format.length; p++) {\n var time_option = time_format[p]; // adding spaces between selects\n\n if (p > 0) {\n html += \" \";\n }\n\n var selectBoxClass = \"\";\n var options = \"\";\n\n switch (time_option) {\n case \"%Y\":\n selectBoxClass = \"dhx_lightbox_year_select\";\n sns._time_format_order[3] = p; //year\n\n var range;\n var start_year;\n var end_year;\n\n if (sns.year_range) {\n if (!isNaN(sns.year_range)) {\n range = sns.year_range;\n } else if (sns.year_range.push) {\n // if\n start_year = sns.year_range[0];\n end_year = sns.year_range[1];\n }\n }\n\n range = range || 10;\n var offset = offset || Math.floor(range / 2);\n start_year = start_year || dt.getFullYear() - offset;\n end_year = end_year || start_year + range;\n\n for (var i = start_year; i < end_year; i++) {\n options += \"<option value='\" + i + \"'>\" + i + \"</option>\";\n }\n\n break;\n\n case \"%m\":\n selectBoxClass = \"dhx_lightbox_month_select\";\n sns._time_format_order[2] = p; //month\n\n for (var i = 0; i < 12; i++) {\n options += \"<option value='\" + i + \"'>\" + this.locale.date.month_full[i] + \"</option>\";\n }\n\n break;\n\n case \"%d\":\n selectBoxClass = \"dhx_lightbox_day_select\";\n sns._time_format_order[1] = p; //days\n\n for (var i = 1; i < 32; i++) {\n options += \"<option value='\" + i + \"'>\" + i + \"</option>\";\n }\n\n break;\n\n case \"%H:%i\":\n selectBoxClass = \"dhx_lightbox_time_select\";\n sns._time_format_order[0] = p; //hours\n\n var i = first;\n var tdate = dt.getDate();\n sns._time_values = [];\n\n while (i < last) {\n var time = this.templates.time_picker(dt);\n options += \"<option value='\" + i + \"'>\" + time + \"</option>\";\n\n sns._time_values.push(i);\n\n dt.setTime(dt.valueOf() + this.config.time_step * 60 * 1000);\n var diff = dt.getDate() != tdate ? 1 : 0; // moved or not to the next day\n\n i = diff * 24 * 60 + dt.getHours() * 60 + dt.getMinutes();\n }\n\n break;\n }\n\n if (options) {\n var ariaAttrs = scheduler._waiAria.lightboxSelectAttrString(time_option);\n\n var readonly = sns.readonly ? \"disabled='disabled'\" : \"\";\n html += \"<select class='\" + selectBoxClass + \"' \" + readonly + ariaAttrs + \">\" + options + \"</select> \";\n }\n }\n\n var defaults = scheduler._lightbox_controls.defaults.select;\n var defaultHeight = defaults ? defaults.height : 23;\n var height = defaultHeight || 30;\n return \"<div style='height:\" + height + \"px;padding-top:0px;font-size:inherit;' class='dhx_section_time'>\" + html + \"<span style='font-weight:normal; font-size:10pt;'> – </span>\" + html + \"</div>\";\n },\n set_value: function set_value(node, value, ev, config) {\n var cfg = scheduler.config;\n var s = node.getElementsByTagName(\"select\");\n var map = config._time_format_order;\n var start_date, end_date;\n\n if (cfg.full_day) {\n if (!node._full_day) {\n var html = \"<label class='dhx_fullday'><input type='checkbox' name='full_day' value='true'> \" + scheduler.locale.labels.full_day + \" </label></input>\";\n if (!scheduler.config.wide_form) html = node.previousSibling.innerHTML + html;\n node.previousSibling.innerHTML = html;\n node._full_day = true;\n }\n\n var input = node.previousSibling.getElementsByTagName(\"input\")[0];\n input.checked = scheduler.date.time_part(ev.start_date) === 0 && scheduler.date.time_part(ev.end_date) === 0;\n s[map[0]].disabled = input.checked;\n s[map[0] + s.length / 2].disabled = input.checked;\n\n if (!input.$_eventAttached) {\n input.$_eventAttached = true;\n scheduler.event(input, \"click\", function () {\n if (input.checked) {\n var obj = {};\n scheduler.form_blocks.time.get_value(node, obj, config);\n start_date = scheduler.date.date_part(obj.start_date);\n end_date = scheduler.date.date_part(obj.end_date);\n if (+end_date == +start_date || +end_date >= +start_date && (ev.end_date.getHours() !== 0 || ev.end_date.getMinutes() !== 0)) end_date = scheduler.date.add(end_date, 1, \"day\");\n } else {\n start_date = null;\n end_date = null;\n }\n\n s[map[0]].disabled = input.checked;\n s[map[0] + s.length / 2].disabled = input.checked;\n\n _fill_lightbox_select(s, 0, start_date || ev.start_date);\n\n _fill_lightbox_select(s, 4, end_date || ev.end_date);\n });\n }\n }\n\n if (cfg.auto_end_date && cfg.event_duration) {\n var _update_lightbox_select = function _update_lightbox_select() {\n if (!(cfg.auto_end_date && cfg.event_duration)) {\n // setting may be disabled after the handler is attached\n return;\n }\n\n start_date = new Date(s[map[3]].value, s[map[2]].value, s[map[1]].value, 0, s[map[0]].value);\n end_date = new Date(start_date.getTime() + scheduler.config.event_duration * 60 * 1000);\n\n _fill_lightbox_select(s, 4, end_date);\n };\n\n for (var i = 0; i < 4; i++) {\n if (!s[i].$_eventAttached) {\n s[i].$_eventAttached = true;\n scheduler.event(s[i], \"change\", _update_lightbox_select);\n }\n }\n }\n\n function _fill_lightbox_select(s, i, d) {\n var time_values = config._time_values;\n var direct_value = d.getHours() * 60 + d.getMinutes();\n var fixed_value = direct_value;\n var value_found = false;\n\n for (var k = 0; k < time_values.length; k++) {\n var t_v = time_values[k];\n\n if (t_v === direct_value) {\n value_found = true;\n break;\n }\n\n if (t_v < direct_value) fixed_value = t_v;\n }\n\n s[i + map[0]].value = value_found ? direct_value : fixed_value;\n\n if (!(value_found || fixed_value)) {\n s[i + map[0]].selectedIndex = -1; //show empty select in FF\n }\n\n s[i + map[1]].value = d.getDate();\n s[i + map[2]].value = d.getMonth();\n s[i + map[3]].value = d.getFullYear();\n }\n\n _fill_lightbox_select(s, 0, ev.start_date);\n\n _fill_lightbox_select(s, 4, ev.end_date);\n },\n get_value: function get_value(node, ev, config) {\n var s = node.getElementsByTagName(\"select\");\n var map = config._time_format_order;\n ev.start_date = new Date(s[map[3]].value, s[map[2]].value, s[map[1]].value, 0, s[map[0]].value);\n ev.end_date = new Date(s[map[3] + 4].value, s[map[2] + 4].value, s[map[1] + 4].value, 0, s[map[0] + 4].value);\n\n if (!(s[map[3]].value && s[map[3] + 4].value)) {\n // use the previous date if start/end years are empty (outside lightbox range)\n var original = scheduler.getEvent(scheduler._lightbox_id);\n\n if (original) {\n ev.start_date = original.start_date;\n ev.end_date = original.end_date;\n }\n }\n\n if (ev.end_date <= ev.start_date) ev.end_date = scheduler.date.add(ev.start_date, scheduler.config.time_step, \"minute\");\n return {\n start_date: new Date(ev.start_date),\n end_date: new Date(ev.end_date)\n };\n },\n focus: function focus(node) {\n scheduler._focus(node.getElementsByTagName(\"select\")[0]);\n }\n }\n };\n\n scheduler._setLbPosition = function (box) {\n if (!box) {\n return;\n }\n\n var scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\n var scrollLeft = window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft;\n var viewHeight = window.innerHeight || document.documentElement.clientHeight;\n if (scrollTop) // if vertical scroll on window\n box.style.top = Math.round(scrollTop + Math.max((viewHeight - box.offsetHeight) / 2, 0)) + \"px\";else // vertical scroll on body\n box.style.top = Math.round(Math.max((viewHeight - box.offsetHeight) / 2, 0) + 9) + \"px\"; // +9 for compatibility with auto tests\n // not quite accurate but used for compatibility reasons\n\n if (document.documentElement.scrollWidth > document.body.offsetWidth) // if horizontal scroll on the window\n box.style.left = Math.round(scrollLeft + (document.body.offsetWidth - box.offsetWidth) / 2) + \"px\";else // horizontal scroll on the body\n box.style.left = Math.round((document.body.offsetWidth - box.offsetWidth) / 2) + \"px\";\n };\n\n scheduler.showCover = function (box) {\n if (box) {\n box.style.display = \"block\";\n\n this._setLbPosition(box);\n }\n\n if (scheduler.config.responsive_lightbox) {\n document.documentElement.classList.add(\"dhx_cal_overflow_container\");\n document.body.classList.add(\"dhx_cal_overflow_container\");\n }\n\n this.show_cover();\n };\n\n scheduler.showLightbox = function (id) {\n if (!id) return;\n\n if (!this.callEvent(\"onBeforeLightbox\", [id])) {\n if (this._new_event) this._new_event = null;\n return;\n }\n\n var box = this.getLightbox();\n this.showCover(box);\n\n this._fill_lightbox(id, box);\n\n this._waiAria.lightboxVisibleAttr(box);\n\n this.callEvent(\"onLightbox\", [id]);\n };\n\n scheduler._fill_lightbox = function (id, box) {\n var ev = this.getEvent(id);\n var s = box.getElementsByTagName(\"span\");\n var lightboxHeader = [];\n\n if (scheduler.templates.lightbox_header) {\n lightboxHeader.push(\"\");\n var headerContent = scheduler.templates.lightbox_header(ev.start_date, ev.end_date, ev);\n lightboxHeader.push(headerContent);\n s[1].innerHTML = \"\";\n s[2].innerHTML = headerContent;\n } else {\n var headerDate = this.templates.event_header(ev.start_date, ev.end_date, ev);\n var headerTitle = (this.templates.event_bar_text(ev.start_date, ev.end_date, ev) || \"\").substr(0, 70); //IE6 fix;\n\n lightboxHeader.push(headerDate);\n lightboxHeader.push(headerTitle);\n s[1].innerHTML = headerDate;\n s[2].innerHTML = headerTitle;\n }\n\n this._waiAria.lightboxHeader(box, lightboxHeader.join(\" \"));\n\n var sns = this.config.lightbox.sections;\n\n for (var i = 0; i < sns.length; i++) {\n var current_sns = sns[i];\n\n var node = scheduler._get_lightbox_section_node(current_sns);\n\n var block = this.form_blocks[current_sns.type];\n var value = ev[current_sns.map_to] !== undefined ? ev[current_sns.map_to] : current_sns.default_value;\n block.set_value.call(this, node, value, ev, current_sns);\n if (sns[i].focus) block.focus.call(this, node);\n }\n\n scheduler._lightbox_id = id;\n };\n\n scheduler._get_lightbox_section_node = function (section) {\n return document.getElementById(section.id).nextSibling;\n };\n\n scheduler._lightbox_out = function (ev) {\n var sns = this.config.lightbox.sections;\n\n for (var i = 0; i < sns.length; i++) {\n var node = document.getElementById(sns[i].id);\n node = node ? node.nextSibling : node;\n var block = this.form_blocks[sns[i].type];\n var res = block.get_value.call(this, node, ev, sns[i]);\n if (sns[i].map_to != \"auto\") ev[sns[i].map_to] = res;\n }\n\n return ev;\n };\n\n scheduler._empty_lightbox = function (data) {\n var id = scheduler._lightbox_id;\n var ev = this.getEvent(id); //var box=this.getLightbox();\n\n this._lame_copy(ev, data);\n\n this.setEvent(ev.id, ev);\n\n this._edit_stop_event(ev, true);\n\n this.render_view_data();\n };\n\n scheduler.hide_lightbox = function (id) {\n scheduler.endLightbox(false, this.getLightbox());\n };\n\n scheduler.hideCover = function (box) {\n if (box) box.style.display = \"none\";\n this.hide_cover();\n\n if (scheduler.config.responsive_lightbox) {\n document.documentElement.classList.remove(\"dhx_cal_overflow_container\");\n document.body.classList.remove(\"dhx_cal_overflow_container\");\n }\n };\n\n scheduler.hide_cover = function () {\n if (this._cover) this._cover.parentNode.removeChild(this._cover);\n this._cover = null;\n };\n\n scheduler.show_cover = function () {\n if (this._cover) {\n return;\n }\n\n this._cover = document.createElement(\"div\");\n this._cover.className = \"dhx_cal_cover\";\n document.body.appendChild(this._cover);\n };\n\n scheduler.save_lightbox = function () {\n var data = this._lightbox_out({}, this._lame_copy(this.getEvent(this._lightbox_id)));\n\n if (this.checkEvent(\"onEventSave\") && !this.callEvent(\"onEventSave\", [this._lightbox_id, data, this._new_event])) return;\n\n this._empty_lightbox(data);\n\n this.hide_lightbox();\n };\n\n scheduler.startLightbox = function (id, box) {\n this._lightbox_id = id;\n this._custom_lightbox = true;\n this._temp_lightbox = this._lightbox;\n this._lightbox = box;\n this.showCover(box);\n };\n\n scheduler.endLightbox = function (mode, box) {\n var box = box || scheduler.getLightbox();\n var event = scheduler.getEvent(this._lightbox_id);\n if (event) this._edit_stop_event(event, mode);\n if (mode) scheduler.render_view_data();\n this.hideCover(box);\n\n if (this._custom_lightbox) {\n this._lightbox = this._temp_lightbox;\n this._custom_lightbox = false;\n }\n\n this._temp_lightbox = this._lightbox_id = null; // in case of custom lightbox user only calls endLightbox so we need to reset _lightbox_id\n\n this._waiAria.lightboxHiddenAttr(box);\n\n this.callEvent(\"onAfterLightbox\", []);\n };\n\n scheduler.resetLightbox = function () {\n if (scheduler._lightbox && !scheduler._custom_lightbox) scheduler._lightbox.parentNode.removeChild(scheduler._lightbox);\n scheduler._lightbox = null;\n };\n\n scheduler.cancel_lightbox = function () {\n if (this._lightbox_id) {\n this.callEvent(\"onEventCancel\", [this._lightbox_id, this._new_event]);\n }\n\n this.hide_lightbox();\n };\n\n scheduler.hideLightbox = scheduler.cancel_lightbox; // GS-1650 need to use cancel in order to fire onEventCancel event, which is important to refresh the state of recurring series\n\n scheduler._init_lightbox_events = function () {\n if (this.getLightbox().$_eventAttached) {\n return;\n }\n\n var lightbox = this.getLightbox();\n lightbox.$_eventAttached = true;\n scheduler.event(lightbox, \"click\", function (e) {\n var buttonTarget = scheduler.$domHelpers.closest(e.target, \".dhx_btn_set\");\n\n if (!buttonTarget) {\n var sectionButton = scheduler.$domHelpers.closest(e.target, \".dhx_custom_button[data-section-index]\");\n\n if (sectionButton) {\n var index = Number(sectionButton.getAttribute(\"data-section-index\"));\n var block = scheduler.form_blocks[scheduler.config.lightbox.sections[index].type];\n block.button_click(scheduler.$domHelpers.closest(sectionButton, \".dhx_cal_lsection\"), sectionButton, e);\n }\n\n return;\n }\n\n var action = buttonTarget ? buttonTarget.getAttribute(\"data-action\") : null;\n\n switch (action) {\n case \"dhx_save_btn\":\n case \"save\":\n if (scheduler.config.readonly_active) {\n return;\n }\n\n scheduler.save_lightbox();\n break;\n\n case \"dhx_delete_btn\":\n case \"delete\":\n if (scheduler.config.readonly_active) {\n return;\n }\n\n var c = scheduler.locale.labels.confirm_deleting;\n\n scheduler._dhtmlx_confirm(c, scheduler.locale.labels.title_confirm_deleting, function () {\n scheduler.deleteEvent(scheduler._lightbox_id);\n scheduler._new_event = null; //clear flag, if it was unsaved event\n\n scheduler.hide_lightbox();\n });\n\n break;\n\n case \"dhx_cancel_btn\":\n case \"cancel\":\n scheduler.cancel_lightbox();\n break;\n\n default:\n scheduler.callEvent(\"onLightboxButton\", [action, buttonTarget, e]);\n }\n });\n scheduler.event(lightbox, \"keydown\", function (e) {\n var event = e || window.event;\n var target = e.target || e.srcElement;\n var buttonTarget = target.querySelector(\"[dhx_button]\");\n\n if (!buttonTarget) {\n buttonTarget = target.parentNode.querySelector(\".dhx_custom_button, .dhx_readonly\");\n }\n\n switch ((e || event).keyCode) {\n case 32:\n {\n //space\n if ((e || event).shiftKey) return;\n\n if (buttonTarget && buttonTarget.click) {\n buttonTarget.click();\n }\n\n break;\n }\n\n case scheduler.keys.edit_save:\n if ((e || event).shiftKey) return;\n\n if (buttonTarget && buttonTarget.click) {\n buttonTarget.click();\n } else {\n if (scheduler.config.readonly_active) {\n return;\n }\n\n scheduler.save_lightbox();\n }\n\n break;\n\n case scheduler.keys.edit_cancel:\n scheduler.cancel_lightbox();\n break;\n\n default:\n break;\n }\n });\n };\n\n scheduler.setLightboxSize = function () {\n var d = this._lightbox;\n if (!d) return;\n var con = d.childNodes[1];\n con.style.height = \"0px\";\n con.style.height = con.scrollHeight + \"px\";\n d.style.height = con.scrollHeight + scheduler.xy.lightbox_additional_height + \"px\";\n con.style.height = con.scrollHeight + \"px\"; //it is incredible , how ugly IE can be\n };\n\n scheduler._init_dnd_events = function () {\n scheduler.event(document.body, \"mousemove\", scheduler._move_while_dnd);\n scheduler.event(document.body, \"mouseup\", scheduler._finish_dnd);\n\n scheduler._init_dnd_events = function () {};\n };\n\n scheduler._move_while_dnd = function (e) {\n if (scheduler._dnd_start_lb) {\n if (!document.dhx_unselectable) {\n document.body.className += \" dhx_unselectable\";\n document.dhx_unselectable = true;\n }\n\n var lb = scheduler.getLightbox();\n var now = [e.pageX, e.pageY];\n lb.style.top = scheduler._lb_start[1] + now[1] - scheduler._dnd_start_lb[1] + \"px\";\n lb.style.left = scheduler._lb_start[0] + now[0] - scheduler._dnd_start_lb[0] + \"px\";\n }\n };\n\n scheduler._ready_to_dnd = function (e) {\n var lb = scheduler.getLightbox();\n scheduler._lb_start = [parseInt(lb.style.left, 10), parseInt(lb.style.top, 10)];\n scheduler._dnd_start_lb = [e.pageX, e.pageY];\n };\n\n scheduler._finish_dnd = function () {\n if (scheduler._lb_start) {\n scheduler._lb_start = scheduler._dnd_start_lb = false;\n document.body.className = document.body.className.replace(\" dhx_unselectable\", \"\");\n document.dhx_unselectable = false;\n }\n };\n\n scheduler.getLightbox = function () {\n //scheduler.config.wide_form=true;\n if (!this._lightbox) {\n var d = document.createElement(\"div\");\n d.className = \"dhx_cal_light\";\n if (scheduler.config.wide_form) d.className += \" dhx_cal_light_wide\";\n if (scheduler.form_blocks.recurring) d.className += \" dhx_cal_light_rec\";\n if (scheduler.config.rtl) d.className += \" dhx_cal_light_rtl\";\n if (scheduler.config.responsive_lightbox) d.className += \" dhx_cal_light_responsive\";\n d.style.visibility = \"hidden\";\n var html = this._lightbox_template;\n var buttons = this.config.buttons_left;\n var ariaAttr = \"\";\n\n for (var i = 0; i < buttons.length; i++) {\n ariaAttr = this._waiAria.lightboxButtonAttrString(buttons[i]);\n html += \"<div \" + ariaAttr + \" data-action='\" + buttons[i] + \"' class='dhx_btn_set dhx_\" + (scheduler.config.rtl ? \"right\" : \"left\") + \"_btn_set \" + buttons[i] + \"_set'><div class='\" + buttons[i] + \"'></div><div>\" + scheduler.locale.labels[buttons[i]] + \"</div></div>\";\n }\n\n buttons = this.config.buttons_right;\n var rtl = scheduler.config.rtl;\n\n for (var i = 0; i < buttons.length; i++) {\n ariaAttr = this._waiAria.lightboxButtonAttrString(buttons[i]);\n html += \"<div \" + ariaAttr + \" data-action='\" + buttons[i] + \"' class='dhx_btn_set dhx_\" + (rtl ? \"left\" : \"right\") + \"_btn_set \" + buttons[i] + \"_set' style='float:\" + (rtl ? \"left\" : \"right\") + \";'><div class='\" + buttons[i] + \"'></div><div>\" + scheduler.locale.labels[buttons[i]] + \"</div></div>\";\n }\n\n html += \"</div>\";\n d.innerHTML = html;\n\n if (scheduler.config.drag_lightbox) {\n scheduler.event(d.firstChild, \"mousedown\", scheduler._ready_to_dnd);\n scheduler.event(d.firstChild, \"selectstart\", function (e) {\n e.preventDefault();\n return false;\n });\n d.firstChild.style.cursor = \"move\";\n\n scheduler._init_dnd_events();\n }\n\n this._waiAria.lightboxAttr(d);\n\n document.body.insertBefore(d, document.body.firstChild);\n this._lightbox = d;\n var sns = this.config.lightbox.sections;\n html = \"\";\n\n for (var i = 0; i < sns.length; i++) {\n var block = this.form_blocks[sns[i].type];\n if (!block) continue; //ignore incorrect blocks\n\n sns[i].id = \"area_\" + this.uid();\n var button = \"\";\n\n if (sns[i].button) {\n var ariaAttr = scheduler._waiAria.lightboxSectionButtonAttrString(this.locale.labels[\"button_\" + sns[i].button]);\n\n button = \"<div \" + ariaAttr + \" class='dhx_custom_button' data-section-index='\" + i + \"' index='\" + i + \"'><div class='dhx_custom_button_\" + sns[i].button + \"'></div><div>\" + this.locale.labels[\"button_\" + sns[i].button] + \"</div></div>\";\n }\n\n if (this.config.wide_form) {\n html += \"<div class='dhx_wrap_section'>\";\n }\n\n var label_name = this.locale.labels[\"section_\" + sns[i].name];\n\n if (typeof label_name !== \"string\") {\n label_name = sns[i].name;\n }\n\n html += \"<div id='\" + sns[i].id + \"' class='dhx_cal_lsection'>\" + button + \"<label>\" + label_name + \"</label></div>\" + block.render.call(this, sns[i]);\n html += \"</div>\";\n }\n\n var ds = d.getElementsByTagName(\"div\");\n\n for (var i = 0; i < ds.length; i++) {\n var t_ds = ds[i];\n\n var className = scheduler._getClassName(t_ds);\n\n if (className == \"dhx_cal_larea\") {\n t_ds.innerHTML = html;\n break;\n }\n } // bind labels to lightbox inputs\n\n\n scheduler._bindLightboxLabels(sns); //sizes\n\n\n this.setLightboxSize();\n\n this._init_lightbox_events(this);\n\n d.style.display = \"none\";\n d.style.visibility = \"visible\";\n }\n\n return this._lightbox;\n };\n\n scheduler._bindLightboxLabels = function (sections) {\n // link section labels to controls using label[for] attribute and label.onclick=control.focus as a fallback\n // label[for] is preferable for accessibility reasons\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n if (!section.id || !document.getElementById(section.id)) continue;\n var labelBlock = document.getElementById(section.id);\n var label = labelBlock.querySelector(\"label\");\n\n var inputBlock = scheduler._get_lightbox_section_node(section);\n\n while (inputBlock && !inputBlock.querySelector) {\n inputBlock = inputBlock.nextSibling;\n }\n\n var fallback = true;\n\n if (inputBlock) {\n var input = inputBlock.querySelector(\"input, select, textarea\");\n\n if (input) {\n section.inputId = input.id || \"input_\" + scheduler.uid();\n if (!input.id) input.id = section.inputId;\n label.setAttribute(\"for\", section.inputId);\n fallback = false;\n }\n } // use control.focus if failed to bind input using label[for]\n\n\n if (fallback) {\n var control = scheduler.form_blocks[section.type];\n\n if (control.focus) {\n scheduler.event(label, \"click\", function (section) {\n return function () {\n var block = scheduler.form_blocks[section.type];\n\n var node = scheduler._get_lightbox_section_node(section);\n\n if (block && block.focus) block.focus.call(scheduler, node);\n };\n }(section));\n }\n }\n }\n };\n\n scheduler.attachEvent(\"onEventIdChange\", function (old_id, new_id) {\n if (this._lightbox_id == old_id) this._lightbox_id = new_id;\n });\n scheduler._lightbox_template = \"<div class='dhx_cal_ltitle'><span class='dhx_mark'> </span><span class='dhx_time'></span><span class='dhx_title'></span></div><div class='dhx_cal_larea'></div>\";\n}","export default function extend(scheduler) {\n scheduler.getRootView = function () {\n return {\n view: {\n render: function render() {\n return {\n tag: \"div\",\n type: 1,\n attrs: {\n style: \"width:100%;height:100%;\"\n },\n hooks: {\n \"didInsert\": function didInsert() {\n scheduler.setCurrentView();\n }\n },\n body: [{\n el: this.el,\n type: 1\n }]\n };\n },\n init: function init() {\n var container = document.createElement(\"DIV\");\n container.id = \"scheduler_\" + scheduler.uid();\n container.style.width = \"100%\";\n container.style.height = \"100%\";\n container.classList.add(\"dhx_cal_container\");\n container.cmp = \"grid\";\n container.innerHTML = '<div class=\"dhx_cal_navline\">' + '<div class=\"dhx_cal_prev_button\"> </div>' + '<div class=\"dhx_cal_next_button\"> </div>' + '<div class=\"dhx_cal_today_button\"></div>' + '<div class=\"dhx_cal_date\"></div>' + '<div class=\"dhx_cal_tab\" data-tab=\"day\"></div>' + '<div class=\"dhx_cal_tab\" data-tab=\"week\"></div>' + '<div class=\"dhx_cal_tab\" data-tab=\"month\"></div>' + '</div>' + '<div class=\"dhx_cal_header\">' + '</div>' + '<div class=\"dhx_cal_data\">' + '</div>';\n scheduler.init(container);\n this.el = container;\n }\n },\n type: 4\n };\n };\n}","export default function extend(scheduler) {\n if (window.jQuery) {\n (function ($) {\n var counter = 0;\n var methods = [];\n\n $.fn.dhx_scheduler = function (config) {\n if (typeof config === 'string') {\n if (methods[config]) {\n return methods[config].apply(this, []);\n } else {\n $.error('Method ' + config + ' does not exist on jQuery.dhx_scheduler');\n }\n } else {\n var views = [];\n this.each(function () {\n if (this && this.getAttribute) {\n if (!this.getAttribute(\"dhxscheduler\")) {\n var name = \"scheduler\";\n\n if (counter) {\n name = \"scheduler\" + (counter + 1);\n window[name] = Scheduler.getSchedulerInstance();\n }\n\n var comp = window[name];\n this.setAttribute(\"dhxscheduler\", name);\n\n for (var key in config) {\n if (key != \"data\") comp.config[key] = config[key];\n }\n\n if (!this.getElementsByTagName(\"div\").length) {\n this.innerHTML = '<div class=\"dhx_cal_navline\"><div class=\"dhx_cal_prev_button\"> </div><div class=\"dhx_cal_next_button\"> </div><div class=\"dhx_cal_today_button\"></div><div class=\"dhx_cal_date\"></div><div class=\"dhx_cal_tab\" name=\"day_tab\" data-tab=\"day\" style=\"right:204px;\"></div><div class=\"dhx_cal_tab\" name=\"week_tab\" data-tab=\"week\" style=\"right:140px;\"></div><div class=\"dhx_cal_tab\" name=\"month_tab\" data-tab=\"month\" style=\"right:76px;\"></div></div><div class=\"dhx_cal_header\"></div><div class=\"dhx_cal_data\"></div>';\n this.className += \" dhx_cal_container\";\n }\n\n comp.init(this, comp.config.date, comp.config.mode);\n if (config.data) comp.parse(config.data);\n views.push(comp);\n counter++;\n } else views.push(window[this.getAttribute(\"dhxscheduler\")]);\n }\n });\n if (views.length === 1) return views[0];\n return views;\n }\n };\n })(window.jQuery);\n }\n}","import global from \"../global\";\nexport default function extend(scheduler) {\n (function () {\n var setCurrentView = scheduler.setCurrentView,\n updateView = scheduler.updateView;\n var update_view_timer = null,\n curr_view_timer = null;\n\n var lazy_setCurrentView = function lazy_setCurrentView(date, mode) {\n var self = this;\n global.clearTimeout(curr_view_timer);\n global.clearTimeout(update_view_timer);\n var oldDate = self._date,\n oldMode = self._mode;\n updateFlags(this, date, mode);\n curr_view_timer = setTimeout(function () {\n if (!self.callEvent(\"onBeforeViewChange\", [oldMode, oldDate, mode || self._mode, date || self._date])) {\n updateFlags(self, oldDate, oldMode);\n return;\n }\n\n updateView.call(self, date, mode);\n self.callEvent(\"onViewChange\", [self._mode, self._date]);\n global.clearTimeout(update_view_timer);\n curr_view_timer = 0;\n }, scheduler.config.delay_render);\n };\n\n var lazy_updateView = function lazy_updateView(date, mode) {\n var self = this,\n ars = arguments;\n updateFlags(this, date, mode);\n global.clearTimeout(update_view_timer);\n update_view_timer = setTimeout(function () {\n if (curr_view_timer) return;\n updateView.apply(self, ars);\n }, scheduler.config.delay_render);\n };\n\n function updateFlags(scheduler, date, mode) {\n if (date) scheduler._date = date;\n if (mode) scheduler._mode = mode;\n }\n\n scheduler.attachEvent(\"onSchedulerReady\", function () {\n if (scheduler.config.delay_render) {\n scheduler.setCurrentView = lazy_setCurrentView;\n scheduler.updateView = lazy_updateView;\n } else {\n scheduler.setCurrentView = setCurrentView;\n scheduler.updateView = updateView;\n }\n });\n })();\n}","import global from \"../global\";\nexport default function extend(scheduler) {\n /*\r\n if (global.dataProcessor && !dataProcessor.prototype.init_original){\r\n \tdataProcessor.prototype.init_original=dataProcessor.prototype.init;\r\n \tdataProcessor.prototype.init=function(obj){\r\n \t\tthis.init_original(obj);\r\n \t\tobj._dataprocessor=this;\r\n \r\n \t\tthis.setTransactionMode(\"POST\",true);\r\n \t\tthis.serverProcessor+=(this.serverProcessor.indexOf(\"?\")!=-1?\"&\":\"?\")+\"editing=true\";\r\n \t};\r\n }*/\n scheduler.attachEvent(\"onSchedulerReady\", function () {\n if (typeof dhtmlxError !== \"undefined\") {\n window.dhtmlxError.catchError(\"LoadXML\", function (a, b, c) {\n var message = c[0].responseText;\n\n switch (scheduler.config.ajax_error) {\n case \"alert\":\n global.alert(message);\n break;\n\n case \"console\":\n global.console.log(message);\n break;\n\n default:\n break;\n }\n });\n }\n });\n}","import ar from \"./locale_ar\";\nimport be from \"./locale_be\";\nimport ca from \"./locale_ca\";\nimport cn from \"./locale_cn\";\nimport cs from \"./locale_cs\";\nimport da from \"./locale_da\";\nimport de from \"./locale_de\";\nimport el from \"./locale_el\";\nimport en from \"./locale_en\";\nimport es from \"./locale_es\";\nimport fi from \"./locale_fi\";\nimport fr from \"./locale_fr\";\nimport he from \"./locale_he\";\nimport hu from \"./locale_hu\";\nimport id from \"./locale_id\";\nimport it from \"./locale_it\";\nimport jp from \"./locale_jp\";\nimport LocaleManager from \"./locale_manager\";\nimport nb from \"./locale_nb\";\nimport nl from \"./locale_nl\";\nimport no from \"./locale_no\";\nimport pl from \"./locale_pl\";\nimport pt from \"./locale_pt\";\nimport ro from \"./locale_ro\";\nimport ru from \"./locale_ru\";\nimport si from \"./locale_si\";\nimport sk from \"./locale_sk\";\nimport sv from \"./locale_sv\";\nimport tr from \"./locale_tr\";\nimport ua from \"./locale_ua\";\nexport default function () {\n return new LocaleManager({\n en: en,\n ar: ar,\n be: be,\n ca: ca,\n cn: cn,\n cs: cs,\n da: da,\n de: de,\n el: el,\n es: es,\n fi: fi,\n fr: fr,\n he: he,\n hu: hu,\n id: id,\n it: it,\n jp: jp,\n nb: nb,\n nl: nl,\n no: no,\n pl: pl,\n pt: pt,\n ro: ro,\n ru: ru,\n si: si,\n sk: sk,\n sv: sv,\n tr: tr,\n ua: ua\n });\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ExtensionsManager = /*#__PURE__*/function () {\n function ExtensionsManager(config) {\n _classCallCheck(this, ExtensionsManager);\n\n this._extensions = {};\n\n for (var i in config) {\n this._extensions[i] = config[i];\n }\n }\n\n _createClass(ExtensionsManager, [{\n key: \"addExtension\",\n value: function addExtension(name, ext) {\n this._extensions[name] = ext;\n }\n }, {\n key: \"getExtension\",\n value: function getExtension(name) {\n return this._extensions[name];\n }\n }]);\n\n return ExtensionsManager;\n}();\n\nexport { ExtensionsManager as default };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport dhtmlxHook from \"./dhtmlx_hook\";\ndhtmlxHook();\nimport global from \"./global\";\nimport factoryMethod from \"./scheduler_factory_method\";\nimport ExtensionsManager from \"./ext/extension_manager\";\n\nvar SchedulerFactory = /*#__PURE__*/function () {\n function SchedulerFactory(extensions) {\n _classCallCheck(this, SchedulerFactory);\n\n this._seed = 0;\n this._schedulerPlugins = [];\n this._bundledExtensions = extensions;\n this._extensionsManager = new ExtensionsManager(extensions);\n }\n\n _createClass(SchedulerFactory, [{\n key: \"plugin\",\n value: function plugin(code) {\n this._schedulerPlugins.push(code);\n\n if (global.scheduler) {\n code(global.scheduler);\n }\n }\n }, {\n key: \"getSchedulerInstance\",\n value: function getSchedulerInstance(initConfig) {\n var scheduler = factoryMethod(this._extensionsManager);\n\n for (var i = 0; i < this._schedulerPlugins.length; i++) {\n this._schedulerPlugins[i](scheduler);\n }\n\n scheduler._internal_id = this._seed++;\n\n if (this.$syncFactory) {\n this.$syncFactory(scheduler);\n }\n\n if (initConfig) {\n this._initFromConfig(scheduler, initConfig);\n }\n\n return scheduler;\n }\n }, {\n key: \"_initFromConfig\",\n value: function _initFromConfig(scheduler, initConfig) {\n if (initConfig.plugins) {\n scheduler.plugins(initConfig.plugins);\n }\n\n if (initConfig.config) {\n scheduler.mixin(scheduler.config, initConfig.config, true);\n }\n\n if (initConfig.templates) {\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n scheduler.mixin(scheduler.templates, initConfig.templates, true);\n }, {\n once: true\n });\n }\n\n if (initConfig.events) {\n for (var event in initConfig.events) {\n scheduler.attachEvent(event, initConfig.events[event]);\n }\n }\n\n if (initConfig.locale) {\n scheduler.i18n.setLocale(initConfig.locale);\n }\n\n if (Array.isArray(initConfig.calendars)) {\n initConfig.calendars.forEach(function (calendar) {\n scheduler.addCalendar(calendar);\n });\n }\n\n if (initConfig.container) {\n scheduler.init(initConfig.container);\n } else {\n scheduler.init();\n }\n\n if (initConfig.data) {\n if (typeof initConfig.data === \"string\") {\n scheduler.load(initConfig.data);\n } else {\n scheduler.parse(initConfig.data);\n }\n }\n }\n }]);\n\n return SchedulerFactory;\n}();\n\nexport default SchedulerFactory;","export default {\n alert: function alert(extension, assert) {\n assert(false, \"The \".concat(extension, \" extension is not included in this version of dhtmlxScheduler.<br>\\n\\t\\tYou may need a <a href=\\\"https://docs.dhtmlx.com/scheduler/editions_comparison.html\\\" target=\\\"_blank\\\">Professional version of the component</a>.<br>\\n\\t\\tContact us at <a href=\\\"https://dhtmlx.com/docs/contact.shtml\\\" target=\\\"_blank\\\">https://dhtmlx.com/docs/contact.shtml</a> if you have any questions.\"));\n }\n};","export default function (scheduler) {\n (function () {\n var modalsStack = [];\n\n function isModal() {\n return !!modalsStack.length;\n }\n\n function isChildOf(child, parent) {\n while (child && child != parent) {\n child = child.parentNode;\n }\n\n return !!(child == parent);\n }\n\n function afterPopup(box) {\n setTimeout(function () {\n if (!isModal() && !isChildOf(document.activeElement, scheduler.$container)) {\n scheduler.focus();\n }\n }, 1);\n }\n\n function startModal(box) {\n scheduler.eventRemove(box, \"keydown\", trapFocus);\n scheduler.event(box, \"keydown\", trapFocus);\n modalsStack.push(box); //scheduler.$keyboardNavigation.dispatcher.disable();\n }\n\n function endModal() {\n var box = modalsStack.pop();\n\n if (box) {\n scheduler.eventRemove(box, \"keydown\", trapFocus);\n }\n\n afterPopup(box);\n }\n\n function isTopModal(box) {\n //\tif(dhtmlx._modalsStack.length){\n //\t\treturn box == dhtmlx._modalsStack[dhtmlx._modalsStack.length - 1];\n //\t}else{\n return box == modalsStack[modalsStack.length - 1]; //\t}\n }\n\n function trapFocus(event) {\n var event = event || window.event;\n var target = event.currentTarget;\n if (!isTopModal(target)) return;\n scheduler.$keyboardNavigation.trapFocus(target, event);\n }\n\n function traceLightbox() {\n startModal(scheduler.getLightbox());\n }\n\n scheduler.attachEvent(\"onLightbox\", traceLightbox);\n scheduler.attachEvent(\"onAfterLightbox\", endModal);\n scheduler.attachEvent(\"onAfterQuickInfo\", function () {\n afterPopup();\n });\n\n if (!scheduler._keyNavMessagePopup) {\n scheduler._keyNavMessagePopup = true;\n var focusElement = null;\n var backupFocus = null;\n var _modalsStack = [];\n scheduler.attachEvent(\"onMessagePopup\", function (box) {\n focusElement = document.activeElement;\n backupFocus = focusElement;\n\n while (backupFocus && scheduler._getClassName(backupFocus).indexOf(\"dhx_cal_data\") < 0) {\n backupFocus = backupFocus.parentNode;\n }\n\n if (backupFocus) {\n backupFocus = backupFocus.parentNode;\n }\n\n scheduler.eventRemove(box, \"keydown\", trapFocus);\n scheduler.event(box, \"keydown\", trapFocus);\n\n _modalsStack.push(box);\n });\n scheduler.attachEvent(\"onAfterMessagePopup\", function () {\n var box = _modalsStack.pop();\n\n if (box) {\n scheduler.eventRemove(box, \"keydown\", trapFocus);\n }\n\n setTimeout(function () {\n var currentTarget = document.activeElement;\n\n while (currentTarget && scheduler._getClassName(currentTarget).indexOf(\"dhx_cal_light\") < 0) {\n currentTarget = currentTarget.parentNode;\n }\n\n if (currentTarget) return;\n\n if (focusElement && focusElement.parentNode) {\n focusElement.focus();\n } else if (backupFocus && backupFocus.parentNode) {\n backupFocus.focus();\n }\n\n focusElement = null;\n backupFocus = null;\n }, 1);\n });\n }\n\n scheduler.$keyboardNavigation.isModal = isModal;\n })();\n}","export default function (scheduler) {\n //Initial idea and implementation by Steve MC\n scheduler._temp_key_scope = function () {\n scheduler.config.key_nav = true;\n scheduler.$keyboardNavigation._pasteDate = null; // used for copy and paste operations\n\n scheduler.$keyboardNavigation._pasteSection = null; // used for copy and paste operations\n\n var isCopy = null;\n var pos = {};\n\n if (!document.body) {\n scheduler.event(window, \"load\", function () {\n scheduler.event(document.body, \"mousemove\", trackMousePosition);\n });\n } else {\n scheduler.event(document.body, \"mousemove\", trackMousePosition);\n }\n\n function trackMousePosition(event) {\n event = event || window.event;\n pos.x = event.clientX;\n pos.y = event.clientY;\n }\n\n function currentTarget() {\n var mousePointer = false;\n var keyNavPointer = false;\n var target = document.elementFromPoint(pos.x, pos.y);\n\n while (target && target != scheduler._obj) {\n target = target.parentNode;\n }\n\n mousePointer = !!(target == scheduler._obj);\n keyNavPointer = scheduler.$keyboardNavigation.dispatcher.isEnabled();\n return mousePointer || keyNavPointer;\n }\n\n scheduler.attachEvent(\"onMouseMove\", function (id, e) {\n var state = scheduler.getState(); // make sure scheduler is fully initialized before calling scheduler.getActionData\n\n if (!(state.mode && state.min_date)) {\n return;\n }\n\n var position = scheduler.getActionData(e);\n scheduler.$keyboardNavigation._pasteDate = position.date;\n scheduler.$keyboardNavigation._pasteSection = position.section;\n });\n\n function clear_event_after(ev) {\n delete ev.rec_type;\n delete ev.rec_pattern;\n delete ev.event_pid;\n delete ev.event_length;\n }\n\n function copyEvent(ev) {\n return scheduler._lame_copy({}, ev);\n }\n\n scheduler._make_pasted_event = function (ev) {\n var date = scheduler.$keyboardNavigation._pasteDate;\n var section = scheduler.$keyboardNavigation._pasteSection;\n var event_duration = ev.end_date - ev.start_date;\n var copy = copyEvent(ev);\n clear_event_after(copy);\n copy.start_date = new Date(date);\n copy.end_date = new Date(copy.start_date.valueOf() + event_duration);\n\n if (section) {\n var property = scheduler._get_section_property();\n\n if (scheduler.config.multisection) copy[property] = ev[property]; // save initial set of resources for multisection view\n else copy[property] = section;\n }\n\n return copy;\n };\n\n scheduler._do_paste = function (is_copy, modified_ev, original_ev) {\n if (scheduler.callEvent(\"onBeforeEventPasted\", [is_copy, modified_ev, original_ev]) === false) {\n return;\n }\n\n scheduler.addEvent(modified_ev);\n scheduler.callEvent(\"onEventPasted\", [is_copy, modified_ev, original_ev]);\n };\n\n scheduler._is_key_nav_active = function () {\n if (this._is_initialized() && !this._is_lightbox_open() && this.config.key_nav) {\n return true;\n }\n\n return false;\n };\n\n function getSelectedEvent() {\n var node = scheduler.$keyboardNavigation.dispatcher.getActiveNode();\n if (node && node.eventId) return node.eventId;\n return scheduler._select_id;\n }\n\n scheduler.event(document, \"keydown\", function (e) {\n // compatibility fix - scheduler focus on ctrl+v on mouse hover\n if ((e.ctrlKey || e.metaKey) && e.keyCode == 86 && scheduler._buffer_event && !scheduler.$keyboardNavigation.dispatcher.isEnabled()) {\n scheduler.$keyboardNavigation.dispatcher.isActive = currentTarget();\n }\n });\n\n scheduler._key_nav_copy_paste = function (e) {\n if (!scheduler._is_key_nav_active()) return true;\n\n if (e.keyCode == 37 || e.keyCode == 39) {\n // Left, Right arrows\n e.cancelBubble = true;\n var next = scheduler.date.add(scheduler._date, e.keyCode == 37 ? -1 : 1, scheduler._mode);\n scheduler.setCurrentView(next);\n return true;\n }\n\n var select_id = getSelectedEvent();\n\n if ((e.ctrlKey || e.metaKey) && e.keyCode == 67) {\n // CTRL+C\n if (select_id) {\n scheduler._buffer_event = copyEvent(scheduler.getEvent(select_id));\n isCopy = true;\n scheduler.callEvent(\"onEventCopied\", [scheduler.getEvent(select_id)]);\n }\n\n return true;\n }\n\n if ((e.ctrlKey || e.metaKey) && e.keyCode == 88) {\n // CTRL+X\n if (select_id) {\n isCopy = false;\n var ev = scheduler._buffer_event = copyEvent(scheduler.getEvent(select_id));\n scheduler.updateEvent(ev.id);\n scheduler.callEvent(\"onEventCut\", [ev]);\n }\n }\n\n if ((e.ctrlKey || e.metaKey) && e.keyCode == 86 && currentTarget(e)) {\n // CTRL+V\n var ev = scheduler._buffer_event ? scheduler.getEvent(scheduler._buffer_event.id) : scheduler._buffer_event;\n ev = ev || scheduler._buffer_event;\n\n if (ev) {\n var new_ev = scheduler._make_pasted_event(ev);\n\n if (isCopy) {\n new_ev.id = scheduler.uid();\n\n scheduler._do_paste(isCopy, new_ev, ev);\n } else {\n // cut operation\n var res = scheduler.callEvent(\"onBeforeEventChanged\", [new_ev, e, false, ev]);\n\n if (res) {\n scheduler._do_paste(isCopy, new_ev, ev);\n\n isCopy = true; // switch to copy after first paste operation\n }\n }\n }\n\n return true;\n }\n };\n };\n\n scheduler._temp_key_scope();\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.attachSchedulerHandlers = function () {\n var dispatcher = scheduler.$keyboardNavigation.dispatcher;\n\n var keyDownHandler = function keyDownHandler(e) {\n if (!scheduler.config.key_nav) return;\n return dispatcher.keyDownHandler(e);\n };\n\n var focusHandler = function focusHandler() {\n dispatcher.keepScrollPosition(function () {\n dispatcher.focusGlobalNode();\n });\n };\n\n var waitCall;\n scheduler.attachEvent(\"onDataRender\", function () {\n if (!scheduler.config.key_nav) return;\n if (!(dispatcher.isEnabled() && !scheduler.getState().editor_id)) return;\n clearTimeout(waitCall);\n waitCall = setTimeout(function () {\n if (!dispatcher.isEnabled()) dispatcher.enable();\n reFocusActiveNode();\n });\n });\n\n var reFocusActiveNode = function reFocusActiveNode() {\n if (!dispatcher.isEnabled()) return;\n var activeNode = dispatcher.getActiveNode();\n if (!activeNode) return;\n\n if (!activeNode.isValid()) {\n activeNode = activeNode.fallback();\n }\n\n if (!activeNode || activeNode instanceof scheduler.$keyboardNavigation.MinicalButton || activeNode instanceof scheduler.$keyboardNavigation.MinicalCell) return;\n dispatcher.keepScrollPosition(function () {\n activeNode.focus(true);\n });\n };\n\n scheduler.attachEvent(\"onSchedulerReady\", function () {\n var container = scheduler.$container;\n scheduler.eventRemove(document, \"keydown\", keyDownHandler);\n scheduler.eventRemove(container, \"mousedown\", mousedownHandler);\n scheduler.eventRemove(container, \"focus\", focusHandler);\n\n if (scheduler.config.key_nav) {\n scheduler.event(document, \"keydown\", keyDownHandler);\n scheduler.event(container, \"mousedown\", mousedownHandler);\n scheduler.event(container, \"focus\", focusHandler);\n container.setAttribute(\"tabindex\", \"0\");\n } else {\n container.removeAttribute(\"tabindex\");\n }\n });\n\n function mousedownHandler(e) {\n if (!scheduler.config.key_nav) return true;\n var dataAreaClick = scheduler.$keyboardNavigation.isChildOf(e.target || e.srcElement, scheduler.$container.querySelector(\".dhx_cal_data\"));\n var pos = scheduler.getActionData(e);\n var focusNode;\n\n if (scheduler._locate_event(e.target || e.srcElement)) {\n focusNode = new scheduler.$keyboardNavigation.Event(scheduler._locate_event(e.target || e.srcElement));\n } else if (dataAreaClick) {\n focusNode = new scheduler.$keyboardNavigation.TimeSlot();\n\n if (pos.date && dataAreaClick) {\n focusNode = focusNode.nextSlot(new scheduler.$keyboardNavigation.TimeSlot(pos.date, null, pos.section));\n }\n }\n\n if (focusNode) {\n if (!dispatcher.isEnabled()) {\n dispatcher.activeNode = focusNode;\n } else {\n if (pos.date && dataAreaClick) {\n dispatcher.delay(function () {\n dispatcher.setActiveNode(focusNode);\n });\n }\n }\n }\n }\n\n function focusEvent(evNode) {\n if (!scheduler.config.key_nav) return;\n if (!dispatcher.isEnabled()) return;\n var prevState = evNode;\n var focusNode = new scheduler.$keyboardNavigation.Event(prevState.eventId);\n\n if (!focusNode.isValid()) {\n var lastStart = focusNode.start || prevState.start;\n var lastEnd = focusNode.end || prevState.end;\n var lastSection = focusNode.section || prevState.section;\n focusNode = new scheduler.$keyboardNavigation.TimeSlot(lastStart, lastEnd, lastSection);\n\n if (!focusNode.isValid()) {\n focusNode = new scheduler.$keyboardNavigation.TimeSlot();\n }\n }\n\n dispatcher.setActiveNode(focusNode);\n var node = dispatcher.getActiveNode();\n\n if (node && node.getNode && document.activeElement != node.getNode()) {\n dispatcher.focusNode(dispatcher.getActiveNode());\n }\n }\n\n var updateEvent = scheduler.updateEvent;\n\n scheduler.updateEvent = function (id) {\n var res = updateEvent.apply(this, arguments);\n\n if (scheduler.config.key_nav && dispatcher.isEnabled()) {\n if (scheduler.getState().select_id == id) {\n var element = new scheduler.$keyboardNavigation.Event(id);\n\n if (!scheduler.getState().lightbox_id) {\n focusEvent(element);\n }\n }\n }\n\n return res;\n };\n\n scheduler.attachEvent(\"onEventDeleted\", function (id) {\n if (!scheduler.config.key_nav) return true;\n\n if (dispatcher.isEnabled()) {\n var activeNode = dispatcher.getActiveNode();\n\n if (activeNode.eventId == id) {\n dispatcher.setActiveNode(new scheduler.$keyboardNavigation.TimeSlot());\n }\n }\n\n return true;\n });\n scheduler.attachEvent(\"onClearAll\", function () {\n if (!scheduler.config.key_nav) return true;\n\n if (dispatcher.isEnabled()) {\n if (dispatcher.getActiveNode() instanceof scheduler.$keyboardNavigation.Event) {\n dispatcher.setActiveNode(new scheduler.$keyboardNavigation.TimeSlot());\n }\n }\n });\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function (scheduler) {\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n this.layers.sort(function (a, b) {\n return a.zIndex - b.zIndex;\n });\n\n scheduler._dp_init = function (dp) {\n dp._methods = [\"_set_event_text_style\", \"\", \"changeEventId\", \"deleteEvent\"];\n this.attachEvent(\"onEventAdded\", function (id) {\n if (!this._loading && this.validId(id) && this.getEvent(id) && this.getEvent(id).layer == dp.layer) dp.setUpdated(id, true, \"inserted\");\n });\n this.attachEvent(\"onBeforeEventDelete\", function (id) {\n if (this.getEvent(id) && this.getEvent(id).layer == dp.layer) {\n if (!this.validId(id)) return;\n var z = dp.getState(id);\n\n if (z == \"inserted\" || this._new_event) {\n dp.setUpdated(id, false);\n return true;\n }\n\n if (z == \"deleted\") return false;\n if (z == \"true_deleted\") return true;\n dp.setUpdated(id, true, \"deleted\");\n return false;\n } else return true;\n });\n this.attachEvent(\"onEventChanged\", function (id) {\n if (!this._loading && this.validId(id) && this.getEvent(id) && this.getEvent(id).layer == dp.layer) dp.setUpdated(id, true, \"updated\");\n });\n\n dp._getRowData = function (id, pref) {\n var ev = this.obj.getEvent(id);\n var data = {};\n\n for (var a in ev) {\n if (a.indexOf(\"_\") === 0) continue;\n if (ev[a] && ev[a].getUTCFullYear) //not very good, but will work\n data[a] = this.obj._helpers.formatDate(ev[a]);else data[a] = ev[a];\n }\n\n return data;\n };\n\n dp._clearUpdateFlag = function () {};\n\n dp.attachEvent(\"insertCallback\", scheduler._update_callback);\n dp.attachEvent(\"updateCallback\", scheduler._update_callback);\n dp.attachEvent(\"deleteCallback\", function (upd, id) {\n this.obj.setUserData(id, this.action_param, \"true_deleted\");\n this.obj.deleteEvent(id);\n });\n };\n\n (function () {\n var _cloneObj = function _cloneObj(obj) {\n if (obj === null || _typeof(obj) != 'object') return obj;\n var temp = new obj.constructor();\n\n for (var key in obj) {\n temp[key] = _cloneObj(obj[key]);\n }\n\n return temp;\n };\n\n scheduler._dataprocessors = [];\n scheduler._layers_zindex = {};\n\n for (var i = 0; i < scheduler.layers.length; i++) {\n scheduler.config['lightbox_' + scheduler.layers[i].name] = {};\n scheduler.config['lightbox_' + scheduler.layers[i].name].sections = _cloneObj(scheduler.config.lightbox.sections);\n scheduler._layers_zindex[scheduler.layers[i].name] = scheduler.config.initial_layer_zindex || 5 + i * 3;\n\n if (scheduler.layers[i].url) {\n var dp = scheduler.createDataProcessor({\n url: scheduler.layers[i].url\n });\n dp.layer = scheduler.layers[i].name;\n\n scheduler._dataprocessors.push(dp);\n\n scheduler._dataprocessors[i].init(scheduler);\n }\n\n if (scheduler.layers[i].isDefault) scheduler.defaultLayer = scheduler.layers[i].name;\n }\n })();\n\n scheduler.showLayer = function (tlayer) {\n this.toggleLayer(tlayer, true);\n };\n\n scheduler.hideLayer = function (tlayer) {\n this.toggleLayer(tlayer, false);\n };\n\n scheduler.toggleLayer = function (tlayer, visible) {\n // visible is optional\n var layer = this.getLayer(tlayer);\n if (typeof visible != 'undefined') layer.visible = !!visible;else layer.visible = !layer.visible;\n this.setCurrentView(this._date, this._mode);\n };\n\n scheduler.getLayer = function (tlayer) {\n // either string with layer name or event with layer property\n var layer, layer_name;\n if (typeof tlayer == 'string') layer_name = tlayer;\n if (_typeof(tlayer) == 'object') layer_name = tlayer.layer;\n\n for (var i = 0; i < scheduler.layers.length; i++) {\n if (scheduler.layers[i].name == layer_name) layer = scheduler.layers[i];\n }\n\n return layer;\n };\n\n scheduler.attachEvent(\"onBeforeLightbox\", function (event_id) {\n var ev = this.getEvent(event_id);\n this.config.lightbox.sections = this.config['lightbox_' + ev.layer].sections;\n scheduler.resetLightbox();\n return true;\n });\n scheduler.attachEvent(\"onClick\", function (event_id, native_event_object) {\n var ev = scheduler.getEvent(event_id);\n return !scheduler.getLayer(ev.layer).noMenu;\n });\n scheduler.attachEvent('onEventCollision', function (ev, evs) {\n var layer = this.getLayer(ev);\n if (!layer.checkCollision) return false;\n var count = 0;\n\n for (var i = 0; i < evs.length; i++) {\n if (evs[i].layer == layer.name && evs[i].id != ev.id) count++;\n }\n\n return count >= scheduler.config.collision_limit;\n });\n\n scheduler.addEvent = function (start_date, end_date, text, id, extra_data) {\n var ev = start_date;\n\n if (arguments.length != 1) {\n ev = extra_data || {};\n ev.start_date = start_date;\n ev.end_date = end_date;\n ev.text = text;\n ev.id = id;\n ev.layer = this.defaultLayer;\n }\n\n ev.id = ev.id || scheduler.uid();\n ev.text = ev.text || \"\";\n if (typeof ev.start_date == \"string\") ev.start_date = this.templates.api_date(ev.start_date);\n if (typeof ev.end_date == \"string\") ev.end_date = this.templates.api_date(ev.end_date);\n ev._timed = this.isOneDayEvent(ev);\n var is_new = !this._events[ev.id];\n this._events[ev.id] = ev;\n this.event_updated(ev);\n if (!this._loading) this.callEvent(is_new ? \"onEventAdded\" : \"onEventChanged\", [ev.id, ev]);\n };\n\n this._evs_layer = {};\n\n for (var i = 0; i < this.layers.length; i++) {\n // array in object for each layer\n this._evs_layer[this.layers[i].name] = [];\n }\n\n scheduler.addEventNow = function (start, end, e) {\n var base = {};\n\n if (_typeof(start) == \"object\") {\n base = start;\n start = null;\n }\n\n var d = (this.config.event_duration || this.config.time_step) * 60000;\n if (!start) start = Math.round(scheduler._currentDate().valueOf() / d) * d;\n var start_date = new Date(start);\n\n if (!end) {\n var start_hour = this.config.first_hour;\n\n if (start_hour > start_date.getHours()) {\n start_date.setHours(start_hour);\n start = start_date.valueOf();\n }\n\n end = start + d;\n }\n\n base.start_date = base.start_date || start_date;\n base.end_date = base.end_date || new Date(end);\n base.text = base.text || this.locale.labels.new_event;\n base.id = this._drag_id = this.uid();\n base.layer = this.defaultLayer;\n this._drag_mode = \"new-size\";\n this._loading = true;\n this.addEvent(base);\n this.callEvent(\"onEventCreated\", [this._drag_id, e]);\n this._loading = false;\n this._drag_event = {}; //dummy , to trigger correct event updating logic\n\n this._on_mouse_up(e);\n };\n\n scheduler._t_render_view_data = function (events) {\n // helper\n if (this.config.multi_day && !this._table_view) {\n var tvs = [];\n var tvd = [];\n\n for (var k = 0; k < events.length; k++) {\n if (events[k]._timed) tvs.push(events[k]);else tvd.push(events[k]);\n }\n\n this._table_view = true;\n this.render_data(tvd);\n this._table_view = false;\n this.render_data(tvs);\n } else this.render_data(events);\n };\n\n scheduler.render_view_data = function () {\n if (this._not_render) {\n this._render_wait = true;\n return;\n }\n\n this._render_wait = false;\n this.clear_view();\n this._evs_layer = {};\n\n for (var i = 0; i < this.layers.length; i++) {\n // array in object for each layer\n this._evs_layer[this.layers[i].name] = [];\n }\n\n var evs = this.get_visible_events();\n\n for (var i = 0; i < evs.length; i++) {\n // filling layer arrays with events\n if (this._evs_layer[evs[i].layer]) this._evs_layer[evs[i].layer].push(evs[i]);\n }\n\n if (this._mode == 'month') {\n // old logic is used\n var tevs = [];\n\n for (var i = 0; i < this.layers.length; i++) {\n if (this.layers[i].visible) tevs = tevs.concat(this._evs_layer[this.layers[i].name]);\n }\n\n this._t_render_view_data(tevs);\n } else {\n // week, day; should use new logic\n for (var i = 0; i < this.layers.length; i++) {\n if (this.layers[i].visible) {\n var evs_layer = this._evs_layer[this.layers[i].name];\n\n this._t_render_view_data(evs_layer);\n }\n }\n }\n };\n\n scheduler._render_v_bar = function (ev, x, y, w, h, style, contentA, contentB, bottom) {\n var id = ev.id;\n if (contentA.indexOf('<div class=') == -1) contentA = scheduler.templates['event_header_' + ev.layer] ? scheduler.templates['event_header_' + ev.layer](ev.start_date, ev.end_date, ev) : contentA;\n if (contentB.indexOf('<div class=') == -1) contentB = scheduler.templates['event_text_' + ev.layer] ? scheduler.templates['event_text_' + ev.layer](ev.start_date, ev.end_date, ev) : contentB;\n var d = document.createElement(\"div\");\n var cs = \"dhx_cal_event\";\n var cse = scheduler.templates['event_class_' + ev.layer] ? scheduler.templates['event_class_' + ev.layer](ev.start_date, ev.end_date, ev) : scheduler.templates.event_class(ev.start_date, ev.end_date, ev);\n if (cse) cs = cs + \" \" + cse;\n\n var borderBox = scheduler._border_box_events();\n\n var borderBoxWidth = w - 2;\n var boxWidth = borderBox ? borderBoxWidth : w - 4,\n headerWidth = borderBox ? borderBoxWidth : w - 6,\n bodyWidth = borderBox ? borderBoxWidth : w - (this._quirks ? 4 : 14),\n footerWidth = borderBox ? borderBoxWidth - 2 : w - 8;\n var bodyHeight = borderBox ? h - this.xy.event_header_height : h - (this._quirks ? 20 : 30) + 1;\n var html = '<div event_id=\"' + id + '\" ' + scheduler.config.event_attribute + '=\"' + id + '\" class=\"' + cs + '\" style=\"position:absolute; top:' + y + 'px; left:' + x + 'px; width:' + boxWidth + 'px; height:' + h + 'px;' + (style || \"\") + '\">';\n html += '<div class=\"dhx_header\" style=\" width:' + headerWidth + 'px;\" > </div>';\n html += '<div class=\"dhx_title\">' + contentA + '</div>';\n html += '<div class=\"dhx_body\" style=\" width:' + bodyWidth + 'px; height:' + bodyHeight + 'px;\">' + contentB + '</div>';\n html += '<div class=\"dhx_footer\" style=\" width:' + footerWidth + 'px;' + (bottom ? ' margin-top:-1px;' : '') + '\" ></div></div>';\n d.innerHTML = html;\n d.style.zIndex = 100;\n return d.firstChild;\n };\n\n scheduler.render_event_bar = function (ev) {\n var parent = this._els[\"dhx_cal_data\"][0];\n var x = this._colsS[ev._sday];\n var x2 = this._colsS[ev._eday];\n if (x2 == x) x2 = this._colsS[ev._eday + 1];\n var hb = this.xy.bar_height;\n var y = this._colsS.heights[ev._sweek] + (this._colsS.height ? this.xy.month_scale_height + 2 : 2) + ev._sorder * hb;\n var d = document.createElement(\"div\");\n var cs = ev._timed ? \"dhx_cal_event_clear\" : \"dhx_cal_event_line\";\n var cse = scheduler.templates['event_class_' + ev.layer] ? scheduler.templates['event_class_' + ev.layer](ev.start_date, ev.end_date, ev) : scheduler.templates.event_class(ev.start_date, ev.end_date, ev);\n if (cse) cs = cs + \" \" + cse;\n 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 || \"\") + '\">';\n if (ev._timed) html += scheduler.templates['event_bar_date_' + ev.layer] ? scheduler.templates['event_bar_date_' + ev.layer](ev.start_date, ev.end_date, ev) : scheduler.templates.event_bar_date(ev.start_date, ev.end_date, ev);\n html += scheduler.templates['event_bar_text_' + ev.layer] ? scheduler.templates['event_bar_text_' + ev.layer](ev.start_date, ev.end_date, ev) : scheduler.templates.event_bar_text(ev.start_date, ev.end_date, ev) + '</div>)';\n html += '</div>';\n d.innerHTML = html;\n\n this._rendered.push(d.firstChild);\n\n parent.appendChild(d.firstChild);\n };\n\n scheduler.render_event = function (ev) {\n var menu = scheduler.xy.menu_width;\n if (scheduler.getLayer(ev.layer).noMenu) menu = 0;\n if (ev._sday < 0) return; //can occur in case of recurring event during time shift\n\n var parent = scheduler.locate_holder(ev._sday);\n if (!parent) return; //attempt to render non-visible event\n\n var sm = ev.start_date.getHours() * 60 + ev.start_date.getMinutes();\n var em = ev.end_date.getHours() * 60 + ev.end_date.getMinutes() || scheduler.config.last_hour * 60;\n var top = Math.round((sm * 60 * 1000 - this.config.first_hour * 60 * 60 * 1000) * this.config.hour_size_px / (60 * 60 * 1000)) % (this.config.hour_size_px * 24) + 1; //42px/hour\n\n var height = Math.max(scheduler.xy.min_event_height, (em - sm) * this.config.hour_size_px / 60) + 1; //42px/hour\n //var height = Math.max(25,Math.round((ev.end_date.valueOf()-ev.start_date.valueOf())*(this.config.hour_size_px+(this._quirks?1:0))/(60*60*1000))); //42px/hour\n\n var width = Math.floor((parent.clientWidth - menu) / ev._count);\n var left = ev._sorder * width + 1;\n if (!ev._inner) width = width * (ev._count - ev._sorder);\n\n var d = this._render_v_bar(ev.id, menu + left, top, width, height, ev._text_style, scheduler.templates.event_header(ev.start_date, ev.end_date, ev), scheduler.templates.event_text(ev.start_date, ev.end_date, ev));\n\n this._rendered.push(d);\n\n parent.appendChild(d);\n left = left + parseInt(parent.style.left, 10) + menu;\n top += this._dy_shift; //corrupt top, to include possible multi-day shift\n\n d.style.zIndex = this._layers_zindex[ev.layer];\n\n if (this._edit_id == ev.id) {\n d.style.zIndex = parseInt(d.style.zIndex) + 1; //fix overlapping issue\n\n var new_zIndex = d.style.zIndex;\n width = Math.max(width - 4, scheduler.xy.editor_width);\n var d = document.createElement(\"div\");\n d.setAttribute(\"event_id\", ev.id); // for backward compatibility\n\n d.setAttribute(this.config.event_attribute, ev.id);\n this.set_xy(d, width, height - 20, left, top + 14);\n d.className = \"dhx_cal_editor\";\n d.style.zIndex = new_zIndex;\n var d2 = document.createElement(\"div\");\n this.set_xy(d2, width - 6, height - 26);\n d2.style.cssText += \";margin:2px 2px 2px 2px;overflow:hidden;\";\n d2.style.zIndex = new_zIndex;\n d.appendChild(d2);\n\n this._els[\"dhx_cal_data\"][0].appendChild(d);\n\n this._rendered.push(d);\n\n d2.innerHTML = \"<textarea class='dhx_cal_editor'>\" + ev.text + \"</textarea>\";\n if (this._quirks7) d2.firstChild.style.height = height - 12 + \"px\"; //IEFIX\n\n this._editor = d2.firstChild;\n\n this._editor.addEventListener(\"keypress\", function (e) {\n if (e.shiftKey) return true;\n var code = e.keyCode;\n if (code == scheduler.keys.edit_save) scheduler.editStop(true);\n if (code == scheduler.keys.edit_cancel) scheduler.editStop(false);\n });\n\n this._editor.addEventListener(\"selectstart\", function (e) {\n e.cancelBubble = true;\n return true;\n });\n\n d2.firstChild.focus(); //IE and opera can add x-scroll during focusing\n\n this._els[\"dhx_cal_data\"][0].scrollLeft = 0;\n d2.firstChild.select();\n }\n\n if (this._select_id == ev.id) {\n d.style.zIndex = parseInt(d.style.zIndex) + 1; //fix overlapping issue\n\n var icons = this.config[\"icons_\" + (this._edit_id == ev.id ? \"edit\" : \"select\")];\n var icons_str = \"\";\n\n for (var i = 0; i < icons.length; i++) {\n icons_str += \"<div class='dhx_menu_icon \" + icons[i] + \"' title='\" + this.locale.labels[icons[i]] + \"'></div>\";\n }\n\n var obj = this._render_v_bar(ev.id, left - menu + 1, top, menu, icons.length * 20 + 26, \"\", \"<div class='dhx_menu_head'></div>\", icons_str, true);\n\n obj.style.left = left - menu + 1;\n obj.style.zIndex = d.style.zIndex;\n\n this._els[\"dhx_cal_data\"][0].appendChild(obj);\n\n this._rendered.push(obj);\n }\n };\n\n scheduler.filter_agenda = function (id, event) {\n var layer = scheduler.getLayer(event.layer);\n return layer && layer.visible;\n };\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function (scheduler) {\n scheduler.config.limit_start = null;\n scheduler.config.limit_end = null;\n scheduler.config.limit_view = false;\n scheduler.config.check_limits = true;\n scheduler.config.mark_now = true;\n scheduler.config.display_marked_timespans = true;\n scheduler.config.overwrite_marked_timespans = true;\n\n scheduler._temp_limit_scope = function () {\n var before = null;\n var dhx_time_block = \"dhx_time_block\";\n var default_timespan_type = \"default\";\n\n var fix_options = function fix_options(options, days, zones) {\n if (days instanceof Date && zones instanceof Date) {\n options.start_date = days;\n options.end_date = zones;\n } else {\n options.days = days;\n options.zones = zones;\n }\n\n return options;\n };\n\n var get_resulting_options = function get_resulting_options(days, zones, sections) {\n var options = _typeof(days) == \"object\" ? days : {\n days: days\n };\n options.type = dhx_time_block;\n options.css = \"\";\n\n if (zones) {\n if (sections) options.sections = sections;\n options = fix_options(options, days, zones);\n }\n\n return options;\n };\n\n scheduler.blockTime = function (days, zones, sections) {\n var options = get_resulting_options(days, zones, sections);\n return scheduler.addMarkedTimespan(options);\n };\n\n scheduler.unblockTime = function (days, zones, sections) {\n zones = zones || \"fullday\";\n var options = get_resulting_options(days, zones, sections);\n return scheduler.deleteMarkedTimespan(options);\n };\n\n scheduler.attachEvent(\"onBeforeViewChange\", function (om, od, nm, nd) {\n function isBlocked(date, mode) {\n var limit_start = scheduler.config.limit_start,\n limit_end = scheduler.config.limit_end,\n date_end = scheduler.date.add(date, 1, mode);\n return date.valueOf() > limit_end.valueOf() || date_end <= limit_start.valueOf();\n }\n\n if (scheduler.config.limit_view) {\n nd = nd || od;\n nm = nm || om;\n\n if (isBlocked(nd, nm) && !(od.valueOf() == nd.valueOf())) {\n setTimeout(function () {\n var resetDate = !isBlocked(od, nm) ? od : scheduler.config.limit_start;\n scheduler.setCurrentView(!isBlocked(resetDate, nm) ? resetDate : null, nm);\n }, 1);\n return false;\n }\n }\n\n return true;\n });\n\n scheduler.checkInMarkedTimespan = function (ev, timespan_type, on_overlap) {\n timespan_type = timespan_type || default_timespan_type;\n var res = true;\n var temp_start_date = new Date(ev.start_date.valueOf());\n var temp_end_date = scheduler.date.add(temp_start_date, 1, \"day\");\n var timespans = scheduler._marked_timespans;\n\n for (; temp_start_date < ev.end_date; temp_start_date = scheduler.date.date_part(temp_end_date), temp_end_date = scheduler.date.add(temp_start_date, 1, \"day\")) {\n var day_value = +scheduler.date.date_part(new Date(temp_start_date)); // the first part of event not necessarily contains only date part\n\n var day_index = temp_start_date.getDay();\n var zones = getZones(ev, timespans, day_index, day_value, timespan_type);\n\n if (zones) {\n for (var i = 0; i < zones.length; i += 2) {\n // they may change for new event if it passes limit zone\n var eventStart = scheduler._get_zone_minutes(temp_start_date);\n\n var eventEnd = ev.end_date > temp_end_date || ev.end_date.getDate() != temp_start_date.getDate() ? 1440 : scheduler._get_zone_minutes(ev.end_date);\n var markerStart = zones[i];\n var markerEnd = zones[i + 1];\n\n if (markerStart < eventEnd && markerEnd > eventStart) {\n if (typeof on_overlap == \"function\") {\n //handler allows to cancel overlapping\n //actually needed only to keep default behavior of limits\n res = on_overlap(ev, eventStart, eventEnd, markerStart, markerEnd); //event object, event start/end minutes in 'zones' format, zone start/end minutes\n } else {\n res = false;\n }\n\n if (!res) break;\n }\n }\n }\n }\n\n return !res;\n };\n\n var blocker = scheduler.checkLimitViolation = function (event) {\n if (!event) return true;\n if (!scheduler.config.check_limits) return true;\n var s = scheduler;\n var c = s.config;\n var evs = [];\n\n if (event.rec_type) {\n var dates = scheduler.getRecDates(event);\n\n for (var i = 0; i < dates.length; i++) {\n var ev = scheduler._copy_event(event);\n\n scheduler._lame_copy(ev, dates[i]);\n\n evs.push(ev);\n }\n } else {\n evs = [event];\n }\n\n var complete_res = true;\n\n for (var p = 0; p < evs.length; p++) {\n var res = true;\n var ev = evs[p]; // Event could have old _timed property (e.g. we are creating event with DND on timeline view and crossed day)\n\n ev._timed = scheduler.isOneDayEvent(ev);\n res = c.limit_start && c.limit_end ? ev.start_date.valueOf() >= c.limit_start.valueOf() && ev.end_date.valueOf() <= c.limit_end.valueOf() : true;\n\n if (res) {\n res = !scheduler.checkInMarkedTimespan(ev, dhx_time_block, function (event, eventStart, eventEnd, markerStart, markerEnd) {\n //try crop event to allow placing\n var allow = true;\n\n if (eventStart <= markerEnd && eventStart >= markerStart) {\n if (markerEnd == 24 * 60 || eventEnd <= markerEnd) {\n allow = false;\n }\n\n if (event._timed && s._drag_id && s._drag_mode == \"new-size\") {\n event.start_date.setHours(0);\n event.start_date.setMinutes(markerEnd);\n } else {\n allow = false;\n }\n }\n\n if (eventEnd >= markerStart && eventEnd <= markerEnd || eventStart < markerStart && eventEnd > markerEnd) {\n if (event._timed && s._drag_id && s._drag_mode == \"new-size\") {\n event.end_date.setHours(0);\n event.end_date.setMinutes(markerStart);\n } else {\n allow = false;\n }\n }\n\n return allow;\n });\n }\n\n if (!res) {\n res = s.checkEvent(\"onLimitViolation\") ? s.callEvent(\"onLimitViolation\", [ev.id, ev]) : res;\n }\n\n complete_res = complete_res && res;\n }\n\n if (!complete_res) {\n s._drag_id = null;\n s._drag_mode = null;\n }\n\n return complete_res;\n };\n\n scheduler._get_blocked_zones = function (timespans, property, day_index, day_value, timespan_type) {\n var zones = [];\n\n if (timespans && timespans[property]) {\n var timeline_zones = timespans[property];\n\n var blocked_timeline_zones = this._get_relevant_blocked_zones(day_index, day_value, timeline_zones, timespan_type);\n\n for (var i = 0; i < blocked_timeline_zones.length; i++) {\n zones = this._add_timespan_zones(zones, blocked_timeline_zones[i].zones);\n }\n }\n\n return zones;\n };\n\n scheduler._get_relevant_blocked_zones = function (day_index, day_value, zones, timespan_type) {\n var resultZones;\n\n if (scheduler.config.overwrite_marked_timespans) {\n resultZones = zones[day_value] && zones[day_value][timespan_type] ? zones[day_value][timespan_type] : zones[day_index] && zones[day_index][timespan_type] ? zones[day_index][timespan_type] : [];\n } else {\n resultZones = [];\n\n if (zones[day_value] && zones[day_value][timespan_type]) {\n resultZones = resultZones.concat(zones[day_value][timespan_type]);\n }\n\n if (zones[day_index] && zones[day_index][timespan_type]) {\n resultZones = resultZones.concat(zones[day_index][timespan_type]);\n }\n }\n\n return resultZones;\n };\n\n function getZones(ev, timespans, day_index, day_value, timespan_type) {\n var s = scheduler; //containers for 'unit' and 'timeline' views, and related 'section_id' properties\n\n var zones = [];\n var containers = {\n '_props': 'map_to',\n 'matrix': 'y_property'\n }; //check blocked sections in all units and timelines\n\n for (var container in containers) {\n var property = containers[container];\n\n if (s[container]) {\n for (var view in s[container]) {\n var view_config = s[container][view];\n var linker = view_config[property];\n if (!ev[linker]) continue;\n zones = s._add_timespan_zones(zones, scheduler._get_blocked_zones(timespans[view], ev[linker], day_index, day_value, timespan_type));\n }\n }\n } // now need to add day blocks\n\n\n zones = s._add_timespan_zones(zones, scheduler._get_blocked_zones(timespans, 'global', day_index, day_value, timespan_type));\n return zones;\n }\n\n scheduler.attachEvent(\"onMouseDown\", function (classname) {\n return !(classname == dhx_time_block);\n });\n scheduler.attachEvent(\"onBeforeDrag\", function (id) {\n if (!id) return true;\n return blocker(scheduler.getEvent(id));\n });\n scheduler.attachEvent(\"onClick\", function (event_id, native_event_object) {\n return blocker(scheduler.getEvent(event_id));\n });\n scheduler.attachEvent(\"onBeforeLightbox\", function (id) {\n var ev = scheduler.getEvent(id);\n before = [ev.start_date, ev.end_date];\n return blocker(ev);\n });\n scheduler.attachEvent(\"onEventSave\", function (id, data, is_new_event) {\n //lightbox may not have 'time' section\n if (!(data.start_date && data.end_date)) {\n var ev = scheduler.getEvent(id);\n data.start_date = new Date(ev.start_date);\n data.end_date = new Date(ev.end_date);\n }\n\n if (data.rec_type) {\n //_roll_back_dates modifies start_date of recurring event, need to check limits after modification\n // use a copy to keep original event unchanged\n var data_copy = scheduler._lame_clone(data);\n\n scheduler._roll_back_dates(data_copy);\n\n return blocker(data_copy);\n }\n\n return blocker(data);\n });\n scheduler.attachEvent(\"onEventAdded\", function (id) {\n if (!id) return true;\n var ev = scheduler.getEvent(id);\n\n if (!blocker(ev) && scheduler.config.limit_start && scheduler.config.limit_end) {\n //if newly created event is outside of limited time - crop it, leaving only allowed time\n if (ev.start_date < scheduler.config.limit_start) {\n ev.start_date = new Date(scheduler.config.limit_start);\n }\n\n if (ev.start_date.valueOf() >= scheduler.config.limit_end.valueOf()) {\n ev.start_date = this.date.add(scheduler.config.limit_end, -1, \"day\");\n }\n\n if (ev.end_date < scheduler.config.limit_start) {\n ev.end_date = new Date(scheduler.config.limit_start);\n }\n\n if (ev.end_date.valueOf() >= scheduler.config.limit_end.valueOf()) {\n ev.end_date = this.date.add(scheduler.config.limit_end, -1, \"day\");\n }\n\n if (ev.start_date.valueOf() >= ev.end_date.valueOf()) {\n ev.end_date = this.date.add(ev.start_date, this.config.event_duration || this.config.time_step, \"minute\");\n }\n\n ev._timed = this.isOneDayEvent(ev);\n }\n\n return true;\n });\n scheduler.attachEvent(\"onEventChanged\", function (id) {\n if (!id) return true;\n var ev = scheduler.getEvent(id);\n\n if (!blocker(ev)) {\n if (!before) return false;\n ev.start_date = before[0];\n ev.end_date = before[1];\n ev._timed = this.isOneDayEvent(ev);\n }\n\n return true;\n });\n scheduler.attachEvent(\"onBeforeEventChanged\", function (ev, native_object, is_new) {\n return blocker(ev);\n });\n scheduler.attachEvent(\"onBeforeEventCreated\", function (ev) {\n // native event\n var start_date = scheduler.getActionData(ev).date;\n var event = {\n _timed: true,\n start_date: start_date,\n end_date: scheduler.date.add(start_date, scheduler.config.time_step, \"minute\")\n };\n return blocker(event);\n });\n scheduler.attachEvent(\"onViewChange\", function () {\n scheduler._mark_now();\n });\n scheduler.attachEvent(\"onAfterSchedulerResize\", function () {\n window.setTimeout(function () {\n scheduler._mark_now();\n }, 1);\n return true;\n });\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n scheduler._mark_now_timer = window.setInterval(function () {\n if (!scheduler._is_initialized()) return;\n\n scheduler._mark_now();\n }, 60000);\n });\n\n scheduler._mark_now = function (hide) {\n // day, week, units views\n var dhx_now_time = 'dhx_now_time';\n\n if (!this._els[dhx_now_time]) {\n this._els[dhx_now_time] = [];\n }\n\n var now = scheduler._currentDate();\n\n var cfg = this.config;\n\n scheduler._remove_mark_now(); // delete previous marks if they exist\n\n\n if (!hide && cfg.mark_now && now < this._max_date && now > this._min_date && now.getHours() >= cfg.first_hour && now.getHours() < cfg.last_hour) {\n var day_index = this.locate_holder_day(now);\n this._els[dhx_now_time] = scheduler._append_mark_now(day_index, now);\n }\n };\n\n scheduler._append_mark_now = function (day_index, now) {\n var dhx_now_time = 'dhx_now_time';\n\n var zone_start = scheduler._get_zone_minutes(now);\n\n var options = {\n zones: [zone_start, zone_start + 1],\n css: dhx_now_time,\n type: dhx_now_time\n };\n\n if (!this._table_view) {\n if (this._props && this._props[this._mode]) {\n // units view\n var start_index, end_index;\n var view = this._props[this._mode];\n var units_l = view.size || view.options.length;\n\n if (view.days > 1) {\n if (view.size && view.options.length) {\n day_index = (view.position + day_index) / view.options.length * view.size;\n }\n\n start_index = day_index;\n end_index = day_index + units_l;\n } else {\n start_index = 0;\n end_index = start_index + units_l;\n }\n\n var r_divs = [];\n\n for (var i = start_index; i < end_index; i++) {\n var t_day = i; // as each unit is actually considered +1 day\n\n options.days = t_day;\n\n var t_div = scheduler._render_marked_timespan(options, null, t_day)[0];\n\n r_divs.push(t_div);\n }\n\n return r_divs;\n } else {\n // day/week views\n options.days = day_index;\n return scheduler._render_marked_timespan(options, null, day_index);\n }\n } else {\n if (this._mode == \"month\") {\n options.days = +scheduler.date.date_part(now);\n return scheduler._render_marked_timespan(options, null, null);\n }\n }\n };\n\n scheduler._remove_mark_now = function () {\n var dhx_now_time = 'dhx_now_time';\n var els = this._els[dhx_now_time];\n\n for (var i = 0; i < els.length; i++) {\n var div = els[i];\n var parent = div.parentNode;\n\n if (parent) {\n parent.removeChild(div);\n }\n }\n\n this._els[dhx_now_time] = [];\n };\n /*\r\n scheduler._marked_timespans = {\r\n \t\"global\": {\r\n \t\t\"0\": {\r\n \t\t\t\"default\": [\r\n \t\t\t\t{ // sunday\r\n \t\t\t\t\tzones: [0, 100, 500, 600],\r\n \t\t\t\t\tcss: \"yellow_box\",\r\n \t\t\t\t\ttype: \"default\",\r\n \t\t\t\t\tview: \"global\",\r\n \t\t\t\t\tday: 0\r\n \t\t\t\t}\r\n \t\t\t]\r\n \t\t}\r\n \t\t\"112121312\": {\r\n \t\t\t\"my_special_type\": [\r\n \t\t\t\t{\r\n \t\t\t\t\tzones: [600, 900],\r\n \t\t\t\t\ttype: \"block\",\r\n \t\t\t\t\tcss: \"some_class\",\r\n \t\t\t\t\tview: \"global\",\r\n \t\t\t\t\tday: 112121312\r\n \t\t\t\t},\r\n \t\t\t\t{}\r\n \t\t\t]\r\n \t\t}\r\n \t},\r\n \t\"units\": {\r\n \t\t\"5_id\": {\r\n \t\t\t\"3\": {\r\n \t\t\t\t\"special_type\": [ {}, {}, {} ],\r\n \t\t\t\t\"another_type\": [ {} ]\r\n \t\t\t}\r\n \t\t},\r\n \t\t\"6_id\": {\r\n \t\t\t\"11212127\": {\r\n \t\t\t\t...\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n }\r\n */\n\n\n scheduler._marked_timespans = {\n global: {}\n };\n\n scheduler._get_zone_minutes = function (date) {\n return date.getHours() * 60 + date.getMinutes();\n };\n\n scheduler._prepare_timespan_options = function (config) {\n // receives 1 option, returns array of options\n var r_configs = []; // resulting configs\n\n var temp_configs = [];\n if (config.days == \"fullweek\") config.days = [0, 1, 2, 3, 4, 5, 6];\n\n if (config.days instanceof Array) {\n var t_days = config.days.slice();\n\n for (var i = 0; i < t_days.length; i++) {\n var cloned_config = scheduler._lame_clone(config);\n\n cloned_config.days = t_days[i];\n r_configs.push.apply(r_configs, scheduler._prepare_timespan_options(cloned_config));\n }\n\n return r_configs;\n }\n\n if (!config || !(config.start_date && config.end_date && config.end_date > config.start_date || config.days !== undefined && config.zones) && !config.type) return r_configs; // incorrect config was provided\n\n var min = 0;\n var max = 24 * 60;\n if (config.zones == \"fullday\") config.zones = [min, max];\n\n if (config.zones && config.invert_zones) {\n config.zones = scheduler.invertZones(config.zones);\n }\n\n config.id = scheduler.uid();\n config.css = config.css || \"\";\n config.type = config.type || default_timespan_type;\n var sections = config.sections;\n\n if (sections) {\n for (var view_key in sections) {\n if (sections.hasOwnProperty(view_key)) {\n var ids = sections[view_key];\n if (!(ids instanceof Array)) ids = [ids];\n\n for (var i = 0; i < ids.length; i++) {\n var t_config = scheduler._lame_copy({}, config);\n\n t_config.sections = {};\n t_config.sections[view_key] = ids[i];\n temp_configs.push(t_config);\n }\n }\n }\n } else {\n temp_configs.push(config);\n }\n\n for (var k = 0; k < temp_configs.length; k++) {\n var c_config = temp_configs[k]; // config to be checked\n\n var start_date = c_config.start_date;\n var end_date = c_config.end_date;\n\n if (start_date && end_date) {\n var t_sd = scheduler.date.date_part(new Date(start_date)); // e.g. 05 october\n\n var t_ed = scheduler.date.add(t_sd, 1, \"day\"); // 06 october, will both be incremented in the loop\n\n while (t_sd < end_date) {\n var t_config = scheduler._lame_copy({}, c_config);\n\n delete t_config.start_date;\n delete t_config.end_date;\n t_config.days = t_sd.valueOf();\n var zone_start = start_date > t_sd ? scheduler._get_zone_minutes(start_date) : min;\n var zone_end = end_date > t_ed || end_date.getDate() != t_sd.getDate() ? max : scheduler._get_zone_minutes(end_date);\n t_config.zones = [zone_start, zone_end];\n r_configs.push(t_config);\n t_sd = t_ed;\n t_ed = scheduler.date.add(t_ed, 1, \"day\");\n }\n } else {\n if (c_config.days instanceof Date) c_config.days = scheduler.date.date_part(c_config.days).valueOf();\n c_config.zones = config.zones.slice();\n r_configs.push(c_config);\n }\n }\n\n return r_configs;\n };\n\n scheduler._get_dates_by_index = function (index, start, end) {\n var dates = [];\n start = scheduler.date.date_part(new Date(start || scheduler._min_date));\n end = new Date(end || scheduler._max_date);\n var start_day = start.getDay();\n var delta = index - start_day >= 0 ? index - start_day : 7 - start.getDay() + index;\n var t_date = scheduler.date.add(start, delta, \"day\");\n\n for (; t_date < end; t_date = scheduler.date.add(t_date, 1, \"week\")) {\n dates.push(t_date);\n }\n\n return dates;\n };\n\n scheduler._get_css_classes_by_config = function (config) {\n var css_classes = [];\n\n if (config.type == dhx_time_block) {\n css_classes.push(dhx_time_block);\n if (config.css) css_classes.push(dhx_time_block + \"_reset\");\n }\n\n css_classes.push(\"dhx_marked_timespan\", config.css);\n return css_classes.join(\" \");\n };\n\n scheduler._get_block_by_config = function (config) {\n var block = document.createElement(\"div\");\n\n if (config.html) {\n if (typeof config.html == \"string\") block.innerHTML = config.html;else block.appendChild(config.html);\n }\n\n return block;\n };\n\n scheduler._render_marked_timespan = function (options, area, day) {\n var blocks = []; // resulting block which will be rendered and returned\n\n var c = scheduler.config;\n var min_date = this._min_date;\n var max_date = this._max_date;\n var day_value = false; // if timespan for specific date should be displayed\n\n if (!c.display_marked_timespans) return blocks; // in case of markTimespan\n\n if (!day && day !== 0) {\n if (options.days < 7) day = options.days;else {\n var date_to_display = new Date(options.days);\n day_value = +date_to_display; // in case of markTimespan date could be not in the viewing range, need to return\n\n if (!(+max_date > +date_to_display && +min_date <= +date_to_display)) return blocks;\n day = date_to_display.getDay();\n } // convert day default index (Sun - 0, Sat - 6) to index of hourscales (depends on week_start and config.start_on_monday)\n\n var min_day = min_date.getDay();\n\n if (min_day > day) {\n day = 7 - (min_day - day);\n } else {\n day = day - min_day;\n }\n }\n\n var zones = options.zones;\n\n var css_classes = scheduler._get_css_classes_by_config(options);\n\n if (scheduler._table_view && scheduler._mode == \"month\") {\n var areas = [];\n var days = [];\n\n if (!area) {\n days = day_value ? [day_value] : scheduler._get_dates_by_index(day);\n\n for (var i = 0; i < days.length; i++) {\n areas.push(this._scales[days[i]]);\n }\n } else {\n areas.push(area);\n days.push(day);\n }\n\n for (var i = 0; i < areas.length; i++) {\n area = areas[i];\n day = days[i];\n\n var sweek = Math.floor((this._correct_shift(day, 1) - min_date.valueOf()) / (60 * 60 * 1000 * 24 * this._cols.length)),\n sday = this.locate_holder_day(day, false) % this._cols.length;\n\n if (this._ignores[sday]) continue;\n var columnNumber = this.config.rtl ? this._colsS.col_length - 1 - sday : sday;\n\n var block_proto = scheduler._get_block_by_config(options),\n height = Math.max(area.offsetHeight - 1, 0),\n // 1 for bottom border\n width = Math.max(area.offsetWidth - 1, 0),\n // 1 for left border\n left = this._colsS[columnNumber],\n top = this._colsS.heights[sweek] + (this._colsS.height ? this.xy.month_scale_height + 2 : 2) - 1;\n\n block_proto.className = css_classes;\n block_proto.style.top = top + \"px\";\n block_proto.style.lineHeight = block_proto.style.height = height + \"px\";\n\n for (var k = 0; k < zones.length; k += 2) {\n var start = zones[i];\n var end = zones[i + 1];\n if (end <= start) return [];\n var block = block_proto.cloneNode(true);\n block.style.left = left + Math.round(start / (24 * 60) * width) + \"px\";\n block.style.width = Math.round((end - start) / (24 * 60) * width) + \"px\";\n area.appendChild(block);\n blocks.push(block);\n }\n }\n } else {\n var index = day;\n if (this._ignores[this.locate_holder_day(day, false)]) return blocks;\n\n if (this._props && this._props[this._mode] && options.sections && options.sections[this._mode]) {\n var view = this._props[this._mode];\n index = view.order[options.sections[this._mode]];\n var inner_index = view.order[options.sections[this._mode]];\n\n if (!(view.days > 1)) {\n index = inner_index;\n\n if (view.size && index > view.position + view.size) {\n index = 0;\n }\n } else {\n var units_l = view.size || view.options.length;\n index = index * units_l + inner_index;\n }\n }\n\n area = area ? area : scheduler.locate_holder(index);\n\n for (var i = 0; i < zones.length; i += 2) {\n var start = Math.max(zones[i], c.first_hour * 60);\n var end = Math.min(zones[i + 1], c.last_hour * 60);\n\n if (end <= start) {\n if (i + 2 < zones.length) continue;else return [];\n }\n\n var block = scheduler._get_block_by_config(options);\n\n block.className = css_classes; // +1 for working with section which really takes up whole height (as % would be == 0)\n\n var all_hours_height = this.config.hour_size_px * 24 + 1;\n var hour_ms = 60 * 60 * 1000;\n block.style.top = Math.round((start * 60 * 1000 - this.config.first_hour * hour_ms) * this.config.hour_size_px / hour_ms) % all_hours_height + \"px\";\n block.style.lineHeight = block.style.height = Math.max(Math.round((end - start) * 60 * 1000 * this.config.hour_size_px / hour_ms) % all_hours_height, 1) + \"px\";\n area.appendChild(block);\n blocks.push(block);\n }\n }\n\n return blocks;\n };\n\n scheduler._mark_timespans = function () {\n var data = this._els[\"dhx_cal_data\"][0];\n var divs = [];\n\n if (scheduler._table_view && scheduler._mode == \"month\") {\n for (var day in this._scales) {\n var date = new Date(+day);\n divs.push.apply(divs, scheduler._on_scale_add_marker(this._scales[day], date));\n }\n } else {\n //manually trigger rendering of configs for each column\n var date = new Date(scheduler._min_date);\n\n for (var i = 0, len = data.childNodes.length; i < len; i++) {\n var area = data.childNodes[i];\n\n if (area.firstChild && scheduler._getClassName(area.firstChild).indexOf(\"dhx_scale_hour\") > -1) {\n continue;\n }\n\n divs.push.apply(divs, scheduler._on_scale_add_marker(area, date));\n date = scheduler.date.add(date, 1, \"day\");\n }\n }\n\n return divs;\n }; // just marks timespan, will be cleaned after refresh\n\n\n scheduler.markTimespan = function (configuration) {\n var rebuild_els = false;\n\n if (!this._els[\"dhx_cal_data\"]) {\n scheduler.get_elements();\n rebuild_els = true;\n } // backup regular marked timespans\n\n\n var timespans_ids = scheduler._marked_timespans_ids,\n timespan_types = scheduler._marked_timespans_types,\n timespans = scheduler._marked_timespans;\n scheduler.deleteMarkedTimespan(); //add block to configs\n\n scheduler.addMarkedTimespan(configuration);\n\n var divs = scheduler._mark_timespans();\n\n if (rebuild_els) scheduler._els = []; // restore timespan config\n\n scheduler._marked_timespans_ids = timespans_ids;\n scheduler._marked_timespans_types = timespan_types;\n scheduler._marked_timespans = timespans;\n return divs;\n };\n\n scheduler.unmarkTimespan = function (divs) {\n if (!divs) return;\n\n for (var i = 0; i < divs.length; i++) {\n var div = divs[i]; // parent may no longer be present if we switched views, navigated\n\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n }\n };\n\n scheduler._addMarkerTimespanConfig = function (config) {\n var global = \"global\";\n var timespans = scheduler._marked_timespans;\n var id = config.id;\n var ids = scheduler._marked_timespans_ids;\n if (!ids[id]) ids[id] = [];\n var day = config.days;\n var sections = config.sections;\n var type = config.type; // default or specified\n\n config.id = id;\n\n if (sections) {\n for (var view_key in sections) {\n if (sections.hasOwnProperty(view_key)) {\n if (!timespans[view_key]) timespans[view_key] = {};\n var unit_id = sections[view_key];\n var timespans_view = timespans[view_key];\n if (!timespans_view[unit_id]) timespans_view[unit_id] = {};\n if (!timespans_view[unit_id][day]) timespans_view[unit_id][day] = {};\n\n if (!timespans_view[unit_id][day][type]) {\n timespans_view[unit_id][day][type] = [];\n if (!scheduler._marked_timespans_types) scheduler._marked_timespans_types = {};\n if (!scheduler._marked_timespans_types[type]) scheduler._marked_timespans_types[type] = true;\n }\n\n var day_configs = timespans_view[unit_id][day][type];\n config._array = day_configs;\n day_configs.push(config);\n ids[id].push(config);\n }\n }\n } else {\n if (!timespans[global][day]) timespans[global][day] = {};\n if (!timespans[global][day][type]) timespans[global][day][type] = [];\n if (!scheduler._marked_timespans_types) scheduler._marked_timespans_types = {};\n if (!scheduler._marked_timespans_types[type]) scheduler._marked_timespans_types[type] = true;\n var day_configs = timespans[global][day][type];\n config._array = day_configs;\n day_configs.push(config);\n ids[id].push(config);\n }\n };\n\n scheduler._marked_timespans_ids = {}; // adds marked timespan to collections, persistent\n\n scheduler.addMarkedTimespan = function (configuration) {\n var configs = scheduler._prepare_timespan_options(configuration);\n\n if (!configs.length) return; // options are incorrect, nothing to mark\n\n var id = configs[0].id;\n\n for (var i = 0; i < configs.length; i++) {\n scheduler._addMarkerTimespanConfig(configs[i]);\n }\n\n return id;\n }; // not used for now\n\n\n scheduler._add_timespan_zones = function (current_zones, zones) {\n var resulting_zones = current_zones.slice();\n zones = zones.slice();\n if (!resulting_zones.length) return zones;\n\n for (var i = 0; i < resulting_zones.length; i += 2) {\n var c_zone_start = resulting_zones[i];\n var c_zone_end = resulting_zones[i + 1];\n var isLast = i + 2 == resulting_zones.length;\n\n for (var k = 0; k < zones.length; k += 2) {\n var zone_start = zones[k];\n var zone_end = zones[k + 1];\n\n if (zone_end > c_zone_end && zone_start <= c_zone_end || zone_start < c_zone_start && zone_end >= c_zone_start) {\n resulting_zones[i] = Math.min(c_zone_start, zone_start);\n resulting_zones[i + 1] = Math.max(c_zone_end, zone_end);\n i -= 2;\n } else {\n if (!isLast) // do nothing, maybe next current zone will match or will be last\n continue;\n var offset = c_zone_start > zone_start ? 0 : 2;\n resulting_zones.splice(i + offset, 0, zone_start, zone_end); // last current zone, need to add another\n }\n\n zones.splice(k--, 2); // zone was merged or added, need to exclude it\n\n break;\n }\n }\n\n return resulting_zones;\n };\n\n scheduler._subtract_timespan_zones = function (current_zones, zones) {\n var resulting_zones = current_zones.slice();\n\n for (var i = 0; i < resulting_zones.length; i += 2) {\n var c_zone_start = resulting_zones[i]; // current_zone_start\n\n var c_zone_end = resulting_zones[i + 1];\n\n for (var k = 0; k < zones.length; k += 2) {\n var zone_start = zones[k];\n var zone_end = zones[k + 1];\n\n if (zone_end > c_zone_start && zone_start < c_zone_end) {\n var is_modified = false;\n\n if (c_zone_start >= zone_start && c_zone_end <= zone_end) {\n resulting_zones.splice(i, 2);\n }\n\n if (c_zone_start < zone_start) {\n resulting_zones.splice(i, 2, c_zone_start, zone_start);\n is_modified = true;\n }\n\n if (c_zone_end > zone_end) {\n resulting_zones.splice(is_modified ? i + 2 : i, is_modified ? 0 : 2, zone_end, c_zone_end);\n }\n\n i -= 2;\n break;\n } else {\n continue;\n }\n }\n }\n\n return resulting_zones;\n };\n\n scheduler.invertZones = function (zones) {\n return scheduler._subtract_timespan_zones([0, 1440], zones.slice());\n };\n\n scheduler._delete_marked_timespan_by_id = function (id) {\n var configs = scheduler._marked_timespans_ids[id];\n\n if (configs) {\n for (var i = 0; i < configs.length; i++) {\n var config = configs[i];\n var parent_array = config._array;\n\n for (var k = 0; k < parent_array.length; k++) {\n if (parent_array[k] == config) {\n parent_array.splice(k, 1);\n break;\n }\n }\n }\n }\n };\n\n scheduler._delete_marked_timespan_by_config = function (config) {\n var timespans = scheduler._marked_timespans;\n var sections = config.sections;\n var day = config.days;\n var type = config.type || default_timespan_type;\n var viewspans;\n\n if (sections) {\n for (var view_key in sections) {\n if (sections.hasOwnProperty(view_key) && timespans[view_key]) {\n var unit_id = sections[view_key];\n\n if (timespans[view_key][unit_id]) {\n viewspans = timespans[view_key][unit_id];\n }\n }\n }\n } else {\n viewspans = timespans.global;\n }\n\n if (viewspans) {\n if (day !== undefined) {\n if (viewspans[day] && viewspans[day][type]) {\n scheduler._addMarkerTimespanConfig(config); // register config in order to be able to delete recurring timespan from a specific day\n\n\n scheduler._delete_marked_timespans_list(viewspans[day][type], config);\n }\n } else {\n for (var d in viewspans) {\n if (viewspans[d][type]) {\n var dayConfig = scheduler._lame_clone(config);\n\n config.days = d;\n\n scheduler._addMarkerTimespanConfig(dayConfig); // register config in order to be able to delete recurring timespan from a specific day\n\n\n scheduler._delete_marked_timespans_list(viewspans[d][type], config);\n }\n }\n }\n }\n };\n\n scheduler._delete_marked_timespans_list = function (day_timespans, config) {\n for (var i = 0; i < day_timespans.length; i++) {\n var d_t = day_timespans[i];\n\n var zones = scheduler._subtract_timespan_zones(d_t.zones, config.zones);\n\n if (zones.length) d_t.zones = zones;else {\n day_timespans.splice(i, 1);\n i--; // need to update ids collection\n\n var related_zones = scheduler._marked_timespans_ids[d_t.id];\n\n for (var k = 0; k < related_zones.length; k++) {\n if (related_zones[k] == d_t) {\n related_zones.splice(k, 1);\n break;\n }\n }\n }\n }\n };\n\n scheduler.deleteMarkedTimespan = function (configuration) {\n // delete everything\n if (!arguments.length) {\n scheduler._marked_timespans = {\n global: {}\n };\n scheduler._marked_timespans_ids = {};\n scheduler._marked_timespans_types = {};\n }\n\n if (_typeof(configuration) != \"object\") {\n // id was passed\n scheduler._delete_marked_timespan_by_id(configuration);\n } else {\n // normal configuration was passed\n if (!(configuration.start_date && configuration.end_date)) {\n if (configuration.days === undefined && !configuration.type) configuration.days = \"fullweek\";\n if (!configuration.zones) configuration.zones = \"fullday\";\n }\n\n var types = [];\n\n if (!configuration.type) {\n //if type not specified - delete timespans of all types\n for (var type in scheduler._marked_timespans_types) {\n types.push(type);\n }\n } else {\n types.push(configuration.type);\n }\n\n var configs = scheduler._prepare_timespan_options(configuration);\n\n for (var i = 0; i < configs.length; i++) {\n var config = configs[i];\n\n for (var t = 0; t < types.length; t++) {\n var typedConfig = scheduler._lame_clone(config);\n\n typedConfig.type = types[t];\n\n scheduler._delete_marked_timespan_by_config(typedConfig);\n }\n }\n }\n };\n\n scheduler._get_types_to_render = function (common, specific) {\n var types_to_render = common ? scheduler._lame_copy({}, common) : {};\n\n for (var type in specific || {}) {\n if (specific.hasOwnProperty(type)) {\n types_to_render[type] = specific[type];\n }\n }\n\n return types_to_render;\n };\n\n scheduler._get_configs_to_render = function (types) {\n var configs = [];\n\n for (var type in types) {\n if (types.hasOwnProperty(type)) {\n configs.push.apply(configs, types[type]);\n }\n }\n\n return configs;\n };\n\n scheduler._on_scale_add_marker = function (area, day) {\n if (scheduler._table_view && scheduler._mode != \"month\") return;\n var day_index = day.getDay();\n var day_value = day.valueOf();\n var mode = this._mode;\n var timespans = scheduler._marked_timespans;\n var r_configs = [];\n var divs = [];\n\n if (this._props && this._props[mode]) {\n // we are in the units view and need to draw it's sections as well\n var view = this._props[mode]; // units view object\n\n var units = view.options;\n\n var index = scheduler._get_unit_index(view, day);\n\n var unit = units[index]; // key, label\n\n if (!(view.days > 1)) {\n day = scheduler.date.date_part(new Date(this._date)); // for units view actually only 1 day is displayed yet the day variable will change, need to use this._date for all calls\n } else {\n var dx = 24 * 60 * 60 * 1000;\n var day_ind = Math.round((day - scheduler._min_date) / dx);\n var unitsPerDay = view.size || units.length;\n day = scheduler.date.add(scheduler._min_date, Math.floor(day_ind / unitsPerDay), \"day\"); // to the \"same\" day for all sections\n\n day = scheduler.date.date_part(day);\n }\n\n day_index = day.getDay();\n day_value = day.valueOf();\n\n if (timespans[mode] && timespans[mode][unit.key]) {\n var unit_zones = timespans[mode][unit.key];\n\n var unit_types = scheduler._get_types_to_render(unit_zones[day_index], unit_zones[day_value]);\n\n r_configs.push.apply(r_configs, scheduler._get_configs_to_render(unit_types));\n }\n }\n\n var global_data = timespans[\"global\"];\n\n if (scheduler.config.overwrite_marked_timespans) {\n var day_types = global_data[day_value] || global_data[day_index];\n r_configs.push.apply(r_configs, scheduler._get_configs_to_render(day_types));\n } else {\n if (global_data[day_value]) {\n r_configs.push.apply(r_configs, scheduler._get_configs_to_render(global_data[day_value]));\n }\n\n if (global_data[day_index]) {\n r_configs.push.apply(r_configs, scheduler._get_configs_to_render(global_data[day_index]));\n }\n }\n\n for (var i = 0; i < r_configs.length; i++) {\n divs.push.apply(divs, scheduler._render_marked_timespan(r_configs[i], area, day));\n }\n\n return divs;\n };\n\n scheduler.attachEvent(\"onScaleAdd\", function () {\n scheduler._on_scale_add_marker.apply(scheduler, arguments);\n });\n\n scheduler.dblclick_dhx_marked_timespan = function (e, src) {\n scheduler.callEvent(\"onScaleDblClick\", [scheduler.getActionData(e).date, src, e]);\n\n if (scheduler.config.dblclick_create) {\n scheduler.addEventNow(scheduler.getActionData(e).date, null, e);\n }\n };\n };\n\n scheduler._temp_limit_scope();\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function (scheduler) {\n function backup(obj) {\n var t = function t() {};\n\n t.prototype = obj;\n return t;\n }\n\n var old = scheduler._load;\n\n scheduler._load = function (url, from) {\n url = url || this._load_url;\n\n if (_typeof(url) == \"object\") {\n var t = backup(this._loaded);\n\n for (var i = 0; i < url.length; i++) {\n this._loaded = new t();\n old.call(this, url[i], from);\n }\n } else old.apply(this, arguments);\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function (scheduler) {\n var dx,\n dy,\n html_regexp = new RegExp(\"<[^>]*>\", \"g\"),\n newline_regexp = new RegExp(\"<br[^>]*>\", \"g\");\n\n function clean_html(val) {\n return val.replace(newline_regexp, \"\\n\").replace(html_regexp, \"\");\n }\n\n function x_norm(x, offset) {\n x = parseFloat(x);\n offset = parseFloat(offset);\n if (!isNaN(offset)) x -= offset;\n var w = colsWidth(x);\n x = x - w.width + w.cols * dx;\n return isNaN(x) ? \"auto\" : 100 * x / dx;\n }\n\n function x_norm_event(x, offset, is_left) {\n x = parseFloat(x);\n offset = parseFloat(offset);\n if (!isNaN(offset) && is_left) x -= offset;\n var w = colsWidth(x);\n x = x - w.width + w.cols * dx;\n return isNaN(x) ? \"auto\" : 100 * x / (dx - (!isNaN(offset) ? offset : 0));\n }\n\n function colsWidth(width) {\n var r = 0;\n var header = scheduler._els.dhx_cal_header[0].childNodes;\n var els = header[1] ? header[1].childNodes : header[0].childNodes;\n\n for (var i = 0; i < els.length; i++) {\n var el = els[i].style ? els[i] : els[i].parentNode;\n var w = parseFloat(el.style.width);\n\n if (width > w) {\n width -= w + 1;\n r += w + 1;\n } else break;\n }\n\n return {\n width: r,\n cols: i\n };\n }\n\n function y_norm(y) {\n y = parseFloat(y);\n if (isNaN(y)) return \"auto\";\n return 100 * y / dy;\n }\n\n function get_style(node, style) {\n return (window.getComputedStyle ? window.getComputedStyle(node, null)[style] : node.currentStyle ? node.currentStyle[style] : null) || \"\";\n }\n\n function de_day(node, n) {\n var x = parseInt(node.style.left, 10);\n\n for (var dx = 0; dx < scheduler._cols.length; dx++) {\n x -= scheduler._cols[dx];\n if (x < 0) return dx;\n }\n\n return n;\n }\n\n function de_week(node, n) {\n var y = parseInt(node.style.top, 10);\n\n for (var dy = 0; dy < scheduler._colsS.heights.length; dy++) {\n if (scheduler._colsS.heights[dy] > y) return dy;\n }\n\n return n;\n }\n\n function xml_start(tag) {\n return tag ? \"<\" + tag + \">\" : \"\";\n }\n\n function xml_end(tag) {\n return tag ? \"</\" + tag + \">\" : \"\";\n }\n\n function xml_top(tag, profile, header, footer) {\n var xml = \"<\" + tag + \" profile='\" + profile + \"'\";\n if (header) xml += \" header='\" + header + \"'\";\n if (footer) xml += \" footer='\" + footer + \"'\";\n xml += \">\";\n return xml;\n }\n\n function xml_body_header() {\n var xml = \"\"; // detects if current mode is timeline\n\n var mode = scheduler._mode;\n if (scheduler.matrix && scheduler.matrix[scheduler._mode]) mode = scheduler.matrix[scheduler._mode].render == \"cell\" ? \"matrix\" : \"timeline\";\n xml += \"<scale mode='\" + mode + \"' today='\" + scheduler._els.dhx_cal_date[0].innerHTML + \"'>\";\n\n if (scheduler._mode == \"week_agenda\") {\n var xh = scheduler._els.dhx_cal_data[0].getElementsByTagName(\"DIV\");\n\n for (var i = 0; i < xh.length; i++) {\n if (xh[i].className == \"dhx_wa_scale_bar\") xml += \"<column>\" + clean_html(xh[i].innerHTML) + \"</column>\";\n }\n } else if (scheduler._mode == \"agenda\" || scheduler._mode == \"map\") {\n var xh = scheduler._els.dhx_cal_header[0].childNodes[0].childNodes;\n xml += \"<column>\" + clean_html(xh[0].innerHTML) + \"</column><column>\" + clean_html(xh[1].innerHTML) + \"</column>\";\n } else if (scheduler._mode == \"year\") {\n var xh = scheduler._els.dhx_cal_data[0].childNodes;\n\n for (var i = 0; i < xh.length; i++) {\n xml += \"<month label='\" + clean_html(xh[i].querySelector(\".dhx_year_month\").innerHTML) + \"'>\";\n xml += xml_month_scale(xh[i].querySelector(\".dhx_year_week\").childNodes);\n xml += xml_month(xh[i].querySelector(\".dhx_year_body\"));\n xml += \"</month>\";\n }\n } else {\n xml += \"<x>\";\n var xh = scheduler._els.dhx_cal_header[0].childNodes;\n xml += xml_month_scale(xh);\n xml += \"</x>\";\n var yh = scheduler._els.dhx_cal_data[0];\n\n if (scheduler.matrix && scheduler.matrix[scheduler._mode]) {\n xml += \"<y>\";\n\n for (var i = 0; i < yh.firstChild.rows.length; i++) {\n var el = yh.firstChild.rows[i];\n xml += \"<row><![CDATA[\" + clean_html(el.cells[0].innerHTML) + \"]]></row>\";\n }\n\n xml += \"</y>\";\n dy = yh.firstChild.rows[0].cells[0].offsetHeight;\n } else if (yh.firstChild.tagName == \"TABLE\") {\n xml += xml_month(yh);\n } else {\n yh = yh.childNodes[yh.childNodes.length - 1];\n\n while (yh.className.indexOf(\"dhx_scale_holder\") == -1) {\n yh = yh.previousSibling;\n }\n\n yh = yh.childNodes;\n xml += \"<y>\";\n\n for (var i = 0; i < yh.length; i++) {\n xml += \"\\n<row><![CDATA[\" + clean_html(yh[i].innerHTML) + \"]]></row>\";\n }\n\n xml += \"</y>\";\n dy = yh[0].offsetHeight;\n }\n }\n\n xml += \"</scale>\";\n return xml;\n }\n\n function xml_month(yh) {\n var xml = \"\";\n var r = yh.querySelectorAll(\"tr\");\n\n for (var i = 0; i < r.length; i++) {\n var days = [];\n var cells = r[i].querySelectorAll(\"td\");\n\n for (var j = 0; j < cells.length; j++) {\n days.push(cells[j].querySelector(\".dhx_month_head\").innerHTML);\n }\n\n xml += \"\\n<row height='\" + cells[0].offsetHeight + \"'><![CDATA[\" + clean_html(days.join(\"|\")) + \"]]></row>\";\n dy = cells[0].offsetHeight;\n }\n\n return xml;\n }\n\n function xml_month_scale(xh) {\n var xhs,\n xml = \"\";\n\n if (scheduler.matrix && scheduler.matrix[scheduler._mode]) {\n if (scheduler.matrix[scheduler._mode].second_scale) xhs = xh[1].childNodes;\n xh = xh[0].childNodes;\n }\n\n for (var i = 0; i < xh.length; i++) {\n xml += \"\\n<column><![CDATA[\" + clean_html(xh[i].innerHTML) + \"]]></column>\";\n }\n\n dx = xh[0].offsetWidth;\n\n if (xhs) {\n var width = 0;\n var top_width = xh[0].offsetWidth;\n var top_col = 1;\n\n for (var i = 0; i < xhs.length; i++) {\n xml += \"\\n<column second_scale='\" + top_col + \"'><![CDATA[\" + clean_html(xhs[i].innerHTML) + \"]]></column>\";\n width += xhs[i].offsetWidth;\n\n if (width >= top_width) {\n top_width += xh[top_col] ? xh[top_col].offsetWidth : 0;\n top_col++;\n }\n\n dx = xhs[0].offsetWidth;\n }\n }\n\n return xml;\n }\n\n function xml_body(colors) {\n var xml = \"\";\n var evs = scheduler._rendered;\n var matrix = scheduler.matrix && scheduler.matrix[scheduler._mode];\n\n if (scheduler._mode == \"agenda\" || scheduler._mode == \"map\") {\n for (var i = 0; i < evs.length; i++) {\n xml += \"<event><head><![CDATA[\" + clean_html(evs[i].childNodes[0].innerHTML) + \"]]></head><body><![CDATA[\" + clean_html(evs[i].childNodes[2].innerHTML) + \"]]></body></event>\";\n }\n } else if (scheduler._mode == \"week_agenda\") {\n for (var i = 0; i < evs.length; i++) {\n xml += \"<event day='\" + evs[i].parentNode.getAttribute(\"day\") + \"'><body>\" + clean_html(evs[i].innerHTML) + \"</body></event>\";\n }\n } else if (scheduler._mode == \"year\") {\n var evs = scheduler.get_visible_events();\n\n for (var i = 0; i < evs.length; i++) {\n var d = evs[i].start_date;\n if (d.valueOf() < scheduler._min_date.valueOf()) d = scheduler._min_date;\n\n while (d < evs[i].end_date) {\n var m = d.getMonth() + 12 * (d.getFullYear() - scheduler._min_date.getFullYear()) - scheduler.week_starts._month;\n\n var day = scheduler.week_starts[m] + d.getDate() - 1;\n var text_color = colors ? get_style(scheduler._get_year_cell(d), \"color\") : \"\";\n var bg_color = colors ? get_style(scheduler._get_year_cell(d), \"backgroundColor\") : \"\";\n xml += \"<event day='\" + day % 7 + \"' week='\" + Math.floor(day / 7) + \"' month='\" + m + \"' backgroundColor='\" + bg_color + \"' color='\" + text_color + \"'></event>\";\n d = scheduler.date.add(d, 1, \"day\");\n if (d.valueOf() >= scheduler._max_date.valueOf()) break;\n }\n }\n } else if (matrix && matrix.render == \"cell\") {\n var evs = scheduler._els.dhx_cal_data[0].getElementsByTagName(\"TD\");\n\n for (var i = 0; i < evs.length; i++) {\n var text_color = colors ? get_style(evs[i], \"color\") : \"\";\n var bg_color = colors ? get_style(evs[i], \"backgroundColor\") : \"\";\n xml += \"\\n<event><body backgroundColor='\" + bg_color + \"' color='\" + text_color + \"'><![CDATA[\" + clean_html(evs[i].innerHTML) + \"]]></body></event>\";\n }\n } else {\n for (var i = 0; i < evs.length; i++) {\n var zx, zdx;\n\n if (scheduler.matrix && scheduler.matrix[scheduler._mode]) {\n // logic for timeline view\n zx = x_norm(evs[i].style.left);\n zdx = x_norm(evs[i].offsetWidth) - 1;\n } else {\n // we should use specific logic for day/week/units view\n var left_norm = scheduler.config.use_select_menu_space ? 0 : 26;\n zx = x_norm_event(evs[i].style.left, left_norm, true);\n zdx = x_norm_event(evs[i].style.width, left_norm) - 1;\n }\n\n if (isNaN(zdx * 1)) continue;\n var zy = y_norm(evs[i].style.top);\n var zdy = y_norm(evs[i].style.height);\n var e_type = evs[i].className.split(\" \")[0].replace(\"dhx_cal_\", \"\");\n if (e_type === 'dhx_tooltip_line') continue;\n var dets = scheduler.getEvent(evs[i].getAttribute(scheduler.config.event_attribute));\n if (!dets) continue;\n var day = dets._sday;\n var week = dets._sweek;\n var length = dets._length || 0;\n\n if (scheduler._mode == \"month\") {\n zdy = parseInt(evs[i].offsetHeight, 10);\n zy = parseInt(evs[i].style.top, 10) - scheduler.xy.month_head_height;\n day = de_day(evs[i], day);\n week = de_week(evs[i], week);\n } else if (scheduler.matrix && scheduler.matrix[scheduler._mode]) {\n day = 0;\n var el = evs[i].parentNode.parentNode.parentNode;\n week = el.rowIndex;\n var dy_copy = dy;\n dy = evs[i].parentNode.offsetHeight;\n zy = y_norm(evs[i].style.top);\n zy -= zy * 0.2;\n dy = dy_copy;\n } else {\n if (evs[i].parentNode == scheduler._els.dhx_cal_data[0]) continue;\n var parent = scheduler._els[\"dhx_cal_data\"][0].childNodes[0];\n var offset = parseFloat(parent.className.indexOf(\"dhx_scale_holder\") != -1 ? parent.style.left : 0);\n zx += x_norm(evs[i].parentNode.style.left, offset);\n }\n\n xml += \"\\n<event week='\" + week + \"' day='\" + day + \"' type='\" + e_type + \"' x='\" + zx + \"' y='\" + zy + \"' width='\" + zdx + \"' height='\" + zdy + \"' len='\" + length + \"'>\";\n\n if (e_type == \"event\") {\n xml += \"<header><![CDATA[\" + clean_html(evs[i].childNodes[1].innerHTML) + \"]]></header>\";\n var text_color = colors ? get_style(evs[i].childNodes[2], \"color\") : \"\";\n var bg_color = colors ? get_style(evs[i].childNodes[2], \"backgroundColor\") : \"\";\n xml += \"<body backgroundColor='\" + bg_color + \"' color='\" + text_color + \"'><![CDATA[\" + clean_html(evs[i].childNodes[2].innerHTML) + \"]]></body>\";\n } else {\n var text_color = colors ? get_style(evs[i], \"color\") : \"\";\n var bg_color = colors ? get_style(evs[i], \"backgroundColor\") : \"\";\n xml += \"<body backgroundColor='\" + bg_color + \"' color='\" + text_color + \"'><![CDATA[\" + clean_html(evs[i].innerHTML) + \"]]></body>\";\n }\n\n xml += \"</event>\";\n }\n }\n\n return xml;\n }\n\n function toXML(start, end, view, mode, header, footer) {\n var colors = false;\n\n if (mode == \"fullcolor\") {\n colors = true;\n mode = \"color\";\n }\n\n mode = mode || \"color\";\n var xml = \"\";\n\n if (start) {\n var original_date = scheduler._date;\n var original_mode = scheduler._mode;\n end = scheduler.date[view + \"_start\"](end);\n end = scheduler.date[\"get_\" + view + \"_end\"] ? scheduler.date[\"get_\" + view + \"_end\"](end) : scheduler.date.add(end, 1, view);\n xml = xml_top(\"pages\", mode, header, footer);\n\n for (var temp_date = new Date(start); +temp_date < +end; temp_date = this.date.add(temp_date, 1, view)) {\n this.setCurrentView(temp_date, view);\n xml += xml_start(\"page\") + xml_body_header().replace(\"\\u2013\", \"-\") + xml_body(colors) + xml_end(\"page\");\n }\n\n xml += xml_end(\"pages\");\n this.setCurrentView(original_date, original_mode);\n } else {\n xml = xml_top(\"data\", mode, header, footer) + xml_body_header().replace(\"\\u2013\", \"-\") + xml_body(colors) + xml_end(\"data\");\n }\n\n return xml;\n }\n\n scheduler.getPDFData = toXML;\n\n function send_xml(xml, url) {\n var uid = scheduler.uid();\n var d = document.createElement(\"div\");\n d.style.display = \"none\";\n document.body.appendChild(d);\n d.innerHTML = '<form id=\"' + uid + '\" method=\"post\" target=\"_blank\" action=\"' + url + '\" accept-charset=\"utf-8\" enctype=\"application/x-www-form-urlencoded\"><input type=\"hidden\" name=\"mycoolxmlbody\"/> </form>';\n document.getElementById(uid).firstChild.value = encodeURIComponent(xml);\n document.getElementById(uid).submit();\n d.parentNode.removeChild(d);\n }\n\n function to_pdf(start, end, view, url, mode, header, footer) {\n var xml = \"\";\n\n if (_typeof(mode) == \"object\") {\n xml = schedulersToPdf(mode);\n } else {\n xml = toXML.apply(this, [start, end, view, mode, header, footer]);\n }\n\n send_xml(xml, url);\n }\n\n function schedulersToPdf(objects) {\n var xml = \"<data>\";\n\n for (var i = 0; i < objects.length; i++) {\n xml += objects[i].source.getPDFData(objects[i].start, objects[i].end, objects[i].view, objects[i].mode, objects[i].header, objects[i].footer);\n }\n\n xml += \"</data>\";\n return xml;\n }\n /*\r\n * scheduler.toPDF(url, mode, header, footer) - for a single scheduler\r\n * scheduler.toPDF(url, [scheduler1, scheduler2,...]) - for multiple schedulers\r\n * example:\r\n * scheduler.toPDF(\"generate.ashx\", [\r\n * { source: scheduler1, mode: \"color\" },\r\n * { source: scheduler2, mode: \"gray\", view:\"week\", start:new Date(2013, 06, 1), end:new Date(2013, 06, 28) },\r\n * { source: scheduler3 }\r\n * ]);\r\n *\r\n */\n\n\n scheduler.toPDF = function (url, mode, header, footer) {\n return to_pdf.apply(this, [null, null, null, url, mode, header, footer]);\n };\n\n scheduler.toPDFRange = function (start, end, view, url, mode, header, footer) {\n if (typeof start == \"string\") {\n start = scheduler.templates.api_date(start);\n end = scheduler.templates.api_date(end);\n }\n\n return to_pdf.apply(this, arguments);\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport default function (scheduler) {\n scheduler.config.occurrence_timestamp_in_utc = false;\n scheduler.config.recurring_workdays = [1, 2, 3, 4, 5];\n scheduler.form_blocks[\"recurring\"] = {\n _get_node: function _get_node(node) {\n if (typeof node == \"string\") node = document.getElementById(node);\n if (node.style.display == 'none') node.style.display = \"\";\n return node;\n },\n _outer_html: function _outer_html(node) {\n return node.outerHTML || getOuterHTML(node); //probably not needed, FF v10- only\n\n function getOuterHTML(n) {\n var div = document.createElement('div'),\n h;\n div.appendChild(n.cloneNode(true));\n h = div.innerHTML;\n div = null;\n return h;\n }\n },\n render: function render(sns) {\n if (sns.form) {\n var rec = scheduler.form_blocks[\"recurring\"];\n\n var form = rec._get_node(sns.form);\n\n var html = rec._outer_html(form);\n\n form.style.display = 'none';\n return html;\n }\n\n var loc = scheduler.locale.labels;\n return '<div class=\"dhx_form_repeat\"> ' + '<form> ' + '<div class=\"dhx_repeat_left\"> ' + '<label><input class=\"dhx_repeat_radio\" type=\"radio\" name=\"repeat\" value=\"day\" />' + loc.repeat_radio_day + '</label><br /> ' + '<label><input class=\"dhx_repeat_radio\" type=\"radio\" name=\"repeat\" value=\"week\"/>' + loc.repeat_radio_week + '</label><br /> ' + '<label><input class=\"dhx_repeat_radio\" type=\"radio\" name=\"repeat\" value=\"month\" checked />' + loc.repeat_radio_month + '</label><br /> ' + '<label><input class=\"dhx_repeat_radio\" type=\"radio\" name=\"repeat\" value=\"year\" />' + loc.repeat_radio_year + '</label> ' + '</div> ' + '<div class=\"dhx_repeat_divider\">' + '</div> ' + '<div class=\"dhx_repeat_center\"> ' + '<div style=\"display:none;\" id=\"dhx_repeat_day\"> ' + '<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><br /> ' + '<label><input class=\"dhx_repeat_radio\" type=\"radio\" name=\"day_type\" checked value=\"w\"/>' + loc.repeat_radio_day_type2 + '</label> ' + '</div> ' + '<div style=\"display:none;\" id=\"dhx_repeat_week\">' + '<label>' + loc.repeat_week + '<input class=\"dhx_repeat_text\" type=\"text\" name=\"week_count\" value=\"1\" /></label>' + '<span>' + loc.repeat_text_week_count + '</span><br /> ' + '<table class=\"dhx_repeat_days\"> ' + '<tr> ' + '<td> <label><input class=\"dhx_repeat_checkbox\" type=\"checkbox\" name=\"week_day\" value=\"1\" />' + loc.day_for_recurring[1] + '</label><br /> ' + '<label><input class=\"dhx_repeat_checkbox\" type=\"checkbox\" name=\"week_day\" value=\"4\" />' + loc.day_for_recurring[4] + '</label> </td> ' + '<td> <label><input class=\"dhx_repeat_checkbox\" type=\"checkbox\" name=\"week_day\" value=\"2\" />' + loc.day_for_recurring[2] + '</label><br /> ' + '<label><input class=\"dhx_repeat_checkbox\" type=\"checkbox\" name=\"week_day\" value=\"5\" />' + loc.day_for_recurring[5] + '</label> </td> ' + '<td> <label><input class=\"dhx_repeat_checkbox\" type=\"checkbox\" name=\"week_day\" value=\"3\" />' + loc.day_for_recurring[3] + '</label><br /> ' + '<label><input class=\"dhx_repeat_checkbox\" type=\"checkbox\" name=\"week_day\" value=\"6\" />' + loc.day_for_recurring[6] + '</label> </td> ' + '<td> <label><input class=\"dhx_repeat_checkbox\" type=\"checkbox\" name=\"week_day\" value=\"0\" />' + loc.day_for_recurring[0] + '</label><br /><br /> </td> ' + '</tr> ' + '</table> ' + '</div> ' + '<div id=\"dhx_repeat_month\"> ' + '<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><br /> ' + '<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\">' + '\t<option value=\"1\" selected >' + scheduler.locale.date.day_full[1] + '<option value=\"2\">' + scheduler.locale.date.day_full[2] + '<option value=\"3\">' + scheduler.locale.date.day_full[3] + '<option value=\"4\">' + scheduler.locale.date.day_full[4] + '<option value=\"5\">' + scheduler.locale.date.day_full[5] + '<option value=\"6\">' + scheduler.locale.date.day_full[6] + '<option value=\"0\">' + scheduler.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><br /> ' + '</div> ' + '<div style=\"display:none;\" id=\"dhx_repeat_year\"> ' + '<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><br /> ' + '<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 >' + scheduler.locale.date.day_full[1] + '<option value=\"2\">' + scheduler.locale.date.day_full[2] + '<option value=\"3\">' + scheduler.locale.date.day_full[3] + '<option value=\"4\">' + scheduler.locale.date.day_full[4] + '<option value=\"5\">' + scheduler.locale.date.day_full[5] + '<option value=\"6\">' + scheduler.locale.date.day_full[6] + '<option value=\"7\">' + scheduler.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><br /> ' + '</div> ' + '</div> ' + '<div class=\"dhx_repeat_divider\">' + '</div> ' + '<div class=\"dhx_repeat_right\"> ' + '<label><input class=\"dhx_repeat_radio\" type=\"radio\" name=\"end\" checked/>' + loc.repeat_radio_end + '</label><br /> ' + '<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 + '<br /> ' + '<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=\"' + scheduler.config.repeat_date_of_end + '\" /><br /> ' + '</div> ' + '</form> ' + '</div> ' + '<div style=\"clear:both\"> ' + '</div>';\n },\n _ds: {},\n _get_form_node: function _get_form_node(els, name, value) {\n var col = els[name];\n if (!col) return null;\n if (col.nodeName) return col;\n\n if (col.length) {\n for (var i = 0; i < col.length; i++) {\n if (col[i].value == value) return col[i];\n }\n }\n },\n _get_node_value: function _get_node_value(els, name, multiselect) {\n var col = els[name];\n if (!col) return \"\";\n\n if (col.length) {\n if (multiselect) {\n var res = [];\n\n for (var i = 0; i < col.length; i++) {\n if (col[i].checked) res.push(col[i].value);\n }\n\n return res;\n } else {\n for (var i = 0; i < col.length; i++) {\n if (col[i].checked) return col[i].value;\n }\n }\n }\n\n if (col.value) return !multiselect ? col.value : [col.value];\n },\n _get_node_numeric_value: function _get_node_numeric_value(els, name) {\n var value = scheduler.form_blocks[\"recurring\"]._get_node_value(els, name);\n\n return value * 1 || 0;\n },\n _set_node_value: function _set_node_value(els, name, value) {\n var col = els[name];\n if (!col) return;\n\n if (col.name == name) {\n col.value = value;\n } else if (col.length) {\n var hash_value = _typeof(value) == \"object\";\n\n for (var i = 0; i < col.length; i++) {\n if (hash_value || col[i].value == value) {\n col[i].checked = hash_value ? !!value[col[i].value] : !!value;\n }\n }\n }\n },\n _init_set_value: function _init_set_value(node, value, ev) {\n var block = scheduler.form_blocks[\"recurring\"];\n var get_value = block._get_node_value;\n var set_value = block._set_node_value;\n scheduler.form_blocks[\"recurring\"]._ds = {\n start: ev.start_date,\n end: ev._end_date\n };\n var str_date_format = scheduler.date.str_to_date(scheduler.config.repeat_date, false, true);\n\n var str_date = function str_date(_str_date) {\n var date = str_date_format(_str_date);\n if (scheduler.config.include_end_by) date = scheduler.date.add(date, 1, 'day');\n return date;\n };\n\n var date_str = scheduler.date.date_to_str(scheduler.config.repeat_date);\n var top = node.getElementsByTagName(\"FORM\")[0];\n var els = {};\n\n function register_els(inps) {\n for (var i = 0; i < inps.length; i++) {\n var inp = inps[i];\n\n if (inp.name) {\n if (!els[inp.name]) {\n els[inp.name] = inp;\n } else if (els[inp.name].nodeType) {\n var node = els[inp.name];\n els[inp.name] = [node, inp];\n } else {\n els[inp.name].push(inp);\n }\n }\n }\n }\n\n register_els(top.getElementsByTagName(\"INPUT\"));\n register_els(top.getElementsByTagName(\"SELECT\"));\n\n if (!scheduler.config.repeat_date_of_end) {\n var formatter = scheduler.date.date_to_str(scheduler.config.repeat_date);\n scheduler.config.repeat_date_of_end = formatter(scheduler.date.add(scheduler._currentDate(), 30, \"day\"));\n }\n\n set_value(els, \"date_of_end\", scheduler.config.repeat_date_of_end);\n\n var $ = function $(a) {\n return document.getElementById(a) || {\n style: {}\n }; //return fake object if node not found\n };\n\n function change_current_view() {\n $(\"dhx_repeat_day\").style.display = \"none\";\n $(\"dhx_repeat_week\").style.display = \"none\";\n $(\"dhx_repeat_month\").style.display = \"none\";\n $(\"dhx_repeat_year\").style.display = \"none\";\n $(\"dhx_repeat_\" + this.value).style.display = \"block\";\n scheduler.setLightboxSize();\n }\n\n function get_repeat_code(dates) {\n var code = [get_value(els, \"repeat\")];\n get_rcode[code[0]](code, dates);\n\n while (code.length < 5) {\n code.push(\"\");\n }\n\n var repeat = \"\";\n var end = get_end_rule(els);\n\n if (end == \"no\") {\n dates.end = new Date(9999, 1, 1);\n repeat = \"no\";\n } else if (end == \"date_of_end\") {\n dates.end = str_date(get_value(els, \"date_of_end\"));\n } else {\n scheduler.transpose_type(code.join(\"_\"));\n repeat = Math.max(1, get_value(els, \"occurences_count\"));\n var transp = 0; //var transp = ((code[0] == \"week\" && code[4] && code[4].toString().indexOf(scheduler.config.start_on_monday ? 1 : 0) == -1) ? 1 : 0);\n // which is equal to following code, seems to produce extra instance, not clear why needed\n\n /*if(code[0] == \"week\"){\r\n \tvar days = code[4] || \"\";\r\n \tif(scheduler.config.start_on_monday){\r\n \t\tif(days.indexOf(1) == -1)\r\n \t\ttransp = 1;\r\n \t}else{\r\n \t\tif(days.indexOf(0) == -1)\r\n \t\ttransp = 1;\r\n \t}\r\n }*/\n //\tdates.end = scheduler.date.add(new Date(dates.start), repeat + transp, code.join(\"_\"));\n\n dates.end = scheduler.date[\"add_\" + code.join(\"_\")](new Date(dates.start), repeat + transp, {\n start_date: dates.start\n }) || dates.start;\n }\n\n return code.join(\"_\") + \"#\" + repeat;\n }\n\n function get_end_rule(els) {\n var end = els[\"end\"];\n\n if (end.length) {\n for (var i = 0; i < end.length; i++) {\n if (end[i].checked) {\n if (end[i].value && end[i].value != \"on\") {\n //seems to be default value:var input = document.createElement(\"input\"); input.type = \"radio\"; input.value\n return end[i].value;\n } else {\n if (!i) {\n return \"no\";\n } else if (i == 2) {\n return \"date_of_end\";\n } else {\n return \"occurences_count\";\n }\n }\n }\n }\n } else {\n if (end.value) return end.value;\n }\n\n return \"no\";\n }\n\n function set_end_rule(els, value) {\n var end = els[\"end\"];\n\n if (end.length) {\n var has_values = !!end[0].value && end[0].value != \"on\";\n\n if (has_values) {\n for (var i = 0; i < end.length; i++) {\n if (end[i].value == value) end[i].checked = true;\n }\n } else {\n var ind = 0;\n\n switch (value) {\n case \"no\":\n ind = 0;\n break;\n\n case \"date_of_end\":\n ind = 2;\n break;\n\n default:\n ind = 1;\n break;\n }\n\n end[ind].checked = true;\n }\n } else {\n end.value = value;\n }\n }\n\n scheduler.form_blocks[\"recurring\"]._get_repeat_code = get_repeat_code;\n var get_rcode = {\n month: function month(code, dates) {\n var get_value = scheduler.form_blocks[\"recurring\"]._get_node_value;\n var get_numeric_value = scheduler.form_blocks[\"recurring\"]._get_node_numeric_value;\n\n if (get_value(els, \"month_type\") == \"d\") {\n code.push(Math.max(1, get_numeric_value(els, \"month_count\")));\n dates.start.setDate(get_value(els, \"month_day\"));\n } else {\n code.push(Math.max(1, get_numeric_value(els, \"month_count2\")));\n code.push(get_value(els, \"month_day2\"));\n code.push(Math.max(1, get_numeric_value(els, \"month_week2\")));\n\n if (!scheduler.config.repeat_precise) {\n dates.start.setDate(1);\n }\n }\n\n dates._start = true;\n },\n week: function week(code, dates) {\n var get_value = scheduler.form_blocks[\"recurring\"]._get_node_value;\n var get_numeric_value = scheduler.form_blocks[\"recurring\"]._get_node_numeric_value;\n code.push(Math.max(1, get_numeric_value(els, \"week_count\")));\n code.push(\"\");\n code.push(\"\");\n var t = [];\n var col = get_value(els, \"week_day\", true); //var col = els[\"week_day\"];\n\n var day = dates.start.getDay();\n var start_exists = false;\n\n for (var i = 0; i < col.length; i++) {\n t.push(col[i]);\n start_exists = start_exists || col[i] == day;\n }\n\n if (!t.length) {\n t.push(day);\n start_exists = true;\n }\n\n t.sort();\n\n if (!scheduler.config.repeat_precise) {\n dates.start = scheduler.date.week_start(dates.start);\n dates._start = true;\n } else if (!start_exists) {\n scheduler.transpose_day_week(dates.start, t, 1, 7);\n dates._start = true;\n }\n\n code.push(t.join(\",\"));\n },\n day: function day(code) {\n var get_value = scheduler.form_blocks[\"recurring\"]._get_node_value;\n var get_numeric_value = scheduler.form_blocks[\"recurring\"]._get_node_numeric_value;\n\n if (get_value(els, \"day_type\") == \"d\") {\n code.push(Math.max(1, get_numeric_value(els, \"day_count\")));\n } else {\n code.push(\"week\");\n code.push(1);\n code.push(\"\");\n code.push(\"\");\n code.push(scheduler.config.recurring_workdays.join(\",\"));\n code.splice(0, 1);\n }\n },\n year: function year(code, dates) {\n var get_value = scheduler.form_blocks[\"recurring\"]._get_node_value;\n\n if (get_value(els, \"year_type\") == \"d\") {\n code.push(\"1\");\n dates.start.setMonth(0);\n dates.start.setDate(get_value(els, \"year_day\"));\n dates.start.setMonth(get_value(els, \"year_month\"));\n } else {\n code.push(\"1\");\n code.push(get_value(els, \"year_day2\"));\n code.push(get_value(els, \"year_week2\"));\n dates.start.setDate(1);\n dates.start.setMonth(get_value(els, \"year_month2\"));\n }\n\n dates._start = true;\n }\n };\n var set_rcode = {\n week: function week(code, dates) {\n var set_value = scheduler.form_blocks[\"recurring\"]._set_node_value;\n set_value(els, \"week_count\", code[1]);\n var t = code[4].split(\",\");\n var d = {};\n\n for (var i = 0; i < t.length; i++) {\n d[t[i]] = true;\n }\n\n set_value(els, \"week_day\", d); //for (var i = 0; i < col.length; i++)\n //\tcol[i].checked = (!!d[col[i].value]);\n },\n month: function month(code, dates) {\n var set_value = scheduler.form_blocks[\"recurring\"]._set_node_value;\n\n if (code[2] === \"\") {\n set_value(els, \"month_type\", \"d\");\n set_value(els, \"month_count\", code[1]);\n set_value(els, \"month_day\", dates.start.getDate());\n } else {\n set_value(els, \"month_type\", \"w\");\n set_value(els, \"month_count2\", code[1]);\n set_value(els, \"month_week2\", code[3]);\n set_value(els, \"month_day2\", code[2]);\n }\n },\n day: function day(code, dates) {\n var set_value = scheduler.form_blocks[\"recurring\"]._set_node_value;\n set_value(els, \"day_type\", \"d\");\n set_value(els, \"day_count\", code[1]);\n },\n year: function year(code, dates) {\n var set_value = scheduler.form_blocks[\"recurring\"]._set_node_value;\n\n if (code[2] === \"\") {\n set_value(els, \"year_type\", \"d\");\n set_value(els, \"year_day\", dates.start.getDate());\n set_value(els, \"year_month\", dates.start.getMonth());\n } else {\n set_value(els, \"year_type\", \"w\");\n set_value(els, \"year_week2\", code[3]);\n set_value(els, \"year_day2\", code[2]);\n set_value(els, \"year_month2\", dates.start.getMonth());\n }\n }\n };\n\n function set_repeat_code(code, dates) {\n var set_value = scheduler.form_blocks[\"recurring\"]._set_node_value;\n var data = code.split(\"#\");\n code = data[0].split(\"_\");\n set_rcode[code[0]](code, dates);\n\n switch (data[1]) {\n case \"no\":\n set_end_rule(els, \"no\");\n break;\n\n case \"\":\n set_end_rule(els, \"date_of_end\");\n var end_date = dates.end;\n\n if (scheduler.config.include_end_by) {\n end_date = scheduler.date.add(end_date, -1, 'day');\n }\n\n set_value(els, \"date_of_end\", date_str(end_date));\n break;\n\n default:\n set_end_rule(els, \"occurences_count\");\n set_value(els, \"occurences_count\", data[1]);\n break;\n }\n\n set_value(els, \"repeat\", code[0]); //e.checked = true;\n\n var node = scheduler.form_blocks[\"recurring\"]._get_form_node(els, \"repeat\", code[0]);\n\n if (node.nodeName == \"SELECT\"\n /* && node.onchange*/\n ) {\n //\tnode.onchange();\n node.dispatchEvent(new Event('change'));\n node.dispatchEvent(new MouseEvent('click'));\n } else {\n node.dispatchEvent(new MouseEvent('click'));\n }\n }\n\n scheduler.form_blocks[\"recurring\"]._set_repeat_code = set_repeat_code;\n\n for (var i = 0; i < top.elements.length; i++) {\n var el = top.elements[i];\n\n switch (el.name) {\n case \"repeat\":\n if (el.nodeName == \"SELECT\" && !el.$_eventAttached) {\n el.$_eventAttached = true;\n el.addEventListener(\"change\", change_current_view);\n } else if (!el.$_eventAttached) {\n el.$_eventAttached = true;\n el.addEventListener(\"click\", change_current_view);\n }\n\n break;\n }\n }\n\n scheduler._lightbox._rec_init_done = true;\n },\n set_value: function set_value(node, value, ev) {\n var rf = scheduler.form_blocks[\"recurring\"];\n if (!scheduler._lightbox._rec_init_done) rf._init_set_value(node, value, ev);\n node.open = !ev.rec_type;\n node.blocked = this._is_modified_occurence(ev);\n var ds = rf._ds;\n ds.start = ev.start_date;\n ds.end = ev._end_date;\n\n rf._toggle_block();\n\n if (value) rf._set_repeat_code(value, ds);\n },\n get_value: function get_value(node, ev) {\n if (node.open) {\n var ds = scheduler.form_blocks[\"recurring\"]._ds;\n var actual_dates = {};\n var timeControl = getTimeSection();\n timeControl.getValue(actual_dates);\n ds.start = actual_dates.start_date;\n ev.rec_type = scheduler.form_blocks[\"recurring\"]._get_repeat_code(ds);\n\n if (ds._start) {\n ev.start_date = new Date(ds.start);\n ev._start_date = new Date(ds.start);\n ds._start = false;\n } else ev._start_date = null;\n\n ev._end_date = ds.end;\n ev.rec_pattern = ev.rec_type.split(\"#\")[0];\n } else {\n ev.rec_type = ev.rec_pattern = \"\";\n ev._end_date = ev.end_date;\n }\n\n return ev.rec_type;\n },\n _get_button: function _get_button() {\n var node = getRecurringSection().header;\n return node.firstChild.firstChild;\n },\n _get_form: function _get_form() {\n return getRecurringSection().node;\n },\n open: function open() {\n var block = scheduler.form_blocks.recurring;\n\n var cont = block._get_form();\n\n if (!cont.open) block._toggle_block();\n },\n close: function close() {\n var block = scheduler.form_blocks.recurring;\n\n var cont = block._get_form();\n\n if (cont.open) block._toggle_block();\n },\n _toggle_block: function _toggle_block() {\n var block = scheduler.form_blocks.recurring;\n\n var cont = block._get_form(),\n el = block._get_button();\n\n if (!cont.open && !cont.blocked) {\n cont.style.height = \"auto\"; //reset to default value\n\n if (el) {\n el.style.backgroundPosition = \"-5px 0px\";\n el.nextSibling.innerHTML = scheduler.locale.labels.button_recurring_open;\n }\n } else {\n cont.style.height = \"0px\";\n\n if (el) {\n el.style.backgroundPosition = \"-5px 20px\";\n el.nextSibling.innerHTML = scheduler.locale.labels.button_recurring;\n }\n }\n\n cont.open = !cont.open;\n scheduler.setLightboxSize();\n },\n focus: function focus(node) {},\n button_click: function button_click(node, button, event) {\n var block = scheduler.form_blocks.recurring;\n\n var cont = block._get_form();\n\n if (!cont.blocked) scheduler.form_blocks.recurring._toggle_block();\n }\n };\n\n function getTimeSection() {\n var timeControl = scheduler.formSection('time');\n\n if (!timeControl) {\n timeControl = getFirstSectionOfType('time');\n }\n\n if (!timeControl) {\n timeControl = getFirstSectionOfType('calendar_time');\n }\n\n if (!timeControl) {\n throw new Error([\"Can't calculate the recurring rule, the Recurring form block can't find the Time control. Make sure you have the time control in 'scheduler.config.lightbox.sections' config.\", \"You can use either the default time control https://docs.dhtmlx.com/scheduler/time.html, or the datepicker https://docs.dhtmlx.com/scheduler/minicalendar.html, or a custom control. \", \"In the latter case, make sure the control is named \\\"time\\\":\", \"\", \"scheduler.config.lightbox.sections = [\", \"{name:\\\"time\\\", height:72, type:\\\"YOU CONTROL\\\", map_to:\\\"auto\\\" }];\"].join(\"\\n\"));\n }\n\n return timeControl;\n }\n\n function getRecurringSection() {\n var recurringSection = scheduler.formSection('recurring');\n\n if (!recurringSection) {\n recurringSection = getFirstSectionOfType('recurring');\n }\n\n if (!recurringSection) {\n throw new Error([\"Can't locate the Recurring form section.\", \"Make sure that you have the recurring control on the lightbox configuration https://docs.dhtmlx.com/scheduler/recurring_events.html#recurringlightbox \", \"and that the recurring control has name \\\"recurring\\\":\", \"\", \"scheduler.config.lightbox.sections = [\", \"\t{name:\\\"recurring\\\", ... }\", \"];\"].join(\"\\n\"));\n }\n\n return recurringSection;\n }\n\n function getFirstSectionOfType(type) {\n for (var i = 0; i < scheduler.config.lightbox.sections.length; i++) {\n var section = scheduler.config.lightbox.sections[i];\n\n if (section.type === type) {\n return scheduler.formSection(section.name);\n }\n }\n\n return null;\n } //problem may occur if we will have two repeating events in the same moment of time\n\n\n scheduler._rec_markers = {};\n scheduler._rec_markers_pull = {};\n\n scheduler._add_rec_marker = function (ev, time) {\n ev._pid_time = time;\n this._rec_markers[ev.id] = ev;\n if (!this._rec_markers_pull[ev.event_pid]) this._rec_markers_pull[ev.event_pid] = {};\n this._rec_markers_pull[ev.event_pid][time] = ev;\n };\n\n scheduler._get_rec_marker = function (time, id) {\n var ch = this._rec_markers_pull[id];\n if (ch) return ch[time];\n return null;\n };\n\n scheduler._get_rec_markers = function (id) {\n return this._rec_markers_pull[id] || [];\n };\n\n function clearMilliseconds(date) {\n //\treturn date;\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n }\n\n scheduler._rec_temp = [];\n\n (function () {\n var old_add_event = scheduler.addEvent;\n\n scheduler.addEvent = function (start_date, end_date, text, id, extra_data) {\n var ev_id = old_add_event.apply(this, arguments);\n\n if (ev_id && scheduler.getEvent(ev_id)) {\n var ev = scheduler.getEvent(ev_id);\n\n if (ev.start_date) {\n ev.start_date = clearMilliseconds(ev.start_date);\n }\n\n if (ev.end_date) {\n ev.end_date = clearMilliseconds(ev.end_date);\n }\n\n if (this._is_modified_occurence(ev)) scheduler._add_rec_marker(ev, ev.event_length * 1000);\n if (ev.rec_type) ev.rec_pattern = ev.rec_type.split(\"#\")[0];\n }\n\n return ev_id;\n };\n })();\n\n scheduler.attachEvent(\"onEventIdChange\", function (id, new_id) {\n if (this._ignore_call) return;\n this._ignore_call = true;\n\n if (scheduler._rec_markers[id]) {\n //important for for correct work of scheduler.getEvents(from, to) and collision detection\n scheduler._rec_markers[new_id] = scheduler._rec_markers[id];\n delete scheduler._rec_markers[id];\n }\n\n if (scheduler._rec_markers_pull[id]) {\n scheduler._rec_markers_pull[new_id] = scheduler._rec_markers_pull[id];\n delete scheduler._rec_markers_pull[id];\n }\n\n for (var i = 0; i < this._rec_temp.length; i++) {\n var tev = this._rec_temp[i];\n\n if (tev.event_pid == id) {\n tev.event_pid = new_id;\n this.changeEventId(tev.id, new_id + \"#\" + tev.id.split(\"#\")[1]);\n }\n }\n\n for (var i in this._rec_markers) {\n var tev = this._rec_markers[i];\n\n if (tev.event_pid == id) {\n tev.event_pid = new_id;\n tev._pid_changed = true;\n }\n }\n\n var el = scheduler._rec_markers[new_id];\n\n if (el && el._pid_changed) {\n delete el._pid_changed;\n setTimeout(function () {\n scheduler.callEvent(\"onEventChanged\", [new_id, scheduler.getEvent(new_id)]);\n }, 1);\n }\n\n delete this._ignore_call;\n });\n scheduler.attachEvent(\"onConfirmedBeforeEventDelete\", function (id) {\n var ev = this.getEvent(id);\n\n if (this._is_virtual_event(id) || this._is_modified_occurence(ev) && ev.rec_type && ev.rec_type != 'none') {\n id = id.split(\"#\");\n var nid = this.uid();\n var tid = id[1] ? id[1] : Math.round(ev._pid_time / 1000);\n\n var nev = this._copy_event(ev);\n\n nev.id = nid;\n nev.event_pid = ev.event_pid || id[0];\n var timestamp = tid;\n nev.event_length = timestamp;\n nev.rec_type = nev.rec_pattern = \"none\";\n this.addEvent(nev);\n\n this._add_rec_marker(nev, timestamp * 1000);\n } else {\n if (ev.rec_type && this._lightbox_id) this._roll_back_dates(ev);\n\n var sub = this._get_rec_markers(id);\n\n for (var i in sub) {\n if (sub.hasOwnProperty(i)) {\n id = sub[i].id;\n if (this.getEvent(id)) this.deleteEvent(id, true);\n }\n }\n }\n\n return true;\n });\n scheduler.attachEvent(\"onEventDeleted\", function (id, ev) {\n if (!this._is_virtual_event(id) && this._is_modified_occurence(ev)) {\n if (!scheduler._events[id]) {\n ev.rec_type = ev.rec_pattern = \"none\";\n this.setEvent(id, ev);\n }\n }\n });\n scheduler.attachEvent(\"onEventChanged\", function (id, event) {\n if (this._loading) return true;\n var ev = this.getEvent(id);\n\n if (this._is_virtual_event(id)) {\n var id = id.split(\"#\");\n var nid = this.uid();\n this._not_render = true;\n\n var nev = this._copy_event(event);\n\n nev.id = nid;\n nev.event_pid = id[0];\n var timestamp = id[1];\n nev.event_length = timestamp;\n nev.rec_type = nev.rec_pattern = \"\";\n\n this._add_rec_marker(nev, timestamp * 1000);\n\n this.addEvent(nev);\n this._not_render = false;\n } else {\n if (ev.start_date) {\n ev.start_date = clearMilliseconds(ev.start_date);\n }\n\n if (ev.end_date) {\n ev.end_date = clearMilliseconds(ev.end_date);\n }\n\n if (ev.rec_type && this._lightbox_id) {\n this._roll_back_dates(ev);\n }\n\n var sub = this._get_rec_markers(id);\n\n for (var i in sub) {\n if (sub.hasOwnProperty(i)) {\n delete this._rec_markers[sub[i].id];\n this.deleteEvent(sub[i].id, true);\n }\n }\n\n delete this._rec_markers_pull[id]; // it's possible that after editing event is no longer exists, in such case we need to remove _select_id flag\n\n var isEventFound = false;\n\n for (var k = 0; k < this._rendered.length; k++) {\n if (this._rendered[k].getAttribute(this.config.event_attribute) == id) isEventFound = true;\n }\n\n if (!isEventFound) this._select_id = null;\n }\n\n return true;\n });\n scheduler.attachEvent(\"onEventAdded\", function (id) {\n if (!this._loading) {\n var ev = this.getEvent(id);\n\n if (ev.rec_type && !ev.event_length) {\n this._roll_back_dates(ev);\n }\n }\n\n return true;\n });\n scheduler.attachEvent(\"onEventSave\", function (id, data, is_new_event) {\n var ev = this.getEvent(id);\n if (!ev.rec_type && data.rec_type && !this._is_virtual_event(id)) this._select_id = null;\n return true;\n });\n scheduler.attachEvent(\"onEventCreated\", function (id) {\n var ev = this.getEvent(id);\n if (!ev.rec_type) ev.rec_type = ev.rec_pattern = ev.event_length = ev.event_pid = \"\";\n return true;\n });\n scheduler.attachEvent(\"onEventCancel\", function (id) {\n var ev = this.getEvent(id);\n\n if (ev.rec_type) {\n this._roll_back_dates(ev); // a bit expensive, but we need to be sure that event re-rendered, because view can be corrupted by resize , during edit process\n\n\n this.render_view_data();\n }\n });\n\n scheduler._roll_back_dates = function (ev) {\n if (ev.start_date) {\n ev.start_date = clearMilliseconds(ev.start_date);\n }\n\n if (ev.end_date) {\n ev.end_date = clearMilliseconds(ev.end_date);\n }\n\n ev.event_length = Math.round((ev.end_date.valueOf() - ev.start_date.valueOf()) / 1000);\n ev.end_date = ev._end_date;\n\n if (ev._start_date) {\n ev.start_date.setMonth(0);\n ev.start_date.setDate(ev._start_date.getDate());\n ev.start_date.setMonth(ev._start_date.getMonth());\n ev.start_date.setFullYear(ev._start_date.getFullYear());\n }\n };\n\n scheduler._is_virtual_event = function (id) {\n return id.toString().indexOf(\"#\") != -1;\n };\n\n scheduler._is_modified_occurence = function (ev) {\n return ev.event_pid && ev.event_pid != \"0\";\n };\n\n scheduler._validId = function (id) {\n return !this._is_virtual_event(id);\n };\n\n scheduler.showLightbox_rec = scheduler.showLightbox;\n\n scheduler.showLightbox = function (id) {\n var locale = this.locale;\n var c = scheduler.config.lightbox_recurring;\n var ev = this.getEvent(id);\n var pid = ev.event_pid;\n\n var isVirtual = this._is_virtual_event(id);\n\n if (isVirtual) pid = id.split(\"#\")[0]; // show series\n\n var showSeries = function showSeries(id) {\n var event = scheduler.getEvent(id);\n event._end_date = event.end_date;\n event.end_date = new Date(event.start_date.valueOf() + event.event_length * 1000);\n return scheduler.showLightbox_rec(id); // editing series\n };\n\n if ((pid || pid * 1 === 0) && ev.rec_type) {\n // direct API call on series id\n return showSeries(id);\n }\n\n if (!pid || pid === '0' || !locale.labels.confirm_recurring || c == 'instance' || c == 'series' && !isVirtual) {\n // editing instance or non recurring event\n return this.showLightbox_rec(id);\n }\n\n if (c == 'ask') {\n var that = this;\n scheduler.modalbox({\n text: locale.labels.confirm_recurring,\n title: locale.labels.title_confirm_recurring,\n width: \"500px\",\n position: \"middle\",\n buttons: [locale.labels.button_edit_series, locale.labels.button_edit_occurrence, locale.labels.icon_cancel],\n callback: function callback(index) {\n switch (+index) {\n case 0:\n return showSeries(pid);\n\n case 1:\n return that.showLightbox_rec(id);\n\n case 2:\n return;\n }\n }\n });\n } else {\n showSeries(pid);\n }\n };\n\n scheduler.get_visible_events_rec = scheduler.get_visible_events;\n\n scheduler.get_visible_events = function (only_timed) {\n for (var i = 0; i < this._rec_temp.length; i++) {\n delete this._events[this._rec_temp[i].id];\n }\n\n this._rec_temp = [];\n var stack = this.get_visible_events_rec(only_timed);\n var out = [];\n\n for (var i = 0; i < stack.length; i++) {\n if (stack[i].rec_type) {\n //deleted element of series\n if (stack[i].rec_pattern != \"none\") this.repeat_date(stack[i], out);\n } else out.push(stack[i]);\n }\n\n return out;\n };\n\n (function () {\n var old = scheduler.isOneDayEvent;\n\n scheduler.isOneDayEvent = function (ev) {\n if (ev.rec_type) return true;\n return old.call(this, ev);\n };\n\n var old_update_event = scheduler.updateEvent;\n\n scheduler.updateEvent = function (id) {\n var ev = scheduler.getEvent(id);\n\n if (ev && ev.rec_type) {\n //rec_type can be changed without the lightbox,\n // make sure rec_pattern updated as well\n ev.rec_pattern = (ev.rec_type || \"\").split(\"#\")[0];\n }\n\n if (ev && ev.rec_type && !this._is_virtual_event(id)) {\n scheduler.update_view();\n } else {\n old_update_event.call(this, id);\n }\n };\n })();\n\n scheduler.transponse_size = {\n day: 1,\n week: 7,\n month: 1,\n year: 12\n };\n\n scheduler.date.day_week = function (sd, day, week) {\n sd.setDate(1);\n var originalMonth = scheduler.date.month_start(new Date(sd));\n week = (week - 1) * 7;\n var cday = sd.getDay();\n var nday = day * 1 + week - cday + 1;\n sd.setDate(nday <= week ? nday + 7 : nday);\n var newMonth = scheduler.date.month_start(new Date(sd));\n\n if (originalMonth.valueOf() !== newMonth.valueOf()) {\n return false;\n }\n\n return true;\n };\n\n scheduler.transpose_day_week = function (sd, list, cor, size, cor2) {\n var cday = (sd.getDay() || (scheduler.config.start_on_monday ? 7 : 0)) - cor;\n\n for (var i = 0; i < list.length; i++) {\n if (list[i] > cday) return sd.setDate(sd.getDate() + list[i] * 1 - cday - (size ? cor : cor2));\n }\n\n this.transpose_day_week(sd, list, cor + size, null, cor);\n };\n\n scheduler.transpose_type = function (type) {\n var transposeRecurring = \"transpose_\" + type;\n\n if (!this.date[transposeRecurring]) {\n var recurringParts = type.split(\"_\");\n var dayDurationMs = 60 * 60 * 24 * 1000;\n var addRecurring = \"add_\" + type;\n var recurringStepDays = this.transponse_size[recurringParts[0]] * recurringParts[1];\n\n if (recurringParts[0] == \"day\" || recurringParts[0] == \"week\") {\n var weekDays = null;\n\n if (recurringParts[4]) {\n weekDays = recurringParts[4].split(\",\");\n\n if (scheduler.config.start_on_monday) {\n for (var i = 0; i < weekDays.length; i++) {\n weekDays[i] = weekDays[i] * 1 || 7;\n }\n\n weekDays.sort();\n }\n }\n\n this.date[transposeRecurring] = function (nd, td) {\n var delta = Math.floor((td.valueOf() - nd.valueOf()) / (dayDurationMs * recurringStepDays));\n if (delta > 0) nd.setDate(nd.getDate() + delta * recurringStepDays);\n if (weekDays) scheduler.transpose_day_week(nd, weekDays, 1, recurringStepDays);\n return nd;\n };\n\n this.date[addRecurring] = function (sd, inc) {\n var nd = new Date(sd.valueOf());\n\n if (weekDays) {\n for (var count = 0; count < inc; count++) {\n scheduler.transpose_day_week(nd, weekDays, 0, recurringStepDays);\n }\n } else nd.setDate(nd.getDate() + inc * recurringStepDays);\n\n return nd;\n };\n } else if (recurringParts[0] == \"month\" || recurringParts[0] == \"year\") {\n this.date[transposeRecurring] = function (nd, td, seriesInstance) {\n var delta = Math.ceil((td.getFullYear() * 12 + td.getMonth() * 1 + 1 - (nd.getFullYear() * 12 + nd.getMonth() * 1 + 1)) / recurringStepDays - 1);\n\n if (delta >= 0) {\n nd.setDate(1);\n nd.setMonth(nd.getMonth() + delta * recurringStepDays);\n }\n\n return scheduler.date[addRecurring](nd, 0, seriesInstance); //if (str[3]){\n //\tscheduler.date.day_week(nd, str[2], str[3]);\n //}\n };\n\n this.date[addRecurring] = function (sd, inc, seriesInstance, currentCount) {\n if (!currentCount) {\n currentCount = 1;\n } else {\n currentCount++;\n }\n\n var maxCount = 12;\n\n if (currentCount > maxCount) {\n return null;\n }\n\n var nd = new Date(sd.valueOf());\n nd.setDate(1);\n nd.setMonth(nd.getMonth() + inc * recurringStepDays);\n var origMonth = nd.getMonth();\n var origYear = nd.getFullYear();\n nd.setDate(seriesInstance.start_date.getDate());\n\n if (recurringParts[3]) {\n scheduler.date.day_week(nd, recurringParts[2], recurringParts[3]);\n }\n\n var correctOverflowInstances = scheduler.config.recurring_overflow_instances;\n\n if (nd.getMonth() != origMonth && correctOverflowInstances != \"none\") {\n // no such day in a month\n if (correctOverflowInstances === \"lastDay\") {\n // return either last day of the month\n nd = new Date(origYear, origMonth + 1, 0, nd.getHours(), nd.getMinutes(), nd.getSeconds(), nd.getMilliseconds());\n } else {\n // or go to the next instance\n nd = scheduler.date[addRecurring](new Date(origYear, origMonth + 1, 0), inc || 1, seriesInstance, currentCount); // if next instance is not possible (e.g. 'repeat on 40th day of the month') null will be returned\n }\n }\n\n return nd;\n };\n }\n }\n };\n\n scheduler.repeat_date = function (ev, stack, non_render, from, to, maxCount) {\n from = from || this._min_date;\n to = to || this._max_date;\n var max = maxCount || -1;\n var td = new Date(ev.start_date.valueOf());\n var startHour = td.getHours();\n var visibleCount = 0;\n if (!ev.rec_pattern && ev.rec_type) ev.rec_pattern = ev.rec_type.split(\"#\")[0];\n this.transpose_type(ev.rec_pattern);\n td = scheduler.date[\"transpose_\" + ev.rec_pattern](td, from, ev);\n\n while (td && (td < ev.start_date || scheduler._fix_daylight_saving_date(td, from, ev, td, new Date(td.valueOf() + ev.event_length * 1000)).valueOf() <= from.valueOf() || td.valueOf() + ev.event_length * 1000 <= from.valueOf())) {\n td = this.date[\"add_\" + ev.rec_pattern](td, 1, ev);\n }\n\n while (td && td < to && td < ev.end_date && (max < 0 || visibleCount < max)) {\n td.setHours(startHour);\n var timestamp = scheduler.config.occurrence_timestamp_in_utc ? Date.UTC(td.getFullYear(), td.getMonth(), td.getDate(), td.getHours(), td.getMinutes(), td.getSeconds()) : td.valueOf();\n\n var ch = this._get_rec_marker(timestamp, ev.id);\n\n if (!ch) {\n // unmodified element of series\n var ted = new Date(td.valueOf() + ev.event_length * 1000);\n\n var copy = this._copy_event(ev); //copy._timed = ev._timed;\n\n\n copy.text = ev.text;\n copy.start_date = td;\n copy.event_pid = ev.id;\n copy.id = ev.id + \"#\" + Math.round(timestamp / 1000);\n copy.end_date = ted;\n copy.end_date = scheduler._fix_daylight_saving_date(copy.start_date, copy.end_date, ev, td, copy.end_date);\n copy._timed = this.isOneDayEvent(copy);\n if (!copy._timed && !this._table_view && !this.config.multi_day) return;\n stack.push(copy);\n\n if (!non_render) {\n this._events[copy.id] = copy;\n\n this._rec_temp.push(copy);\n }\n\n visibleCount++;\n } else if (non_render) {\n if (ch.rec_type != \"none\") {\n visibleCount++;\n }\n\n stack.push(ch);\n }\n\n td = this.date[\"add_\" + ev.rec_pattern](td, 1, ev); //\tif(!scheduler.date[\"validate_add_\" + ev.rec_pattern](td, 1, ev.rec_pattern)){\n ///\t\talert(\"detect add\")\n //\t}\n }\n };\n\n scheduler._fix_daylight_saving_date = function (start_date, end_date, ev, counter, default_date) {\n var shift = start_date.getTimezoneOffset() - end_date.getTimezoneOffset();\n\n if (shift) {\n if (shift > 0) {\n // e.g. 24h -> 23h\n return new Date(counter.valueOf() + ev.event_length * 1000 - shift * 60 * 1000);\n } else {\n // e.g. 24h -> 25h\n return new Date(end_date.valueOf() - shift * 60 * 1000);\n }\n }\n\n return new Date(default_date.valueOf());\n };\n\n scheduler.getRecDates = function (id, max) {\n var ev = _typeof(id) == \"object\" ? id : scheduler.getEvent(id);\n var recurrings = [];\n max = max || 100;\n\n if (!ev.rec_type) {\n return [{\n start_date: ev.start_date,\n end_date: ev.end_date\n }];\n }\n\n if (ev.rec_type == \"none\") {\n return [];\n }\n\n scheduler.repeat_date(ev, recurrings, true, ev.start_date, ev.end_date, max);\n var result = [];\n\n for (var i = 0; i < recurrings.length; i++) {\n if (recurrings[i].rec_type != \"none\") {\n result.push({\n start_date: recurrings[i].start_date,\n end_date: recurrings[i].end_date\n });\n }\n }\n\n return result;\n };\n\n scheduler.getEvents = function (from, to) {\n var result = [];\n\n for (var a in this._events) {\n var ev = this._events[a];\n\n if (ev && ev.start_date < to && ev.end_date > from) {\n if (ev.rec_pattern) {\n if (ev.rec_pattern == \"none\") continue;\n var sev = [];\n this.repeat_date(ev, sev, true, from, to);\n\n for (var i = 0; i < sev.length; i++) {\n // if event is in rec_markers then it will be checked by himself, here need to skip it\n if (!sev[i].rec_pattern && sev[i].start_date < to && sev[i].end_date > from && !this._rec_markers[sev[i].id]) {\n result.push(sev[i]);\n }\n }\n } else if (!this._is_virtual_event(ev.id)) {\n // if it's virtual event we can skip it\n result.push(ev);\n }\n }\n }\n\n return result;\n };\n\n scheduler.config.repeat_date = \"%m.%d.%Y\";\n scheduler.config.lightbox.sections = [{\n name: \"description\",\n map_to: \"text\",\n type: \"textarea\",\n focus: true\n }, {\n name: \"recurring\",\n type: \"recurring\",\n map_to: \"rec_type\",\n button: \"recurring\"\n }, {\n name: \"time\",\n height: 72,\n type: \"time\",\n map_to: \"auto\"\n }]; //drop secondary attributes\n\n scheduler._copy_dummy = function (ev) {\n var start_date = new Date(this.start_date);\n var end_date = new Date(this.end_date);\n this.start_date = start_date;\n this.end_date = end_date;\n this.event_length = this.event_pid = this.rec_pattern = this.rec_type = null;\n };\n\n scheduler.config.include_end_by = false;\n scheduler.config.lightbox_recurring = 'ask'; // series, instance\n\n scheduler.attachEvent(\"onClearAll\", function () {\n scheduler._rec_markers = {}; //clear recurring events data\n\n scheduler._rec_markers_pull = {};\n scheduler._rec_temp = [];\n });\n}","import SchedulerFactory from \"./scheduler_factory\";\nimport gplExtensions from \"./ext/extensions_gpl\";\nvar factory = new SchedulerFactory(gplExtensions);\nvar scheduler = factory.getSchedulerInstance();\nvar Scheduler = {\n plugin: scheduler.bind(factory.plugin, factory)\n};\nwindow.scheduler = scheduler;\nwindow.Scheduler = Scheduler;\nexport default scheduler;\nexport { scheduler, Scheduler };","import active_links from \"./active_links\";\nimport agenda_view from \"./agenda_view\";\nimport all_timed from \"./all_timed\";\nimport collision from \"./collision\";\nimport container_autoresize from \"./container_autoresize\";\nimport cookie from \"./cookie\";\nimport daytimeline_restricted from \"./restricted_extensions/daytimeline\";\nimport drag_between_restricted from \"./restricted_extensions/drag_between\";\nimport editors from \"./editors\";\nimport expand from \"./expand\";\nimport grid_view from \"./restricted_extensions/grid_view\";\nimport html_templates from \"./html_templates\";\nimport key_nav from \"./key_nav\";\nimport layer from \"./layer\";\nimport limit from \"./limit\";\nimport map_view from \"./map_view\";\nimport minical from \"./minical\";\nimport monthheight from \"./monthheight\";\nimport multisection_restricted from \"./restricted_extensions/multisection\";\nimport multisource from \"./multisource\";\nimport mvc from \"./mvc\";\nimport outerdrag from \"./outerdrag\";\nimport pdf from \"./pdf\";\nimport quick_info from \"./quick_info\";\nimport readonly from \"./readonly\";\nimport recurring from \"./recurring\";\nimport serialize from \"./serialize\";\nimport timeline_restricted from \"./restricted_extensions/timeline\";\nimport tooltip from \"./tooltip\";\nimport treetimeline_restricted from \"./restricted_extensions/treetimeline\";\nimport units_restricted from \"./restricted_extensions/units\";\nimport url from \"./url\";\nimport week_agenda_restricted from \"./restricted_extensions/week_agenda\";\nimport wp from \"./wp\";\nimport year_view from \"./year_view\";\nexport default {\n active_links: active_links,\n agenda_view: agenda_view,\n all_timed: all_timed,\n collision: collision,\n container_autoresize: container_autoresize,\n cookie: cookie,\n daytimeline: daytimeline_restricted,\n drag_between: drag_between_restricted,\n editors: editors,\n expand: expand,\n grid_view: grid_view,\n html_templates: html_templates,\n key_nav: key_nav,\n layer: layer,\n limit: limit,\n map_view: map_view,\n minical: minical,\n monthheight: monthheight,\n multisection: multisection_restricted,\n multisource: multisource,\n mvc: mvc,\n outerdrag: outerdrag,\n pdf: pdf,\n quick_info: quick_info,\n readonly: readonly,\n recurring: recurring,\n serialize: serialize,\n timeline: timeline_restricted,\n tooltip: tooltip,\n treetimeline: treetimeline_restricted,\n units: units_restricted,\n url: url,\n week_agenda: week_agenda_restricted,\n wp: wp,\n year_view: year_view\n};","export default function (scheduler) {\n scheduler.config.active_link_view = \"day\";\n\n scheduler._active_link_click = function (e) {\n var start = e.target;\n var to = start.getAttribute(\"data-link-date\");\n var s_d = scheduler.date.str_to_date(scheduler.config.api_date, false, true);\n\n if (to) {\n scheduler.setCurrentView(s_d(to), scheduler.config.active_link_view);\n if (e && e.preventDefault) e.preventDefault();\n return false;\n }\n };\n\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n var do_wrapper = function do_wrapper(key, fullname) {\n fullname = fullname || key + \"_scale_date\";\n\n if (!scheduler.templates['_active_links_old_' + fullname]) {\n scheduler.templates['_active_links_old_' + fullname] = scheduler.templates[fullname];\n }\n\n var week_x = scheduler.templates['_active_links_old_' + fullname];\n var d_s = scheduler.date.date_to_str(scheduler.config.api_date);\n\n scheduler.templates[fullname] = function (date) {\n return \"<a data-link-date='\" + d_s(date) + \"' href='#'>\" + week_x(date) + \"</a>\";\n };\n };\n\n do_wrapper(\"week\");\n do_wrapper(\"\", \"month_day\");\n\n if (this.matrix) {\n for (var key in this.matrix) {\n do_wrapper(key);\n }\n }\n\n this._detachDomEvent(this._obj, \"click\", scheduler._active_link_click);\n\n scheduler.event(this._obj, \"click\", scheduler._active_link_click);\n });\n}","export default function (scheduler) {\n scheduler.date.add_agenda = function (date) {\n return scheduler.date.add(date, 1, \"year\");\n };\n\n scheduler.templates.agenda_time = function (start, end, ev) {\n if (ev._timed) return this.day_date(ev.start_date, ev.end_date, ev) + \" \" + this.event_date(start);else return scheduler.templates.day_date(start) + \" – \" + scheduler.templates.day_date(end);\n };\n\n scheduler.templates.agenda_text = function (start, end, event) {\n return event.text;\n };\n\n scheduler.templates.agenda_date = function () {\n return \"\";\n };\n\n scheduler.date.agenda_start = function () {\n return scheduler.date.date_part(scheduler._currentDate());\n };\n\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n var old_dblclick_dhx_cal_data = scheduler.dblclick_dhx_cal_data;\n\n scheduler.dblclick_dhx_cal_data = function () {\n if (this._mode == \"agenda\") {\n if (!this.config.readonly && this.config.dblclick_create) this.addEventNow();\n } else {\n if (old_dblclick_dhx_cal_data) return old_dblclick_dhx_cal_data.apply(this, arguments);\n }\n };\n\n var old = scheduler.render_data;\n\n scheduler.render_data = function (evs) {\n if (this._mode == \"agenda\") fill_agenda_tab();else return old.apply(this, arguments);\n };\n\n var old_render_view_data = scheduler.render_view_data;\n\n scheduler.render_view_data = function () {\n if (this._mode == \"agenda\") {\n scheduler._agendaScrollTop = scheduler._els[\"dhx_cal_data\"][0].childNodes[0].scrollTop;\n scheduler._els[\"dhx_cal_data\"][0].childNodes[0].scrollTop = 0;\n }\n\n return old_render_view_data.apply(this, arguments);\n };\n\n function set_full_view(mode) {\n if (mode) {\n var l = scheduler.locale.labels;\n\n var rowAttr = scheduler._waiAria.agendaHeadAttrString();\n\n var dateHeader = scheduler._waiAria.agendaHeadDateString(l.date);\n\n var descriptionHeader = scheduler._waiAria.agendaHeadDescriptionString(l.description);\n\n scheduler._els[\"dhx_cal_header\"][0].innerHTML = \"<div \" + rowAttr + \" class='dhx_agenda_line'>\" + \"<div \" + dateHeader + \">\" + l.date + \"</div>\" + \"<span class = 'description_header' style='padding-left:25px' \" + descriptionHeader + \">\" + l.description + \"</span>\" + \"</div>\";\n scheduler._table_view = true;\n scheduler.set_sizes();\n }\n }\n\n function fill_agenda_tab() {\n //select events for which data need to be printed\n var events = scheduler.get_visible_events();\n events.sort(function (a, b) {\n return a.start_date > b.start_date ? 1 : -1;\n });\n\n var tableAttr = scheduler._waiAria.agendaDataAttrString();\n\n var agendaEventAttrString; //generate html for the view\n\n var html = \"<div class='dhx_agenda_area' \" + tableAttr + \">\";\n\n for (var i = 0; i < events.length; i++) {\n var ev = events[i];\n var bg_color = ev.color ? \"background:\" + ev.color + \";\" : \"\";\n var color = ev.textColor ? \"color:\" + ev.textColor + \";\" : \"\";\n var ev_class = scheduler.templates.event_class(ev.start_date, ev.end_date, ev);\n agendaEventAttrString = scheduler._waiAria.agendaEventAttrString(ev);\n\n var agendaDetailsButtonAttr = scheduler._waiAria.agendaDetailsBtnString();\n\n html += \"<div \" + agendaEventAttrString + \" class='dhx_agenda_line\" + (ev_class ? ' ' + ev_class : '') + \"' event_id='\" + ev.id + \"' \" + scheduler.config.event_attribute + \"='\" + ev.id + \"' style='\" + color + \"\" + bg_color + \"\" + (ev._text_style || \"\") + \"'><div class='dhx_agenda_event_time'>\" + (scheduler.config.rtl ? scheduler.templates.agenda_time(ev.end_date, ev.start_date, ev) : scheduler.templates.agenda_time(ev.start_date, ev.end_date, ev)) + \"</div>\";\n html += \"<div \" + agendaDetailsButtonAttr + \" class='dhx_event_icon icon_details'> </div>\";\n html += \"<span>\" + scheduler.templates.agenda_text(ev.start_date, ev.end_date, ev) + \"</span></div>\";\n }\n\n html += \"<div class='dhx_v_border'></div></div>\"; //render html\n\n scheduler._els[\"dhx_cal_data\"][0].innerHTML = html;\n scheduler._els[\"dhx_cal_data\"][0].childNodes[0].scrollTop = scheduler._agendaScrollTop || 0; // setting up dhx_v_border size\n\n var agenda_area = scheduler._els[\"dhx_cal_data\"][0].childNodes[0];\n var v_border = agenda_area.childNodes[agenda_area.childNodes.length - 1];\n v_border.style.height = agenda_area.offsetHeight < scheduler._els[\"dhx_cal_data\"][0].offsetHeight ? \"100%\" : agenda_area.offsetHeight + \"px\";\n var t = scheduler._els[\"dhx_cal_data\"][0].firstChild.childNodes;\n\n var dateElement = scheduler._getNavDateElement();\n\n if (dateElement) {\n dateElement.innerHTML = scheduler.templates.agenda_date(scheduler._min_date, scheduler._max_date, scheduler._mode);\n }\n\n scheduler._rendered = [];\n\n for (var i = 0; i < t.length - 1; i++) {\n scheduler._rendered[i] = t[i];\n }\n }\n\n scheduler.agenda_view = function (mode) {\n scheduler._min_date = scheduler.config.agenda_start || scheduler.date.agenda_start(scheduler._date);\n scheduler._max_date = scheduler.config.agenda_end || scheduler.date.add_agenda(scheduler._min_date, 1);\n set_full_view(mode);\n\n if (mode) {\n scheduler._cols = null;\n scheduler._colsS = null;\n scheduler._table_view = true; //agenda tab activated\n\n fill_agenda_tab();\n } else {\n scheduler._table_view = false; //agenda tab de-activated\n }\n };\n });\n}","export default function (scheduler) {\n scheduler.config.all_timed = \"short\";\n scheduler.config.all_timed_month = false;\n\n var is_event_short = function is_event_short(ev) {\n if (!((ev.end_date - ev.start_date) / (1000 * 60 * 60) >= 24)) {\n return true;\n } // short event shouldn't disappear to multiday area during dnd-resize\n\n\n if (scheduler._drag_mode == \"resize\" && scheduler._drag_id == ev.id) {\n return true;\n }\n\n return false;\n }; // copy of usual events and recurring instances;\n // regular copy causes problems with recurrings which have series event as a prototype\n\n\n scheduler._safe_copy = function (event) {\n var proto = null,\n copy = scheduler._copy_event(event);\n\n if (event.event_pid) {\n proto = scheduler.getEvent(event.event_pid);\n }\n\n if (proto && proto.isPrototypeOf(event)) {\n delete copy.event_length;\n delete copy.event_pid;\n delete copy.rec_pattern;\n delete copy.rec_type;\n }\n\n return copy;\n };\n\n var old_prerender_events_line = scheduler._pre_render_events_line;\n var old_prerender_events_table = scheduler._pre_render_events_table;\n\n var prerender_events = function prerender_events(evs, hold) {\n if (!this._table_view) {\n return old_prerender_events_line.call(this, evs, hold);\n }\n\n return old_prerender_events_table.call(this, evs, hold);\n };\n\n scheduler._pre_render_events_line = scheduler._pre_render_events_table = function (evs, hold) {\n if (!this.config.all_timed || this._table_view && this._mode != \"month\" || this._mode == \"month\" && !this.config.all_timed_month) return prerender_events.call(this, evs, hold);\n\n for (var i = 0; i < evs.length; i++) {\n var ev = evs[i];\n if (ev._timed) continue;\n\n if (this.config.all_timed == \"short\") {\n if (!is_event_short(ev)) {\n if (this._mode != \"month\") {\n evs.splice(i--, 1);\n }\n\n continue;\n }\n }\n\n var ce = this._safe_copy(ev); // current event (event for one specific day) is copy of original with modified dates\n\n\n if (!ev._virtual) {\n ce._first_chunk = true;\n } else {\n ce._first_chunk = false;\n }\n\n ce._drag_resize = false;\n ce._virtual = true;\n ce.start_date = new Date(ce.start_date); // as lame copy doesn't copy date objects\n\n if (!isOvernightEvent(ev)) {\n ce.end_date = new Date(ev.end_date);\n } else {\n ce.end_date = getNextDay(ce.start_date);\n\n if (this.config.last_hour != 24) {\n // if specific last_hour was set (e.g. 20)\n ce.end_date = setDateTime(ce.start_date, this.config.last_hour);\n }\n }\n\n var event_changed = false;\n\n if (ce.start_date < this._max_date && ce.end_date > this._min_date && ce.start_date < ce.end_date) {\n evs[i] = ce; // adding another event in collection\n\n event_changed = true;\n } //\tif (ce.start_date > ce.end_date) {\n //\t\tevs.splice(i--,1);\n //\t}\n\n\n var re = this._safe_copy(ev); // remaining event, copy of original with modified start_date (making range more narrow)\n\n\n re._virtual = true;\n re.end_date = new Date(re.end_date);\n if (re.start_date < this._min_date) re.start_date = setDateTime(this._min_date, this.config.first_hour); // as we are starting only with whole hours\n else re.start_date = setDateTime(getNextDay(ev.start_date), this.config.first_hour);\n\n if (re.start_date < this._max_date && re.start_date < re.end_date) {\n if (event_changed) {\n evs.splice(i + 1, 0, re); //insert part\n } else {\n evs[i--] = re;\n continue;\n }\n\n re._last_chunk = false;\n } else {\n ce._last_chunk = true;\n ce._drag_resize = true;\n }\n } // in case of all_timed pre_render is not applied to the original event\n // so we need to force redraw in case of dnd\n\n\n var redraw = this._drag_mode == 'move' ? false : hold;\n return prerender_events.call(this, evs, redraw);\n\n function isOvernightEvent(ev) {\n var next_day = getNextDay(ev.start_date);\n return +ev.end_date > +next_day;\n }\n\n function getNextDay(date) {\n var next_day = scheduler.date.add(date, 1, \"day\");\n next_day = scheduler.date.date_part(next_day);\n return next_day;\n }\n\n function setDateTime(date, hours) {\n var val = scheduler.date.date_part(new Date(date));\n val.setHours(hours);\n return val;\n }\n };\n\n var old_get_visible_events = scheduler.get_visible_events;\n\n scheduler.get_visible_events = function (only_timed) {\n if (!(this.config.all_timed && this.config.multi_day)) return old_get_visible_events.call(this, only_timed);\n return old_get_visible_events.call(this, false); // only timed = false\n };\n\n scheduler.attachEvent(\"onBeforeViewChange\", function (old_mode, old_date, mode, date) {\n scheduler._allow_dnd = mode == \"day\" || mode == \"week\";\n return true;\n });\n\n scheduler._is_main_area_event = function (ev) {\n return !!(ev._timed || this.config.all_timed === true || this.config.all_timed == \"short\" && is_event_short(ev));\n };\n\n var oldUpdate = scheduler.updateEvent;\n\n scheduler.updateEvent = function (id) {\n // full redraw(update_render=true) messes events order while dnd.\n // individual redraw(update_render=false) of multiday event, which happens on select/unselect, expands event to full width of the cell and can be fixes only with full redraw.\n // so for now full redraw is always enabled for not-dnd updates\n var ev = scheduler.getEvent(id);\n var fullRedrawNeeded;\n var initial;\n\n if (ev) {\n fullRedrawNeeded = scheduler.config.all_timed && !(scheduler.isOneDayEvent(scheduler._events[id]) || scheduler.getState().drag_id);\n\n if (fullRedrawNeeded) {\n initial = scheduler.config.update_render;\n scheduler.config.update_render = true;\n }\n }\n\n oldUpdate.apply(scheduler, arguments);\n\n if (ev) {\n if (fullRedrawNeeded) {\n scheduler.config.update_render = initial;\n }\n }\n };\n}","export default function (scheduler) {\n var temp_section;\n var before;\n scheduler.config.collision_limit = 1;\n\n function _setTempSection(event_id) {\n // for custom views (matrix, timeline, units)\n var checked_mode = scheduler._get_section_view();\n\n if (checked_mode && event_id) {\n temp_section = scheduler.getEvent(event_id)[scheduler._get_section_property()];\n }\n }\n\n scheduler.attachEvent(\"onBeforeDrag\", function (id) {\n _setTempSection(id);\n\n return true;\n });\n scheduler.attachEvent(\"onBeforeLightbox\", function (id) {\n var ev = scheduler.getEvent(id);\n before = [ev.start_date, ev.end_date];\n\n _setTempSection(id);\n\n return true;\n });\n scheduler.attachEvent(\"onEventChanged\", function (id) {\n if (!id || !scheduler.getEvent(id)) return true;\n var ev = scheduler.getEvent(id);\n\n if (!scheduler.checkCollision(ev)) {\n if (!before) return false;\n ev.start_date = before[0];\n ev.end_date = before[1];\n ev._timed = this.isOneDayEvent(ev);\n }\n\n return true;\n });\n scheduler.attachEvent(\"onBeforeEventChanged\", function (ev, e, is_new) {\n return scheduler.checkCollision(ev);\n });\n scheduler.attachEvent(\"onEventAdded\", function (id, ev) {\n var result = scheduler.checkCollision(ev);\n if (!result) scheduler.deleteEvent(id);\n });\n scheduler.attachEvent(\"onEventSave\", function (id, edited_ev, is_new) {\n edited_ev = scheduler._lame_clone(edited_ev);\n edited_ev.id = id; //lightbox may not have 'time' section\n\n if (!(edited_ev.start_date && edited_ev.end_date)) {\n var ev = scheduler.getEvent(id);\n edited_ev.start_date = new Date(ev.start_date);\n edited_ev.end_date = new Date(ev.end_date);\n }\n\n if (edited_ev.rec_type) {\n scheduler._roll_back_dates(edited_ev);\n }\n\n return scheduler.checkCollision(edited_ev); // in case user creates event on one date but then edited it another\n });\n\n scheduler._check_sections_collision = function (first, second) {\n var map_to = scheduler._get_section_property();\n\n if (first[map_to] == second[map_to] && first.id != second.id) return true;\n return false;\n };\n\n scheduler.checkCollision = function (ev) {\n var evs = [];\n var collision_limit = scheduler.config.collision_limit;\n\n if (ev.rec_type) {\n var evs_dates = scheduler.getRecDates(ev);\n\n for (var k = 0; k < evs_dates.length; k++) {\n var tevs = scheduler.getEvents(evs_dates[k].start_date, evs_dates[k].end_date);\n\n for (var j = 0; j < tevs.length; j++) {\n if ((tevs[j].event_pid || tevs[j].id) != ev.id) evs.push(tevs[j]);\n }\n }\n } else {\n evs = scheduler.getEvents(ev.start_date, ev.end_date);\n\n for (var i = 0; i < evs.length; i++) {\n var concurrent = evs[i];\n\n if (concurrent.id == ev.id || concurrent.event_length && [concurrent.event_pid, concurrent.event_length].join(\"#\") == ev.id) {\n evs.splice(i, 1);\n break;\n }\n }\n }\n\n var checked_mode = scheduler._get_section_view();\n\n var map_to = scheduler._get_section_property();\n\n var single = true;\n\n if (checked_mode) {\n // custom view\n var count = 0;\n\n for (var i = 0; i < evs.length; i++) {\n if (evs[i].id != ev.id && this._check_sections_collision(evs[i], ev)) count++;\n }\n\n if (count >= collision_limit) {\n single = false;\n }\n } else {\n if (evs.length >= collision_limit) single = false;\n }\n\n if (!single) {\n var res = !scheduler.callEvent(\"onEventCollision\", [ev, evs]);\n\n if (!res) {\n ev[map_to] = temp_section || ev[map_to]; // from _setTempSection for custom views\n }\n\n return res;\n }\n\n return single;\n };\n}","export default function (scheduler) {\n scheduler.config.container_autoresize = true;\n scheduler.config.month_day_min_height = 90;\n scheduler.config.min_grid_size = 25;\n scheduler.config.min_map_size = 400;\n var old_pre_render_event = scheduler._pre_render_events; //need for temporary disabling without modifying public config\n\n var active = true;\n var total_height = 0;\n var multiday_height = 0;\n\n scheduler._pre_render_events = function (evs, hold) {\n if (!(scheduler.config.container_autoresize && active)) {\n return old_pre_render_event.apply(this, arguments);\n }\n\n var hb = this.xy.bar_height;\n var h_old = this._colsS.heights;\n var h = this._colsS.heights = [0, 0, 0, 0, 0, 0, 0];\n var data = this._els[\"dhx_cal_data\"][0];\n if (!this._table_view) evs = this._pre_render_events_line(evs, hold); //ignore long events for now\n else evs = this._pre_render_events_table(evs, hold);\n\n if (this._table_view) {\n if (hold) {\n this._colsS.heights = h_old;\n } else {\n var evl = data.firstChild;\n\n if (evl.rows) {\n for (var i = 0; i < evl.rows.length; i++) {\n h[i]++;\n\n if (h[i] * hb > this._colsS.height - this.xy.month_head_height) {\n // 22 - height of cell's header\n //we have overflow, update heights\n var cells = evl.rows[i].cells;\n var cHeight = this._colsS.height - this.xy.month_head_height;\n\n if (this.config.max_month_events * 1 !== this.config.max_month_events || h[i] <= this.config.max_month_events) {\n cHeight = h[i] * hb;\n } else if ((this.config.max_month_events + 1) * hb > this._colsS.height - this.xy.month_head_height) {\n cHeight = (this.config.max_month_events + 1) * hb;\n }\n\n for (var j = 0; j < cells.length; j++) {\n cells[j].childNodes[1].style.height = cHeight + \"px\";\n }\n\n h[i] = (h[i - 1] || 0) + cells[0].offsetHeight;\n }\n\n h[i] = (h[i - 1] || 0) + evl.rows[i].cells[0].offsetHeight;\n }\n\n h.unshift(0);\n\n if (evl.parentNode.offsetHeight < evl.parentNode.scrollHeight && !evl._h_fix) {//we have v-scroll, decrease last day cell\n // NO CHECK SHOULD BE MADE ON VERTICAL SCROLL\n }\n } else {\n if (!evs.length && this._els[\"dhx_multi_day\"][0].style.visibility == \"visible\") h[0] = -1;\n\n if (evs.length || h[0] == -1) {\n //shift days to have space for multiday events\n //var childs = evl.parentNode.childNodes;\n var dh = (h[0] + 1) * hb + 1; // +1 so multiday events would have 2px from top and 2px from bottom by default\n\n if (multiday_height != dh + 1) {\n this._obj.style.height = total_height - multiday_height + dh - 1 + \"px\";\n }\n\n dh += \"px\";\n data.style.top = this._els[\"dhx_cal_navline\"][0].offsetHeight + this._els[\"dhx_cal_header\"][0].offsetHeight + parseInt(dh, 10) + 'px';\n data.style.height = this._obj.offsetHeight - parseInt(data.style.top, 10) - (this.xy.margin_top || 0) + 'px';\n var last = this._els[\"dhx_multi_day\"][0];\n last.style.height = dh;\n last.style.visibility = h[0] == -1 ? \"hidden\" : \"visible\";\n last = this._els[\"dhx_multi_day\"][1];\n last.style.height = dh;\n last.style.visibility = h[0] == -1 ? \"hidden\" : \"visible\";\n last.className = h[0] ? \"dhx_multi_day_icon\" : \"dhx_multi_day_icon_small\";\n this._dy_shift = (h[0] + 1) * hb;\n h[0] = 0;\n }\n }\n }\n }\n\n return evs;\n };\n\n var checked_divs = [\"dhx_cal_navline\", \"dhx_cal_header\", \"dhx_multi_day\", \"dhx_cal_data\"];\n\n var updateContainterHeight = function updateContainterHeight(is_repaint) {\n total_height = 0;\n\n for (var i = 0; i < checked_divs.length; i++) {\n var className = checked_divs[i];\n var checked_div = scheduler._els[className] ? scheduler._els[className][0] : null;\n var height = 0;\n\n switch (className) {\n case \"dhx_cal_navline\":\n case \"dhx_cal_header\":\n height = parseInt(checked_div.style.height, 10);\n break;\n\n case \"dhx_multi_day\":\n height = checked_div ? checked_div.offsetHeight - 1 : 0;\n multiday_height = height;\n break;\n\n case \"dhx_cal_data\":\n var mode = scheduler.getState().mode;\n\n if (checked_div.childNodes[1] && mode != \"month\") {\n height = checked_div.childNodes[1].offsetHeight;\n } else {\n height = Math.max(checked_div.offsetHeight - 1, checked_div.scrollHeight);\n }\n\n if (mode == \"month\") {\n if (scheduler.config.month_day_min_height && !is_repaint) {\n var rows_length = checked_div.getElementsByTagName(\"tr\").length;\n height = rows_length * scheduler.config.month_day_min_height;\n }\n\n if (is_repaint) {\n checked_div.style.height = height + \"px\";\n }\n } else if (mode == \"year\") {\n height = 190 * scheduler.config.year_y;\n } else if (mode == \"agenda\") {\n height = 0;\n\n if (checked_div.childNodes && checked_div.childNodes.length) {\n for (var j = 0; j < checked_div.childNodes.length; j++) {\n height += checked_div.childNodes[j].offsetHeight;\n }\n }\n\n if (height + 2 < scheduler.config.min_grid_size) {\n height = scheduler.config.min_grid_size;\n } else {\n height += 2;\n }\n } else if (mode == \"week_agenda\") {\n var min_height = scheduler.xy.week_agenda_scale_height + scheduler.config.min_grid_size,\n cur_height;\n var column;\n\n for (var k = 0; k < checked_div.childNodes.length; k++) {\n column = checked_div.childNodes[k];\n\n for (var j = 0; j < column.childNodes.length; j++) {\n var innerHeight = 0,\n eventsContainer = column.childNodes[j].childNodes[1];\n\n for (var g = 0; g < eventsContainer.childNodes.length; g++) {\n innerHeight += eventsContainer.childNodes[g].offsetHeight;\n }\n\n cur_height = innerHeight + scheduler.xy.week_agenda_scale_height;\n cur_height = k == 1 && (j == 2 || j == 3) ? cur_height * 2 : cur_height; // for last two cells;\n\n if (cur_height > min_height) {\n min_height = cur_height;\n }\n }\n }\n\n height = min_height * 3;\n } else if (mode == \"map\") {\n height = 0;\n var evs = checked_div.querySelectorAll(\".dhx_map_line\");\n\n for (var j = 0; j < evs.length; j++) {\n height += evs[j].offsetHeight;\n }\n\n if (height + 2 < scheduler.config.min_map_size) {\n height = scheduler.config.min_map_size;\n } else {\n height += 2;\n }\n } else if (scheduler._gridView) {\n height = 0;\n\n if (checked_div.childNodes[1].childNodes[0].childNodes && checked_div.childNodes[1].childNodes[0].childNodes.length) {\n var evs = checked_div.childNodes[1].childNodes[0].childNodes[0].childNodes;\n\n for (var j = 0; j < evs.length; j++) {\n height += evs[j].offsetHeight;\n }\n\n height += 2;\n\n if (height < scheduler.config.min_grid_size) {\n height = scheduler.config.min_grid_size;\n }\n } else {\n height = scheduler.config.min_grid_size;\n }\n }\n\n if (scheduler.matrix && scheduler.matrix[mode]) {\n if (is_repaint) {\n height += 0;\n checked_div.style.height = height + \"px\";\n } else {\n height = 0;\n var cfg = scheduler.matrix[mode];\n var rows = cfg.y_unit;\n\n for (var r = 0; r < rows.length; r++) {\n height += cfg.getSectionHeight(rows[r].key);\n } // Check and add extra height to avoid events hiding by the horizontal scrollbar\n\n\n if (scheduler.$container.clientWidth != scheduler.$container.scrollWidth) {\n height += getScrollSize();\n }\n }\n\n height -= 1;\n }\n\n if (mode == \"day\" || mode == \"week\" || scheduler._props && scheduler._props[mode]) {\n height += 2;\n }\n\n break;\n }\n\n height += 1;\n total_height += height;\n }\n\n scheduler._obj.style.height = total_height + \"px\";\n if (!is_repaint) scheduler.updateView();\n };\n\n function callUpdate() {\n active = false;\n scheduler.callEvent(\"onAfterSchedulerResize\", []);\n active = true;\n }\n\n var conditionalUpdateContainerHeight = function conditionalUpdateContainerHeight() {\n if (!(scheduler.config.container_autoresize && active)) return true;\n var mode = scheduler.getState().mode;\n\n if (!mode) {\n return true;\n }\n\n var asyncRepaint = window.requestAnimationFrame || window.setTimeout;\n var scrollTop = document.documentElement.scrollTop;\n asyncRepaint(function () {\n updateContainterHeight();\n });\n\n if (scheduler.matrix && scheduler.matrix[mode] || mode == \"month\") {\n asyncRepaint(function () {\n updateContainterHeight(true);\n document.documentElement.scrollTop = scrollTop;\n callUpdate();\n }, 1);\n } else {\n callUpdate();\n }\n };\n\n scheduler.attachEvent(\"onBeforeViewChange\", function () {\n var autosizeEnabled = scheduler.config.container_autoresize;\n\n if (!scheduler.xy.$original_scroll_width) {\n scheduler.xy.$original_scroll_width = scheduler.xy.scroll_width;\n }\n\n scheduler.xy.scroll_width = autosizeEnabled ? 0 : scheduler.xy.$original_scroll_width;\n\n if (scheduler.matrix) {\n for (var i in scheduler.matrix) {\n var timeline = scheduler.matrix[i];\n\n if (!timeline.$original_section_autoheight) {\n timeline.$original_section_autoheight = timeline.section_autoheight;\n }\n\n if (autosizeEnabled) {\n timeline.section_autoheight = false;\n } else {\n timeline.section_autoheight = timeline.$original_section_autoheight;\n }\n }\n }\n\n return true;\n });\n scheduler.attachEvent(\"onViewChange\", conditionalUpdateContainerHeight);\n scheduler.attachEvent(\"onXLE\", conditionalUpdateContainerHeight);\n scheduler.attachEvent(\"onEventChanged\", conditionalUpdateContainerHeight);\n scheduler.attachEvent(\"onEventCreated\", conditionalUpdateContainerHeight);\n scheduler.attachEvent(\"onEventAdded\", conditionalUpdateContainerHeight);\n scheduler.attachEvent(\"onEventDeleted\", conditionalUpdateContainerHeight);\n scheduler.attachEvent(\"onAfterSchedulerResize\", conditionalUpdateContainerHeight);\n scheduler.attachEvent(\"onClearAll\", conditionalUpdateContainerHeight); //disable container autoresize when expanded\n\n scheduler.attachEvent(\"onBeforeExpand\", function () {\n active = false;\n return true;\n });\n scheduler.attachEvent(\"onBeforeCollapse\", function () {\n active = true;\n return true;\n }); // helper function\n\n function getScrollSize() {\n var div = document.createElement(\"div\");\n div.style.cssText = \"visibility:hidden;position:absolute;left:-1000px;width:100px;padding:0px;margin:0px;height:110px;min-height:100px;overflow-y:scroll;\";\n document.body.appendChild(div);\n var size = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n return size;\n }\n}","export default function (scheduler) {\n function setCookie(name, cookie_param, value) {\n var str = name + \"=\" + value + (cookie_param ? \"; \" + cookie_param : \"\");\n document.cookie = str;\n }\n\n function getCookie(name) {\n var search = name + \"=\";\n\n if (document.cookie.length > 0) {\n var offset = document.cookie.indexOf(search);\n\n if (offset != -1) {\n offset += search.length;\n var end = document.cookie.indexOf(\";\", offset);\n if (end == -1) end = document.cookie.length;\n return document.cookie.substring(offset, end);\n }\n }\n\n return \"\";\n }\n\n function getCookieName(scheduler) {\n return (scheduler._obj.id || \"scheduler\") + \"_settings\";\n }\n\n var first = true;\n scheduler.attachEvent(\"onBeforeViewChange\", function (oldMode, oldDate, mode, date) {\n // if Url plugin is enabled - explicit url values should have more priority than cookies\n if (first && scheduler._get_url_nav) {\n var urlNavigationPlugin = scheduler._get_url_nav();\n\n if (urlNavigationPlugin.date || urlNavigationPlugin.mode || urlNavigationPlugin.event) {\n first = false;\n }\n }\n\n var cookie = getCookieName(scheduler);\n\n if (first) {\n first = false;\n var schedulerCookie = getCookie(cookie);\n\n if (schedulerCookie) {\n if (!scheduler._min_date) {\n //otherwise scheduler will have incorrect date until timeout\n //it can cause js error with 'onMouseMove' handler of key_nav.js\n scheduler._min_date = date;\n }\n\n schedulerCookie = unescape(schedulerCookie).split(\"@\");\n schedulerCookie[0] = this._helpers.parseDate(schedulerCookie[0]);\n var view = this.isViewExists(schedulerCookie[1]) ? schedulerCookie[1] : mode,\n date = !isNaN(+schedulerCookie[0]) ? schedulerCookie[0] : date;\n window.setTimeout(function () {\n scheduler.setCurrentView(date, view);\n }, 1);\n return false;\n }\n }\n\n return true;\n });\n scheduler.attachEvent(\"onViewChange\", function (newMode, newDate) {\n var cookie = getCookieName(scheduler);\n var text = escape(this._helpers.formatDate(newDate) + \"@\" + newMode);\n setCookie(cookie, \"expires=Sun, 31 Jan 9999 22:00:00 GMT\", text);\n }); // As we are blocking first render above there could be a problem in case of dynamic loading and rendering of visible data in general ('from'/'to' won't be defined)\n\n var old_load = scheduler._load;\n\n scheduler._load = function () {\n var args = arguments;\n\n if (!scheduler._date) {\n var that = this;\n window.setTimeout(function () {\n old_load.apply(that, args);\n }, 1);\n } else {\n old_load.apply(this, args);\n }\n };\n}","import notImplemented from \"./not_implemented_extension\";\nexport default function (scheduler) {\n notImplemented.alert(\"Day Timeline\", scheduler.assert);\n}","import notImplemented from \"./not_implemented_extension\";\nexport default function (scheduler) {\n notImplemented.alert(\"Drag Between\", scheduler.assert);\n}","export default function (scheduler) {\n /* global dhtmlXCombo */\n scheduler.form_blocks['combo'] = {\n render: function render(sns) {\n if (!sns.cached_options) sns.cached_options = {};\n var res = '';\n res += \"<div class='\" + sns.type + \"' style='height:\" + (sns.height || 20) + \"px;' ></div>\";\n return res;\n },\n set_value: function set_value(node, value, ev, config) {\n (function () {\n resetCombo();\n var id = scheduler.attachEvent(\"onAfterLightbox\", function () {\n // otherwise destructor will never be called after form reset(e.g. in readonly event mode)\n resetCombo();\n scheduler.detachEvent(id);\n });\n\n function resetCombo() {\n if (node._combo && node._combo.DOMParent) {\n var combo = node._combo;\n\n if (combo.unload) {\n combo.unload();\n } else if (combo.destructor) {\n combo.destructor();\n } // dhtmlxCombo 4.1.0 bug\n\n\n combo.DOMParent = combo.DOMelem = null;\n }\n }\n })();\n\n window.dhx_globalImgPath = config.image_path || '/';\n node._combo = new dhtmlXCombo(node, config.name, node.offsetWidth - 8);\n if (config.onchange) node._combo.attachEvent(\"onChange\", config.onchange);\n if (config.options_height) node._combo.setOptionHeight(config.options_height);\n var combo = node._combo;\n combo.enableFilteringMode(config.filtering, config.script_path || null, !!config.cache);\n\n if (!config.script_path) {\n // script-side filtration is used\n var all_options = [];\n\n for (var i = 0; i < config.options.length; i++) {\n var option = config.options[i];\n var single_option = [option.key, option.label, option.css];\n all_options.push(single_option);\n }\n\n combo.addOption(all_options);\n\n if (ev[config.map_to]) {\n var index = combo.getIndexByValue(ev[config.map_to]);\n combo.selectOption(index);\n }\n } else {\n // server-side filtration is used\n var selected_id = ev[config.map_to];\n\n if (selected_id) {\n if (config.cached_options[selected_id]) {\n combo.addOption(selected_id, config.cached_options[selected_id]);\n combo.disable(1);\n combo.selectOption(0);\n combo.disable(0);\n } else {\n scheduler.ajax.get(config.script_path + \"?id=\" + selected_id + \"&uid=\" + scheduler.uid(), function (result) {\n var responseText = result.xmlDoc.responseText;\n var label;\n\n try {\n var res = JSON.parse(responseText);\n label = res.options[0].text;\n } catch (e) {\n var option = scheduler.ajax.xpath(\"//option\", result.xmlDoc)[0];\n label = option.childNodes[0].nodeValue;\n }\n\n config.cached_options[selected_id] = label;\n combo.addOption(selected_id, label);\n combo.disable(1);\n combo.selectOption(0);\n combo.disable(0);\n });\n }\n } else {\n combo.setComboValue(\"\");\n }\n }\n },\n get_value: function get_value(node, ev, config) {\n var selected_id = node._combo.getSelectedValue(); // value = key\n\n\n if (config.script_path) {\n config.cached_options[selected_id] = node._combo.getSelectedText();\n }\n\n return selected_id;\n },\n focus: function focus(node) {}\n };\n scheduler.form_blocks['radio'] = {\n render: function render(sns) {\n var res = '';\n res += \"<div class='dhx_cal_ltext dhx_cal_radio\" + \"' style='height:\" + sns.height + \"px;' >\";\n\n for (var i = 0; i < sns.options.length; i++) {\n var id = scheduler.uid();\n res += \"<input id='\" + id + \"' type='radio' name='\" + sns.name + \"' value='\" + sns.options[i].key + \"'><label for='\" + id + \"'>\" + \" \" + sns.options[i].label + \"</label>\";\n if (sns.vertical) res += \"<br/>\";\n }\n\n res += \"</div>\";\n return res;\n },\n set_value: function set_value(node, value, ev, config) {\n var radiobuttons = node.getElementsByTagName('input');\n\n for (var i = 0; i < radiobuttons.length; i++) {\n radiobuttons[i].checked = false;\n var checked_value = ev[config.map_to] || value;\n\n if (radiobuttons[i].value == checked_value) {\n radiobuttons[i].checked = true;\n }\n }\n },\n get_value: function get_value(node, ev, config) {\n var radiobuttons = node.getElementsByTagName('input');\n\n for (var i = 0; i < radiobuttons.length; i++) {\n if (radiobuttons[i].checked) {\n return radiobuttons[i].value;\n }\n }\n },\n focus: function focus(node) {}\n };\n scheduler.form_blocks['checkbox'] = {\n render: function render(sns) {\n if (scheduler.config.wide_form) return '<div class=\"dhx_cal_wide_checkbox\" ' + (sns.height ? \"style='height:\" + sns.height + \"px;'\" : \"\") + '></div>';else return '';\n },\n set_value: function set_value(node, value, ev, config) {\n node = document.getElementById(config.id);\n var id = scheduler.uid();\n var isChecked = typeof config.checked_value != \"undefined\" ? value == config.checked_value : !!value;\n node.className += \" dhx_cal_checkbox\";\n var check_html = \"<input id='\" + id + \"' type='checkbox' value='true' name='\" + config.name + \"'\" + (isChecked ? \"checked='true'\" : '') + \"'>\";\n var label_html = \"<label for='\" + id + \"'>\" + (scheduler.locale.labels[\"section_\" + config.name] || config.name) + \"</label>\";\n\n if (scheduler.config.wide_form) {\n node.innerHTML = label_html;\n node.nextSibling.innerHTML = check_html;\n } else node.innerHTML = check_html + label_html;\n\n if (config.handler) {\n var checkbox = node.getElementsByTagName('input')[0];\n\n if (checkbox.$_eventAttached) {\n return;\n }\n\n checkbox.$_eventAttached = true;\n scheduler.event(checkbox, \"click\", config.handler); //checkbox.onclick = config.handler;\n }\n },\n get_value: function get_value(node, ev, config) {\n node = document.getElementById(config.id);\n var checkbox = node.getElementsByTagName('input')[0]; // moved to the header\n\n if (!checkbox) checkbox = node.nextSibling.getElementsByTagName('input')[0];\n return checkbox.checked ? config.checked_value || true : config.unchecked_value || false;\n },\n focus: function focus(node) {}\n };\n}","export default function (scheduler) {\n scheduler.ext.fullscreen = {\n toggleIcon: null\n };\n\n scheduler.expand = function () {\n if (!scheduler.callEvent(\"onBeforeExpand\", [])) return;\n var t = scheduler._obj;\n\n do {\n t._position = t.style.position || \"\";\n t.style.position = \"static\";\n } while ((t = t.parentNode) && t.style);\n\n t = scheduler._obj;\n t.style.position = \"absolute\";\n t._width = t.style.width;\n t._height = t.style.height;\n t.style.width = t.style.height = \"100%\";\n t.style.top = t.style.left = \"0px\";\n var top = document.body;\n top.scrollTop = 0;\n top = top.parentNode;\n if (top) top.scrollTop = 0;\n document.body._overflow = document.body.style.overflow || \"\";\n document.body.style.overflow = \"hidden\";\n\n scheduler._maximize();\n\n scheduler.callEvent(\"onExpand\", []);\n };\n\n scheduler.collapse = function () {\n if (!scheduler.callEvent(\"onBeforeCollapse\", [])) return;\n var t = scheduler._obj;\n\n do {\n t.style.position = t._position;\n } while ((t = t.parentNode) && t.style);\n\n t = scheduler._obj;\n t.style.width = t._width;\n t.style.height = t._height;\n document.body.style.overflow = document.body._overflow;\n\n scheduler._maximize();\n\n scheduler.callEvent(\"onCollapse\", []);\n };\n\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n var t = document.createElement(\"div\");\n t.className = \"dhx_expand_icon\";\n scheduler.ext.fullscreen.toggleIcon = t;\n\n scheduler._obj.appendChild(t);\n\n scheduler.event(t, \"click\", function () {\n if (!scheduler.expanded) scheduler.expand();else scheduler.collapse();\n });\n });\n\n scheduler._maximize = function () {\n this.expanded = !this.expanded;\n scheduler.ext.fullscreen.toggleIcon.style.backgroundPosition = \"0 \" + (this.expanded ? \"0\" : \"18\") + \"px\";\n var directions = ['left', 'top'];\n\n for (var i = 0; i < directions.length; i++) {\n //var margin = scheduler.xy['margin_' + directions[i]];\n var prev_margin = scheduler['_prev_margin_' + directions[i]];\n\n if (scheduler.xy['margin_' + directions[i]]) {\n scheduler['_prev_margin_' + directions[i]] = scheduler.xy['margin_' + directions[i]];\n scheduler.xy['margin_' + directions[i]] = 0;\n } else {\n if (prev_margin) {\n scheduler.xy['margin_' + directions[i]] = scheduler['_prev_margin_' + directions[i]];\n delete scheduler['_prev_margin_' + directions[i]];\n }\n }\n }\n\n scheduler.setCurrentView();\n };\n}","import notImplemented from \"./not_implemented_extension\";\nexport default function (scheduler) {\n notImplemented.alert(\"Grid\", scheduler.assert);\n}","export default function (scheduler) {\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n var els = document.body.getElementsByTagName(\"DIV\");\n\n for (var i = 0; i < els.length; i++) {\n var cs = els[i].className || \"\";\n cs = cs.split(\":\");\n\n if (cs.length == 2 && cs[0] == \"template\") {\n var code = \"return \\\"\" + (els[i].innerHTML || \"\").replace(/\"/g, \"\\\\\\\"\").replace(/[\\n\\r]+/g, \"\") + \"\\\";\";\n code = unescape(code).replace(/\\{event\\.([a-z]+)\\}/g, function (all, mask) {\n return '\"+ev.' + mask + '+\"';\n });\n scheduler.templates[cs[1]] = Function(\"start\", \"end\", \"ev\", code);\n els[i].style.display = 'none';\n }\n }\n });\n}","import keyboard_shortcuts from \"./keyboard_navigation/common/keyboard_shortcuts\";\nimport eventhandler from \"./keyboard_navigation/common/eventhandler\";\nimport trap_modal_focus from \"./keyboard_navigation/common/trap_modal_focus\";\nimport marker from \"./keyboard_navigation/marker\";\nimport scheduler_node from \"./keyboard_navigation/elements/scheduler_node\";\nimport nav_node from \"./keyboard_navigation/elements/nav_node\";\nimport header_cell from \"./keyboard_navigation/elements/header_cell\";\nimport event from \"./keyboard_navigation/elements/event\";\nimport time_slot from \"./keyboard_navigation/elements/time_slot\";\nimport minical_button from \"./keyboard_navigation/elements/minical_button\";\nimport minical_cell from \"./keyboard_navigation/elements/minical_cell\";\nimport data_area from \"./keyboard_navigation/elements/data_area\";\nimport modals from \"./keyboard_navigation/modals\";\nimport core from \"./keyboard_navigation/core\";\nimport key_nav_legacy from \"./keyboard_navigation/key_nav_legacy\";\nimport scheduler_handlers from \"./keyboard_navigation/scheduler_handlers\";\nimport minical_handlers from \"./keyboard_navigation/minical_handlers\";\nexport default function (scheduler) {\n scheduler.config.key_nav = true;\n scheduler.config.key_nav_step = 30;\n\n scheduler.addShortcut = function (shortcut, handler, scope) {\n var scopeObject = getScope(scope);\n\n if (scopeObject) {\n scopeObject.prototype.bind(shortcut, handler);\n }\n };\n\n scheduler.getShortcutHandler = function (shortcut, scope) {\n var scopeObject = getScope(scope);\n\n if (scopeObject) {\n var commands = scheduler.$keyboardNavigation.shortcuts.parse(shortcut);\n\n if (commands.length) {\n return scopeObject.prototype.findHandler(commands[0]);\n }\n }\n };\n\n scheduler.removeShortcut = function (shortcut, scope) {\n var scopeObject = getScope(scope);\n\n if (scopeObject) {\n scopeObject.prototype.unbind(shortcut);\n }\n };\n\n scheduler.focus = function () {\n if (!scheduler.config.key_nav) {\n return;\n }\n\n var disp = scheduler.$keyboardNavigation.dispatcher;\n disp.enable();\n var activeNode = disp.getActiveNode();\n\n if (!activeNode || activeNode instanceof scheduler.$keyboardNavigation.MinicalButton || activeNode instanceof scheduler.$keyboardNavigation.MinicalCell) {\n disp.setDefaultNode();\n } else {\n disp.focusNode(disp.getActiveNode());\n }\n };\n\n function getScope(mode) {\n var scopes = {\n \"minicalButton\": scheduler.$keyboardNavigation.MinicalButton,\n \"minicalDate\": scheduler.$keyboardNavigation.MinicalCell,\n \"scheduler\": scheduler.$keyboardNavigation.SchedulerNode,\n \"dataArea\": scheduler.$keyboardNavigation.DataArea,\n \"timeSlot\": scheduler.$keyboardNavigation.TimeSlot,\n \"event\": scheduler.$keyboardNavigation.Event\n };\n var searchMap = {};\n\n for (var i in scopes) {\n searchMap[i.toLowerCase()] = scopes[i];\n }\n\n mode = (mode + \"\").toLowerCase();\n return searchMap[mode] || scopes.scheduler;\n }\n\n scheduler.$keyboardNavigation = {};\n\n scheduler._compose = function () {\n var parts = Array.prototype.slice.call(arguments, 0);\n var res = {};\n\n for (var i = 0; i < parts.length; i++) {\n var obj = parts[i];\n\n if (typeof obj == \"function\") {\n obj = new obj();\n }\n\n for (var p in obj) {\n res[p] = obj[p];\n }\n }\n\n return res;\n };\n\n keyboard_shortcuts(scheduler);\n eventhandler(scheduler);\n trap_modal_focus(scheduler);\n marker(scheduler);\n scheduler_node(scheduler);\n nav_node(scheduler);\n header_cell(scheduler);\n event(scheduler);\n time_slot(scheduler);\n minical_button(scheduler);\n minical_cell(scheduler);\n data_area(scheduler);\n modals(scheduler);\n core(scheduler);\n key_nav_legacy(scheduler);\n\n (function () {\n scheduler_handlers(scheduler);\n minical_handlers(scheduler);\n var dispatcher = scheduler.$keyboardNavigation.dispatcher;\n scheduler.$keyboardNavigation.attachSchedulerHandlers();\n\n if (scheduler.renderCalendar) {\n // if minical ext loaded before key nav ext - patch it now\n scheduler.$keyboardNavigation.patchMinicalendar();\n } else {\n // otherwise - wait until everything is loaded and try again\n var attachOnce = scheduler.attachEvent(\"onSchedulerReady\", function () {\n scheduler.detachEvent(attachOnce);\n scheduler.$keyboardNavigation.patchMinicalendar();\n });\n }\n\n function isSchedulerSelected() {\n if (!scheduler.config.key_nav) return;\n var enable;\n var focusElement = document.activeElement; // halt key nav when focus is outside scheduler or in quick info popup\n\n if (!focusElement || scheduler.utils.dom.locateCss(focusElement, \"dhx_cal_quick_info\", false)) {\n enable = false;\n } else {\n enable = scheduler.$keyboardNavigation.isChildOf(focusElement, scheduler.$container) || scheduler.$keyboardNavigation.isMinical(focusElement);\n }\n\n return enable;\n }\n\n function changeState(enable) {\n if (enable && !dispatcher.isEnabled()) {\n dispatcher.enable();\n } else if (!enable && dispatcher.isEnabled()) {\n dispatcher.disable();\n }\n }\n\n setInterval(function () {\n if (!scheduler.$container || !scheduler.$keyboardNavigation.isChildOf(scheduler.$container, document.body)) {\n return;\n }\n\n var enable = isSchedulerSelected();\n\n if (enable) {\n changeState(enable);\n } else if (!enable && dispatcher.isEnabled()) {\n setTimeout(function () {\n // doublecheck in case checking is done in handler before focus element is repainted\n if (scheduler.config.key_nav) {\n changeState(isSchedulerSelected());\n } else {\n scheduler.$container.removeAttribute(\"tabindex\");\n }\n }, 100);\n }\n }, 500);\n })();\n /*\tif(window.Scheduler && window.Scheduler.plugin){\r\n \t\twindow.Scheduler.plugin(setupKeyNav);\r\n \t}else{\r\n \t\tsetupKeyNav(window.scheduler);\r\n \t}*/\n\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.shortcuts = {\n createCommand: function createCommand() {\n return {\n modifiers: {\n \"shift\": false,\n \"alt\": false,\n \"ctrl\": false,\n \"meta\": false\n },\n keyCode: null\n };\n },\n parse: function parse(shortcut) {\n var commands = [];\n var expr = this.getExpressions(this.trim(shortcut));\n\n for (var i = 0; i < expr.length; i++) {\n var words = this.getWords(expr[i]);\n var command = this.createCommand();\n\n for (var j = 0; j < words.length; j++) {\n if (this.commandKeys[words[j]]) {\n command.modifiers[words[j]] = true;\n } else if (this.specialKeys[words[j]]) {\n command.keyCode = this.specialKeys[words[j]];\n } else {\n command.keyCode = words[j].charCodeAt(0);\n }\n }\n\n commands.push(command);\n }\n\n return commands;\n },\n getCommandFromEvent: function getCommandFromEvent(domEvent) {\n var command = this.createCommand();\n command.modifiers.shift = !!domEvent.shiftKey;\n command.modifiers.alt = !!domEvent.altKey;\n command.modifiers.ctrl = !!domEvent.ctrlKey;\n command.modifiers.meta = !!domEvent.metaKey;\n command.keyCode = domEvent.which || domEvent.keyCode;\n\n if (command.keyCode >= 96 && command.keyCode <= 105) {\n // numpad keys 96-105 -> 48-57\n command.keyCode -= 48; //convert numpad number code to regular number code\n }\n\n var printableKey = String.fromCharCode(command.keyCode);\n\n if (printableKey) {\n command.keyCode = printableKey.toLowerCase().charCodeAt(0);\n }\n\n return command;\n },\n getHashFromEvent: function getHashFromEvent(domEvent) {\n return this.getHash(this.getCommandFromEvent(domEvent));\n },\n getHash: function getHash(command) {\n var parts = [];\n\n for (var i in command.modifiers) {\n if (command.modifiers[i]) {\n parts.push(i);\n }\n }\n\n parts.push(command.keyCode);\n return parts.join(this.junctionChar);\n },\n getExpressions: function getExpressions(shortcut) {\n return shortcut.split(this.junctionChar);\n },\n getWords: function getWords(term) {\n return term.split(this.combinationChar);\n },\n trim: function trim(shortcut) {\n return shortcut.replace(/\\s/g, \"\");\n },\n junctionChar: \",\",\n combinationChar: \"+\",\n commandKeys: {\n \"shift\": 16,\n \"alt\": 18,\n \"ctrl\": 17,\n \"meta\": true\n },\n specialKeys: {\n \"backspace\": 8,\n \"tab\": 9,\n \"enter\": 13,\n \"esc\": 27,\n \"space\": 32,\n \"up\": 38,\n \"down\": 40,\n \"left\": 37,\n \"right\": 39,\n \"home\": 36,\n \"end\": 35,\n \"pageup\": 33,\n \"pagedown\": 34,\n \"delete\": 46,\n \"insert\": 45,\n \"plus\": 107,\n \"f1\": 112,\n \"f2\": 113,\n \"f3\": 114,\n \"f4\": 115,\n \"f5\": 116,\n \"f6\": 117,\n \"f7\": 118,\n \"f8\": 119,\n \"f9\": 120,\n \"f10\": 121,\n \"f11\": 122,\n \"f12\": 123\n }\n };\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.EventHandler = {\n _handlers: null,\n findHandler: function findHandler(command) {\n if (!this._handlers) this._handlers = {};\n var shortcuts = scheduler.$keyboardNavigation.shortcuts;\n var hash = shortcuts.getHash(command);\n return this._handlers[hash];\n },\n doAction: function doAction(command, e) {\n var handler = this.findHandler(command);\n\n if (handler) {\n handler.call(this, e);\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n },\n bind: function bind(shortcut, handler) {\n if (!this._handlers) this._handlers = {};\n var shortcuts = scheduler.$keyboardNavigation.shortcuts;\n var commands = shortcuts.parse(shortcut);\n\n for (var i = 0; i < commands.length; i++) {\n this._handlers[shortcuts.getHash(commands[i])] = handler;\n }\n },\n unbind: function unbind(shortcut) {\n var shortcuts = scheduler.$keyboardNavigation.shortcuts;\n var commands = shortcuts.parse(shortcut);\n\n for (var i = 0; i < commands.length; i++) {\n if (this._handlers[shortcuts.getHash(commands[i])]) {\n delete this._handlers[shortcuts.getHash(commands[i])];\n }\n }\n },\n bindAll: function bindAll(map) {\n for (var i in map) {\n this.bind(i, map[i]);\n }\n },\n initKeys: function initKeys() {\n if (!this._handlers) this._handlers = {};\n\n if (this.keys) {\n this.bindAll(this.keys);\n }\n }\n };\n}","export default function (scheduler) {\n (function () {\n scheduler.$keyboardNavigation.getFocusableNodes = scheduler._getFocusableNodes;\n\n scheduler.$keyboardNavigation.trapFocus = function trapFocus(root, e) {\n if (e.keyCode != 9) return false;\n var focusable = scheduler.$keyboardNavigation.getFocusableNodes(root);\n var currentFocus = document.activeElement;\n var currentIndex = -1;\n\n for (var i = 0; i < focusable.length; i++) {\n if (focusable[i] == currentFocus) {\n currentIndex = i;\n break;\n }\n }\n\n var nextIndex, nextItem;\n\n if (e.shiftKey) {\n // back tab\n // go to the last element if we focused on the first\n nextIndex = currentIndex <= 0 ? focusable.length - 1 : currentIndex - 1;\n nextItem = focusable[nextIndex];\n\n if (nextItem) {\n nextItem.focus();\n e.preventDefault();\n return true;\n }\n } else {\n // forward tab\n // forward tab from last element should go back to the first element\n nextIndex = currentIndex >= focusable.length - 1 ? 0 : currentIndex + 1;\n nextItem = focusable[nextIndex];\n\n if (nextItem) {\n nextItem.focus();\n e.preventDefault();\n return true;\n }\n }\n\n return false;\n };\n })();\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.marker = {\n clear: function clear() {\n var divs = scheduler.$container.querySelectorAll(\".dhx_focus_slot\");\n\n for (var i = 0; i < divs.length; i++) {\n divs[i].parentNode.removeChild(divs[i]);\n }\n },\n createElement: function createElement() {\n var element = document.createElement(\"div\");\n element.setAttribute(\"tabindex\", -1);\n element.className = \"dhx_focus_slot\";\n return element;\n },\n renderMultiple: function renderMultiple(start, end, method) {\n var divs = [];\n var currentStart = new Date(start);\n var currentEnd = new Date(Math.min(end.valueOf(), scheduler.date.add(scheduler.date.day_start(new Date(start)), 1, \"day\").valueOf()));\n\n while (currentStart.valueOf() < end.valueOf()) {\n divs = divs.concat(method.call(this, currentStart, new Date(Math.min(currentEnd.valueOf(), end.valueOf()))));\n currentStart = scheduler.date.day_start(scheduler.date.add(currentStart, 1, \"day\"));\n currentEnd = scheduler.date.day_start(scheduler.date.add(currentStart, 1, \"day\"));\n currentEnd = new Date(Math.min(currentEnd.valueOf(), end.valueOf()));\n }\n\n return divs;\n },\n render: function render(start, end, section) {\n this.clear();\n var divs = [];\n var modes = scheduler.$keyboardNavigation.TimeSlot.prototype._modes;\n\n var view = scheduler.$keyboardNavigation.TimeSlot.prototype._getMode();\n\n switch (view) {\n case modes.units:\n divs = this.renderVerticalMarker(start, end, section);\n break;\n\n case modes.timeline:\n divs = this.renderTimelineMarker(start, end, section);\n break;\n\n case modes.year:\n divs = divs.concat(this.renderMultiple(start, end, this.renderYearMarker));\n break;\n\n case modes.month:\n divs = this.renderMonthMarker(start, end);\n break;\n\n case modes.weekAgenda:\n divs = divs.concat(this.renderMultiple(start, end, this.renderWeekAgendaMarker));\n break;\n\n case modes.list:\n divs = this.renderAgendaMarker(start, end);\n break;\n\n case modes.dayColumns:\n divs = divs.concat(this.renderMultiple(start, end, this.renderVerticalMarker));\n break;\n }\n\n this.addWaiAriaLabel(divs, start, end, section);\n this.addDataAttributes(divs, start, end, section);\n\n for (var i = divs.length - 1; i >= 0; i--) {\n if (divs[i].offsetWidth) {\n return divs[i];\n }\n }\n\n return null;\n },\n addDataAttributes: function addDataAttributes(divs, start, end, section) {\n var dateToStr = scheduler.date.date_to_str(scheduler.config.api_date);\n var from = dateToStr(start),\n to = dateToStr(end);\n\n for (var i = 0; i < divs.length; i++) {\n divs[i].setAttribute(\"data-start-date\", from);\n divs[i].setAttribute(\"data-end-date\", to);\n\n if (section) {\n divs[i].setAttribute(\"data-section\", section);\n }\n }\n },\n addWaiAriaLabel: function addWaiAriaLabel(divs, start, end, section) {\n var label = \"\";\n var state = scheduler.getState();\n var mode = state.mode;\n var dateTimeLabel = false;\n label += scheduler.templates.day_date(start);\n\n if (scheduler.date.day_start(new Date(start)).valueOf() != start.valueOf()) {\n label += \" \" + scheduler.templates.hour_scale(start);\n dateTimeLabel = true;\n }\n\n if (scheduler.date.day_start(new Date(start)).valueOf() != scheduler.date.day_start(new Date(end)).valueOf()) {\n label += \" - \" + scheduler.templates.day_date(end);\n\n if (dateTimeLabel || scheduler.date.day_start(new Date(end)).valueOf() != end.valueOf()) {\n label += \" \" + scheduler.templates.hour_scale(end);\n }\n }\n\n if (section) {\n if (scheduler.matrix && scheduler.matrix[mode]) {\n label += \", \" + scheduler.templates[mode + \"_scale_label\"](section.key, section.label, section);\n } else if (scheduler._props && scheduler._props[mode]) {\n label += \", \" + scheduler.templates[mode + \"_scale_text\"](section.key, section.label, section);\n }\n }\n\n for (var i = 0; i < divs.length; i++) {\n scheduler._waiAria.setAttributes(divs[i], {\n \"aria-label\": label,\n \"aria-live\": \"polite\"\n });\n }\n },\n renderWeekAgendaMarker: function renderWeekAgendaMarker(start_date, end_date) {\n var divs = scheduler.$container.querySelectorAll(\".dhx_wa_day_cont .dhx_wa_scale_bar\");\n var currDate = scheduler.date.week_start(new Date(scheduler.getState().min_date));\n var index = -1;\n var markerDate = scheduler.date.day_start(new Date(start_date));\n\n for (var i = 0; i < divs.length; i++) {\n index++;\n\n if (scheduler.date.day_start(new Date(currDate)).valueOf() == markerDate.valueOf()) {\n break;\n } else {\n currDate = scheduler.date.add(currDate, 1, \"day\");\n }\n }\n\n if (index != -1) return this._wrapDiv(divs[index]);\n return [];\n },\n _wrapDiv: function _wrapDiv(cell) {\n var marker = this.createElement();\n marker.style.top = cell.offsetTop + \"px\";\n marker.style.left = cell.offsetLeft + \"px\";\n marker.style.width = cell.offsetWidth + \"px\";\n marker.style.height = cell.offsetHeight + \"px\";\n cell.appendChild(marker);\n return [marker];\n },\n renderYearMarker: function renderYearMarker(start_date, end_date) {\n var cell = scheduler._get_year_cell(start_date);\n\n cell.style.position = \"relative\";\n var marker = this.createElement();\n marker.style.top = \"0px\";\n marker.style.left = \"0px\";\n marker.style.width = \"100%\";\n marker.style.height = \"100%\";\n cell.appendChild(marker);\n return [marker];\n },\n renderAgendaMarker: function renderAgendaMarker(start_date, end_date) {\n var block = this.createElement();\n block.style.height = \"1px\";\n block.style.width = \"100%\";\n block.style.opacity = 1;\n block.style.top = \"0px\";\n block.style.left = \"0px\";\n scheduler.$container.querySelector(\".dhx_cal_data\").appendChild(block);\n return [block];\n },\n renderTimelineMarker: function renderTimelineMarker(start_date, end_date, section) {\n var view_opts = scheduler._lame_copy({}, scheduler.matrix[scheduler._mode]);\n\n var areas = view_opts._scales; //timespans must always use actual position, not rounded\n\n view_opts.round_position = false;\n var blocks = [];\n var min_date = start_date ? new Date(start_date) : scheduler._min_date;\n var max_date = end_date ? new Date(end_date) : scheduler._max_date;\n if (min_date.valueOf() < scheduler._min_date.valueOf()) min_date = new Date(scheduler._min_date);\n if (max_date.valueOf() > scheduler._max_date.valueOf()) max_date = new Date(scheduler._max_date);\n if (!view_opts._trace_x) return blocks;\n\n for (var i = 0; i < view_opts._trace_x.length; i++) {\n if (scheduler._is_column_visible(view_opts._trace_x[i])) break;\n }\n\n if (i == view_opts._trace_x.length) return blocks;\n var area = areas[section];\n if (!(min_date < end_date && max_date > start_date)) return blocks;\n var block = this.createElement();\n var start_pos = scheduler._timeline_getX({\n start_date: start_date\n }, false, view_opts) - 1;\n var end_pos = scheduler._timeline_getX({\n start_date: end_date\n }, false, view_opts) - 1;\n var height = view_opts._section_height[section] - 1 || view_opts.dy - 1;\n var top = 0;\n\n if (scheduler._isRender('cell')) {\n top = area.offsetTop;\n start_pos += view_opts.dx;\n end_pos += view_opts.dx;\n area = scheduler.$container.querySelector(\".dhx_cal_data\");\n } else {}\n\n var width = Math.max(1, end_pos - start_pos - 1);\n block.style.cssText = \"height: \" + height + \"px; left: \" + start_pos + \"px; width: \" + width + \"px; top: \" + top + \"px;\";\n area.appendChild(block);\n blocks.push(block);\n return blocks;\n },\n renderMonthCell: function renderMonthCell(date) {\n var cells = scheduler.$container.querySelectorAll(\".dhx_month_head\");\n var divs = [];\n\n for (var i = 0; i < cells.length; i++) {\n divs.push(cells[i].parentNode);\n }\n\n var firstDate = scheduler.date.week_start(new Date(scheduler.getState().min_date));\n var index = -1;\n var weekNumber = 0;\n var dayIndex = -1;\n var currDate = firstDate;\n var markerDate = scheduler.date.day_start(new Date(date));\n\n for (var i = 0; i < divs.length; i++) {\n index++;\n\n if (dayIndex == 6) {\n weekNumber++;\n dayIndex = 0;\n } else {\n dayIndex++;\n }\n\n if (scheduler.date.day_start(new Date(currDate)).valueOf() == markerDate.valueOf()) {\n break;\n } else {\n currDate = scheduler.date.add(currDate, 1, \"day\");\n }\n }\n\n if (index == -1) {\n return [];\n }\n\n var left = scheduler._colsS[dayIndex];\n var top = scheduler._colsS.heights[weekNumber];\n var div = this.createElement();\n div.style.top = top + \"px\";\n div.style.left = left + \"px\";\n div.style.width = scheduler._cols[dayIndex] + \"px\";\n div.style.height = (scheduler._colsS.heights[weekNumber + 1] - top || scheduler._colsS.height) + \"px\";\n var container = scheduler.$container.querySelector(\".dhx_cal_data\");\n var datatable = container.querySelector(\"table\");\n\n if (datatable.nextSibling) {\n container.insertBefore(div, datatable.nextSibling);\n } else {\n container.appendChild(div);\n }\n\n return div;\n },\n renderMonthMarker: function renderMonthMarker(start_date, end_date) {\n var res = [];\n var currentDate = start_date;\n\n while (currentDate.valueOf() < end_date.valueOf()) {\n res.push(this.renderMonthCell(currentDate));\n currentDate = scheduler.date.add(currentDate, 1, \"day\");\n }\n\n return res;\n },\n renderVerticalMarker: function renderVerticalMarker(start_date, end_date, section) {\n var index = scheduler.locate_holder_day(start_date);\n var divs = [];\n var area = null;\n var c = scheduler.config;\n if (scheduler._ignores[index]) return divs;\n\n if (scheduler._props && scheduler._props[scheduler._mode] && section) {\n var view = scheduler._props[scheduler._mode];\n index = view.order[section];\n var inner_index = view.order[section];\n\n if (!(view.days > 1)) {\n index = inner_index;\n\n if (view.size && index > view.position + view.size) {\n index = 0;\n }\n } else {\n //var units_l = view.size || view.options.length;\n index = scheduler.locate_holder_day(start_date) + inner_index; //index = index*units_l + inner_index;\n }\n }\n\n area = scheduler.locate_holder(index);\n\n if (!area || area.querySelector(\".dhx_scale_hour\")) {\n // hour scale instead of date column\n return document.createElement(\"div\");\n }\n\n var start = Math.max(start_date.getHours() * 60 + start_date.getMinutes(), c.first_hour * 60);\n var end = Math.min(end_date.getHours() * 60 + end_date.getMinutes(), c.last_hour * 60);\n\n if (!end && scheduler.date.day_start(new Date(end_date)).valueOf() > scheduler.date.day_start(new Date(start_date)).valueOf()) {\n end = c.last_hour * 60;\n }\n\n if (end <= start) {\n return [];\n }\n\n var block = this.createElement(); // +1 for working with section which really takes up whole height (as % would be == 0)\n\n var all_hours_height = scheduler.config.hour_size_px * c.last_hour + 1;\n var hour_ms = 60 * 60 * 1000;\n block.style.top = Math.round((start * 60 * 1000 - scheduler.config.first_hour * hour_ms) * scheduler.config.hour_size_px / hour_ms) % all_hours_height + \"px\";\n block.style.lineHeight = block.style.height = Math.max(Math.round((end - start) * 60 * 1000 * scheduler.config.hour_size_px / hour_ms) % all_hours_height, 1) + \"px\";\n block.style.width = \"100%\";\n area.appendChild(block);\n divs.push(block);\n return divs[0];\n }\n };\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.SchedulerNode = function () {};\n\n scheduler.$keyboardNavigation.SchedulerNode.prototype = scheduler._compose(scheduler.$keyboardNavigation.EventHandler, {\n getDefaultNode: function getDefaultNode() {\n var node = new scheduler.$keyboardNavigation.TimeSlot();\n\n if (!node.isValid()) {\n node = node.fallback();\n }\n\n return node;\n },\n _modes: {\n month: \"month\",\n year: \"year\",\n dayColumns: \"dayColumns\",\n timeline: \"timeline\",\n units: \"units\",\n weekAgenda: \"weekAgenda\",\n list: \"list\"\n },\n getMode: function getMode() {\n var state = scheduler.getState();\n var mode = state.mode;\n\n if (scheduler.matrix && scheduler.matrix[mode]) {\n return this._modes.timeline;\n } else if (scheduler._props && scheduler._props[mode]) {\n return this._modes.units;\n } else if (mode == \"month\") {\n return this._modes.month;\n } else if (mode == \"year\") {\n return this._modes.year;\n } else if (mode == \"week_agenda\") {\n return this._modes.weekAgenda;\n } else if (mode == \"map\" || mode == \"agenda\" || scheduler._grid && scheduler[\"grid_\" + mode]) {\n return this._modes.list;\n } else {\n return this._modes.dayColumns;\n }\n },\n focus: function focus() {\n scheduler.focus();\n },\n blur: function blur() {},\n disable: function disable() {\n scheduler.$container.setAttribute(\"tabindex\", \"0\");\n },\n enable: function enable() {\n if (scheduler.$container) scheduler.$container.removeAttribute(\"tabindex\");\n },\n isEnabled: function isEnabled() {\n return scheduler.$container.hasAttribute(\"tabindex\");\n },\n _compareEvents: function _compareEvents(a, b) {\n if (a.start_date.valueOf() == b.start_date.valueOf()) return a.id > b.id ? 1 : -1;\n return a.start_date.valueOf() > b.start_date.valueOf() ? 1 : -1;\n },\n _pickEvent: function _pickEvent(from, to, startId, reverse) {\n var range = scheduler.getState();\n from = new Date(Math.max(range.min_date.valueOf(), from.valueOf()));\n to = new Date(Math.min(range.max_date.valueOf(), to.valueOf()));\n var evs = scheduler.getEvents(from, to);\n evs.sort(this._compareEvents);\n\n if (reverse) {\n evs = evs.reverse();\n }\n\n var trim = !!startId;\n\n for (var i = 0; i < evs.length && trim; i++) {\n if (evs[i].id == startId) {\n trim = false;\n }\n\n evs.splice(i, 1);\n i--;\n }\n\n for (var i = 0; i < evs.length; i++) {\n var eventElement = new scheduler.$keyboardNavigation.Event(evs[i].id);\n if (eventElement.getNode()) return evs[i];\n }\n\n return null;\n },\n nextEventHandler: function nextEventHandler(id) {\n var activeNode = scheduler.$keyboardNavigation.dispatcher.activeNode;\n var startId = id || activeNode && activeNode.eventId;\n var nextEvent = null;\n\n if (startId && scheduler.getEvent(startId)) {\n var currEvent = scheduler.getEvent(startId);\n nextEvent = scheduler.$keyboardNavigation.SchedulerNode.prototype._pickEvent(currEvent.start_date, scheduler.date.add(currEvent.start_date, 1, \"year\"), currEvent.id, false);\n }\n\n if (!nextEvent && !id) {\n var visibleDates = scheduler.getState();\n nextEvent = scheduler.$keyboardNavigation.SchedulerNode.prototype._pickEvent(visibleDates.min_date, scheduler.date.add(visibleDates.min_date, 1, \"year\"), null, false);\n }\n\n if (nextEvent) {\n var nextEv = new scheduler.$keyboardNavigation.Event(nextEvent.id);\n\n if (!nextEv.isValid()) {\n // not visible event\n this.nextEventHandler(nextEvent.id);\n } else {\n if (activeNode) {\n activeNode.blur();\n }\n\n scheduler.$keyboardNavigation.dispatcher.setActiveNode(nextEv);\n }\n }\n },\n prevEventHandler: function prevEventHandler(id) {\n var activeNode = scheduler.$keyboardNavigation.dispatcher.activeNode;\n var startId = id || activeNode && activeNode.eventId;\n var nextEvent = null;\n\n if (startId && scheduler.getEvent(startId)) {\n var currEvent = scheduler.getEvent(startId);\n nextEvent = scheduler.$keyboardNavigation.SchedulerNode.prototype._pickEvent(scheduler.date.add(currEvent.end_date, -1, \"year\"), currEvent.end_date, currEvent.id, true);\n }\n\n if (!nextEvent && !id) {\n var visibleDates = scheduler.getState();\n nextEvent = scheduler.$keyboardNavigation.SchedulerNode.prototype._pickEvent(scheduler.date.add(visibleDates.max_date, -1, \"year\"), visibleDates.max_date, null, true);\n }\n\n if (nextEvent) {\n var nextEv = new scheduler.$keyboardNavigation.Event(nextEvent.id);\n\n if (!nextEv.isValid()) {\n // not visible event\n this.prevEventHandler(nextEvent.id);\n } else {\n if (activeNode) {\n activeNode.blur();\n }\n\n scheduler.$keyboardNavigation.dispatcher.setActiveNode(nextEv);\n }\n }\n },\n keys: {\n \"alt+1, alt+2, alt+3, alt+4, alt+5, alt+6, alt+7, alt+8, alt+9\": function alt1Alt2Alt3Alt4Alt5Alt6Alt7Alt8Alt9(e) {\n var tabs = scheduler.$keyboardNavigation.HeaderCell.prototype.getNodes(\".dhx_cal_navline .dhx_cal_tab\");\n var key = e.key;\n\n if (key === undefined) {\n key = e.keyCode - 48;\n }\n\n if (tabs[key * 1 - 1]) {\n tabs[key * 1 - 1].click();\n }\n },\n \"ctrl+left,meta+left\": function ctrlLeftMetaLeft(e) {\n scheduler._click.dhx_cal_prev_button();\n },\n \"ctrl+right,meta+right\": function ctrlRightMetaRight(e) {\n scheduler._click.dhx_cal_next_button();\n },\n \"ctrl+up,meta+up\": function ctrlUpMetaUp(e) {\n var dataArea = scheduler.$container.querySelector(\".dhx_cal_data\");\n dataArea.scrollTop -= 20;\n },\n \"ctrl+down,meta+down\": function ctrlDownMetaDown(e) {\n var dataArea = scheduler.$container.querySelector(\".dhx_cal_data\");\n dataArea.scrollTop += 20;\n },\n \"e\": function e() {\n this.nextEventHandler();\n },\n \"home\": function home() {\n scheduler.setCurrentView(new Date());\n },\n \"shift+e\": function shiftE() {\n this.prevEventHandler();\n },\n \"ctrl+enter,meta+enter\": function ctrlEnterMetaEnter() {\n scheduler.addEventNow({\n start_date: new Date(scheduler.getState().date)\n });\n },\n \"ctrl+c,meta+c\": function ctrlCMetaC(e) {\n scheduler._key_nav_copy_paste(e);\n },\n \"ctrl+v,meta+v\": function ctrlVMetaV(e) {\n scheduler._key_nav_copy_paste(e);\n },\n \"ctrl+x,meta+x\": function ctrlXMetaX(e) {\n scheduler._key_nav_copy_paste(e);\n }\n }\n });\n scheduler.$keyboardNavigation.SchedulerNode.prototype.bindAll(scheduler.$keyboardNavigation.SchedulerNode.prototype.keys);\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.KeyNavNode = function () {};\n\n scheduler.$keyboardNavigation.KeyNavNode.prototype = scheduler._compose(scheduler.$keyboardNavigation.EventHandler, {\n isValid: function isValid() {\n return true;\n },\n fallback: function fallback() {\n return null;\n },\n moveTo: function moveTo(element) {\n scheduler.$keyboardNavigation.dispatcher.setActiveNode(element);\n },\n compareTo: function compareTo(b) {\n // good enough comparison of two random objects\n if (!b) return false;\n\n for (var i in this) {\n if (!!this[i] != !!b[i]) return false;\n var canStringifyThis = !!(this[i] && this[i].toString);\n var canStringifyThat = !!(b[i] && b[i].toString);\n if (canStringifyThat != canStringifyThis) return false;\n\n if (!(canStringifyThat && canStringifyThis)) {\n if (b[i] != this[i]) return false;\n } else {\n if (b[i].toString() != this[i].toString()) return false;\n }\n }\n\n return true;\n },\n getNode: function getNode() {},\n focus: function focus() {\n var node = this.getNode();\n\n if (node) {\n node.setAttribute(\"tabindex\", \"-1\"); //node.className += \" scheduler_focused\";\n\n if (node.focus) node.focus();\n }\n },\n blur: function blur() {\n var node = this.getNode();\n\n if (node) {\n node.setAttribute(\"tabindex\", \"-1\"); //node.className = (node.className || \"\").replace(/ ?scheduler_focused/g, \"\");\n }\n }\n });\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.HeaderCell = function (index) {\n this.index = index || 0;\n };\n\n scheduler.$keyboardNavigation.HeaderCell.prototype = scheduler._compose(scheduler.$keyboardNavigation.KeyNavNode, {\n getNode: function getNode(index) {\n index = index || this.index || 0;\n var nodes = this.getNodes();\n if (nodes[index]) return nodes[index];\n },\n getNodes: function getNodes(selector) {\n selector = selector || [\".dhx_cal_navline .dhx_cal_prev_button\", \".dhx_cal_navline .dhx_cal_next_button\", \".dhx_cal_navline .dhx_cal_today_button\", \".dhx_cal_navline .dhx_cal_tab\"].join(\", \");\n var nodes = Array.prototype.slice.call(scheduler.$container.querySelectorAll(selector));\n nodes.sort(function (a, b) {\n return a.offsetLeft - b.offsetLeft;\n });\n return nodes;\n },\n _handlers: null,\n isValid: function isValid() {\n return !!this.getNode(this.index);\n },\n fallback: function fallback() {\n var defaultCell = this.getNode(0);\n\n if (!defaultCell) {\n defaultCell = new scheduler.$keyboardNavigation.TimeSlot();\n }\n\n return defaultCell;\n },\n keys: {\n \"left\": function left() {\n var newIndex = this.index - 1;\n\n if (newIndex < 0) {\n newIndex = this.getNodes().length - 1;\n }\n\n this.moveTo(new scheduler.$keyboardNavigation.HeaderCell(newIndex));\n },\n \"right\": function right() {\n var newIndex = this.index + 1;\n\n if (newIndex >= this.getNodes().length) {\n newIndex = 0;\n }\n\n this.moveTo(new scheduler.$keyboardNavigation.HeaderCell(newIndex));\n },\n \"down\": function down() {\n this.moveTo(new scheduler.$keyboardNavigation.TimeSlot());\n },\n \"enter\": function enter() {\n var node = this.getNode();\n\n if (node) {\n node.click();\n }\n }\n }\n });\n scheduler.$keyboardNavigation.HeaderCell.prototype.bindAll(scheduler.$keyboardNavigation.HeaderCell.prototype.keys);\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.Event = function (id) {\n this.eventId = null;\n\n if (scheduler.getEvent(id)) {\n var ev = scheduler.getEvent(id);\n this.start = new Date(ev.start_date);\n this.end = new Date(ev.end_date);\n this.section = this._getSection(ev);\n this.eventId = id;\n }\n };\n\n scheduler.$keyboardNavigation.Event.prototype = scheduler._compose(scheduler.$keyboardNavigation.KeyNavNode, {\n _getNodes: function _getNodes() {\n return Array.prototype.slice.call(scheduler.$container.querySelectorAll(\"[\" + scheduler.config.event_attribute + \"]\"));\n },\n _modes: scheduler.$keyboardNavigation.SchedulerNode.prototype._modes,\n getMode: scheduler.$keyboardNavigation.SchedulerNode.prototype.getMode,\n _handlers: null,\n isValid: function isValid() {\n return !!(scheduler.getEvent(this.eventId) && this.getNode());\n },\n fallback: function fallback() {\n var eventNode = this._getNodes()[0];\n\n var defaultElement = null;\n\n if (!eventNode || !scheduler._locate_event(eventNode)) {\n defaultElement = new scheduler.$keyboardNavigation.TimeSlot();\n } else {\n var id = scheduler._locate_event(eventNode);\n\n defaultElement = new scheduler.$keyboardNavigation.Event(id);\n }\n\n return defaultElement;\n },\n isScrolledIntoView: function isScrolledIntoView(el) {\n var eventBox = el.getBoundingClientRect();\n var viewPort = scheduler.$container.querySelector(\".dhx_cal_data\").getBoundingClientRect();\n\n if (eventBox.bottom < viewPort.top || eventBox.top > viewPort.bottom) {\n return false;\n }\n\n return true;\n },\n getNode: function getNode() {\n var idSelector = \"[\" + scheduler.config.event_attribute + \"='\" + this.eventId + \"']\";\n var inlineEditor = scheduler.$keyboardNavigation.dispatcher.getInlineEditor(this.eventId);\n\n if (inlineEditor) {\n // is inline editor visible\n return inlineEditor;\n } else {\n if (scheduler.isMultisectionEvent && scheduler.isMultisectionEvent(scheduler.getEvent(this.eventId))) {\n var nodes = scheduler.$container.querySelectorAll(idSelector);\n\n for (var i = 0; i < nodes.length; i++) {\n if (this.isScrolledIntoView(nodes[i])) {\n return nodes[i];\n }\n }\n\n return nodes[0];\n } else {\n return scheduler.$container.querySelector(idSelector);\n }\n }\n },\n focus: function focus() {\n var event = scheduler.getEvent(this.eventId);\n var calendar = scheduler.getState();\n\n if (event.start_date.valueOf() > calendar.max_date.valueOf() || event.end_date.valueOf() <= calendar.min_date.valueOf()) {\n scheduler.setCurrentView(event.start_date);\n }\n\n var node = this.getNode();\n\n if (this.isScrolledIntoView(node)) {\n scheduler.$keyboardNavigation.dispatcher.keepScrollPosition(function () {\n scheduler.$keyboardNavigation.KeyNavNode.prototype.focus.apply(this);\n }.bind(this));\n } else {\n scheduler.$keyboardNavigation.KeyNavNode.prototype.focus.apply(this);\n }\n },\n blur: function blur() {\n scheduler.$keyboardNavigation.KeyNavNode.prototype.blur.apply(this);\n },\n _getSection: function _getSection(ev) {\n var section = null;\n var mode = scheduler.getState().mode;\n\n if (scheduler.matrix && scheduler.matrix[mode]) {\n var timeline = scheduler.matrix[scheduler.getState().mode];\n section = ev[timeline.y_property];\n } else if (scheduler._props && scheduler._props[mode]) {\n var unit = scheduler._props[mode];\n section = ev[unit.map_to];\n }\n\n return section;\n },\n _moveToSlot: function _moveToSlot(dir) {\n var ev = scheduler.getEvent(this.eventId);\n\n if (ev) {\n var section = this._getSection(ev);\n\n var slot = new scheduler.$keyboardNavigation.TimeSlot(ev.start_date, null, section);\n this.moveTo(slot.nextSlot(slot, dir));\n } else {\n this.moveTo(new scheduler.$keyboardNavigation.TimeSlot());\n }\n },\n keys: {\n \"left\": function left() {\n this._moveToSlot(\"left\");\n },\n \"right\": function right() {\n this._moveToSlot(\"right\");\n },\n \"down\": function down() {\n if (this.getMode() == this._modes.list) {\n scheduler.$keyboardNavigation.SchedulerNode.prototype.nextEventHandler();\n } else {\n this._moveToSlot(\"down\");\n }\n },\n \"space\": function space() {\n var node = this.getNode();\n\n if (node && node.click) {\n node.click();\n } else {\n this.moveTo(new scheduler.$keyboardNavigation.TimeSlot());\n }\n },\n \"up\": function up() {\n if (this.getMode() == this._modes.list) {\n scheduler.$keyboardNavigation.SchedulerNode.prototype.prevEventHandler();\n } else {\n this._moveToSlot(\"up\");\n }\n },\n \"delete\": function _delete() {\n if (scheduler.getEvent(this.eventId)) {\n scheduler._click.buttons[\"delete\"](this.eventId);\n } else {\n this.moveTo(new scheduler.$keyboardNavigation.TimeSlot());\n }\n },\n // open lightbox\n \"enter\": function enter() {\n if (scheduler.getEvent(this.eventId)) {\n scheduler.showLightbox(this.eventId);\n } else {\n this.moveTo(new scheduler.$keyboardNavigation.TimeSlot());\n }\n }\n }\n });\n scheduler.$keyboardNavigation.Event.prototype.bindAll(scheduler.$keyboardNavigation.Event.prototype.keys);\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.TimeSlot = function (from, to, section, movingDate) {\n var state = scheduler.getState();\n var timeline = scheduler.matrix && scheduler.matrix[state.mode];\n\n if (!from) {\n from = this.getDefaultDate();\n }\n\n if (!to) {\n if (timeline) {\n to = scheduler.date.add(from, timeline.x_step, timeline.x_unit);\n } else {\n to = scheduler.date.add(from, scheduler.config.key_nav_step, \"minute\");\n }\n }\n\n this.section = section || this._getDefaultSection();\n this.start_date = new Date(from);\n this.end_date = new Date(to);\n this.movingDate = movingDate || null;\n };\n\n scheduler.$keyboardNavigation.TimeSlot.prototype = scheduler._compose(scheduler.$keyboardNavigation.KeyNavNode, {\n _handlers: null,\n getDefaultDate: function getDefaultDate() {\n var from;\n var state = scheduler.getState();\n var visibleTime = new Date(state.date);\n visibleTime.setSeconds(0);\n visibleTime.setMilliseconds(0);\n var nowTime = new Date();\n nowTime.setSeconds(0);\n nowTime.setMilliseconds(0);\n var timeline = scheduler.matrix && scheduler.matrix[state.mode];\n var showNowTime = false;\n\n if (visibleTime.valueOf() === nowTime.valueOf()) {\n showNowTime = true;\n }\n\n if (timeline) {\n if (showNowTime) {\n if (timeline.x_unit === \"day\") {\n nowTime.setHours(0);\n nowTime.setMinutes(0);\n } else if (timeline.x_unit === \"hour\") {\n nowTime.setMinutes(0);\n }\n\n from = nowTime;\n } else {\n from = scheduler.date[timeline.name + \"_start\"](new Date(state.date));\n }\n\n from = this.findVisibleColumn(from);\n } else {\n from = new Date(scheduler.getState().min_date);\n\n if (showNowTime) {\n from = nowTime;\n }\n\n from = this.findVisibleColumn(from);\n\n if (!showNowTime) {\n from.setHours(scheduler.config.first_hour);\n }\n\n if (!scheduler._table_view) {\n var dataContainer = scheduler.$container.querySelector(\".dhx_cal_data\");\n\n if (dataContainer.scrollTop) {\n from.setHours(scheduler.config.first_hour + Math.ceil(dataContainer.scrollTop / scheduler.config.hour_size_px));\n }\n }\n }\n\n return from;\n },\n clone: function clone(timeslot) {\n return new scheduler.$keyboardNavigation.TimeSlot(timeslot.start_date, timeslot.end_date, timeslot.section, timeslot.movingDate);\n },\n _getMultisectionView: function _getMultisectionView() {\n var state = scheduler.getState();\n var view;\n\n if (scheduler._props && scheduler._props[state.mode]) {\n view = scheduler._props[state.mode];\n } else if (scheduler.matrix && scheduler.matrix[state.mode]) {\n view = scheduler.matrix[state.mode];\n }\n\n return view;\n },\n _getDefaultSection: function _getDefaultSection() {\n var section = null;\n\n var view = this._getMultisectionView();\n\n if (view && !section) {\n section = this._getNextSection();\n }\n\n return section;\n },\n _getNextSection: function _getNextSection(sectionId, dir) {\n var view = this._getMultisectionView();\n\n var currentIndex = view.order[sectionId];\n var nextIndex = currentIndex;\n\n if (currentIndex !== undefined) {\n nextIndex = currentIndex + dir;\n } else {\n nextIndex = view.size && view.position ? view.position : 0;\n }\n\n nextIndex = nextIndex < 0 ? nextIndex = (view.options || view.y_unit).length - 1 : nextIndex;\n var options = view.options || view.y_unit;\n\n if (options[nextIndex]) {\n return options[nextIndex].key;\n } else {\n return null;\n }\n },\n isValid: function isValid() {\n var state = scheduler.getState();\n var isInRange = !(this.start_date.valueOf() < state.min_date.valueOf() || this.start_date.valueOf() >= state.max_date.valueOf());\n if (!isInRange) return false;\n if (!this.isVisible(this.start_date, this.end_date)) return false;\n\n var view = this._getMultisectionView();\n\n if (view) {\n return view.order[this.section] !== undefined;\n } else {\n return true;\n }\n },\n fallback: function fallback() {\n var defaultSlot = new scheduler.$keyboardNavigation.TimeSlot();\n\n if (!defaultSlot.isValid()) {\n return new scheduler.$keyboardNavigation.DataArea();\n } else {\n return defaultSlot;\n }\n },\n getNodes: function getNodes() {\n return Array.prototype.slice.call(scheduler.$container.querySelectorAll(\".dhx_focus_slot\"));\n },\n getNode: function getNode() {\n return this.getNodes()[0];\n },\n focus: function focus() {\n scheduler.$keyboardNavigation.marker.render(this.start_date, this.end_date, this.section);\n scheduler.$keyboardNavigation.KeyNavNode.prototype.focus.apply(this);\n scheduler.$keyboardNavigation._pasteDate = this.start_date;\n scheduler.$keyboardNavigation._pasteSection = this.section;\n },\n blur: function blur() {\n scheduler.$keyboardNavigation.KeyNavNode.prototype.blur.apply(this);\n scheduler.$keyboardNavigation.marker.clear();\n },\n _modes: scheduler.$keyboardNavigation.SchedulerNode.prototype._modes,\n _getMode: scheduler.$keyboardNavigation.SchedulerNode.prototype.getMode,\n addMonthDate: function addMonthDate(date, dir, extend) {\n var res;\n\n switch (dir) {\n case \"up\":\n res = scheduler.date.add(date, -1, \"week\");\n break;\n\n case \"down\":\n res = scheduler.date.add(date, 1, \"week\");\n break;\n\n case \"left\":\n res = scheduler.date.day_start(scheduler.date.add(date, -1, \"day\"));\n res = this.findVisibleColumn(res, -1);\n break;\n\n case \"right\":\n res = scheduler.date.day_start(scheduler.date.add(date, 1, \"day\"));\n res = this.findVisibleColumn(res, 1);\n break;\n\n default:\n res = scheduler.date.day_start(new Date(date));\n break;\n }\n\n var state = scheduler.getState();\n\n if (date.valueOf() < state.min_date.valueOf() || !extend && date.valueOf() >= state.max_date.valueOf()) {\n res = new Date(state.min_date);\n }\n\n return res;\n },\n nextMonthSlot: function nextMonthSlot(slot, dir, extend) {\n var start, end;\n start = this.addMonthDate(slot.start_date, dir, extend);\n start.setHours(scheduler.config.first_hour);\n end = new Date(start);\n end.setHours(scheduler.config.last_hour);\n return {\n start_date: start,\n end_date: end\n };\n },\n _alignTimeSlot: function _alignTimeSlot(date, minDate, unit, step) {\n var currentDate = new Date(minDate);\n\n while (currentDate.valueOf() < date.valueOf()) {\n currentDate = scheduler.date.add(currentDate, step, unit);\n }\n\n if (currentDate.valueOf() > date.valueOf()) {\n currentDate = scheduler.date.add(currentDate, -step, unit);\n }\n\n return currentDate;\n },\n nextTimelineSlot: function nextTimelineSlot(slot, dir, extend) {\n var state = scheduler.getState();\n var view = scheduler.matrix[state.mode];\n\n var startDate = this._alignTimeSlot(slot.start_date, scheduler.date[view.name + \"_start\"](new Date(slot.start_date)), view.x_unit, view.x_step);\n\n var endDate = this._alignTimeSlot(slot.end_date, scheduler.date[view.name + \"_start\"](new Date(slot.end_date)), view.x_unit, view.x_step);\n\n if (endDate.valueOf() <= startDate.valueOf()) {\n endDate = scheduler.date.add(startDate, view.x_step, view.x_unit);\n }\n\n var newPos = this.clone(slot);\n newPos.start_date = startDate;\n newPos.end_date = endDate;\n newPos.section = slot.section || this._getNextSection();\n\n switch (dir) {\n case \"up\":\n newPos.section = this._getNextSection(slot.section, -1);\n break;\n\n case \"down\":\n newPos.section = this._getNextSection(slot.section, +1);\n break;\n\n case \"left\":\n newPos.start_date = this.findVisibleColumn(scheduler.date.add(newPos.start_date, -view.x_step, view.x_unit), -1);\n newPos.end_date = scheduler.date.add(newPos.start_date, view.x_step, view.x_unit);\n break;\n\n case \"right\":\n newPos.start_date = this.findVisibleColumn(scheduler.date.add(newPos.start_date, view.x_step, view.x_unit), 1);\n newPos.end_date = scheduler.date.add(newPos.start_date, view.x_step, view.x_unit);\n break;\n\n default:\n break;\n }\n\n if (newPos.start_date.valueOf() < state.min_date.valueOf() || newPos.start_date.valueOf() >= state.max_date.valueOf()) {\n if (extend && newPos.start_date.valueOf() >= state.max_date.valueOf()) {\n newPos.start_date = new Date(state.max_date);\n } else {\n newPos.start_date = scheduler.date[state.mode + \"_start\"](scheduler.date.add(state.date, dir == \"left\" ? -1 : 1, state.mode));\n newPos.end_date = scheduler.date.add(newPos.start_date, view.x_step, view.x_unit);\n }\n }\n\n return newPos;\n },\n nextUnitsSlot: function nextUnitsSlot(slot, dir, extend) {\n var newPos = this.clone(slot);\n newPos.section = slot.section || this._getNextSection();\n\n var section = slot.section || this._getNextSection();\n\n var state = scheduler.getState();\n var view = scheduler._props[state.mode];\n\n switch (dir) {\n case \"left\":\n section = this._getNextSection(slot.section, -1);\n var optionsCount = view.size ? view.size - 1 : view.options.length;\n\n if (view.days > 1 && view.order[section] == optionsCount - 1) {\n if (scheduler.date.add(slot.start_date, -1, \"day\").valueOf() >= state.min_date.valueOf()) {\n newPos = this.nextDaySlot(slot, dir, extend);\n }\n }\n\n break;\n\n case \"right\":\n section = this._getNextSection(slot.section, 1);\n\n if (view.days > 1 && !view.order[section]) {\n if (scheduler.date.add(slot.start_date, 1, \"day\").valueOf() < state.max_date.valueOf()) {\n newPos = this.nextDaySlot(slot, dir, extend);\n }\n }\n\n break;\n\n default:\n newPos = this.nextDaySlot(slot, dir, extend);\n section = slot.section;\n break;\n }\n\n newPos.section = section;\n return newPos;\n },\n _moveDate: function _moveDate(oldDate, dir) {\n var newDate = this.findVisibleColumn(scheduler.date.add(oldDate, dir, \"day\"), dir);\n newDate.setHours(oldDate.getHours());\n newDate.setMinutes(oldDate.getMinutes());\n return newDate;\n },\n isBeforeLastHour: function isBeforeLastHour(date, isStartDate) {\n var minutes = date.getMinutes(),\n hours = date.getHours(),\n last_hour = scheduler.config.last_hour;\n return hours < last_hour || !isStartDate && (last_hour == 24 || hours == last_hour) && !minutes;\n },\n isAfterFirstHour: function isAfterFirstHour(date, isStartDate) {\n var minutes = date.getMinutes(),\n hours = date.getHours(),\n first_hour = scheduler.config.first_hour,\n last_hour = scheduler.config.last_hour;\n return hours >= first_hour || !isStartDate && !minutes && (!hours && last_hour == 24 || hours == last_hour);\n },\n isInVisibleDayTime: function isInVisibleDayTime(date, isStartDate) {\n return this.isBeforeLastHour(date, isStartDate) && this.isAfterFirstHour(date, isStartDate);\n },\n nextDaySlot: function nextDaySlot(slot, dir, extend) {\n var start, end;\n var key_nav_step = scheduler.config.key_nav_step;\n\n var date = this._alignTimeSlot(slot.start_date, scheduler.date.day_start(new Date(slot.start_date)), \"minute\", key_nav_step);\n\n var oldStart = slot.start_date;\n\n switch (dir) {\n case \"up\":\n start = scheduler.date.add(date, -key_nav_step, \"minute\");\n\n if (!this.isInVisibleDayTime(start, true)) {\n if (!extend || this.isInVisibleDayTime(oldStart, true)) {\n var toNextDay = true;\n if (extend && scheduler.date.date_part(new Date(start)).valueOf() != scheduler.date.date_part(new Date(oldStart)).valueOf()) toNextDay = false;\n if (toNextDay) start = this.findVisibleColumn(scheduler.date.add(slot.start_date, -1, \"day\"), -1);\n start.setHours(scheduler.config.last_hour);\n start.setMinutes(0);\n start = scheduler.date.add(start, -key_nav_step, \"minute\");\n }\n }\n\n end = scheduler.date.add(start, key_nav_step, \"minute\");\n break;\n\n case \"down\":\n start = scheduler.date.add(date, key_nav_step, \"minute\");\n var testEnd = extend ? start : scheduler.date.add(start, key_nav_step, \"minute\");\n\n if (!this.isInVisibleDayTime(testEnd, false)) {\n if (!extend || this.isInVisibleDayTime(oldStart, false)) {\n if (!extend) {\n start = this.findVisibleColumn(scheduler.date.add(slot.start_date, 1, \"day\"), 1);\n start.setHours(scheduler.config.first_hour);\n start.setMinutes(0);\n } else {\n var toNextDay = true;\n\n if (scheduler.date.date_part(new Date(oldStart)).valueOf() == oldStart.valueOf()) {\n toNextDay = false;\n }\n\n if (toNextDay) {\n start = this.findVisibleColumn(scheduler.date.add(slot.start_date, 1, \"day\"), 1);\n }\n\n start.setHours(scheduler.config.first_hour);\n start.setMinutes(0);\n start = scheduler.date.add(start, key_nav_step, \"minute\");\n }\n }\n }\n\n end = scheduler.date.add(start, key_nav_step, \"minute\");\n break;\n\n case \"left\":\n start = this._moveDate(slot.start_date, -1);\n end = this._moveDate(slot.end_date, -1);\n break;\n\n case \"right\":\n start = this._moveDate(slot.start_date, 1);\n end = this._moveDate(slot.end_date, 1);\n break;\n\n default:\n start = date;\n end = scheduler.date.add(start, key_nav_step, \"minute\");\n break;\n }\n\n return {\n start_date: start,\n end_date: end\n };\n },\n nextWeekAgendaSlot: function nextWeekAgendaSlot(slot, dir) {\n var start, end;\n var state = scheduler.getState();\n\n switch (dir) {\n case \"down\":\n case \"left\":\n start = scheduler.date.day_start(scheduler.date.add(slot.start_date, -1, \"day\"));\n start = this.findVisibleColumn(start, -1);\n break;\n\n case \"up\":\n case \"right\":\n start = scheduler.date.day_start(scheduler.date.add(slot.start_date, 1, \"day\"));\n start = this.findVisibleColumn(start, 1);\n break;\n\n default:\n start = scheduler.date.day_start(slot.start_date);\n break;\n }\n\n if (slot.start_date.valueOf() < state.min_date.valueOf() || slot.start_date.valueOf() >= state.max_date.valueOf()) {\n start = new Date(state.min_date);\n }\n\n end = new Date(start);\n end.setHours(scheduler.config.last_hour);\n return {\n start_date: start,\n end_date: end\n };\n },\n nextAgendaSlot: function nextAgendaSlot(slot, dir) {\n return {\n start_date: slot.start_date,\n end_date: slot.end_date\n };\n },\n isDateVisible: function isDateVisible(date) {\n if (!scheduler._ignores_detected) return true;\n var timeline = scheduler.matrix && scheduler.matrix[scheduler.getState().mode];\n var index;\n\n if (timeline) {\n index = scheduler._get_date_index(timeline, date);\n } else {\n index = scheduler.locate_holder_day(date);\n }\n\n return !scheduler._ignores[index];\n },\n findVisibleColumn: function findVisibleColumn(start, dir) {\n var date = start;\n dir = dir || 1;\n var range = scheduler.getState();\n\n while (!this.isDateVisible(date) && (dir > 0 && date.valueOf() <= range.max_date.valueOf() || dir < 0 && date.valueOf() >= range.min_date.valueOf())) {\n date = this.nextDateColumn(date, dir);\n }\n\n return date;\n },\n nextDateColumn: function nextDateColumn(start, dir) {\n dir = dir || 1;\n var timeline = scheduler.matrix && scheduler.matrix[scheduler.getState().mode];\n var date;\n\n if (timeline) {\n date = scheduler.date.add(start, dir * timeline.x_step, timeline.x_unit);\n } else {\n date = scheduler.date.day_start(scheduler.date.add(start, dir, \"day\"));\n }\n\n return date;\n },\n isVisible: function isVisible(from, to) {\n if (!scheduler._ignores_detected) return true;\n var current = new Date(from);\n\n while (current.valueOf() < to.valueOf()) {\n if (this.isDateVisible(current)) return true;\n current = this.nextDateColumn(current);\n }\n\n return false;\n },\n nextSlot: function nextSlot(slot, dir, view, extend) {\n var next;\n view = view || this._getMode();\n var tempSlot = scheduler.$keyboardNavigation.TimeSlot.prototype.clone(slot);\n\n switch (view) {\n case this._modes.units:\n next = this.nextUnitsSlot(tempSlot, dir, extend);\n break;\n\n case this._modes.timeline:\n next = this.nextTimelineSlot(tempSlot, dir, extend);\n break;\n\n case this._modes.year:\n next = this.nextMonthSlot(tempSlot, dir, extend);\n break;\n\n case this._modes.month:\n next = this.nextMonthSlot(tempSlot, dir, extend);\n break;\n\n case this._modes.weekAgenda:\n next = this.nextWeekAgendaSlot(tempSlot, dir, extend);\n break;\n\n case this._modes.list:\n next = this.nextAgendaSlot(tempSlot, dir, extend);\n break;\n\n case this._modes.dayColumns:\n next = this.nextDaySlot(tempSlot, dir, extend);\n break;\n }\n\n if (next.start_date.valueOf() >= next.end_date.valueOf()) {\n next = this.nextSlot(next, dir, view);\n }\n\n return scheduler.$keyboardNavigation.TimeSlot.prototype.clone(next);\n },\n extendSlot: function extendSlot(slot, dir) {\n var view = this._getMode();\n\n var next;\n\n switch (view) {\n case this._modes.units:\n if (dir == \"left\" || dir == \"right\") {\n next = this.nextUnitsSlot(slot, dir);\n } else {\n next = this.extendUnitsSlot(slot, dir);\n }\n\n break;\n\n case this._modes.timeline:\n if (dir == \"down\" || dir == \"up\") {\n next = this.nextTimelineSlot(slot, dir);\n } else {\n next = this.extendTimelineSlot(slot, dir);\n }\n\n break;\n\n case this._modes.year:\n next = this.extendMonthSlot(slot, dir);\n break;\n\n case this._modes.month:\n next = this.extendMonthSlot(slot, dir);\n break;\n\n case this._modes.dayColumns:\n next = this.extendDaySlot(slot, dir);\n break;\n\n case this._modes.weekAgenda:\n next = this.extendWeekAgendaSlot(slot, dir);\n break;\n\n default:\n next = slot;\n break;\n }\n\n var range = scheduler.getState();\n\n if (next.start_date.valueOf() < range.min_date.valueOf()) {\n next.start_date = this.findVisibleColumn(range.min_date);\n next.start_date.setHours(scheduler.config.first_hour);\n }\n\n if (next.end_date.valueOf() > range.max_date.valueOf()) {\n //\tnext.end_date = new Date(slot.end_date);\n next.end_date = this.findVisibleColumn(range.max_date, -1);\n }\n\n return scheduler.$keyboardNavigation.TimeSlot.prototype.clone(next);\n },\n extendTimelineSlot: function extendTimelineSlot(slot, direction) {\n return this.extendGenericSlot({\n \"left\": \"start_date\",\n \"right\": \"end_date\"\n }, slot, direction, \"timeline\");\n },\n extendWeekAgendaSlot: function extendWeekAgendaSlot(slot, direction) {\n return this.extendGenericSlot({\n \"left\": \"start_date\",\n \"right\": \"end_date\"\n }, slot, direction, \"weekAgenda\");\n },\n extendGenericSlot: function extendGenericSlot(allowedDirections, slot, direction, type) {\n var next;\n var moveDate = slot.movingDate;\n\n if (!moveDate) {\n moveDate = allowedDirections[direction];\n }\n\n if (!moveDate || !allowedDirections[direction]) {\n return slot;\n }\n\n if (direction) {\n next = this.nextSlot({\n start_date: slot[moveDate],\n section: slot.section\n }, direction, type, true);\n\n if (next.start_date.valueOf() == slot.start_date.valueOf()) {\n next = this.nextSlot({\n start_date: next.start_date,\n section: next.section\n }, direction, type, true);\n }\n\n next.movingDate = moveDate;\n } else {\n return scheduler.$keyboardNavigation.TimeSlot.prototype.clone(slot);\n }\n\n var newDates = this.extendSlotDates(slot, next, next.movingDate);\n\n if (newDates.end_date.valueOf() <= newDates.start_date.valueOf()) {\n next.movingDate = next.movingDate == \"end_date\" ? \"start_date\" : \"end_date\";\n }\n\n newDates = this.extendSlotDates(slot, next, next.movingDate);\n next.start_date = newDates.start_date;\n next.end_date = newDates.end_date;\n return next;\n },\n extendSlotDates: function extendSlotDates(oldSlot, newSlot, dateDirection) {\n var res = {\n start_date: null,\n end_date: null\n };\n\n if (dateDirection == \"start_date\") {\n res.start_date = newSlot.start_date;\n res.end_date = oldSlot.end_date;\n } else {\n res.start_date = oldSlot.start_date;\n res.end_date = newSlot.start_date;\n }\n\n return res;\n },\n extendMonthSlot: function extendMonthSlot(slot, direction) {\n var slot = this.extendGenericSlot({\n \"up\": \"start_date\",\n \"down\": \"end_date\",\n \"left\": \"start_date\",\n \"right\": \"end_date\"\n }, slot, direction, \"month\");\n slot.start_date.setHours(scheduler.config.first_hour);\n slot.end_date = scheduler.date.add(slot.end_date, -1, \"day\");\n slot.end_date.setHours(scheduler.config.last_hour);\n return slot;\n },\n extendUnitsSlot: function extendUnitsSlot(slot, direction) {\n var next;\n\n switch (direction) {\n case \"down\":\n case \"up\":\n next = this.extendDaySlot(slot, direction);\n break;\n\n default:\n next = slot;\n break;\n }\n\n next.section = slot.section;\n return next;\n },\n extendDaySlot: function extendDaySlot(slot, direction) {\n return this.extendGenericSlot({\n \"up\": \"start_date\",\n \"down\": \"end_date\",\n \"left\": \"start_date\",\n \"right\": \"end_date\"\n }, slot, direction, \"dayColumns\");\n },\n scrollSlot: function scrollSlot(dir) {\n var state = scheduler.getState();\n var slot = this.nextSlot(this, dir);\n\n if (slot.start_date.valueOf() < state.min_date.valueOf() || slot.start_date.valueOf() >= state.max_date.valueOf()) {\n scheduler.setCurrentView(new Date(slot.start_date));\n }\n\n this.moveTo(slot);\n },\n keys: {\n \"left\": function left() {\n this.scrollSlot(\"left\");\n },\n \"right\": function right() {\n this.scrollSlot(\"right\");\n },\n \"down\": function down() {\n var mode = this._getMode();\n\n if (mode == this._modes.list) {\n scheduler.$keyboardNavigation.SchedulerNode.prototype.nextEventHandler();\n } else {\n this.scrollSlot(\"down\");\n }\n },\n \"up\": function up() {\n var mode = this._getMode();\n\n if (mode == this._modes.list) {\n scheduler.$keyboardNavigation.SchedulerNode.prototype.prevEventHandler();\n } else {\n this.scrollSlot(\"up\");\n }\n },\n \"shift+down\": function shiftDown() {\n this.moveTo(this.extendSlot(this, \"down\"));\n },\n \"shift+up\": function shiftUp() {\n this.moveTo(this.extendSlot(this, \"up\"));\n },\n \"shift+right\": function shiftRight() {\n this.moveTo(this.extendSlot(this, \"right\"));\n },\n \"shift+left\": function shiftLeft() {\n this.moveTo(this.extendSlot(this, \"left\"));\n },\n \"enter\": function enter() {\n var obj = {\n start_date: new Date(this.start_date),\n end_date: new Date(this.end_date)\n };\n var mode = scheduler.getState().mode;\n\n if (scheduler.matrix && scheduler.matrix[mode]) {\n var timeline = scheduler.matrix[scheduler.getState().mode];\n obj[timeline.y_property] = this.section;\n } else if (scheduler._props && scheduler._props[mode]) {\n var unit = scheduler._props[mode];\n obj[unit.map_to] = this.section;\n }\n\n scheduler.addEventNow(obj);\n }\n }\n });\n scheduler.$keyboardNavigation.TimeSlot.prototype.bindAll(scheduler.$keyboardNavigation.TimeSlot.prototype.keys);\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.MinicalButton = function (div, index) {\n this.container = div;\n this.index = index || 0;\n };\n\n scheduler.$keyboardNavigation.MinicalButton.prototype = scheduler._compose(scheduler.$keyboardNavigation.KeyNavNode, {\n isValid: function isValid() {\n var container = this.container;\n return !!container.offsetWidth; // valid if container is visible\n },\n fallback: function fallback() {\n var defaultSlot = new scheduler.$keyboardNavigation.TimeSlot();\n\n if (defaultSlot.isValid()) {\n return defaultSlot;\n } else {\n return new scheduler.$keyboardNavigation.DataArea();\n }\n },\n focus: function focus() {\n scheduler.$keyboardNavigation.dispatcher.globalNode.disable();\n this.container.removeAttribute(\"tabindex\");\n scheduler.$keyboardNavigation.KeyNavNode.prototype.focus.apply(this);\n },\n blur: function blur() {\n this.container.setAttribute(\"tabindex\", \"0\");\n scheduler.$keyboardNavigation.KeyNavNode.prototype.blur.apply(this);\n },\n getNode: function getNode() {\n if (!this.index) {\n return this.container.querySelector(\".dhx_cal_prev_button\");\n } else {\n return this.container.querySelector(\".dhx_cal_next_button\");\n }\n },\n keys: {\n \"right\": function right(e) {\n this.moveTo(new scheduler.$keyboardNavigation.MinicalButton(this.container, this.index ? 0 : 1));\n },\n \"left\": function left(e) {\n this.moveTo(new scheduler.$keyboardNavigation.MinicalButton(this.container, this.index ? 0 : 1));\n },\n \"down\": function down() {\n var next = new scheduler.$keyboardNavigation.MinicalCell(this.container, 0, 0);\n\n if (next && !next.isValid()) {\n next = next.fallback();\n }\n\n this.moveTo(next);\n },\n \"enter\": function enter(e) {\n this.getNode().click();\n }\n }\n });\n scheduler.$keyboardNavigation.MinicalButton.prototype.bindAll(scheduler.$keyboardNavigation.MinicalButton.prototype.keys);\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.MinicalCell = function (div, row, col) {\n this.container = div;\n this.row = row || 0;\n this.col = col || 0;\n };\n\n scheduler.$keyboardNavigation.MinicalCell.prototype = scheduler._compose(scheduler.$keyboardNavigation.KeyNavNode, {\n isValid: function isValid() {\n var grid = this._getGrid();\n\n return !!(grid[this.row] && grid[this.row][this.col]);\n },\n fallback: function fallback() {\n var row = this.row;\n var col = this.col;\n\n var grid = this._getGrid();\n\n if (!grid[row]) {\n row = 0;\n }\n\n var dir = true;\n\n if (row > grid.length / 2) {\n dir = false;\n }\n\n if (!grid[row]) {\n var defaultSlot = new scheduler.$keyboardNavigation.TimeSlot();\n\n if (defaultSlot.isValid()) {\n return defaultSlot;\n } else {\n return new scheduler.$keyboardNavigation.DataArea();\n }\n }\n\n if (dir) {\n for (var c = col; grid[row] && c < grid[row].length; c++) {\n if (!grid[row][c] && c == grid[row].length - 1) {\n row++;\n col = 0;\n }\n\n if (grid[row][c]) {\n return new scheduler.$keyboardNavigation.MinicalCell(this.container, row, c);\n }\n }\n } else {\n for (var c = col; grid[row] && c < grid[row].length; c--) {\n if (!grid[row][c] && !c) {\n row--;\n col = grid[row].length - 1;\n }\n\n if (grid[row][c]) {\n return new scheduler.$keyboardNavigation.MinicalCell(this.container, row, c);\n }\n }\n }\n\n return new scheduler.$keyboardNavigation.MinicalButton(this.container, 0);\n },\n focus: function focus() {\n scheduler.$keyboardNavigation.dispatcher.globalNode.disable();\n this.container.removeAttribute(\"tabindex\");\n scheduler.$keyboardNavigation.KeyNavNode.prototype.focus.apply(this);\n },\n blur: function blur() {\n this.container.setAttribute(\"tabindex\", \"0\");\n scheduler.$keyboardNavigation.KeyNavNode.prototype.blur.apply(this);\n },\n _getNode: function _getNode(row, col) {\n return this.container.querySelector(\".dhx_year_body tr:nth-child(\" + (row + 1) + \") td:nth-child(\" + (col + 1) + \")\");\n },\n getNode: function getNode() {\n return this._getNode(this.row, this.col);\n },\n _getGrid: function _getGrid() {\n var rows = this.container.querySelectorAll(\".dhx_year_body tr\");\n var grid = [];\n\n for (var i = 0; i < rows.length; i++) {\n grid[i] = [];\n var row = rows[i];\n var cells = row.querySelectorAll(\"td\");\n\n for (var c = 0; c < cells.length; c++) {\n var cell = cells[c];\n var enabled = true;\n\n var css = scheduler._getClassName(cell);\n\n if (css.indexOf(\"dhx_after\") > -1 || css.indexOf(\"dhx_before\") > -1 || css.indexOf(\"dhx_scale_ignore\") > -1) {\n enabled = false;\n }\n\n grid[i][c] = enabled;\n }\n }\n\n return grid;\n },\n keys: {\n \"right\": function right(e) {\n var grid = this._getGrid();\n\n var newRow = this.row;\n var newCol = this.col + 1;\n\n if (!grid[newRow] || !grid[newRow][newCol]) {\n if (grid[newRow + 1]) {\n newRow = newRow + 1;\n newCol = 0;\n } else {\n newCol = this.col;\n }\n }\n\n var next = new scheduler.$keyboardNavigation.MinicalCell(this.container, newRow, newCol);\n\n if (!next.isValid()) {\n next = next.fallback();\n }\n\n this.moveTo(next);\n },\n \"left\": function left(e) {\n var grid = this._getGrid();\n\n var newRow = this.row;\n var newCol = this.col - 1;\n\n if (!grid[newRow] || !grid[newRow][newCol]) {\n if (grid[newRow - 1]) {\n newRow = newRow - 1;\n newCol = grid[newRow].length - 1;\n } else {\n newCol = this.col;\n }\n }\n\n var next = new scheduler.$keyboardNavigation.MinicalCell(this.container, newRow, newCol);\n\n if (!next.isValid()) {\n next = next.fallback();\n }\n\n this.moveTo(next);\n },\n \"down\": function down() {\n var grid = this._getGrid();\n\n var newRow = this.row + 1;\n var newCol = this.col;\n\n if (!grid[newRow] || !grid[newRow][newCol]) {\n newRow = this.row;\n }\n\n var next = new scheduler.$keyboardNavigation.MinicalCell(this.container, newRow, newCol);\n\n if (!next.isValid()) {\n next = next.fallback();\n }\n\n this.moveTo(next);\n },\n \"up\": function up() {\n var grid = this._getGrid();\n\n var newRow = this.row - 1;\n var newCol = this.col;\n\n if (!grid[newRow] || !grid[newRow][newCol]) {\n var index = 0;\n\n if (this.col > grid[this.row].length / 2) {\n index = 1;\n }\n\n this.moveTo(new scheduler.$keyboardNavigation.MinicalButton(this.container, index));\n } else {\n var next = new scheduler.$keyboardNavigation.MinicalCell(this.container, newRow, newCol);\n\n if (!next.isValid()) {\n next = next.fallback();\n }\n\n this.moveTo(next);\n }\n },\n \"enter\": function enter(e) {\n this.getNode().querySelector(\".dhx_month_head\").click();\n }\n }\n });\n scheduler.$keyboardNavigation.MinicalCell.prototype.bindAll(scheduler.$keyboardNavigation.MinicalCell.prototype.keys);\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.DataArea = function (index) {\n this.index = index || 0;\n };\n\n scheduler.$keyboardNavigation.DataArea.prototype = scheduler._compose(scheduler.$keyboardNavigation.KeyNavNode, {\n getNode: function getNode(index) {\n return scheduler.$container.querySelector(\".dhx_cal_data\");\n },\n _handlers: null,\n isValid: function isValid() {\n return true;\n },\n fallback: function fallback() {\n return this;\n },\n keys: {\n \"up,down,right,left\": function upDownRightLeft() {\n this.moveTo(new scheduler.$keyboardNavigation.TimeSlot());\n }\n }\n });\n scheduler.$keyboardNavigation.DataArea.prototype.bindAll(scheduler.$keyboardNavigation.DataArea.prototype.keys);\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation.dispatcher = {\n isActive: false,\n activeNode: null,\n globalNode: new scheduler.$keyboardNavigation.SchedulerNode(),\n keepScrollPosition: function keepScrollPosition(callback) {\n var top, left;\n var scrollable = scheduler.$container.querySelector(\".dhx_timeline_scrollable_data\");\n\n if (!scrollable) {\n scrollable = scheduler.$container.querySelector(\".dhx_cal_data\");\n }\n\n if (scrollable) {\n top = scrollable.scrollTop;\n left = scrollable.scrollLeft;\n }\n\n callback();\n\n if (scrollable) {\n scrollable.scrollTop = top;\n scrollable.scrollLeft = left;\n }\n },\n enable: function enable() {\n if (!scheduler.$container) {\n // do nothing if not initialized\n return;\n }\n\n this.isActive = true;\n var self = this;\n this.keepScrollPosition(function () {\n self.globalNode.enable();\n self.setActiveNode(self.getActiveNode());\n });\n },\n disable: function disable() {\n this.isActive = false;\n this.globalNode.disable();\n },\n isEnabled: function isEnabled() {\n return !!this.isActive;\n },\n getDefaultNode: function getDefaultNode() {\n return this.globalNode.getDefaultNode();\n },\n setDefaultNode: function setDefaultNode() {\n this.setActiveNode(this.getDefaultNode());\n },\n getActiveNode: function getActiveNode() {\n var node = this.activeNode;\n\n if (node && !node.isValid()) {\n node = node.fallback();\n }\n\n return node;\n },\n focusGlobalNode: function focusGlobalNode() {\n this.blurNode(this.globalNode);\n this.focusNode(this.globalNode);\n },\n setActiveNode: function setActiveNode(el) {\n if (!el || !el.isValid()) return;\n\n if (this.activeNode) {\n if (this.activeNode.compareTo(el)) {\n return;\n }\n }\n\n if (this.isEnabled()) {\n this.blurNode(this.activeNode);\n this.activeNode = el;\n this.focusNode(this.activeNode);\n }\n },\n focusNode: function focusNode(el) {\n if (el && el.focus) {\n el.focus();\n\n if (el.getNode && document.activeElement != el.getNode()) {\n this.setActiveNode(new scheduler.$keyboardNavigation.DataArea());\n }\n }\n },\n blurNode: function blurNode(el) {\n if (el && el.blur) {\n el.blur();\n }\n },\n getInlineEditor: function getInlineEditor(id) {\n var editor = scheduler.$container.querySelector(\".dhx_cal_editor[\" + scheduler.config.event_attribute + \"='\" + id + \"'] textarea\");\n\n if (editor && editor.offsetWidth) {\n // if exists and visible\n return editor;\n }\n\n return null;\n },\n keyDownHandler: function keyDownHandler(e) {\n if (e.defaultPrevented) {\n return;\n }\n\n var activeElement = this.getActiveNode();\n if (scheduler.$keyboardNavigation.isModal() && !(activeElement && activeElement.container && scheduler.utils.dom.locateCss({\n target: activeElement.container\n }, \"dhx_minical_popup\", false))) return;\n if (scheduler.getState().editor_id && this.getInlineEditor(scheduler.getState().editor_id)) return;\n if (!this.isEnabled()) return;\n e = e || window.event;\n var schedulerNode = this.globalNode;\n var command = scheduler.$keyboardNavigation.shortcuts.getCommandFromEvent(e);\n\n if (!activeElement) {\n this.setDefaultNode();\n } else if (activeElement.findHandler(command)) {\n activeElement.doAction(command, e);\n } else if (schedulerNode.findHandler(command)) {\n schedulerNode.doAction(command, e);\n }\n },\n _timeout: null,\n delay: function delay(callback, _delay) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(callback, _delay || 1);\n }\n };\n}","export default function (scheduler) {\n scheduler.$keyboardNavigation._minicalendars = [];\n\n scheduler.$keyboardNavigation.isMinical = function (node) {\n var minicalendars = scheduler.$keyboardNavigation._minicalendars;\n\n for (var i = 0; i < minicalendars.length; i++) {\n if (this.isChildOf(node, minicalendars[i])) return true;\n }\n\n return false;\n };\n\n scheduler.$keyboardNavigation.isChildOf = function (child, parent) {\n while (child && child !== parent) {\n child = child.parentNode;\n }\n\n return !!(child === parent);\n };\n\n scheduler.$keyboardNavigation.patchMinicalendar = function () {\n var dispatcher = scheduler.$keyboardNavigation.dispatcher;\n\n function focusMinical(e) {\n var target = e.target;\n dispatcher.enable();\n dispatcher.setActiveNode(new scheduler.$keyboardNavigation.MinicalButton(target, 0));\n }\n\n function minicalClick(e) {\n var target = e.target || e.srcElement;\n var prev = scheduler.utils.dom.locateCss(e, \"dhx_cal_prev_button\", false);\n var next = scheduler.utils.dom.locateCss(e, \"dhx_cal_next_button\", false);\n var cell = scheduler.utils.dom.locateCss(e, \"dhx_year_body\", false);\n var rowIndex = 0;\n var cellIndex = 0;\n\n if (cell) {\n var tr;\n var td;\n var current = target;\n\n while (current && current.tagName.toLowerCase() != \"td\") {\n current = current.parentNode;\n }\n\n if (current) {\n td = current;\n tr = td.parentNode;\n }\n\n if (tr && td) {\n var rows = tr.parentNode.querySelectorAll(\"tr\");\n\n for (var i = 0; i < rows.length; i++) {\n if (rows[i] == tr) {\n rowIndex = i;\n break;\n }\n }\n\n var cells = tr.querySelectorAll(\"td\");\n\n for (var i = 0; i < cells.length; i++) {\n if (cells[i] == td) {\n cellIndex = i;\n break;\n }\n }\n }\n }\n\n var root = e.currentTarget;\n dispatcher.delay(function () {\n if (prev || next || cell) {\n var element;\n\n if (prev) {\n element = new scheduler.$keyboardNavigation.MinicalButton(root, 0);\n dispatcher.setActiveNode(new scheduler.$keyboardNavigation.MinicalButton(root, 0));\n } else if (next) {\n element = new scheduler.$keyboardNavigation.MinicalButton(root, 1);\n } else if (cell) {\n element = new scheduler.$keyboardNavigation.MinicalCell(root, rowIndex, cellIndex);\n }\n\n if (element) {\n dispatcher.enable();\n\n if (element.isValid()) {\n dispatcher.activeNode = null;\n dispatcher.setActiveNode(element);\n }\n }\n }\n });\n }\n\n if (scheduler.renderCalendar) {\n var renderMinical = scheduler.renderCalendar;\n\n scheduler.renderCalendar = function () {\n var cal = renderMinical.apply(this, arguments);\n var minicalendars = scheduler.$keyboardNavigation._minicalendars;\n scheduler.eventRemove(cal, \"click\", minicalClick);\n scheduler.event(cal, \"click\", minicalClick);\n scheduler.eventRemove(cal, \"focus\", focusMinical);\n scheduler.event(cal, \"focus\", focusMinical);\n var added = false;\n\n for (var i = 0; i < minicalendars.length; i++) {\n if (minicalendars[i] == cal) {\n added = true;\n break;\n }\n }\n\n if (!added) minicalendars.push(cal);\n\n if (dispatcher.isEnabled()) {\n var node = dispatcher.getActiveNode();\n\n if (node && node.container == cal) {\n dispatcher.focusNode(node);\n } else {\n cal.setAttribute(\"tabindex\", \"0\");\n }\n } else {\n cal.setAttribute(\"tabindex\", \"0\");\n }\n\n return cal;\n };\n }\n\n if (scheduler.destroyCalendar) {\n var destroyMinical = scheduler.destroyCalendar;\n\n scheduler.destroyCalendar = function (cal, force) {\n cal = cal || (scheduler._def_count ? scheduler._def_count.firstChild : null);\n var res = destroyMinical.apply(this, arguments);\n\n if (!cal || !cal.parentNode) {\n var minicalendars = scheduler.$keyboardNavigation._minicalendars;\n\n for (var i = 0; i < minicalendars.length; i++) {\n if (minicalendars[i] == cal) {\n scheduler.eventRemove(minicalendars[i], \"focus\", focusMinical);\n minicalendars.splice(i, 1);\n i--;\n }\n }\n }\n\n return res;\n };\n }\n };\n}","export default function (scheduler) {\n /* global google */\n var geocoder;\n scheduler.xy.map_date_width = 188; // date column width\n\n scheduler.xy.map_icon_width = 25; // event details icon width\n\n scheduler.xy.map_description_width = 400; // description column width\n\n scheduler.config.map_resolve_event_location = true; // if events in database doesn't have lat and lng values there will be an attempt to resolve them on event loading, useful for migration\n\n scheduler.config.map_resolve_user_location = true; // if user will be promted to share his location to display it on the map\n\n scheduler.config.map_initial_position = new google.maps.LatLng(48.724, 8.215); // initial position of the map\n\n scheduler.config.map_error_position = new google.maps.LatLng(15, 15); // this position will be displayed in case if event doesn't have corresponding coordinates\n\n scheduler.config.map_infowindow_max_width = 300;\n scheduler.config.map_type = google.maps.MapTypeId.ROADMAP;\n scheduler.config.map_zoom_after_resolve = 15;\n scheduler.locale.labels.marker_geo_success = \"It seems you are here.\";\n scheduler.locale.labels.marker_geo_fail = \"Sorry, could not get your current position using geolocation.\";\n scheduler.templates.marker_date = scheduler.date.date_to_str(\"%Y-%m-%d %H:%i\"); // date for map's infowindow will be formatted following way\n\n scheduler.templates.marker_text = function (start, end, ev) {\n return \"<div><b>\" + ev.text + \"</b><br/><br/>\" + (ev.event_location || '') + \"<br/><br/>\" + scheduler.templates.marker_date(start) + \" - \" + scheduler.templates.marker_date(end) + \"</div>\";\n };\n\n scheduler.dblclick_dhx_map_area = function () {\n if (!this.config.readonly && this.config.dblclick_create) this.addEventNow({\n start_date: scheduler._date,\n end_date: scheduler.date.add(scheduler._date, scheduler.config.time_step, \"minute\")\n });\n };\n\n scheduler.templates.map_time = function (start, end, ev) {\n if (scheduler.config.rtl && !ev._timed) {\n return scheduler.templates.day_date(end) + \" – \" + scheduler.templates.day_date(start);\n } else if (ev._timed) {\n return this.day_date(ev.start_date, ev.end_date, ev) + \" \" + this.event_date(start);\n } else {\n return scheduler.templates.day_date(start) + \" – \" + scheduler.templates.day_date(end);\n }\n };\n\n scheduler.templates.map_text = function (start, end, ev) {\n return ev.text;\n };\n\n scheduler.date.map_start = function (d) {\n return d;\n };\n\n scheduler.date.add_map = function (date, inc, mode) {\n return new Date(date.valueOf());\n };\n\n scheduler.templates.map_date = function (dd, ed, mode) {\n return '';\n };\n\n scheduler._latLngUpdate = false; // flag for not displaying event second time in case of coordinates update\n\n scheduler.attachEvent(\"onSchedulerReady\", function () {\n scheduler._isMapPositionSet = false; // if user actual (geolocation) position was set on the map\n\n var gmap = document.createElement('div');\n gmap.className = 'dhx_map';\n gmap.id = 'dhx_gmap';\n gmap.style.display = \"none\";\n var node = scheduler._obj;\n node.appendChild(gmap);\n scheduler._els.dhx_gmap = [];\n\n scheduler._els.dhx_gmap.push(gmap);\n\n _setMapSize('dhx_gmap');\n\n var mapOptions = {\n zoom: scheduler.config.map_initial_zoom || 10,\n center: scheduler.config.map_initial_position,\n mapTypeId: scheduler.config.map_type || google.maps.MapTypeId.ROADMAP\n };\n var map = new google.maps.Map(document.getElementById('dhx_gmap'), mapOptions);\n map.disableDefaultUI = false;\n map.disableDoubleClickZoom = !scheduler.config.readonly;\n google.maps.event.addListener(map, \"dblclick\", function (event) {\n if (!scheduler.config.readonly && scheduler.config.dblclick_create) {\n var point = event.latLng;\n geocoder.geocode({\n 'latLng': point\n }, function (results, status) {\n if (status == google.maps.GeocoderStatus.OK) {\n point = results[0].geometry.location;\n scheduler.addEventNow({\n lat: point.lat(),\n lng: point.lng(),\n event_location: results[0].formatted_address,\n start_date: scheduler._date,\n end_date: scheduler.date.add(scheduler._date, scheduler.config.time_step, \"minute\")\n });\n }\n });\n }\n });\n var infoWindowOptions = {\n content: ''\n };\n\n if (scheduler.config.map_infowindow_max_width) {\n infoWindowOptions.maxWidth = scheduler.config.map_infowindow_max_width;\n }\n\n scheduler.map = {\n _points: [],\n _markers: [],\n _infowindow: new google.maps.InfoWindow(infoWindowOptions),\n _infowindows_content: [],\n _initialization_count: -1,\n _obj: map\n };\n geocoder = new google.maps.Geocoder();\n\n if (scheduler.config.map_resolve_user_location) {\n if (navigator.geolocation) {\n if (!scheduler._isMapPositionSet) {\n navigator.geolocation.getCurrentPosition(function (position) {\n var _userLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);\n\n map.setCenter(_userLocation);\n map.setZoom(scheduler.config.map_zoom_after_resolve || 10);\n\n scheduler.map._infowindow.setContent(scheduler.locale.labels.marker_geo_success);\n\n scheduler.map._infowindow.position = map.getCenter();\n\n scheduler.map._infowindow.open(map);\n\n scheduler._isMapPositionSet = true;\n }, function () {\n scheduler.map._infowindow.setContent(scheduler.locale.labels.marker_geo_fail);\n\n scheduler.map._infowindow.setPosition(map.getCenter());\n\n scheduler.map._infowindow.open(map);\n\n scheduler._isMapPositionSet = true;\n });\n }\n }\n }\n\n google.maps.event.addListener(map, \"resize\", function (event) {\n gmap.style.zIndex = '5';\n map.setZoom(map.getZoom());\n });\n google.maps.event.addListener(map, \"tilesloaded\", function (event) {\n gmap.style.zIndex = '5';\n });\n gmap.style.display = 'none'; // property was changed after attaching map\n\n var old = scheduler.render_data;\n\n scheduler.render_data = function (evs, hold) {\n if (this._mode == \"map\") {\n fill_map_tab();\n var events = scheduler.get_visible_events();\n\n for (var i = 0; i < events.length; i++) {\n if (!scheduler.map._markers[events[i].id]) {\n showAddress(events[i], false, false);\n }\n }\n } else return old.apply(this, arguments);\n };\n\n function set_full_view(mode) {\n if (mode) {\n var l = scheduler.locale.labels;\n scheduler._els[\"dhx_cal_header\"][0].innerHTML = \"<div class='dhx_map_line' style='width: \" + (scheduler.xy.map_date_width + scheduler.xy.map_description_width + 2) + \"px;' ><div class='headline_date' style='width: \" + scheduler.xy.map_date_width + \"px;'>\" + l.date + \"</div><div class='headline_description' style='width: \" + scheduler.xy.map_description_width + \"px;'>\" + l.description + \"</div></div>\";\n scheduler._table_view = true;\n scheduler.set_sizes();\n }\n }\n\n function clear_map_tab() {\n scheduler._selected_event_id = null;\n\n scheduler.map._infowindow.close();\n\n var markers = scheduler.map._markers;\n\n for (var key in markers) {\n if (markers.hasOwnProperty(key)) {\n markers[key].setMap(null);\n delete scheduler.map._markers[key];\n if (scheduler.map._infowindows_content[key]) delete scheduler.map._infowindows_content[key];\n }\n }\n }\n\n function fill_map_tab() {\n //select events for which data need to be printed\n var events = scheduler.get_visible_events();\n events.sort(function (a, b) {\n if (a.start_date.valueOf() == b.start_date.valueOf()) return a.id > b.id ? 1 : -1;\n return a.start_date > b.start_date ? 1 : -1;\n }); //generate html for the view\n\n var ariaAttr = scheduler._waiAria.mapAttrString();\n\n var html = \"<div \" + ariaAttr + \" class='dhx_map_area'>\";\n\n for (var i = 0; i < events.length; i++) {\n var ev = events[i];\n var event_class = ev.id == scheduler._selected_event_id ? 'dhx_map_line highlight' : 'dhx_map_line';\n var bg_color = ev.color ? \"background:\" + ev.color + \";\" : \"\";\n var color = ev.textColor ? \"color:\" + ev.textColor + \";\" : \"\";\n\n var ariaAttr = scheduler._waiAria.mapRowAttrString(ev);\n\n var ariaButtonAttr = scheduler._waiAria.mapDetailsBtnString();\n\n html += \"<div \" + ariaAttr + \" class='\" + event_class + \"' event_id='\" + ev.id + \"' \" + scheduler.config.event_attribute + \"='\" + ev.id + \"' style='\" + bg_color + \"\" + color + \"\" + (ev._text_style || \"\") + \" width: \" + (scheduler.xy.map_date_width + scheduler.xy.map_description_width + 2) + \"px;'><div class='dhx_map_event_time' style='width: \" + scheduler.xy.map_date_width + \"px;' >\" + scheduler.templates.map_time(ev.start_date, ev.end_date, ev) + \"</div>\";\n html += \"<div \" + ariaButtonAttr + \" class='dhx_event_icon icon_details'> </div>\";\n html += \"<div class='line_description' style='width:\" + (scheduler.xy.map_description_width - scheduler.xy.map_icon_width) + \"px;'>\" + scheduler.templates.map_text(ev.start_date, ev.end_date, ev) + \"</div></div>\"; // -25 = icon size 20 and padding 5\n }\n\n html += \"<div class='dhx_v_border' style=\" + (scheduler.config.rtl ? \"'right: \" : \"'left: \") + (scheduler.xy.map_date_width - 2) + \"px;'></div><div class='dhx_v_border_description'></div></div>\"; //render html\n\n scheduler._els[\"dhx_cal_data\"][0].scrollTop = 0; //fix flickering in FF\n\n scheduler._els[\"dhx_cal_data\"][0].innerHTML = html;\n scheduler._els[\"dhx_cal_data\"][0].style.width = scheduler.xy.map_date_width + scheduler.xy.map_description_width + 1 + 'px';\n var t = scheduler._els[\"dhx_cal_data\"][0].firstChild.childNodes;\n\n var dateElement = scheduler._getNavDateElement();\n\n if (dateElement) {\n dateElement.innerHTML = scheduler.templates[scheduler._mode + \"_date\"](scheduler._min_date, scheduler._max_date, scheduler._mode);\n }\n\n scheduler._rendered = [];\n\n for (var i = 0; i < t.length - 2; i++) {\n scheduler._rendered[i] = t[i];\n }\n }\n\n function _setMapSize(elem_id) {\n //input - map's div id\n var map = document.getElementById(elem_id);\n var height = scheduler._y - scheduler.xy.nav_height;\n if (height < 0) height = 0;\n var width = scheduler._x - scheduler.xy.map_date_width - scheduler.xy.map_description_width - 1;\n if (width < 0) width = 0;\n map.style.height = height + 'px';\n map.style.width = width + 'px';\n\n if (scheduler.config.rtl) {\n map.style.marginRight = scheduler.xy.map_date_width + scheduler.xy.map_description_width + 1 + 'px';\n } else {\n map.style.marginLeft = scheduler.xy.map_date_width + scheduler.xy.map_description_width + 1 + 'px';\n }\n\n map.style.marginTop = scheduler.xy.nav_height + 2 + 'px';\n }\n\n scheduler.map_view = function (mode) {\n scheduler.map._initialization_count++;\n var gmap = scheduler._els.dhx_gmap[0];\n var temp_center;\n scheduler._els.dhx_cal_data[0].style.width = scheduler.xy.map_date_width + scheduler.xy.map_description_width + 1 + 'px';\n scheduler._min_date = scheduler.config.map_start || scheduler._currentDate();\n scheduler._max_date = scheduler.config.map_end || scheduler.date.add(scheduler._currentDate(), 1, \"year\");\n scheduler._table_view = true;\n set_full_view(mode);\n\n if (mode) {\n //map tab activated\n clear_map_tab();\n fill_map_tab();\n gmap.style.display = 'block'; // need to resize block every time window is resized\n\n _setMapSize('dhx_gmap');\n\n temp_center = scheduler.map._obj.getCenter();\n var events = scheduler.get_visible_events();\n\n for (var i = 0; i < events.length; i++) {\n if (!scheduler.map._markers[events[i].id]) {\n showAddress(events[i]);\n }\n }\n } else {\n //map tab de-activated\n gmap.style.display = 'none';\n }\n\n google.maps.event.trigger(scheduler.map._obj, 'resize');\n\n if (scheduler.map._initialization_count === 0 && temp_center) {\n // if tab is activated for the first time need to fix position\n scheduler.map._obj.setCenter(temp_center);\n }\n\n if (scheduler._selected_event_id) {\n selectEvent(scheduler._selected_event_id);\n }\n };\n\n var selectEvent = function selectEvent(event_id) {\n scheduler.map._obj.setCenter(scheduler.map._points[event_id]);\n\n scheduler.callEvent(\"onClick\", [event_id]);\n };\n\n var showAddress = function showAddress(event, setCenter, performClick) {\n // what if event have incorrect position from the start?\n var point = scheduler.config.map_error_position;\n\n if (event.lat && event.lng) {\n point = new google.maps.LatLng(event.lat, event.lng);\n }\n\n var message = scheduler.templates.marker_text(event.start_date, event.end_date, event);\n\n if (!scheduler._new_event) {\n scheduler.map._infowindows_content[event.id] = message;\n if (scheduler.map._markers[event.id]) scheduler.map._markers[event.id].setMap(null);\n scheduler.map._markers[event.id] = new google.maps.Marker({\n position: point,\n map: scheduler.map._obj\n });\n google.maps.event.addListener(scheduler.map._markers[event.id], 'click', function () {\n scheduler.map._infowindow.setContent(scheduler.map._infowindows_content[event.id]);\n\n scheduler.map._infowindow.open(scheduler.map._obj, scheduler.map._markers[event.id]);\n\n scheduler._selected_event_id = event.id;\n scheduler.render_data();\n });\n scheduler.map._points[event.id] = point;\n if (setCenter) scheduler.map._obj.setCenter(scheduler.map._points[event.id]);\n if (performClick) scheduler.callEvent(\"onClick\", [event.id]);\n }\n };\n\n scheduler.attachEvent(\"onClick\", function (event_id, native_event_object) {\n if (this._mode == \"map\") {\n scheduler._selected_event_id = event_id;\n\n for (var i = 0; i < scheduler._rendered.length; i++) {\n scheduler._rendered[i].className = 'dhx_map_line';\n\n if (scheduler._rendered[i].getAttribute(scheduler.config.event_attribute) == event_id) {\n scheduler._rendered[i].className += \" highlight\";\n }\n }\n\n if (scheduler.map._points[event_id] && scheduler.map._markers[event_id]) {\n scheduler.map._obj.setCenter(scheduler.map._points[event_id]); // was panTo\n\n\n google.maps.event.trigger(scheduler.map._markers[event_id], 'click');\n }\n }\n\n return true;\n });\n\n var _displayEventOnMap = function _displayEventOnMap(event) {\n if (event.event_location && geocoder) {\n geocoder.geocode({\n 'address': event.event_location,\n 'language': scheduler.uid().toString()\n }, function (results, status) {\n var point = {};\n\n if (status != google.maps.GeocoderStatus.OK) {\n point = scheduler.callEvent(\"onLocationError\", [event.id]);\n if (!point || point === true) point = scheduler.config.map_error_position;\n } else {\n point = results[0].geometry.location;\n }\n\n event.lat = point.lat();\n event.lng = point.lng();\n scheduler._selected_event_id = event.id;\n scheduler._latLngUpdate = true;\n scheduler.callEvent(\"onEventChanged\", [event.id, event]);\n showAddress(event, true, true);\n });\n } else {\n showAddress(event, true, true);\n }\n };\n\n var _updateEventLocation = function _updateEventLocation(event) {\n // update lat and lng in database\n if (event.event_location && geocoder) {\n geocoder.geocode({\n 'address': event.event_location,\n 'language': scheduler.uid().toString()\n }, function (results, status) {\n var point = {};\n\n if (status != google.maps.GeocoderStatus.OK) {\n point = scheduler.callEvent(\"onLocationError\", [event.id]);\n if (!point || point === true) point = scheduler.config.map_error_position;\n } else {\n point = results[0].geometry.location;\n }\n\n event.lat = point.lat();\n event.lng = point.lng();\n scheduler._latLngUpdate = true;\n scheduler.callEvent(\"onEventChanged\", [event.id, event]);\n });\n }\n };\n\n var _delay = function _delay(method, object, params, delay) {\n setTimeout(function () {\n var ret = method.apply(object, params);\n method = object = params = null;\n return ret;\n }, delay || 1);\n };\n\n scheduler.attachEvent(\"onEventChanged\", function (event_id, event_object) {\n if (!this._latLngUpdate) {\n var event = scheduler.getEvent(event_id);\n\n if (event.start_date < scheduler._min_date && event.end_date > scheduler._min_date || event.start_date < scheduler._max_date && event.end_date > scheduler._max_date || event.start_date.valueOf() >= scheduler._min_date && event.end_date.valueOf() <= scheduler._max_date) {\n if (scheduler.map._markers[event_id]) scheduler.map._markers[event_id].setMap(null);\n\n _displayEventOnMap(event);\n } else {\n // event no longer should be displayed on the map view\n scheduler._selected_event_id = null;\n\n scheduler.map._infowindow.close();\n\n if (scheduler.map._markers[event_id]) scheduler.map._markers[event_id].setMap(null);\n }\n } else this._latLngUpdate = false;\n\n return true;\n });\n scheduler.attachEvent(\"onEventIdChange\", function (old_event_id, new_event_id) {\n var event = scheduler.getEvent(new_event_id);\n\n if (event.start_date < scheduler._min_date && event.end_date > scheduler._min_date || event.start_date < scheduler._max_date && event.end_date > scheduler._max_date || event.start_date.valueOf() >= scheduler._min_date && event.end_date.valueOf() <= scheduler._max_date) {\n if (scheduler.map._markers[old_event_id]) {\n scheduler.map._markers[old_event_id].setMap(null);\n\n delete scheduler.map._markers[old_event_id];\n }\n\n if (scheduler.map._infowindows_content[old_event_id]) delete scheduler.map._infowindows_content[old_event_id];\n\n _displayEventOnMap(event);\n }\n\n return true;\n });\n scheduler.attachEvent(\"onEventAdded\", function (event_id, event_object) {\n if (!scheduler._dataprocessor) {\n if (event_object.start_date < scheduler._min_date && event_object.end_date > scheduler._min_date || event_object.start_date < scheduler._max_date && event_object.end_date > scheduler._max_date || event_object.start_date.valueOf() >= scheduler._min_date && event_object.end_date.valueOf() <= scheduler._max_date) {\n if (scheduler.map._markers[event_id]) scheduler.map._markers[event_id].setMap(null);\n\n _displayEventOnMap(event_object);\n }\n }\n\n return true;\n });\n /* Test/example\r\n scheduler.attachEvent(\"onLocationError\", function(event_id,event_object){\r\n return new google.maps.LatLng(8, 8);\r\n });\r\n */\n\n scheduler.attachEvent(\"onBeforeEventDelete\", function (event_id, event_object) {\n if (scheduler.map._markers[event_id]) {\n scheduler.map._markers[event_id].setMap(null); // if new event is deleted tab != map then it doesn't have marker yet\n\n }\n\n scheduler._selected_event_id = null;\n\n scheduler.map._infowindow.close();\n\n return true;\n });\n scheduler._event_resolve_delay = 1500;\n scheduler.attachEvent(\"onEventLoading\", function (event) {\n if (scheduler.config.map_resolve_event_location && event.event_location && !event.lat && !event.lng) {\n // don't delete !event.lat && !event.lng as location could change\n scheduler._event_resolve_delay += 1500;\n\n _delay(_updateEventLocation, this, [event], scheduler._event_resolve_delay);\n }\n\n return true;\n });\n scheduler.attachEvent(\"onEventCancel\", function (event_id, is_new) {\n if (is_new) {\n if (scheduler.map._markers[event_id]) scheduler.map._markers[event_id].setMap(null);\n\n scheduler.map._infowindow.close();\n }\n\n return true;\n });\n });\n}","export default function (scheduler) {\n var minicalDomEvents = scheduler._createDomEventScope();\n\n scheduler.templates.calendar_month = scheduler.date.date_to_str(\"%F %Y\");\n scheduler.templates.calendar_scale_date = scheduler.date.date_to_str(\"%D\");\n scheduler.templates.calendar_date = scheduler.date.date_to_str(\"%d\");\n scheduler.config.minicalendar = {\n mark_events: true\n };\n scheduler._synced_minicalendars = [];\n\n scheduler.renderCalendar = function (obj, _prev, is_refresh) {\n var cal = null;\n\n var date = obj.date || scheduler._currentDate();\n\n if (typeof date == \"string\") date = this.templates.api_date(date);\n\n if (!_prev) {\n var cont = obj.container;\n var pos = obj.position;\n if (typeof cont == \"string\") cont = document.getElementById(cont);\n if (typeof pos == \"string\") pos = document.getElementById(pos);\n\n if (pos && typeof pos.left == \"undefined\" && typeof pos.right == \"undefined\") {\n var tpos = scheduler.$domHelpers.getOffset(pos);\n pos = {\n top: tpos.top + pos.offsetHeight,\n left: tpos.left\n };\n }\n\n if (!cont) cont = scheduler._get_def_cont(pos);\n cal = this._render_calendar(cont, date, obj);\n\n if (!cal.$_eventAttached) {\n cal.$_eventAttached = true;\n minicalDomEvents.attach(cal, \"click\", function (e) {\n var src = e.target || e.srcElement;\n var $dom = scheduler.$domHelpers;\n\n if ($dom.closest(src, \".dhx_month_head\")) {\n if (!$dom.closest(src, \".dhx_after\") && !$dom.closest(src, \".dhx_before\")) {\n var cellRoot = $dom.closest(src, \"[data-cell-date]\");\n var dateAttribute = cellRoot.getAttribute(\"data-cell-date\");\n var newDate = scheduler.templates.parse_date(dateAttribute);\n scheduler.unmarkCalendar(this);\n scheduler.markCalendar(this, newDate, \"dhx_calendar_click\");\n this._last_date = newDate;\n if (this.conf.handler) this.conf.handler.call(scheduler, newDate, this);\n }\n }\n }.bind(cal));\n }\n } else {\n cal = this._render_calendar(_prev.parentNode, date, obj, _prev);\n scheduler.unmarkCalendar(cal);\n }\n\n if (scheduler.config.minicalendar.mark_events) {\n var start = scheduler.date.month_start(date);\n var end = scheduler.date.add(start, 1, \"month\");\n var evs = this.getEvents(start, end);\n var filter = this[\"filter_\" + this._mode];\n var markedDates = {};\n\n for (var i = 0; i < evs.length; i++) {\n var ev = evs[i];\n if (filter && !filter(ev.id, ev)) continue;\n var d = ev.start_date;\n if (d.valueOf() < start.valueOf()) d = start;\n d = scheduler.date.date_part(new Date(d.valueOf()));\n\n while (d < ev.end_date) {\n if (!markedDates[+d]) {\n markedDates[+d] = true;\n this.markCalendar(cal, d, \"dhx_year_event\");\n }\n\n d = this.date.add(d, 1, \"day\");\n if (d.valueOf() >= end.valueOf()) break;\n }\n }\n }\n\n this._markCalendarCurrentDate(cal);\n\n cal.conf = obj;\n if (obj.sync && !is_refresh) this._synced_minicalendars.push(cal);\n\n if (!cal.conf._on_xle_handler) {\n cal.conf._on_xle_handler = scheduler.attachEvent(\"onXLE\", function refreshOnLoad() {\n scheduler.updateCalendar(cal, cal.conf.date);\n });\n }\n\n if (this.config.wai_aria_attributes && this.config.wai_aria_application_role) {\n cal.setAttribute(\"role\", \"application\");\n }\n\n return cal;\n };\n\n scheduler._get_def_cont = function (pos) {\n if (!this._def_count) {\n this._def_count = document.createElement(\"div\");\n this._def_count.className = \"dhx_minical_popup\";\n scheduler.event(this._def_count, \"click\", function (e) {\n e.cancelBubble = true;\n });\n document.body.appendChild(this._def_count);\n }\n\n if (pos.left) {\n this._def_count.style.left = pos.left + \"px\";\n }\n\n if (pos.right) {\n this._def_count.style.right = pos.right + \"px\";\n }\n\n if (pos.top) {\n this._def_count.style.top = pos.top + \"px\";\n }\n\n if (pos.bottom) {\n this._def_count.style.bottom = pos.bottom + \"px\";\n }\n\n this._def_count._created = new Date();\n return this._def_count;\n };\n\n scheduler._locateCalendar = function (cal, date) {\n if (typeof date == \"string\") date = scheduler.templates.api_date(date);\n if (+date > +cal._max_date || +date < +cal._min_date) return null;\n var table = cal.querySelector(\".dhx_year_body\").childNodes[0];\n var weekNum = 0;\n var dat = new Date(cal._min_date);\n\n while (+this.date.add(dat, 1, \"week\") <= +date) {\n dat = this.date.add(dat, 1, \"week\");\n weekNum++;\n }\n\n var sm = scheduler.config.start_on_monday;\n var day = (date.getDay() || (sm ? 7 : 0)) - (sm ? 1 : 0);\n return table.rows[weekNum].cells[day].firstChild;\n };\n\n scheduler.markCalendar = function (cal, date, css) {\n var div = this._locateCalendar(cal, date);\n\n if (!div) return;\n div.className += \" \" + css;\n };\n\n scheduler.unmarkCalendar = function (cal, date, css) {\n date = date || cal._last_date;\n css = css || \"dhx_calendar_click\";\n if (!date) return;\n\n var el = this._locateCalendar(cal, date);\n\n if (!el) return;\n el.className = (el.className || \"\").replace(RegExp(css, \"g\"));\n };\n\n scheduler._week_template = function (width) {\n var summ = width || 250;\n var left = 0;\n var week_template = document.createElement(\"div\");\n var dummy_date = this.date.week_start(scheduler._currentDate());\n\n for (var i = 0; i < 7; i++) {\n this._cols[i] = Math.floor(summ / (7 - i));\n\n this._render_x_header(i, left, dummy_date, week_template);\n\n dummy_date = this.date.add(dummy_date, 1, \"day\");\n summ -= this._cols[i];\n left += this._cols[i];\n }\n\n week_template.lastChild.className += \" dhx_scale_bar_last\";\n return week_template;\n };\n\n scheduler.updateCalendar = function (obj, sd) {\n obj.conf.date = sd;\n this.renderCalendar(obj.conf, obj, true);\n };\n\n scheduler._mini_cal_arrows = [\" \", \" \"];\n\n scheduler._render_calendar = function (obj, sd, conf, previous) {\n /*store*/\n var ts = scheduler.templates;\n var temp = this._cols;\n this._cols = [];\n var temp2 = this._mode;\n this._mode = \"calendar\";\n var temp3 = this._colsS;\n this._colsS = {\n height: 0\n };\n var temp4 = new Date(this._min_date);\n var temp5 = new Date(this._max_date);\n var temp6 = new Date(scheduler._date);\n var temp7 = ts.month_day;\n var temp8 = this._ignores_detected;\n this._ignores_detected = 0;\n ts.month_day = ts.calendar_date;\n sd = this.date.month_start(sd);\n\n var week_template = this._week_template(obj.offsetWidth - 1 - this.config.minicalendar.padding);\n\n var d;\n\n if (previous) {\n d = previous;\n } else {\n d = document.createElement(\"div\");\n d.className = \"dhx_cal_container dhx_mini_calendar\";\n }\n\n d.setAttribute(\"date\", this._helpers.formatDate(sd));\n d.innerHTML = \"<div class='dhx_year_month'></div>\" + \"<div class='dhx_year_grid\" + (scheduler.config.rtl ? \" dhx_grid_rtl'>\" : \"'>\") + \"<div class='dhx_year_week'>\" + (week_template ? week_template.innerHTML : \"\") + \"</div>\" + \"<div class='dhx_year_body'></div>\" + \"</div>\";\n var header = d.querySelector(\".dhx_year_month\");\n var weekHeader = d.querySelector(\".dhx_year_week\");\n var body = d.querySelector(\".dhx_year_body\");\n header.innerHTML = this.templates.calendar_month(sd);\n\n if (conf.navigation) {\n var move_minicalendar_date = function move_minicalendar_date(calendar, diff) {\n var date = scheduler.date.add(calendar._date, diff, \"month\");\n scheduler.updateCalendar(calendar, date);\n\n if (scheduler._date.getMonth() == calendar._date.getMonth() && scheduler._date.getFullYear() == calendar._date.getFullYear()) {\n scheduler._markCalendarCurrentDate(calendar);\n }\n };\n\n var css_classnames = [\"dhx_cal_prev_button\", \"dhx_cal_next_button\"];\n var css_texts = [\"left:1px;top:2px;position:absolute;\", \"left:auto; right:1px;top:2px;position:absolute;\"];\n var diffs = [-1, 1];\n\n var handler = function handler(diff) {\n return function () {\n if (conf.sync) {\n var calendars = scheduler._synced_minicalendars;\n\n for (var k = 0; k < calendars.length; k++) {\n move_minicalendar_date(calendars[k], diff);\n }\n } else {\n if (scheduler.config.rtl) {\n diff = -diff;\n }\n\n move_minicalendar_date(d, diff);\n }\n };\n };\n\n var labels = [scheduler.locale.labels.prev, scheduler.locale.labels.next];\n\n for (var j = 0; j < 2; j++) {\n var arrow = document.createElement(\"div\"); //var diff = diffs[j];\n\n arrow.className = css_classnames[j];\n\n scheduler._waiAria.headerButtonsAttributes(arrow, labels[j]);\n\n arrow.style.cssText = css_texts[j];\n arrow.innerHTML = this._mini_cal_arrows[j];\n header.appendChild(arrow);\n minicalDomEvents.attach(arrow, \"click\", handler(diffs[j]));\n }\n }\n\n d._date = new Date(sd);\n d.week_start = (sd.getDay() - (this.config.start_on_monday ? 1 : 0) + 7) % 7;\n var dd = d._min_date = this.date.week_start(sd);\n d._max_date = this.date.add(d._min_date, 6, \"week\");\n\n this._reset_month_scale(body, sd, dd, 6);\n\n if (!previous) obj.appendChild(d);\n weekHeader.style.height = weekHeader.childNodes[0].offsetHeight - 1 + \"px\"; // dhx_year_week should have height property so that day dates would get correct position. dhx_year_week height = height of it's child (with the day name)\n\n var headerId = scheduler.uid();\n\n scheduler._waiAria.minicalHeader(header, headerId);\n\n scheduler._waiAria.minicalGrid(d.querySelector(\".dhx_year_grid\"), headerId);\n\n scheduler._waiAria.minicalRow(weekHeader);\n\n var dayHeaders = weekHeader.querySelectorAll(\".dhx_scale_bar\");\n\n for (var i = 0; i < dayHeaders.length; i++) {\n scheduler._waiAria.minicalHeadCell(dayHeaders[i]);\n }\n\n var dayCells = body.querySelectorAll(\"td\");\n var firstDate = new Date(dd);\n\n for (var i = 0; i < dayCells.length; i++) {\n scheduler._waiAria.minicalDayCell(dayCells[i], new Date(firstDate));\n\n firstDate = scheduler.date.add(firstDate, 1, \"day\");\n }\n\n scheduler._waiAria.minicalHeader(header, headerId);\n /*restore*/\n\n\n this._cols = temp;\n this._mode = temp2;\n this._colsS = temp3;\n this._min_date = temp4;\n this._max_date = temp5;\n scheduler._date = temp6;\n ts.month_day = temp7;\n this._ignores_detected = temp8;\n return d;\n };\n\n scheduler.destroyCalendar = function (cal, force) {\n if (!cal && this._def_count && this._def_count.firstChild) {\n if (force || new Date().valueOf() - this._def_count._created.valueOf() > 500) cal = this._def_count.firstChild;\n }\n\n if (!cal) return;\n minicalDomEvents.detachAll(); //cal.onclick = null;\n\n cal.innerHTML = \"\";\n if (cal.parentNode) cal.parentNode.removeChild(cal);\n if (this._def_count) this._def_count.style.top = \"-1000px\";\n if (cal.conf && cal.conf._on_xle_handler) scheduler.detachEvent(cal.conf._on_xle_handler);\n };\n\n scheduler.isCalendarVisible = function () {\n if (this._def_count && parseInt(this._def_count.style.top, 10) > 0) return this._def_count;\n return false;\n };\n\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n scheduler.event(document.body, \"click\", function () {\n scheduler.destroyCalendar();\n });\n }, {\n once: true\n });\n scheduler.templates.calendar_time = scheduler.date.date_to_str(\"%d-%m-%Y\");\n scheduler.form_blocks.calendar_time = {\n render: function render(sns) {\n var html = \"<input class='dhx_readonly' type='text' readonly='true'>\";\n var cfg = scheduler.config;\n var dt = this.date.date_part(scheduler._currentDate());\n var last = 24 * 60,\n first = 0;\n\n if (cfg.limit_time_select) {\n first = 60 * cfg.first_hour;\n last = 60 * cfg.last_hour + 1; // to include \"17:00\" option if time select is limited\n }\n\n dt.setHours(first / 60);\n sns._time_values = [];\n html += \" <select class='dhx_lightbox_time_select'>\";\n\n for (var i = first; i < last; i += this.config.time_step * 1) {\n // `<` to exclude last \"00:00\" option\n var time = this.templates.time_picker(dt);\n html += \"<option value='\" + i + \"'>\" + time + \"</option>\";\n\n sns._time_values.push(i);\n\n dt = this.date.add(dt, this.config.time_step, \"minute\");\n }\n\n html += \"</select>\"; //var full_day = scheduler.config.full_day;\n\n return \"<div style='height:30px;padding-top:0; font-size:inherit;' class='dhx_section_time dhx_lightbox_minical'>\" + html + \"<span style='font-weight:normal; font-size:10pt;'> – </span>\" + html + \"</div>\";\n },\n set_value: function set_value(node, value, ev, config) {\n var inputs = node.getElementsByTagName(\"input\");\n var selects = node.getElementsByTagName(\"select\");\n var start_date, end_date;\n\n var _init_once = function _init_once(inp, date, number) {\n scheduler.event(inp, \"click\", function () {\n scheduler.destroyCalendar(null, true);\n scheduler.renderCalendar({\n position: inp,\n date: new Date(this._date),\n navigation: true,\n handler: function handler(new_date) {\n inp.value = scheduler.templates.calendar_time(new_date);\n inp._date = new Date(new_date);\n scheduler.destroyCalendar();\n\n if (scheduler.config.event_duration && scheduler.config.auto_end_date && number === 0) {\n //first element = start date\n _update_minical_select();\n }\n }\n });\n });\n };\n\n if (scheduler.config.full_day) {\n if (!node._full_day) {\n var html = \"<label class='dhx_fullday'><input type='checkbox' name='full_day' value='true'> \" + scheduler.locale.labels.full_day + \" </label></input>\";\n if (!scheduler.config.wide_form) html = node.previousSibling.innerHTML + html;\n node.previousSibling.innerHTML = html;\n node._full_day = true;\n }\n\n var input = node.previousSibling.getElementsByTagName(\"input\")[0];\n var isFulldayEvent = scheduler.date.time_part(ev.start_date) === 0 && scheduler.date.time_part(ev.end_date) === 0;\n input.checked = isFulldayEvent;\n selects[0].disabled = input.checked;\n selects[1].disabled = input.checked;\n\n if (!input.$_eventAttached) {\n input.$_eventAttached = true;\n scheduler.event(input, \"click\", function () {\n if (input.checked === true) {\n var obj = {};\n scheduler.form_blocks.calendar_time.get_value(node, obj);\n start_date = scheduler.date.date_part(obj.start_date);\n end_date = scheduler.date.date_part(obj.end_date);\n if (+end_date == +start_date || +end_date >= +start_date && (ev.end_date.getHours() !== 0 || ev.end_date.getMinutes() !== 0)) end_date = scheduler.date.add(end_date, 1, \"day\");\n }\n\n var start = start_date || ev.start_date;\n var end = end_date || ev.end_date;\n\n _attach_action(inputs[0], start);\n\n _attach_action(inputs[1], end);\n\n selects[0].value = start.getHours() * 60 + start.getMinutes();\n selects[1].value = end.getHours() * 60 + end.getMinutes();\n selects[0].disabled = input.checked;\n selects[1].disabled = input.checked;\n });\n }\n }\n\n if (scheduler.config.event_duration && scheduler.config.auto_end_date) {\n var _update_minical_select = function _update_minical_select() {\n if (!(scheduler.config.auto_end_date && scheduler.config.event_duration)) {\n // setting may be disabled after the handler is attached\n return;\n }\n\n start_date = scheduler.date.add(inputs[0]._date, selects[0].value, \"minute\");\n end_date = new Date(start_date.getTime() + scheduler.config.event_duration * 60 * 1000);\n inputs[1].value = scheduler.templates.calendar_time(end_date);\n inputs[1]._date = scheduler.date.date_part(new Date(end_date));\n selects[1].value = end_date.getHours() * 60 + end_date.getMinutes();\n };\n\n if (!selects[0].$_eventAttached) {\n selects[0].addEventListener(\"change\", _update_minical_select); // only update on first select should trigger update so user could define other end date if he wishes too\n }\n }\n\n function _attach_action(inp, date, number) {\n _init_once(inp, date, number);\n\n inp.value = scheduler.templates.calendar_time(date);\n inp._date = scheduler.date.date_part(new Date(date));\n }\n\n _attach_action(inputs[0], ev.start_date, 0);\n\n _attach_action(inputs[1], ev.end_date, 1);\n\n _init_once = function _init_once() {};\n\n function _round_minutes(date) {\n var time_values = config._time_values;\n var direct_value = date.getHours() * 60 + date.getMinutes();\n var fixed_value = direct_value;\n var value_found = false;\n\n for (var k = 0; k < time_values.length; k++) {\n var t_v = time_values[k];\n\n if (t_v === direct_value) {\n value_found = true;\n break;\n }\n\n if (t_v < direct_value) fixed_value = t_v;\n }\n\n if (!(value_found || fixed_value)) return -1;\n return value_found ? direct_value : fixed_value;\n }\n\n selects[0].value = _round_minutes(ev.start_date);\n selects[1].value = _round_minutes(ev.end_date);\n },\n get_value: function get_value(node, ev) {\n var inputs = node.getElementsByTagName(\"input\");\n var selects = node.getElementsByTagName(\"select\");\n ev.start_date = scheduler.date.add(inputs[0]._date, selects[0].value, \"minute\");\n ev.end_date = scheduler.date.add(inputs[1]._date, selects[1].value, \"minute\");\n if (ev.end_date <= ev.start_date) ev.end_date = scheduler.date.add(ev.start_date, scheduler.config.time_step, \"minute\");\n return {\n start_date: new Date(ev.start_date),\n end_date: new Date(ev.end_date)\n };\n },\n focus: function focus(node) {}\n };\n\n scheduler.linkCalendar = function (calendar, datediff) {\n var action = function action() {\n var date = scheduler._date;\n var dateNew = new Date(date.valueOf());\n if (datediff) dateNew = datediff(dateNew);\n dateNew.setDate(1);\n scheduler.updateCalendar(calendar, dateNew);\n return true;\n };\n\n scheduler.attachEvent(\"onViewChange\", action);\n scheduler.attachEvent(\"onXLE\", action);\n scheduler.attachEvent(\"onEventAdded\", action);\n scheduler.attachEvent(\"onEventChanged\", action);\n scheduler.attachEvent(\"onEventDeleted\", action);\n action();\n };\n\n scheduler._markCalendarCurrentDate = function (calendar) {\n var state = scheduler.getState();\n var from = state.min_date;\n var to = state.max_date;\n var mode = state.mode;\n var month_start = scheduler.date.month_start(new Date(calendar._date));\n var month_end = scheduler.date.add(month_start, 1, \"month\");\n var noHighlight = {\n \"month\": true,\n \"year\": true,\n \"agenda\": true,\n \"grid\": true\n }; // no need to highlight current dates for a large range views - agenda, year, etc.\n\n if (noHighlight[mode] || from.valueOf() <= month_start.valueOf() && to.valueOf() >= month_end.valueOf()) {\n return;\n }\n\n var current = from;\n\n while (current.valueOf() < to.valueOf()) {\n if (month_start.valueOf() <= current.valueOf() && month_end > current) {\n scheduler.markCalendar(calendar, current, \"dhx_calendar_click\");\n }\n\n current = scheduler.date.add(current, 1, \"day\");\n }\n };\n\n scheduler.attachEvent(\"onEventCancel\", function () {\n scheduler.destroyCalendar(null, true);\n });\n scheduler.attachEvent(\"onDestroy\", function () {\n scheduler.destroyCalendar();\n });\n}","export default function (scheduler) {\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n scheduler.xy.scroll_width = 0;\n var old = scheduler.render_view_data;\n\n scheduler.render_view_data = function () {\n var data = this._els[\"dhx_cal_data\"][0];\n data.firstChild._h_fix = true;\n old.apply(scheduler, arguments);\n var height = parseInt(data.style.height);\n data.style.height = \"1px\";\n data.style.height = data.scrollHeight + \"px\";\n this._obj.style.height = this._obj.clientHeight + data.scrollHeight - height + \"px\";\n };\n\n var old_s = scheduler._reset_month_scale;\n\n scheduler._reset_month_scale = function (a, b, c, d) {\n var dummy = {\n clientHeight: 100\n };\n old_s.apply(scheduler, [dummy, b, c, d]);\n a.innerHTML = dummy.innerHTML;\n };\n });\n}","import notImplemented from \"./not_implemented_extension\";\nexport default function (scheduler) {\n notImplemented.alert(\"Multisection\", scheduler.assert);\n}","export default function (scheduler) {\n /* global Backbone */\n var cfg = {\n use_id: false\n }; //remove private properties\n\n function sanitize(ev) {\n var obj = {};\n\n for (var key in ev) {\n if (key.indexOf(\"_\") !== 0) obj[key] = ev[key];\n }\n\n if (!cfg.use_id) delete obj.id;\n return obj;\n }\n\n var update_timer;\n\n function update_view() {\n clearTimeout(update_timer);\n update_timer = setTimeout(function () {\n scheduler.updateView();\n }, 1);\n }\n\n function _start_ext_load(cal) {\n cal._loading = true;\n cal._not_render = true;\n cal.callEvent(\"onXLS\", []);\n }\n\n function _finish_ext_load(cal) {\n cal._not_render = false;\n if (cal._render_wait) cal.render_view_data();\n cal._loading = false;\n cal.callEvent(\"onXLE\", []);\n }\n\n function _get_id(model) {\n return cfg.use_id ? model.id : model.cid;\n }\n\n scheduler.backbone = function (events, config) {\n if (config) cfg = config;\n events.bind(\"change\", function (model, info) {\n var cid = _get_id(model);\n\n var ev = scheduler._events[cid] = model.toJSON();\n ev.id = cid;\n\n scheduler._init_event(ev);\n\n update_view();\n });\n events.bind(\"remove\", function (model, changes) {\n var cid = _get_id(model);\n\n if (scheduler._events[cid]) scheduler.deleteEvent(cid);\n });\n var queue = [];\n\n function add_from_queue() {\n if (queue.length) {\n scheduler.parse(queue, \"json\");\n queue = [];\n }\n }\n\n events.bind(\"add\", function (model, changes) {\n var cid = _get_id(model);\n\n if (!scheduler._events[cid]) {\n var ev = model.toJSON();\n ev.id = cid;\n\n scheduler._init_event(ev);\n\n queue.push(ev);\n if (queue.length == 1) setTimeout(add_from_queue, 1);\n }\n });\n events.bind(\"request\", function (obj) {\n if (obj instanceof Backbone.Collection) _start_ext_load(scheduler);\n });\n events.bind(\"sync\", function (obj) {\n if (obj instanceof Backbone.Collection) _finish_ext_load(scheduler);\n });\n events.bind(\"error\", function (obj) {\n if (obj instanceof Backbone.Collection) _finish_ext_load(scheduler);\n });\n scheduler.attachEvent(\"onEventCreated\", function (id) {\n var ev = new events.model(scheduler.getEvent(id));\n scheduler._events[id] = ev.toJSON();\n scheduler._events[id].id = id;\n return true;\n });\n scheduler.attachEvent(\"onEventAdded\", function (id) {\n if (!events.get(id)) {\n var data = sanitize(scheduler.getEvent(id));\n var model = new events.model(data);\n\n var cid = _get_id(model);\n\n if (cid != id) this.changeEventId(id, cid);\n events.add(model);\n events.trigger(\"scheduler:add\", model);\n }\n\n return true;\n });\n scheduler.attachEvent(\"onEventChanged\", function (id) {\n var ev = events.get(id);\n var upd = sanitize(scheduler.getEvent(id));\n ev.set(upd);\n events.trigger(\"scheduler:change\", ev);\n return true;\n });\n scheduler.attachEvent(\"onEventDeleted\", function (id) {\n var model = events.get(id);\n\n if (model) {\n events.trigger(\"scheduler:remove\", model);\n events.remove(id);\n }\n\n return true;\n });\n };\n}","export default function (scheduler) {\n /* global dhtmlDragAndDropObject, dhtmlx */\n // lame old code doesn't provide raw event object\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n var dragger = new dhtmlDragAndDropObject();\n var old = dragger.stopDrag;\n var last_event;\n\n dragger.stopDrag = function (e) {\n last_event = e;\n return old.apply(this, arguments);\n };\n\n function on_drop(sourceHtmlObject, dhtmlObject, targetHtmlObject, targetHtml) {\n if (scheduler.checkEvent(\"onBeforeExternalDragIn\") && !scheduler.callEvent(\"onBeforeExternalDragIn\", [sourceHtmlObject, dhtmlObject, targetHtmlObject, targetHtml, last_event])) return;\n var temp = scheduler.attachEvent(\"onEventCreated\", function (id) {\n if (!scheduler.callEvent(\"onExternalDragIn\", [id, sourceHtmlObject, last_event])) {\n this._drag_mode = this._drag_id = null;\n this.deleteEvent(id);\n }\n });\n var action_data = scheduler.getActionData(last_event);\n var event_data = {\n start_date: new Date(action_data.date)\n }; // custom views, need to assign section id, fix dates\n\n if (scheduler.matrix && scheduler.matrix[scheduler._mode]) {\n var view_options = scheduler.matrix[scheduler._mode];\n event_data[view_options.y_property] = action_data.section;\n\n var pos = scheduler._locate_cell_timeline(last_event);\n\n event_data.start_date = view_options._trace_x[pos.x];\n event_data.end_date = scheduler.date.add(event_data.start_date, view_options.x_step, view_options.x_unit);\n }\n\n if (scheduler._props && scheduler._props[scheduler._mode]) {\n event_data[scheduler._props[scheduler._mode].map_to] = action_data.section;\n }\n\n scheduler.addEventNow(event_data);\n scheduler.detachEvent(temp);\n }\n\n dragger.addDragLanding(scheduler._els[\"dhx_cal_data\"][0], {\n _drag: function _drag(sourceHtmlObject, dhtmlObject, targetHtmlObject, targetHtml) {\n on_drop(sourceHtmlObject, dhtmlObject, targetHtmlObject, targetHtml);\n },\n _dragIn: function _dragIn(htmlObject, shtmlObject) {\n return htmlObject;\n },\n _dragOut: function _dragOut(htmlObject) {\n return this;\n }\n });\n\n if (dhtmlx.DragControl) {\n dhtmlx.DragControl.addDrop(scheduler._els[\"dhx_cal_data\"][0], {\n onDrop: function onDrop(source, target, d, e) {\n var sourceDhtmlx = dhtmlx.DragControl.getMaster(source);\n last_event = e;\n on_drop(source, sourceDhtmlx, target, e.target || e.srcElement);\n },\n onDragIn: function onDragIn(source, target, e) {\n return target;\n }\n }, true);\n }\n });\n}","export default function (scheduler) {\n scheduler.config.icons_select = [\"icon_details\", \"icon_delete\"];\n scheduler.config.details_on_create = true;\n scheduler.config.show_quick_info = true;\n scheduler.xy.menu_width = 0;\n scheduler.attachEvent(\"onClick\", function (id) {\n if (!scheduler.config.show_quick_info) {\n return;\n }\n\n scheduler.showQuickInfo(id);\n return true;\n });\n\n (function () {\n // pass `force` argument in order to hide quick info synchronously\n // so it won't affect showQuickInfo call that can follow\n var events = [\"onEmptyClick\", \"onViewChange\", \"onLightbox\", \"onBeforeEventDelete\", \"onBeforeDrag\"];\n\n var hiding_function = function hiding_function() {\n scheduler.hideQuickInfo(true);\n return true;\n };\n\n for (var i = 0; i < events.length; i++) {\n scheduler.attachEvent(events[i], hiding_function);\n }\n })();\n\n scheduler.templates.quick_info_title = function (start, end, ev) {\n return ev.text.substr(0, 50);\n };\n\n scheduler.templates.quick_info_content = function (start, end, ev) {\n return ev.details || ev.text;\n };\n\n scheduler.templates.quick_info_date = function (start, end, ev) {\n if (scheduler.isOneDayEvent(ev) && scheduler.config.rtl) {\n return scheduler.templates.day_date(start, end, ev) + \" \" + scheduler.templates.event_header(end, start, ev);\n } else if (scheduler.isOneDayEvent(ev)) {\n return scheduler.templates.day_date(start, end, ev) + \" \" + scheduler.templates.event_header(start, end, ev);\n } else if (scheduler.config.rtl) {\n return scheduler.templates.week_date(end, start, ev);\n } else {\n return scheduler.templates.week_date(start, end, ev);\n }\n };\n\n scheduler.showQuickInfo = function (id) {\n if (id == this._quick_info_box_id) return;\n this.hideQuickInfo(true);\n\n if (this.callEvent(\"onBeforeQuickInfo\", [id]) === false) {\n return;\n }\n\n var pos = this._get_event_counter_part(id);\n\n if (pos) {\n this._quick_info_box = this._init_quick_info(pos);\n\n this._fill_quick_data(id);\n\n this._show_quick_info(pos);\n\n this.callEvent(\"onQuickInfo\", [id]);\n }\n };\n\n (function () {\n function cssTimeToMs(time) {\n time = time || \"\";\n var num = parseFloat(time),\n unit = time.match(/m?s/),\n milliseconds;\n\n if (unit) {\n unit = unit[0];\n }\n\n switch (unit) {\n case \"s\":\n // seconds\n milliseconds = num * 1000;\n break;\n\n case \"ms\":\n // milliseconds\n milliseconds = num;\n break;\n\n default:\n milliseconds = 0;\n break;\n }\n\n return milliseconds;\n }\n\n scheduler.hideQuickInfo = function (forced) {\n var qi = this._quick_info_box;\n var eventId = this._quick_info_box_id;\n this._quick_info_box_id = 0;\n\n if (qi && qi.parentNode) {\n var width = qi.offsetWidth;\n\n if (scheduler.config.quick_info_detached) {\n this.callEvent(\"onAfterQuickInfo\", [eventId]);\n return qi.parentNode.removeChild(qi);\n }\n\n if (qi.style.right == \"auto\") qi.style.left = -width + \"px\";else qi.style.right = -width + \"px\";\n\n if (forced) {\n qi.parentNode.removeChild(qi);\n } else {\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(qi, null);\n } else if (qi.currentStyle) {\n style = qi.currentStyle;\n }\n\n var delay = cssTimeToMs(style[\"transition-delay\"]) + cssTimeToMs(style[\"transition-duration\"]);\n setTimeout(function () {\n if (qi.parentNode) {\n qi.parentNode.removeChild(qi);\n }\n }, delay);\n }\n\n this.callEvent(\"onAfterQuickInfo\", [eventId]);\n }\n };\n })();\n\n scheduler.event(window, \"keydown\", function (e) {\n if (e.keyCode == 27) scheduler.hideQuickInfo();\n });\n\n scheduler._show_quick_info = function (pos) {\n var qi = scheduler._quick_info_box;\n\n scheduler._obj.appendChild(qi);\n\n var width = qi.offsetWidth;\n var height = qi.offsetHeight;\n\n if (scheduler.config.quick_info_detached) {\n var left = pos.left - pos.dx * (width - pos.width);\n var right = left + width;\n\n if (right > window.innerWidth) {\n left = window.innerWidth - width;\n }\n\n left = Math.max(0, left);\n qi.style.left = left + \"px\";\n qi.style.top = pos.top - (pos.dy ? height : -pos.height) + \"px\";\n } else {\n qi.style.top = this.xy.scale_height + this.xy.nav_height + 20 + \"px\";\n\n if (pos.dx == 1) {\n qi.style.right = \"auto\";\n qi.style.left = -width + \"px\";\n setTimeout(function () {\n qi.style.left = \"-10px\";\n }, 1);\n } else {\n qi.style.left = \"auto\";\n qi.style.right = -width + \"px\";\n setTimeout(function () {\n qi.style.right = \"-10px\";\n }, 1);\n }\n\n qi.className = qi.className.replace(\" dhx_qi_left\", \"\").replace(\" dhx_qi_right\", \"\") + \" dhx_qi_\" + (pos.dx == 1 ? \"left\" : \"right\");\n }\n };\n\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n scheduler.hideQuickInfo();\n\n if (this._quick_info_box) {\n var box = this._quick_info_box;\n\n if (box.parentNode) {\n box.parentNode.removeChild(box);\n }\n\n this._quick_info_box = null;\n }\n });\n\n scheduler._quick_info_onscroll_handler = function (e) {\n scheduler.hideQuickInfo();\n };\n\n scheduler._init_quick_info = function () {\n if (!this._quick_info_box) {\n var sizes = scheduler.xy;\n var qi = this._quick_info_box = document.createElement(\"div\");\n\n this._waiAria.quickInfoAttr(qi);\n\n qi.className = \"dhx_cal_quick_info\";\n if (scheduler.$testmode) qi.className += \" dhx_no_animate\";\n if (scheduler.config.rtl) qi.className += \" dhx_quick_info_rtl\"; //title\n\n var ariaAttr = this._waiAria.quickInfoHeaderAttrString();\n\n var html = \"<div class=\\\"dhx_cal_qi_title\\\" style=\\\"height:\" + sizes.quick_info_title + \"px\\\" \" + ariaAttr + \">\" + \"<div class=\\\"dhx_cal_qi_tcontent\\\"></div><div class=\\\"dhx_cal_qi_tdate\\\"></div>\" + \"</div>\" + \"<div class=\\\"dhx_cal_qi_content\\\"></div>\"; //buttons\n\n html += \"<div class=\\\"dhx_cal_qi_controls\\\" style=\\\"height:\" + sizes.quick_info_buttons + \"px\\\">\";\n var buttons = scheduler.config.icons_select;\n\n for (var i = 0; i < buttons.length; i++) {\n var ariaAttr = this._waiAria.quickInfoButtonAttrString(this.locale.labels[buttons[i]]);\n\n html += \"<div \" + ariaAttr + \" class=\\\"dhx_qi_big_icon \" + buttons[i] + \"\\\" title=\\\"\" + scheduler.locale.labels[buttons[i]] + \"\\\"><div class='dhx_menu_icon \" + buttons[i] + \"'></div><div>\" + scheduler.locale.labels[buttons[i]] + \"</div></div>\";\n } // }\n\n\n html += \"</div>\";\n qi.innerHTML = html;\n scheduler.event(qi, \"click\", function (ev) {\n scheduler._qi_button_click(ev.target || ev.srcElement);\n });\n\n if (scheduler.config.quick_info_detached) {\n scheduler._detachDomEvent(scheduler._els[\"dhx_cal_data\"][0], \"scroll\", scheduler._quick_info_onscroll_handler);\n\n scheduler.event(scheduler._els[\"dhx_cal_data\"][0], \"scroll\", scheduler._quick_info_onscroll_handler);\n }\n }\n\n return this._quick_info_box;\n };\n\n scheduler._qi_button_click = function (node) {\n var box = scheduler._quick_info_box;\n if (!node || node == box) return;\n\n var mask = scheduler._getClassName(node);\n\n if (mask.indexOf(\"_icon\") != -1) {\n var id = scheduler._quick_info_box_id;\n\n scheduler._click.buttons[mask.split(\" \")[1].replace(\"icon_\", \"\")](id);\n } else scheduler._qi_button_click(node.parentNode);\n };\n\n scheduler._get_event_counter_part = function (id) {\n var domEv = scheduler.getRenderedEvent(id);\n var left = 0;\n var top = 0;\n var node = domEv;\n\n while (node && node != scheduler._obj) {\n left += node.offsetLeft;\n top += node.offsetTop - node.scrollTop;\n node = node.offsetParent;\n }\n\n if (node) {\n var dx = left + domEv.offsetWidth / 2 > scheduler._x / 2 ? 1 : 0;\n var dy = top + domEv.offsetHeight / 2 > scheduler._y / 2 ? 1 : 0;\n return {\n left: left,\n top: top,\n dx: dx,\n dy: dy,\n width: domEv.offsetWidth,\n height: domEv.offsetHeight\n };\n }\n\n return 0;\n };\n\n scheduler._fill_quick_data = function (id) {\n var ev = scheduler.getEvent(id);\n var qi = scheduler._quick_info_box;\n scheduler._quick_info_box_id = id; //title content\n\n var header = {\n content: scheduler.templates.quick_info_title(ev.start_date, ev.end_date, ev),\n date: scheduler.templates.quick_info_date(ev.start_date, ev.end_date, ev)\n };\n var titleContent = qi.firstChild.firstChild;\n titleContent.innerHTML = header.content;\n var titleDate = titleContent.nextSibling;\n titleDate.innerHTML = header.date;\n\n scheduler._waiAria.quickInfoHeader(qi, [header.content, header.date].join(\" \")); //main content\n\n\n var main = qi.firstChild.nextSibling;\n main.innerHTML = scheduler.templates.quick_info_content(ev.start_date, ev.end_date, ev);\n };\n}","export default function (scheduler) {\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n var originalRecurringSetValue;\n\n if (scheduler.form_blocks.recurring) {\n originalRecurringSetValue = scheduler.form_blocks.recurring.set_value;\n }\n\n var original_left_buttons = scheduler.config.buttons_left.slice();\n var original_right_buttons = scheduler.config.buttons_right.slice();\n scheduler.attachEvent(\"onBeforeLightbox\", function (id) {\n if (this.config.readonly_form || this.getEvent(id).readonly) {\n this.config.readonly_active = true;\n } else {\n this.config.readonly_active = false;\n scheduler.config.buttons_left = original_left_buttons.slice();\n scheduler.config.buttons_right = original_right_buttons.slice(); // initial value\n\n if (scheduler.form_blocks.recurring) {\n scheduler.form_blocks.recurring.set_value = originalRecurringSetValue;\n }\n }\n\n var sns = this.config.lightbox.sections;\n\n if (this.config.readonly_active) {\n for (var i = 0; i < sns.length; i++) {\n if (sns[i].type == 'recurring') {\n if (this.config.readonly_active && scheduler.form_blocks.recurring) {\n scheduler.form_blocks.recurring.set_value = function (node, value, ev) {\n var wrapper = scheduler.$domHelpers.closest(node, \".dhx_wrap_section\");\n var style = \"none\";\n wrapper.querySelector('.dhx_cal_lsection').display = style;\n wrapper.querySelector('.dhx_form_repeat').display = style;\n wrapper.style.display = style;\n scheduler.setLightboxSize();\n };\n }\n }\n }\n\n var forbidden_buttons = [\"dhx_delete_btn\", \"dhx_save_btn\"];\n var button_arrays = [scheduler.config.buttons_left, scheduler.config.buttons_right];\n\n for (var i = 0; i < forbidden_buttons.length; i++) {\n var forbidden_button = forbidden_buttons[i];\n\n for (var k = 0; k < button_arrays.length; k++) {\n var button_array = button_arrays[k];\n var index = -1;\n\n for (var p = 0; p < button_array.length; p++) {\n if (button_array[p] == forbidden_button) {\n index = p;\n break;\n }\n }\n\n if (index != -1) {\n button_array.splice(index, 1);\n }\n }\n }\n }\n\n this.resetLightbox();\n return true;\n });\n\n function txt_replace(tag, d, n, text) {\n var txts = d.getElementsByTagName(tag);\n var txtt = n.getElementsByTagName(tag);\n\n for (var i = txtt.length - 1; i >= 0; i--) {\n var n = txtt[i];\n\n if (!text) {\n n.disabled = true; //radio and checkboxes loses state after .cloneNode in IE\n\n if (d.checked) n.checked = true;\n } else {\n var t = document.createElement(\"span\");\n t.className = \"dhx_text_disabled\";\n t.innerHTML = text(txts[i]);\n n.parentNode.insertBefore(t, n);\n n.parentNode.removeChild(n);\n }\n }\n }\n\n var old = scheduler._fill_lightbox;\n\n scheduler._fill_lightbox = function () {\n var lb = this.getLightbox();\n\n if (this.config.readonly_active) {\n lb.style.visibility = 'hidden'; // lightbox should have actual sizes before rendering controls\n // currently only matters for dhtmlxCombo\n\n lb.style.display = 'block';\n }\n\n var res = old.apply(this, arguments);\n\n if (this.config.readonly_active) {\n //reset visibility and display\n lb.style.visibility = '';\n lb.style.display = 'none';\n }\n\n if (this.config.readonly_active) {\n var d = this.getLightbox();\n var n = this._lightbox_r = d.cloneNode(true);\n n.id = scheduler.uid();\n n.className += \" dhx_cal_light_readonly\";\n txt_replace(\"textarea\", d, n, function (a) {\n return a.value;\n });\n txt_replace(\"input\", d, n, false);\n txt_replace(\"select\", d, n, function (a) {\n if (!a.options.length) return \"\";\n return a.options[Math.max(a.selectedIndex || 0, 0)].text;\n });\n d.parentNode.insertBefore(n, d);\n olds.call(this, n);\n if (scheduler._lightbox) scheduler._lightbox.parentNode.removeChild(scheduler._lightbox);\n this._lightbox = n;\n if (scheduler.config.drag_lightbox) scheduler.event(n.firstChild, \"mousedown\", scheduler._ready_to_dnd);\n\n scheduler._init_lightbox_events();\n\n this.setLightboxSize();\n }\n\n return res;\n };\n\n var olds = scheduler.showCover;\n\n scheduler.showCover = function () {\n if (!this.config.readonly_active) olds.apply(this, arguments);\n };\n\n var hold = scheduler.hide_lightbox;\n\n scheduler.hide_lightbox = function () {\n if (this._lightbox_r) {\n this._lightbox_r.parentNode.removeChild(this._lightbox_r);\n\n this._lightbox_r = this._lightbox = null;\n }\n\n return hold.apply(this, arguments);\n };\n });\n}","import getSerializator from '../core/common/get_serializable_events';\nexport default function (scheduler) {\n var getSerializableData = getSerializator(scheduler); //redefine this method, if you want to provide a custom set of attributes for serialization\n\n scheduler.data_attributes = function () {\n var attrs = [];\n var format = scheduler._helpers.formatDate;\n var all_events = getSerializableData();\n\n for (var a in all_events) {\n var ev = all_events[a];\n\n for (var name in ev) {\n if (name.substr(0, 1) != \"_\") attrs.push([name, name == \"start_date\" || name == \"end_date\" ? format : null]);\n }\n\n break;\n }\n\n return attrs;\n };\n\n scheduler.toXML = function (header) {\n var xml = [];\n var attrs = this.data_attributes();\n var all_events = getSerializableData();\n\n for (var a in all_events) {\n var ev = all_events[a];\n xml.push(\"<event>\");\n\n for (var i = 0; i < attrs.length; i++) {\n xml.push(\"<\" + attrs[i][0] + \"><![CDATA[\" + (attrs[i][1] ? attrs[i][1](ev[attrs[i][0]]) : ev[attrs[i][0]]) + \"]]></\" + attrs[i][0] + \">\");\n }\n\n xml.push(\"</event>\");\n }\n\n return (header || \"\") + \"<data>\" + xml.join(\"\\n\") + \"</data>\";\n };\n\n scheduler._serialize_json_value = function (value) {\n if (value === null || typeof value === \"boolean\") {\n value = \"\" + value;\n } else {\n if (!value && value !== 0) {\n value = \"\";\n }\n\n value = '\"' + value.toString().replace(/\\n/g, \"\").replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"') + '\"';\n }\n\n return value;\n };\n\n scheduler.toJSON = function () {\n return JSON.stringify(this.serialize());\n };\n\n scheduler.toICal = function (header) {\n var start = \"BEGIN:VCALENDAR\\nVERSION:2.0\\nPRODID:-//dhtmlXScheduler//NONSGML v2.2//EN\\nDESCRIPTION:\";\n var end = \"END:VCALENDAR\";\n var format = scheduler.date.date_to_str(\"%Y%m%dT%H%i%s\");\n var full_day_format = scheduler.date.date_to_str(\"%Y%m%d\");\n var ical = [];\n var all_events = getSerializableData();\n\n for (var a in all_events) {\n var ev = all_events[a];\n ical.push(\"BEGIN:VEVENT\");\n if (!ev._timed || !ev.start_date.getHours() && !ev.start_date.getMinutes()) ical.push(\"DTSTART:\" + full_day_format(ev.start_date));else ical.push(\"DTSTART:\" + format(ev.start_date));\n if (!ev._timed || !ev.end_date.getHours() && !ev.end_date.getMinutes()) ical.push(\"DTEND:\" + full_day_format(ev.end_date));else ical.push(\"DTEND:\" + format(ev.end_date));\n ical.push(\"SUMMARY:\" + ev.text);\n ical.push(\"END:VEVENT\");\n }\n\n return start + (header || \"\") + \"\\n\" + ical.join(\"\\n\") + \"\\n\" + end;\n };\n}","import notImplemented from \"./not_implemented_extension\";\nexport default function (scheduler) {\n notImplemented.alert(\"Timeline\", scheduler.assert);\n}","export default function (scheduler) {\n var tooltipEventScope = scheduler._createDomEventScope();\n\n var dhtmlXTooltip = {};\n scheduler.ext.tooltip = scheduler.dhtmlXTooltip = scheduler.tooltip = dhtmlXTooltip;\n dhtmlXTooltip.config = {\n className: 'dhtmlXTooltip scheduler_tooltip tooltip',\n timeout_to_display: 50,\n timeout_to_hide: 50,\n delta_x: 15,\n delta_y: -20\n };\n dhtmlXTooltip.tooltip = document.createElement('div');\n dhtmlXTooltip.tooltip.className = dhtmlXTooltip.config.className;\n\n scheduler._waiAria.tooltipAttr(dhtmlXTooltip.tooltip);\n\n dhtmlXTooltip.show = function (event, text) {\n //browser event, text to display\n if (this._mobile && !scheduler.config.touch_tooltip) return;\n var dhxTooltip = dhtmlXTooltip;\n var tooltip_div = this.tooltip;\n var tooltipStyle = tooltip_div.style;\n dhxTooltip.tooltip.className = dhxTooltip.config.className;\n var pos = this.position(event);\n var target = event.target || event.srcElement; // if we are over tooltip -- do nothing, just return (so tooltip won't move)\n\n if (this.isTooltip(target)) {\n return;\n }\n\n var actual_x = pos.x + (dhxTooltip.config.delta_x || 0);\n var actual_y = pos.y - (dhxTooltip.config.delta_y || 0);\n tooltipStyle.visibility = \"hidden\";\n tooltipStyle.right = \"\";\n tooltipStyle.bottom = \"\";\n tooltipStyle.left = \"0\";\n tooltipStyle.top = \"0\";\n\n if (scheduler.config.rtl) {\n tooltip_div.className += \" dhtmlXTooltip_rtl\";\n }\n\n this.tooltip.innerHTML = text;\n document.body.appendChild(this.tooltip);\n var tooltip_width = this.tooltip.offsetWidth;\n var tooltip_height = this.tooltip.offsetHeight;\n\n if (document.documentElement.clientWidth - actual_x - tooltip_width < 0) {\n // tooltip is out of the right page bound\n tooltipStyle.left = \"\";\n tooltipStyle.right = document.documentElement.clientWidth - actual_x + 2 * (dhxTooltip.config.delta_x || 0) + \"px\";\n } else {\n if (actual_x < 0) {\n // tooltips is out of the left page bound\n tooltipStyle.left = pos.x + Math.abs(dhxTooltip.config.delta_x || 0) + \"px\";\n } else {\n // normal situation\n tooltipStyle.left = actual_x + \"px\";\n }\n }\n\n if (document.documentElement.clientHeight - actual_y - tooltip_height < 0) {\n // tooltip is below bottom of the page\n var bottom = document.documentElement.clientHeight - actual_y - 2 * (dhxTooltip.config.delta_y || 0);\n\n if (bottom + tooltip_height > document.documentElement.clientHeight) {\n actual_y -= Math.abs(document.documentElement.clientHeight - actual_y - tooltip_height);\n actual_y = Math.max(actual_y, 0);\n tooltipStyle.top = actual_y + \"px\";\n } else {\n tooltipStyle.bottom = bottom + \"px\";\n tooltipStyle.top = \"\";\n }\n } else {\n if (actual_y < 0) {\n // tooltip is higher then top of the page\n tooltipStyle.top = pos.y + Math.abs(dhxTooltip.config.delta_y || 0) + \"px\";\n } else {\n // normal situation\n tooltipStyle.top = actual_y + \"px\";\n }\n }\n\n scheduler._waiAria.tooltipVisibleAttr(this.tooltip);\n\n tooltipStyle.visibility = \"visible\";\n tooltipEventScope.attach(this.tooltip, \"mouseleave\", function (e) {\n /*\r\n A rare but reported scenario, when tooltip appears at the edge of the scheduler (e.g. left part inside cal, right part - outside).\r\n User moves mouse from the scheduler into the tooltip, and then from the tooltip to the page outside the calendar.\r\n As a result - tooltip freezes and no longer reacts until mouse reenters the calendar.\r\n */\n var tooltip = scheduler.dhtmlXTooltip;\n var node = e.relatedTarget;\n\n while (node != scheduler._obj && node) {\n node = node.parentNode;\n }\n\n if (node != scheduler._obj) tooltip.delay(tooltip.hide, tooltip, [], tooltip.config.timeout_to_hide);\n });\n scheduler.callEvent(\"onTooltipDisplayed\", [this.tooltip, this.tooltip.event_id]);\n };\n\n dhtmlXTooltip._clearTimeout = function () {\n if (this.tooltip._timeout_id) {\n clearTimeout(this.tooltip._timeout_id);\n }\n };\n\n dhtmlXTooltip.hide = function () {\n if (this.tooltip.parentNode) {\n scheduler._waiAria.tooltipHiddenAttr(this.tooltip);\n\n var event_id = this.tooltip.event_id;\n this.tooltip.event_id = null; //this.tooltip.onmouseleave = null;\n\n tooltipEventScope.detachAll();\n this.tooltip.parentNode.removeChild(this.tooltip);\n scheduler.callEvent(\"onAfterTooltip\", [event_id]);\n }\n\n this._clearTimeout();\n };\n\n dhtmlXTooltip.delay = function (method, object, params, delay) {\n this._clearTimeout();\n\n this.tooltip._timeout_id = setTimeout(function () {\n var ret = method.apply(object, params);\n method = object = params = null;\n return ret;\n }, delay || this.config.timeout_to_display);\n };\n\n dhtmlXTooltip.isTooltip = function (node) {\n var res = false;\n\n while (node && !res) {\n res = node.className == this.tooltip.className;\n node = node.parentNode;\n }\n\n return res;\n };\n\n dhtmlXTooltip.position = function (ev) {\n return {\n x: ev.clientX,\n y: ev.clientY\n };\n };\n\n scheduler.attachEvent(\"onMouseMove\", function (event_id, ev) {\n // (scheduler event_id, browser event)\n var target = ev.target || ev.srcElement;\n var dhxTooltip = dhtmlXTooltip;\n var is_tooltip = dhxTooltip.isTooltip(target);\n var is_tooltip_target = dhxTooltip.isTooltipTarget && dhxTooltip.isTooltipTarget(target); // if we are over event or tooltip or custom target for tooltip\n\n if (event_id && scheduler.getState().editor_id != event_id || is_tooltip || is_tooltip_target) {\n var text;\n\n if (event_id || dhxTooltip.tooltip.event_id) {\n var event = scheduler.getEvent(event_id) || scheduler.getEvent(dhxTooltip.tooltip.event_id);\n if (!event) return;\n dhxTooltip.tooltip.event_id = event.id;\n text = scheduler.templates.tooltip_text(event.start_date, event.end_date, event);\n if (!text) return dhxTooltip.hide();\n }\n\n if (is_tooltip_target) {\n text = \"\";\n }\n\n var evt;\n\n if (scheduler.$env.isIE) {\n //make a copy of event, will be used in timed call\n evt = {\n 'pageX': undefined,\n 'pageY': undefined,\n 'clientX': undefined,\n 'clientY': undefined,\n 'target': undefined,\n 'srcElement': undefined\n };\n\n for (var i in evt) {\n evt[i] = ev[i];\n }\n }\n\n if (!scheduler.callEvent(\"onBeforeTooltip\", [event_id]) || !text) return;\n dhxTooltip.delay(dhxTooltip.show, dhxTooltip, [evt || ev, text]); // showing tooltip\n } else {\n dhxTooltip.delay(dhxTooltip.hide, dhxTooltip, [], dhxTooltip.config.timeout_to_hide);\n }\n });\n scheduler.attachEvent(\"onBeforeDrag\", function () {\n dhtmlXTooltip.hide();\n return true;\n });\n scheduler.attachEvent(\"onEventDeleted\", function () {\n dhtmlXTooltip.hide();\n return true;\n });\n scheduler.attachEvent(\"onDestroy\", function () {\n dhtmlXTooltip.hide();\n });\n}","import notImplemented from \"./not_implemented_extension\";\nexport default function (scheduler) {\n notImplemented.alert(\"Tree Timeline\", scheduler.assert);\n}","import notImplemented from \"./not_implemented_extension\";\nexport default function (scheduler) {\n notImplemented.alert(\"Units\", scheduler.assert);\n}","export default function (scheduler) {\n scheduler._get_url_nav = function () {\n var p = {};\n var data = (document.location.hash || \"\").replace(\"#\", \"\").split(\",\");\n\n for (var i = 0; i < data.length; i++) {\n var s = data[i].split(\"=\");\n if (s.length == 2) p[s[0]] = s[1];\n }\n\n return p;\n };\n\n scheduler.attachEvent(\"onTemplatesReady\", function () {\n var first = true;\n var s2d = scheduler.date.str_to_date(\"%Y-%m-%d\");\n var d2s = scheduler.date.date_to_str(\"%Y-%m-%d\");\n var select_event = scheduler._get_url_nav().event || null;\n scheduler.attachEvent(\"onAfterEventDisplay\", function (ev) {\n select_event = null;\n return true;\n });\n scheduler.attachEvent(\"onBeforeViewChange\", function (om, od, m, d) {\n if (first) {\n first = false;\n\n var p = scheduler._get_url_nav();\n\n if (p.event) {\n try {\n if (scheduler.getEvent(p.event)) {\n setTimeout(function () {\n showEvent(p.event);\n });\n return false;\n } else {\n var handler = scheduler.attachEvent(\"onXLE\", function () {\n setTimeout(function () {\n showEvent(p.event);\n });\n scheduler.detachEvent(handler);\n });\n }\n } catch (e) {}\n }\n\n if (p.date || p.mode) {\n try {\n this.setCurrentView(p.date ? s2d(p.date) : null, p.mode || null);\n } catch (e) {\n //assuming that mode is not available anymore\n this.setCurrentView(p.date ? s2d(p.date) : null, m);\n }\n\n return false;\n }\n }\n\n var values = [\"date=\" + d2s(d || od), \"mode=\" + (m || om)];\n\n if (select_event) {\n values.push(\"event=\" + select_event);\n }\n\n var text = \"#\" + values.join(\",\");\n document.location.hash = text;\n return true;\n });\n\n function showEvent(e) {\n select_event = e;\n\n if (scheduler.getEvent(e)) {\n scheduler.showEvent(e);\n }\n }\n });\n}","import notImplemented from \"./not_implemented_extension\";\nexport default function (scheduler) {\n notImplemented.alert(\"Week Agenda\", scheduler.assert);\n}","export default function (scheduler) {\n scheduler.attachEvent(\"onLightBox\", function () {\n if (this._cover) {\n try {\n this._cover.style.height = this.expanded ? \"100%\" : (document.body.parentNode || document.body).scrollHeight + \"px\";\n } catch (e) {}\n }\n });\n\n scheduler.form_blocks.select.set_value = function (node, value, ev) {\n if (typeof value == \"undefined\" || value === \"\") value = (node.firstChild.options[0] || {}).value;\n node.firstChild.value = value || \"\";\n };\n}","export default function (scheduler) {\n scheduler.config.year_x = 4;\n scheduler.config.year_y = 3;\n scheduler.xy.year_top = 0;\n\n scheduler.templates.year_date = function (date) {\n return scheduler.date.date_to_str(scheduler.locale.labels.year_tab + \" %Y\")(date);\n };\n\n scheduler.templates.year_month = scheduler.date.date_to_str(\"%F\");\n scheduler.templates.year_scale_date = scheduler.date.date_to_str(\"%D\");\n\n scheduler.templates.year_tooltip = function (s, e, ev) {\n return ev.text;\n };\n\n var is_year_mode = function is_year_mode() {\n return scheduler._mode == \"year\";\n };\n\n scheduler.dblclick_dhx_month_head = function (e) {\n if (is_year_mode()) {\n var t = e.target || e.srcElement;\n\n var className = scheduler._getClassName(t.parentNode);\n\n if (className.indexOf(\"dhx_before\") != -1 || className.indexOf(\"dhx_after\") != -1) return false;\n var monthNode = t;\n\n while (monthNode && !(monthNode.hasAttribute && monthNode.hasAttribute(\"date\"))) {\n monthNode = monthNode.parentNode;\n }\n\n if (monthNode) {\n var start = this._helpers.parseDate(monthNode.getAttribute(\"date\"));\n\n start.setDate(parseInt(t.innerHTML, 10));\n var end = this.date.add(start, 1, \"day\");\n if (!this.config.readonly && this.config.dblclick_create) this.addEventNow(start.valueOf(), end.valueOf(), e);\n }\n }\n };\n\n var chid = scheduler.changeEventId;\n\n scheduler.changeEventId = function () {\n chid.apply(this, arguments);\n if (is_year_mode()) this.year_view(true);\n };\n\n var old = scheduler.render_data;\n\n scheduler.render_data = function (evs) {\n if (!is_year_mode()) return old.apply(this, arguments);\n\n for (var i = 0; i < evs.length; i++) {\n this._year_render_event(evs[i]);\n }\n };\n\n var clear = scheduler.clear_view;\n\n scheduler.clear_view = function () {\n if (!is_year_mode()) return clear.apply(this, arguments);\n var dates = scheduler._year_marked_cells,\n div = null;\n\n for (var date in dates) {\n if (dates.hasOwnProperty(date)) {\n div = dates[date];\n div.className = \"dhx_month_head\";\n div.removeAttribute(\"date\");\n }\n }\n\n scheduler._year_marked_cells = {};\n };\n\n scheduler._hideToolTip = function () {\n if (this._tooltip) {\n this._tooltip.style.display = \"none\";\n this._tooltip.date = new Date(9999, 1, 1);\n }\n };\n\n scheduler._showToolTip = function (date, pos, e, src) {\n if (this._tooltip) {\n if (this._tooltip.date.valueOf() == date.valueOf()) return;\n this._tooltip.innerHTML = \"\";\n } else {\n var t = this._tooltip = document.createElement(\"div\");\n t.className = \"dhx_year_tooltip\";\n if (this.config.rtl) t.className += \" dhx_tooltip_rtl\";\n document.body.appendChild(t);\n t.addEventListener(\"click\", scheduler._click.dhx_cal_data);\n }\n\n var evs = this.getEvents(date, this.date.add(date, 1, \"day\"));\n var html = \"\";\n\n for (var i = 0; i < evs.length; i++) {\n var ev = evs[i];\n if (!this.filter_event(ev.id, ev)) continue;\n var bg_color = ev.color ? \"background:\" + ev.color + \";\" : \"\";\n var color = ev.textColor ? \"color:\" + ev.textColor + \";\" : \"\";\n html += \"<div class='dhx_tooltip_line' style='\" + bg_color + \"\" + color + \"' event_id='\" + evs[i].id + \"' \" + this.config.event_attribute + \"='\" + evs[i].id + \"'>\";\n html += \"<div class='dhx_tooltip_date' style='\" + bg_color + \"\" + color + \"'>\" + (evs[i]._timed ? this.templates.event_date(evs[i].start_date) : \"\") + \"</div>\";\n html += \"<div class='dhx_event_icon icon_details'> </div>\";\n html += this.templates.year_tooltip(evs[i].start_date, evs[i].end_date, evs[i]) + \"</div>\";\n }\n\n this._tooltip.style.display = \"\";\n this._tooltip.style.top = \"0px\";\n if (document.body.offsetWidth - pos.left - this._tooltip.offsetWidth < 0) this._tooltip.style.left = pos.left - this._tooltip.offsetWidth + \"px\";else this._tooltip.style.left = pos.left + src.offsetWidth + \"px\";\n this._tooltip.date = date;\n this._tooltip.innerHTML = html;\n if (document.body.offsetHeight - pos.top - this._tooltip.offsetHeight < 0) this._tooltip.style.top = pos.top - this._tooltip.offsetHeight + src.offsetHeight + \"px\";else this._tooltip.style.top = pos.top + \"px\";\n };\n\n scheduler._year_view_tooltip_handler = function (e) {\n if (!is_year_mode()) return;\n var src = e.target || e.srcElement;\n if (src.tagName.toLowerCase() == 'a') // fix for active links extension (it adds links to the date in the cell)\n src = src.parentNode;\n if (scheduler._getClassName(src).indexOf(\"dhx_year_event\") != -1) scheduler._showToolTip(scheduler.templates.parse_date(src.getAttribute(\"data-year-date\")), scheduler.$domHelpers.getOffset(src), e, src);else scheduler._hideToolTip();\n };\n\n scheduler._init_year_tooltip = function () {\n scheduler._detachDomEvent(scheduler._els[\"dhx_cal_data\"][0], \"mouseover\", scheduler._year_view_tooltip_handler);\n\n scheduler.event(scheduler._els[\"dhx_cal_data\"][0], \"mouseover\", scheduler._year_view_tooltip_handler);\n };\n\n scheduler._get_year_cell = function (d) {\n //there can be more than 1 year in view\n //year can start not from January\n var m = d.getMonth() + 12 * (d.getFullYear() - this._min_date.getFullYear()) - this.week_starts._month;\n\n var yearBox = this._els[\"dhx_cal_data\"][0].childNodes[m];\n var dayIndex = this.week_starts[m] + d.getDate() - 1;\n var row = yearBox.querySelectorAll(\".dhx_year_body tr\")[Math.floor(dayIndex / 7)];\n var cell = row.querySelectorAll(\"td\")[dayIndex % 7];\n return cell.querySelector(\".dhx_month_head\");\n };\n\n scheduler._year_marked_cells = {};\n\n scheduler._mark_year_date = function (date, event) {\n var dateString = scheduler.templates.format_date(date);\n\n var cell = this._get_year_cell(date);\n\n if (!cell) {\n return;\n }\n\n var ev_class = this.templates.event_class(event.start_date, event.end_date, event);\n\n if (!scheduler._year_marked_cells[dateString]) {\n cell.className = \"dhx_month_head dhx_year_event\";\n cell.setAttribute(\"data-year-date\", dateString);\n cell.setAttribute(\"date\", dateString);\n scheduler._year_marked_cells[dateString] = cell;\n }\n\n cell.className += ev_class ? \" \" + ev_class : \"\";\n };\n\n scheduler._unmark_year_date = function (date) {\n var cell = this._get_year_cell(date);\n\n if (!cell) {\n return;\n }\n\n cell.className = \"dhx_month_head\";\n };\n\n scheduler._year_render_event = function (event) {\n var date = event.start_date;\n\n if (date.valueOf() < this._min_date.valueOf()) {\n date = this._min_date;\n } else {\n date = this.date.date_part(new Date(date));\n }\n\n while (date < event.end_date) {\n this._mark_year_date(date, event);\n\n date = this.date.add(date, 1, \"day\");\n if (date.valueOf() >= this._max_date.valueOf()) return;\n }\n };\n\n scheduler.year_view = function (mode) {\n var temp;\n\n if (mode) {\n temp = scheduler.xy.scale_height;\n scheduler.xy.scale_height = -1;\n }\n\n scheduler._els[\"dhx_cal_header\"][0].style.display = mode ? \"none\" : \"\";\n scheduler.set_sizes();\n if (mode) scheduler.xy.scale_height = temp;\n scheduler._table_view = mode;\n if (this._load_mode && this._load()) return;\n\n if (mode) {\n scheduler._init_year_tooltip();\n\n scheduler._reset_year_scale();\n\n if (scheduler._load_mode && scheduler._load()) {\n scheduler._render_wait = true;\n return;\n }\n\n scheduler.render_view_data();\n } else {\n scheduler._hideToolTip();\n }\n };\n\n scheduler._reset_year_scale = function () {\n this._cols = [];\n this._colsS = {};\n var week_starts = []; //start day of first week in each month\n\n var b = this._els[\"dhx_cal_data\"][0];\n var c = this.config;\n b.scrollTop = 0; //fix flickering in FF\n\n b.innerHTML = \"\";\n var dx = Math.floor(parseInt(b.style.width) / c.year_x);\n var dy = Math.floor((parseInt(b.style.height) - scheduler.xy.year_top) / c.year_y);\n\n if (dy < 190) {\n dy = 190;\n dx = Math.floor((parseInt(b.style.width) - scheduler.xy.scroll_width) / c.year_x);\n }\n\n var summ = dx - 11;\n var left = 0;\n var week_template = document.createElement(\"div\");\n var dummy_date = this.date.week_start(scheduler._currentDate());\n\n this._process_ignores(dummy_date, 7, \"day\", 1);\n\n var scales_count = 7 - (this._ignores_detected || 0);\n var real_count = 0;\n\n for (var i = 0; i < 7; i++) {\n if (!(this._ignores && this._ignores[i])) {\n this._cols[i] = Math.floor(summ / (scales_count - real_count));\n\n this._render_x_header(i, left, dummy_date, week_template);\n\n summ -= this._cols[i];\n left += this._cols[i];\n real_count++;\n }\n\n dummy_date = this.date.add(dummy_date, 1, \"day\");\n }\n\n week_template.lastChild.className += \" dhx_scale_bar_last\";\n\n for (var i = 0; i < week_template.childNodes.length; i++) {\n this._waiAria.yearHeadCell(week_template.childNodes[i]);\n }\n\n var sd = this.date[this._mode + \"_start\"](this.date.copy(this._date));\n var ssd = sd;\n var d = null;\n\n for (var i = 0; i < c.year_y; i++) {\n for (var j = 0; j < c.year_x; j++) {\n d = document.createElement(\"div\");\n d.className = \"dhx_year_box\";\n d.style.cssText = \"position:absolute;\";\n d.setAttribute(\"date\", this._helpers.formatDate(sd));\n d.innerHTML = \"<div class='dhx_year_month'></div><div class='dhx_year_grid'><div class='dhx_year_week'>\" + week_template.innerHTML + \"</div><div class='dhx_year_body'></div></div>\";\n var header = d.querySelector(\".dhx_year_month\");\n var grid = d.querySelector(\".dhx_year_grid\");\n var weekHeader = d.querySelector(\".dhx_year_week\");\n var body = d.querySelector(\".dhx_year_body\");\n var headerId = scheduler.uid();\n\n this._waiAria.yearHeader(header, headerId);\n\n this._waiAria.yearGrid(grid, headerId);\n\n header.innerHTML = this.templates.year_month(sd);\n var dd = this.date.week_start(sd);\n\n this._reset_month_scale(body, sd, dd, 6);\n\n var days = body.querySelectorAll(\"td\");\n\n for (var day = 0; day < days.length; day++) {\n this._waiAria.yearDayCell(days[day]);\n }\n\n b.appendChild(d);\n weekHeader.style.height = weekHeader.childNodes[0].offsetHeight + \"px\"; // dhx_year_week should have height property so that day dates would get correct position. dhx_year_week height = height of it's child (with the day name)\n\n var dt = Math.round((dy - 190) / 2);\n d.style.marginTop = dt + \"px\";\n this.set_xy(d, dx - 10, dy - dt - 10, dx * j + 5, dy * i + 5 + scheduler.xy.year_top);\n week_starts[i * c.year_x + j] = (sd.getDay() - (this.config.start_on_monday ? 1 : 0) + 7) % 7;\n sd = this.date.add(sd, 1, \"month\");\n }\n }\n\n var dateElement = this._getNavDateElement();\n\n if (dateElement) {\n dateElement.innerHTML = this.templates[this._mode + \"_date\"](ssd, sd, this._mode);\n }\n\n this.week_starts = week_starts;\n week_starts._month = ssd.getMonth();\n this._min_date = ssd;\n this._max_date = sd;\n };\n\n var getActionData = scheduler.getActionData;\n\n scheduler.getActionData = function (n_ev) {\n if (!is_year_mode()) return getActionData.apply(scheduler, arguments);\n var trg = n_ev.target;\n\n var date = scheduler._get_year_month_date(trg);\n\n var day = scheduler._get_year_month_cell(trg);\n\n var pos = scheduler._get_year_day_indexes(day);\n\n if (pos && date) {\n date = scheduler.date.add(date, pos.week, \"week\");\n date = scheduler.date.add(date, pos.day, \"day\");\n } else {\n date = null;\n }\n\n return {\n date: date,\n section: null\n };\n };\n\n scheduler._get_year_day_indexes = function (targetCell) {\n var month = scheduler._get_year_el_node(targetCell, this._locate_year_month_table);\n\n if (!month) return null;\n var week = 0,\n day = 0;\n\n for (var week = 0, weeks = month.rows.length; week < weeks; week++) {\n var w = month.rows[week].getElementsByTagName(\"td\");\n\n for (var day = 0, days = w.length; day < days; day++) {\n if (w[day] == targetCell) break;\n }\n\n if (day < days) break;\n }\n\n if (week < weeks) return {\n day: day,\n week: week\n };else return null;\n };\n\n scheduler._get_year_month_date = function (node) {\n var node = scheduler._get_year_el_node(node, scheduler._locate_year_month_root);\n\n if (!node) return null;\n var date = node.getAttribute(\"data-year-date\");\n if (!date) return null;\n return scheduler.date.week_start(scheduler.date.month_start(scheduler.templates.parse_date(date)));\n };\n\n scheduler._locate_year_month_day = function (n) {\n return scheduler._getClassName(n).indexOf(\"dhx_year_event\") != -1 && n.hasAttribute && n.hasAttribute(\"data-year-date\");\n };\n\n var locateEvent = scheduler._locate_event;\n\n scheduler._locate_event = function (node) {\n var id = locateEvent.apply(scheduler, arguments);\n\n if (!id) {\n var day = scheduler._get_year_el_node(node, scheduler._locate_year_month_day);\n\n if (!day || !day.hasAttribute(\"data-year-date\")) return null;\n var dat = scheduler.templates.parse_date(day.getAttribute(\"data-year-date\"));\n var evs = scheduler.getEvents(dat, scheduler.date.add(dat, 1, \"day\"));\n if (!evs.length) return null; //can be multiple events in the cell, return any single one\n\n id = evs[0].id;\n }\n\n return id;\n };\n\n scheduler._locate_year_month_cell = function (n) {\n return n.nodeName.toLowerCase() == \"td\";\n };\n\n scheduler._locate_year_month_table = function (n) {\n return n.nodeName.toLowerCase() == \"table\";\n };\n\n scheduler._locate_year_month_root = function (n) {\n return n.hasAttribute && n.hasAttribute(\"data-year-date\");\n };\n\n scheduler._get_year_month_cell = function (node) {\n return this._get_year_el_node(node, this._locate_year_month_cell);\n };\n\n scheduler._get_year_month_table = function (node) {\n return this._get_year_el_node(node, this._locate_year_month_table);\n };\n\n scheduler._get_year_month_root = function (node) {\n return this._get_year_el_node(this._get_year_month_table(node), this._locate_year_month_root);\n };\n\n scheduler._get_year_el_node = function (node, condition) {\n while (node && !condition(node)) {\n node = node.parentNode;\n }\n\n return node;\n };\n\n scheduler.attachEvent(\"onDestroy\", function () {\n scheduler._hideToolTip();\n });\n}"],"sourceRoot":""}
|