primevue 2.4.2 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/Accordion.vue +8 -1
- package/accordion/accordion.common.js +9 -3
- package/accordion/accordion.umd.js +9 -3
- package/accordion/accordion.umd.min.js +1 -1
- package/accordiontab/AccordionTab.vue +2 -2
- package/accordiontab/accordiontab.common.js +9 -4
- package/accordiontab/accordiontab.umd.js +9 -4
- package/accordiontab/accordiontab.umd.min.js +1 -1
- package/autocomplete/AutoComplete.d.ts +1 -0
- package/autocomplete/AutoComplete.vue +8 -0
- package/autocomplete/autocomplete.common.js +21 -3
- package/autocomplete/autocomplete.umd.js +21 -3
- package/autocomplete/autocomplete.umd.min.js +1 -1
- package/avatar/avatar.common.js +1 -1
- package/avatar/avatar.umd.js +1 -1
- package/avatargroup/avatargroup.common.js +1 -1
- package/avatargroup/avatargroup.umd.js +1 -1
- package/badge/badge.common.js +1 -1
- package/badge/badge.umd.js +1 -1
- package/badgedirective/badgedirective.common.js +5 -0
- package/badgedirective/badgedirective.umd.js +5 -0
- package/badgedirective/badgedirective.umd.min.js +1 -1
- package/blockui/BlockUI.vue +6 -16
- package/blockui/blockui.common.js +16 -16
- package/blockui/blockui.umd.js +16 -16
- package/blockui/blockui.umd.min.js +1 -1
- package/breadcrumb/Breadcrumb.d.ts +1 -0
- package/breadcrumb/Breadcrumb.vue +11 -3
- package/breadcrumb/BreadcrumbItem.vue +30 -11
- package/breadcrumb/breadcrumb.common.js +45 -17
- package/breadcrumb/breadcrumb.umd.js +45 -17
- package/breadcrumb/breadcrumb.umd.min.js +1 -1
- package/breadcrumb/breadcrumbitem.common.js +34 -10
- package/breadcrumb/breadcrumbitem.umd.js +34 -10
- package/breadcrumb/breadcrumbitem.umd.min.js +1 -1
- package/button/button.common.js +6 -1
- package/button/button.umd.js +6 -1
- package/button/button.umd.min.js +1 -1
- package/calendar/Calendar.d.ts +5 -0
- package/calendar/Calendar.vue +321 -69
- package/calendar/calendar.common.js +340 -42
- package/calendar/calendar.umd.js +340 -42
- package/calendar/calendar.umd.min.js +1 -1
- package/card/card.common.js +1 -1
- package/card/card.umd.js +1 -1
- package/carousel/Carousel.vue +2 -2
- package/carousel/carousel.common.js +8 -3
- package/carousel/carousel.umd.js +8 -3
- package/carousel/carousel.umd.min.js +1 -1
- package/cascadeselect/CascadeSelect.d.ts +6 -4
- package/cascadeselect/CascadeSelect.vue +3 -1
- package/cascadeselect/cascadeselect.common.js +15 -4
- package/cascadeselect/cascadeselect.umd.js +15 -4
- package/cascadeselect/cascadeselect.umd.min.js +1 -1
- package/cascadeselect/cascadeselectsub.common.js +10 -1
- package/cascadeselect/cascadeselectsub.umd.js +10 -1
- package/cascadeselect/cascadeselectsub.umd.min.js +1 -1
- package/cascadeselect/demo.html +3 -4
- package/chart/Chart.vue +22 -13
- package/chart/chart.common.1.js +12825 -0
- package/chart/chart.common.js +1040 -37026
- package/chart/chart.umd.1.js +12825 -0
- package/chart/chart.umd.js +1040 -37026
- package/chart/chart.umd.min.1.js +7 -0
- package/chart/chart.umd.min.js +1 -278
- package/checkbox/Checkbox.css +1 -0
- package/checkbox/Checkbox.d.ts +2 -0
- package/checkbox/Checkbox.vue +11 -3
- package/checkbox/checkbox.common.js +17 -5
- package/checkbox/checkbox.umd.js +17 -5
- package/checkbox/checkbox.umd.min.js +1 -1
- package/chip/chip.common.js +1 -1
- package/chip/chip.umd.js +1 -1
- package/chips/chips.common.js +1 -1
- package/chips/chips.umd.js +1 -1
- package/colorpicker/colorpicker.common.js +6 -1
- package/colorpicker/colorpicker.umd.js +6 -1
- package/colorpicker/colorpicker.umd.min.js +1 -1
- package/columngroup/columngroup.common.js +1 -1
- package/columngroup/columngroup.umd.js +1 -1
- package/common/Common.css +13 -4
- package/config/primevue.common.js +4 -0
- package/config/primevue.umd.js +4 -0
- package/config/primevue.umd.min.js +1 -1
- package/{confirmationservice → confirmationeventbus}/ConfirmationEventBus.js +3 -3
- package/confirmationeventbus/confirmationeventbus.common.js +1777 -0
- package/confirmationeventbus/confirmationeventbus.umd.js +1787 -0
- package/confirmationeventbus/confirmationeventbus.umd.min.js +1 -0
- package/confirmationeventbus/demo.html +8 -0
- package/confirmationeventbus/index.d.ts +1 -0
- package/confirmationeventbus/index.js +2 -0
- package/confirmationservice/ConfirmationService.js +1 -1
- package/confirmationservice/confirmationservice.common.js +1609 -6
- package/confirmationservice/confirmationservice.umd.js +1609 -6
- package/confirmationservice/confirmationservice.umd.min.js +1 -1
- package/confirmdialog/ConfirmDialog.vue +9 -3
- package/confirmdialog/confirmdialog.common.js +437 -38
- package/confirmdialog/confirmdialog.umd.js +437 -38
- package/confirmdialog/confirmdialog.umd.min.js +1 -1
- package/confirmpopup/ConfirmPopup.d.ts +4 -1
- package/confirmpopup/ConfirmPopup.vue +9 -6
- package/confirmpopup/confirmpopup.common.js +513 -13
- package/confirmpopup/confirmpopup.umd.js +513 -13
- package/confirmpopup/confirmpopup.umd.min.js +1 -1
- package/contextmenu/ContextMenu.d.ts +1 -0
- package/contextmenu/ContextMenu.vue +5 -1
- package/contextmenu/ContextMenuSub.vue +33 -13
- package/contextmenu/contextmenu.common.js +46 -14
- package/contextmenu/contextmenu.umd.js +46 -14
- package/contextmenu/contextmenu.umd.min.js +1 -1
- package/contextmenu/contextmenusub.common.js +36 -8
- package/contextmenu/contextmenusub.umd.js +36 -8
- package/contextmenu/contextmenusub.umd.min.js +1 -1
- package/contextmenu/demo.html +4 -3
- package/datatable/BodyCell.vue +9 -5
- package/datatable/DataTable.d.ts +10 -9
- package/datatable/DataTable.vue +27 -19
- package/datatable/TableBody.vue +18 -5
- package/datatable/bodycell.common.js +21 -9
- package/datatable/bodycell.umd.js +21 -9
- package/datatable/bodycell.umd.min.js +1 -1
- package/datatable/datatable.common.js +1993 -89
- package/datatable/datatable.umd.js +1993 -89
- package/datatable/datatable.umd.min.js +1 -1
- package/datatable/headercheckbox.common.js +1 -1
- package/datatable/headercheckbox.umd.js +1 -1
- package/datatable/rowcheckbox.common.js +1 -1
- package/datatable/rowcheckbox.umd.js +1 -1
- package/datatable/rowradiobutton.common.js +1 -1
- package/datatable/rowradiobutton.umd.js +1 -1
- package/datatable/scrollableview.common.js +7 -2
- package/datatable/scrollableview.umd.js +7 -2
- package/datatable/scrollableview.umd.min.js +1 -1
- package/datatable/tablebody.common.js +44 -15
- package/datatable/tablebody.umd.js +44 -15
- package/datatable/tablebody.umd.min.js +1 -1
- package/datatable/tablefooter.common.js +1 -1
- package/datatable/tablefooter.umd.js +1 -1
- package/datatable/tableheader.common.js +7 -2
- package/datatable/tableheader.umd.js +7 -2
- package/datatable/tableheader.umd.min.js +1 -1
- package/datatable/tableloadingbody.common.js +1 -1
- package/datatable/tableloadingbody.umd.js +1 -1
- package/dataview/DataView.d.ts +2 -2
- package/dataview/DataView.vue +10 -10
- package/dataview/dataview.common.js +1937 -65
- package/dataview/dataview.umd.js +1937 -65
- package/dataview/dataview.umd.min.js +1 -1
- package/dataviewlayoutoptions/dataviewlayoutoptions.common.js +1 -1
- package/dataviewlayoutoptions/dataviewlayoutoptions.umd.js +1 -1
- package/deferredcontent/DeferredContent.vue +1 -7
- package/deferredcontent/deferredcontent.common.js +2 -2
- package/deferredcontent/deferredcontent.umd.js +2 -2
- package/dialog/Dialog.vue +35 -21
- package/dialog/dialog.common.js +42 -18
- package/dialog/dialog.umd.js +42 -18
- package/dialog/dialog.umd.min.js +1 -1
- package/divider/divider.common.js +1 -1
- package/divider/divider.umd.js +1 -1
- package/dock/Dock.d.ts +15 -0
- package/dock/Dock.vue +173 -0
- package/dock/DockSub.vue +132 -0
- package/dock/demo.html +17 -0
- package/dock/dock.common.js +917 -0
- package/dock/dock.umd.js +927 -0
- package/dock/dock.umd.min.js +1 -0
- package/dock/docksub.common.js +428 -0
- package/dock/docksub.umd.js +438 -0
- package/dock/docksub.umd.min.js +1 -0
- package/dock/index.d.ts +1 -0
- package/dock/index.js +2 -0
- package/dock/plugin.js +4 -0
- package/dropdown/Dropdown.d.ts +5 -3
- package/dropdown/Dropdown.vue +31 -5
- package/dropdown/dropdown.common.js +44 -6
- package/dropdown/dropdown.umd.js +44 -6
- package/dropdown/dropdown.umd.min.js +1 -1
- package/editor/editor.common.js +1 -1
- package/editor/editor.umd.js +1 -1
- package/fieldset/fieldset.common.js +6 -1
- package/fieldset/fieldset.umd.js +6 -1
- package/fieldset/fieldset.umd.min.js +1 -1
- package/fileupload/FileUpload.d.ts +2 -0
- package/fileupload/FileUpload.vue +12 -7
- package/fileupload/fileupload.common.js +42 -23
- package/fileupload/fileupload.umd.js +42 -23
- package/fileupload/fileupload.umd.min.js +1 -1
- package/fullcalendar/fullcalendar.common.js +1573 -777
- package/fullcalendar/fullcalendar.umd.js +1573 -777
- package/fullcalendar/fullcalendar.umd.min.js +5 -5
- package/galleria/Galleria.vue +3 -8
- package/galleria/GalleriaContent.vue +9 -0
- package/galleria/galleria.common.js +31 -13
- package/galleria/galleria.umd.js +31 -13
- package/galleria/galleria.umd.min.js +1 -1
- package/galleria/galleriacontent.common.js +18 -4
- package/galleria/galleriacontent.umd.js +18 -4
- package/galleria/galleriacontent.umd.min.js +1 -1
- package/galleria/galleriaitem.common.js +6 -1
- package/galleria/galleriaitem.umd.js +6 -1
- package/galleria/galleriaitem.umd.min.js +1 -1
- package/galleria/galleriathumbnails.common.js +6 -1
- package/galleria/galleriathumbnails.umd.js +6 -1
- package/galleria/galleriathumbnails.umd.min.js +1 -1
- package/imagepreview/ImagePreview.d.ts +10 -0
- package/imagepreview/ImagePreview.vue +205 -0
- package/imagepreview/demo.html +17 -0
- package/imagepreview/imagepreview.common.js +4083 -0
- package/imagepreview/imagepreview.umd.js +4093 -0
- package/imagepreview/imagepreview.umd.min.js +1 -0
- package/imagepreview/index.d.ts +1 -0
- package/imagepreview/index.js +2 -0
- package/imagepreview/plugin.js +4 -0
- package/inlinemessage/inlinemessage.common.js +1 -1
- package/inlinemessage/inlinemessage.umd.js +1 -1
- package/inplace/inplace.common.js +7 -2
- package/inplace/inplace.umd.js +7 -2
- package/inplace/inplace.umd.min.js +1 -1
- package/inputmask/InputMask.vue +7 -5
- package/inputmask/inputmask.common.js +19 -6
- package/inputmask/inputmask.umd.js +19 -6
- package/inputmask/inputmask.umd.min.js +1 -1
- package/inputnumber/InputNumber.vue +183 -62
- package/inputnumber/inputnumber.common.js +228 -104
- package/inputnumber/inputnumber.umd.js +228 -104
- package/inputnumber/inputnumber.umd.min.js +1 -1
- package/inputswitch/InputSwitch.d.ts +2 -0
- package/inputswitch/InputSwitch.vue +15 -3
- package/inputswitch/inputswitch.common.js +17 -5
- package/inputswitch/inputswitch.umd.js +17 -5
- package/inputswitch/inputswitch.umd.min.js +1 -1
- package/inputtext/inputtext.common.js +5 -1
- package/inputtext/inputtext.umd.js +5 -1
- package/inputtext/inputtext.umd.min.js +1 -1
- package/knob/knob.common.js +1 -1
- package/knob/knob.umd.js +1 -1
- package/listbox/Listbox.d.ts +3 -3
- package/listbox/listbox.common.js +10 -1
- package/listbox/listbox.umd.js +10 -1
- package/listbox/listbox.umd.min.js +1 -1
- package/megamenu/MegaMenu.d.ts +6 -1
- package/megamenu/MegaMenu.vue +51 -22
- package/megamenu/megamenu.common.js +52 -10
- package/megamenu/megamenu.umd.js +52 -10
- package/megamenu/megamenu.umd.min.js +1 -1
- package/menu/Menu.d.ts +1 -0
- package/menu/Menu.vue +11 -4
- package/menu/Menuitem.vue +25 -11
- package/menu/menu.common.js +46 -17
- package/menu/menu.umd.js +46 -17
- package/menu/menu.umd.min.js +1 -1
- package/menu/menuitem.common.js +33 -11
- package/menu/menuitem.umd.js +33 -11
- package/menu/menuitem.umd.min.js +1 -1
- package/menubar/Menubar.d.ts +1 -0
- package/menubar/Menubar.vue +5 -1
- package/menubar/MenubarSub.vue +34 -14
- package/menubar/menubar.common.js +46 -14
- package/menubar/menubar.umd.js +46 -14
- package/menubar/menubar.umd.min.js +1 -1
- package/menubar/menubarsub.common.js +36 -8
- package/menubar/menubarsub.umd.js +36 -8
- package/menubar/menubarsub.umd.min.js +1 -1
- package/message/Message.d.ts +1 -0
- package/message/Message.vue +5 -1
- package/message/message.common.js +12 -3
- package/message/message.umd.js +12 -3
- package/message/message.umd.min.js +1 -1
- package/multiselect/MultiSelect.d.ts +4 -3
- package/multiselect/MultiSelect.vue +8 -1
- package/multiselect/multiselect.common.js +20 -5
- package/multiselect/multiselect.umd.js +20 -5
- package/multiselect/multiselect.umd.min.js +1 -1
- package/orderlist/OrderList.d.ts +2 -0
- package/orderlist/OrderList.vue +2 -0
- package/orderlist/orderlist.common.js +15 -4
- package/orderlist/orderlist.umd.js +15 -4
- package/orderlist/orderlist.umd.min.js +1 -1
- package/organizationchart/organizationchart.common.js +11 -2
- package/organizationchart/organizationchart.umd.js +11 -2
- package/organizationchart/organizationchart.umd.min.js +1 -1
- package/organizationchart/organizationchartnode.common.js +6 -1
- package/organizationchart/organizationchartnode.umd.js +6 -1
- package/organizationchart/organizationchartnode.umd.min.js +1 -1
- package/overlaypanel/overlaypanel.common.js +6 -1
- package/overlaypanel/overlaypanel.umd.js +6 -1
- package/overlaypanel/overlaypanel.umd.min.js +1 -1
- package/package.json +5 -1
- package/paginator/CurrentPageReport.vue +6 -2
- package/paginator/JumpToPageDropdown.vue +33 -0
- package/paginator/JumpToPageInput.vue +25 -0
- package/paginator/Paginator.d.ts +2 -2
- package/paginator/Paginator.vue +24 -11
- package/paginator/RowsPerPageDropdown.vue +3 -2
- package/paginator/currentpagereport.common.js +7 -3
- package/paginator/currentpagereport.umd.js +7 -3
- package/paginator/currentpagereport.umd.min.js +1 -1
- package/paginator/demo.html +3 -3
- package/paginator/firstpagelink.common.js +6 -1
- package/paginator/firstpagelink.umd.js +6 -1
- package/paginator/firstpagelink.umd.min.js +1 -1
- package/paginator/jumptopagedropdown.common.js +6476 -0
- package/paginator/jumptopagedropdown.umd.js +6486 -0
- package/paginator/jumptopagedropdown.umd.min.js +1 -0
- package/paginator/jumptopageinput.common.js +7421 -0
- package/paginator/jumptopageinput.umd.js +7431 -0
- package/paginator/jumptopageinput.umd.min.js +1 -0
- package/paginator/lastpagelink.common.js +6 -1
- package/paginator/lastpagelink.umd.js +6 -1
- package/paginator/lastpagelink.umd.min.js +1 -1
- package/paginator/nextpagelink.common.js +6 -1
- package/paginator/nextpagelink.umd.js +6 -1
- package/paginator/nextpagelink.umd.min.js +1 -1
- package/paginator/pagelinks.common.js +6 -1
- package/paginator/pagelinks.umd.js +6 -1
- package/paginator/pagelinks.umd.min.js +1 -1
- package/paginator/paginator.common.js +2264 -125
- package/paginator/paginator.umd.js +2264 -125
- package/paginator/paginator.umd.min.js +1 -1
- package/paginator/prevpagelink.common.js +6 -1
- package/paginator/prevpagelink.umd.js +6 -1
- package/paginator/prevpagelink.umd.min.js +1 -1
- package/paginator/rowsperpagedropdown.common.js +52 -13
- package/paginator/rowsperpagedropdown.umd.js +52 -13
- package/paginator/rowsperpagedropdown.umd.min.js +1 -1
- package/panel/Panel.d.ts +1 -0
- package/panel/Panel.vue +1 -1
- package/panel/panel.common.js +7 -2
- package/panel/panel.umd.js +7 -2
- package/panel/panel.umd.min.js +1 -1
- package/panelmenu/PanelMenu.d.ts +1 -0
- package/panelmenu/PanelMenu.vue +32 -6
- package/panelmenu/PanelMenuSub.vue +32 -13
- package/panelmenu/panelmenu.common.js +69 -16
- package/panelmenu/panelmenu.umd.js +69 -16
- package/panelmenu/panelmenu.umd.min.js +1 -1
- package/panelmenu/panelmenusub.common.js +29 -7
- package/panelmenu/panelmenusub.umd.js +29 -7
- package/panelmenu/panelmenusub.umd.min.js +1 -1
- package/password/password.common.js +11 -2
- package/password/password.umd.js +11 -2
- package/password/password.umd.min.js +1 -1
- package/picklist/PickList.d.ts +8 -0
- package/picklist/PickList.vue +13 -4
- package/picklist/picklist.common.js +22 -4
- package/picklist/picklist.umd.js +22 -4
- package/picklist/picklist.umd.min.js +1 -1
- package/progressbar/ProgressBar.vue +20 -13
- package/progressbar/progressbar.common.js +11 -6
- package/progressbar/progressbar.umd.js +11 -6
- package/progressbar/progressbar.umd.min.js +1 -1
- package/progressspinner/progressspinner.common.js +1 -1
- package/progressspinner/progressspinner.umd.js +1 -1
- package/radiobutton/radiobutton.common.js +5 -1
- package/radiobutton/radiobutton.umd.js +5 -1
- package/radiobutton/radiobutton.umd.min.js +1 -1
- package/rating/Rating.vue +1 -1
- package/rating/rating.common.js +3 -3
- package/rating/rating.umd.js +3 -3
- package/rating/rating.umd.min.js +1 -1
- package/resources/primevue.css +15 -4
- package/resources/primevue.min.css +1 -1
- package/resources/themes/arya-blue/theme.css +503 -83
- package/resources/themes/arya-green/theme.css +503 -83
- package/resources/themes/arya-orange/theme.css +503 -83
- package/resources/themes/arya-purple/theme.css +503 -83
- package/resources/themes/bootstrap4-dark-blue/theme.css +500 -87
- package/resources/themes/bootstrap4-dark-purple/theme.css +500 -87
- package/resources/themes/bootstrap4-light-blue/theme.css +490 -77
- package/resources/themes/bootstrap4-light-purple/theme.css +490 -77
- package/resources/themes/fluent-light/theme.css +497 -77
- package/resources/themes/lara-dark-blue/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/lara-dark-blue/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/lara-dark-blue/fonts/Inter-Light.woff +0 -0
- package/resources/themes/lara-dark-blue/fonts/Inter-Light.woff2 +0 -0
- package/resources/themes/lara-dark-blue/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/lara-dark-blue/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/lara-dark-blue/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/lara-dark-blue/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/lara-dark-blue/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/lara-dark-blue/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/lara-dark-blue/theme.css +5418 -0
- package/resources/themes/lara-dark-indigo/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/lara-dark-indigo/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/lara-dark-indigo/fonts/Inter-Light.woff +0 -0
- package/resources/themes/lara-dark-indigo/fonts/Inter-Light.woff2 +0 -0
- package/resources/themes/lara-dark-indigo/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/lara-dark-indigo/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/lara-dark-indigo/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/lara-dark-indigo/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/lara-dark-indigo/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/lara-dark-indigo/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/lara-dark-indigo/theme.css +5418 -0
- package/resources/themes/lara-dark-purple/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/lara-dark-purple/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/lara-dark-purple/fonts/Inter-Light.woff +0 -0
- package/resources/themes/lara-dark-purple/fonts/Inter-Light.woff2 +0 -0
- package/resources/themes/lara-dark-purple/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/lara-dark-purple/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/lara-dark-purple/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/lara-dark-purple/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/lara-dark-purple/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/lara-dark-purple/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/lara-dark-purple/theme.css +5418 -0
- package/resources/themes/lara-dark-teal/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/lara-dark-teal/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/lara-dark-teal/fonts/Inter-Light.woff +0 -0
- package/resources/themes/lara-dark-teal/fonts/Inter-Light.woff2 +0 -0
- package/resources/themes/lara-dark-teal/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/lara-dark-teal/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/lara-dark-teal/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/lara-dark-teal/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/lara-dark-teal/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/lara-dark-teal/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/lara-dark-teal/theme.css +5418 -0
- package/resources/themes/lara-light-blue/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/lara-light-blue/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/lara-light-blue/fonts/Inter-Light.woff +0 -0
- package/resources/themes/lara-light-blue/fonts/Inter-Light.woff2 +0 -0
- package/resources/themes/lara-light-blue/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/lara-light-blue/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/lara-light-blue/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/lara-light-blue/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/lara-light-blue/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/lara-light-blue/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/lara-light-blue/theme.css +5418 -0
- package/resources/themes/lara-light-indigo/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/lara-light-indigo/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/lara-light-indigo/fonts/Inter-Light.woff +0 -0
- package/resources/themes/lara-light-indigo/fonts/Inter-Light.woff2 +0 -0
- package/resources/themes/lara-light-indigo/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/lara-light-indigo/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/lara-light-indigo/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/lara-light-indigo/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/lara-light-indigo/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/lara-light-indigo/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/lara-light-indigo/theme.css +5418 -0
- package/resources/themes/lara-light-purple/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/lara-light-purple/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/lara-light-purple/fonts/Inter-Light.woff +0 -0
- package/resources/themes/lara-light-purple/fonts/Inter-Light.woff2 +0 -0
- package/resources/themes/lara-light-purple/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/lara-light-purple/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/lara-light-purple/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/lara-light-purple/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/lara-light-purple/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/lara-light-purple/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/lara-light-purple/theme.css +5418 -0
- package/resources/themes/lara-light-teal/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/lara-light-teal/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/lara-light-teal/fonts/Inter-Light.woff +0 -0
- package/resources/themes/lara-light-teal/fonts/Inter-Light.woff2 +0 -0
- package/resources/themes/lara-light-teal/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/lara-light-teal/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/lara-light-teal/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/lara-light-teal/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/lara-light-teal/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/lara-light-teal/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/lara-light-teal/theme.css +5418 -0
- package/resources/themes/luna-amber/theme.css +500 -87
- package/resources/themes/luna-blue/theme.css +500 -87
- package/resources/themes/luna-green/theme.css +500 -87
- package/resources/themes/luna-pink/theme.css +500 -87
- package/resources/themes/md-dark-deeppurple/theme.css +801 -128
- package/resources/themes/md-dark-indigo/theme.css +801 -128
- package/resources/themes/md-light-deeppurple/theme.css +791 -118
- package/resources/themes/md-light-indigo/theme.css +791 -118
- package/resources/themes/mdc-dark-deeppurple/theme.css +1087 -414
- package/resources/themes/mdc-dark-indigo/theme.css +1035 -362
- package/resources/themes/mdc-light-deeppurple/theme.css +791 -118
- package/resources/themes/mdc-light-indigo/theme.css +791 -118
- package/resources/themes/nova/theme.css +490 -77
- package/resources/themes/nova-accent/theme.css +490 -77
- package/resources/themes/nova-alt/theme.css +490 -77
- package/resources/themes/nova-vue/theme.css +490 -77
- package/resources/themes/rhea/theme.css +490 -77
- package/resources/themes/saga-blue/theme.css +493 -73
- package/resources/themes/saga-green/theme.css +493 -73
- package/resources/themes/saga-orange/theme.css +493 -73
- package/resources/themes/saga-purple/theme.css +493 -73
- package/resources/themes/tailwind-light/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Light.woff +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Light.woff2 +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/tailwind-light/theme.css +5493 -0
- package/resources/themes/vela-blue/theme.css +503 -83
- package/resources/themes/vela-green/theme.css +503 -83
- package/resources/themes/vela-orange/theme.css +503 -83
- package/resources/themes/vela-purple/theme.css +503 -83
- package/ripple/ripple.common.js +5 -0
- package/ripple/ripple.umd.js +5 -0
- package/ripple/ripple.umd.min.js +1 -1
- package/row/row.common.js +1 -1
- package/row/row.umd.js +1 -1
- package/scrollpanel/scrollpanel.common.js +6 -1
- package/scrollpanel/scrollpanel.umd.js +6 -1
- package/scrollpanel/scrollpanel.umd.min.js +1 -1
- package/scrolltop/scrolltop.common.js +6 -1
- package/scrolltop/scrolltop.umd.js +6 -1
- package/scrolltop/scrolltop.umd.min.js +1 -1
- package/selectbutton/SelectButton.d.ts +3 -3
- package/selectbutton/SelectButton.vue +6 -1
- package/selectbutton/selectbutton.common.js +17 -3
- package/selectbutton/selectbutton.umd.js +17 -3
- package/selectbutton/selectbutton.umd.min.js +1 -1
- package/sidebar/Sidebar.vue +3 -16
- package/sidebar/sidebar.common.js +15 -15
- package/sidebar/sidebar.umd.js +15 -15
- package/sidebar/sidebar.umd.min.js +1 -1
- package/skeleton/skeleton.common.js +1 -1
- package/skeleton/skeleton.umd.js +1 -1
- package/slider/slider.common.js +6 -1
- package/slider/slider.umd.js +6 -1
- package/slider/slider.umd.min.js +1 -1
- package/speeddial/SpeedDial.d.ts +31 -0
- package/speeddial/SpeedDial.vue +341 -0
- package/speeddial/demo.html +17 -0
- package/speeddial/index.d.ts +1 -0
- package/speeddial/index.js +2 -0
- package/speeddial/plugin.js +4 -0
- package/speeddial/speeddial.common.js +4741 -0
- package/speeddial/speeddial.umd.js +4751 -0
- package/speeddial/speeddial.umd.min.js +1 -0
- package/splitbutton/splitbutton.common.js +51 -22
- package/splitbutton/splitbutton.umd.js +51 -22
- package/splitbutton/splitbutton.umd.min.js +1 -1
- package/splitter/splitter.common.js +5 -0
- package/splitter/splitter.umd.js +5 -0
- package/splitter/splitter.umd.min.js +1 -1
- package/steps/Steps.d.ts +1 -0
- package/steps/Steps.vue +30 -8
- package/steps/steps.common.js +33 -6
- package/steps/steps.umd.js +33 -6
- package/steps/steps.umd.min.js +1 -1
- package/styleclass/StyleClass.d.ts +5 -0
- package/styleclass/StyleClass.js +179 -0
- package/styleclass/demo.html +8 -0
- package/styleclass/index.d.ts +1 -0
- package/styleclass/index.js +2 -0
- package/styleclass/plugin.js +4 -0
- package/styleclass/styleclass.common.js +3576 -0
- package/styleclass/styleclass.umd.js +3586 -0
- package/styleclass/styleclass.umd.min.js +1 -0
- package/tabmenu/TabMenu.d.ts +1 -0
- package/tabmenu/TabMenu.vue +44 -11
- package/tabmenu/tabmenu.common.js +171 -9
- package/tabmenu/tabmenu.umd.js +171 -9
- package/tabmenu/tabmenu.umd.min.js +1 -1
- package/tabpanel/tabpanel.common.js +1 -1
- package/tabpanel/tabpanel.umd.js +1 -1
- package/tabview/TabView.d.ts +1 -0
- package/tabview/TabView.vue +111 -11
- package/tabview/tabview.common.js +86 -5
- package/tabview/tabview.umd.js +86 -5
- package/tabview/tabview.umd.min.js +1 -1
- package/tag/tag.common.js +1 -1
- package/tag/tag.umd.js +1 -1
- package/terminal/terminal.common.js +1 -1
- package/terminal/terminal.umd.js +1 -1
- package/textarea/textarea.common.js +5 -1
- package/textarea/textarea.umd.js +5 -1
- package/textarea/textarea.umd.min.js +1 -1
- package/tieredmenu/TieredMenu.d.ts +1 -0
- package/tieredmenu/TieredMenu.vue +5 -1
- package/tieredmenu/TieredMenuSub.vue +30 -14
- package/tieredmenu/demo.html +4 -3
- package/tieredmenu/tieredmenu.common.js +41 -13
- package/tieredmenu/tieredmenu.umd.js +41 -13
- package/tieredmenu/tieredmenu.umd.min.js +1 -1
- package/tieredmenu/tieredmenusub.common.js +31 -7
- package/tieredmenu/tieredmenusub.umd.js +31 -7
- package/tieredmenu/tieredmenusub.umd.min.js +1 -1
- package/timeline/timeline.common.js +5 -1
- package/timeline/timeline.umd.js +5 -1
- package/timeline/timeline.umd.min.js +1 -1
- package/toast/Toast.d.ts +7 -1
- package/toast/Toast.vue +51 -4
- package/toast/ToastMessage.vue +44 -10
- package/toast/toast.common.js +103 -14
- package/toast/toast.umd.js +103 -14
- package/toast/toast.umd.min.js +1 -1
- package/toast/toastmessage.common.js +44 -7
- package/toast/toastmessage.umd.js +44 -7
- package/toast/toastmessage.umd.min.js +1 -1
- package/togglebutton/togglebutton.common.js +6 -1
- package/togglebutton/togglebutton.umd.js +6 -1
- package/togglebutton/togglebutton.umd.min.js +1 -1
- package/toolbar/Toolbar.d.ts +1 -1
- package/toolbar/Toolbar.vue +2 -2
- package/toolbar/toolbar.common.js +3 -3
- package/toolbar/toolbar.umd.js +3 -3
- package/toolbar/toolbar.umd.min.js +1 -1
- package/tooltip/Tooltip.css +1 -0
- package/tooltip/Tooltip.js +59 -6
- package/tooltip/tooltip.common.js +1763 -70
- package/tooltip/tooltip.umd.js +1763 -70
- package/tooltip/tooltip.umd.min.js +1 -1
- package/tree/TreeNode.vue +5 -1
- package/tree/tree.common.js +23 -8
- package/tree/tree.umd.js +23 -8
- package/tree/tree.umd.min.js +1 -1
- package/tree/treenode.common.js +16 -3
- package/tree/treenode.umd.js +16 -3
- package/tree/treenode.umd.min.js +1 -1
- package/treetable/TreeTable.d.ts +2 -2
- package/treetable/TreeTable.vue +8 -8
- package/treetable/treetable.common.js +1900 -90
- package/treetable/treetable.umd.js +1900 -90
- package/treetable/treetable.umd.min.js +1 -1
- package/treetable/treetablerow.common.js +11 -1
- package/treetable/treetablerow.umd.js +11 -1
- package/treetable/treetablerow.umd.min.js +1 -1
- package/treetable/treetablerowloader.common.js +12 -1
- package/treetable/treetablerowloader.umd.js +12 -1
- package/treetable/treetablerowloader.umd.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.common.js +1 -1
- package/tristatecheckbox/tristatecheckbox.umd.js +1 -1
- package/utils/DomHandler.js +5 -0
- package/utils/EventBus.js +33 -0
- package/utils/connectedoverlayscrollhandler.common.js +5 -0
- package/utils/connectedoverlayscrollhandler.umd.js +5 -0
- package/utils/connectedoverlayscrollhandler.umd.min.js +1 -1
- package/utils/domhandler.common.js +5 -0
- package/utils/domhandler.umd.js +5 -0
- package/utils/domhandler.umd.min.js +1 -1
- package/utils/eventbus.common.js +1774 -0
- package/utils/eventbus.umd.js +1784 -0
- package/utils/eventbus.umd.min.js +1 -0
- package/utils/filterutils.common.js +4 -0
- package/utils/filterutils.umd.js +4 -0
- package/utils/filterutils.umd.min.js +1 -1
- package/utils/objectutils.common.js +4 -0
- package/utils/objectutils.umd.js +4 -0
- package/utils/objectutils.umd.min.js +1 -1
- package/vetur-attributes.json +236 -16
- package/vetur-tags.json +88 -18
- package/web-types.json +2042 -1266
- package/confirmationservice/confirmationeventbus.common.js +0 -174
- package/confirmationservice/confirmationeventbus.umd.js +0 -184
- package/confirmationservice/confirmationeventbus.umd.min.js +0 -1
|
@@ -566,7 +566,7 @@ exports = module.exports = __webpack_require__("2350")(false);
|
|
|
566
566
|
|
|
567
567
|
|
|
568
568
|
// module
|
|
569
|
-
exports.push([module.i, ".fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.fc{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{-webkit-box-sizing:border-box;box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{vertical-align:top;padding:0}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\") format(\"truetype\");font-weight:400;font-style:normal}.fc-icon{display:inline-block;width:1em;height:1em;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:fcicons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fc-icon-chevron-left:before{content:\"\\E900\"}.fc-icon-chevron-right:before{content:\"\\E901\"}.fc-icon-chevrons-left:before{content:\"\\E902\"}.fc-icon-chevrons-right:before{content:\"\\E903\"}.fc-icon-minus-square:before{content:\"\\E904\"}.fc-icon-plus-square:before{content:\"\\E905\"}.fc-icon-x:before{content:\"\\E906\"}.fc .fc-button{border-radius:0;overflow:visible;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button::-moz-focus-inner{padding:0;border-style:none}.fc .fc-button{display:inline-block;font-weight:400;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(44,62,80,.25);box-shadow:0 0 0 .2rem rgba(44,62,80,.25)}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color,#2c3e50);border-color:#2c3e50;border-color:var(--fc-button-border-color,#2c3e50)}.fc .fc-button-primary:hover{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#1e2b37;background-color:var(--fc-button-hover-bg-color,#1e2b37);border-color:#1a252f;border-color:var(--fc-button-hover-border-color,#1a252f)}.fc .fc-button-primary:disabled{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color,#2c3e50);border-color:#2c3e50;border-color:var(--fc-button-border-color,#2c3e50)}.fc .fc-button-primary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#1a252f;background-color:var(--fc-button-active-bg-color,#1a252f);border-color:#151e27;border-color:var(--fc-button-active-border-color,#151e27)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc .fc-button-group{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.fc .fc-button-group>.fc-button{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.fc .fc-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{position:absolute;top:0;right:0;left:0;bottom:0}.fc .fc-scroller-harness{position:relative;overflow:hidden;direction:ltr}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{width:100%;table-layout:fixed}.fc .fc-scrollgrid table{border-top-style:hidden;border-left-style:hidden;border-right-style:hidden}.fc .fc-scrollgrid{border-collapse:separate;border-right-width:0;border-bottom-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section>td,.fc .fc-scrollgrid-section table{height:1px}.fc .fc-scrollgrid-section-liquid{height:auto}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-top-width:0;border-left-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:#fff;background:var(--fc-page-bg-color,#fff);position:sticky;z-index:2}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{position:absolute;top:0;right:0;bottom:0;left:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{position:absolute;top:0;left:0;right:0;bottom:0}.fc .fc-non-business{background:hsla(0,0%,84.3%,.3);background:var(--fc-non-business-color,hsla(0,0%,84.3%,.3))}.fc .fc-bg-event{background:#8fdf82;background:var(--fc-bg-event-color,#8fdf82);opacity:.3;opacity:var(--fc-bg-event-opacity,.3)}.fc .fc-bg-event .fc-event-title{margin:.5em;font-size:.85em;font-size:var(--fc-small-font-size,.85em);font-style:italic}.fc .fc-highlight{background:rgba(188,232,241,.3);background:var(--fc-highlight-color,rgba(188,232,241,.3))}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:hsla(0,0%,81.6%,.3);background:var(--fc-neutral-bg-color,hsla(0,0%,81.6%,.3))}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{-webkit-box-shadow:0 2px 7px rgba(0,0,0,.3);box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{border-radius:4px;border-radius:calc(var(--fc-event-resizer-dot-total-width, 8px)/2);border-width:1px;border-width:var(--fc-event-resizer-dot-border-width,1px);width:8px;width:var(--fc-event-resizer-dot-total-width,8px);height:8px;height:var(--fc-event-resizer-dot-total-width,8px);border-style:solid;border-color:inherit;background:#fff;background:var(--fc-page-bg-color,#fff)}.fc-event-selected .fc-event-resizer:before{content:\"\";position:absolute;top:-20px;left:-20px;right:-20px;bottom:-20px}.fc-event-selected{-webkit-box-shadow:0 2px 5px rgba(0,0,0,.2);box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before{content:\"\";position:absolute;z-index:3;top:0;left:0;right:0;bottom:0}.fc-event-selected:after{content:\"\";background:rgba(0,0,0,.25);background:var(--fc-event-selected-overlay-color,rgba(0,0,0,.25));position:absolute;z-index:1;top:-1px;left:-1px;right:-1px;bottom:-1px}.fc-h-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color,#3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color,#3788d8)}.fc-h-event .fc-event-main{color:#fff;color:var(--fc-event-text-color,#fff)}.fc-h-event .fc-event-main-frame{display:-webkit-box;display:-ms-flexbox;display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;vertical-align:top;left:0;right:0;max-width:100%;overflow:hidden}.fc-h-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{top:0;bottom:0;width:8px;width:var(--fc-event-resizer-thickness,8px)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:-4px;left:calc(var(--fc-event-resizer-thickness, 8px)/-2)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:-4px;right:calc(var(--fc-event-resizer-thickness, 8px)/-2)}.fc-h-event.fc-event-selected .fc-event-resizer{top:50%;margin-top:-4px;margin-top:calc(var(--fc-event-resizer-dot-total-width, 8px)/-2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:-4px;left:calc(var(--fc-event-resizer-dot-total-width, 8px)/-2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:-4px;right:calc(var(--fc-event-resizer-dot-total-width, 8px)/-2)}", ""]);
|
|
569
|
+
exports.push([module.i, ".fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.fc{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{-webkit-box-sizing:border-box;box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{vertical-align:top;padding:0}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\") format(\"truetype\");font-weight:400;font-style:normal}.fc-icon{display:inline-block;width:1em;height:1em;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:fcicons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fc-icon-chevron-left:before{content:\"\\E900\"}.fc-icon-chevron-right:before{content:\"\\E901\"}.fc-icon-chevrons-left:before{content:\"\\E902\"}.fc-icon-chevrons-right:before{content:\"\\E903\"}.fc-icon-minus-square:before{content:\"\\E904\"}.fc-icon-plus-square:before{content:\"\\E905\"}.fc-icon-x:before{content:\"\\E906\"}.fc .fc-button{border-radius:0;overflow:visible;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button::-moz-focus-inner{padding:0;border-style:none}.fc .fc-button{display:inline-block;font-weight:400;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{outline:0;-webkit-box-shadow:0 0 0 .2rem rgba(44,62,80,.25);box-shadow:0 0 0 .2rem rgba(44,62,80,.25)}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color,#2c3e50);border-color:#2c3e50;border-color:var(--fc-button-border-color,#2c3e50)}.fc .fc-button-primary:hover{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#1e2b37;background-color:var(--fc-button-hover-bg-color,#1e2b37);border-color:#1a252f;border-color:var(--fc-button-hover-border-color,#1a252f)}.fc .fc-button-primary:disabled{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color,#2c3e50);border-color:#2c3e50;border-color:var(--fc-button-border-color,#2c3e50)}.fc .fc-button-primary:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#1a252f;background-color:var(--fc-button-active-bg-color,#1a252f);border-color:#151e27;border-color:var(--fc-button-active-border-color,#151e27)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{-webkit-box-shadow:0 0 0 .2rem rgba(76,91,106,.5);box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc .fc-button-group{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.fc .fc-button-group>.fc-button{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.fc .fc-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{position:absolute;top:0;right:0;left:0;bottom:0}.fc .fc-scroller-harness{position:relative;overflow:hidden;direction:ltr}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{width:100%;table-layout:fixed}.fc .fc-scrollgrid table{border-top-style:hidden;border-left-style:hidden;border-right-style:hidden}.fc .fc-scrollgrid{border-collapse:separate;border-right-width:0;border-bottom-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section>td,.fc .fc-scrollgrid-section table{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-top-width:0;border-left-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:#fff;background:var(--fc-page-bg-color,#fff);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{position:absolute;top:0;right:0;bottom:0;left:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{position:absolute;top:0;left:0;right:0;bottom:0}.fc .fc-non-business{background:hsla(0,0%,84.3%,.3);background:var(--fc-non-business-color,hsla(0,0%,84.3%,.3))}.fc .fc-bg-event{background:#8fdf82;background:var(--fc-bg-event-color,#8fdf82);opacity:.3;opacity:var(--fc-bg-event-opacity,.3)}.fc .fc-bg-event .fc-event-title{margin:.5em;font-size:.85em;font-size:var(--fc-small-font-size,.85em);font-style:italic}.fc .fc-highlight{background:rgba(188,232,241,.3);background:var(--fc-highlight-color,rgba(188,232,241,.3))}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:hsla(0,0%,81.6%,.3);background:var(--fc-neutral-bg-color,hsla(0,0%,81.6%,.3))}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{-webkit-box-shadow:0 2px 7px rgba(0,0,0,.3);box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{border-radius:4px;border-radius:calc(var(--fc-event-resizer-dot-total-width, 8px)/2);border-width:1px;border-width:var(--fc-event-resizer-dot-border-width,1px);width:8px;width:var(--fc-event-resizer-dot-total-width,8px);height:8px;height:var(--fc-event-resizer-dot-total-width,8px);border-style:solid;border-color:inherit;background:#fff;background:var(--fc-page-bg-color,#fff)}.fc-event-selected .fc-event-resizer:before{content:\"\";position:absolute;top:-20px;left:-20px;right:-20px;bottom:-20px}.fc-event-selected,.fc-event:focus{-webkit-box-shadow:0 2px 5px rgba(0,0,0,.2);box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{content:\"\";position:absolute;z-index:3;top:0;left:0;right:0;bottom:0}.fc-event-selected:after,.fc-event:focus:after{content:\"\";background:rgba(0,0,0,.25);background:var(--fc-event-selected-overlay-color,rgba(0,0,0,.25));position:absolute;z-index:1;top:-1px;left:-1px;right:-1px;bottom:-1px}.fc-h-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color,#3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color,#3788d8)}.fc-h-event .fc-event-main{color:#fff;color:var(--fc-event-text-color,#fff)}.fc-h-event .fc-event-main-frame{display:-webkit-box;display:-ms-flexbox;display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;vertical-align:top;left:0;right:0;max-width:100%;overflow:hidden}.fc-h-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{top:0;bottom:0;width:8px;width:var(--fc-event-resizer-thickness,8px)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:-4px;left:calc(var(--fc-event-resizer-thickness, 8px)*-0.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:-4px;right:calc(var(--fc-event-resizer-thickness, 8px)*-0.5)}.fc-h-event.fc-event-selected .fc-event-resizer{top:50%;margin-top:-4px;margin-top:calc(var(--fc-event-resizer-dot-total-width, 8px)*-0.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:-4px;left:calc(var(--fc-event-resizer-dot-total-width, 8px)*-0.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:-4px;right:calc(var(--fc-event-resizer-dot-total-width, 8px)*-0.5)}.fc .fc-popover{position:absolute;z-index:9999;-webkit-box-shadow:0 2px 6px rgba(0,0,0,.15);box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc .fc-popover-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;opacity:.65;font-size:1.1em}.fc-theme-standard .fc-popover{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd);background:#fff;background:var(--fc-page-bg-color,#fff)}.fc-theme-standard .fc-popover-header{background:hsla(0,0%,81.6%,.3);background:var(--fc-neutral-bg-color,hsla(0,0%,81.6%,.3))}", ""]);
|
|
570
570
|
|
|
571
571
|
// exports
|
|
572
572
|
|
|
@@ -1902,7 +1902,7 @@ if (typeof window !== 'undefined') {
|
|
|
1902
1902
|
// Indicate to webpack that this file can be concatenated
|
|
1903
1903
|
/* harmony default export */ var setPublicPath = (null);
|
|
1904
1904
|
|
|
1905
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
1905
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"9d50adc0-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/fullcalendar/FullCalendar.vue?vue&type=template&id=351cede2&
|
|
1906
1906
|
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}
|
|
1907
1907
|
var staticRenderFns = []
|
|
1908
1908
|
|
|
@@ -1915,6 +1915,9 @@ var es7_object_get_own_property_descriptors = __webpack_require__("8e6e");
|
|
|
1915
1915
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js
|
|
1916
1916
|
var web_dom_iterable = __webpack_require__("ac6a");
|
|
1917
1917
|
|
|
1918
|
+
// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js
|
|
1919
|
+
var es6_array_iterator = __webpack_require__("cadf");
|
|
1920
|
+
|
|
1918
1921
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js
|
|
1919
1922
|
var es6_object_keys = __webpack_require__("456d");
|
|
1920
1923
|
|
|
@@ -2103,10 +2106,14 @@ function __spreadArrays() {
|
|
|
2103
2106
|
return r;
|
|
2104
2107
|
}
|
|
2105
2108
|
|
|
2106
|
-
function __spreadArray(to, from) {
|
|
2107
|
-
for (var i = 0,
|
|
2108
|
-
|
|
2109
|
-
|
|
2109
|
+
function __spreadArray(to, from, pack) {
|
|
2110
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
2111
|
+
if (ar || !(i in from)) {
|
|
2112
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
2113
|
+
ar[i] = from[i];
|
|
2114
|
+
}
|
|
2115
|
+
}
|
|
2116
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
2110
2117
|
}
|
|
2111
2118
|
|
|
2112
2119
|
function __await(v) {
|
|
@@ -2176,25 +2183,35 @@ function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
|
|
2176
2183
|
}
|
|
2177
2184
|
|
|
2178
2185
|
// CONCATENATED MODULE: ./node_modules/preact/dist/preact.module.js
|
|
2179
|
-
var n,l,u,preact_module_i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)"key"==o?i=l[o]:"ref"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o<arguments.length;o++)u.push(r[o]);if(null!=u&&(f.children=u),"function"==typeof n&&null!=n.defaultProps)for(o in n.defaultProps)void 0===f[o]&&(f[o]=n.defaultProps[o]);return v(n,f,i,t,null)}function v(l,u,i,t,o){var r={type:l,props:u,key:i,ref:t,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++n.__v:o};return null!=n.vnode&&n.vnode(r),r}function h(){return{current:null}}function y(n){return n.children}function p(n,l){this.props=n,this.context=l}function d(n,l){if(null==l)return n.__?d(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?d(n):null}function _(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return _(n)}}function k(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!b.__r++||t!==n.debounceRendering)&&((t=n.debounceRendering)||preact_module_i)(b)}function b(){for(var n;b.__r=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=c({},t)).__v=t.__v+1,I(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?d(t):o,t.__h),T(u,t),t.__e!=o&&_(t)))})}function m(n,l,u,i,t,o,e,c,s,a){var h,p,_,k,b,m,w,A=i&&i.__k||f,P=A.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(k=u.__k[h]=null==(k=l[h])||"boolean"==typeof k?null:"string"==typeof k||"number"==typeof k||"bigint"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(y,{children:k},null,null,null):k.__b>0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p<P;p++){if((_=A[p])&&k.key==_.key&&k.type===_.type){A[p]=void 0;break}_=null}I(n,k,_=_||r,t,o,e,c,s,a),b=k.__e,(p=k.ref)&&_.ref!=p&&(w||(w=[]),_.ref&&w.push(_.ref,null,k),w.push(p,k.__c||b,k)),null!=b?(null==m&&(m=b),"function"==typeof k.type&&null!=k.__k&&k.__k===_.__k?k.__d=s=g(k,s,n):s=x(n,k,_,A,b,s),a||"option"!==u.type?"function"==typeof u.type&&(u.__d=s):n.value=""):s&&_.__e==s&&s.parentNode!=n&&(s=d(_))}for(u.__e=m,h=P;h--;)null!=A[h]&&("function"==typeof u.type&&null!=A[h].__e&&A[h].__e==u.__d&&(u.__d=d(i,h+1)),L(A[h],A[h]));if(w)for(h=0;h<w.length;h++)z(w[h],w[++h],w[++h])}function g(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,l="function"==typeof t.type?g(t,l,u):x(u,t,t,n.__k,t.__e,l));return l}function w(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){w(n,l)}):l.push(n)),l}function x(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function A(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||C(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||C(n,o,l[o],u[o],i)}function P(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||e.test(l)?u:u+"px"}function C(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||P(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||P(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?H:$,o):n.removeEventListener(l,o?H:$,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function $(l){this.l[l.type+!1](n.event?n.event(l):l)}function H(l){this.l[l.type+!0](n.event?n.event(l):l)}function I(l,u,i,t,o,r,f,e,s){var a,v,h,d,_,k,b,g,w,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(s=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=n.__b)&&a(u);try{n:if("function"==typeof P){if(g=u.props,w=(a=P.contextType)&&t[a.__c],x=a?w?w.props.value:a.__:t,i.__c?b=(v=u.__c=i.__c).__=v.__E:("prototype"in P&&P.prototype.render?u.__c=v=new P(g,x):(u.__c=v=new p(g,x),v.constructor=P,v.render=M),w&&w.sub(v),v.props=g,v.state||(v.state={}),v.context=x,v.__n=t,h=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=P.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=c({},v.__s)),c(v.__s,P.getDerivedStateFromProps(g,v.__s))),d=v.props,_=v.state,h)null==P.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&v.__h.push(v.componentDidMount);else{if(null==P.getDerivedStateFromProps&&g!==d&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(g,x),!v.__e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(g,v.__s,x)||u.__v===i.__v){v.props=g,v.state=v.__s,u.__v!==i.__v&&(v.__d=!1),v.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),v.__h.length&&f.push(v);break n}null!=v.componentWillUpdate&&v.componentWillUpdate(g,v.__s,x),null!=v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(d,_,k)})}v.context=x,v.props=g,v.state=v.__s,(a=n.__r)&&a(u),v.__d=!1,v.__v=u,v.__P=l,a=v.render(v.props,v.state,v.context),v.state=v.__s,null!=v.getChildContext&&(t=c(c({},t),v.getChildContext())),h||null==v.getSnapshotBeforeUpdate||(k=v.getSnapshotBeforeUpdate(d,_)),A=null!=a&&a.type===y&&null==a.key?a.props.children:a,m(l,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,s),v.base=u.__e,u.__h=null,v.__h.length&&f.push(v),b&&(v.__E=v.__=null),v.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=j(i.__e,u,i,t,o,r,f,s);(a=n.diffed)&&a(u)}catch(l){u.__v=null,(s||null!=r)&&(u.__e=e,u.__h=!!s,r[r.indexOf(e)]=null),n.__e(l,u,i)}}function T(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function j(n,l,u,i,t,o,e,c){var a,v,h,y,p=u.props,d=l.props,_=l.type,k=0;if("svg"===_&&(t=!0),null!=o)for(;k<o.length;k++)if((a=o[k])&&(a===n||(_?a.localName==_:3==a.nodeType))){n=a,o[k]=null;break}if(null==n){if(null===_)return document.createTextNode(d);n=t?document.createElementNS("http://www.w3.org/2000/svg",_):document.createElement(_,d.is&&d),o=null,c=!1}if(null===_)p===d||c&&n.data===d||(n.data=d);else{if(o=o&&f.slice.call(n.childNodes),v=(p=u.props||r).dangerouslySetInnerHTML,h=d.dangerouslySetInnerHTML,!c){if(null!=o)for(p={},y=0;y<n.attributes.length;y++)p[n.attributes[y].name]=n.attributes[y].value;(h||v)&&(h&&(v&&h.__html==v.__html||h.__html===n.innerHTML)||(n.innerHTML=h&&h.__html||""))}if(A(n,d,p,t,c),h)l.__k=[];else if(k=l.props.children,m(n,Array.isArray(k)?k:[k],l,u,i,t&&"foreignObject"!==_,o,e,n.firstChild,c),null!=o)for(k=o.length;k--;)null!=o[k]&&s(o[k]);c||("value"in d&&void 0!==(k=d.value)&&(k!==n.value||"progress"===_&&!k)&&C(n,"value",k,p.value,!1),"checked"in d&&void 0!==(k=d.checked)&&k!==n.checked&&C(n,"checked",k,p.checked,!1))}return n}function z(l,u,i){try{"function"==typeof l?l(u):l.current=u}catch(l){n.__e(l,i)}}function L(l,u,i){var t,o,r;if(n.unmount&&n.unmount(l),(t=l.ref)&&(t.current&&t.current!==l.__e||z(t,null,u)),i||"function"==typeof l.type||(i=null!=(o=l.__e)),l.__e=l.__d=void 0,null!=(t=l.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(l){n.__e(l,u)}t.base=t.__P=null}if(t=l.__k)for(r=0;r<t.length;r++)t[r]&&L(t[r],u,i);null!=o&&s(o)}function M(n,l,u){return this.constructor(n,u)}function N(l,u,i){var t,o,e;n.__&&n.__(l,u),o=(t="function"==typeof i)?null:i&&i.__k||u.__k,e=[],I(u,l=(!t&&i||u).__k=a(y,null,[l]),o||r,r,void 0!==u.ownerSVGElement,!t&&i?[i]:o?null:u.firstChild?f.slice.call(u.childNodes):null,e,!t&&i?i:o?o.__e:u.firstChild,t),T(e,l)}function O(n,l){N(n,l,O)}function S(n,l,u){var i,t,o,r=arguments,f=c({},n.props);for(o in l)"key"==o?i=l[o]:"ref"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o<arguments.length;o++)u.push(r[o]);return null!=u&&(f.children=u),v(n.type,f,i||n.key,t||n.ref,null)}function q(n,l){var u={__c:l="__cC"+o++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(k)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n},__v:0},l=function(n){return null!=n&&void 0===n.constructor},p.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=c({},this.state),"function"==typeof n&&(n=n(c({},u),this.props)),n&&c(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),k(this))},p.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),k(this))},p.prototype.render=y,u=[],preact_module_i="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,b.__r=0,o=0;
|
|
2186
|
+
var preact_module_n,l,preact_module_u,preact_module_i,preact_module_t,preact_module_o,preact_module_r,f,preact_module_e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n)}function v(l,u,i){var t,o,r,f={};for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?preact_module_n.call(arguments,2):i),"function"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return y(l,f,t,o,null)}function y(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++preact_module_u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function p(){return{current:null}}function d(n){return n.children}function _(n,l){this.props=n,this.context=l}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?k(n):null}function b(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return b(n)}}function m(n){(!n.__d&&(n.__d=!0)&&preact_module_t.push(n)&&!g.__r++||preact_module_r!==l.debounceRendering)&&((preact_module_r=l.debounceRendering)||preact_module_o)(g)}function g(){for(var n;g.__r=preact_module_t.length;)n=preact_module_t.sort(function(n,l){return n.__v.__b-l.__v.__b}),preact_module_t=[],n.some(function(n){var l,u,i,t,o,r;n.__d&&(o=(t=(l=n).__v).__e,(r=l.__P)&&(u=[],(i=a({},t)).__v=t.__v+1,T(r,t,i,l.__n,void 0!==r.ownerSVGElement,null!=t.__h?[o]:null,u,null==o?k(t):o,t.__h),j(u,t),t.__e!=o&&b(t)))})}function w(n,l,u,i,t,o,r,f,s,a){var h,v,p,_,b,m,g,w=i&&i.__k||c,A=w.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(_=u.__k[h]=null==(_=l[h])||"boolean"==typeof _?null:"string"==typeof _||"number"==typeof _||"bigint"==typeof _?y(null,_,null,null,_):Array.isArray(_)?y(d,{children:_},null,null,null):_.__b>0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v<A;v++){if((p=w[v])&&_.key==p.key&&_.type===p.type){w[v]=void 0;break}p=null}T(n,_,p=p||preact_module_e,t,o,r,f,s,a),b=_.__e,(v=_.ref)&&p.ref!=v&&(g||(g=[]),p.ref&&g.push(p.ref,null,_),g.push(v,_.__c||b,_)),null!=b?(null==m&&(m=b),"function"==typeof _.type&&_.__k===p.__k?_.__d=s=x(_,s,n):s=P(n,_,p,w,b,s),"function"==typeof u.type&&(u.__d=s)):s&&p.__e==s&&s.parentNode!=n&&(s=k(p))}for(u.__e=m,h=A;h--;)null!=w[h]&&("function"==typeof u.type&&null!=w[h].__e&&w[h].__e==u.__d&&(u.__d=k(i,h+1)),M(w[h],w[h]));if(g)for(h=0;h<g.length;h++)L(g[h],g[++h],g[++h])}function x(n,l,u){for(var i,t=n.__k,o=0;t&&o<t.length;o++)(i=t[o])&&(i.__=n,l="function"==typeof i.type?x(i,l,u):P(u,i,i,t,i.__e,l));return l}function A(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){A(n,l)}):l.push(n)),l}function P(n,l,u,i,t,o){var r,f,e;if(void 0!==l.__d)r=l.__d,l.__d=void 0;else if(null==u||t!=o||null==t.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(t),r=null;else{for(f=o,e=0;(f=f.nextSibling)&&e<i.length;e+=2)if(f==t)break n;n.insertBefore(t,o),r=o}return void 0!==r?r:t.nextSibling}function C(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||H(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||H(n,o,l[o],u[o],i)}function $(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||s.test(l)?u:u+"px"}function H(n,l,u,i,t){var o;n:if("style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||$(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||$(n.style,l,u[l])}else if("o"===l[0]&&"n"===l[1])o=l!==(l=l.replace(/Capture$/,"")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+o]=u,u?i||n.addEventListener(l,o?N:I,o):n.removeEventListener(l,o?N:I,o);else if("dangerouslySetInnerHTML"!==l){if(t)l=l.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==l&&"list"!==l&&"form"!==l&&"tabIndex"!==l&&"download"!==l&&l in n)try{n[l]=null==u?"":u;break n}catch(n){}"function"==typeof u||(null!=u&&(!1!==u||"a"===l[0]&&"r"===l[1])?n.setAttribute(l,u):n.removeAttribute(l))}}function I(n){this.l[n.type+!1](l.event?l.event(n):n)}function N(n){this.l[n.type+!0](l.event?l.event(n):n)}function T(n,u,i,t,o,r,f,e,c){var s,h,v,y,p,k,b,m,g,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(s=l.__b)&&s(u);try{n:if("function"==typeof P){if(m=u.props,g=(s=P.contextType)&&t[s.__c],x=s?g?g.props.value:s.__:t,i.__c?b=(h=u.__c=i.__c).__=h.__E:("prototype"in P&&P.prototype.render?u.__c=h=new P(m,x):(u.__c=h=new _(m,x),h.constructor=P,h.render=O),g&&g.sub(h),h.props=m,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=P.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=a({},h.__s)),a(h.__s,P.getDerivedStateFromProps(m,h.__s))),y=h.props,p=h.state,v)null==P.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==P.getDerivedStateFromProps&&m!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(m,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(m,h.__s,x)||u.__v===i.__v){h.props=m,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),h.__h.length&&f.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(m,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,p,k)})}h.context=x,h.props=m,h.state=h.__s,(s=l.__r)&&s(u),h.__d=!1,h.__v=u,h.__P=n,s=h.render(h.props,h.state,h.context),h.state=h.__s,null!=h.getChildContext&&(t=a(a({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(k=h.getSnapshotBeforeUpdate(y,p)),A=null!=s&&s.type===d&&null==s.key?s.props.children:s,w(n,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),b&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=z(i.__e,u,i,t,o,r,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),l.__e(n,u,i)}}function j(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function z(l,u,i,t,o,r,f,c){var s,a,v,y=i.props,p=u.props,d=u.type,_=0;if("svg"===d&&(o=!0),null!=r)for(;_<r.length;_++)if((s=r[_])&&"localName"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,r[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=o?document.createElementNS("http://www.w3.org/2000/svg",d):document.createElement(d,p.is&&p),r=null,c=!1}if(null===d)y===p||c&&l.data===p||(l.data=p);else{if(r=r&&preact_module_n.call(l.childNodes),a=(y=i.props||preact_module_e).dangerouslySetInnerHTML,v=p.dangerouslySetInnerHTML,!c){if(null!=r)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(v||a)&&(v&&(a&&v.__html==a.__html||v.__html===l.innerHTML)||(l.innerHTML=v&&v.__html||""))}if(C(l,p,y,o,c),v)u.__k=[];else if(_=u.props.children,w(l,Array.isArray(_)?_:[_],u,i,t,o&&"foreignObject"!==d,r,f,r?r[0]:i.__k&&k(i,0),c),null!=r)for(_=r.length;_--;)null!=r[_]&&h(r[_]);c||("value"in p&&void 0!==(_=p.value)&&(_!==y.value||_!==l.value||"progress"===d&&!_)&&H(l,"value",_,y.value,!1),"checked"in p&&void 0!==(_=p.checked)&&_!==l.checked&&H(l,"checked",_,y.checked,!1))}return l}function L(n,u,i){try{"function"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function M(n,u,i){var t,o;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||L(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null}if(t=n.__k)for(o=0;o<t.length;o++)t[o]&&M(t[o],u,"function"!=typeof n.type);i||null==n.__e||h(n.__e),n.__e=n.__d=void 0}function O(n,l,u){return this.constructor(n,u)}function S(u,i,t){var o,r,f;l.__&&l.__(u,i),r=(o="function"==typeof t)?null:t&&t.__k||i.__k,f=[],T(i,u=(!o&&t||i).__k=v(d,null,[u]),r||preact_module_e,preact_module_e,void 0!==i.ownerSVGElement,!o&&t?[t]:r?null:i.firstChild?preact_module_n.call(i.childNodes):null,f,!o&&t?t:r?r.__e:i.firstChild,o),j(f,u)}function q(n,l){S(n,l,q)}function B(l,u,i){var t,o,r,f=a({},l.props);for(r in u)"key"==r?t=u[r]:"ref"==r?o=u[r]:f[r]=u[r];return arguments.length>2&&(f.children=arguments.length>3?preact_module_n.call(arguments,2):i),y(l.type,f,t||l.key,o||l.ref,null)}function D(n,l){var u={__c:l="__cC"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(m)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}preact_module_n=c.slice,l={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n}},preact_module_u=0,preact_module_i=function(n){return null!=n&&void 0===n.constructor},_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a({},this.state),"function"==typeof n&&(n=n(a({},u),this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},_.prototype.render=d,preact_module_t=[],preact_module_o="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,f=0;
|
|
2180
2187
|
//# sourceMappingURL=preact.module.js.map
|
|
2181
2188
|
|
|
2189
|
+
// CONCATENATED MODULE: ./node_modules/preact/hooks/dist/hooks.module.js
|
|
2190
|
+
var hooks_module_t,hooks_module_u,hooks_module_r,hooks_module_o=0,hooks_module_i=[],hooks_module_c=l.__b,hooks_module_f=l.__r,hooks_module_e=l.diffed,hooks_module_a=l.__c,hooks_module_v=l.unmount;function hooks_module_m(t,r){l.__h&&l.__h(hooks_module_u,t,hooks_module_o||r),hooks_module_o=0;var i=hooks_module_u.__H||(hooks_module_u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function hooks_module_l(n){return hooks_module_o=1,hooks_module_p(hooks_module_w,n)}function hooks_module_p(n,r,o){var i=hooks_module_m(hooks_module_t++,2);return i.t=n,i.__c||(i.__=[o?o(r):hooks_module_w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=hooks_module_u),i.__}function hooks_module_y(r,o){var i=hooks_module_m(hooks_module_t++,3);!l.__s&&hooks_module_k(i.__H,o)&&(i.__=r,i.__H=o,hooks_module_u.__H.__h.push(i))}function hooks_module_h(r,o){var i=hooks_module_m(hooks_module_t++,4);!l.__s&&hooks_module_k(i.__H,o)&&(i.__=r,i.__H=o,hooks_module_u.__h.push(i))}function hooks_module_s(n){return hooks_module_o=5,hooks_module_A(function(){return{current:n}},[])}function hooks_module_(n,t,u){hooks_module_o=6,hooks_module_h(function(){"function"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function hooks_module_A(n,u){var r=hooks_module_m(hooks_module_t++,7);return hooks_module_k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function F(n,t){return hooks_module_o=8,hooks_module_A(function(){return n},t)}function hooks_module_T(n){var r=hooks_module_u.context[n.__c],o=hooks_module_m(hooks_module_t++,9);return o.c=n,r?(null==o.__&&(o.__=!0,r.sub(hooks_module_u)),r.props.value):n.__}function hooks_module_d(t,u){l.useDebugValue&&l.useDebugValue(u?u(t):t)}function hooks_module_q(n){var r=hooks_module_m(hooks_module_t++,10),o=hooks_module_l();return r.__=n,hooks_module_u.componentDidCatch||(hooks_module_u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function hooks_module_x(){hooks_module_i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(hooks_module_g),t.__H.__h.forEach(hooks_module_j),t.__H.__h=[]}catch(u){t.__H.__h=[],l.__e(u,t.__v)}}),hooks_module_i=[]}l.__b=function(n){hooks_module_u=null,hooks_module_c&&hooks_module_c(n)},l.__r=function(n){hooks_module_f&&hooks_module_f(n),hooks_module_t=0;var r=(hooks_module_u=n.__c).__H;r&&(r.__h.forEach(hooks_module_g),r.__h.forEach(hooks_module_j),r.__h=[])},l.diffed=function(t){hooks_module_e&&hooks_module_e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==hooks_module_i.push(o)&&hooks_module_r===l.requestAnimationFrame||((hooks_module_r=l.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),hooks_module_b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);hooks_module_b&&(t=requestAnimationFrame(u))})(hooks_module_x)),hooks_module_u=null},l.__c=function(t,u){u.some(function(t){try{t.__h.forEach(hooks_module_g),t.__h=t.__h.filter(function(n){return!n.__||hooks_module_j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],l.__e(r,t.__v)}}),hooks_module_a&&hooks_module_a(t,u)},l.unmount=function(t){hooks_module_v&&hooks_module_v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(hooks_module_g)}catch(t){l.__e(t,u.__v)}};var hooks_module_b="function"==typeof requestAnimationFrame;function hooks_module_g(n){var t=hooks_module_u;"function"==typeof n.__c&&n.__c(),hooks_module_u=t}function hooks_module_j(n){var t=hooks_module_u;n.__c=n.__(),hooks_module_u=t}function hooks_module_k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function hooks_module_w(n,t){return"function"==typeof t?t(n):t}
|
|
2191
|
+
//# sourceMappingURL=hooks.module.js.map
|
|
2192
|
+
|
|
2193
|
+
// CONCATENATED MODULE: ./node_modules/preact/compat/dist/compat.module.js
|
|
2194
|
+
function compat_module_S(n,t){for(var e in t)n[e]=t[e];return n}function compat_module_C(n,t){for(var e in n)if("__source"!==e&&!(e in t))return!0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function compat_module_g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:compat_module_C(this.props,n)}function r(t){return this.shouldComponentUpdate=e,v(n,t)}return r.displayName="Memo("+(n.displayName||n.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new _).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return compat_module_C(this.props,n)||compat_module_C(this.state,t)};var compat_module_w=l.__b;l.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),compat_module_w&&compat_module_w(n)};var R="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function compat_module_x(n){function t(t,e){var r=compat_module_S({},t);return delete r.ref,n(r,(e=t.ref||e)&&("object"!=typeof e||"current"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var compat_module_N=function(n,t){return null==n?null:A(A(n).map(t))},compat_module_k={map:compat_module_N,forEach:compat_module_N,count:function(n){return n?A(n).length:0},only:function(n){var t=A(n);if(1!==t.length)throw"Children.only";return t[0]},toArray:A},compat_module_A=l.__e;l.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);compat_module_A(n,t,e)};var compat_module_O=l.unmount;function compat_module_L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function compat_module_F(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return v(e,u)}return u.displayName="Lazy",u.__f=!0,u}function compat_module_M(){this.u=null,this.o=null}l.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),compat_module_O&&compat_module_O(n)},(compat_module_L.prototype=new _).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},compat_module_L.prototype.componentWillUnmount=function(){this.t=[]},compat_module_L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=compat_module_S({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&v(d,null,n.fallback);return u&&(u.__h=null),[v(d,null,t.__e?null:n.children),u]};var compat_module_T=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function compat_module_D(n){return this.getChildContext=function(){return n.context},n.children}function compat_module_I(n){var t=this,e=n.i;t.componentWillUnmount=function(){S(null,t.l),t.l=null,t.i=null},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n)},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n)}}),S(v(compat_module_D,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function W(n,t){return v(compat_module_I,{__v:n,i:t})}(compat_module_M.prototype=new _).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),compat_module_T(t,n,r)):u()};e?e(o):o()}},compat_module_M.prototype.render=function(n){this.u=null,this.o=new Map;var t=A(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},compat_module_M.prototype.componentDidUpdate=compat_module_M.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){compat_module_T(n,e,t)})};var compat_module_j="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,compat_module_P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V="undefined"!=typeof document,compat_module_z=function(n){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function compat_module_B(n,t,e){return null==t.__k&&(t.textContent=""),S(n,t),"function"==typeof e&&e(),n?n.__c:null}function compat_module_H(n,t,e){return q(n,t),"function"==typeof e&&e(),n?n.__c:null}_.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(n){Object.defineProperty(_.prototype,n,{configurable:!0,get:function(){return this["UNSAFE_"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var Z=l.event;function Y(){}function compat_module_$(){return this.cancelBubble}function compat_module_q(){return this.defaultPrevented}l.event=function(n){return Z&&(n=Z(n)),n.persist=Y,n.isPropagationStopped=compat_module_$,n.isDefaultPrevented=compat_module_q,n.nativeEvent=n};var G,J={configurable:!0,get:function(){return this.class}},K=l.vnode;l.vnode=function(n){var t=n.type,e=n.props,r=e;if("string"==typeof t){var u=-1===t.indexOf("-");for(var o in r={},e){var i=e[o];V&&"children"===o&&"noscript"===t||"value"===o&&"defaultValue"in e&&null==i||("defaultValue"===o&&"value"in e&&null==e.value?o="value":"download"===o&&!0===i?i="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+t)&&!compat_module_z(e.type)?o="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():u&&compat_module_P.test(o)?o=o.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===i&&(i=void 0),r[o]=i)}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=A(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),"select"==t&&null!=r.defaultValue&&(r.value=A(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r,e.class!=e.className&&(J.enumerable="className"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,"className",J))}n.$$typeof=compat_module_j,K&&K(n)};var Q=l.__r;l.__r=function(n){Q&&Q(n),G=n.__c};var X={ReactCurrentDispatcher:{current:{readContext:function(n){return G.__n[n.__c].props.value}}}},nn="17.0.2";function tn(n){return v.bind(null,n)}function en(n){return!!n&&n.$$typeof===compat_module_j}function rn(n){return en(n)?B.apply(null,arguments):n}function un(n){return!!n.__k&&(S(null,n),!0)}function on(n){return n&&(n.base||1===n.nodeType&&n)||null}var ln=function(n,t){return n(t)},cn=function(n,t){return n(t)},fn=d;/* harmony default export */ var compat_module = ({useState:hooks_module_l,useReducer:hooks_module_p,useEffect:hooks_module_y,useLayoutEffect:hooks_module_h,useRef:hooks_module_s,useImperativeHandle:hooks_module_,useMemo:hooks_module_A,useCallback:F,useContext:hooks_module_T,useDebugValue:hooks_module_d,version:"17.0.2",Children:compat_module_k,render:compat_module_B,hydrate:compat_module_H,unmountComponentAtNode:un,createPortal:W,createElement:v,createContext:D,createFactory:tn,cloneElement:rn,createRef:p,Fragment:d,isValidElement:en,findDOMNode:on,Component:_,PureComponent:E,memo:compat_module_g,forwardRef:compat_module_x,flushSync:cn,unstable_batchedUpdates:ln,StrictMode:d,Suspense:compat_module_L,SuspenseList:compat_module_M,lazy:compat_module_F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:X});
|
|
2195
|
+
//# sourceMappingURL=compat.module.js.map
|
|
2196
|
+
|
|
2182
2197
|
// CONCATENATED MODULE: ./node_modules/@fullcalendar/core/vdom.js
|
|
2183
2198
|
|
|
2184
2199
|
|
|
2185
2200
|
|
|
2201
|
+
|
|
2186
2202
|
var globalObj = typeof globalThis !== 'undefined' ? globalThis : window; // // TODO: streamline when killing IE11 support
|
|
2187
2203
|
if (globalObj.FullCalendarVDom) {
|
|
2188
2204
|
console.warn('FullCalendar VDOM already loaded');
|
|
2189
2205
|
}
|
|
2190
2206
|
else {
|
|
2191
2207
|
globalObj.FullCalendarVDom = {
|
|
2192
|
-
Component:
|
|
2193
|
-
createElement:
|
|
2194
|
-
render:
|
|
2195
|
-
createRef:
|
|
2196
|
-
Fragment:
|
|
2208
|
+
Component: _,
|
|
2209
|
+
createElement: v,
|
|
2210
|
+
render: S,
|
|
2211
|
+
createRef: p,
|
|
2212
|
+
Fragment: d,
|
|
2197
2213
|
createContext: createContext,
|
|
2214
|
+
createPortal: W,
|
|
2198
2215
|
flushToDom: flushToDom,
|
|
2199
2216
|
unmountComponentAtNode: unmountComponentAtNode,
|
|
2200
2217
|
};
|
|
@@ -2203,29 +2220,29 @@ else {
|
|
|
2203
2220
|
// TODO: lock version
|
|
2204
2221
|
// TODO: link gh issues
|
|
2205
2222
|
function flushToDom() {
|
|
2206
|
-
var oldDebounceRendering =
|
|
2223
|
+
var oldDebounceRendering = l.debounceRendering; // orig
|
|
2207
2224
|
var callbackQ = [];
|
|
2208
2225
|
function execCallbackSync(callback) {
|
|
2209
2226
|
callbackQ.push(callback);
|
|
2210
2227
|
}
|
|
2211
|
-
|
|
2212
|
-
|
|
2228
|
+
l.debounceRendering = execCallbackSync;
|
|
2229
|
+
S(v(vdom_FakeComponent, {}), document.createElement('div'));
|
|
2213
2230
|
while (callbackQ.length) {
|
|
2214
2231
|
callbackQ.shift()();
|
|
2215
2232
|
}
|
|
2216
|
-
|
|
2233
|
+
l.debounceRendering = oldDebounceRendering;
|
|
2217
2234
|
}
|
|
2218
2235
|
var vdom_FakeComponent = /** @class */ (function (_super) {
|
|
2219
2236
|
__extends(FakeComponent, _super);
|
|
2220
2237
|
function FakeComponent() {
|
|
2221
2238
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
2222
2239
|
}
|
|
2223
|
-
FakeComponent.prototype.render = function () { return
|
|
2240
|
+
FakeComponent.prototype.render = function () { return v('div', {}); };
|
|
2224
2241
|
FakeComponent.prototype.componentDidMount = function () { this.setState({}); };
|
|
2225
2242
|
return FakeComponent;
|
|
2226
|
-
}(
|
|
2243
|
+
}(_));
|
|
2227
2244
|
function createContext(defaultValue) {
|
|
2228
|
-
var ContextType =
|
|
2245
|
+
var ContextType = D(defaultValue);
|
|
2229
2246
|
var origProvider = ContextType.Provider;
|
|
2230
2247
|
ContextType.Provider = function () {
|
|
2231
2248
|
var _this = this;
|
|
@@ -2255,7 +2272,7 @@ function createContext(defaultValue) {
|
|
|
2255
2272
|
return ContextType;
|
|
2256
2273
|
}
|
|
2257
2274
|
function unmountComponentAtNode(node) {
|
|
2258
|
-
|
|
2275
|
+
S(null, node);
|
|
2259
2276
|
}
|
|
2260
2277
|
|
|
2261
2278
|
// EXTERNAL MODULE: ./node_modules/@fullcalendar/common/main.css
|
|
@@ -2272,16 +2289,18 @@ var vdom_render = FullCalendarVDom.render;
|
|
|
2272
2289
|
var createRef = FullCalendarVDom.createRef;
|
|
2273
2290
|
var Fragment = FullCalendarVDom.Fragment;
|
|
2274
2291
|
var vdom_createContext = FullCalendarVDom.createContext;
|
|
2292
|
+
var createPortal = FullCalendarVDom.createPortal;
|
|
2275
2293
|
var vdom_flushToDom = FullCalendarVDom.flushToDom;
|
|
2276
2294
|
var vdom_unmountComponentAtNode = FullCalendarVDom.unmountComponentAtNode;
|
|
2295
|
+
/* eslint-enable */
|
|
2277
2296
|
|
|
2278
2297
|
|
|
2279
2298
|
|
|
2280
2299
|
// CONCATENATED MODULE: ./node_modules/@fullcalendar/common/main.js
|
|
2281
2300
|
/*!
|
|
2282
|
-
FullCalendar v5.
|
|
2301
|
+
FullCalendar v5.10.1
|
|
2283
2302
|
Docs & License: https://fullcalendar.io/
|
|
2284
|
-
(c)
|
|
2303
|
+
(c) 2021 Adam Shaw
|
|
2285
2304
|
*/
|
|
2286
2305
|
|
|
2287
2306
|
|
|
@@ -2306,6 +2325,7 @@ var EventSourceApi = /** @class */ (function () {
|
|
|
2306
2325
|
this.context.dispatch({
|
|
2307
2326
|
type: 'FETCH_EVENT_SOURCES',
|
|
2308
2327
|
sourceIds: [this.internalEventSource.sourceId],
|
|
2328
|
+
isRefetch: true,
|
|
2309
2329
|
});
|
|
2310
2330
|
};
|
|
2311
2331
|
Object.defineProperty(EventSourceApi.prototype, "id", {
|
|
@@ -2316,13 +2336,19 @@ var EventSourceApi = /** @class */ (function () {
|
|
|
2316
2336
|
configurable: true
|
|
2317
2337
|
});
|
|
2318
2338
|
Object.defineProperty(EventSourceApi.prototype, "url", {
|
|
2319
|
-
// only relevant to json-feed event sources
|
|
2320
2339
|
get: function () {
|
|
2321
2340
|
return this.internalEventSource.meta.url;
|
|
2322
2341
|
},
|
|
2323
2342
|
enumerable: false,
|
|
2324
2343
|
configurable: true
|
|
2325
2344
|
});
|
|
2345
|
+
Object.defineProperty(EventSourceApi.prototype, "format", {
|
|
2346
|
+
get: function () {
|
|
2347
|
+
return this.internalEventSource.meta.format; // TODO: bad. not guaranteed
|
|
2348
|
+
},
|
|
2349
|
+
enumerable: false,
|
|
2350
|
+
configurable: true
|
|
2351
|
+
});
|
|
2326
2352
|
return EventSourceApi;
|
|
2327
2353
|
}());
|
|
2328
2354
|
|
|
@@ -2403,6 +2429,26 @@ function applyStyleProp(el, name, val) {
|
|
|
2403
2429
|
el.style[name] = val;
|
|
2404
2430
|
}
|
|
2405
2431
|
}
|
|
2432
|
+
// Event Handling
|
|
2433
|
+
// ----------------------------------------------------------------------------------------------------------------
|
|
2434
|
+
// if intercepting bubbled events at the document/window/body level,
|
|
2435
|
+
// and want to see originating element (the 'target'), use this util instead
|
|
2436
|
+
// of `ev.target` because it goes within web-component boundaries.
|
|
2437
|
+
function getEventTargetViaRoot(ev) {
|
|
2438
|
+
var _a, _b;
|
|
2439
|
+
return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;
|
|
2440
|
+
}
|
|
2441
|
+
// Shadow DOM consuderations
|
|
2442
|
+
// ----------------------------------------------------------------------------------------------------------------
|
|
2443
|
+
function getElRoot(el) {
|
|
2444
|
+
return el.getRootNode ? el.getRootNode() : document;
|
|
2445
|
+
}
|
|
2446
|
+
// Unique ID for DOM attribute
|
|
2447
|
+
var guid$1 = 0;
|
|
2448
|
+
function getUniqueDomId() {
|
|
2449
|
+
guid$1 += 1;
|
|
2450
|
+
return 'fc-dom-' + guid$1;
|
|
2451
|
+
}
|
|
2406
2452
|
|
|
2407
2453
|
// Stops a mouse/touch event from doing it's native browser action
|
|
2408
2454
|
function preventDefault(ev) {
|
|
@@ -2462,6 +2508,22 @@ function whenTransitionDone(el, callback) {
|
|
|
2462
2508
|
el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes
|
|
2463
2509
|
});
|
|
2464
2510
|
}
|
|
2511
|
+
// ARIA workarounds
|
|
2512
|
+
// ----------------------------------------------------------------------------------------------------------------
|
|
2513
|
+
function createAriaClickAttrs(handler) {
|
|
2514
|
+
return __assign({ onClick: handler }, createAriaKeyboardAttrs(handler));
|
|
2515
|
+
}
|
|
2516
|
+
function createAriaKeyboardAttrs(handler) {
|
|
2517
|
+
return {
|
|
2518
|
+
tabIndex: 0,
|
|
2519
|
+
onKeyDown: function (ev) {
|
|
2520
|
+
if (ev.key === 'Enter' || ev.key === ' ') {
|
|
2521
|
+
handler(ev);
|
|
2522
|
+
ev.preventDefault(); // if space, don't scroll down page
|
|
2523
|
+
}
|
|
2524
|
+
},
|
|
2525
|
+
};
|
|
2526
|
+
}
|
|
2465
2527
|
|
|
2466
2528
|
var guidNumber = 0;
|
|
2467
2529
|
function guid() {
|
|
@@ -2562,6 +2624,15 @@ function padStart(val, len) {
|
|
|
2562
2624
|
var s = String(val);
|
|
2563
2625
|
return '000'.substr(0, len - s.length) + s;
|
|
2564
2626
|
}
|
|
2627
|
+
function formatWithOrdinals(formatter, args, fallbackText) {
|
|
2628
|
+
if (typeof formatter === 'function') {
|
|
2629
|
+
return formatter.apply(void 0, args);
|
|
2630
|
+
}
|
|
2631
|
+
if (typeof formatter === 'string') { // non-blank string
|
|
2632
|
+
return args.reduce(function (str, arg, index) { return (str.replace('$' + index, arg || '')); }, formatter);
|
|
2633
|
+
}
|
|
2634
|
+
return fallbackText;
|
|
2635
|
+
}
|
|
2565
2636
|
/* Number Utilities
|
|
2566
2637
|
----------------------------------------------------------------------------------------------------------------------*/
|
|
2567
2638
|
function compareNumbers(a, b) {
|
|
@@ -3030,7 +3101,7 @@ function parseObject(obj) {
|
|
|
3030
3101
|
milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours
|
|
3031
3102
|
(obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes
|
|
3032
3103
|
(obj.seconds || obj.second || 0) * 1000 + // seconds
|
|
3033
|
-
(obj.milliseconds || obj.millisecond || obj.ms || 0),
|
|
3104
|
+
(obj.milliseconds || obj.millisecond || obj.ms || 0), // ms
|
|
3034
3105
|
};
|
|
3035
3106
|
var weeks = obj.weeks || obj.week;
|
|
3036
3107
|
if (weeks) {
|
|
@@ -3434,7 +3505,7 @@ function buildFormattingFunc(standardDateProps, extendedSettings, context) {
|
|
|
3434
3505
|
return function (date) { return (formatTimeZoneOffset(date.timeZoneOffset)); };
|
|
3435
3506
|
}
|
|
3436
3507
|
if (standardDatePropCnt === 0 && extendedSettings.week) {
|
|
3437
|
-
return function (date) { return (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.locale, extendedSettings.week)); };
|
|
3508
|
+
return function (date) { return (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week)); };
|
|
3438
3509
|
}
|
|
3439
3510
|
return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);
|
|
3440
3511
|
}
|
|
@@ -3526,15 +3597,17 @@ function injectTzoStr(s, tzoStr) {
|
|
|
3526
3597
|
}
|
|
3527
3598
|
return s;
|
|
3528
3599
|
}
|
|
3529
|
-
function formatWeekNumber(num, weekText, locale, display) {
|
|
3600
|
+
function formatWeekNumber(num, weekText, weekTextLong, locale, display) {
|
|
3530
3601
|
var parts = [];
|
|
3531
|
-
if (display === '
|
|
3602
|
+
if (display === 'long') {
|
|
3603
|
+
parts.push(weekTextLong);
|
|
3604
|
+
}
|
|
3605
|
+
else if (display === 'short' || display === 'narrow') {
|
|
3532
3606
|
parts.push(weekText);
|
|
3533
3607
|
}
|
|
3534
|
-
|
|
3535
|
-
parts.push(
|
|
3608
|
+
if (display === 'long' || display === 'short') {
|
|
3609
|
+
parts.push(' ');
|
|
3536
3610
|
}
|
|
3537
|
-
// otherwise, considered 'numeric'
|
|
3538
3611
|
parts.push(locale.simpleNumberFormat.format(num));
|
|
3539
3612
|
if (locale.options.direction === 'rtl') { // TODO: use control characters instead?
|
|
3540
3613
|
parts.reverse();
|
|
@@ -3688,6 +3761,7 @@ var BASE_OPTION_REFINERS = {
|
|
|
3688
3761
|
defaultTimedEventDuration: createDuration,
|
|
3689
3762
|
nextDayThreshold: createDuration,
|
|
3690
3763
|
scrollTime: createDuration,
|
|
3764
|
+
scrollTimeReset: Boolean,
|
|
3691
3765
|
slotMinTime: createDuration,
|
|
3692
3766
|
slotMaxTime: createDuration,
|
|
3693
3767
|
dayPopoverFormat: createFormatter,
|
|
@@ -3741,6 +3815,7 @@ var BASE_OPTION_REFINERS = {
|
|
|
3741
3815
|
unselectAuto: Boolean,
|
|
3742
3816
|
dropAccept: identity,
|
|
3743
3817
|
eventOrder: parseFieldSpecs,
|
|
3818
|
+
eventOrderStrict: Boolean,
|
|
3744
3819
|
handleWindowResize: Boolean,
|
|
3745
3820
|
windowResizeDelay: Number,
|
|
3746
3821
|
longPressDelay: Number,
|
|
@@ -3754,6 +3829,7 @@ var BASE_OPTION_REFINERS = {
|
|
|
3754
3829
|
displayEventTime: Boolean,
|
|
3755
3830
|
displayEventEnd: Boolean,
|
|
3756
3831
|
weekText: String,
|
|
3832
|
+
weekTextLong: String,
|
|
3757
3833
|
progressiveEventRendering: Boolean,
|
|
3758
3834
|
businessHours: identity,
|
|
3759
3835
|
initialDate: identity,
|
|
@@ -3807,12 +3883,16 @@ var BASE_OPTION_REFINERS = {
|
|
|
3807
3883
|
eventTimeFormat: createFormatter,
|
|
3808
3884
|
rerenderDelay: Number,
|
|
3809
3885
|
moreLinkText: identity,
|
|
3886
|
+
moreLinkHint: identity,
|
|
3810
3887
|
selectMinDistance: Number,
|
|
3811
3888
|
selectable: Boolean,
|
|
3812
3889
|
selectLongPressDelay: Number,
|
|
3813
3890
|
eventLongPressDelay: Number,
|
|
3814
3891
|
selectMirror: Boolean,
|
|
3892
|
+
eventMaxStack: Number,
|
|
3815
3893
|
eventMinHeight: Number,
|
|
3894
|
+
eventMinWidth: Number,
|
|
3895
|
+
eventShortHeight: Number,
|
|
3816
3896
|
slotEventOverlap: Boolean,
|
|
3817
3897
|
plugins: identity,
|
|
3818
3898
|
firstDay: Number,
|
|
@@ -3825,8 +3905,19 @@ var BASE_OPTION_REFINERS = {
|
|
|
3825
3905
|
validRange: identity,
|
|
3826
3906
|
visibleRange: identity,
|
|
3827
3907
|
titleFormat: identity,
|
|
3908
|
+
eventInteractive: Boolean,
|
|
3828
3909
|
// only used by list-view, but languages define the value, so we need it in base options
|
|
3829
3910
|
noEventsText: String,
|
|
3911
|
+
viewHint: identity,
|
|
3912
|
+
navLinkHint: identity,
|
|
3913
|
+
closeHint: String,
|
|
3914
|
+
timeHint: String,
|
|
3915
|
+
eventHint: String,
|
|
3916
|
+
moreLinkClick: identity,
|
|
3917
|
+
moreLinkClassNames: identity,
|
|
3918
|
+
moreLinkContent: identity,
|
|
3919
|
+
moreLinkDidMount: identity,
|
|
3920
|
+
moreLinkWillUnmount: identity,
|
|
3830
3921
|
};
|
|
3831
3922
|
// do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.
|
|
3832
3923
|
// raw values.
|
|
@@ -3852,6 +3943,7 @@ var BASE_OPTION_DEFAULTS = {
|
|
|
3852
3943
|
editable: false,
|
|
3853
3944
|
nowIndicator: false,
|
|
3854
3945
|
scrollTime: '06:00:00',
|
|
3946
|
+
scrollTimeReset: true,
|
|
3855
3947
|
slotMinTime: '00:00:00',
|
|
3856
3948
|
slotMaxTime: '24:00:00',
|
|
3857
3949
|
showNonCurrentDates: true,
|
|
@@ -3877,6 +3969,9 @@ var BASE_OPTION_DEFAULTS = {
|
|
|
3877
3969
|
expandRows: false,
|
|
3878
3970
|
navLinks: false,
|
|
3879
3971
|
selectable: false,
|
|
3972
|
+
eventMinHeight: 15,
|
|
3973
|
+
eventMinWidth: 30,
|
|
3974
|
+
eventShortHeight: 30,
|
|
3880
3975
|
};
|
|
3881
3976
|
// calendar listeners
|
|
3882
3977
|
// ------------------
|
|
@@ -3906,6 +4001,7 @@ var CALENDAR_LISTENER_REFINERS = {
|
|
|
3906
4001
|
// -------------------------
|
|
3907
4002
|
var CALENDAR_OPTION_REFINERS = {
|
|
3908
4003
|
buttonText: identity,
|
|
4004
|
+
buttonHints: identity,
|
|
3909
4005
|
views: identity,
|
|
3910
4006
|
plugins: identity,
|
|
3911
4007
|
initialEvents: identity,
|
|
@@ -3916,6 +4012,7 @@ var COMPLEX_OPTION_COMPARATORS = {
|
|
|
3916
4012
|
headerToolbar: isBoolComplexEqual,
|
|
3917
4013
|
footerToolbar: isBoolComplexEqual,
|
|
3918
4014
|
buttonText: isBoolComplexEqual,
|
|
4015
|
+
buttonHints: isBoolComplexEqual,
|
|
3919
4016
|
buttonIcons: isBoolComplexEqual,
|
|
3920
4017
|
};
|
|
3921
4018
|
function isBoolComplexEqual(a, b) {
|
|
@@ -4104,7 +4201,7 @@ function createEventUi(refined, context) {
|
|
|
4104
4201
|
backgroundColor: refined.backgroundColor || refined.color || '',
|
|
4105
4202
|
borderColor: refined.borderColor || refined.color || '',
|
|
4106
4203
|
textColor: refined.textColor || '',
|
|
4107
|
-
classNames: (refined.className || []).concat(refined.classNames || []),
|
|
4204
|
+
classNames: (refined.className || []).concat(refined.classNames || []), // join singular and plural
|
|
4108
4205
|
};
|
|
4109
4206
|
}
|
|
4110
4207
|
// TODO: prevent against problems with <2 args!
|
|
@@ -4131,6 +4228,7 @@ var EVENT_NON_DATE_REFINERS = {
|
|
|
4131
4228
|
groupId: String,
|
|
4132
4229
|
title: String,
|
|
4133
4230
|
url: String,
|
|
4231
|
+
interactive: Boolean,
|
|
4134
4232
|
};
|
|
4135
4233
|
var EVENT_DATE_REFINERS = {
|
|
4136
4234
|
start: identity,
|
|
@@ -4183,6 +4281,7 @@ function parseEventDef(refined, extra, sourceId, allDay, hasEnd, context) {
|
|
|
4183
4281
|
sourceId: sourceId,
|
|
4184
4282
|
allDay: allDay,
|
|
4185
4283
|
hasEnd: hasEnd,
|
|
4284
|
+
interactive: refined.interactive,
|
|
4186
4285
|
ui: createEventUi(refined, context),
|
|
4187
4286
|
extendedProps: __assign(__assign({}, (refined.extendedProps || {})), extra),
|
|
4188
4287
|
};
|
|
@@ -4570,9 +4669,15 @@ startOverride, endOverride) {
|
|
|
4570
4669
|
if (displayEventEnd == null) {
|
|
4571
4670
|
displayEventEnd = defaultDisplayEventEnd !== false;
|
|
4572
4671
|
}
|
|
4573
|
-
|
|
4574
|
-
|
|
4575
|
-
|
|
4672
|
+
var wholeEventStart = eventInstance.range.start;
|
|
4673
|
+
var wholeEventEnd = eventInstance.range.end;
|
|
4674
|
+
var segStart = startOverride || seg.start || seg.eventRange.range.start;
|
|
4675
|
+
var segEnd = endOverride || seg.end || seg.eventRange.range.end;
|
|
4676
|
+
var isStartDay = startOfDay(wholeEventStart).valueOf() === startOfDay(segStart).valueOf();
|
|
4677
|
+
var isEndDay = startOfDay(addMs(wholeEventEnd, -1)).valueOf() === startOfDay(addMs(segEnd, -1)).valueOf();
|
|
4678
|
+
if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {
|
|
4679
|
+
segStart = isStartDay ? wholeEventStart : segStart;
|
|
4680
|
+
segEnd = isEndDay ? wholeEventEnd : segEnd;
|
|
4576
4681
|
if (displayEventEnd && eventDef.hasEnd) {
|
|
4577
4682
|
return dateEnv.formatRange(segStart, segEnd, timeFormat, {
|
|
4578
4683
|
forcedStartTzo: startOverride ? null : eventInstance.forcedStartTzo,
|
|
@@ -4580,7 +4685,7 @@ startOverride, endOverride) {
|
|
|
4580
4685
|
});
|
|
4581
4686
|
}
|
|
4582
4687
|
return dateEnv.format(segStart, timeFormat, {
|
|
4583
|
-
forcedTzo: startOverride ? null : eventInstance.forcedStartTzo,
|
|
4688
|
+
forcedTzo: startOverride ? null : eventInstance.forcedStartTzo, // nooooo, same
|
|
4584
4689
|
});
|
|
4585
4690
|
}
|
|
4586
4691
|
return '';
|
|
@@ -4636,6 +4741,34 @@ function buildEventRangeKey(eventRange) {
|
|
|
4636
4741
|
: eventRange.def.defId + ":" + eventRange.range.start.toISOString();
|
|
4637
4742
|
// inverse-background events don't have specific instances. TODO: better solution
|
|
4638
4743
|
}
|
|
4744
|
+
function getSegAnchorAttrs(seg, context) {
|
|
4745
|
+
var _a = seg.eventRange, def = _a.def, instance = _a.instance;
|
|
4746
|
+
var url = def.url;
|
|
4747
|
+
if (url) {
|
|
4748
|
+
return { href: url };
|
|
4749
|
+
}
|
|
4750
|
+
var emitter = context.emitter, options = context.options;
|
|
4751
|
+
var eventInteractive = options.eventInteractive;
|
|
4752
|
+
if (eventInteractive == null) {
|
|
4753
|
+
eventInteractive = def.interactive;
|
|
4754
|
+
if (eventInteractive == null) {
|
|
4755
|
+
eventInteractive = Boolean(emitter.hasHandlers('eventClick'));
|
|
4756
|
+
}
|
|
4757
|
+
}
|
|
4758
|
+
// mock what happens in EventClicking
|
|
4759
|
+
if (eventInteractive) {
|
|
4760
|
+
// only attach keyboard-related handlers because click handler is already done in EventClicking
|
|
4761
|
+
return createAriaKeyboardAttrs(function (ev) {
|
|
4762
|
+
emitter.trigger('eventClick', {
|
|
4763
|
+
el: ev.target,
|
|
4764
|
+
event: new main_EventApi(context, def, instance),
|
|
4765
|
+
jsEvent: ev,
|
|
4766
|
+
view: context.viewApi,
|
|
4767
|
+
});
|
|
4768
|
+
});
|
|
4769
|
+
}
|
|
4770
|
+
return {};
|
|
4771
|
+
}
|
|
4639
4772
|
|
|
4640
4773
|
var STANDARD_PROPS = {
|
|
4641
4774
|
start: identity,
|
|
@@ -4905,6 +5038,7 @@ var EVENT_SOURCE_REFINERS = {
|
|
|
4905
5038
|
id: String,
|
|
4906
5039
|
defaultAllDay: Boolean,
|
|
4907
5040
|
url: String,
|
|
5041
|
+
format: String,
|
|
4908
5042
|
events: identity,
|
|
4909
5043
|
eventDataTransform: identity,
|
|
4910
5044
|
// for any network-related sources
|
|
@@ -5045,7 +5179,7 @@ var main_CalendarApi = /** @class */ (function () {
|
|
|
5045
5179
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
5046
5180
|
args[_i - 1] = arguments[_i];
|
|
5047
5181
|
}
|
|
5048
|
-
(_a = this.currentDataManager.emitter).trigger.apply(_a,
|
|
5182
|
+
(_a = this.currentDataManager.emitter).trigger.apply(_a, __spreadArray([handlerName], args));
|
|
5049
5183
|
};
|
|
5050
5184
|
// View
|
|
5051
5185
|
// -----------------------------------------------------------------------------------------------------------------
|
|
@@ -5109,7 +5243,7 @@ var main_CalendarApi = /** @class */ (function () {
|
|
|
5109
5243
|
// Preference is given to views that have corresponding buttons.
|
|
5110
5244
|
CalendarApi.prototype.getUnitViewSpec = function (unit) {
|
|
5111
5245
|
var _a = this.getCurrentData(), viewSpecs = _a.viewSpecs, toolbarConfig = _a.toolbarConfig;
|
|
5112
|
-
var viewTypes = [].concat(toolbarConfig.viewsWithButtons);
|
|
5246
|
+
var viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);
|
|
5113
5247
|
var i;
|
|
5114
5248
|
var spec;
|
|
5115
5249
|
for (var viewType in viewSpecs) {
|
|
@@ -5247,7 +5381,7 @@ var main_CalendarApi = /** @class */ (function () {
|
|
|
5247
5381
|
if (!currentData.eventStore.defs[def.defId]) {
|
|
5248
5382
|
this.dispatch({
|
|
5249
5383
|
type: 'ADD_EVENTS',
|
|
5250
|
-
eventStore: eventTupleToStore({ def: def, instance: instance }),
|
|
5384
|
+
eventStore: eventTupleToStore({ def: def, instance: instance }), // TODO: better util for two args?
|
|
5251
5385
|
});
|
|
5252
5386
|
this.triggerEventAdd(eventInput);
|
|
5253
5387
|
}
|
|
@@ -5370,7 +5504,7 @@ var main_CalendarApi = /** @class */ (function () {
|
|
|
5370
5504
|
this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' });
|
|
5371
5505
|
};
|
|
5372
5506
|
CalendarApi.prototype.refetchEvents = function () {
|
|
5373
|
-
this.dispatch({ type: 'FETCH_EVENT_SOURCES' });
|
|
5507
|
+
this.dispatch({ type: 'FETCH_EVENT_SOURCES', isRefetch: true });
|
|
5374
5508
|
};
|
|
5375
5509
|
// Scroll
|
|
5376
5510
|
// -----------------------------------------------------------------------------------------------------------------
|
|
@@ -5398,6 +5532,13 @@ var main_EventApi = /** @class */ (function () {
|
|
|
5398
5532
|
var _a, _b;
|
|
5399
5533
|
if (name in EVENT_DATE_REFINERS) {
|
|
5400
5534
|
console.warn('Could not set date-related prop \'name\'. Use one of the date-related methods instead.');
|
|
5535
|
+
// TODO: make proper aliasing system?
|
|
5536
|
+
}
|
|
5537
|
+
else if (name === 'id') {
|
|
5538
|
+
val = EVENT_NON_DATE_REFINERS[name](val);
|
|
5539
|
+
this.mutate({
|
|
5540
|
+
standardProps: { publicId: val }, // hardcoded internal name
|
|
5541
|
+
});
|
|
5401
5542
|
}
|
|
5402
5543
|
else if (name in EVENT_NON_DATE_REFINERS) {
|
|
5403
5544
|
val = EVENT_NON_DATE_REFINERS[name](val);
|
|
@@ -5552,8 +5693,8 @@ var main_EventApi = /** @class */ (function () {
|
|
|
5552
5693
|
if (instance) {
|
|
5553
5694
|
var def = this._def;
|
|
5554
5695
|
var context_1 = this._context;
|
|
5555
|
-
var
|
|
5556
|
-
var
|
|
5696
|
+
var eventStore_1 = context_1.getCurrentData().eventStore;
|
|
5697
|
+
var relevantEvents = getRelevantEvents(eventStore_1, instance.instanceId);
|
|
5557
5698
|
var eventConfigBase = {
|
|
5558
5699
|
'': {
|
|
5559
5700
|
display: '',
|
|
@@ -5568,22 +5709,22 @@ var main_EventApi = /** @class */ (function () {
|
|
|
5568
5709
|
classNames: [],
|
|
5569
5710
|
},
|
|
5570
5711
|
};
|
|
5571
|
-
|
|
5712
|
+
relevantEvents = applyMutationToEventStore(relevantEvents, eventConfigBase, mutation, context_1);
|
|
5572
5713
|
var oldEvent = new EventApi(context_1, def, instance); // snapshot
|
|
5573
|
-
this._def =
|
|
5574
|
-
this._instance =
|
|
5714
|
+
this._def = relevantEvents.defs[def.defId];
|
|
5715
|
+
this._instance = relevantEvents.instances[instance.instanceId];
|
|
5575
5716
|
context_1.dispatch({
|
|
5576
5717
|
type: 'MERGE_EVENTS',
|
|
5577
|
-
eventStore:
|
|
5718
|
+
eventStore: relevantEvents,
|
|
5578
5719
|
});
|
|
5579
5720
|
context_1.emitter.trigger('eventChange', {
|
|
5580
5721
|
oldEvent: oldEvent,
|
|
5581
5722
|
event: this,
|
|
5582
|
-
relatedEvents: buildEventApis(
|
|
5723
|
+
relatedEvents: buildEventApis(relevantEvents, context_1, instance),
|
|
5583
5724
|
revert: function () {
|
|
5584
5725
|
context_1.dispatch({
|
|
5585
|
-
type: '
|
|
5586
|
-
eventStore:
|
|
5726
|
+
type: 'RESET_EVENTS',
|
|
5727
|
+
eventStore: eventStore_1,
|
|
5587
5728
|
});
|
|
5588
5729
|
},
|
|
5589
5730
|
});
|
|
@@ -5906,6 +6047,7 @@ var DateEnv = /** @class */ (function () {
|
|
|
5906
6047
|
this.weekNumberFunc = settings.weekNumberCalculation;
|
|
5907
6048
|
}
|
|
5908
6049
|
this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;
|
|
6050
|
+
this.weekTextLong = (settings.weekTextLong != null ? settings.weekTextLong : settings.locale.options.weekTextLong) || this.weekText;
|
|
5909
6051
|
this.cmdFormatter = settings.cmdFormatter;
|
|
5910
6052
|
this.defaultSeparator = settings.defaultSeparator;
|
|
5911
6053
|
}
|
|
@@ -6208,11 +6350,11 @@ var DateEnv = /** @class */ (function () {
|
|
|
6208
6350
|
|
|
6209
6351
|
var globalLocales = [];
|
|
6210
6352
|
|
|
6211
|
-
var
|
|
6353
|
+
var MINIMAL_RAW_EN_LOCALE = {
|
|
6212
6354
|
code: 'en',
|
|
6213
6355
|
week: {
|
|
6214
6356
|
dow: 0,
|
|
6215
|
-
doy: 4,
|
|
6357
|
+
doy: 4, // 4 days need to be within the year to be considered the first week
|
|
6216
6358
|
},
|
|
6217
6359
|
direction: 'ltr',
|
|
6218
6360
|
buttonText: {
|
|
@@ -6228,10 +6370,28 @@ var RAW_EN_LOCALE = {
|
|
|
6228
6370
|
list: 'list',
|
|
6229
6371
|
},
|
|
6230
6372
|
weekText: 'W',
|
|
6373
|
+
weekTextLong: 'Week',
|
|
6374
|
+
closeHint: 'Close',
|
|
6375
|
+
timeHint: 'Time',
|
|
6376
|
+
eventHint: 'Event',
|
|
6231
6377
|
allDayText: 'all-day',
|
|
6232
6378
|
moreLinkText: 'more',
|
|
6233
6379
|
noEventsText: 'No events to display',
|
|
6234
6380
|
};
|
|
6381
|
+
var RAW_EN_LOCALE = __assign(__assign({}, MINIMAL_RAW_EN_LOCALE), {
|
|
6382
|
+
// Includes things we don't want other locales to inherit,
|
|
6383
|
+
// things that derive from other translatable strings.
|
|
6384
|
+
buttonHints: {
|
|
6385
|
+
prev: 'Previous $0',
|
|
6386
|
+
next: 'Next $0',
|
|
6387
|
+
today: function (buttonText, unit) {
|
|
6388
|
+
return (unit === 'day')
|
|
6389
|
+
? 'Today'
|
|
6390
|
+
: "This " + buttonText;
|
|
6391
|
+
},
|
|
6392
|
+
}, viewHint: '$0 view', navLinkHint: 'Go to $0', moreLinkHint: function (eventCnt) {
|
|
6393
|
+
return "Show " + eventCnt + " more event" + (eventCnt === 1 ? '' : 's');
|
|
6394
|
+
} });
|
|
6235
6395
|
function organizeRawLocales(explicitRawLocales) {
|
|
6236
6396
|
var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';
|
|
6237
6397
|
var allRawLocales = globalLocales.concat(explicitRawLocales);
|
|
@@ -6271,7 +6431,7 @@ function queryRawLocale(codes, available) {
|
|
|
6271
6431
|
return null;
|
|
6272
6432
|
}
|
|
6273
6433
|
function parseLocale(codeArg, codes, raw) {
|
|
6274
|
-
var merged = mergeProps([
|
|
6434
|
+
var merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);
|
|
6275
6435
|
delete merged.code; // don't want this part of the options
|
|
6276
6436
|
var week = merged.week;
|
|
6277
6437
|
delete merged.week;
|
|
@@ -6286,7 +6446,7 @@ function parseLocale(codeArg, codes, raw) {
|
|
|
6286
6446
|
|
|
6287
6447
|
function formatDate(dateInput, options) {
|
|
6288
6448
|
if (options === void 0) { options = {}; }
|
|
6289
|
-
var dateEnv = buildDateEnv(options);
|
|
6449
|
+
var dateEnv = buildDateEnv$1(options);
|
|
6290
6450
|
var formatter = createFormatter(options);
|
|
6291
6451
|
var dateMeta = dateEnv.createMarkerMeta(dateInput);
|
|
6292
6452
|
if (!dateMeta) { // TODO: warning?
|
|
@@ -6297,7 +6457,7 @@ function formatDate(dateInput, options) {
|
|
|
6297
6457
|
});
|
|
6298
6458
|
}
|
|
6299
6459
|
function formatRange(startInput, endInput, options) {
|
|
6300
|
-
var dateEnv = buildDateEnv(typeof options === 'object' && options ? options : {}); // pass in if non-null object
|
|
6460
|
+
var dateEnv = buildDateEnv$1(typeof options === 'object' && options ? options : {}); // pass in if non-null object
|
|
6301
6461
|
var formatter = createFormatter(options);
|
|
6302
6462
|
var startMeta = dateEnv.createMarkerMeta(startInput);
|
|
6303
6463
|
var endMeta = dateEnv.createMarkerMeta(endInput);
|
|
@@ -6312,7 +6472,7 @@ function formatRange(startInput, endInput, options) {
|
|
|
6312
6472
|
});
|
|
6313
6473
|
}
|
|
6314
6474
|
// TODO: more DRY and optimized
|
|
6315
|
-
function buildDateEnv(settings) {
|
|
6475
|
+
function buildDateEnv$1(settings) {
|
|
6316
6476
|
var locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere
|
|
6317
6477
|
return new DateEnv(__assign(__assign({ timeZone: BASE_OPTION_DEFAULTS.timeZone, calendarSystem: 'gregory' }, settings), { locale: locale }));
|
|
6318
6478
|
}
|
|
@@ -6323,7 +6483,7 @@ var DEF_DEFAULTS = {
|
|
|
6323
6483
|
daysOfWeek: [1, 2, 3, 4, 5],
|
|
6324
6484
|
display: 'inverse-background',
|
|
6325
6485
|
classNames: 'fc-non-business',
|
|
6326
|
-
groupId: '_businessHours',
|
|
6486
|
+
groupId: '_businessHours', // so multiple defs get grouped
|
|
6327
6487
|
};
|
|
6328
6488
|
/*
|
|
6329
6489
|
TODO: pass around as EventDefHash!!!
|
|
@@ -6619,12 +6779,33 @@ function getSlotClassNames(meta, theme) {
|
|
|
6619
6779
|
return classNames;
|
|
6620
6780
|
}
|
|
6621
6781
|
|
|
6622
|
-
|
|
6623
|
-
|
|
6624
|
-
|
|
6625
|
-
|
|
6626
|
-
|
|
6627
|
-
|
|
6782
|
+
var DAY_FORMAT = createFormatter({ year: 'numeric', month: 'long', day: 'numeric' });
|
|
6783
|
+
var WEEK_FORMAT = createFormatter({ week: 'long' });
|
|
6784
|
+
function buildNavLinkAttrs(context, dateMarker, viewType, isTabbable) {
|
|
6785
|
+
if (viewType === void 0) { viewType = 'day'; }
|
|
6786
|
+
if (isTabbable === void 0) { isTabbable = true; }
|
|
6787
|
+
var dateEnv = context.dateEnv, options = context.options, calendarApi = context.calendarApi;
|
|
6788
|
+
var dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);
|
|
6789
|
+
if (options.navLinks) {
|
|
6790
|
+
var zonedDate = dateEnv.toDate(dateMarker);
|
|
6791
|
+
var handleInteraction = function (ev) {
|
|
6792
|
+
var customAction = viewType === 'day' ? options.navLinkDayClick :
|
|
6793
|
+
viewType === 'week' ? options.navLinkWeekClick : null;
|
|
6794
|
+
if (typeof customAction === 'function') {
|
|
6795
|
+
customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);
|
|
6796
|
+
}
|
|
6797
|
+
else {
|
|
6798
|
+
if (typeof customAction === 'string') {
|
|
6799
|
+
viewType = customAction;
|
|
6800
|
+
}
|
|
6801
|
+
calendarApi.zoomTo(dateMarker, viewType);
|
|
6802
|
+
}
|
|
6803
|
+
};
|
|
6804
|
+
return __assign({ title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), 'data-navlink': '' }, (isTabbable
|
|
6805
|
+
? createAriaClickAttrs(handleInteraction)
|
|
6806
|
+
: { onClick: handleInteraction }));
|
|
6807
|
+
}
|
|
6808
|
+
return { 'aria-label': dateStr };
|
|
6628
6809
|
}
|
|
6629
6810
|
|
|
6630
6811
|
var _isRtlScrollbarOnLeft = null;
|
|
@@ -6663,6 +6844,9 @@ function getScrollbarWidths() {
|
|
|
6663
6844
|
function computeScrollbarWidths() {
|
|
6664
6845
|
var el = document.createElement('div');
|
|
6665
6846
|
el.style.overflow = 'scroll';
|
|
6847
|
+
el.style.position = 'absolute';
|
|
6848
|
+
el.style.top = '-9999px';
|
|
6849
|
+
el.style.left = '-9999px';
|
|
6666
6850
|
document.body.appendChild(el);
|
|
6667
6851
|
var res = computeScrollbarWidthsForEl(el);
|
|
6668
6852
|
document.body.removeChild(el);
|
|
@@ -6736,6 +6920,21 @@ function computeRect(el) {
|
|
|
6736
6920
|
bottom: rect.bottom + window.pageYOffset,
|
|
6737
6921
|
};
|
|
6738
6922
|
}
|
|
6923
|
+
function computeClippedClientRect(el) {
|
|
6924
|
+
var clippingParents = getClippingParents(el);
|
|
6925
|
+
var rect = el.getBoundingClientRect();
|
|
6926
|
+
for (var _i = 0, clippingParents_1 = clippingParents; _i < clippingParents_1.length; _i++) {
|
|
6927
|
+
var clippingParent = clippingParents_1[_i];
|
|
6928
|
+
var intersection = intersectRects(rect, clippingParent.getBoundingClientRect());
|
|
6929
|
+
if (intersection) {
|
|
6930
|
+
rect = intersection;
|
|
6931
|
+
}
|
|
6932
|
+
else {
|
|
6933
|
+
return null;
|
|
6934
|
+
}
|
|
6935
|
+
}
|
|
6936
|
+
return rect;
|
|
6937
|
+
}
|
|
6739
6938
|
function computeHeightAndMargins(el) {
|
|
6740
6939
|
return el.getBoundingClientRect().height + computeVMargins(el);
|
|
6741
6940
|
}
|
|
@@ -6819,8 +7018,8 @@ var Emitter = /** @class */ (function () {
|
|
|
6819
7018
|
}
|
|
6820
7019
|
};
|
|
6821
7020
|
Emitter.prototype.hasHandlers = function (type) {
|
|
6822
|
-
return (this.handlers[type] && this.handlers[type].length) ||
|
|
6823
|
-
(this.options && this.options[type]);
|
|
7021
|
+
return Boolean((this.handlers[type] && this.handlers[type].length) ||
|
|
7022
|
+
(this.options && this.options[type]));
|
|
6824
7023
|
};
|
|
6825
7024
|
return Emitter;
|
|
6826
7025
|
}());
|
|
@@ -7079,11 +7278,12 @@ main_Theme.prototype.baseIconClass = '';
|
|
|
7079
7278
|
main_Theme.prototype.iconOverridePrefix = '';
|
|
7080
7279
|
|
|
7081
7280
|
var main_ScrollResponder = /** @class */ (function () {
|
|
7082
|
-
function ScrollResponder(execFunc, emitter, scrollTime) {
|
|
7281
|
+
function ScrollResponder(execFunc, emitter, scrollTime, scrollTimeReset) {
|
|
7083
7282
|
var _this = this;
|
|
7084
7283
|
this.execFunc = execFunc;
|
|
7085
7284
|
this.emitter = emitter;
|
|
7086
7285
|
this.scrollTime = scrollTime;
|
|
7286
|
+
this.scrollTimeReset = scrollTimeReset;
|
|
7087
7287
|
this.handleScrollRequest = function (request) {
|
|
7088
7288
|
_this.queuedRequest = __assign({}, _this.queuedRequest || {}, request);
|
|
7089
7289
|
_this.drain();
|
|
@@ -7095,7 +7295,7 @@ var main_ScrollResponder = /** @class */ (function () {
|
|
|
7095
7295
|
this.emitter.off('_scrollRequest', this.handleScrollRequest);
|
|
7096
7296
|
};
|
|
7097
7297
|
ScrollResponder.prototype.update = function (isDatesNew) {
|
|
7098
|
-
if (isDatesNew) {
|
|
7298
|
+
if (isDatesNew && this.scrollTimeReset) {
|
|
7099
7299
|
this.fireInitialScroll(); // will drain
|
|
7100
7300
|
}
|
|
7101
7301
|
else {
|
|
@@ -7137,7 +7337,7 @@ function buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator,
|
|
|
7137
7337
|
emitter.off('_resize', handler);
|
|
7138
7338
|
},
|
|
7139
7339
|
createScrollResponder: function (execFunc) {
|
|
7140
|
-
return new main_ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime));
|
|
7340
|
+
return new main_ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime), viewOptions.scrollTimeReset);
|
|
7141
7341
|
},
|
|
7142
7342
|
registerInteractiveComponent: registerInteractiveComponent,
|
|
7143
7343
|
unregisterInteractiveComponent: unregisterInteractiveComponent,
|
|
@@ -7194,467 +7394,153 @@ function setRef(ref, current) {
|
|
|
7194
7394
|
}
|
|
7195
7395
|
}
|
|
7196
7396
|
|
|
7197
|
-
|
|
7198
|
-
|
|
7199
|
-
|
|
7200
|
-
|
|
7201
|
-
|
|
7202
|
-
|
|
7203
|
-
|
|
7204
|
-
|
|
7205
|
-
|
|
7206
|
-
|
|
7207
|
-
|
|
7208
|
-
|
|
7209
|
-
|
|
7210
|
-
if (dateProfile) {
|
|
7211
|
-
return expandRecurring(eventStore, dateProfile.activeRange, context);
|
|
7212
|
-
}
|
|
7213
|
-
return eventStore;
|
|
7214
|
-
case 'REMOVE_EVENTS':
|
|
7215
|
-
return excludeSubEventStore(eventStore, action.eventStore);
|
|
7216
|
-
case 'REMOVE_EVENT_SOURCE':
|
|
7217
|
-
return excludeEventsBySourceId(eventStore, action.sourceId);
|
|
7218
|
-
case 'REMOVE_ALL_EVENT_SOURCES':
|
|
7219
|
-
return filterEventStoreDefs(eventStore, function (eventDef) { return (!eventDef.sourceId // only keep events with no source id
|
|
7220
|
-
); });
|
|
7221
|
-
case 'REMOVE_ALL_EVENTS':
|
|
7222
|
-
return createEmptyEventStore();
|
|
7223
|
-
default:
|
|
7224
|
-
return eventStore;
|
|
7397
|
+
/*
|
|
7398
|
+
an INTERACTABLE date component
|
|
7399
|
+
|
|
7400
|
+
PURPOSES:
|
|
7401
|
+
- hook up to fg, fill, and mirror renderers
|
|
7402
|
+
- interface for dragging and hits
|
|
7403
|
+
*/
|
|
7404
|
+
var main_DateComponent = /** @class */ (function (_super) {
|
|
7405
|
+
__extends(DateComponent, _super);
|
|
7406
|
+
function DateComponent() {
|
|
7407
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
7408
|
+
_this.uid = guid();
|
|
7409
|
+
return _this;
|
|
7225
7410
|
}
|
|
7411
|
+
// Hit System
|
|
7412
|
+
// -----------------------------------------------------------------------------------------------------------------
|
|
7413
|
+
DateComponent.prototype.prepareHits = function () {
|
|
7414
|
+
};
|
|
7415
|
+
DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {
|
|
7416
|
+
return null; // this should be abstract
|
|
7417
|
+
};
|
|
7418
|
+
// Pointer Interaction Utils
|
|
7419
|
+
// -----------------------------------------------------------------------------------------------------------------
|
|
7420
|
+
DateComponent.prototype.isValidSegDownEl = function (el) {
|
|
7421
|
+
return !this.props.eventDrag && // HACK
|
|
7422
|
+
!this.props.eventResize && // HACK
|
|
7423
|
+
!elementClosest(el, '.fc-event-mirror');
|
|
7424
|
+
};
|
|
7425
|
+
DateComponent.prototype.isValidDateDownEl = function (el) {
|
|
7426
|
+
return !elementClosest(el, '.fc-event:not(.fc-bg-event)') &&
|
|
7427
|
+
!elementClosest(el, '.fc-more-link') && // a "more.." link
|
|
7428
|
+
!elementClosest(el, 'a[data-navlink]') && // a clickable nav link
|
|
7429
|
+
!elementClosest(el, '.fc-popover'); // hack
|
|
7430
|
+
};
|
|
7431
|
+
return DateComponent;
|
|
7432
|
+
}(main_BaseComponent));
|
|
7433
|
+
|
|
7434
|
+
// TODO: easier way to add new hooks? need to update a million things
|
|
7435
|
+
function createPlugin(input) {
|
|
7436
|
+
return {
|
|
7437
|
+
id: guid(),
|
|
7438
|
+
deps: input.deps || [],
|
|
7439
|
+
reducers: input.reducers || [],
|
|
7440
|
+
isLoadingFuncs: input.isLoadingFuncs || [],
|
|
7441
|
+
contextInit: [].concat(input.contextInit || []),
|
|
7442
|
+
eventRefiners: input.eventRefiners || {},
|
|
7443
|
+
eventDefMemberAdders: input.eventDefMemberAdders || [],
|
|
7444
|
+
eventSourceRefiners: input.eventSourceRefiners || {},
|
|
7445
|
+
isDraggableTransformers: input.isDraggableTransformers || [],
|
|
7446
|
+
eventDragMutationMassagers: input.eventDragMutationMassagers || [],
|
|
7447
|
+
eventDefMutationAppliers: input.eventDefMutationAppliers || [],
|
|
7448
|
+
dateSelectionTransformers: input.dateSelectionTransformers || [],
|
|
7449
|
+
datePointTransforms: input.datePointTransforms || [],
|
|
7450
|
+
dateSpanTransforms: input.dateSpanTransforms || [],
|
|
7451
|
+
views: input.views || {},
|
|
7452
|
+
viewPropsTransformers: input.viewPropsTransformers || [],
|
|
7453
|
+
isPropsValid: input.isPropsValid || null,
|
|
7454
|
+
externalDefTransforms: input.externalDefTransforms || [],
|
|
7455
|
+
viewContainerAppends: input.viewContainerAppends || [],
|
|
7456
|
+
eventDropTransformers: input.eventDropTransformers || [],
|
|
7457
|
+
componentInteractions: input.componentInteractions || [],
|
|
7458
|
+
calendarInteractions: input.calendarInteractions || [],
|
|
7459
|
+
themeClasses: input.themeClasses || {},
|
|
7460
|
+
eventSourceDefs: input.eventSourceDefs || [],
|
|
7461
|
+
cmdFormatter: input.cmdFormatter,
|
|
7462
|
+
recurringTypes: input.recurringTypes || [],
|
|
7463
|
+
namedTimeZonedImpl: input.namedTimeZonedImpl,
|
|
7464
|
+
initialView: input.initialView || '',
|
|
7465
|
+
elementDraggingImpl: input.elementDraggingImpl,
|
|
7466
|
+
optionChangeHandlers: input.optionChangeHandlers || {},
|
|
7467
|
+
scrollGridImpl: input.scrollGridImpl || null,
|
|
7468
|
+
contentTypeHandlers: input.contentTypeHandlers || {},
|
|
7469
|
+
listenerRefiners: input.listenerRefiners || {},
|
|
7470
|
+
optionRefiners: input.optionRefiners || {},
|
|
7471
|
+
propSetHandlers: input.propSetHandlers || {},
|
|
7472
|
+
};
|
|
7226
7473
|
}
|
|
7227
|
-
function
|
|
7228
|
-
|
|
7229
|
-
|
|
7230
|
-
|
|
7231
|
-
|
|
7232
|
-
|
|
7233
|
-
|
|
7474
|
+
function buildPluginHooks(pluginDefs, globalDefs) {
|
|
7475
|
+
var isAdded = {};
|
|
7476
|
+
var hooks = {
|
|
7477
|
+
reducers: [],
|
|
7478
|
+
isLoadingFuncs: [],
|
|
7479
|
+
contextInit: [],
|
|
7480
|
+
eventRefiners: {},
|
|
7481
|
+
eventDefMemberAdders: [],
|
|
7482
|
+
eventSourceRefiners: {},
|
|
7483
|
+
isDraggableTransformers: [],
|
|
7484
|
+
eventDragMutationMassagers: [],
|
|
7485
|
+
eventDefMutationAppliers: [],
|
|
7486
|
+
dateSelectionTransformers: [],
|
|
7487
|
+
datePointTransforms: [],
|
|
7488
|
+
dateSpanTransforms: [],
|
|
7489
|
+
views: {},
|
|
7490
|
+
viewPropsTransformers: [],
|
|
7491
|
+
isPropsValid: null,
|
|
7492
|
+
externalDefTransforms: [],
|
|
7493
|
+
viewContainerAppends: [],
|
|
7494
|
+
eventDropTransformers: [],
|
|
7495
|
+
componentInteractions: [],
|
|
7496
|
+
calendarInteractions: [],
|
|
7497
|
+
themeClasses: {},
|
|
7498
|
+
eventSourceDefs: [],
|
|
7499
|
+
cmdFormatter: null,
|
|
7500
|
+
recurringTypes: [],
|
|
7501
|
+
namedTimeZonedImpl: null,
|
|
7502
|
+
initialView: '',
|
|
7503
|
+
elementDraggingImpl: null,
|
|
7504
|
+
optionChangeHandlers: {},
|
|
7505
|
+
scrollGridImpl: null,
|
|
7506
|
+
contentTypeHandlers: {},
|
|
7507
|
+
listenerRefiners: {},
|
|
7508
|
+
optionRefiners: {},
|
|
7509
|
+
propSetHandlers: {},
|
|
7510
|
+
};
|
|
7511
|
+
function addDefs(defs) {
|
|
7512
|
+
for (var _i = 0, defs_1 = defs; _i < defs_1.length; _i++) {
|
|
7513
|
+
var def = defs_1[_i];
|
|
7514
|
+
if (!isAdded[def.id]) {
|
|
7515
|
+
isAdded[def.id] = true;
|
|
7516
|
+
addDefs(def.deps);
|
|
7517
|
+
hooks = combineHooks(hooks, def);
|
|
7518
|
+
}
|
|
7234
7519
|
}
|
|
7235
|
-
return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);
|
|
7236
|
-
}
|
|
7237
|
-
return eventStore;
|
|
7238
|
-
}
|
|
7239
|
-
function transformRawEvents(rawEvents, eventSource, context) {
|
|
7240
|
-
var calEachTransform = context.options.eventDataTransform;
|
|
7241
|
-
var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;
|
|
7242
|
-
if (sourceEachTransform) {
|
|
7243
|
-
rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);
|
|
7244
7520
|
}
|
|
7245
|
-
if (
|
|
7246
|
-
|
|
7521
|
+
if (pluginDefs) {
|
|
7522
|
+
addDefs(pluginDefs);
|
|
7247
7523
|
}
|
|
7248
|
-
|
|
7524
|
+
addDefs(globalDefs);
|
|
7525
|
+
return hooks;
|
|
7249
7526
|
}
|
|
7250
|
-
function
|
|
7251
|
-
var
|
|
7252
|
-
|
|
7253
|
-
|
|
7254
|
-
|
|
7255
|
-
|
|
7256
|
-
|
|
7257
|
-
for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {
|
|
7258
|
-
var rawEvent = rawEvents_1[_i];
|
|
7259
|
-
var refinedEvent = func(rawEvent);
|
|
7260
|
-
if (refinedEvent) {
|
|
7261
|
-
refinedEvents.push(refinedEvent);
|
|
7262
|
-
}
|
|
7263
|
-
else if (refinedEvent == null) {
|
|
7264
|
-
refinedEvents.push(rawEvent);
|
|
7265
|
-
} // if a different falsy value, do nothing
|
|
7527
|
+
function buildBuildPluginHooks() {
|
|
7528
|
+
var currentOverrideDefs = [];
|
|
7529
|
+
var currentGlobalDefs = [];
|
|
7530
|
+
var currentHooks;
|
|
7531
|
+
return function (overrideDefs, globalDefs) {
|
|
7532
|
+
if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {
|
|
7533
|
+
currentHooks = buildPluginHooks(overrideDefs, globalDefs);
|
|
7266
7534
|
}
|
|
7267
|
-
|
|
7268
|
-
|
|
7269
|
-
|
|
7270
|
-
|
|
7271
|
-
if (expandRange) {
|
|
7272
|
-
subset = expandRecurring(subset, expandRange, context);
|
|
7273
|
-
}
|
|
7274
|
-
return mergeEventStores(eventStore, subset);
|
|
7275
|
-
}
|
|
7276
|
-
function rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {
|
|
7277
|
-
var defs = eventStore.defs;
|
|
7278
|
-
var instances = mapHash(eventStore.instances, function (instance) {
|
|
7279
|
-
var def = defs[instance.defId];
|
|
7280
|
-
if (def.allDay || def.recurringDef) {
|
|
7281
|
-
return instance; // isn't dependent on timezone
|
|
7282
|
-
}
|
|
7283
|
-
return __assign(__assign({}, instance), { range: {
|
|
7284
|
-
start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),
|
|
7285
|
-
end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)),
|
|
7286
|
-
}, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });
|
|
7287
|
-
});
|
|
7288
|
-
return { defs: defs, instances: instances };
|
|
7289
|
-
}
|
|
7290
|
-
function excludeEventsBySourceId(eventStore, sourceId) {
|
|
7291
|
-
return filterEventStoreDefs(eventStore, function (eventDef) { return eventDef.sourceId !== sourceId; });
|
|
7292
|
-
}
|
|
7293
|
-
// QUESTION: why not just return instances? do a general object-property-exclusion util
|
|
7294
|
-
function excludeInstances(eventStore, removals) {
|
|
7295
|
-
return {
|
|
7296
|
-
defs: eventStore.defs,
|
|
7297
|
-
instances: filterHash(eventStore.instances, function (instance) { return !removals[instance.instanceId]; }),
|
|
7298
|
-
};
|
|
7299
|
-
}
|
|
7300
|
-
|
|
7301
|
-
// high-level segmenting-aware tester functions
|
|
7302
|
-
// ------------------------------------------------------------------------------------------------------------------------
|
|
7303
|
-
function isInteractionValid(interaction, context) {
|
|
7304
|
-
return isNewPropsValid({ eventDrag: interaction }, context); // HACK: the eventDrag props is used for ALL interactions
|
|
7305
|
-
}
|
|
7306
|
-
function isDateSelectionValid(dateSelection, context) {
|
|
7307
|
-
return isNewPropsValid({ dateSelection: dateSelection }, context);
|
|
7308
|
-
}
|
|
7309
|
-
function isNewPropsValid(newProps, context) {
|
|
7310
|
-
var calendarState = context.getCurrentData();
|
|
7311
|
-
var props = __assign({ businessHours: calendarState.businessHours, dateSelection: '', eventStore: calendarState.eventStore, eventUiBases: calendarState.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);
|
|
7312
|
-
return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);
|
|
7313
|
-
}
|
|
7314
|
-
function isPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
7315
|
-
if (dateSpanMeta === void 0) { dateSpanMeta = {}; }
|
|
7316
|
-
if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {
|
|
7317
|
-
return false;
|
|
7318
|
-
}
|
|
7319
|
-
if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {
|
|
7320
|
-
return false;
|
|
7321
|
-
}
|
|
7322
|
-
return true;
|
|
7323
|
-
}
|
|
7324
|
-
// Moving Event Validation
|
|
7325
|
-
// ------------------------------------------------------------------------------------------------------------------------
|
|
7326
|
-
function isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
7327
|
-
var currentState = context.getCurrentData();
|
|
7328
|
-
var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions
|
|
7329
|
-
var subjectEventStore = interaction.mutatedEvents;
|
|
7330
|
-
var subjectDefs = subjectEventStore.defs;
|
|
7331
|
-
var subjectInstances = subjectEventStore.instances;
|
|
7332
|
-
var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?
|
|
7333
|
-
state.eventUiBases :
|
|
7334
|
-
{ '': currentState.selectionConfig });
|
|
7335
|
-
if (filterConfig) {
|
|
7336
|
-
subjectConfigs = mapHash(subjectConfigs, filterConfig);
|
|
7337
|
-
}
|
|
7338
|
-
// exclude the subject events. TODO: exclude defs too?
|
|
7339
|
-
var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);
|
|
7340
|
-
var otherDefs = otherEventStore.defs;
|
|
7341
|
-
var otherInstances = otherEventStore.instances;
|
|
7342
|
-
var otherConfigs = compileEventUis(otherDefs, state.eventUiBases);
|
|
7343
|
-
for (var subjectInstanceId in subjectInstances) {
|
|
7344
|
-
var subjectInstance = subjectInstances[subjectInstanceId];
|
|
7345
|
-
var subjectRange = subjectInstance.range;
|
|
7346
|
-
var subjectConfig = subjectConfigs[subjectInstance.defId];
|
|
7347
|
-
var subjectDef = subjectDefs[subjectInstance.defId];
|
|
7348
|
-
// constraint
|
|
7349
|
-
if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {
|
|
7350
|
-
return false;
|
|
7351
|
-
}
|
|
7352
|
-
// overlap
|
|
7353
|
-
var eventOverlap = context.options.eventOverlap;
|
|
7354
|
-
var eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;
|
|
7355
|
-
for (var otherInstanceId in otherInstances) {
|
|
7356
|
-
var otherInstance = otherInstances[otherInstanceId];
|
|
7357
|
-
// intersect! evaluate
|
|
7358
|
-
if (rangesIntersect(subjectRange, otherInstance.range)) {
|
|
7359
|
-
var otherOverlap = otherConfigs[otherInstance.defId].overlap;
|
|
7360
|
-
// consider the other event's overlap. only do this if the subject event is a "real" event
|
|
7361
|
-
if (otherOverlap === false && interaction.isEvent) {
|
|
7362
|
-
return false;
|
|
7363
|
-
}
|
|
7364
|
-
if (subjectConfig.overlap === false) {
|
|
7365
|
-
return false;
|
|
7366
|
-
}
|
|
7367
|
-
if (eventOverlapFunc && !eventOverlapFunc(new main_EventApi(context, otherDefs[otherInstance.defId], otherInstance), // still event
|
|
7368
|
-
new main_EventApi(context, subjectDef, subjectInstance))) {
|
|
7369
|
-
return false;
|
|
7370
|
-
}
|
|
7371
|
-
}
|
|
7372
|
-
}
|
|
7373
|
-
// allow (a function)
|
|
7374
|
-
var calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state
|
|
7375
|
-
for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) {
|
|
7376
|
-
var subjectAllow = _a[_i];
|
|
7377
|
-
var subjectDateSpan = __assign(__assign({}, dateSpanMeta), { range: subjectInstance.range, allDay: subjectDef.allDay });
|
|
7378
|
-
var origDef = calendarEventStore.defs[subjectDef.defId];
|
|
7379
|
-
var origInstance = calendarEventStore.instances[subjectInstanceId];
|
|
7380
|
-
var eventApi = void 0;
|
|
7381
|
-
if (origDef) { // was previously in the calendar
|
|
7382
|
-
eventApi = new main_EventApi(context, origDef, origInstance);
|
|
7383
|
-
}
|
|
7384
|
-
else { // was an external event
|
|
7385
|
-
eventApi = new main_EventApi(context, subjectDef); // no instance, because had no dates
|
|
7386
|
-
}
|
|
7387
|
-
if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {
|
|
7388
|
-
return false;
|
|
7389
|
-
}
|
|
7390
|
-
}
|
|
7391
|
-
}
|
|
7392
|
-
return true;
|
|
7393
|
-
}
|
|
7394
|
-
// Date Selection Validation
|
|
7395
|
-
// ------------------------------------------------------------------------------------------------------------------------
|
|
7396
|
-
function isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
7397
|
-
var relevantEventStore = state.eventStore;
|
|
7398
|
-
var relevantDefs = relevantEventStore.defs;
|
|
7399
|
-
var relevantInstances = relevantEventStore.instances;
|
|
7400
|
-
var selection = state.dateSelection;
|
|
7401
|
-
var selectionRange = selection.range;
|
|
7402
|
-
var selectionConfig = context.getCurrentData().selectionConfig;
|
|
7403
|
-
if (filterConfig) {
|
|
7404
|
-
selectionConfig = filterConfig(selectionConfig);
|
|
7405
|
-
}
|
|
7406
|
-
// constraint
|
|
7407
|
-
if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {
|
|
7408
|
-
return false;
|
|
7409
|
-
}
|
|
7410
|
-
// overlap
|
|
7411
|
-
var selectOverlap = context.options.selectOverlap;
|
|
7412
|
-
var selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;
|
|
7413
|
-
for (var relevantInstanceId in relevantInstances) {
|
|
7414
|
-
var relevantInstance = relevantInstances[relevantInstanceId];
|
|
7415
|
-
// intersect! evaluate
|
|
7416
|
-
if (rangesIntersect(selectionRange, relevantInstance.range)) {
|
|
7417
|
-
if (selectionConfig.overlap === false) {
|
|
7418
|
-
return false;
|
|
7419
|
-
}
|
|
7420
|
-
if (selectOverlapFunc && !selectOverlapFunc(new main_EventApi(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {
|
|
7421
|
-
return false;
|
|
7422
|
-
}
|
|
7423
|
-
}
|
|
7424
|
-
}
|
|
7425
|
-
// allow (a function)
|
|
7426
|
-
for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) {
|
|
7427
|
-
var selectionAllow = _a[_i];
|
|
7428
|
-
var fullDateSpan = __assign(__assign({}, dateSpanMeta), selection);
|
|
7429
|
-
if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {
|
|
7430
|
-
return false;
|
|
7431
|
-
}
|
|
7432
|
-
}
|
|
7433
|
-
return true;
|
|
7434
|
-
}
|
|
7435
|
-
// Constraint Utils
|
|
7436
|
-
// ------------------------------------------------------------------------------------------------------------------------
|
|
7437
|
-
function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {
|
|
7438
|
-
for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) {
|
|
7439
|
-
var constraint = constraints_1[_i];
|
|
7440
|
-
if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {
|
|
7441
|
-
return false;
|
|
7442
|
-
}
|
|
7443
|
-
}
|
|
7444
|
-
return true;
|
|
7445
|
-
}
|
|
7446
|
-
function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours
|
|
7447
|
-
otherEventStore, // for if constraint is an even group ID
|
|
7448
|
-
businessHoursUnexpanded, // for if constraint is 'businessHours'
|
|
7449
|
-
context) {
|
|
7450
|
-
if (constraint === 'businessHours') {
|
|
7451
|
-
return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));
|
|
7452
|
-
}
|
|
7453
|
-
if (typeof constraint === 'string') { // an group ID
|
|
7454
|
-
return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { return eventDef.groupId === constraint; }));
|
|
7455
|
-
}
|
|
7456
|
-
if (typeof constraint === 'object' && constraint) { // non-null object
|
|
7457
|
-
return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));
|
|
7458
|
-
}
|
|
7459
|
-
return []; // if it's false
|
|
7460
|
-
}
|
|
7461
|
-
// TODO: move to event-store file?
|
|
7462
|
-
function eventStoreToRanges(eventStore) {
|
|
7463
|
-
var instances = eventStore.instances;
|
|
7464
|
-
var ranges = [];
|
|
7465
|
-
for (var instanceId in instances) {
|
|
7466
|
-
ranges.push(instances[instanceId].range);
|
|
7467
|
-
}
|
|
7468
|
-
return ranges;
|
|
7469
|
-
}
|
|
7470
|
-
// TODO: move to geom file?
|
|
7471
|
-
function anyRangesContainRange(outerRanges, innerRange) {
|
|
7472
|
-
for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) {
|
|
7473
|
-
var outerRange = outerRanges_1[_i];
|
|
7474
|
-
if (rangeContainsRange(outerRange, innerRange)) {
|
|
7475
|
-
return true;
|
|
7476
|
-
}
|
|
7477
|
-
}
|
|
7478
|
-
return false;
|
|
7479
|
-
}
|
|
7480
|
-
|
|
7481
|
-
/*
|
|
7482
|
-
an INTERACTABLE date component
|
|
7483
|
-
|
|
7484
|
-
PURPOSES:
|
|
7485
|
-
- hook up to fg, fill, and mirror renderers
|
|
7486
|
-
- interface for dragging and hits
|
|
7487
|
-
*/
|
|
7488
|
-
var main_DateComponent = /** @class */ (function (_super) {
|
|
7489
|
-
__extends(DateComponent, _super);
|
|
7490
|
-
function DateComponent() {
|
|
7491
|
-
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
7492
|
-
_this.uid = guid();
|
|
7493
|
-
return _this;
|
|
7494
|
-
}
|
|
7495
|
-
// Hit System
|
|
7496
|
-
// -----------------------------------------------------------------------------------------------------------------
|
|
7497
|
-
DateComponent.prototype.prepareHits = function () {
|
|
7498
|
-
};
|
|
7499
|
-
DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {
|
|
7500
|
-
return null; // this should be abstract
|
|
7501
|
-
};
|
|
7502
|
-
// Validation
|
|
7503
|
-
// -----------------------------------------------------------------------------------------------------------------
|
|
7504
|
-
DateComponent.prototype.isInteractionValid = function (interaction) {
|
|
7505
|
-
var dateProfile = this.props.dateProfile; // HACK
|
|
7506
|
-
var instances = interaction.mutatedEvents.instances;
|
|
7507
|
-
if (dateProfile) { // HACK for MorePopover
|
|
7508
|
-
for (var instanceId in instances) {
|
|
7509
|
-
if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {
|
|
7510
|
-
return false;
|
|
7511
|
-
}
|
|
7512
|
-
}
|
|
7513
|
-
}
|
|
7514
|
-
return isInteractionValid(interaction, this.context);
|
|
7515
|
-
};
|
|
7516
|
-
DateComponent.prototype.isDateSelectionValid = function (selection) {
|
|
7517
|
-
var dateProfile = this.props.dateProfile; // HACK
|
|
7518
|
-
if (dateProfile && // HACK for MorePopover
|
|
7519
|
-
!rangeContainsRange(dateProfile.validRange, selection.range)) {
|
|
7520
|
-
return false;
|
|
7521
|
-
}
|
|
7522
|
-
return isDateSelectionValid(selection, this.context);
|
|
7523
|
-
};
|
|
7524
|
-
// Pointer Interaction Utils
|
|
7525
|
-
// -----------------------------------------------------------------------------------------------------------------
|
|
7526
|
-
DateComponent.prototype.isValidSegDownEl = function (el) {
|
|
7527
|
-
return !this.props.eventDrag && // HACK
|
|
7528
|
-
!this.props.eventResize && // HACK
|
|
7529
|
-
!elementClosest(el, '.fc-event-mirror') &&
|
|
7530
|
-
(this.isPopover() || !this.isInPopover(el));
|
|
7531
|
-
// ^above line ensures we don't detect a seg interaction within a nested component.
|
|
7532
|
-
// it's a HACK because it only supports a popover as the nested component.
|
|
7533
|
-
};
|
|
7534
|
-
DateComponent.prototype.isValidDateDownEl = function (el) {
|
|
7535
|
-
return !elementClosest(el, '.fc-event:not(.fc-bg-event)') &&
|
|
7536
|
-
!elementClosest(el, '.fc-daygrid-more-link') && // a "more.." link
|
|
7537
|
-
!elementClosest(el, 'a[data-navlink]') && // a clickable nav link
|
|
7538
|
-
!this.isInPopover(el);
|
|
7539
|
-
};
|
|
7540
|
-
DateComponent.prototype.isPopover = function () {
|
|
7541
|
-
return false;
|
|
7542
|
-
};
|
|
7543
|
-
DateComponent.prototype.isInPopover = function (el) {
|
|
7544
|
-
return Boolean(elementClosest(el, '.fc-popover'));
|
|
7545
|
-
};
|
|
7546
|
-
return DateComponent;
|
|
7547
|
-
}(main_BaseComponent));
|
|
7548
|
-
|
|
7549
|
-
// TODO: easier way to add new hooks? need to update a million things
|
|
7550
|
-
function createPlugin(input) {
|
|
7551
|
-
return {
|
|
7552
|
-
id: guid(),
|
|
7553
|
-
deps: input.deps || [],
|
|
7554
|
-
reducers: input.reducers || [],
|
|
7555
|
-
contextInit: [].concat(input.contextInit || []),
|
|
7556
|
-
eventRefiners: input.eventRefiners || {},
|
|
7557
|
-
eventDefMemberAdders: input.eventDefMemberAdders || [],
|
|
7558
|
-
eventSourceRefiners: input.eventSourceRefiners || {},
|
|
7559
|
-
isDraggableTransformers: input.isDraggableTransformers || [],
|
|
7560
|
-
eventDragMutationMassagers: input.eventDragMutationMassagers || [],
|
|
7561
|
-
eventDefMutationAppliers: input.eventDefMutationAppliers || [],
|
|
7562
|
-
dateSelectionTransformers: input.dateSelectionTransformers || [],
|
|
7563
|
-
datePointTransforms: input.datePointTransforms || [],
|
|
7564
|
-
dateSpanTransforms: input.dateSpanTransforms || [],
|
|
7565
|
-
views: input.views || {},
|
|
7566
|
-
viewPropsTransformers: input.viewPropsTransformers || [],
|
|
7567
|
-
isPropsValid: input.isPropsValid || null,
|
|
7568
|
-
externalDefTransforms: input.externalDefTransforms || [],
|
|
7569
|
-
eventResizeJoinTransforms: input.eventResizeJoinTransforms || [],
|
|
7570
|
-
viewContainerAppends: input.viewContainerAppends || [],
|
|
7571
|
-
eventDropTransformers: input.eventDropTransformers || [],
|
|
7572
|
-
componentInteractions: input.componentInteractions || [],
|
|
7573
|
-
calendarInteractions: input.calendarInteractions || [],
|
|
7574
|
-
themeClasses: input.themeClasses || {},
|
|
7575
|
-
eventSourceDefs: input.eventSourceDefs || [],
|
|
7576
|
-
cmdFormatter: input.cmdFormatter,
|
|
7577
|
-
recurringTypes: input.recurringTypes || [],
|
|
7578
|
-
namedTimeZonedImpl: input.namedTimeZonedImpl,
|
|
7579
|
-
initialView: input.initialView || '',
|
|
7580
|
-
elementDraggingImpl: input.elementDraggingImpl,
|
|
7581
|
-
optionChangeHandlers: input.optionChangeHandlers || {},
|
|
7582
|
-
scrollGridImpl: input.scrollGridImpl || null,
|
|
7583
|
-
contentTypeHandlers: input.contentTypeHandlers || {},
|
|
7584
|
-
listenerRefiners: input.listenerRefiners || {},
|
|
7585
|
-
optionRefiners: input.optionRefiners || {},
|
|
7586
|
-
propSetHandlers: input.propSetHandlers || {},
|
|
7587
|
-
};
|
|
7588
|
-
}
|
|
7589
|
-
function buildPluginHooks(pluginDefs, globalDefs) {
|
|
7590
|
-
var isAdded = {};
|
|
7591
|
-
var hooks = {
|
|
7592
|
-
reducers: [],
|
|
7593
|
-
contextInit: [],
|
|
7594
|
-
eventRefiners: {},
|
|
7595
|
-
eventDefMemberAdders: [],
|
|
7596
|
-
eventSourceRefiners: {},
|
|
7597
|
-
isDraggableTransformers: [],
|
|
7598
|
-
eventDragMutationMassagers: [],
|
|
7599
|
-
eventDefMutationAppliers: [],
|
|
7600
|
-
dateSelectionTransformers: [],
|
|
7601
|
-
datePointTransforms: [],
|
|
7602
|
-
dateSpanTransforms: [],
|
|
7603
|
-
views: {},
|
|
7604
|
-
viewPropsTransformers: [],
|
|
7605
|
-
isPropsValid: null,
|
|
7606
|
-
externalDefTransforms: [],
|
|
7607
|
-
eventResizeJoinTransforms: [],
|
|
7608
|
-
viewContainerAppends: [],
|
|
7609
|
-
eventDropTransformers: [],
|
|
7610
|
-
componentInteractions: [],
|
|
7611
|
-
calendarInteractions: [],
|
|
7612
|
-
themeClasses: {},
|
|
7613
|
-
eventSourceDefs: [],
|
|
7614
|
-
cmdFormatter: null,
|
|
7615
|
-
recurringTypes: [],
|
|
7616
|
-
namedTimeZonedImpl: null,
|
|
7617
|
-
initialView: '',
|
|
7618
|
-
elementDraggingImpl: null,
|
|
7619
|
-
optionChangeHandlers: {},
|
|
7620
|
-
scrollGridImpl: null,
|
|
7621
|
-
contentTypeHandlers: {},
|
|
7622
|
-
listenerRefiners: {},
|
|
7623
|
-
optionRefiners: {},
|
|
7624
|
-
propSetHandlers: {},
|
|
7625
|
-
};
|
|
7626
|
-
function addDefs(defs) {
|
|
7627
|
-
for (var _i = 0, defs_1 = defs; _i < defs_1.length; _i++) {
|
|
7628
|
-
var def = defs_1[_i];
|
|
7629
|
-
if (!isAdded[def.id]) {
|
|
7630
|
-
isAdded[def.id] = true;
|
|
7631
|
-
addDefs(def.deps);
|
|
7632
|
-
hooks = combineHooks(hooks, def);
|
|
7633
|
-
}
|
|
7634
|
-
}
|
|
7635
|
-
}
|
|
7636
|
-
if (pluginDefs) {
|
|
7637
|
-
addDefs(pluginDefs);
|
|
7638
|
-
}
|
|
7639
|
-
addDefs(globalDefs);
|
|
7640
|
-
return hooks;
|
|
7641
|
-
}
|
|
7642
|
-
function buildBuildPluginHooks() {
|
|
7643
|
-
var currentOverrideDefs = [];
|
|
7644
|
-
var currentGlobalDefs = [];
|
|
7645
|
-
var currentHooks;
|
|
7646
|
-
return function (overrideDefs, globalDefs) {
|
|
7647
|
-
if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {
|
|
7648
|
-
currentHooks = buildPluginHooks(overrideDefs, globalDefs);
|
|
7649
|
-
}
|
|
7650
|
-
currentOverrideDefs = overrideDefs;
|
|
7651
|
-
currentGlobalDefs = globalDefs;
|
|
7652
|
-
return currentHooks;
|
|
7653
|
-
};
|
|
7535
|
+
currentOverrideDefs = overrideDefs;
|
|
7536
|
+
currentGlobalDefs = globalDefs;
|
|
7537
|
+
return currentHooks;
|
|
7538
|
+
};
|
|
7654
7539
|
}
|
|
7655
7540
|
function combineHooks(hooks0, hooks1) {
|
|
7656
7541
|
return {
|
|
7657
7542
|
reducers: hooks0.reducers.concat(hooks1.reducers),
|
|
7543
|
+
isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),
|
|
7658
7544
|
contextInit: hooks0.contextInit.concat(hooks1.contextInit),
|
|
7659
7545
|
eventRefiners: __assign(__assign({}, hooks0.eventRefiners), hooks1.eventRefiners),
|
|
7660
7546
|
eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),
|
|
@@ -7669,7 +7555,6 @@ function combineHooks(hooks0, hooks1) {
|
|
|
7669
7555
|
viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),
|
|
7670
7556
|
isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,
|
|
7671
7557
|
externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),
|
|
7672
|
-
eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms),
|
|
7673
7558
|
viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),
|
|
7674
7559
|
eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),
|
|
7675
7560
|
calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),
|
|
@@ -7822,39 +7707,56 @@ var main_ContentHookInner = /** @class */ (function (_super) {
|
|
|
7822
7707
|
}
|
|
7823
7708
|
};
|
|
7824
7709
|
ContentHookInner.prototype.renderInnerContent = function () {
|
|
7825
|
-
var
|
|
7826
|
-
var
|
|
7827
|
-
var
|
|
7828
|
-
|
|
7829
|
-
|
|
7830
|
-
|
|
7831
|
-
innerContent = normalizeContent(props.defaultContent, props.hookProps);
|
|
7832
|
-
}
|
|
7833
|
-
if (innerContent !== undefined) { // we allow custom content handlers to return nothing
|
|
7710
|
+
var customContentInfo = this.customContentInfo; // only populated if using non-[p]react node(s)
|
|
7711
|
+
var innerContent = this.getInnerContent();
|
|
7712
|
+
var meta = this.getContentMeta(innerContent);
|
|
7713
|
+
// initial run, or content-type changing? (from vue -> react for example)
|
|
7714
|
+
if (!customContentInfo || customContentInfo.contentKey !== meta.contentKey) {
|
|
7715
|
+
// clearing old value
|
|
7834
7716
|
if (customContentInfo) {
|
|
7835
|
-
customContentInfo.
|
|
7836
|
-
|
|
7837
|
-
else if (typeof innerContent === 'object') {
|
|
7838
|
-
// look for a prop that would indicate a custom content handler is needed
|
|
7839
|
-
for (var contentKey in contentTypeHandlers) {
|
|
7840
|
-
if (innerContent[contentKey] !== undefined) {
|
|
7841
|
-
var stuff = contentTypeHandlers[contentKey]();
|
|
7842
|
-
customContentInfo = this.customContentInfo = __assign({ contentKey: contentKey, contentVal: innerContent[contentKey] }, stuff);
|
|
7843
|
-
break;
|
|
7844
|
-
}
|
|
7717
|
+
if (customContentInfo.destroy) {
|
|
7718
|
+
customContentInfo.destroy();
|
|
7845
7719
|
}
|
|
7720
|
+
customContentInfo = this.customContentInfo = null;
|
|
7846
7721
|
}
|
|
7847
|
-
|
|
7848
|
-
|
|
7722
|
+
// assigning new value
|
|
7723
|
+
if (meta.contentKey) {
|
|
7724
|
+
customContentInfo = this.customContentInfo = __assign({ contentKey: meta.contentKey, contentVal: innerContent[meta.contentKey] }, meta.buildLifecycleFuncs());
|
|
7849
7725
|
}
|
|
7850
|
-
|
|
7851
|
-
|
|
7726
|
+
// updating
|
|
7727
|
+
}
|
|
7728
|
+
else if (customContentInfo) {
|
|
7729
|
+
customContentInfo.contentVal = innerContent[meta.contentKey];
|
|
7730
|
+
}
|
|
7731
|
+
return customContentInfo
|
|
7732
|
+
? [] // signal that something was specified
|
|
7733
|
+
: innerContent; // assume a [p]react vdom node. use it
|
|
7734
|
+
};
|
|
7735
|
+
ContentHookInner.prototype.getInnerContent = function () {
|
|
7736
|
+
var props = this.props;
|
|
7737
|
+
var innerContent = normalizeContent(props.content, props.hookProps);
|
|
7738
|
+
if (innerContent === undefined) { // use the default
|
|
7739
|
+
innerContent = normalizeContent(props.defaultContent, props.hookProps);
|
|
7740
|
+
}
|
|
7741
|
+
return innerContent == null ? null : innerContent; // convert undefined to null (better for React)
|
|
7742
|
+
};
|
|
7743
|
+
ContentHookInner.prototype.getContentMeta = function (innerContent) {
|
|
7744
|
+
var contentTypeHandlers = this.context.pluginHooks.contentTypeHandlers;
|
|
7745
|
+
var contentKey = '';
|
|
7746
|
+
var buildLifecycleFuncs = null;
|
|
7747
|
+
if (innerContent) { // allowed to be null, for convenience to caller
|
|
7748
|
+
for (var searchKey in contentTypeHandlers) {
|
|
7749
|
+
if (innerContent[searchKey] !== undefined) {
|
|
7750
|
+
contentKey = searchKey;
|
|
7751
|
+
buildLifecycleFuncs = contentTypeHandlers[searchKey];
|
|
7752
|
+
break;
|
|
7753
|
+
}
|
|
7852
7754
|
}
|
|
7853
7755
|
}
|
|
7854
|
-
return
|
|
7756
|
+
return { contentKey: contentKey, buildLifecycleFuncs: buildLifecycleFuncs };
|
|
7855
7757
|
};
|
|
7856
7758
|
ContentHookInner.prototype.updateCustomContent = function () {
|
|
7857
|
-
if (this.customContentInfo) {
|
|
7759
|
+
if (this.customContentInfo) { // for non-[p]react
|
|
7858
7760
|
this.customContentInfo.render(this.innerElRef.current || this.props.backupElRef.current, // the element to render into
|
|
7859
7761
|
this.customContentInfo.contentVal);
|
|
7860
7762
|
}
|
|
@@ -7998,6 +7900,20 @@ function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionO
|
|
|
7998
7900
|
}
|
|
7999
7901
|
return null;
|
|
8000
7902
|
};
|
|
7903
|
+
var queryButtonTitle = function (optionsSubset) {
|
|
7904
|
+
var buttonHints = optionsSubset.buttonHints || {};
|
|
7905
|
+
var buttonKey = viewDef.defaults.buttonTextKey; // use same key as text
|
|
7906
|
+
if (buttonKey != null && buttonHints[buttonKey] != null) {
|
|
7907
|
+
return buttonHints[buttonKey];
|
|
7908
|
+
}
|
|
7909
|
+
if (buttonHints[viewDef.type] != null) {
|
|
7910
|
+
return buttonHints[viewDef.type];
|
|
7911
|
+
}
|
|
7912
|
+
if (buttonHints[singleUnit] != null) {
|
|
7913
|
+
return buttonHints[singleUnit];
|
|
7914
|
+
}
|
|
7915
|
+
return null;
|
|
7916
|
+
};
|
|
8001
7917
|
return {
|
|
8002
7918
|
type: viewDef.type,
|
|
8003
7919
|
component: viewDef.component,
|
|
@@ -8013,6 +7929,14 @@ function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionO
|
|
|
8013
7929
|
viewDef.defaults.buttonText ||
|
|
8014
7930
|
queryButtonText(BASE_OPTION_DEFAULTS) ||
|
|
8015
7931
|
viewDef.type,
|
|
7932
|
+
// not DRY
|
|
7933
|
+
buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) ||
|
|
7934
|
+
queryButtonTitle(optionOverrides) ||
|
|
7935
|
+
viewDef.overrides.buttonHint,
|
|
7936
|
+
buttonTitleDefault: queryButtonTitle(localeDefaults) ||
|
|
7937
|
+
viewDef.defaults.buttonHint ||
|
|
7938
|
+
queryButtonTitle(BASE_OPTION_DEFAULTS),
|
|
7939
|
+
// will eventually fall back to buttonText
|
|
8016
7940
|
};
|
|
8017
7941
|
}
|
|
8018
7942
|
// hack to get memoization working
|
|
@@ -8102,6 +8026,7 @@ var DateProfileGenerator = /** @class */ (function () {
|
|
|
8102
8026
|
isValid: isValid,
|
|
8103
8027
|
// how far the current date will move for a prev/next operation
|
|
8104
8028
|
dateIncrement: this.buildDateIncrement(currentInfo.duration),
|
|
8029
|
+
// pass a fallback (might be null) ^
|
|
8105
8030
|
};
|
|
8106
8031
|
};
|
|
8107
8032
|
// Builds an object with optional start/end properties.
|
|
@@ -8360,12 +8285,7 @@ function reduceDateProfile(currentDateProfile, action, currentDate, dateProfileG
|
|
|
8360
8285
|
case 'CHANGE_VIEW_TYPE':
|
|
8361
8286
|
return dateProfileGenerator.build(action.dateMarker || currentDate);
|
|
8362
8287
|
case 'CHANGE_DATE':
|
|
8363
|
-
|
|
8364
|
-
!rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker) // don't move if date already in view
|
|
8365
|
-
) {
|
|
8366
|
-
return dateProfileGenerator.build(action.dateMarker);
|
|
8367
|
-
}
|
|
8368
|
-
break;
|
|
8288
|
+
return dateProfileGenerator.build(action.dateMarker);
|
|
8369
8289
|
case 'PREV':
|
|
8370
8290
|
dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);
|
|
8371
8291
|
if (dp.isValid) {
|
|
@@ -8404,7 +8324,7 @@ function reduceEventSources(eventSources, action, dateProfile, context) {
|
|
|
8404
8324
|
case 'FETCH_EVENT_SOURCES':
|
|
8405
8325
|
return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?
|
|
8406
8326
|
arrayToHash(action.sourceIds) :
|
|
8407
|
-
excludeStaticSources(eventSources, context), activeRange, context);
|
|
8327
|
+
excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);
|
|
8408
8328
|
case 'RECEIVE_EVENTS':
|
|
8409
8329
|
case 'RECEIVE_EVENT_ERROR':
|
|
8410
8330
|
return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);
|
|
@@ -8416,16 +8336,15 @@ function reduceEventSources(eventSources, action, dateProfile, context) {
|
|
|
8416
8336
|
}
|
|
8417
8337
|
function reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {
|
|
8418
8338
|
var activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?
|
|
8419
|
-
return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, context);
|
|
8339
|
+
return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);
|
|
8420
8340
|
}
|
|
8421
|
-
function
|
|
8422
|
-
var cnt = 0;
|
|
8341
|
+
function computeEventSourcesLoading(eventSources) {
|
|
8423
8342
|
for (var sourceId in eventSources) {
|
|
8424
8343
|
if (eventSources[sourceId].isFetching) {
|
|
8425
|
-
|
|
8344
|
+
return true;
|
|
8426
8345
|
}
|
|
8427
8346
|
}
|
|
8428
|
-
return
|
|
8347
|
+
return false;
|
|
8429
8348
|
}
|
|
8430
8349
|
function addSources(eventSourceHash, sources, fetchRange, context) {
|
|
8431
8350
|
var hash = {};
|
|
@@ -8442,7 +8361,7 @@ function removeSource(eventSourceHash, sourceId) {
|
|
|
8442
8361
|
return filterHash(eventSourceHash, function (eventSource) { return eventSource.sourceId !== sourceId; });
|
|
8443
8362
|
}
|
|
8444
8363
|
function fetchDirtySources(sourceHash, fetchRange, context) {
|
|
8445
|
-
return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { return isSourceDirty(eventSource, fetchRange, context); }), fetchRange, context);
|
|
8364
|
+
return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { return isSourceDirty(eventSource, fetchRange, context); }), fetchRange, false, context);
|
|
8446
8365
|
}
|
|
8447
8366
|
function isSourceDirty(eventSource, fetchRange, context) {
|
|
8448
8367
|
if (!doesSourceNeedRange(eventSource, context)) {
|
|
@@ -8454,12 +8373,12 @@ function isSourceDirty(eventSource, fetchRange, context) {
|
|
|
8454
8373
|
fetchRange.start < eventSource.fetchRange.start ||
|
|
8455
8374
|
fetchRange.end > eventSource.fetchRange.end;
|
|
8456
8375
|
}
|
|
8457
|
-
function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, context) {
|
|
8376
|
+
function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {
|
|
8458
8377
|
var nextSources = {};
|
|
8459
8378
|
for (var sourceId in prevSources) {
|
|
8460
8379
|
var source = prevSources[sourceId];
|
|
8461
8380
|
if (sourceIdHash[sourceId]) {
|
|
8462
|
-
nextSources[sourceId] = fetchSource(source, fetchRange, context);
|
|
8381
|
+
nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);
|
|
8463
8382
|
}
|
|
8464
8383
|
else {
|
|
8465
8384
|
nextSources[sourceId] = source;
|
|
@@ -8467,13 +8386,14 @@ function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, context) {
|
|
|
8467
8386
|
}
|
|
8468
8387
|
return nextSources;
|
|
8469
8388
|
}
|
|
8470
|
-
function fetchSource(eventSource, fetchRange, context) {
|
|
8389
|
+
function fetchSource(eventSource, fetchRange, isRefetch, context) {
|
|
8471
8390
|
var options = context.options, calendarApi = context.calendarApi;
|
|
8472
8391
|
var sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];
|
|
8473
8392
|
var fetchId = guid();
|
|
8474
8393
|
sourceDef.fetch({
|
|
8475
8394
|
eventSource: eventSource,
|
|
8476
8395
|
range: fetchRange,
|
|
8396
|
+
isRefetch: isRefetch,
|
|
8477
8397
|
context: context,
|
|
8478
8398
|
}, function (res) {
|
|
8479
8399
|
var rawEvents = res.rawEvents;
|
|
@@ -8515,33 +8435,139 @@ function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {
|
|
|
8515
8435
|
fetchId === eventSource.latestFetchId) {
|
|
8516
8436
|
return __assign(__assign({}, sourceHash), (_a = {}, _a[sourceId] = __assign(__assign({}, eventSource), { isFetching: false, fetchRange: fetchRange }), _a));
|
|
8517
8437
|
}
|
|
8518
|
-
return sourceHash;
|
|
8519
|
-
}
|
|
8520
|
-
function excludeStaticSources(eventSources, context) {
|
|
8521
|
-
return filterHash(eventSources, function (eventSource) { return doesSourceNeedRange(eventSource, context); });
|
|
8438
|
+
return sourceHash;
|
|
8439
|
+
}
|
|
8440
|
+
function excludeStaticSources(eventSources, context) {
|
|
8441
|
+
return filterHash(eventSources, function (eventSource) { return doesSourceNeedRange(eventSource, context); });
|
|
8442
|
+
}
|
|
8443
|
+
function parseInitialSources(rawOptions, context) {
|
|
8444
|
+
var refiners = buildEventSourceRefiners(context);
|
|
8445
|
+
var rawSources = [].concat(rawOptions.eventSources || []);
|
|
8446
|
+
var sources = []; // parsed
|
|
8447
|
+
if (rawOptions.initialEvents) {
|
|
8448
|
+
rawSources.unshift(rawOptions.initialEvents);
|
|
8449
|
+
}
|
|
8450
|
+
if (rawOptions.events) {
|
|
8451
|
+
rawSources.unshift(rawOptions.events);
|
|
8452
|
+
}
|
|
8453
|
+
for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) {
|
|
8454
|
+
var rawSource = rawSources_1[_i];
|
|
8455
|
+
var source = parseEventSource(rawSource, context, refiners);
|
|
8456
|
+
if (source) {
|
|
8457
|
+
sources.push(source);
|
|
8458
|
+
}
|
|
8459
|
+
}
|
|
8460
|
+
return sources;
|
|
8461
|
+
}
|
|
8462
|
+
function doesSourceNeedRange(eventSource, context) {
|
|
8463
|
+
var defs = context.pluginHooks.eventSourceDefs;
|
|
8464
|
+
return !defs[eventSource.sourceDefId].ignoreRange;
|
|
8465
|
+
}
|
|
8466
|
+
|
|
8467
|
+
function reduceEventStore(eventStore, action, eventSources, dateProfile, context) {
|
|
8468
|
+
switch (action.type) {
|
|
8469
|
+
case 'RECEIVE_EVENTS': // raw
|
|
8470
|
+
return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);
|
|
8471
|
+
case 'ADD_EVENTS': // already parsed, but not expanded
|
|
8472
|
+
return addEvent(eventStore, action.eventStore, // new ones
|
|
8473
|
+
dateProfile ? dateProfile.activeRange : null, context);
|
|
8474
|
+
case 'RESET_EVENTS':
|
|
8475
|
+
return action.eventStore;
|
|
8476
|
+
case 'MERGE_EVENTS': // already parsed and expanded
|
|
8477
|
+
return mergeEventStores(eventStore, action.eventStore);
|
|
8478
|
+
case 'PREV': // TODO: how do we track all actions that affect dateProfile :(
|
|
8479
|
+
case 'NEXT':
|
|
8480
|
+
case 'CHANGE_DATE':
|
|
8481
|
+
case 'CHANGE_VIEW_TYPE':
|
|
8482
|
+
if (dateProfile) {
|
|
8483
|
+
return expandRecurring(eventStore, dateProfile.activeRange, context);
|
|
8484
|
+
}
|
|
8485
|
+
return eventStore;
|
|
8486
|
+
case 'REMOVE_EVENTS':
|
|
8487
|
+
return excludeSubEventStore(eventStore, action.eventStore);
|
|
8488
|
+
case 'REMOVE_EVENT_SOURCE':
|
|
8489
|
+
return excludeEventsBySourceId(eventStore, action.sourceId);
|
|
8490
|
+
case 'REMOVE_ALL_EVENT_SOURCES':
|
|
8491
|
+
return filterEventStoreDefs(eventStore, function (eventDef) { return (!eventDef.sourceId // only keep events with no source id
|
|
8492
|
+
); });
|
|
8493
|
+
case 'REMOVE_ALL_EVENTS':
|
|
8494
|
+
return createEmptyEventStore();
|
|
8495
|
+
default:
|
|
8496
|
+
return eventStore;
|
|
8497
|
+
}
|
|
8498
|
+
}
|
|
8499
|
+
function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, context) {
|
|
8500
|
+
if (eventSource && // not already removed
|
|
8501
|
+
fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources
|
|
8502
|
+
) {
|
|
8503
|
+
var subset = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context);
|
|
8504
|
+
if (fetchRange) {
|
|
8505
|
+
subset = expandRecurring(subset, fetchRange, context);
|
|
8506
|
+
}
|
|
8507
|
+
return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);
|
|
8508
|
+
}
|
|
8509
|
+
return eventStore;
|
|
8510
|
+
}
|
|
8511
|
+
function transformRawEvents(rawEvents, eventSource, context) {
|
|
8512
|
+
var calEachTransform = context.options.eventDataTransform;
|
|
8513
|
+
var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;
|
|
8514
|
+
if (sourceEachTransform) {
|
|
8515
|
+
rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);
|
|
8516
|
+
}
|
|
8517
|
+
if (calEachTransform) {
|
|
8518
|
+
rawEvents = transformEachRawEvent(rawEvents, calEachTransform);
|
|
8519
|
+
}
|
|
8520
|
+
return rawEvents;
|
|
8521
|
+
}
|
|
8522
|
+
function transformEachRawEvent(rawEvents, func) {
|
|
8523
|
+
var refinedEvents;
|
|
8524
|
+
if (!func) {
|
|
8525
|
+
refinedEvents = rawEvents;
|
|
8526
|
+
}
|
|
8527
|
+
else {
|
|
8528
|
+
refinedEvents = [];
|
|
8529
|
+
for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {
|
|
8530
|
+
var rawEvent = rawEvents_1[_i];
|
|
8531
|
+
var refinedEvent = func(rawEvent);
|
|
8532
|
+
if (refinedEvent) {
|
|
8533
|
+
refinedEvents.push(refinedEvent);
|
|
8534
|
+
}
|
|
8535
|
+
else if (refinedEvent == null) {
|
|
8536
|
+
refinedEvents.push(rawEvent);
|
|
8537
|
+
} // if a different falsy value, do nothing
|
|
8538
|
+
}
|
|
8539
|
+
}
|
|
8540
|
+
return refinedEvents;
|
|
8522
8541
|
}
|
|
8523
|
-
function
|
|
8524
|
-
|
|
8525
|
-
|
|
8526
|
-
var sources = []; // parsed
|
|
8527
|
-
if (rawOptions.initialEvents) {
|
|
8528
|
-
rawSources.unshift(rawOptions.initialEvents);
|
|
8529
|
-
}
|
|
8530
|
-
if (rawOptions.events) {
|
|
8531
|
-
rawSources.unshift(rawOptions.events);
|
|
8542
|
+
function addEvent(eventStore, subset, expandRange, context) {
|
|
8543
|
+
if (expandRange) {
|
|
8544
|
+
subset = expandRecurring(subset, expandRange, context);
|
|
8532
8545
|
}
|
|
8533
|
-
|
|
8534
|
-
|
|
8535
|
-
|
|
8536
|
-
|
|
8537
|
-
|
|
8546
|
+
return mergeEventStores(eventStore, subset);
|
|
8547
|
+
}
|
|
8548
|
+
function rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {
|
|
8549
|
+
var defs = eventStore.defs;
|
|
8550
|
+
var instances = mapHash(eventStore.instances, function (instance) {
|
|
8551
|
+
var def = defs[instance.defId];
|
|
8552
|
+
if (def.allDay || def.recurringDef) {
|
|
8553
|
+
return instance; // isn't dependent on timezone
|
|
8538
8554
|
}
|
|
8539
|
-
|
|
8540
|
-
|
|
8555
|
+
return __assign(__assign({}, instance), { range: {
|
|
8556
|
+
start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),
|
|
8557
|
+
end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)),
|
|
8558
|
+
}, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });
|
|
8559
|
+
});
|
|
8560
|
+
return { defs: defs, instances: instances };
|
|
8541
8561
|
}
|
|
8542
|
-
function
|
|
8543
|
-
|
|
8544
|
-
|
|
8562
|
+
function excludeEventsBySourceId(eventStore, sourceId) {
|
|
8563
|
+
return filterEventStoreDefs(eventStore, function (eventDef) { return eventDef.sourceId !== sourceId; });
|
|
8564
|
+
}
|
|
8565
|
+
// QUESTION: why not just return instances? do a general object-property-exclusion util
|
|
8566
|
+
function excludeInstances(eventStore, removals) {
|
|
8567
|
+
return {
|
|
8568
|
+
defs: eventStore.defs,
|
|
8569
|
+
instances: filterHash(eventStore.instances, function (instance) { return !removals[instance.instanceId]; }),
|
|
8570
|
+
};
|
|
8545
8571
|
}
|
|
8546
8572
|
|
|
8547
8573
|
function reduceDateSelection(currentSelection, action) {
|
|
@@ -8601,25 +8627,41 @@ function reduceEventResize(currentResize, action) {
|
|
|
8601
8627
|
}
|
|
8602
8628
|
|
|
8603
8629
|
function parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {
|
|
8604
|
-
var
|
|
8605
|
-
var
|
|
8606
|
-
|
|
8607
|
-
return { headerToolbar: headerToolbar, footerToolbar: footerToolbar, viewsWithButtons: viewsWithButtons };
|
|
8630
|
+
var header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;
|
|
8631
|
+
var footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;
|
|
8632
|
+
return { header: header, footer: footer };
|
|
8608
8633
|
}
|
|
8609
|
-
function parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi
|
|
8610
|
-
|
|
8634
|
+
function parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {
|
|
8635
|
+
var sectionWidgets = {};
|
|
8636
|
+
var viewsWithButtons = [];
|
|
8637
|
+
var hasTitle = false;
|
|
8638
|
+
for (var sectionName in sectionStrHash) {
|
|
8639
|
+
var sectionStr = sectionStrHash[sectionName];
|
|
8640
|
+
var sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);
|
|
8641
|
+
sectionWidgets[sectionName] = sectionRes.widgets;
|
|
8642
|
+
viewsWithButtons.push.apply(viewsWithButtons, sectionRes.viewsWithButtons);
|
|
8643
|
+
hasTitle = hasTitle || sectionRes.hasTitle;
|
|
8644
|
+
}
|
|
8645
|
+
return { sectionWidgets: sectionWidgets, viewsWithButtons: viewsWithButtons, hasTitle: hasTitle };
|
|
8611
8646
|
}
|
|
8612
8647
|
/*
|
|
8613
8648
|
BAD: querying icons and text here. should be done at render time
|
|
8614
8649
|
*/
|
|
8615
|
-
function parseSection(sectionStr, calendarOptions,
|
|
8650
|
+
function parseSection(sectionStr, calendarOptions, // defaults+overrides, then refined
|
|
8651
|
+
calendarOptionOverrides, // overrides only!, unrefined :(
|
|
8652
|
+
theme, viewSpecs, calendarApi) {
|
|
8616
8653
|
var isRtl = calendarOptions.direction === 'rtl';
|
|
8617
8654
|
var calendarCustomButtons = calendarOptions.customButtons || {};
|
|
8618
8655
|
var calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};
|
|
8619
8656
|
var calendarButtonText = calendarOptions.buttonText || {};
|
|
8657
|
+
var calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};
|
|
8658
|
+
var calendarButtonHints = calendarOptions.buttonHints || {};
|
|
8620
8659
|
var sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];
|
|
8621
|
-
|
|
8660
|
+
var viewsWithButtons = [];
|
|
8661
|
+
var hasTitle = false;
|
|
8662
|
+
var widgets = sectionSubstrs.map(function (buttonGroupStr) { return (buttonGroupStr.split(',').map(function (buttonName) {
|
|
8622
8663
|
if (buttonName === 'title') {
|
|
8664
|
+
hasTitle = true;
|
|
8623
8665
|
return { buttonName: buttonName };
|
|
8624
8666
|
}
|
|
8625
8667
|
var customButtonProps;
|
|
@@ -8627,15 +8669,18 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
|
|
|
8627
8669
|
var buttonClick;
|
|
8628
8670
|
var buttonIcon; // only one of these will be set
|
|
8629
8671
|
var buttonText; // "
|
|
8672
|
+
var buttonHint;
|
|
8673
|
+
// ^ for the title="" attribute, for accessibility
|
|
8630
8674
|
if ((customButtonProps = calendarCustomButtons[buttonName])) {
|
|
8631
8675
|
buttonClick = function (ev) {
|
|
8632
8676
|
if (customButtonProps.click) {
|
|
8633
|
-
customButtonProps.click.call(ev.target, ev, ev.target);
|
|
8677
|
+
customButtonProps.click.call(ev.target, ev, ev.target); // TODO: use Calendar this context?
|
|
8634
8678
|
}
|
|
8635
8679
|
};
|
|
8636
8680
|
(buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||
|
|
8637
8681
|
(buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
|
|
8638
8682
|
(buttonText = customButtonProps.text);
|
|
8683
|
+
buttonHint = customButtonProps.hint || customButtonProps.text;
|
|
8639
8684
|
}
|
|
8640
8685
|
else if ((viewSpec = viewSpecs[buttonName])) {
|
|
8641
8686
|
viewsWithButtons.push(buttonName);
|
|
@@ -8645,6 +8690,12 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
|
|
|
8645
8690
|
(buttonText = viewSpec.buttonTextOverride) ||
|
|
8646
8691
|
(buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
|
|
8647
8692
|
(buttonText = viewSpec.buttonTextDefault);
|
|
8693
|
+
var textFallback = viewSpec.buttonTextOverride ||
|
|
8694
|
+
viewSpec.buttonTextDefault;
|
|
8695
|
+
buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride ||
|
|
8696
|
+
viewSpec.buttonTitleDefault ||
|
|
8697
|
+
calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName
|
|
8698
|
+
textFallback);
|
|
8648
8699
|
}
|
|
8649
8700
|
else if (calendarApi[buttonName]) { // a calendarApi method
|
|
8650
8701
|
buttonClick = function () {
|
|
@@ -8652,14 +8703,29 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
|
|
|
8652
8703
|
};
|
|
8653
8704
|
(buttonText = calendarButtonTextOverrides[buttonName]) ||
|
|
8654
8705
|
(buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
|
|
8655
|
-
(buttonText = calendarButtonText[buttonName]);
|
|
8656
|
-
|
|
8706
|
+
(buttonText = calendarButtonText[buttonName]); // everything else is considered default
|
|
8707
|
+
if (buttonName === 'prevYear' || buttonName === 'nextYear') {
|
|
8708
|
+
var prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';
|
|
8709
|
+
buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] ||
|
|
8710
|
+
calendarButtonHints[prevOrNext], [
|
|
8711
|
+
calendarButtonText.year || 'year',
|
|
8712
|
+
'year',
|
|
8713
|
+
], calendarButtonText[buttonName]);
|
|
8714
|
+
}
|
|
8715
|
+
else {
|
|
8716
|
+
buttonHint = function (navUnit) { return formatWithOrdinals(calendarButtonHintOverrides[buttonName] ||
|
|
8717
|
+
calendarButtonHints[buttonName], [
|
|
8718
|
+
calendarButtonText[navUnit] || navUnit,
|
|
8719
|
+
navUnit,
|
|
8720
|
+
], calendarButtonText[buttonName]); };
|
|
8721
|
+
}
|
|
8657
8722
|
}
|
|
8658
|
-
return { buttonName: buttonName, buttonClick: buttonClick, buttonIcon: buttonIcon, buttonText: buttonText };
|
|
8723
|
+
return { buttonName: buttonName, buttonClick: buttonClick, buttonIcon: buttonIcon, buttonText: buttonText, buttonHint: buttonHint };
|
|
8659
8724
|
})); });
|
|
8725
|
+
return { widgets: widgets, viewsWithButtons: viewsWithButtons, hasTitle: hasTitle };
|
|
8660
8726
|
}
|
|
8661
8727
|
|
|
8662
|
-
var eventSourceDef = {
|
|
8728
|
+
var eventSourceDef$2 = {
|
|
8663
8729
|
ignoreRange: true,
|
|
8664
8730
|
parseMeta: function (refined) {
|
|
8665
8731
|
if (Array.isArray(refined.events)) {
|
|
@@ -8674,7 +8740,7 @@ var eventSourceDef = {
|
|
|
8674
8740
|
},
|
|
8675
8741
|
};
|
|
8676
8742
|
var arrayEventSourcePlugin = createPlugin({
|
|
8677
|
-
eventSourceDefs: [eventSourceDef],
|
|
8743
|
+
eventSourceDefs: [eventSourceDef$2],
|
|
8678
8744
|
});
|
|
8679
8745
|
|
|
8680
8746
|
var eventSourceDef$1 = {
|
|
@@ -8758,11 +8824,12 @@ var JSON_FEED_EVENT_SOURCE_REFINERS = {
|
|
|
8758
8824
|
timeZoneParam: String,
|
|
8759
8825
|
};
|
|
8760
8826
|
|
|
8761
|
-
var eventSourceDef
|
|
8827
|
+
var eventSourceDef = {
|
|
8762
8828
|
parseMeta: function (refined) {
|
|
8763
|
-
if (refined.url) {
|
|
8829
|
+
if (refined.url && (refined.format === 'json' || !refined.format)) {
|
|
8764
8830
|
return {
|
|
8765
8831
|
url: refined.url,
|
|
8832
|
+
format: 'json',
|
|
8766
8833
|
method: (refined.method || 'GET').toUpperCase(),
|
|
8767
8834
|
extraParams: refined.extraParams,
|
|
8768
8835
|
startParam: refined.startParam,
|
|
@@ -8784,7 +8851,7 @@ var eventSourceDef$2 = {
|
|
|
8784
8851
|
};
|
|
8785
8852
|
var jsonFeedEventSourcePlugin = createPlugin({
|
|
8786
8853
|
eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,
|
|
8787
|
-
eventSourceDefs: [eventSourceDef
|
|
8854
|
+
eventSourceDefs: [eventSourceDef],
|
|
8788
8855
|
});
|
|
8789
8856
|
function buildRequestParams(meta, range, context) {
|
|
8790
8857
|
var dateEnv = context.dateEnv, options = context.options;
|
|
@@ -8852,7 +8919,7 @@ var recurring = {
|
|
|
8852
8919
|
return {
|
|
8853
8920
|
allDayGuess: Boolean(!refined.startTime && !refined.endTime),
|
|
8854
8921
|
duration: duration,
|
|
8855
|
-
typeData: recurringData,
|
|
8922
|
+
typeData: recurringData, // doesn't need endTime anymore but oh well
|
|
8856
8923
|
};
|
|
8857
8924
|
}
|
|
8858
8925
|
return null;
|
|
@@ -8956,9 +9023,12 @@ var globalPlugins = [
|
|
|
8956
9023
|
simpleRecurringEventsPlugin,
|
|
8957
9024
|
changeHandlerPlugin,
|
|
8958
9025
|
createPlugin({
|
|
9026
|
+
isLoadingFuncs: [
|
|
9027
|
+
function (state) { return computeEventSourcesLoading(state.eventSources); },
|
|
9028
|
+
],
|
|
8959
9029
|
contentTypeHandlers: {
|
|
8960
|
-
html:
|
|
8961
|
-
domNodes:
|
|
9030
|
+
html: buildHtmlRenderer,
|
|
9031
|
+
domNodes: buildDomNodeRenderer,
|
|
8962
9032
|
},
|
|
8963
9033
|
propSetHandlers: {
|
|
8964
9034
|
dateProfile: handleDateProfile,
|
|
@@ -8966,19 +9036,45 @@ var globalPlugins = [
|
|
|
8966
9036
|
},
|
|
8967
9037
|
}),
|
|
8968
9038
|
];
|
|
8969
|
-
function
|
|
8970
|
-
|
|
9039
|
+
function buildHtmlRenderer() {
|
|
9040
|
+
var currentEl = null;
|
|
9041
|
+
var currentHtml = '';
|
|
9042
|
+
function render(el, html) {
|
|
9043
|
+
if (el !== currentEl || html !== currentHtml) {
|
|
9044
|
+
el.innerHTML = html;
|
|
9045
|
+
}
|
|
9046
|
+
currentEl = el;
|
|
9047
|
+
currentHtml = html;
|
|
9048
|
+
}
|
|
9049
|
+
function destroy() {
|
|
9050
|
+
currentEl.innerHTML = '';
|
|
9051
|
+
currentEl = null;
|
|
9052
|
+
currentHtml = '';
|
|
9053
|
+
}
|
|
9054
|
+
return { render: render, destroy: destroy };
|
|
8971
9055
|
}
|
|
8972
|
-
function
|
|
8973
|
-
var
|
|
8974
|
-
var
|
|
8975
|
-
|
|
8976
|
-
|
|
8977
|
-
|
|
8978
|
-
|
|
9056
|
+
function buildDomNodeRenderer() {
|
|
9057
|
+
var currentEl = null;
|
|
9058
|
+
var currentDomNodes = [];
|
|
9059
|
+
function render(el, domNodes) {
|
|
9060
|
+
var newDomNodes = Array.prototype.slice.call(domNodes);
|
|
9061
|
+
if (el !== currentEl || !isArraysEqual(currentDomNodes, newDomNodes)) {
|
|
9062
|
+
// append first, remove second (for scroll resetting)
|
|
9063
|
+
for (var _i = 0, newDomNodes_1 = newDomNodes; _i < newDomNodes_1.length; _i++) {
|
|
9064
|
+
var newNode = newDomNodes_1[_i];
|
|
9065
|
+
el.appendChild(newNode);
|
|
9066
|
+
}
|
|
9067
|
+
destroy();
|
|
8979
9068
|
}
|
|
8980
|
-
|
|
9069
|
+
currentEl = el;
|
|
9070
|
+
currentDomNodes = newDomNodes;
|
|
8981
9071
|
}
|
|
9072
|
+
function destroy() {
|
|
9073
|
+
currentDomNodes.forEach(removeElement);
|
|
9074
|
+
currentDomNodes = [];
|
|
9075
|
+
currentEl = null;
|
|
9076
|
+
}
|
|
9077
|
+
return { render: render, destroy: destroy };
|
|
8982
9078
|
}
|
|
8983
9079
|
|
|
8984
9080
|
var DelayedRunner = /** @class */ (function () {
|
|
@@ -9143,7 +9239,7 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9143
9239
|
this.organizeRawLocales = memoize(organizeRawLocales);
|
|
9144
9240
|
this.buildLocale = memoize(buildLocale);
|
|
9145
9241
|
this.buildPluginHooks = buildBuildPluginHooks();
|
|
9146
|
-
this.buildDateEnv = memoize(buildDateEnv
|
|
9242
|
+
this.buildDateEnv = memoize(buildDateEnv);
|
|
9147
9243
|
this.buildTheme = memoize(buildTheme);
|
|
9148
9244
|
this.parseToolbars = memoize(parseToolbars);
|
|
9149
9245
|
this.buildViewSpecs = memoize(buildViewSpecs);
|
|
@@ -9205,7 +9301,6 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9205
9301
|
businessHours: this.parseContextBusinessHours(calendarContext),
|
|
9206
9302
|
eventSources: eventSources,
|
|
9207
9303
|
eventUiBases: {},
|
|
9208
|
-
loadingLevel: computeEventSourceLoadingLevel(eventSources),
|
|
9209
9304
|
eventStore: createEmptyEventStore(),
|
|
9210
9305
|
renderableEventStore: createEmptyEventStore(),
|
|
9211
9306
|
dateSelection: null,
|
|
@@ -9219,7 +9314,7 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9219
9314
|
var reducer = _c[_b];
|
|
9220
9315
|
__assign(initialState, reducer(null, null, contextAndState));
|
|
9221
9316
|
}
|
|
9222
|
-
if (initialState
|
|
9317
|
+
if (computeIsLoading(initialState, calendarContext)) {
|
|
9223
9318
|
this.emitter.trigger('loading', true); // NOT DRY
|
|
9224
9319
|
}
|
|
9225
9320
|
this.state = initialState;
|
|
@@ -9260,20 +9355,20 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9260
9355
|
}
|
|
9261
9356
|
currentDate = reduceCurrentDate(currentDate, action);
|
|
9262
9357
|
dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);
|
|
9263
|
-
if (
|
|
9358
|
+
if (action.type === 'PREV' || // TODO: move this logic into DateProfileGenerator
|
|
9359
|
+
action.type === 'NEXT' || // "
|
|
9360
|
+
!rangeContainsMarker(dateProfile.currentRange, currentDate)) {
|
|
9264
9361
|
currentDate = dateProfile.currentRange.start;
|
|
9265
9362
|
}
|
|
9266
9363
|
var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);
|
|
9267
|
-
var eventSourceLoadingLevel = computeEventSourceLoadingLevel(eventSources);
|
|
9268
9364
|
var eventStore = reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);
|
|
9269
|
-
var
|
|
9365
|
+
var isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading
|
|
9366
|
+
var renderableEventStore = (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?
|
|
9270
9367
|
(state.renderableEventStore || eventStore) : // try from previous state
|
|
9271
9368
|
eventStore;
|
|
9272
9369
|
var _b = this.buildViewUiProps(calendarContext), eventUiSingleBase = _b.eventUiSingleBase, selectionConfig = _b.selectionConfig; // will memoize obj
|
|
9273
9370
|
var eventUiBySource = this.buildEventUiBySource(eventSources);
|
|
9274
9371
|
var eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);
|
|
9275
|
-
var prevLoadingLevel = state.loadingLevel || 0;
|
|
9276
|
-
var loadingLevel = eventSourceLoadingLevel;
|
|
9277
9372
|
var newState = {
|
|
9278
9373
|
dynamicOptionOverrides: dynamicOptionOverrides,
|
|
9279
9374
|
currentViewType: currentViewType,
|
|
@@ -9284,7 +9379,6 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9284
9379
|
renderableEventStore: renderableEventStore,
|
|
9285
9380
|
selectionConfig: selectionConfig,
|
|
9286
9381
|
eventUiBases: eventUiBases,
|
|
9287
|
-
loadingLevel: loadingLevel,
|
|
9288
9382
|
businessHours: this.parseContextBusinessHours(calendarContext),
|
|
9289
9383
|
dateSelection: reduceDateSelection(state.dateSelection, action),
|
|
9290
9384
|
eventSelection: reduceSelectedEvent(state.eventSelection, action),
|
|
@@ -9296,11 +9390,13 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9296
9390
|
var reducer = _c[_i];
|
|
9297
9391
|
__assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value
|
|
9298
9392
|
}
|
|
9393
|
+
var wasLoading = computeIsLoading(state, calendarContext);
|
|
9394
|
+
var isLoading = computeIsLoading(newState, calendarContext);
|
|
9299
9395
|
// TODO: use propSetHandlers in plugin system
|
|
9300
|
-
if (!
|
|
9396
|
+
if (!wasLoading && isLoading) {
|
|
9301
9397
|
emitter.trigger('loading', true);
|
|
9302
9398
|
}
|
|
9303
|
-
else if (
|
|
9399
|
+
else if (wasLoading && !isLoading) {
|
|
9304
9400
|
emitter.trigger('loading', false);
|
|
9305
9401
|
}
|
|
9306
9402
|
this.state = newState;
|
|
@@ -9482,7 +9578,7 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9482
9578
|
};
|
|
9483
9579
|
return CalendarDataManager;
|
|
9484
9580
|
}());
|
|
9485
|
-
function buildDateEnv
|
|
9581
|
+
function buildDateEnv(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {
|
|
9486
9582
|
var locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);
|
|
9487
9583
|
return new DateEnv({
|
|
9488
9584
|
calendarSystem: 'gregory',
|
|
@@ -9535,6 +9631,7 @@ function buildViewUiProps(calendarContext) {
|
|
|
9535
9631
|
borderColor: options.eventBorderColor,
|
|
9536
9632
|
textColor: options.eventTextColor,
|
|
9537
9633
|
color: options.eventColor,
|
|
9634
|
+
// classNames: options.eventClassNames // render hook will handle this
|
|
9538
9635
|
}, calendarContext),
|
|
9539
9636
|
selectionConfig: createEventUi({
|
|
9540
9637
|
constraint: options.selectConstraint,
|
|
@@ -9543,6 +9640,15 @@ function buildViewUiProps(calendarContext) {
|
|
|
9543
9640
|
}, calendarContext),
|
|
9544
9641
|
};
|
|
9545
9642
|
}
|
|
9643
|
+
function computeIsLoading(state, context) {
|
|
9644
|
+
for (var _i = 0, _a = context.pluginHooks.isLoadingFuncs; _i < _a.length; _i++) {
|
|
9645
|
+
var isLoadingFunc = _a[_i];
|
|
9646
|
+
if (isLoadingFunc(state)) {
|
|
9647
|
+
return true;
|
|
9648
|
+
}
|
|
9649
|
+
}
|
|
9650
|
+
return false;
|
|
9651
|
+
}
|
|
9546
9652
|
function parseContextBusinessHours(calendarContext) {
|
|
9547
9653
|
return parseBusinessHours(calendarContext.options.businessHours, calendarContext);
|
|
9548
9654
|
}
|
|
@@ -9602,9 +9708,248 @@ var NamedTimeZoneImpl = /** @class */ (function () {
|
|
|
9602
9708
|
return NamedTimeZoneImpl;
|
|
9603
9709
|
}());
|
|
9604
9710
|
|
|
9711
|
+
var main_SegHierarchy = /** @class */ (function () {
|
|
9712
|
+
function SegHierarchy() {
|
|
9713
|
+
// settings
|
|
9714
|
+
this.strictOrder = false;
|
|
9715
|
+
this.allowReslicing = false;
|
|
9716
|
+
this.maxCoord = -1; // -1 means no max
|
|
9717
|
+
this.maxStackCnt = -1; // -1 means no max
|
|
9718
|
+
this.levelCoords = []; // ordered
|
|
9719
|
+
this.entriesByLevel = []; // parallel with levelCoords
|
|
9720
|
+
this.stackCnts = {}; // TODO: use better technique!?
|
|
9721
|
+
}
|
|
9722
|
+
SegHierarchy.prototype.addSegs = function (inputs) {
|
|
9723
|
+
var hiddenEntries = [];
|
|
9724
|
+
for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {
|
|
9725
|
+
var input = inputs_1[_i];
|
|
9726
|
+
this.insertEntry(input, hiddenEntries);
|
|
9727
|
+
}
|
|
9728
|
+
return hiddenEntries;
|
|
9729
|
+
};
|
|
9730
|
+
SegHierarchy.prototype.insertEntry = function (entry, hiddenEntries) {
|
|
9731
|
+
var insertion = this.findInsertion(entry);
|
|
9732
|
+
if (this.isInsertionValid(insertion, entry)) {
|
|
9733
|
+
this.insertEntryAt(entry, insertion);
|
|
9734
|
+
return 1;
|
|
9735
|
+
}
|
|
9736
|
+
return this.handleInvalidInsertion(insertion, entry, hiddenEntries);
|
|
9737
|
+
};
|
|
9738
|
+
SegHierarchy.prototype.isInsertionValid = function (insertion, entry) {
|
|
9739
|
+
return (this.maxCoord === -1 || insertion.levelCoord + entry.thickness <= this.maxCoord) &&
|
|
9740
|
+
(this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);
|
|
9741
|
+
};
|
|
9742
|
+
// returns number of new entries inserted
|
|
9743
|
+
SegHierarchy.prototype.handleInvalidInsertion = function (insertion, entry, hiddenEntries) {
|
|
9744
|
+
if (this.allowReslicing && insertion.touchingEntry) {
|
|
9745
|
+
return this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);
|
|
9746
|
+
}
|
|
9747
|
+
hiddenEntries.push(entry);
|
|
9748
|
+
return 0;
|
|
9749
|
+
};
|
|
9750
|
+
SegHierarchy.prototype.splitEntry = function (entry, barrier, hiddenEntries) {
|
|
9751
|
+
var partCnt = 0;
|
|
9752
|
+
var splitHiddenEntries = [];
|
|
9753
|
+
var entrySpan = entry.span;
|
|
9754
|
+
var barrierSpan = barrier.span;
|
|
9755
|
+
if (entrySpan.start < barrierSpan.start) {
|
|
9756
|
+
partCnt += this.insertEntry({
|
|
9757
|
+
index: entry.index,
|
|
9758
|
+
thickness: entry.thickness,
|
|
9759
|
+
span: { start: entrySpan.start, end: barrierSpan.start },
|
|
9760
|
+
}, splitHiddenEntries);
|
|
9761
|
+
}
|
|
9762
|
+
if (entrySpan.end > barrierSpan.end) {
|
|
9763
|
+
partCnt += this.insertEntry({
|
|
9764
|
+
index: entry.index,
|
|
9765
|
+
thickness: entry.thickness,
|
|
9766
|
+
span: { start: barrierSpan.end, end: entrySpan.end },
|
|
9767
|
+
}, splitHiddenEntries);
|
|
9768
|
+
}
|
|
9769
|
+
if (partCnt) {
|
|
9770
|
+
hiddenEntries.push.apply(hiddenEntries, __spreadArray([{
|
|
9771
|
+
index: entry.index,
|
|
9772
|
+
thickness: entry.thickness,
|
|
9773
|
+
span: intersectSpans(barrierSpan, entrySpan), // guaranteed to intersect
|
|
9774
|
+
}], splitHiddenEntries));
|
|
9775
|
+
return partCnt;
|
|
9776
|
+
}
|
|
9777
|
+
hiddenEntries.push(entry);
|
|
9778
|
+
return 0;
|
|
9779
|
+
};
|
|
9780
|
+
SegHierarchy.prototype.insertEntryAt = function (entry, insertion) {
|
|
9781
|
+
var _a = this, entriesByLevel = _a.entriesByLevel, levelCoords = _a.levelCoords;
|
|
9782
|
+
if (insertion.lateral === -1) {
|
|
9783
|
+
// create a new level
|
|
9784
|
+
insertAt(levelCoords, insertion.level, insertion.levelCoord);
|
|
9785
|
+
insertAt(entriesByLevel, insertion.level, [entry]);
|
|
9786
|
+
}
|
|
9787
|
+
else {
|
|
9788
|
+
// insert into existing level
|
|
9789
|
+
insertAt(entriesByLevel[insertion.level], insertion.lateral, entry);
|
|
9790
|
+
}
|
|
9791
|
+
this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;
|
|
9792
|
+
};
|
|
9793
|
+
SegHierarchy.prototype.findInsertion = function (newEntry) {
|
|
9794
|
+
var _a = this, levelCoords = _a.levelCoords, entriesByLevel = _a.entriesByLevel, strictOrder = _a.strictOrder, stackCnts = _a.stackCnts;
|
|
9795
|
+
var levelCnt = levelCoords.length;
|
|
9796
|
+
var candidateCoord = 0;
|
|
9797
|
+
var touchingLevel = -1;
|
|
9798
|
+
var touchingLateral = -1;
|
|
9799
|
+
var touchingEntry = null;
|
|
9800
|
+
var stackCnt = 0;
|
|
9801
|
+
for (var trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {
|
|
9802
|
+
var trackingCoord = levelCoords[trackingLevel];
|
|
9803
|
+
// if the current level is past the placed entry, we have found a good empty space and can stop.
|
|
9804
|
+
// if strictOrder, keep finding more lateral intersections.
|
|
9805
|
+
if (!strictOrder && trackingCoord >= candidateCoord + newEntry.thickness) {
|
|
9806
|
+
break;
|
|
9807
|
+
}
|
|
9808
|
+
var trackingEntries = entriesByLevel[trackingLevel];
|
|
9809
|
+
var trackingEntry = void 0;
|
|
9810
|
+
var searchRes = binarySearch(trackingEntries, newEntry.span.start, getEntrySpanEnd); // find first entry after newEntry's end
|
|
9811
|
+
var lateralIndex = searchRes[0] + searchRes[1]; // if exact match (which doesn't collide), go to next one
|
|
9812
|
+
while ( // loop through entries that horizontally intersect
|
|
9813
|
+
(trackingEntry = trackingEntries[lateralIndex]) && // but not past the whole entry list
|
|
9814
|
+
trackingEntry.span.start < newEntry.span.end // and not entirely past newEntry
|
|
9815
|
+
) {
|
|
9816
|
+
var trackingEntryBottom = trackingCoord + trackingEntry.thickness;
|
|
9817
|
+
// intersects into the top of the candidate?
|
|
9818
|
+
if (trackingEntryBottom > candidateCoord) {
|
|
9819
|
+
candidateCoord = trackingEntryBottom;
|
|
9820
|
+
touchingEntry = trackingEntry;
|
|
9821
|
+
touchingLevel = trackingLevel;
|
|
9822
|
+
touchingLateral = lateralIndex;
|
|
9823
|
+
}
|
|
9824
|
+
// butts up against top of candidate? (will happen if just intersected as well)
|
|
9825
|
+
if (trackingEntryBottom === candidateCoord) {
|
|
9826
|
+
// accumulate the highest possible stackCnt of the trackingEntries that butt up
|
|
9827
|
+
stackCnt = Math.max(stackCnt, stackCnts[buildEntryKey(trackingEntry)] + 1);
|
|
9828
|
+
}
|
|
9829
|
+
lateralIndex += 1;
|
|
9830
|
+
}
|
|
9831
|
+
}
|
|
9832
|
+
// the destination level will be after touchingEntry's level. find it
|
|
9833
|
+
var destLevel = 0;
|
|
9834
|
+
if (touchingEntry) {
|
|
9835
|
+
destLevel = touchingLevel + 1;
|
|
9836
|
+
while (destLevel < levelCnt && levelCoords[destLevel] < candidateCoord) {
|
|
9837
|
+
destLevel += 1;
|
|
9838
|
+
}
|
|
9839
|
+
}
|
|
9840
|
+
// if adding to an existing level, find where to insert
|
|
9841
|
+
var destLateral = -1;
|
|
9842
|
+
if (destLevel < levelCnt && levelCoords[destLevel] === candidateCoord) {
|
|
9843
|
+
destLateral = binarySearch(entriesByLevel[destLevel], newEntry.span.end, getEntrySpanEnd)[0];
|
|
9844
|
+
}
|
|
9845
|
+
return {
|
|
9846
|
+
touchingLevel: touchingLevel,
|
|
9847
|
+
touchingLateral: touchingLateral,
|
|
9848
|
+
touchingEntry: touchingEntry,
|
|
9849
|
+
stackCnt: stackCnt,
|
|
9850
|
+
levelCoord: candidateCoord,
|
|
9851
|
+
level: destLevel,
|
|
9852
|
+
lateral: destLateral,
|
|
9853
|
+
};
|
|
9854
|
+
};
|
|
9855
|
+
// sorted by levelCoord (lowest to highest)
|
|
9856
|
+
SegHierarchy.prototype.toRects = function () {
|
|
9857
|
+
var _a = this, entriesByLevel = _a.entriesByLevel, levelCoords = _a.levelCoords;
|
|
9858
|
+
var levelCnt = entriesByLevel.length;
|
|
9859
|
+
var rects = [];
|
|
9860
|
+
for (var level = 0; level < levelCnt; level += 1) {
|
|
9861
|
+
var entries = entriesByLevel[level];
|
|
9862
|
+
var levelCoord = levelCoords[level];
|
|
9863
|
+
for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
|
|
9864
|
+
var entry = entries_1[_i];
|
|
9865
|
+
rects.push(__assign(__assign({}, entry), { levelCoord: levelCoord }));
|
|
9866
|
+
}
|
|
9867
|
+
}
|
|
9868
|
+
return rects;
|
|
9869
|
+
};
|
|
9870
|
+
return SegHierarchy;
|
|
9871
|
+
}());
|
|
9872
|
+
function getEntrySpanEnd(entry) {
|
|
9873
|
+
return entry.span.end;
|
|
9874
|
+
}
|
|
9875
|
+
function buildEntryKey(entry) {
|
|
9876
|
+
return entry.index + ':' + entry.span.start;
|
|
9877
|
+
}
|
|
9878
|
+
// returns groups with entries sorted by input order
|
|
9879
|
+
function groupIntersectingEntries(entries) {
|
|
9880
|
+
var merges = [];
|
|
9881
|
+
for (var _i = 0, entries_2 = entries; _i < entries_2.length; _i++) {
|
|
9882
|
+
var entry = entries_2[_i];
|
|
9883
|
+
var filteredMerges = [];
|
|
9884
|
+
var hungryMerge = {
|
|
9885
|
+
span: entry.span,
|
|
9886
|
+
entries: [entry],
|
|
9887
|
+
};
|
|
9888
|
+
for (var _a = 0, merges_1 = merges; _a < merges_1.length; _a++) {
|
|
9889
|
+
var merge = merges_1[_a];
|
|
9890
|
+
if (intersectSpans(merge.span, hungryMerge.span)) {
|
|
9891
|
+
hungryMerge = {
|
|
9892
|
+
entries: merge.entries.concat(hungryMerge.entries),
|
|
9893
|
+
span: joinSpans(merge.span, hungryMerge.span),
|
|
9894
|
+
};
|
|
9895
|
+
}
|
|
9896
|
+
else {
|
|
9897
|
+
filteredMerges.push(merge);
|
|
9898
|
+
}
|
|
9899
|
+
}
|
|
9900
|
+
filteredMerges.push(hungryMerge);
|
|
9901
|
+
merges = filteredMerges;
|
|
9902
|
+
}
|
|
9903
|
+
return merges;
|
|
9904
|
+
}
|
|
9905
|
+
function joinSpans(span0, span1) {
|
|
9906
|
+
return {
|
|
9907
|
+
start: Math.min(span0.start, span1.start),
|
|
9908
|
+
end: Math.max(span0.end, span1.end),
|
|
9909
|
+
};
|
|
9910
|
+
}
|
|
9911
|
+
function intersectSpans(span0, span1) {
|
|
9912
|
+
var start = Math.max(span0.start, span1.start);
|
|
9913
|
+
var end = Math.min(span0.end, span1.end);
|
|
9914
|
+
if (start < end) {
|
|
9915
|
+
return { start: start, end: end };
|
|
9916
|
+
}
|
|
9917
|
+
return null;
|
|
9918
|
+
}
|
|
9919
|
+
// general util
|
|
9920
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
9921
|
+
function insertAt(arr, index, item) {
|
|
9922
|
+
arr.splice(index, 0, item);
|
|
9923
|
+
}
|
|
9924
|
+
function binarySearch(a, searchVal, getItemVal) {
|
|
9925
|
+
var startIndex = 0;
|
|
9926
|
+
var endIndex = a.length; // exclusive
|
|
9927
|
+
if (!endIndex || searchVal < getItemVal(a[startIndex])) { // no items OR before first item
|
|
9928
|
+
return [0, 0];
|
|
9929
|
+
}
|
|
9930
|
+
if (searchVal > getItemVal(a[endIndex - 1])) { // after last item
|
|
9931
|
+
return [endIndex, 0];
|
|
9932
|
+
}
|
|
9933
|
+
while (startIndex < endIndex) {
|
|
9934
|
+
var middleIndex = Math.floor(startIndex + (endIndex - startIndex) / 2);
|
|
9935
|
+
var middleVal = getItemVal(a[middleIndex]);
|
|
9936
|
+
if (searchVal < middleVal) {
|
|
9937
|
+
endIndex = middleIndex;
|
|
9938
|
+
}
|
|
9939
|
+
else if (searchVal > middleVal) {
|
|
9940
|
+
startIndex = middleIndex + 1;
|
|
9941
|
+
}
|
|
9942
|
+
else { // equal!
|
|
9943
|
+
return [middleIndex, 1];
|
|
9944
|
+
}
|
|
9945
|
+
}
|
|
9946
|
+
return [startIndex, 0];
|
|
9947
|
+
}
|
|
9948
|
+
|
|
9605
9949
|
var Interaction = /** @class */ (function () {
|
|
9606
9950
|
function Interaction(settings) {
|
|
9607
9951
|
this.component = settings.component;
|
|
9952
|
+
this.isHitComboAllowed = settings.isHitComboAllowed || null;
|
|
9608
9953
|
}
|
|
9609
9954
|
Interaction.prototype.destroy = function () {
|
|
9610
9955
|
};
|
|
@@ -9615,6 +9960,7 @@ function parseInteractionSettings(component, input) {
|
|
|
9615
9960
|
component: component,
|
|
9616
9961
|
el: input.el,
|
|
9617
9962
|
useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,
|
|
9963
|
+
isHitComboAllowed: input.isHitComboAllowed || null,
|
|
9618
9964
|
};
|
|
9619
9965
|
}
|
|
9620
9966
|
function interactionSettingsToStore(settings) {
|
|
@@ -9690,7 +10036,7 @@ var main_ToolbarSection = /** @class */ (function (_super) {
|
|
|
9690
10036
|
ToolbarSection.prototype.render = function () {
|
|
9691
10037
|
var _this = this;
|
|
9692
10038
|
var children = this.props.widgetGroups.map(function (widgetGroup) { return _this.renderWidgetGroup(widgetGroup); });
|
|
9693
|
-
return createElement.apply(void 0,
|
|
10039
|
+
return createElement.apply(void 0, __spreadArray(['div', { className: 'fc-toolbar-chunk' }], children));
|
|
9694
10040
|
};
|
|
9695
10041
|
ToolbarSection.prototype.renderWidgetGroup = function (widgetGroup) {
|
|
9696
10042
|
var props = this.props;
|
|
@@ -9699,26 +10045,26 @@ var main_ToolbarSection = /** @class */ (function (_super) {
|
|
|
9699
10045
|
var isOnlyButtons = true;
|
|
9700
10046
|
for (var _i = 0, widgetGroup_1 = widgetGroup; _i < widgetGroup_1.length; _i++) {
|
|
9701
10047
|
var widget = widgetGroup_1[_i];
|
|
9702
|
-
var buttonName = widget.buttonName, buttonClick = widget.buttonClick, buttonText = widget.buttonText, buttonIcon = widget.buttonIcon;
|
|
10048
|
+
var buttonName = widget.buttonName, buttonClick = widget.buttonClick, buttonText = widget.buttonText, buttonIcon = widget.buttonIcon, buttonHint = widget.buttonHint;
|
|
9703
10049
|
if (buttonName === 'title') {
|
|
9704
10050
|
isOnlyButtons = false;
|
|
9705
|
-
children.push(createElement("h2", { className: "fc-toolbar-title" }, props.title));
|
|
10051
|
+
children.push(createElement("h2", { className: "fc-toolbar-title", id: props.titleId }, props.title));
|
|
9706
10052
|
}
|
|
9707
10053
|
else {
|
|
9708
|
-
var
|
|
9709
|
-
var buttonClasses = ["fc-" + buttonName + "-button", theme.getClass('button')];
|
|
9710
|
-
if (buttonName === props.activeButton) {
|
|
9711
|
-
buttonClasses.push(theme.getClass('buttonActive'));
|
|
9712
|
-
}
|
|
10054
|
+
var isPressed = buttonName === props.activeButton;
|
|
9713
10055
|
var isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||
|
|
9714
10056
|
(!props.isPrevEnabled && buttonName === 'prev') ||
|
|
9715
10057
|
(!props.isNextEnabled && buttonName === 'next');
|
|
9716
|
-
|
|
10058
|
+
var buttonClasses = ["fc-" + buttonName + "-button", theme.getClass('button')];
|
|
10059
|
+
if (isPressed) {
|
|
10060
|
+
buttonClasses.push(theme.getClass('buttonActive'));
|
|
10061
|
+
}
|
|
10062
|
+
children.push(createElement("button", { type: "button", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, "aria-pressed": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? createElement("span", { className: buttonIcon }) : '')));
|
|
9717
10063
|
}
|
|
9718
10064
|
}
|
|
9719
10065
|
if (children.length > 1) {
|
|
9720
10066
|
var groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';
|
|
9721
|
-
return createElement.apply(void 0,
|
|
10067
|
+
return createElement.apply(void 0, __spreadArray(['div', { className: groupClassName }], children));
|
|
9722
10068
|
}
|
|
9723
10069
|
return children[0];
|
|
9724
10070
|
};
|
|
@@ -9735,20 +10081,21 @@ var main_Toolbar = /** @class */ (function (_super) {
|
|
|
9735
10081
|
var forceLtr = false;
|
|
9736
10082
|
var startContent;
|
|
9737
10083
|
var endContent;
|
|
9738
|
-
var
|
|
9739
|
-
|
|
10084
|
+
var sectionWidgets = model.sectionWidgets;
|
|
10085
|
+
var centerContent = sectionWidgets.center;
|
|
10086
|
+
if (sectionWidgets.left) {
|
|
9740
10087
|
forceLtr = true;
|
|
9741
|
-
startContent =
|
|
10088
|
+
startContent = sectionWidgets.left;
|
|
9742
10089
|
}
|
|
9743
10090
|
else {
|
|
9744
|
-
startContent =
|
|
10091
|
+
startContent = sectionWidgets.start;
|
|
9745
10092
|
}
|
|
9746
|
-
if (
|
|
10093
|
+
if (sectionWidgets.right) {
|
|
9747
10094
|
forceLtr = true;
|
|
9748
|
-
endContent =
|
|
10095
|
+
endContent = sectionWidgets.right;
|
|
9749
10096
|
}
|
|
9750
10097
|
else {
|
|
9751
|
-
endContent =
|
|
10098
|
+
endContent = sectionWidgets.end;
|
|
9752
10099
|
}
|
|
9753
10100
|
var classNames = [
|
|
9754
10101
|
extraClassName || '',
|
|
@@ -9762,7 +10109,7 @@ var main_Toolbar = /** @class */ (function (_super) {
|
|
|
9762
10109
|
};
|
|
9763
10110
|
Toolbar.prototype.renderSection = function (key, widgetGroups) {
|
|
9764
10111
|
var props = this.props;
|
|
9765
|
-
return (createElement(main_ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled }));
|
|
10112
|
+
return (createElement(main_ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled, titleId: props.titleId }));
|
|
9766
10113
|
};
|
|
9767
10114
|
return Toolbar;
|
|
9768
10115
|
}(main_BaseComponent));
|
|
@@ -9792,7 +10139,7 @@ var main_ViewContainer = /** @class */ (function (_super) {
|
|
|
9792
10139
|
'fc-view-harness',
|
|
9793
10140
|
(aspectRatio || props.liquid || props.height)
|
|
9794
10141
|
? 'fc-view-harness-active' // harness controls the height
|
|
9795
|
-
: 'fc-view-harness-passive',
|
|
10142
|
+
: 'fc-view-harness-passive', // let the view do the height
|
|
9796
10143
|
];
|
|
9797
10144
|
var height = '';
|
|
9798
10145
|
var paddingBottom = '';
|
|
@@ -9811,7 +10158,7 @@ var main_ViewContainer = /** @class */ (function (_super) {
|
|
|
9811
10158
|
else {
|
|
9812
10159
|
height = props.height || '';
|
|
9813
10160
|
}
|
|
9814
|
-
return (createElement("div", {
|
|
10161
|
+
return (createElement("div", { "aria-labelledby": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height: height, paddingBottom: paddingBottom } }, props.children));
|
|
9815
10162
|
};
|
|
9816
10163
|
ViewContainer.prototype.componentDidMount = function () {
|
|
9817
10164
|
this.context.addResizeHandler(this.handleResize);
|
|
@@ -9920,10 +10267,13 @@ var main_CalendarContent = /** @class */ (function (_super) {
|
|
|
9920
10267
|
_this.buildViewContext = memoize(buildViewContext);
|
|
9921
10268
|
_this.buildViewPropTransformers = memoize(buildViewPropTransformers);
|
|
9922
10269
|
_this.buildToolbarProps = memoize(buildToolbarProps);
|
|
9923
|
-
_this.handleNavLinkClick = buildDelegationHandler('a[data-navlink]', _this._handleNavLinkClick.bind(_this));
|
|
9924
10270
|
_this.headerRef = createRef();
|
|
9925
10271
|
_this.footerRef = createRef();
|
|
9926
10272
|
_this.interactionsStore = {};
|
|
10273
|
+
// eslint-disable-next-line
|
|
10274
|
+
_this.state = {
|
|
10275
|
+
viewLabelId: getUniqueDomId(),
|
|
10276
|
+
};
|
|
9927
10277
|
// Component Registration
|
|
9928
10278
|
// -----------------------------------------------------------------------------------------------------------------
|
|
9929
10279
|
_this.registerInteractiveComponent = function (component, settingsInput) {
|
|
@@ -9985,12 +10335,15 @@ var main_CalendarContent = /** @class */ (function (_super) {
|
|
|
9985
10335
|
viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall
|
|
9986
10336
|
}
|
|
9987
10337
|
var viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);
|
|
10338
|
+
var viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)
|
|
10339
|
+
? this.state.viewLabelId
|
|
10340
|
+
: '';
|
|
9988
10341
|
return (createElement(ViewContextType.Provider, { value: viewContext },
|
|
9989
|
-
toolbarConfig.
|
|
9990
|
-
createElement(main_ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio,
|
|
10342
|
+
toolbarConfig.header && (createElement(main_Toolbar, __assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
|
|
10343
|
+
createElement(main_ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
|
|
9991
10344
|
this.renderView(props),
|
|
9992
10345
|
this.buildAppendContent()),
|
|
9993
|
-
toolbarConfig.
|
|
10346
|
+
toolbarConfig.footer && (createElement(main_Toolbar, __assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
|
|
9994
10347
|
};
|
|
9995
10348
|
CalendarContent.prototype.componentDidMount = function () {
|
|
9996
10349
|
var props = this.props;
|
|
@@ -10020,28 +10373,10 @@ var main_CalendarContent = /** @class */ (function (_super) {
|
|
|
10020
10373
|
}
|
|
10021
10374
|
this.props.emitter.trigger('_unmount');
|
|
10022
10375
|
};
|
|
10023
|
-
CalendarContent.prototype._handleNavLinkClick = function (ev, anchorEl) {
|
|
10024
|
-
var _a = this.props, dateEnv = _a.dateEnv, options = _a.options, calendarApi = _a.calendarApi;
|
|
10025
|
-
var navLinkOptions = anchorEl.getAttribute('data-navlink');
|
|
10026
|
-
navLinkOptions = navLinkOptions ? JSON.parse(navLinkOptions) : {};
|
|
10027
|
-
var dateMarker = dateEnv.createMarker(navLinkOptions.date);
|
|
10028
|
-
var viewType = navLinkOptions.type;
|
|
10029
|
-
var customAction = viewType === 'day' ? options.navLinkDayClick :
|
|
10030
|
-
viewType === 'week' ? options.navLinkWeekClick : null;
|
|
10031
|
-
if (typeof customAction === 'function') {
|
|
10032
|
-
customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);
|
|
10033
|
-
}
|
|
10034
|
-
else {
|
|
10035
|
-
if (typeof customAction === 'string') {
|
|
10036
|
-
viewType = customAction;
|
|
10037
|
-
}
|
|
10038
|
-
calendarApi.zoomTo(dateMarker, viewType);
|
|
10039
|
-
}
|
|
10040
|
-
};
|
|
10041
10376
|
CalendarContent.prototype.buildAppendContent = function () {
|
|
10042
10377
|
var props = this.props;
|
|
10043
10378
|
var children = props.pluginHooks.viewContainerAppends.map(function (buildAppendContent) { return buildAppendContent(props); });
|
|
10044
|
-
return createElement.apply(void 0,
|
|
10379
|
+
return createElement.apply(void 0, __spreadArray([Fragment, {}], children));
|
|
10045
10380
|
};
|
|
10046
10381
|
CalendarContent.prototype.renderView = function (props) {
|
|
10047
10382
|
var pluginHooks = props.pluginHooks;
|
|
@@ -10076,6 +10411,7 @@ function buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentD
|
|
|
10076
10411
|
return {
|
|
10077
10412
|
title: title,
|
|
10078
10413
|
activeButton: viewSpec.type,
|
|
10414
|
+
navUnit: viewSpec.singleUnit,
|
|
10079
10415
|
isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),
|
|
10080
10416
|
isPrevEnabled: prevInfo.isValid,
|
|
10081
10417
|
isNextEnabled: nextInfo.isValid,
|
|
@@ -10146,7 +10482,7 @@ function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {
|
|
|
10146
10482
|
}
|
|
10147
10483
|
|
|
10148
10484
|
var CLASS_NAME = 'fc-col-header-cell'; // do the cushion too? no
|
|
10149
|
-
function renderInner(hookProps) {
|
|
10485
|
+
function renderInner$1(hookProps) {
|
|
10150
10486
|
return hookProps.text;
|
|
10151
10487
|
}
|
|
10152
10488
|
|
|
@@ -10163,11 +10499,11 @@ var main_TableDateCell = /** @class */ (function (_super) {
|
|
|
10163
10499
|
var classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));
|
|
10164
10500
|
var text = dateEnv.format(date, props.dayHeaderFormat);
|
|
10165
10501
|
// if colCnt is 1, we are already in a day-view and don't need a navlink
|
|
10166
|
-
var navLinkAttrs = (
|
|
10167
|
-
?
|
|
10502
|
+
var navLinkAttrs = (!dayMeta.isDisabled && props.colCnt > 1)
|
|
10503
|
+
? buildNavLinkAttrs(this.context, date)
|
|
10168
10504
|
: {};
|
|
10169
10505
|
var hookProps = __assign(__assign(__assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraHookProps), { text: text }), dayMeta);
|
|
10170
|
-
return (createElement(main_RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement("th", __assign({ ref: rootElRef, className: classNames.concat(customClassNames).join(' '), "data-date": !dayMeta.isDisabled ? formatDayString(date) : undefined, colSpan: props.colSpan }, props.extraDataAttrs),
|
|
10506
|
+
return (createElement(main_RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner$1, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement("th", __assign({ ref: rootElRef, role: "columnheader", className: classNames.concat(customClassNames).join(' '), "data-date": !dayMeta.isDisabled ? formatDayString(date) : undefined, colSpan: props.colSpan }, props.extraDataAttrs),
|
|
10171
10507
|
createElement("div", { className: "fc-scrollgrid-sync-inner" }, !dayMeta.isDisabled && (createElement("a", __assign({ ref: innerElRef, className: [
|
|
10172
10508
|
'fc-col-header-cell-cushion',
|
|
10173
10509
|
props.isSticky ? 'fc-sticky' : '',
|
|
@@ -10176,6 +10512,7 @@ var main_TableDateCell = /** @class */ (function (_super) {
|
|
|
10176
10512
|
return TableDateCell;
|
|
10177
10513
|
}(main_BaseComponent));
|
|
10178
10514
|
|
|
10515
|
+
var WEEKDAY_FORMAT = createFormatter({ weekday: 'long' });
|
|
10179
10516
|
var main_TableDowCell = /** @class */ (function (_super) {
|
|
10180
10517
|
__extends(TableDowCell, _super);
|
|
10181
10518
|
function TableDowCell() {
|
|
@@ -10197,9 +10534,9 @@ var main_TableDowCell = /** @class */ (function (_super) {
|
|
|
10197
10534
|
var text = dateEnv.format(date, props.dayHeaderFormat);
|
|
10198
10535
|
var hookProps = __assign(__assign(__assign(__assign({ // TODO: make this public?
|
|
10199
10536
|
date: date }, dateMeta), { view: viewApi }), props.extraHookProps), { text: text });
|
|
10200
|
-
return (createElement(main_RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement("th", __assign({ ref: rootElRef, className: classNames.concat(customClassNames).join(' '), colSpan: props.colSpan }, props.extraDataAttrs),
|
|
10537
|
+
return (createElement(main_RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner$1, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement("th", __assign({ ref: rootElRef, role: "columnheader", className: classNames.concat(customClassNames).join(' '), colSpan: props.colSpan }, props.extraDataAttrs),
|
|
10201
10538
|
createElement("div", { className: "fc-scrollgrid-sync-inner" },
|
|
10202
|
-
createElement("a", { className: [
|
|
10539
|
+
createElement("a", { "aria-label": dateEnv.format(date, WEEKDAY_FORMAT), className: [
|
|
10203
10540
|
'fc-col-header-cell-cushion',
|
|
10204
10541
|
props.isSticky ? 'fc-sticky' : '',
|
|
10205
10542
|
].join(' '), ref: innerElRef }, innerContent)))); }));
|
|
@@ -10238,6 +10575,9 @@ var main_NowTimer = /** @class */ (function (_super) {
|
|
|
10238
10575
|
var currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);
|
|
10239
10576
|
var nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));
|
|
10240
10577
|
var waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf();
|
|
10578
|
+
// there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)
|
|
10579
|
+
// ensure no longer than a day
|
|
10580
|
+
waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);
|
|
10241
10581
|
return {
|
|
10242
10582
|
currentState: { nowDate: currentUnitStart, todayRange: buildDayRange(currentUnitStart) },
|
|
10243
10583
|
nextState: { nowDate: nextUnitStart, todayRange: buildDayRange(nextUnitStart) },
|
|
@@ -10278,8 +10618,8 @@ var main_DayHeader = /** @class */ (function (_super) {
|
|
|
10278
10618
|
var context = this.context;
|
|
10279
10619
|
var _a = this.props, dates = _a.dates, dateProfile = _a.dateProfile, datesRepDistinctDays = _a.datesRepDistinctDays, renderIntro = _a.renderIntro;
|
|
10280
10620
|
var dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);
|
|
10281
|
-
return (createElement(main_NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (createElement("tr",
|
|
10282
|
-
renderIntro && renderIntro(),
|
|
10621
|
+
return (createElement(main_NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (createElement("tr", { role: "row" },
|
|
10622
|
+
renderIntro && renderIntro('day'),
|
|
10283
10623
|
dates.map(function (date) { return (datesRepDistinctDays ? (createElement(main_TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (createElement(main_TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))); }))); }));
|
|
10284
10624
|
};
|
|
10285
10625
|
return DayHeader;
|
|
@@ -10438,14 +10778,14 @@ var main_Slicer = /** @class */ (function () {
|
|
|
10438
10778
|
extraArgs[_i - 4] = arguments[_i];
|
|
10439
10779
|
}
|
|
10440
10780
|
var eventUiBases = props.eventUiBases;
|
|
10441
|
-
var eventSegs = this.sliceEventStore.apply(this,
|
|
10781
|
+
var eventSegs = this.sliceEventStore.apply(this, __spreadArray([props.eventStore, eventUiBases, dateProfile, nextDayThreshold], extraArgs));
|
|
10442
10782
|
return {
|
|
10443
|
-
dateSelectionSegs: this.sliceDateSelection.apply(this,
|
|
10444
|
-
businessHourSegs: this.sliceBusinessHours.apply(this,
|
|
10783
|
+
dateSelectionSegs: this.sliceDateSelection.apply(this, __spreadArray([props.dateSelection, eventUiBases, context], extraArgs)),
|
|
10784
|
+
businessHourSegs: this.sliceBusinessHours.apply(this, __spreadArray([props.businessHours, dateProfile, nextDayThreshold, context], extraArgs)),
|
|
10445
10785
|
fgEventSegs: eventSegs.fg,
|
|
10446
10786
|
bgEventSegs: eventSegs.bg,
|
|
10447
|
-
eventDrag: this.sliceEventDrag.apply(this,
|
|
10448
|
-
eventResize: this.sliceEventResize.apply(this,
|
|
10787
|
+
eventDrag: this.sliceEventDrag.apply(this, __spreadArray([props.eventDrag, eventUiBases, dateProfile, nextDayThreshold], extraArgs)),
|
|
10788
|
+
eventResize: this.sliceEventResize.apply(this, __spreadArray([props.eventResize, eventUiBases, dateProfile, nextDayThreshold], extraArgs)),
|
|
10449
10789
|
eventSelection: props.eventSelection,
|
|
10450
10790
|
}; // TODO: give interactionSegs?
|
|
10451
10791
|
};
|
|
@@ -10455,7 +10795,7 @@ var main_Slicer = /** @class */ (function () {
|
|
|
10455
10795
|
for (var _i = 2; _i < arguments.length; _i++) {
|
|
10456
10796
|
extraArgs[_i - 2] = arguments[_i];
|
|
10457
10797
|
}
|
|
10458
|
-
return this._sliceDateSpan.apply(this,
|
|
10798
|
+
return this._sliceDateSpan.apply(this, __spreadArray([{ range: { start: date, end: addMs(date, 1) }, allDay: false },
|
|
10459
10799
|
{},
|
|
10460
10800
|
context], extraArgs));
|
|
10461
10801
|
};
|
|
@@ -10467,7 +10807,7 @@ var main_Slicer = /** @class */ (function () {
|
|
|
10467
10807
|
if (!businessHours) {
|
|
10468
10808
|
return [];
|
|
10469
10809
|
}
|
|
10470
|
-
return this._sliceEventStore.apply(this,
|
|
10810
|
+
return this._sliceEventStore.apply(this, __spreadArray([expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), context),
|
|
10471
10811
|
{},
|
|
10472
10812
|
dateProfile,
|
|
10473
10813
|
nextDayThreshold], extraArgs)).bg;
|
|
@@ -10506,65 +10846,254 @@ var main_Slicer = /** @class */ (function () {
|
|
|
10506
10846
|
for (var _i = 3; _i < arguments.length; _i++) {
|
|
10507
10847
|
extraArgs[_i - 3] = arguments[_i];
|
|
10508
10848
|
}
|
|
10509
|
-
if (!dateSpan) {
|
|
10510
|
-
return [];
|
|
10849
|
+
if (!dateSpan) {
|
|
10850
|
+
return [];
|
|
10851
|
+
}
|
|
10852
|
+
var eventRange = fabricateEventRange(dateSpan, eventUiBases, context);
|
|
10853
|
+
var segs = this.sliceRange.apply(this, __spreadArray([dateSpan.range], extraArgs));
|
|
10854
|
+
for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) {
|
|
10855
|
+
var seg = segs_1[_a];
|
|
10856
|
+
seg.eventRange = eventRange;
|
|
10857
|
+
}
|
|
10858
|
+
return segs;
|
|
10859
|
+
};
|
|
10860
|
+
/*
|
|
10861
|
+
"complete" seg means it has component and eventRange
|
|
10862
|
+
*/
|
|
10863
|
+
Slicer.prototype.sliceEventRanges = function (eventRanges, extraArgs) {
|
|
10864
|
+
var segs = [];
|
|
10865
|
+
for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {
|
|
10866
|
+
var eventRange = eventRanges_1[_i];
|
|
10867
|
+
segs.push.apply(segs, this.sliceEventRange(eventRange, extraArgs));
|
|
10868
|
+
}
|
|
10869
|
+
return segs;
|
|
10870
|
+
};
|
|
10871
|
+
/*
|
|
10872
|
+
"complete" seg means it has component and eventRange
|
|
10873
|
+
*/
|
|
10874
|
+
Slicer.prototype.sliceEventRange = function (eventRange, extraArgs) {
|
|
10875
|
+
var dateRange = eventRange.range;
|
|
10876
|
+
// hack to make multi-day events that are being force-displayed as list-items to take up only one day
|
|
10877
|
+
if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {
|
|
10878
|
+
dateRange = {
|
|
10879
|
+
start: dateRange.start,
|
|
10880
|
+
end: addDays(dateRange.start, 1),
|
|
10881
|
+
};
|
|
10882
|
+
}
|
|
10883
|
+
var segs = this.sliceRange.apply(this, __spreadArray([dateRange], extraArgs));
|
|
10884
|
+
for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {
|
|
10885
|
+
var seg = segs_2[_i];
|
|
10886
|
+
seg.eventRange = eventRange;
|
|
10887
|
+
seg.isStart = eventRange.isStart && seg.isStart;
|
|
10888
|
+
seg.isEnd = eventRange.isEnd && seg.isEnd;
|
|
10889
|
+
}
|
|
10890
|
+
return segs;
|
|
10891
|
+
};
|
|
10892
|
+
return Slicer;
|
|
10893
|
+
}());
|
|
10894
|
+
/*
|
|
10895
|
+
for incorporating slotMinTime/slotMaxTime if appropriate
|
|
10896
|
+
TODO: should be part of DateProfile!
|
|
10897
|
+
TimelineDateProfile already does this btw
|
|
10898
|
+
*/
|
|
10899
|
+
function computeActiveRange(dateProfile, isComponentAllDay) {
|
|
10900
|
+
var range = dateProfile.activeRange;
|
|
10901
|
+
if (isComponentAllDay) {
|
|
10902
|
+
return range;
|
|
10903
|
+
}
|
|
10904
|
+
return {
|
|
10905
|
+
start: addMs(range.start, dateProfile.slotMinTime.milliseconds),
|
|
10906
|
+
end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5), // 864e5 = ms in a day
|
|
10907
|
+
};
|
|
10908
|
+
}
|
|
10909
|
+
|
|
10910
|
+
// high-level segmenting-aware tester functions
|
|
10911
|
+
// ------------------------------------------------------------------------------------------------------------------------
|
|
10912
|
+
function isInteractionValid(interaction, dateProfile, context) {
|
|
10913
|
+
var instances = interaction.mutatedEvents.instances;
|
|
10914
|
+
for (var instanceId in instances) {
|
|
10915
|
+
if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {
|
|
10916
|
+
return false;
|
|
10917
|
+
}
|
|
10918
|
+
}
|
|
10919
|
+
return isNewPropsValid({ eventDrag: interaction }, context); // HACK: the eventDrag props is used for ALL interactions
|
|
10920
|
+
}
|
|
10921
|
+
function isDateSelectionValid(dateSelection, dateProfile, context) {
|
|
10922
|
+
if (!rangeContainsRange(dateProfile.validRange, dateSelection.range)) {
|
|
10923
|
+
return false;
|
|
10924
|
+
}
|
|
10925
|
+
return isNewPropsValid({ dateSelection: dateSelection }, context);
|
|
10926
|
+
}
|
|
10927
|
+
function isNewPropsValid(newProps, context) {
|
|
10928
|
+
var calendarState = context.getCurrentData();
|
|
10929
|
+
var props = __assign({ businessHours: calendarState.businessHours, dateSelection: '', eventStore: calendarState.eventStore, eventUiBases: calendarState.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);
|
|
10930
|
+
return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);
|
|
10931
|
+
}
|
|
10932
|
+
function isPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
10933
|
+
if (dateSpanMeta === void 0) { dateSpanMeta = {}; }
|
|
10934
|
+
if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {
|
|
10935
|
+
return false;
|
|
10936
|
+
}
|
|
10937
|
+
if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {
|
|
10938
|
+
return false;
|
|
10939
|
+
}
|
|
10940
|
+
return true;
|
|
10941
|
+
}
|
|
10942
|
+
// Moving Event Validation
|
|
10943
|
+
// ------------------------------------------------------------------------------------------------------------------------
|
|
10944
|
+
function isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
10945
|
+
var currentState = context.getCurrentData();
|
|
10946
|
+
var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions
|
|
10947
|
+
var subjectEventStore = interaction.mutatedEvents;
|
|
10948
|
+
var subjectDefs = subjectEventStore.defs;
|
|
10949
|
+
var subjectInstances = subjectEventStore.instances;
|
|
10950
|
+
var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?
|
|
10951
|
+
state.eventUiBases :
|
|
10952
|
+
{ '': currentState.selectionConfig });
|
|
10953
|
+
if (filterConfig) {
|
|
10954
|
+
subjectConfigs = mapHash(subjectConfigs, filterConfig);
|
|
10955
|
+
}
|
|
10956
|
+
// exclude the subject events. TODO: exclude defs too?
|
|
10957
|
+
var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);
|
|
10958
|
+
var otherDefs = otherEventStore.defs;
|
|
10959
|
+
var otherInstances = otherEventStore.instances;
|
|
10960
|
+
var otherConfigs = compileEventUis(otherDefs, state.eventUiBases);
|
|
10961
|
+
for (var subjectInstanceId in subjectInstances) {
|
|
10962
|
+
var subjectInstance = subjectInstances[subjectInstanceId];
|
|
10963
|
+
var subjectRange = subjectInstance.range;
|
|
10964
|
+
var subjectConfig = subjectConfigs[subjectInstance.defId];
|
|
10965
|
+
var subjectDef = subjectDefs[subjectInstance.defId];
|
|
10966
|
+
// constraint
|
|
10967
|
+
if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {
|
|
10968
|
+
return false;
|
|
10969
|
+
}
|
|
10970
|
+
// overlap
|
|
10971
|
+
var eventOverlap = context.options.eventOverlap;
|
|
10972
|
+
var eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;
|
|
10973
|
+
for (var otherInstanceId in otherInstances) {
|
|
10974
|
+
var otherInstance = otherInstances[otherInstanceId];
|
|
10975
|
+
// intersect! evaluate
|
|
10976
|
+
if (rangesIntersect(subjectRange, otherInstance.range)) {
|
|
10977
|
+
var otherOverlap = otherConfigs[otherInstance.defId].overlap;
|
|
10978
|
+
// consider the other event's overlap. only do this if the subject event is a "real" event
|
|
10979
|
+
if (otherOverlap === false && interaction.isEvent) {
|
|
10980
|
+
return false;
|
|
10981
|
+
}
|
|
10982
|
+
if (subjectConfig.overlap === false) {
|
|
10983
|
+
return false;
|
|
10984
|
+
}
|
|
10985
|
+
if (eventOverlapFunc && !eventOverlapFunc(new main_EventApi(context, otherDefs[otherInstance.defId], otherInstance), // still event
|
|
10986
|
+
new main_EventApi(context, subjectDef, subjectInstance))) {
|
|
10987
|
+
return false;
|
|
10988
|
+
}
|
|
10989
|
+
}
|
|
10990
|
+
}
|
|
10991
|
+
// allow (a function)
|
|
10992
|
+
var calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state
|
|
10993
|
+
for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) {
|
|
10994
|
+
var subjectAllow = _a[_i];
|
|
10995
|
+
var subjectDateSpan = __assign(__assign({}, dateSpanMeta), { range: subjectInstance.range, allDay: subjectDef.allDay });
|
|
10996
|
+
var origDef = calendarEventStore.defs[subjectDef.defId];
|
|
10997
|
+
var origInstance = calendarEventStore.instances[subjectInstanceId];
|
|
10998
|
+
var eventApi = void 0;
|
|
10999
|
+
if (origDef) { // was previously in the calendar
|
|
11000
|
+
eventApi = new main_EventApi(context, origDef, origInstance);
|
|
11001
|
+
}
|
|
11002
|
+
else { // was an external event
|
|
11003
|
+
eventApi = new main_EventApi(context, subjectDef); // no instance, because had no dates
|
|
11004
|
+
}
|
|
11005
|
+
if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {
|
|
11006
|
+
return false;
|
|
11007
|
+
}
|
|
10511
11008
|
}
|
|
10512
|
-
|
|
10513
|
-
|
|
10514
|
-
|
|
10515
|
-
|
|
10516
|
-
|
|
11009
|
+
}
|
|
11010
|
+
return true;
|
|
11011
|
+
}
|
|
11012
|
+
// Date Selection Validation
|
|
11013
|
+
// ------------------------------------------------------------------------------------------------------------------------
|
|
11014
|
+
function isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
11015
|
+
var relevantEventStore = state.eventStore;
|
|
11016
|
+
var relevantDefs = relevantEventStore.defs;
|
|
11017
|
+
var relevantInstances = relevantEventStore.instances;
|
|
11018
|
+
var selection = state.dateSelection;
|
|
11019
|
+
var selectionRange = selection.range;
|
|
11020
|
+
var selectionConfig = context.getCurrentData().selectionConfig;
|
|
11021
|
+
if (filterConfig) {
|
|
11022
|
+
selectionConfig = filterConfig(selectionConfig);
|
|
11023
|
+
}
|
|
11024
|
+
// constraint
|
|
11025
|
+
if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {
|
|
11026
|
+
return false;
|
|
11027
|
+
}
|
|
11028
|
+
// overlap
|
|
11029
|
+
var selectOverlap = context.options.selectOverlap;
|
|
11030
|
+
var selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;
|
|
11031
|
+
for (var relevantInstanceId in relevantInstances) {
|
|
11032
|
+
var relevantInstance = relevantInstances[relevantInstanceId];
|
|
11033
|
+
// intersect! evaluate
|
|
11034
|
+
if (rangesIntersect(selectionRange, relevantInstance.range)) {
|
|
11035
|
+
if (selectionConfig.overlap === false) {
|
|
11036
|
+
return false;
|
|
11037
|
+
}
|
|
11038
|
+
if (selectOverlapFunc && !selectOverlapFunc(new main_EventApi(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {
|
|
11039
|
+
return false;
|
|
11040
|
+
}
|
|
10517
11041
|
}
|
|
10518
|
-
|
|
10519
|
-
|
|
10520
|
-
|
|
10521
|
-
|
|
10522
|
-
|
|
10523
|
-
|
|
10524
|
-
|
|
10525
|
-
for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {
|
|
10526
|
-
var eventRange = eventRanges_1[_i];
|
|
10527
|
-
segs.push.apply(segs, this.sliceEventRange(eventRange, extraArgs));
|
|
11042
|
+
}
|
|
11043
|
+
// allow (a function)
|
|
11044
|
+
for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) {
|
|
11045
|
+
var selectionAllow = _a[_i];
|
|
11046
|
+
var fullDateSpan = __assign(__assign({}, dateSpanMeta), selection);
|
|
11047
|
+
if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {
|
|
11048
|
+
return false;
|
|
10528
11049
|
}
|
|
10529
|
-
|
|
10530
|
-
|
|
10531
|
-
|
|
10532
|
-
|
|
10533
|
-
|
|
10534
|
-
|
|
10535
|
-
|
|
10536
|
-
|
|
10537
|
-
if (
|
|
10538
|
-
|
|
10539
|
-
start: dateRange.start,
|
|
10540
|
-
end: addDays(dateRange.start, 1),
|
|
10541
|
-
};
|
|
11050
|
+
}
|
|
11051
|
+
return true;
|
|
11052
|
+
}
|
|
11053
|
+
// Constraint Utils
|
|
11054
|
+
// ------------------------------------------------------------------------------------------------------------------------
|
|
11055
|
+
function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {
|
|
11056
|
+
for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) {
|
|
11057
|
+
var constraint = constraints_1[_i];
|
|
11058
|
+
if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {
|
|
11059
|
+
return false;
|
|
10542
11060
|
}
|
|
10543
|
-
|
|
10544
|
-
|
|
10545
|
-
|
|
10546
|
-
|
|
10547
|
-
|
|
10548
|
-
|
|
11061
|
+
}
|
|
11062
|
+
return true;
|
|
11063
|
+
}
|
|
11064
|
+
function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours
|
|
11065
|
+
otherEventStore, // for if constraint is an even group ID
|
|
11066
|
+
businessHoursUnexpanded, // for if constraint is 'businessHours'
|
|
11067
|
+
context) {
|
|
11068
|
+
if (constraint === 'businessHours') {
|
|
11069
|
+
return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));
|
|
11070
|
+
}
|
|
11071
|
+
if (typeof constraint === 'string') { // an group ID
|
|
11072
|
+
return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { return eventDef.groupId === constraint; }));
|
|
11073
|
+
}
|
|
11074
|
+
if (typeof constraint === 'object' && constraint) { // non-null object
|
|
11075
|
+
return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));
|
|
11076
|
+
}
|
|
11077
|
+
return []; // if it's false
|
|
11078
|
+
}
|
|
11079
|
+
// TODO: move to event-store file?
|
|
11080
|
+
function eventStoreToRanges(eventStore) {
|
|
11081
|
+
var instances = eventStore.instances;
|
|
11082
|
+
var ranges = [];
|
|
11083
|
+
for (var instanceId in instances) {
|
|
11084
|
+
ranges.push(instances[instanceId].range);
|
|
11085
|
+
}
|
|
11086
|
+
return ranges;
|
|
11087
|
+
}
|
|
11088
|
+
// TODO: move to geom file?
|
|
11089
|
+
function anyRangesContainRange(outerRanges, innerRange) {
|
|
11090
|
+
for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) {
|
|
11091
|
+
var outerRange = outerRanges_1[_i];
|
|
11092
|
+
if (rangeContainsRange(outerRange, innerRange)) {
|
|
11093
|
+
return true;
|
|
10549
11094
|
}
|
|
10550
|
-
return segs;
|
|
10551
|
-
};
|
|
10552
|
-
return Slicer;
|
|
10553
|
-
}());
|
|
10554
|
-
/*
|
|
10555
|
-
for incorporating slotMinTime/slotMaxTime if appropriate
|
|
10556
|
-
TODO: should be part of DateProfile!
|
|
10557
|
-
TimelineDateProfile already does this btw
|
|
10558
|
-
*/
|
|
10559
|
-
function computeActiveRange(dateProfile, isComponentAllDay) {
|
|
10560
|
-
var range = dateProfile.activeRange;
|
|
10561
|
-
if (isComponentAllDay) {
|
|
10562
|
-
return range;
|
|
10563
11095
|
}
|
|
10564
|
-
return
|
|
10565
|
-
start: addMs(range.start, dateProfile.slotMinTime.milliseconds),
|
|
10566
|
-
end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5),
|
|
10567
|
-
};
|
|
11096
|
+
return false;
|
|
10568
11097
|
}
|
|
10569
11098
|
|
|
10570
11099
|
var VISIBLE_HIDDEN_RE = /^(visible|hidden)$/;
|
|
@@ -10733,11 +11262,12 @@ function getAllowYScrolling(props, sectionConfig) {
|
|
|
10733
11262
|
getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars
|
|
10734
11263
|
}
|
|
10735
11264
|
// TODO: ONLY use `arg`. force out internal function to use same API
|
|
10736
|
-
function renderChunkContent(sectionConfig, chunkConfig, arg) {
|
|
11265
|
+
function renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {
|
|
10737
11266
|
var expandRows = arg.expandRows;
|
|
10738
11267
|
var content = typeof chunkConfig.content === 'function' ?
|
|
10739
11268
|
chunkConfig.content(arg) :
|
|
10740
11269
|
createElement('table', {
|
|
11270
|
+
role: 'presentation',
|
|
10741
11271
|
className: [
|
|
10742
11272
|
chunkConfig.tableClassName,
|
|
10743
11273
|
sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',
|
|
@@ -10745,9 +11275,13 @@ function renderChunkContent(sectionConfig, chunkConfig, arg) {
|
|
|
10745
11275
|
style: {
|
|
10746
11276
|
minWidth: arg.tableMinWidth,
|
|
10747
11277
|
width: arg.clientWidth,
|
|
10748
|
-
height: expandRows ? arg.clientHeight : '',
|
|
11278
|
+
height: expandRows ? arg.clientHeight : '', // css `height` on a <table> serves as a min-height
|
|
10749
11279
|
},
|
|
10750
|
-
}, arg.tableColGroupNode, createElement('
|
|
11280
|
+
}, arg.tableColGroupNode, createElement(isHeader ? 'thead' : 'tbody', {
|
|
11281
|
+
role: 'presentation',
|
|
11282
|
+
}, typeof chunkConfig.rowContent === 'function'
|
|
11283
|
+
? chunkConfig.rowContent(arg)
|
|
11284
|
+
: chunkConfig.rowContent));
|
|
10751
11285
|
return content;
|
|
10752
11286
|
}
|
|
10753
11287
|
function isColPropsEqual(cols0, cols1) {
|
|
@@ -10770,7 +11304,7 @@ function renderMicroColGroup(cols, shrinkWidth) {
|
|
|
10770
11304
|
} }));
|
|
10771
11305
|
}
|
|
10772
11306
|
}
|
|
10773
|
-
return createElement.apply(void 0,
|
|
11307
|
+
return createElement.apply(void 0, __spreadArray(['colgroup', {}], colNodes));
|
|
10774
11308
|
}
|
|
10775
11309
|
function sanitizeShrinkWidth(shrinkWidth) {
|
|
10776
11310
|
/* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth
|
|
@@ -10800,7 +11334,7 @@ function getSectionClassNames(sectionConfig, wholeTableVGrow) {
|
|
|
10800
11334
|
var classNames = [
|
|
10801
11335
|
'fc-scrollgrid-section',
|
|
10802
11336
|
"fc-scrollgrid-section-" + sectionConfig.type,
|
|
10803
|
-
sectionConfig.className,
|
|
11337
|
+
sectionConfig.className, // used?
|
|
10804
11338
|
];
|
|
10805
11339
|
if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {
|
|
10806
11340
|
classNames.push('fc-scrollgrid-section-liquid');
|
|
@@ -10858,6 +11392,9 @@ var main_SimpleScrollGrid = /** @class */ (function (_super) {
|
|
|
10858
11392
|
var cols = this.processCols(props.cols);
|
|
10859
11393
|
var microColGroupNode = this.renderMicroColGroup(cols, state.shrinkWidth);
|
|
10860
11394
|
var classNames = getScrollGridClassNames(props.liquid, context);
|
|
11395
|
+
if (props.collapsibleWidth) {
|
|
11396
|
+
classNames.push('fc-scrollgrid-collapsible');
|
|
11397
|
+
}
|
|
10861
11398
|
// TODO: make DRY
|
|
10862
11399
|
var configCnt = sectionConfigs.length;
|
|
10863
11400
|
var configI = 0;
|
|
@@ -10866,15 +11403,15 @@ var main_SimpleScrollGrid = /** @class */ (function (_super) {
|
|
|
10866
11403
|
var bodySectionNodes = [];
|
|
10867
11404
|
var footSectionNodes = [];
|
|
10868
11405
|
while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {
|
|
10869
|
-
headSectionNodes.push(this.renderSection(currentConfig,
|
|
11406
|
+
headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));
|
|
10870
11407
|
configI += 1;
|
|
10871
11408
|
}
|
|
10872
11409
|
while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {
|
|
10873
|
-
bodySectionNodes.push(this.renderSection(currentConfig,
|
|
11410
|
+
bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));
|
|
10874
11411
|
configI += 1;
|
|
10875
11412
|
}
|
|
10876
11413
|
while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {
|
|
10877
|
-
footSectionNodes.push(this.renderSection(currentConfig,
|
|
11414
|
+
footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));
|
|
10878
11415
|
configI += 1;
|
|
10879
11416
|
}
|
|
10880
11417
|
// firefox bug: when setting height on table and there is a thead or tfoot,
|
|
@@ -10882,18 +11419,20 @@ var main_SimpleScrollGrid = /** @class */ (function (_super) {
|
|
|
10882
11419
|
// use getCanVGrowWithinCell as a way to detect table-stupid firefox.
|
|
10883
11420
|
// if so, use a simpler dom structure, jam everything into a lone tbody.
|
|
10884
11421
|
var isBuggy = !getCanVGrowWithinCell();
|
|
11422
|
+
var roleAttrs = { role: 'rowgroup' };
|
|
10885
11423
|
return createElement('table', {
|
|
11424
|
+
role: 'grid',
|
|
10886
11425
|
className: classNames.join(' '),
|
|
10887
11426
|
style: { height: props.height },
|
|
10888
|
-
}, Boolean(!isBuggy && headSectionNodes.length) && createElement.apply(void 0,
|
|
11427
|
+
}, Boolean(!isBuggy && headSectionNodes.length) && createElement.apply(void 0, __spreadArray(['thead', roleAttrs], headSectionNodes)), Boolean(!isBuggy && bodySectionNodes.length) && createElement.apply(void 0, __spreadArray(['tbody', roleAttrs], bodySectionNodes)), Boolean(!isBuggy && footSectionNodes.length) && createElement.apply(void 0, __spreadArray(['tfoot', roleAttrs], footSectionNodes)), isBuggy && createElement.apply(void 0, __spreadArray(__spreadArray(__spreadArray(['tbody', roleAttrs], headSectionNodes), bodySectionNodes), footSectionNodes)));
|
|
10889
11428
|
};
|
|
10890
|
-
SimpleScrollGrid.prototype.renderSection = function (sectionConfig,
|
|
11429
|
+
SimpleScrollGrid.prototype.renderSection = function (sectionConfig, microColGroupNode, isHeader) {
|
|
10891
11430
|
if ('outerContent' in sectionConfig) {
|
|
10892
11431
|
return (createElement(Fragment, { key: sectionConfig.key }, sectionConfig.outerContent));
|
|
10893
11432
|
}
|
|
10894
|
-
return (createElement("tr", { key: sectionConfig.key, className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig,
|
|
11433
|
+
return (createElement("tr", { key: sectionConfig.key, role: "presentation", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));
|
|
10895
11434
|
};
|
|
10896
|
-
SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig,
|
|
11435
|
+
SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig, microColGroupNode, chunkConfig, isHeader) {
|
|
10897
11436
|
if ('outerContent' in chunkConfig) {
|
|
10898
11437
|
return chunkConfig.outerContent;
|
|
10899
11438
|
}
|
|
@@ -10907,25 +11446,29 @@ var main_SimpleScrollGrid = /** @class */ (function (_super) {
|
|
|
10907
11446
|
forceYScrollbars ? 'scroll' :
|
|
10908
11447
|
!needsYScrolling ? 'hidden' :
|
|
10909
11448
|
'auto';
|
|
11449
|
+
var sectionKey = sectionConfig.key;
|
|
10910
11450
|
var content = renderChunkContent(sectionConfig, chunkConfig, {
|
|
10911
11451
|
tableColGroupNode: microColGroupNode,
|
|
10912
11452
|
tableMinWidth: '',
|
|
10913
|
-
clientWidth: scrollerClientWidths[
|
|
10914
|
-
clientHeight: scrollerClientHeights[
|
|
11453
|
+
clientWidth: (!props.collapsibleWidth && scrollerClientWidths[sectionKey] !== undefined) ? scrollerClientWidths[sectionKey] : null,
|
|
11454
|
+
clientHeight: scrollerClientHeights[sectionKey] !== undefined ? scrollerClientHeights[sectionKey] : null,
|
|
10915
11455
|
expandRows: sectionConfig.expandRows,
|
|
10916
11456
|
syncRowHeights: false,
|
|
10917
11457
|
rowSyncHeights: [],
|
|
10918
11458
|
reportRowHeightChange: function () { },
|
|
10919
|
-
});
|
|
10920
|
-
return
|
|
10921
|
-
|
|
10922
|
-
|
|
10923
|
-
|
|
11459
|
+
}, isHeader);
|
|
11460
|
+
return createElement(isHeader ? 'th' : 'td', {
|
|
11461
|
+
ref: chunkConfig.elRef,
|
|
11462
|
+
role: 'presentation',
|
|
11463
|
+
}, createElement("div", { className: "fc-scroller-harness" + (isLiquid ? ' fc-scroller-harness-liquid' : '') },
|
|
11464
|
+
createElement(main_Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness
|
|
11465
|
+
: true }, content)));
|
|
10924
11466
|
};
|
|
10925
11467
|
SimpleScrollGrid.prototype._handleScrollerEl = function (scrollerEl, key) {
|
|
10926
|
-
var
|
|
10927
|
-
|
|
10928
|
-
|
|
11468
|
+
var section = getSectionByKey(this.props.sections, key);
|
|
11469
|
+
if (section) {
|
|
11470
|
+
setRef(section.chunk.scrollerElRef, scrollerEl);
|
|
11471
|
+
}
|
|
10929
11472
|
};
|
|
10930
11473
|
SimpleScrollGrid.prototype.componentDidMount = function () {
|
|
10931
11474
|
this.handleSizing();
|
|
@@ -10945,26 +11488,27 @@ var main_SimpleScrollGrid = /** @class */ (function (_super) {
|
|
|
10945
11488
|
};
|
|
10946
11489
|
SimpleScrollGrid.prototype.computeScrollerDims = function () {
|
|
10947
11490
|
var scrollbarWidth = getScrollbarWidths();
|
|
10948
|
-
var sectionCnt = this.props.sections.length;
|
|
10949
11491
|
var _a = this, scrollerRefs = _a.scrollerRefs, scrollerElRefs = _a.scrollerElRefs;
|
|
10950
11492
|
var forceYScrollbars = false;
|
|
10951
11493
|
var scrollerClientWidths = {};
|
|
10952
11494
|
var scrollerClientHeights = {};
|
|
10953
|
-
for (var
|
|
10954
|
-
var scroller = scrollerRefs.currentMap[
|
|
11495
|
+
for (var sectionKey in scrollerRefs.currentMap) {
|
|
11496
|
+
var scroller = scrollerRefs.currentMap[sectionKey];
|
|
10955
11497
|
if (scroller && scroller.needsYScrolling()) {
|
|
10956
11498
|
forceYScrollbars = true;
|
|
10957
11499
|
break;
|
|
10958
11500
|
}
|
|
10959
11501
|
}
|
|
10960
|
-
for (var
|
|
10961
|
-
var
|
|
11502
|
+
for (var _i = 0, _b = this.props.sections; _i < _b.length; _i++) {
|
|
11503
|
+
var section = _b[_i];
|
|
11504
|
+
var sectionKey = section.key;
|
|
11505
|
+
var scrollerEl = scrollerElRefs.currentMap[sectionKey];
|
|
10962
11506
|
if (scrollerEl) {
|
|
10963
11507
|
var harnessEl = scrollerEl.parentNode; // TODO: weird way to get this. need harness b/c doesn't include table borders
|
|
10964
|
-
scrollerClientWidths[
|
|
11508
|
+
scrollerClientWidths[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().width - (forceYScrollbars
|
|
10965
11509
|
? scrollbarWidth.y // use global because scroller might not have scrollbars yet but will need them in future
|
|
10966
11510
|
: 0));
|
|
10967
|
-
scrollerClientHeights[
|
|
11511
|
+
scrollerClientHeights[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().height);
|
|
10968
11512
|
}
|
|
10969
11513
|
}
|
|
10970
11514
|
return { forceYScrollbars: forceYScrollbars, scrollerClientWidths: scrollerClientWidths, scrollerClientHeights: scrollerClientHeights };
|
|
@@ -10975,6 +11519,15 @@ main_SimpleScrollGrid.addStateEquality({
|
|
|
10975
11519
|
scrollerClientWidths: isPropsEqual,
|
|
10976
11520
|
scrollerClientHeights: isPropsEqual,
|
|
10977
11521
|
});
|
|
11522
|
+
function getSectionByKey(sections, key) {
|
|
11523
|
+
for (var _i = 0, sections_1 = sections; _i < sections_1.length; _i++) {
|
|
11524
|
+
var section = sections_1[_i];
|
|
11525
|
+
if (section.key === key) {
|
|
11526
|
+
return section;
|
|
11527
|
+
}
|
|
11528
|
+
}
|
|
11529
|
+
return null;
|
|
11530
|
+
}
|
|
10978
11531
|
|
|
10979
11532
|
var main_EventRoot = /** @class */ (function (_super) {
|
|
10980
11533
|
__extends(EventRoot, _super);
|
|
@@ -11038,10 +11591,10 @@ var main_StandardEvent = /** @class */ (function (_super) {
|
|
|
11038
11591
|
var seg = props.seg;
|
|
11039
11592
|
var timeFormat = context.options.eventTimeFormat || props.defaultTimeFormat;
|
|
11040
11593
|
var timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);
|
|
11041
|
-
return (createElement(main_EventRoot, { seg: seg, timeText: timeText, disableDragging: props.disableDragging, disableResizing: props.disableResizing, defaultContent: props.defaultContent || renderInnerContent, isDragging: props.isDragging, isResizing: props.isResizing, isDateSelecting: props.isDateSelecting, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement("a", __assign({ className: props.extraClassNames.concat(classNames).join(' '), style: {
|
|
11594
|
+
return (createElement(main_EventRoot, { seg: seg, timeText: timeText, disableDragging: props.disableDragging, disableResizing: props.disableResizing, defaultContent: props.defaultContent || renderInnerContent$1, isDragging: props.isDragging, isResizing: props.isResizing, isDateSelecting: props.isDateSelecting, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement("a", __assign({ className: props.extraClassNames.concat(classNames).join(' '), style: {
|
|
11042
11595
|
borderColor: hookProps.borderColor,
|
|
11043
11596
|
backgroundColor: hookProps.backgroundColor,
|
|
11044
|
-
}, ref: rootElRef }, getSegAnchorAttrs(seg)),
|
|
11597
|
+
}, ref: rootElRef }, getSegAnchorAttrs(seg, context)),
|
|
11045
11598
|
createElement("div", { className: "fc-event-main", ref: innerElRef, style: { color: hookProps.textColor } }, innerContent),
|
|
11046
11599
|
hookProps.isStartResizable &&
|
|
11047
11600
|
createElement("div", { className: "fc-event-resizer fc-event-resizer-start" }),
|
|
@@ -11050,16 +11603,12 @@ var main_StandardEvent = /** @class */ (function (_super) {
|
|
|
11050
11603
|
};
|
|
11051
11604
|
return StandardEvent;
|
|
11052
11605
|
}(main_BaseComponent));
|
|
11053
|
-
function renderInnerContent(innerProps) {
|
|
11606
|
+
function renderInnerContent$1(innerProps) {
|
|
11054
11607
|
return (createElement("div", { className: "fc-event-main-frame" },
|
|
11055
11608
|
innerProps.timeText && (createElement("div", { className: "fc-event-time" }, innerProps.timeText)),
|
|
11056
11609
|
createElement("div", { className: "fc-event-title-container" },
|
|
11057
11610
|
createElement("div", { className: "fc-event-title fc-sticky" }, innerProps.event.title || createElement(Fragment, null, "\u00A0")))));
|
|
11058
11611
|
}
|
|
11059
|
-
function getSegAnchorAttrs(seg) {
|
|
11060
|
-
var url = seg.eventRange.def.url;
|
|
11061
|
-
return url ? { href: url } : {};
|
|
11062
|
-
}
|
|
11063
11612
|
|
|
11064
11613
|
var NowIndicatorRoot = function (props) { return (createElement(ViewContextType.Consumer, null, function (context) {
|
|
11065
11614
|
var options = context.options;
|
|
@@ -11133,10 +11682,10 @@ var main_DayCellRoot = /** @class */ (function (_super) {
|
|
|
11133
11682
|
function renderFill(fillType) {
|
|
11134
11683
|
return (createElement("div", { className: "fc-" + fillType }));
|
|
11135
11684
|
}
|
|
11136
|
-
var BgEvent = function (props) { return (createElement(main_EventRoot, { defaultContent: renderInnerContent
|
|
11685
|
+
var BgEvent = function (props) { return (createElement(main_EventRoot, { defaultContent: renderInnerContent, seg: props.seg /* uselesss i think */, timeText: "", disableDragging: true, disableResizing: true, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement("div", { ref: rootElRef, className: ['fc-bg-event'].concat(classNames).join(' '), style: {
|
|
11137
11686
|
backgroundColor: hookProps.backgroundColor,
|
|
11138
11687
|
} }, innerContent)); })); };
|
|
11139
|
-
function renderInnerContent
|
|
11688
|
+
function renderInnerContent(props) {
|
|
11140
11689
|
var title = props.event.title;
|
|
11141
11690
|
return title && (createElement("div", { className: "fc-event-title" }, props.event.title));
|
|
11142
11691
|
}
|
|
@@ -11148,24 +11697,270 @@ var WeekNumberRoot = function (props) { return (createElement(ViewContextType.Co
|
|
|
11148
11697
|
var num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?
|
|
11149
11698
|
var text = dateEnv.format(date, format);
|
|
11150
11699
|
var hookProps = { num: num, text: text, date: date };
|
|
11151
|
-
return (createElement(main_RenderHook, { hookProps: hookProps, classNames: options.weekNumberClassNames, content: options.weekNumberContent, defaultContent: renderInner
|
|
11700
|
+
return (createElement(main_RenderHook, { hookProps: hookProps, classNames: options.weekNumberClassNames, content: options.weekNumberContent, defaultContent: renderInner, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount }, props.children));
|
|
11152
11701
|
})); };
|
|
11153
|
-
function renderInner
|
|
11702
|
+
function renderInner(innerProps) {
|
|
11154
11703
|
return innerProps.text;
|
|
11155
11704
|
}
|
|
11156
11705
|
|
|
11706
|
+
var PADDING_FROM_VIEWPORT = 10;
|
|
11707
|
+
var main_Popover = /** @class */ (function (_super) {
|
|
11708
|
+
__extends(Popover, _super);
|
|
11709
|
+
function Popover() {
|
|
11710
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
11711
|
+
_this.state = {
|
|
11712
|
+
titleId: getUniqueDomId(),
|
|
11713
|
+
};
|
|
11714
|
+
_this.handleRootEl = function (el) {
|
|
11715
|
+
_this.rootEl = el;
|
|
11716
|
+
if (_this.props.elRef) {
|
|
11717
|
+
setRef(_this.props.elRef, el);
|
|
11718
|
+
}
|
|
11719
|
+
};
|
|
11720
|
+
// Triggered when the user clicks *anywhere* in the document, for the autoHide feature
|
|
11721
|
+
_this.handleDocumentMouseDown = function (ev) {
|
|
11722
|
+
// only hide the popover if the click happened outside the popover
|
|
11723
|
+
var target = getEventTargetViaRoot(ev);
|
|
11724
|
+
if (!_this.rootEl.contains(target)) {
|
|
11725
|
+
_this.handleCloseClick();
|
|
11726
|
+
}
|
|
11727
|
+
};
|
|
11728
|
+
_this.handleDocumentKeyDown = function (ev) {
|
|
11729
|
+
if (ev.key === 'Escape') {
|
|
11730
|
+
_this.handleCloseClick();
|
|
11731
|
+
}
|
|
11732
|
+
};
|
|
11733
|
+
_this.handleCloseClick = function () {
|
|
11734
|
+
var onClose = _this.props.onClose;
|
|
11735
|
+
if (onClose) {
|
|
11736
|
+
onClose();
|
|
11737
|
+
}
|
|
11738
|
+
};
|
|
11739
|
+
return _this;
|
|
11740
|
+
}
|
|
11741
|
+
Popover.prototype.render = function () {
|
|
11742
|
+
var _a = this.context, theme = _a.theme, options = _a.options;
|
|
11743
|
+
var _b = this, props = _b.props, state = _b.state;
|
|
11744
|
+
var classNames = [
|
|
11745
|
+
'fc-popover',
|
|
11746
|
+
theme.getClass('popover'),
|
|
11747
|
+
].concat(props.extraClassNames || []);
|
|
11748
|
+
return createPortal(createElement("div", __assign({ id: props.id, className: classNames.join(' '), "aria-labelledby": state.titleId }, props.extraAttrs, { ref: this.handleRootEl }),
|
|
11749
|
+
createElement("div", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },
|
|
11750
|
+
createElement("span", { className: "fc-popover-title", id: state.titleId }, props.title),
|
|
11751
|
+
createElement("span", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),
|
|
11752
|
+
createElement("div", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);
|
|
11753
|
+
};
|
|
11754
|
+
Popover.prototype.componentDidMount = function () {
|
|
11755
|
+
document.addEventListener('mousedown', this.handleDocumentMouseDown);
|
|
11756
|
+
document.addEventListener('keydown', this.handleDocumentKeyDown);
|
|
11757
|
+
this.updateSize();
|
|
11758
|
+
};
|
|
11759
|
+
Popover.prototype.componentWillUnmount = function () {
|
|
11760
|
+
document.removeEventListener('mousedown', this.handleDocumentMouseDown);
|
|
11761
|
+
document.removeEventListener('keydown', this.handleDocumentKeyDown);
|
|
11762
|
+
};
|
|
11763
|
+
Popover.prototype.updateSize = function () {
|
|
11764
|
+
var isRtl = this.context.isRtl;
|
|
11765
|
+
var _a = this.props, alignmentEl = _a.alignmentEl, alignGridTop = _a.alignGridTop;
|
|
11766
|
+
var rootEl = this.rootEl;
|
|
11767
|
+
var alignmentRect = computeClippedClientRect(alignmentEl);
|
|
11768
|
+
if (alignmentRect) {
|
|
11769
|
+
var popoverDims = rootEl.getBoundingClientRect();
|
|
11770
|
+
// position relative to viewport
|
|
11771
|
+
var popoverTop = alignGridTop
|
|
11772
|
+
? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top
|
|
11773
|
+
: alignmentRect.top;
|
|
11774
|
+
var popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left;
|
|
11775
|
+
// constrain
|
|
11776
|
+
popoverTop = Math.max(popoverTop, PADDING_FROM_VIEWPORT);
|
|
11777
|
+
popoverLeft = Math.min(popoverLeft, document.documentElement.clientWidth - PADDING_FROM_VIEWPORT - popoverDims.width);
|
|
11778
|
+
popoverLeft = Math.max(popoverLeft, PADDING_FROM_VIEWPORT);
|
|
11779
|
+
var origin_1 = rootEl.offsetParent.getBoundingClientRect();
|
|
11780
|
+
applyStyle(rootEl, {
|
|
11781
|
+
top: popoverTop - origin_1.top,
|
|
11782
|
+
left: popoverLeft - origin_1.left,
|
|
11783
|
+
});
|
|
11784
|
+
}
|
|
11785
|
+
};
|
|
11786
|
+
return Popover;
|
|
11787
|
+
}(main_BaseComponent));
|
|
11788
|
+
|
|
11789
|
+
var main_MorePopover = /** @class */ (function (_super) {
|
|
11790
|
+
__extends(MorePopover, _super);
|
|
11791
|
+
function MorePopover() {
|
|
11792
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
11793
|
+
_this.handleRootEl = function (rootEl) {
|
|
11794
|
+
_this.rootEl = rootEl;
|
|
11795
|
+
if (rootEl) {
|
|
11796
|
+
_this.context.registerInteractiveComponent(_this, {
|
|
11797
|
+
el: rootEl,
|
|
11798
|
+
useEventCenter: false,
|
|
11799
|
+
});
|
|
11800
|
+
}
|
|
11801
|
+
else {
|
|
11802
|
+
_this.context.unregisterInteractiveComponent(_this);
|
|
11803
|
+
}
|
|
11804
|
+
};
|
|
11805
|
+
return _this;
|
|
11806
|
+
}
|
|
11807
|
+
MorePopover.prototype.render = function () {
|
|
11808
|
+
var _a = this.context, options = _a.options, dateEnv = _a.dateEnv;
|
|
11809
|
+
var props = this.props;
|
|
11810
|
+
var startDate = props.startDate, todayRange = props.todayRange, dateProfile = props.dateProfile;
|
|
11811
|
+
var title = dateEnv.format(startDate, options.dayPopoverFormat);
|
|
11812
|
+
return (createElement(main_DayCellRoot, { date: startDate, dateProfile: dateProfile, todayRange: todayRange, elRef: this.handleRootEl }, function (rootElRef, dayClassNames, dataAttrs) { return (createElement(main_Popover, { elRef: rootElRef, id: props.id, title: title, extraClassNames: ['fc-more-popover'].concat(dayClassNames), extraAttrs: dataAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },
|
|
11813
|
+
createElement(main_DayCellContent, { date: startDate, dateProfile: dateProfile, todayRange: todayRange }, function (innerElRef, innerContent) { return (innerContent &&
|
|
11814
|
+
createElement("div", { className: "fc-more-popover-misc", ref: innerElRef }, innerContent)); }),
|
|
11815
|
+
props.children)); }));
|
|
11816
|
+
};
|
|
11817
|
+
MorePopover.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {
|
|
11818
|
+
var _a = this, rootEl = _a.rootEl, props = _a.props;
|
|
11819
|
+
if (positionLeft >= 0 && positionLeft < elWidth &&
|
|
11820
|
+
positionTop >= 0 && positionTop < elHeight) {
|
|
11821
|
+
return {
|
|
11822
|
+
dateProfile: props.dateProfile,
|
|
11823
|
+
dateSpan: __assign({ allDay: true, range: {
|
|
11824
|
+
start: props.startDate,
|
|
11825
|
+
end: props.endDate,
|
|
11826
|
+
} }, props.extraDateSpan),
|
|
11827
|
+
dayEl: rootEl,
|
|
11828
|
+
rect: {
|
|
11829
|
+
left: 0,
|
|
11830
|
+
top: 0,
|
|
11831
|
+
right: elWidth,
|
|
11832
|
+
bottom: elHeight,
|
|
11833
|
+
},
|
|
11834
|
+
layer: 1, // important when comparing with hits from other components
|
|
11835
|
+
};
|
|
11836
|
+
}
|
|
11837
|
+
return null;
|
|
11838
|
+
};
|
|
11839
|
+
return MorePopover;
|
|
11840
|
+
}(main_DateComponent));
|
|
11841
|
+
|
|
11842
|
+
var main_MoreLinkRoot = /** @class */ (function (_super) {
|
|
11843
|
+
__extends(MoreLinkRoot, _super);
|
|
11844
|
+
function MoreLinkRoot() {
|
|
11845
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
11846
|
+
_this.linkElRef = createRef();
|
|
11847
|
+
_this.state = {
|
|
11848
|
+
isPopoverOpen: false,
|
|
11849
|
+
popoverId: getUniqueDomId(),
|
|
11850
|
+
};
|
|
11851
|
+
_this.handleClick = function (ev) {
|
|
11852
|
+
var _a = _this, props = _a.props, context = _a.context;
|
|
11853
|
+
var moreLinkClick = context.options.moreLinkClick;
|
|
11854
|
+
var date = computeRange(props).start;
|
|
11855
|
+
function buildPublicSeg(seg) {
|
|
11856
|
+
var _a = seg.eventRange, def = _a.def, instance = _a.instance, range = _a.range;
|
|
11857
|
+
return {
|
|
11858
|
+
event: new main_EventApi(context, def, instance),
|
|
11859
|
+
start: context.dateEnv.toDate(range.start),
|
|
11860
|
+
end: context.dateEnv.toDate(range.end),
|
|
11861
|
+
isStart: seg.isStart,
|
|
11862
|
+
isEnd: seg.isEnd,
|
|
11863
|
+
};
|
|
11864
|
+
}
|
|
11865
|
+
if (typeof moreLinkClick === 'function') {
|
|
11866
|
+
moreLinkClick = moreLinkClick({
|
|
11867
|
+
date: date,
|
|
11868
|
+
allDay: Boolean(props.allDayDate),
|
|
11869
|
+
allSegs: props.allSegs.map(buildPublicSeg),
|
|
11870
|
+
hiddenSegs: props.hiddenSegs.map(buildPublicSeg),
|
|
11871
|
+
jsEvent: ev,
|
|
11872
|
+
view: context.viewApi,
|
|
11873
|
+
});
|
|
11874
|
+
}
|
|
11875
|
+
if (!moreLinkClick || moreLinkClick === 'popover') {
|
|
11876
|
+
_this.setState({ isPopoverOpen: true });
|
|
11877
|
+
}
|
|
11878
|
+
else if (typeof moreLinkClick === 'string') { // a view name
|
|
11879
|
+
context.calendarApi.zoomTo(date, moreLinkClick);
|
|
11880
|
+
}
|
|
11881
|
+
};
|
|
11882
|
+
_this.handlePopoverClose = function () {
|
|
11883
|
+
_this.setState({ isPopoverOpen: false });
|
|
11884
|
+
};
|
|
11885
|
+
return _this;
|
|
11886
|
+
}
|
|
11887
|
+
MoreLinkRoot.prototype.render = function () {
|
|
11888
|
+
var _this = this;
|
|
11889
|
+
var _a = this, props = _a.props, state = _a.state;
|
|
11890
|
+
return (createElement(ViewContextType.Consumer, null, function (context) {
|
|
11891
|
+
var viewApi = context.viewApi, options = context.options, calendarApi = context.calendarApi;
|
|
11892
|
+
var moreLinkText = options.moreLinkText;
|
|
11893
|
+
var moreCnt = props.moreCnt;
|
|
11894
|
+
var range = computeRange(props);
|
|
11895
|
+
var text = typeof moreLinkText === 'function' // TODO: eventually use formatWithOrdinals
|
|
11896
|
+
? moreLinkText.call(calendarApi, moreCnt)
|
|
11897
|
+
: "+" + moreCnt + " " + moreLinkText;
|
|
11898
|
+
var title = formatWithOrdinals(options.moreLinkHint, [moreCnt], text);
|
|
11899
|
+
var hookProps = {
|
|
11900
|
+
num: moreCnt,
|
|
11901
|
+
shortText: "+" + moreCnt,
|
|
11902
|
+
text: text,
|
|
11903
|
+
view: viewApi,
|
|
11904
|
+
};
|
|
11905
|
+
return (createElement(Fragment, null,
|
|
11906
|
+
Boolean(props.moreCnt) && (createElement(main_RenderHook, { elRef: _this.linkElRef, hookProps: hookProps, classNames: options.moreLinkClassNames, content: options.moreLinkContent, defaultContent: props.defaultContent || renderMoreLinkInner, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return props.children(rootElRef, ['fc-more-link'].concat(customClassNames), innerElRef, innerContent, _this.handleClick, title, state.isPopoverOpen, state.isPopoverOpen ? state.popoverId : ''); })),
|
|
11907
|
+
state.isPopoverOpen && (createElement(main_MorePopover, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: _this.parentEl, alignmentEl: props.alignmentElRef.current, alignGridTop: props.alignGridTop, onClose: _this.handlePopoverClose }, props.popoverContent()))));
|
|
11908
|
+
}));
|
|
11909
|
+
};
|
|
11910
|
+
MoreLinkRoot.prototype.componentDidMount = function () {
|
|
11911
|
+
this.updateParentEl();
|
|
11912
|
+
};
|
|
11913
|
+
MoreLinkRoot.prototype.componentDidUpdate = function () {
|
|
11914
|
+
this.updateParentEl();
|
|
11915
|
+
};
|
|
11916
|
+
MoreLinkRoot.prototype.updateParentEl = function () {
|
|
11917
|
+
if (this.linkElRef.current) {
|
|
11918
|
+
this.parentEl = elementClosest(this.linkElRef.current, '.fc-view-harness');
|
|
11919
|
+
}
|
|
11920
|
+
};
|
|
11921
|
+
return MoreLinkRoot;
|
|
11922
|
+
}(main_BaseComponent));
|
|
11923
|
+
function renderMoreLinkInner(props) {
|
|
11924
|
+
return props.text;
|
|
11925
|
+
}
|
|
11926
|
+
function computeRange(props) {
|
|
11927
|
+
if (props.allDayDate) {
|
|
11928
|
+
return {
|
|
11929
|
+
start: props.allDayDate,
|
|
11930
|
+
end: addDays(props.allDayDate, 1),
|
|
11931
|
+
};
|
|
11932
|
+
}
|
|
11933
|
+
var hiddenSegs = props.hiddenSegs;
|
|
11934
|
+
return {
|
|
11935
|
+
start: computeEarliestSegStart(hiddenSegs),
|
|
11936
|
+
end: computeLatestSegEnd(hiddenSegs),
|
|
11937
|
+
};
|
|
11938
|
+
}
|
|
11939
|
+
function computeEarliestSegStart(segs) {
|
|
11940
|
+
return segs.reduce(pickEarliestStart).eventRange.range.start;
|
|
11941
|
+
}
|
|
11942
|
+
function pickEarliestStart(seg0, seg1) {
|
|
11943
|
+
return seg0.eventRange.range.start < seg1.eventRange.range.start ? seg0 : seg1;
|
|
11944
|
+
}
|
|
11945
|
+
function computeLatestSegEnd(segs) {
|
|
11946
|
+
return segs.reduce(pickLatestEnd).eventRange.range.end;
|
|
11947
|
+
}
|
|
11948
|
+
function pickLatestEnd(seg0, seg1) {
|
|
11949
|
+
return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;
|
|
11950
|
+
}
|
|
11951
|
+
|
|
11157
11952
|
// exports
|
|
11158
11953
|
// --------------------------------------------------------------------------------------------------
|
|
11159
|
-
var version = '5.
|
|
11954
|
+
var version = '5.10.1'; // important to type it, so .d.ts has generic string
|
|
11160
11955
|
|
|
11161
11956
|
|
|
11162
11957
|
//# sourceMappingURL=main.js.map
|
|
11163
11958
|
|
|
11164
11959
|
// CONCATENATED MODULE: ./node_modules/@fullcalendar/core/main.js
|
|
11165
11960
|
/*!
|
|
11166
|
-
FullCalendar v5.
|
|
11961
|
+
FullCalendar v5.10.1
|
|
11167
11962
|
Docs & License: https://fullcalendar.io/
|
|
11168
|
-
(c)
|
|
11963
|
+
(c) 2021 Adam Shaw
|
|
11169
11964
|
*/
|
|
11170
11965
|
|
|
11171
11966
|
|
|
@@ -11294,6 +12089,7 @@ var main_Calendar = /** @class */ (function (_super) {
|
|
|
11294
12089
|
|
|
11295
12090
|
|
|
11296
12091
|
|
|
12092
|
+
|
|
11297
12093
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
11298
12094
|
|
|
11299
12095
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|