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
|
@@ -575,7 +575,7 @@ exports = module.exports = __webpack_require__("2350")(false);
|
|
|
575
575
|
|
|
576
576
|
|
|
577
577
|
// module
|
|
578
|
-
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)}", ""]);
|
|
578
|
+
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))}", ""]);
|
|
579
579
|
|
|
580
580
|
// exports
|
|
581
581
|
|
|
@@ -1911,7 +1911,7 @@ if (typeof window !== 'undefined') {
|
|
|
1911
1911
|
// Indicate to webpack that this file can be concatenated
|
|
1912
1912
|
/* harmony default export */ var setPublicPath = (null);
|
|
1913
1913
|
|
|
1914
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"
|
|
1914
|
+
// 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&
|
|
1915
1915
|
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}
|
|
1916
1916
|
var staticRenderFns = []
|
|
1917
1917
|
|
|
@@ -1924,6 +1924,9 @@ var es7_object_get_own_property_descriptors = __webpack_require__("8e6e");
|
|
|
1924
1924
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js
|
|
1925
1925
|
var web_dom_iterable = __webpack_require__("ac6a");
|
|
1926
1926
|
|
|
1927
|
+
// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js
|
|
1928
|
+
var es6_array_iterator = __webpack_require__("cadf");
|
|
1929
|
+
|
|
1927
1930
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js
|
|
1928
1931
|
var es6_object_keys = __webpack_require__("456d");
|
|
1929
1932
|
|
|
@@ -2112,10 +2115,14 @@ function __spreadArrays() {
|
|
|
2112
2115
|
return r;
|
|
2113
2116
|
}
|
|
2114
2117
|
|
|
2115
|
-
function __spreadArray(to, from) {
|
|
2116
|
-
for (var i = 0,
|
|
2117
|
-
|
|
2118
|
-
|
|
2118
|
+
function __spreadArray(to, from, pack) {
|
|
2119
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
2120
|
+
if (ar || !(i in from)) {
|
|
2121
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
2122
|
+
ar[i] = from[i];
|
|
2123
|
+
}
|
|
2124
|
+
}
|
|
2125
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
2119
2126
|
}
|
|
2120
2127
|
|
|
2121
2128
|
function __await(v) {
|
|
@@ -2185,25 +2192,35 @@ function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
|
|
2185
2192
|
}
|
|
2186
2193
|
|
|
2187
2194
|
// CONCATENATED MODULE: ./node_modules/preact/dist/preact.module.js
|
|
2188
|
-
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;
|
|
2195
|
+
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;
|
|
2189
2196
|
//# sourceMappingURL=preact.module.js.map
|
|
2190
2197
|
|
|
2198
|
+
// CONCATENATED MODULE: ./node_modules/preact/hooks/dist/hooks.module.js
|
|
2199
|
+
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}
|
|
2200
|
+
//# sourceMappingURL=hooks.module.js.map
|
|
2201
|
+
|
|
2202
|
+
// CONCATENATED MODULE: ./node_modules/preact/compat/dist/compat.module.js
|
|
2203
|
+
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});
|
|
2204
|
+
//# sourceMappingURL=compat.module.js.map
|
|
2205
|
+
|
|
2191
2206
|
// CONCATENATED MODULE: ./node_modules/@fullcalendar/core/vdom.js
|
|
2192
2207
|
|
|
2193
2208
|
|
|
2194
2209
|
|
|
2210
|
+
|
|
2195
2211
|
var globalObj = typeof globalThis !== 'undefined' ? globalThis : window; // // TODO: streamline when killing IE11 support
|
|
2196
2212
|
if (globalObj.FullCalendarVDom) {
|
|
2197
2213
|
console.warn('FullCalendar VDOM already loaded');
|
|
2198
2214
|
}
|
|
2199
2215
|
else {
|
|
2200
2216
|
globalObj.FullCalendarVDom = {
|
|
2201
|
-
Component:
|
|
2202
|
-
createElement:
|
|
2203
|
-
render:
|
|
2204
|
-
createRef:
|
|
2205
|
-
Fragment:
|
|
2217
|
+
Component: _,
|
|
2218
|
+
createElement: v,
|
|
2219
|
+
render: S,
|
|
2220
|
+
createRef: p,
|
|
2221
|
+
Fragment: d,
|
|
2206
2222
|
createContext: createContext,
|
|
2223
|
+
createPortal: W,
|
|
2207
2224
|
flushToDom: flushToDom,
|
|
2208
2225
|
unmountComponentAtNode: unmountComponentAtNode,
|
|
2209
2226
|
};
|
|
@@ -2212,29 +2229,29 @@ else {
|
|
|
2212
2229
|
// TODO: lock version
|
|
2213
2230
|
// TODO: link gh issues
|
|
2214
2231
|
function flushToDom() {
|
|
2215
|
-
var oldDebounceRendering =
|
|
2232
|
+
var oldDebounceRendering = l.debounceRendering; // orig
|
|
2216
2233
|
var callbackQ = [];
|
|
2217
2234
|
function execCallbackSync(callback) {
|
|
2218
2235
|
callbackQ.push(callback);
|
|
2219
2236
|
}
|
|
2220
|
-
|
|
2221
|
-
|
|
2237
|
+
l.debounceRendering = execCallbackSync;
|
|
2238
|
+
S(v(vdom_FakeComponent, {}), document.createElement('div'));
|
|
2222
2239
|
while (callbackQ.length) {
|
|
2223
2240
|
callbackQ.shift()();
|
|
2224
2241
|
}
|
|
2225
|
-
|
|
2242
|
+
l.debounceRendering = oldDebounceRendering;
|
|
2226
2243
|
}
|
|
2227
2244
|
var vdom_FakeComponent = /** @class */ (function (_super) {
|
|
2228
2245
|
__extends(FakeComponent, _super);
|
|
2229
2246
|
function FakeComponent() {
|
|
2230
2247
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
2231
2248
|
}
|
|
2232
|
-
FakeComponent.prototype.render = function () { return
|
|
2249
|
+
FakeComponent.prototype.render = function () { return v('div', {}); };
|
|
2233
2250
|
FakeComponent.prototype.componentDidMount = function () { this.setState({}); };
|
|
2234
2251
|
return FakeComponent;
|
|
2235
|
-
}(
|
|
2252
|
+
}(_));
|
|
2236
2253
|
function createContext(defaultValue) {
|
|
2237
|
-
var ContextType =
|
|
2254
|
+
var ContextType = D(defaultValue);
|
|
2238
2255
|
var origProvider = ContextType.Provider;
|
|
2239
2256
|
ContextType.Provider = function () {
|
|
2240
2257
|
var _this = this;
|
|
@@ -2264,7 +2281,7 @@ function createContext(defaultValue) {
|
|
|
2264
2281
|
return ContextType;
|
|
2265
2282
|
}
|
|
2266
2283
|
function unmountComponentAtNode(node) {
|
|
2267
|
-
|
|
2284
|
+
S(null, node);
|
|
2268
2285
|
}
|
|
2269
2286
|
|
|
2270
2287
|
// EXTERNAL MODULE: ./node_modules/@fullcalendar/common/main.css
|
|
@@ -2281,16 +2298,18 @@ var vdom_render = FullCalendarVDom.render;
|
|
|
2281
2298
|
var createRef = FullCalendarVDom.createRef;
|
|
2282
2299
|
var Fragment = FullCalendarVDom.Fragment;
|
|
2283
2300
|
var vdom_createContext = FullCalendarVDom.createContext;
|
|
2301
|
+
var createPortal = FullCalendarVDom.createPortal;
|
|
2284
2302
|
var vdom_flushToDom = FullCalendarVDom.flushToDom;
|
|
2285
2303
|
var vdom_unmountComponentAtNode = FullCalendarVDom.unmountComponentAtNode;
|
|
2304
|
+
/* eslint-enable */
|
|
2286
2305
|
|
|
2287
2306
|
|
|
2288
2307
|
|
|
2289
2308
|
// CONCATENATED MODULE: ./node_modules/@fullcalendar/common/main.js
|
|
2290
2309
|
/*!
|
|
2291
|
-
FullCalendar v5.
|
|
2310
|
+
FullCalendar v5.10.1
|
|
2292
2311
|
Docs & License: https://fullcalendar.io/
|
|
2293
|
-
(c)
|
|
2312
|
+
(c) 2021 Adam Shaw
|
|
2294
2313
|
*/
|
|
2295
2314
|
|
|
2296
2315
|
|
|
@@ -2315,6 +2334,7 @@ var EventSourceApi = /** @class */ (function () {
|
|
|
2315
2334
|
this.context.dispatch({
|
|
2316
2335
|
type: 'FETCH_EVENT_SOURCES',
|
|
2317
2336
|
sourceIds: [this.internalEventSource.sourceId],
|
|
2337
|
+
isRefetch: true,
|
|
2318
2338
|
});
|
|
2319
2339
|
};
|
|
2320
2340
|
Object.defineProperty(EventSourceApi.prototype, "id", {
|
|
@@ -2325,13 +2345,19 @@ var EventSourceApi = /** @class */ (function () {
|
|
|
2325
2345
|
configurable: true
|
|
2326
2346
|
});
|
|
2327
2347
|
Object.defineProperty(EventSourceApi.prototype, "url", {
|
|
2328
|
-
// only relevant to json-feed event sources
|
|
2329
2348
|
get: function () {
|
|
2330
2349
|
return this.internalEventSource.meta.url;
|
|
2331
2350
|
},
|
|
2332
2351
|
enumerable: false,
|
|
2333
2352
|
configurable: true
|
|
2334
2353
|
});
|
|
2354
|
+
Object.defineProperty(EventSourceApi.prototype, "format", {
|
|
2355
|
+
get: function () {
|
|
2356
|
+
return this.internalEventSource.meta.format; // TODO: bad. not guaranteed
|
|
2357
|
+
},
|
|
2358
|
+
enumerable: false,
|
|
2359
|
+
configurable: true
|
|
2360
|
+
});
|
|
2335
2361
|
return EventSourceApi;
|
|
2336
2362
|
}());
|
|
2337
2363
|
|
|
@@ -2412,6 +2438,26 @@ function applyStyleProp(el, name, val) {
|
|
|
2412
2438
|
el.style[name] = val;
|
|
2413
2439
|
}
|
|
2414
2440
|
}
|
|
2441
|
+
// Event Handling
|
|
2442
|
+
// ----------------------------------------------------------------------------------------------------------------
|
|
2443
|
+
// if intercepting bubbled events at the document/window/body level,
|
|
2444
|
+
// and want to see originating element (the 'target'), use this util instead
|
|
2445
|
+
// of `ev.target` because it goes within web-component boundaries.
|
|
2446
|
+
function getEventTargetViaRoot(ev) {
|
|
2447
|
+
var _a, _b;
|
|
2448
|
+
return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;
|
|
2449
|
+
}
|
|
2450
|
+
// Shadow DOM consuderations
|
|
2451
|
+
// ----------------------------------------------------------------------------------------------------------------
|
|
2452
|
+
function getElRoot(el) {
|
|
2453
|
+
return el.getRootNode ? el.getRootNode() : document;
|
|
2454
|
+
}
|
|
2455
|
+
// Unique ID for DOM attribute
|
|
2456
|
+
var guid$1 = 0;
|
|
2457
|
+
function getUniqueDomId() {
|
|
2458
|
+
guid$1 += 1;
|
|
2459
|
+
return 'fc-dom-' + guid$1;
|
|
2460
|
+
}
|
|
2415
2461
|
|
|
2416
2462
|
// Stops a mouse/touch event from doing it's native browser action
|
|
2417
2463
|
function preventDefault(ev) {
|
|
@@ -2471,6 +2517,22 @@ function whenTransitionDone(el, callback) {
|
|
|
2471
2517
|
el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes
|
|
2472
2518
|
});
|
|
2473
2519
|
}
|
|
2520
|
+
// ARIA workarounds
|
|
2521
|
+
// ----------------------------------------------------------------------------------------------------------------
|
|
2522
|
+
function createAriaClickAttrs(handler) {
|
|
2523
|
+
return __assign({ onClick: handler }, createAriaKeyboardAttrs(handler));
|
|
2524
|
+
}
|
|
2525
|
+
function createAriaKeyboardAttrs(handler) {
|
|
2526
|
+
return {
|
|
2527
|
+
tabIndex: 0,
|
|
2528
|
+
onKeyDown: function (ev) {
|
|
2529
|
+
if (ev.key === 'Enter' || ev.key === ' ') {
|
|
2530
|
+
handler(ev);
|
|
2531
|
+
ev.preventDefault(); // if space, don't scroll down page
|
|
2532
|
+
}
|
|
2533
|
+
},
|
|
2534
|
+
};
|
|
2535
|
+
}
|
|
2474
2536
|
|
|
2475
2537
|
var guidNumber = 0;
|
|
2476
2538
|
function guid() {
|
|
@@ -2571,6 +2633,15 @@ function padStart(val, len) {
|
|
|
2571
2633
|
var s = String(val);
|
|
2572
2634
|
return '000'.substr(0, len - s.length) + s;
|
|
2573
2635
|
}
|
|
2636
|
+
function formatWithOrdinals(formatter, args, fallbackText) {
|
|
2637
|
+
if (typeof formatter === 'function') {
|
|
2638
|
+
return formatter.apply(void 0, args);
|
|
2639
|
+
}
|
|
2640
|
+
if (typeof formatter === 'string') { // non-blank string
|
|
2641
|
+
return args.reduce(function (str, arg, index) { return (str.replace('$' + index, arg || '')); }, formatter);
|
|
2642
|
+
}
|
|
2643
|
+
return fallbackText;
|
|
2644
|
+
}
|
|
2574
2645
|
/* Number Utilities
|
|
2575
2646
|
----------------------------------------------------------------------------------------------------------------------*/
|
|
2576
2647
|
function compareNumbers(a, b) {
|
|
@@ -3039,7 +3110,7 @@ function parseObject(obj) {
|
|
|
3039
3110
|
milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours
|
|
3040
3111
|
(obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes
|
|
3041
3112
|
(obj.seconds || obj.second || 0) * 1000 + // seconds
|
|
3042
|
-
(obj.milliseconds || obj.millisecond || obj.ms || 0),
|
|
3113
|
+
(obj.milliseconds || obj.millisecond || obj.ms || 0), // ms
|
|
3043
3114
|
};
|
|
3044
3115
|
var weeks = obj.weeks || obj.week;
|
|
3045
3116
|
if (weeks) {
|
|
@@ -3443,7 +3514,7 @@ function buildFormattingFunc(standardDateProps, extendedSettings, context) {
|
|
|
3443
3514
|
return function (date) { return (formatTimeZoneOffset(date.timeZoneOffset)); };
|
|
3444
3515
|
}
|
|
3445
3516
|
if (standardDatePropCnt === 0 && extendedSettings.week) {
|
|
3446
|
-
return function (date) { return (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.locale, extendedSettings.week)); };
|
|
3517
|
+
return function (date) { return (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week)); };
|
|
3447
3518
|
}
|
|
3448
3519
|
return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);
|
|
3449
3520
|
}
|
|
@@ -3535,15 +3606,17 @@ function injectTzoStr(s, tzoStr) {
|
|
|
3535
3606
|
}
|
|
3536
3607
|
return s;
|
|
3537
3608
|
}
|
|
3538
|
-
function formatWeekNumber(num, weekText, locale, display) {
|
|
3609
|
+
function formatWeekNumber(num, weekText, weekTextLong, locale, display) {
|
|
3539
3610
|
var parts = [];
|
|
3540
|
-
if (display === '
|
|
3611
|
+
if (display === 'long') {
|
|
3612
|
+
parts.push(weekTextLong);
|
|
3613
|
+
}
|
|
3614
|
+
else if (display === 'short' || display === 'narrow') {
|
|
3541
3615
|
parts.push(weekText);
|
|
3542
3616
|
}
|
|
3543
|
-
|
|
3544
|
-
parts.push(
|
|
3617
|
+
if (display === 'long' || display === 'short') {
|
|
3618
|
+
parts.push(' ');
|
|
3545
3619
|
}
|
|
3546
|
-
// otherwise, considered 'numeric'
|
|
3547
3620
|
parts.push(locale.simpleNumberFormat.format(num));
|
|
3548
3621
|
if (locale.options.direction === 'rtl') { // TODO: use control characters instead?
|
|
3549
3622
|
parts.reverse();
|
|
@@ -3697,6 +3770,7 @@ var BASE_OPTION_REFINERS = {
|
|
|
3697
3770
|
defaultTimedEventDuration: createDuration,
|
|
3698
3771
|
nextDayThreshold: createDuration,
|
|
3699
3772
|
scrollTime: createDuration,
|
|
3773
|
+
scrollTimeReset: Boolean,
|
|
3700
3774
|
slotMinTime: createDuration,
|
|
3701
3775
|
slotMaxTime: createDuration,
|
|
3702
3776
|
dayPopoverFormat: createFormatter,
|
|
@@ -3750,6 +3824,7 @@ var BASE_OPTION_REFINERS = {
|
|
|
3750
3824
|
unselectAuto: Boolean,
|
|
3751
3825
|
dropAccept: identity,
|
|
3752
3826
|
eventOrder: parseFieldSpecs,
|
|
3827
|
+
eventOrderStrict: Boolean,
|
|
3753
3828
|
handleWindowResize: Boolean,
|
|
3754
3829
|
windowResizeDelay: Number,
|
|
3755
3830
|
longPressDelay: Number,
|
|
@@ -3763,6 +3838,7 @@ var BASE_OPTION_REFINERS = {
|
|
|
3763
3838
|
displayEventTime: Boolean,
|
|
3764
3839
|
displayEventEnd: Boolean,
|
|
3765
3840
|
weekText: String,
|
|
3841
|
+
weekTextLong: String,
|
|
3766
3842
|
progressiveEventRendering: Boolean,
|
|
3767
3843
|
businessHours: identity,
|
|
3768
3844
|
initialDate: identity,
|
|
@@ -3816,12 +3892,16 @@ var BASE_OPTION_REFINERS = {
|
|
|
3816
3892
|
eventTimeFormat: createFormatter,
|
|
3817
3893
|
rerenderDelay: Number,
|
|
3818
3894
|
moreLinkText: identity,
|
|
3895
|
+
moreLinkHint: identity,
|
|
3819
3896
|
selectMinDistance: Number,
|
|
3820
3897
|
selectable: Boolean,
|
|
3821
3898
|
selectLongPressDelay: Number,
|
|
3822
3899
|
eventLongPressDelay: Number,
|
|
3823
3900
|
selectMirror: Boolean,
|
|
3901
|
+
eventMaxStack: Number,
|
|
3824
3902
|
eventMinHeight: Number,
|
|
3903
|
+
eventMinWidth: Number,
|
|
3904
|
+
eventShortHeight: Number,
|
|
3825
3905
|
slotEventOverlap: Boolean,
|
|
3826
3906
|
plugins: identity,
|
|
3827
3907
|
firstDay: Number,
|
|
@@ -3834,8 +3914,19 @@ var BASE_OPTION_REFINERS = {
|
|
|
3834
3914
|
validRange: identity,
|
|
3835
3915
|
visibleRange: identity,
|
|
3836
3916
|
titleFormat: identity,
|
|
3917
|
+
eventInteractive: Boolean,
|
|
3837
3918
|
// only used by list-view, but languages define the value, so we need it in base options
|
|
3838
3919
|
noEventsText: String,
|
|
3920
|
+
viewHint: identity,
|
|
3921
|
+
navLinkHint: identity,
|
|
3922
|
+
closeHint: String,
|
|
3923
|
+
timeHint: String,
|
|
3924
|
+
eventHint: String,
|
|
3925
|
+
moreLinkClick: identity,
|
|
3926
|
+
moreLinkClassNames: identity,
|
|
3927
|
+
moreLinkContent: identity,
|
|
3928
|
+
moreLinkDidMount: identity,
|
|
3929
|
+
moreLinkWillUnmount: identity,
|
|
3839
3930
|
};
|
|
3840
3931
|
// do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.
|
|
3841
3932
|
// raw values.
|
|
@@ -3861,6 +3952,7 @@ var BASE_OPTION_DEFAULTS = {
|
|
|
3861
3952
|
editable: false,
|
|
3862
3953
|
nowIndicator: false,
|
|
3863
3954
|
scrollTime: '06:00:00',
|
|
3955
|
+
scrollTimeReset: true,
|
|
3864
3956
|
slotMinTime: '00:00:00',
|
|
3865
3957
|
slotMaxTime: '24:00:00',
|
|
3866
3958
|
showNonCurrentDates: true,
|
|
@@ -3886,6 +3978,9 @@ var BASE_OPTION_DEFAULTS = {
|
|
|
3886
3978
|
expandRows: false,
|
|
3887
3979
|
navLinks: false,
|
|
3888
3980
|
selectable: false,
|
|
3981
|
+
eventMinHeight: 15,
|
|
3982
|
+
eventMinWidth: 30,
|
|
3983
|
+
eventShortHeight: 30,
|
|
3889
3984
|
};
|
|
3890
3985
|
// calendar listeners
|
|
3891
3986
|
// ------------------
|
|
@@ -3915,6 +4010,7 @@ var CALENDAR_LISTENER_REFINERS = {
|
|
|
3915
4010
|
// -------------------------
|
|
3916
4011
|
var CALENDAR_OPTION_REFINERS = {
|
|
3917
4012
|
buttonText: identity,
|
|
4013
|
+
buttonHints: identity,
|
|
3918
4014
|
views: identity,
|
|
3919
4015
|
plugins: identity,
|
|
3920
4016
|
initialEvents: identity,
|
|
@@ -3925,6 +4021,7 @@ var COMPLEX_OPTION_COMPARATORS = {
|
|
|
3925
4021
|
headerToolbar: isBoolComplexEqual,
|
|
3926
4022
|
footerToolbar: isBoolComplexEqual,
|
|
3927
4023
|
buttonText: isBoolComplexEqual,
|
|
4024
|
+
buttonHints: isBoolComplexEqual,
|
|
3928
4025
|
buttonIcons: isBoolComplexEqual,
|
|
3929
4026
|
};
|
|
3930
4027
|
function isBoolComplexEqual(a, b) {
|
|
@@ -4113,7 +4210,7 @@ function createEventUi(refined, context) {
|
|
|
4113
4210
|
backgroundColor: refined.backgroundColor || refined.color || '',
|
|
4114
4211
|
borderColor: refined.borderColor || refined.color || '',
|
|
4115
4212
|
textColor: refined.textColor || '',
|
|
4116
|
-
classNames: (refined.className || []).concat(refined.classNames || []),
|
|
4213
|
+
classNames: (refined.className || []).concat(refined.classNames || []), // join singular and plural
|
|
4117
4214
|
};
|
|
4118
4215
|
}
|
|
4119
4216
|
// TODO: prevent against problems with <2 args!
|
|
@@ -4140,6 +4237,7 @@ var EVENT_NON_DATE_REFINERS = {
|
|
|
4140
4237
|
groupId: String,
|
|
4141
4238
|
title: String,
|
|
4142
4239
|
url: String,
|
|
4240
|
+
interactive: Boolean,
|
|
4143
4241
|
};
|
|
4144
4242
|
var EVENT_DATE_REFINERS = {
|
|
4145
4243
|
start: identity,
|
|
@@ -4192,6 +4290,7 @@ function parseEventDef(refined, extra, sourceId, allDay, hasEnd, context) {
|
|
|
4192
4290
|
sourceId: sourceId,
|
|
4193
4291
|
allDay: allDay,
|
|
4194
4292
|
hasEnd: hasEnd,
|
|
4293
|
+
interactive: refined.interactive,
|
|
4195
4294
|
ui: createEventUi(refined, context),
|
|
4196
4295
|
extendedProps: __assign(__assign({}, (refined.extendedProps || {})), extra),
|
|
4197
4296
|
};
|
|
@@ -4579,9 +4678,15 @@ startOverride, endOverride) {
|
|
|
4579
4678
|
if (displayEventEnd == null) {
|
|
4580
4679
|
displayEventEnd = defaultDisplayEventEnd !== false;
|
|
4581
4680
|
}
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4681
|
+
var wholeEventStart = eventInstance.range.start;
|
|
4682
|
+
var wholeEventEnd = eventInstance.range.end;
|
|
4683
|
+
var segStart = startOverride || seg.start || seg.eventRange.range.start;
|
|
4684
|
+
var segEnd = endOverride || seg.end || seg.eventRange.range.end;
|
|
4685
|
+
var isStartDay = startOfDay(wholeEventStart).valueOf() === startOfDay(segStart).valueOf();
|
|
4686
|
+
var isEndDay = startOfDay(addMs(wholeEventEnd, -1)).valueOf() === startOfDay(addMs(segEnd, -1)).valueOf();
|
|
4687
|
+
if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {
|
|
4688
|
+
segStart = isStartDay ? wholeEventStart : segStart;
|
|
4689
|
+
segEnd = isEndDay ? wholeEventEnd : segEnd;
|
|
4585
4690
|
if (displayEventEnd && eventDef.hasEnd) {
|
|
4586
4691
|
return dateEnv.formatRange(segStart, segEnd, timeFormat, {
|
|
4587
4692
|
forcedStartTzo: startOverride ? null : eventInstance.forcedStartTzo,
|
|
@@ -4589,7 +4694,7 @@ startOverride, endOverride) {
|
|
|
4589
4694
|
});
|
|
4590
4695
|
}
|
|
4591
4696
|
return dateEnv.format(segStart, timeFormat, {
|
|
4592
|
-
forcedTzo: startOverride ? null : eventInstance.forcedStartTzo,
|
|
4697
|
+
forcedTzo: startOverride ? null : eventInstance.forcedStartTzo, // nooooo, same
|
|
4593
4698
|
});
|
|
4594
4699
|
}
|
|
4595
4700
|
return '';
|
|
@@ -4645,6 +4750,34 @@ function buildEventRangeKey(eventRange) {
|
|
|
4645
4750
|
: eventRange.def.defId + ":" + eventRange.range.start.toISOString();
|
|
4646
4751
|
// inverse-background events don't have specific instances. TODO: better solution
|
|
4647
4752
|
}
|
|
4753
|
+
function getSegAnchorAttrs(seg, context) {
|
|
4754
|
+
var _a = seg.eventRange, def = _a.def, instance = _a.instance;
|
|
4755
|
+
var url = def.url;
|
|
4756
|
+
if (url) {
|
|
4757
|
+
return { href: url };
|
|
4758
|
+
}
|
|
4759
|
+
var emitter = context.emitter, options = context.options;
|
|
4760
|
+
var eventInteractive = options.eventInteractive;
|
|
4761
|
+
if (eventInteractive == null) {
|
|
4762
|
+
eventInteractive = def.interactive;
|
|
4763
|
+
if (eventInteractive == null) {
|
|
4764
|
+
eventInteractive = Boolean(emitter.hasHandlers('eventClick'));
|
|
4765
|
+
}
|
|
4766
|
+
}
|
|
4767
|
+
// mock what happens in EventClicking
|
|
4768
|
+
if (eventInteractive) {
|
|
4769
|
+
// only attach keyboard-related handlers because click handler is already done in EventClicking
|
|
4770
|
+
return createAriaKeyboardAttrs(function (ev) {
|
|
4771
|
+
emitter.trigger('eventClick', {
|
|
4772
|
+
el: ev.target,
|
|
4773
|
+
event: new main_EventApi(context, def, instance),
|
|
4774
|
+
jsEvent: ev,
|
|
4775
|
+
view: context.viewApi,
|
|
4776
|
+
});
|
|
4777
|
+
});
|
|
4778
|
+
}
|
|
4779
|
+
return {};
|
|
4780
|
+
}
|
|
4648
4781
|
|
|
4649
4782
|
var STANDARD_PROPS = {
|
|
4650
4783
|
start: identity,
|
|
@@ -4914,6 +5047,7 @@ var EVENT_SOURCE_REFINERS = {
|
|
|
4914
5047
|
id: String,
|
|
4915
5048
|
defaultAllDay: Boolean,
|
|
4916
5049
|
url: String,
|
|
5050
|
+
format: String,
|
|
4917
5051
|
events: identity,
|
|
4918
5052
|
eventDataTransform: identity,
|
|
4919
5053
|
// for any network-related sources
|
|
@@ -5054,7 +5188,7 @@ var main_CalendarApi = /** @class */ (function () {
|
|
|
5054
5188
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
5055
5189
|
args[_i - 1] = arguments[_i];
|
|
5056
5190
|
}
|
|
5057
|
-
(_a = this.currentDataManager.emitter).trigger.apply(_a,
|
|
5191
|
+
(_a = this.currentDataManager.emitter).trigger.apply(_a, __spreadArray([handlerName], args));
|
|
5058
5192
|
};
|
|
5059
5193
|
// View
|
|
5060
5194
|
// -----------------------------------------------------------------------------------------------------------------
|
|
@@ -5118,7 +5252,7 @@ var main_CalendarApi = /** @class */ (function () {
|
|
|
5118
5252
|
// Preference is given to views that have corresponding buttons.
|
|
5119
5253
|
CalendarApi.prototype.getUnitViewSpec = function (unit) {
|
|
5120
5254
|
var _a = this.getCurrentData(), viewSpecs = _a.viewSpecs, toolbarConfig = _a.toolbarConfig;
|
|
5121
|
-
var viewTypes = [].concat(toolbarConfig.viewsWithButtons);
|
|
5255
|
+
var viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);
|
|
5122
5256
|
var i;
|
|
5123
5257
|
var spec;
|
|
5124
5258
|
for (var viewType in viewSpecs) {
|
|
@@ -5256,7 +5390,7 @@ var main_CalendarApi = /** @class */ (function () {
|
|
|
5256
5390
|
if (!currentData.eventStore.defs[def.defId]) {
|
|
5257
5391
|
this.dispatch({
|
|
5258
5392
|
type: 'ADD_EVENTS',
|
|
5259
|
-
eventStore: eventTupleToStore({ def: def, instance: instance }),
|
|
5393
|
+
eventStore: eventTupleToStore({ def: def, instance: instance }), // TODO: better util for two args?
|
|
5260
5394
|
});
|
|
5261
5395
|
this.triggerEventAdd(eventInput);
|
|
5262
5396
|
}
|
|
@@ -5379,7 +5513,7 @@ var main_CalendarApi = /** @class */ (function () {
|
|
|
5379
5513
|
this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' });
|
|
5380
5514
|
};
|
|
5381
5515
|
CalendarApi.prototype.refetchEvents = function () {
|
|
5382
|
-
this.dispatch({ type: 'FETCH_EVENT_SOURCES' });
|
|
5516
|
+
this.dispatch({ type: 'FETCH_EVENT_SOURCES', isRefetch: true });
|
|
5383
5517
|
};
|
|
5384
5518
|
// Scroll
|
|
5385
5519
|
// -----------------------------------------------------------------------------------------------------------------
|
|
@@ -5407,6 +5541,13 @@ var main_EventApi = /** @class */ (function () {
|
|
|
5407
5541
|
var _a, _b;
|
|
5408
5542
|
if (name in EVENT_DATE_REFINERS) {
|
|
5409
5543
|
console.warn('Could not set date-related prop \'name\'. Use one of the date-related methods instead.');
|
|
5544
|
+
// TODO: make proper aliasing system?
|
|
5545
|
+
}
|
|
5546
|
+
else if (name === 'id') {
|
|
5547
|
+
val = EVENT_NON_DATE_REFINERS[name](val);
|
|
5548
|
+
this.mutate({
|
|
5549
|
+
standardProps: { publicId: val }, // hardcoded internal name
|
|
5550
|
+
});
|
|
5410
5551
|
}
|
|
5411
5552
|
else if (name in EVENT_NON_DATE_REFINERS) {
|
|
5412
5553
|
val = EVENT_NON_DATE_REFINERS[name](val);
|
|
@@ -5561,8 +5702,8 @@ var main_EventApi = /** @class */ (function () {
|
|
|
5561
5702
|
if (instance) {
|
|
5562
5703
|
var def = this._def;
|
|
5563
5704
|
var context_1 = this._context;
|
|
5564
|
-
var
|
|
5565
|
-
var
|
|
5705
|
+
var eventStore_1 = context_1.getCurrentData().eventStore;
|
|
5706
|
+
var relevantEvents = getRelevantEvents(eventStore_1, instance.instanceId);
|
|
5566
5707
|
var eventConfigBase = {
|
|
5567
5708
|
'': {
|
|
5568
5709
|
display: '',
|
|
@@ -5577,22 +5718,22 @@ var main_EventApi = /** @class */ (function () {
|
|
|
5577
5718
|
classNames: [],
|
|
5578
5719
|
},
|
|
5579
5720
|
};
|
|
5580
|
-
|
|
5721
|
+
relevantEvents = applyMutationToEventStore(relevantEvents, eventConfigBase, mutation, context_1);
|
|
5581
5722
|
var oldEvent = new EventApi(context_1, def, instance); // snapshot
|
|
5582
|
-
this._def =
|
|
5583
|
-
this._instance =
|
|
5723
|
+
this._def = relevantEvents.defs[def.defId];
|
|
5724
|
+
this._instance = relevantEvents.instances[instance.instanceId];
|
|
5584
5725
|
context_1.dispatch({
|
|
5585
5726
|
type: 'MERGE_EVENTS',
|
|
5586
|
-
eventStore:
|
|
5727
|
+
eventStore: relevantEvents,
|
|
5587
5728
|
});
|
|
5588
5729
|
context_1.emitter.trigger('eventChange', {
|
|
5589
5730
|
oldEvent: oldEvent,
|
|
5590
5731
|
event: this,
|
|
5591
|
-
relatedEvents: buildEventApis(
|
|
5732
|
+
relatedEvents: buildEventApis(relevantEvents, context_1, instance),
|
|
5592
5733
|
revert: function () {
|
|
5593
5734
|
context_1.dispatch({
|
|
5594
|
-
type: '
|
|
5595
|
-
eventStore:
|
|
5735
|
+
type: 'RESET_EVENTS',
|
|
5736
|
+
eventStore: eventStore_1,
|
|
5596
5737
|
});
|
|
5597
5738
|
},
|
|
5598
5739
|
});
|
|
@@ -5915,6 +6056,7 @@ var DateEnv = /** @class */ (function () {
|
|
|
5915
6056
|
this.weekNumberFunc = settings.weekNumberCalculation;
|
|
5916
6057
|
}
|
|
5917
6058
|
this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;
|
|
6059
|
+
this.weekTextLong = (settings.weekTextLong != null ? settings.weekTextLong : settings.locale.options.weekTextLong) || this.weekText;
|
|
5918
6060
|
this.cmdFormatter = settings.cmdFormatter;
|
|
5919
6061
|
this.defaultSeparator = settings.defaultSeparator;
|
|
5920
6062
|
}
|
|
@@ -6217,11 +6359,11 @@ var DateEnv = /** @class */ (function () {
|
|
|
6217
6359
|
|
|
6218
6360
|
var globalLocales = [];
|
|
6219
6361
|
|
|
6220
|
-
var
|
|
6362
|
+
var MINIMAL_RAW_EN_LOCALE = {
|
|
6221
6363
|
code: 'en',
|
|
6222
6364
|
week: {
|
|
6223
6365
|
dow: 0,
|
|
6224
|
-
doy: 4,
|
|
6366
|
+
doy: 4, // 4 days need to be within the year to be considered the first week
|
|
6225
6367
|
},
|
|
6226
6368
|
direction: 'ltr',
|
|
6227
6369
|
buttonText: {
|
|
@@ -6237,10 +6379,28 @@ var RAW_EN_LOCALE = {
|
|
|
6237
6379
|
list: 'list',
|
|
6238
6380
|
},
|
|
6239
6381
|
weekText: 'W',
|
|
6382
|
+
weekTextLong: 'Week',
|
|
6383
|
+
closeHint: 'Close',
|
|
6384
|
+
timeHint: 'Time',
|
|
6385
|
+
eventHint: 'Event',
|
|
6240
6386
|
allDayText: 'all-day',
|
|
6241
6387
|
moreLinkText: 'more',
|
|
6242
6388
|
noEventsText: 'No events to display',
|
|
6243
6389
|
};
|
|
6390
|
+
var RAW_EN_LOCALE = __assign(__assign({}, MINIMAL_RAW_EN_LOCALE), {
|
|
6391
|
+
// Includes things we don't want other locales to inherit,
|
|
6392
|
+
// things that derive from other translatable strings.
|
|
6393
|
+
buttonHints: {
|
|
6394
|
+
prev: 'Previous $0',
|
|
6395
|
+
next: 'Next $0',
|
|
6396
|
+
today: function (buttonText, unit) {
|
|
6397
|
+
return (unit === 'day')
|
|
6398
|
+
? 'Today'
|
|
6399
|
+
: "This " + buttonText;
|
|
6400
|
+
},
|
|
6401
|
+
}, viewHint: '$0 view', navLinkHint: 'Go to $0', moreLinkHint: function (eventCnt) {
|
|
6402
|
+
return "Show " + eventCnt + " more event" + (eventCnt === 1 ? '' : 's');
|
|
6403
|
+
} });
|
|
6244
6404
|
function organizeRawLocales(explicitRawLocales) {
|
|
6245
6405
|
var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';
|
|
6246
6406
|
var allRawLocales = globalLocales.concat(explicitRawLocales);
|
|
@@ -6280,7 +6440,7 @@ function queryRawLocale(codes, available) {
|
|
|
6280
6440
|
return null;
|
|
6281
6441
|
}
|
|
6282
6442
|
function parseLocale(codeArg, codes, raw) {
|
|
6283
|
-
var merged = mergeProps([
|
|
6443
|
+
var merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);
|
|
6284
6444
|
delete merged.code; // don't want this part of the options
|
|
6285
6445
|
var week = merged.week;
|
|
6286
6446
|
delete merged.week;
|
|
@@ -6295,7 +6455,7 @@ function parseLocale(codeArg, codes, raw) {
|
|
|
6295
6455
|
|
|
6296
6456
|
function formatDate(dateInput, options) {
|
|
6297
6457
|
if (options === void 0) { options = {}; }
|
|
6298
|
-
var dateEnv = buildDateEnv(options);
|
|
6458
|
+
var dateEnv = buildDateEnv$1(options);
|
|
6299
6459
|
var formatter = createFormatter(options);
|
|
6300
6460
|
var dateMeta = dateEnv.createMarkerMeta(dateInput);
|
|
6301
6461
|
if (!dateMeta) { // TODO: warning?
|
|
@@ -6306,7 +6466,7 @@ function formatDate(dateInput, options) {
|
|
|
6306
6466
|
});
|
|
6307
6467
|
}
|
|
6308
6468
|
function formatRange(startInput, endInput, options) {
|
|
6309
|
-
var dateEnv = buildDateEnv(typeof options === 'object' && options ? options : {}); // pass in if non-null object
|
|
6469
|
+
var dateEnv = buildDateEnv$1(typeof options === 'object' && options ? options : {}); // pass in if non-null object
|
|
6310
6470
|
var formatter = createFormatter(options);
|
|
6311
6471
|
var startMeta = dateEnv.createMarkerMeta(startInput);
|
|
6312
6472
|
var endMeta = dateEnv.createMarkerMeta(endInput);
|
|
@@ -6321,7 +6481,7 @@ function formatRange(startInput, endInput, options) {
|
|
|
6321
6481
|
});
|
|
6322
6482
|
}
|
|
6323
6483
|
// TODO: more DRY and optimized
|
|
6324
|
-
function buildDateEnv(settings) {
|
|
6484
|
+
function buildDateEnv$1(settings) {
|
|
6325
6485
|
var locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere
|
|
6326
6486
|
return new DateEnv(__assign(__assign({ timeZone: BASE_OPTION_DEFAULTS.timeZone, calendarSystem: 'gregory' }, settings), { locale: locale }));
|
|
6327
6487
|
}
|
|
@@ -6332,7 +6492,7 @@ var DEF_DEFAULTS = {
|
|
|
6332
6492
|
daysOfWeek: [1, 2, 3, 4, 5],
|
|
6333
6493
|
display: 'inverse-background',
|
|
6334
6494
|
classNames: 'fc-non-business',
|
|
6335
|
-
groupId: '_businessHours',
|
|
6495
|
+
groupId: '_businessHours', // so multiple defs get grouped
|
|
6336
6496
|
};
|
|
6337
6497
|
/*
|
|
6338
6498
|
TODO: pass around as EventDefHash!!!
|
|
@@ -6628,12 +6788,33 @@ function getSlotClassNames(meta, theme) {
|
|
|
6628
6788
|
return classNames;
|
|
6629
6789
|
}
|
|
6630
6790
|
|
|
6631
|
-
|
|
6632
|
-
|
|
6633
|
-
|
|
6634
|
-
|
|
6635
|
-
|
|
6636
|
-
|
|
6791
|
+
var DAY_FORMAT = createFormatter({ year: 'numeric', month: 'long', day: 'numeric' });
|
|
6792
|
+
var WEEK_FORMAT = createFormatter({ week: 'long' });
|
|
6793
|
+
function buildNavLinkAttrs(context, dateMarker, viewType, isTabbable) {
|
|
6794
|
+
if (viewType === void 0) { viewType = 'day'; }
|
|
6795
|
+
if (isTabbable === void 0) { isTabbable = true; }
|
|
6796
|
+
var dateEnv = context.dateEnv, options = context.options, calendarApi = context.calendarApi;
|
|
6797
|
+
var dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);
|
|
6798
|
+
if (options.navLinks) {
|
|
6799
|
+
var zonedDate = dateEnv.toDate(dateMarker);
|
|
6800
|
+
var handleInteraction = function (ev) {
|
|
6801
|
+
var customAction = viewType === 'day' ? options.navLinkDayClick :
|
|
6802
|
+
viewType === 'week' ? options.navLinkWeekClick : null;
|
|
6803
|
+
if (typeof customAction === 'function') {
|
|
6804
|
+
customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);
|
|
6805
|
+
}
|
|
6806
|
+
else {
|
|
6807
|
+
if (typeof customAction === 'string') {
|
|
6808
|
+
viewType = customAction;
|
|
6809
|
+
}
|
|
6810
|
+
calendarApi.zoomTo(dateMarker, viewType);
|
|
6811
|
+
}
|
|
6812
|
+
};
|
|
6813
|
+
return __assign({ title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), 'data-navlink': '' }, (isTabbable
|
|
6814
|
+
? createAriaClickAttrs(handleInteraction)
|
|
6815
|
+
: { onClick: handleInteraction }));
|
|
6816
|
+
}
|
|
6817
|
+
return { 'aria-label': dateStr };
|
|
6637
6818
|
}
|
|
6638
6819
|
|
|
6639
6820
|
var _isRtlScrollbarOnLeft = null;
|
|
@@ -6672,6 +6853,9 @@ function getScrollbarWidths() {
|
|
|
6672
6853
|
function computeScrollbarWidths() {
|
|
6673
6854
|
var el = document.createElement('div');
|
|
6674
6855
|
el.style.overflow = 'scroll';
|
|
6856
|
+
el.style.position = 'absolute';
|
|
6857
|
+
el.style.top = '-9999px';
|
|
6858
|
+
el.style.left = '-9999px';
|
|
6675
6859
|
document.body.appendChild(el);
|
|
6676
6860
|
var res = computeScrollbarWidthsForEl(el);
|
|
6677
6861
|
document.body.removeChild(el);
|
|
@@ -6745,6 +6929,21 @@ function computeRect(el) {
|
|
|
6745
6929
|
bottom: rect.bottom + window.pageYOffset,
|
|
6746
6930
|
};
|
|
6747
6931
|
}
|
|
6932
|
+
function computeClippedClientRect(el) {
|
|
6933
|
+
var clippingParents = getClippingParents(el);
|
|
6934
|
+
var rect = el.getBoundingClientRect();
|
|
6935
|
+
for (var _i = 0, clippingParents_1 = clippingParents; _i < clippingParents_1.length; _i++) {
|
|
6936
|
+
var clippingParent = clippingParents_1[_i];
|
|
6937
|
+
var intersection = intersectRects(rect, clippingParent.getBoundingClientRect());
|
|
6938
|
+
if (intersection) {
|
|
6939
|
+
rect = intersection;
|
|
6940
|
+
}
|
|
6941
|
+
else {
|
|
6942
|
+
return null;
|
|
6943
|
+
}
|
|
6944
|
+
}
|
|
6945
|
+
return rect;
|
|
6946
|
+
}
|
|
6748
6947
|
function computeHeightAndMargins(el) {
|
|
6749
6948
|
return el.getBoundingClientRect().height + computeVMargins(el);
|
|
6750
6949
|
}
|
|
@@ -6828,8 +7027,8 @@ var Emitter = /** @class */ (function () {
|
|
|
6828
7027
|
}
|
|
6829
7028
|
};
|
|
6830
7029
|
Emitter.prototype.hasHandlers = function (type) {
|
|
6831
|
-
return (this.handlers[type] && this.handlers[type].length) ||
|
|
6832
|
-
(this.options && this.options[type]);
|
|
7030
|
+
return Boolean((this.handlers[type] && this.handlers[type].length) ||
|
|
7031
|
+
(this.options && this.options[type]));
|
|
6833
7032
|
};
|
|
6834
7033
|
return Emitter;
|
|
6835
7034
|
}());
|
|
@@ -7088,11 +7287,12 @@ main_Theme.prototype.baseIconClass = '';
|
|
|
7088
7287
|
main_Theme.prototype.iconOverridePrefix = '';
|
|
7089
7288
|
|
|
7090
7289
|
var main_ScrollResponder = /** @class */ (function () {
|
|
7091
|
-
function ScrollResponder(execFunc, emitter, scrollTime) {
|
|
7290
|
+
function ScrollResponder(execFunc, emitter, scrollTime, scrollTimeReset) {
|
|
7092
7291
|
var _this = this;
|
|
7093
7292
|
this.execFunc = execFunc;
|
|
7094
7293
|
this.emitter = emitter;
|
|
7095
7294
|
this.scrollTime = scrollTime;
|
|
7295
|
+
this.scrollTimeReset = scrollTimeReset;
|
|
7096
7296
|
this.handleScrollRequest = function (request) {
|
|
7097
7297
|
_this.queuedRequest = __assign({}, _this.queuedRequest || {}, request);
|
|
7098
7298
|
_this.drain();
|
|
@@ -7104,7 +7304,7 @@ var main_ScrollResponder = /** @class */ (function () {
|
|
|
7104
7304
|
this.emitter.off('_scrollRequest', this.handleScrollRequest);
|
|
7105
7305
|
};
|
|
7106
7306
|
ScrollResponder.prototype.update = function (isDatesNew) {
|
|
7107
|
-
if (isDatesNew) {
|
|
7307
|
+
if (isDatesNew && this.scrollTimeReset) {
|
|
7108
7308
|
this.fireInitialScroll(); // will drain
|
|
7109
7309
|
}
|
|
7110
7310
|
else {
|
|
@@ -7146,7 +7346,7 @@ function buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator,
|
|
|
7146
7346
|
emitter.off('_resize', handler);
|
|
7147
7347
|
},
|
|
7148
7348
|
createScrollResponder: function (execFunc) {
|
|
7149
|
-
return new main_ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime));
|
|
7349
|
+
return new main_ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime), viewOptions.scrollTimeReset);
|
|
7150
7350
|
},
|
|
7151
7351
|
registerInteractiveComponent: registerInteractiveComponent,
|
|
7152
7352
|
unregisterInteractiveComponent: unregisterInteractiveComponent,
|
|
@@ -7203,467 +7403,153 @@ function setRef(ref, current) {
|
|
|
7203
7403
|
}
|
|
7204
7404
|
}
|
|
7205
7405
|
|
|
7206
|
-
|
|
7207
|
-
|
|
7208
|
-
|
|
7209
|
-
|
|
7210
|
-
|
|
7211
|
-
|
|
7212
|
-
|
|
7213
|
-
|
|
7214
|
-
|
|
7215
|
-
|
|
7216
|
-
|
|
7217
|
-
|
|
7218
|
-
|
|
7219
|
-
if (dateProfile) {
|
|
7220
|
-
return expandRecurring(eventStore, dateProfile.activeRange, context);
|
|
7221
|
-
}
|
|
7222
|
-
return eventStore;
|
|
7223
|
-
case 'REMOVE_EVENTS':
|
|
7224
|
-
return excludeSubEventStore(eventStore, action.eventStore);
|
|
7225
|
-
case 'REMOVE_EVENT_SOURCE':
|
|
7226
|
-
return excludeEventsBySourceId(eventStore, action.sourceId);
|
|
7227
|
-
case 'REMOVE_ALL_EVENT_SOURCES':
|
|
7228
|
-
return filterEventStoreDefs(eventStore, function (eventDef) { return (!eventDef.sourceId // only keep events with no source id
|
|
7229
|
-
); });
|
|
7230
|
-
case 'REMOVE_ALL_EVENTS':
|
|
7231
|
-
return createEmptyEventStore();
|
|
7232
|
-
default:
|
|
7233
|
-
return eventStore;
|
|
7406
|
+
/*
|
|
7407
|
+
an INTERACTABLE date component
|
|
7408
|
+
|
|
7409
|
+
PURPOSES:
|
|
7410
|
+
- hook up to fg, fill, and mirror renderers
|
|
7411
|
+
- interface for dragging and hits
|
|
7412
|
+
*/
|
|
7413
|
+
var main_DateComponent = /** @class */ (function (_super) {
|
|
7414
|
+
__extends(DateComponent, _super);
|
|
7415
|
+
function DateComponent() {
|
|
7416
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
7417
|
+
_this.uid = guid();
|
|
7418
|
+
return _this;
|
|
7234
7419
|
}
|
|
7420
|
+
// Hit System
|
|
7421
|
+
// -----------------------------------------------------------------------------------------------------------------
|
|
7422
|
+
DateComponent.prototype.prepareHits = function () {
|
|
7423
|
+
};
|
|
7424
|
+
DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {
|
|
7425
|
+
return null; // this should be abstract
|
|
7426
|
+
};
|
|
7427
|
+
// Pointer Interaction Utils
|
|
7428
|
+
// -----------------------------------------------------------------------------------------------------------------
|
|
7429
|
+
DateComponent.prototype.isValidSegDownEl = function (el) {
|
|
7430
|
+
return !this.props.eventDrag && // HACK
|
|
7431
|
+
!this.props.eventResize && // HACK
|
|
7432
|
+
!elementClosest(el, '.fc-event-mirror');
|
|
7433
|
+
};
|
|
7434
|
+
DateComponent.prototype.isValidDateDownEl = function (el) {
|
|
7435
|
+
return !elementClosest(el, '.fc-event:not(.fc-bg-event)') &&
|
|
7436
|
+
!elementClosest(el, '.fc-more-link') && // a "more.." link
|
|
7437
|
+
!elementClosest(el, 'a[data-navlink]') && // a clickable nav link
|
|
7438
|
+
!elementClosest(el, '.fc-popover'); // hack
|
|
7439
|
+
};
|
|
7440
|
+
return DateComponent;
|
|
7441
|
+
}(main_BaseComponent));
|
|
7442
|
+
|
|
7443
|
+
// TODO: easier way to add new hooks? need to update a million things
|
|
7444
|
+
function createPlugin(input) {
|
|
7445
|
+
return {
|
|
7446
|
+
id: guid(),
|
|
7447
|
+
deps: input.deps || [],
|
|
7448
|
+
reducers: input.reducers || [],
|
|
7449
|
+
isLoadingFuncs: input.isLoadingFuncs || [],
|
|
7450
|
+
contextInit: [].concat(input.contextInit || []),
|
|
7451
|
+
eventRefiners: input.eventRefiners || {},
|
|
7452
|
+
eventDefMemberAdders: input.eventDefMemberAdders || [],
|
|
7453
|
+
eventSourceRefiners: input.eventSourceRefiners || {},
|
|
7454
|
+
isDraggableTransformers: input.isDraggableTransformers || [],
|
|
7455
|
+
eventDragMutationMassagers: input.eventDragMutationMassagers || [],
|
|
7456
|
+
eventDefMutationAppliers: input.eventDefMutationAppliers || [],
|
|
7457
|
+
dateSelectionTransformers: input.dateSelectionTransformers || [],
|
|
7458
|
+
datePointTransforms: input.datePointTransforms || [],
|
|
7459
|
+
dateSpanTransforms: input.dateSpanTransforms || [],
|
|
7460
|
+
views: input.views || {},
|
|
7461
|
+
viewPropsTransformers: input.viewPropsTransformers || [],
|
|
7462
|
+
isPropsValid: input.isPropsValid || null,
|
|
7463
|
+
externalDefTransforms: input.externalDefTransforms || [],
|
|
7464
|
+
viewContainerAppends: input.viewContainerAppends || [],
|
|
7465
|
+
eventDropTransformers: input.eventDropTransformers || [],
|
|
7466
|
+
componentInteractions: input.componentInteractions || [],
|
|
7467
|
+
calendarInteractions: input.calendarInteractions || [],
|
|
7468
|
+
themeClasses: input.themeClasses || {},
|
|
7469
|
+
eventSourceDefs: input.eventSourceDefs || [],
|
|
7470
|
+
cmdFormatter: input.cmdFormatter,
|
|
7471
|
+
recurringTypes: input.recurringTypes || [],
|
|
7472
|
+
namedTimeZonedImpl: input.namedTimeZonedImpl,
|
|
7473
|
+
initialView: input.initialView || '',
|
|
7474
|
+
elementDraggingImpl: input.elementDraggingImpl,
|
|
7475
|
+
optionChangeHandlers: input.optionChangeHandlers || {},
|
|
7476
|
+
scrollGridImpl: input.scrollGridImpl || null,
|
|
7477
|
+
contentTypeHandlers: input.contentTypeHandlers || {},
|
|
7478
|
+
listenerRefiners: input.listenerRefiners || {},
|
|
7479
|
+
optionRefiners: input.optionRefiners || {},
|
|
7480
|
+
propSetHandlers: input.propSetHandlers || {},
|
|
7481
|
+
};
|
|
7235
7482
|
}
|
|
7236
|
-
function
|
|
7237
|
-
|
|
7238
|
-
|
|
7239
|
-
|
|
7240
|
-
|
|
7241
|
-
|
|
7242
|
-
|
|
7483
|
+
function buildPluginHooks(pluginDefs, globalDefs) {
|
|
7484
|
+
var isAdded = {};
|
|
7485
|
+
var hooks = {
|
|
7486
|
+
reducers: [],
|
|
7487
|
+
isLoadingFuncs: [],
|
|
7488
|
+
contextInit: [],
|
|
7489
|
+
eventRefiners: {},
|
|
7490
|
+
eventDefMemberAdders: [],
|
|
7491
|
+
eventSourceRefiners: {},
|
|
7492
|
+
isDraggableTransformers: [],
|
|
7493
|
+
eventDragMutationMassagers: [],
|
|
7494
|
+
eventDefMutationAppliers: [],
|
|
7495
|
+
dateSelectionTransformers: [],
|
|
7496
|
+
datePointTransforms: [],
|
|
7497
|
+
dateSpanTransforms: [],
|
|
7498
|
+
views: {},
|
|
7499
|
+
viewPropsTransformers: [],
|
|
7500
|
+
isPropsValid: null,
|
|
7501
|
+
externalDefTransforms: [],
|
|
7502
|
+
viewContainerAppends: [],
|
|
7503
|
+
eventDropTransformers: [],
|
|
7504
|
+
componentInteractions: [],
|
|
7505
|
+
calendarInteractions: [],
|
|
7506
|
+
themeClasses: {},
|
|
7507
|
+
eventSourceDefs: [],
|
|
7508
|
+
cmdFormatter: null,
|
|
7509
|
+
recurringTypes: [],
|
|
7510
|
+
namedTimeZonedImpl: null,
|
|
7511
|
+
initialView: '',
|
|
7512
|
+
elementDraggingImpl: null,
|
|
7513
|
+
optionChangeHandlers: {},
|
|
7514
|
+
scrollGridImpl: null,
|
|
7515
|
+
contentTypeHandlers: {},
|
|
7516
|
+
listenerRefiners: {},
|
|
7517
|
+
optionRefiners: {},
|
|
7518
|
+
propSetHandlers: {},
|
|
7519
|
+
};
|
|
7520
|
+
function addDefs(defs) {
|
|
7521
|
+
for (var _i = 0, defs_1 = defs; _i < defs_1.length; _i++) {
|
|
7522
|
+
var def = defs_1[_i];
|
|
7523
|
+
if (!isAdded[def.id]) {
|
|
7524
|
+
isAdded[def.id] = true;
|
|
7525
|
+
addDefs(def.deps);
|
|
7526
|
+
hooks = combineHooks(hooks, def);
|
|
7527
|
+
}
|
|
7243
7528
|
}
|
|
7244
|
-
return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);
|
|
7245
|
-
}
|
|
7246
|
-
return eventStore;
|
|
7247
|
-
}
|
|
7248
|
-
function transformRawEvents(rawEvents, eventSource, context) {
|
|
7249
|
-
var calEachTransform = context.options.eventDataTransform;
|
|
7250
|
-
var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;
|
|
7251
|
-
if (sourceEachTransform) {
|
|
7252
|
-
rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);
|
|
7253
7529
|
}
|
|
7254
|
-
if (
|
|
7255
|
-
|
|
7530
|
+
if (pluginDefs) {
|
|
7531
|
+
addDefs(pluginDefs);
|
|
7256
7532
|
}
|
|
7257
|
-
|
|
7533
|
+
addDefs(globalDefs);
|
|
7534
|
+
return hooks;
|
|
7258
7535
|
}
|
|
7259
|
-
function
|
|
7260
|
-
var
|
|
7261
|
-
|
|
7262
|
-
|
|
7263
|
-
|
|
7264
|
-
|
|
7265
|
-
|
|
7266
|
-
for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {
|
|
7267
|
-
var rawEvent = rawEvents_1[_i];
|
|
7268
|
-
var refinedEvent = func(rawEvent);
|
|
7269
|
-
if (refinedEvent) {
|
|
7270
|
-
refinedEvents.push(refinedEvent);
|
|
7271
|
-
}
|
|
7272
|
-
else if (refinedEvent == null) {
|
|
7273
|
-
refinedEvents.push(rawEvent);
|
|
7274
|
-
} // if a different falsy value, do nothing
|
|
7536
|
+
function buildBuildPluginHooks() {
|
|
7537
|
+
var currentOverrideDefs = [];
|
|
7538
|
+
var currentGlobalDefs = [];
|
|
7539
|
+
var currentHooks;
|
|
7540
|
+
return function (overrideDefs, globalDefs) {
|
|
7541
|
+
if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {
|
|
7542
|
+
currentHooks = buildPluginHooks(overrideDefs, globalDefs);
|
|
7275
7543
|
}
|
|
7276
|
-
|
|
7277
|
-
|
|
7278
|
-
|
|
7279
|
-
|
|
7280
|
-
if (expandRange) {
|
|
7281
|
-
subset = expandRecurring(subset, expandRange, context);
|
|
7282
|
-
}
|
|
7283
|
-
return mergeEventStores(eventStore, subset);
|
|
7284
|
-
}
|
|
7285
|
-
function rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {
|
|
7286
|
-
var defs = eventStore.defs;
|
|
7287
|
-
var instances = mapHash(eventStore.instances, function (instance) {
|
|
7288
|
-
var def = defs[instance.defId];
|
|
7289
|
-
if (def.allDay || def.recurringDef) {
|
|
7290
|
-
return instance; // isn't dependent on timezone
|
|
7291
|
-
}
|
|
7292
|
-
return __assign(__assign({}, instance), { range: {
|
|
7293
|
-
start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),
|
|
7294
|
-
end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)),
|
|
7295
|
-
}, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });
|
|
7296
|
-
});
|
|
7297
|
-
return { defs: defs, instances: instances };
|
|
7298
|
-
}
|
|
7299
|
-
function excludeEventsBySourceId(eventStore, sourceId) {
|
|
7300
|
-
return filterEventStoreDefs(eventStore, function (eventDef) { return eventDef.sourceId !== sourceId; });
|
|
7301
|
-
}
|
|
7302
|
-
// QUESTION: why not just return instances? do a general object-property-exclusion util
|
|
7303
|
-
function excludeInstances(eventStore, removals) {
|
|
7304
|
-
return {
|
|
7305
|
-
defs: eventStore.defs,
|
|
7306
|
-
instances: filterHash(eventStore.instances, function (instance) { return !removals[instance.instanceId]; }),
|
|
7307
|
-
};
|
|
7308
|
-
}
|
|
7309
|
-
|
|
7310
|
-
// high-level segmenting-aware tester functions
|
|
7311
|
-
// ------------------------------------------------------------------------------------------------------------------------
|
|
7312
|
-
function isInteractionValid(interaction, context) {
|
|
7313
|
-
return isNewPropsValid({ eventDrag: interaction }, context); // HACK: the eventDrag props is used for ALL interactions
|
|
7314
|
-
}
|
|
7315
|
-
function isDateSelectionValid(dateSelection, context) {
|
|
7316
|
-
return isNewPropsValid({ dateSelection: dateSelection }, context);
|
|
7317
|
-
}
|
|
7318
|
-
function isNewPropsValid(newProps, context) {
|
|
7319
|
-
var calendarState = context.getCurrentData();
|
|
7320
|
-
var props = __assign({ businessHours: calendarState.businessHours, dateSelection: '', eventStore: calendarState.eventStore, eventUiBases: calendarState.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);
|
|
7321
|
-
return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);
|
|
7322
|
-
}
|
|
7323
|
-
function isPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
7324
|
-
if (dateSpanMeta === void 0) { dateSpanMeta = {}; }
|
|
7325
|
-
if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {
|
|
7326
|
-
return false;
|
|
7327
|
-
}
|
|
7328
|
-
if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {
|
|
7329
|
-
return false;
|
|
7330
|
-
}
|
|
7331
|
-
return true;
|
|
7332
|
-
}
|
|
7333
|
-
// Moving Event Validation
|
|
7334
|
-
// ------------------------------------------------------------------------------------------------------------------------
|
|
7335
|
-
function isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
7336
|
-
var currentState = context.getCurrentData();
|
|
7337
|
-
var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions
|
|
7338
|
-
var subjectEventStore = interaction.mutatedEvents;
|
|
7339
|
-
var subjectDefs = subjectEventStore.defs;
|
|
7340
|
-
var subjectInstances = subjectEventStore.instances;
|
|
7341
|
-
var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?
|
|
7342
|
-
state.eventUiBases :
|
|
7343
|
-
{ '': currentState.selectionConfig });
|
|
7344
|
-
if (filterConfig) {
|
|
7345
|
-
subjectConfigs = mapHash(subjectConfigs, filterConfig);
|
|
7346
|
-
}
|
|
7347
|
-
// exclude the subject events. TODO: exclude defs too?
|
|
7348
|
-
var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);
|
|
7349
|
-
var otherDefs = otherEventStore.defs;
|
|
7350
|
-
var otherInstances = otherEventStore.instances;
|
|
7351
|
-
var otherConfigs = compileEventUis(otherDefs, state.eventUiBases);
|
|
7352
|
-
for (var subjectInstanceId in subjectInstances) {
|
|
7353
|
-
var subjectInstance = subjectInstances[subjectInstanceId];
|
|
7354
|
-
var subjectRange = subjectInstance.range;
|
|
7355
|
-
var subjectConfig = subjectConfigs[subjectInstance.defId];
|
|
7356
|
-
var subjectDef = subjectDefs[subjectInstance.defId];
|
|
7357
|
-
// constraint
|
|
7358
|
-
if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {
|
|
7359
|
-
return false;
|
|
7360
|
-
}
|
|
7361
|
-
// overlap
|
|
7362
|
-
var eventOverlap = context.options.eventOverlap;
|
|
7363
|
-
var eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;
|
|
7364
|
-
for (var otherInstanceId in otherInstances) {
|
|
7365
|
-
var otherInstance = otherInstances[otherInstanceId];
|
|
7366
|
-
// intersect! evaluate
|
|
7367
|
-
if (rangesIntersect(subjectRange, otherInstance.range)) {
|
|
7368
|
-
var otherOverlap = otherConfigs[otherInstance.defId].overlap;
|
|
7369
|
-
// consider the other event's overlap. only do this if the subject event is a "real" event
|
|
7370
|
-
if (otherOverlap === false && interaction.isEvent) {
|
|
7371
|
-
return false;
|
|
7372
|
-
}
|
|
7373
|
-
if (subjectConfig.overlap === false) {
|
|
7374
|
-
return false;
|
|
7375
|
-
}
|
|
7376
|
-
if (eventOverlapFunc && !eventOverlapFunc(new main_EventApi(context, otherDefs[otherInstance.defId], otherInstance), // still event
|
|
7377
|
-
new main_EventApi(context, subjectDef, subjectInstance))) {
|
|
7378
|
-
return false;
|
|
7379
|
-
}
|
|
7380
|
-
}
|
|
7381
|
-
}
|
|
7382
|
-
// allow (a function)
|
|
7383
|
-
var calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state
|
|
7384
|
-
for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) {
|
|
7385
|
-
var subjectAllow = _a[_i];
|
|
7386
|
-
var subjectDateSpan = __assign(__assign({}, dateSpanMeta), { range: subjectInstance.range, allDay: subjectDef.allDay });
|
|
7387
|
-
var origDef = calendarEventStore.defs[subjectDef.defId];
|
|
7388
|
-
var origInstance = calendarEventStore.instances[subjectInstanceId];
|
|
7389
|
-
var eventApi = void 0;
|
|
7390
|
-
if (origDef) { // was previously in the calendar
|
|
7391
|
-
eventApi = new main_EventApi(context, origDef, origInstance);
|
|
7392
|
-
}
|
|
7393
|
-
else { // was an external event
|
|
7394
|
-
eventApi = new main_EventApi(context, subjectDef); // no instance, because had no dates
|
|
7395
|
-
}
|
|
7396
|
-
if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {
|
|
7397
|
-
return false;
|
|
7398
|
-
}
|
|
7399
|
-
}
|
|
7400
|
-
}
|
|
7401
|
-
return true;
|
|
7402
|
-
}
|
|
7403
|
-
// Date Selection Validation
|
|
7404
|
-
// ------------------------------------------------------------------------------------------------------------------------
|
|
7405
|
-
function isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
7406
|
-
var relevantEventStore = state.eventStore;
|
|
7407
|
-
var relevantDefs = relevantEventStore.defs;
|
|
7408
|
-
var relevantInstances = relevantEventStore.instances;
|
|
7409
|
-
var selection = state.dateSelection;
|
|
7410
|
-
var selectionRange = selection.range;
|
|
7411
|
-
var selectionConfig = context.getCurrentData().selectionConfig;
|
|
7412
|
-
if (filterConfig) {
|
|
7413
|
-
selectionConfig = filterConfig(selectionConfig);
|
|
7414
|
-
}
|
|
7415
|
-
// constraint
|
|
7416
|
-
if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {
|
|
7417
|
-
return false;
|
|
7418
|
-
}
|
|
7419
|
-
// overlap
|
|
7420
|
-
var selectOverlap = context.options.selectOverlap;
|
|
7421
|
-
var selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;
|
|
7422
|
-
for (var relevantInstanceId in relevantInstances) {
|
|
7423
|
-
var relevantInstance = relevantInstances[relevantInstanceId];
|
|
7424
|
-
// intersect! evaluate
|
|
7425
|
-
if (rangesIntersect(selectionRange, relevantInstance.range)) {
|
|
7426
|
-
if (selectionConfig.overlap === false) {
|
|
7427
|
-
return false;
|
|
7428
|
-
}
|
|
7429
|
-
if (selectOverlapFunc && !selectOverlapFunc(new main_EventApi(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {
|
|
7430
|
-
return false;
|
|
7431
|
-
}
|
|
7432
|
-
}
|
|
7433
|
-
}
|
|
7434
|
-
// allow (a function)
|
|
7435
|
-
for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) {
|
|
7436
|
-
var selectionAllow = _a[_i];
|
|
7437
|
-
var fullDateSpan = __assign(__assign({}, dateSpanMeta), selection);
|
|
7438
|
-
if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {
|
|
7439
|
-
return false;
|
|
7440
|
-
}
|
|
7441
|
-
}
|
|
7442
|
-
return true;
|
|
7443
|
-
}
|
|
7444
|
-
// Constraint Utils
|
|
7445
|
-
// ------------------------------------------------------------------------------------------------------------------------
|
|
7446
|
-
function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {
|
|
7447
|
-
for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) {
|
|
7448
|
-
var constraint = constraints_1[_i];
|
|
7449
|
-
if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {
|
|
7450
|
-
return false;
|
|
7451
|
-
}
|
|
7452
|
-
}
|
|
7453
|
-
return true;
|
|
7454
|
-
}
|
|
7455
|
-
function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours
|
|
7456
|
-
otherEventStore, // for if constraint is an even group ID
|
|
7457
|
-
businessHoursUnexpanded, // for if constraint is 'businessHours'
|
|
7458
|
-
context) {
|
|
7459
|
-
if (constraint === 'businessHours') {
|
|
7460
|
-
return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));
|
|
7461
|
-
}
|
|
7462
|
-
if (typeof constraint === 'string') { // an group ID
|
|
7463
|
-
return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { return eventDef.groupId === constraint; }));
|
|
7464
|
-
}
|
|
7465
|
-
if (typeof constraint === 'object' && constraint) { // non-null object
|
|
7466
|
-
return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));
|
|
7467
|
-
}
|
|
7468
|
-
return []; // if it's false
|
|
7469
|
-
}
|
|
7470
|
-
// TODO: move to event-store file?
|
|
7471
|
-
function eventStoreToRanges(eventStore) {
|
|
7472
|
-
var instances = eventStore.instances;
|
|
7473
|
-
var ranges = [];
|
|
7474
|
-
for (var instanceId in instances) {
|
|
7475
|
-
ranges.push(instances[instanceId].range);
|
|
7476
|
-
}
|
|
7477
|
-
return ranges;
|
|
7478
|
-
}
|
|
7479
|
-
// TODO: move to geom file?
|
|
7480
|
-
function anyRangesContainRange(outerRanges, innerRange) {
|
|
7481
|
-
for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) {
|
|
7482
|
-
var outerRange = outerRanges_1[_i];
|
|
7483
|
-
if (rangeContainsRange(outerRange, innerRange)) {
|
|
7484
|
-
return true;
|
|
7485
|
-
}
|
|
7486
|
-
}
|
|
7487
|
-
return false;
|
|
7488
|
-
}
|
|
7489
|
-
|
|
7490
|
-
/*
|
|
7491
|
-
an INTERACTABLE date component
|
|
7492
|
-
|
|
7493
|
-
PURPOSES:
|
|
7494
|
-
- hook up to fg, fill, and mirror renderers
|
|
7495
|
-
- interface for dragging and hits
|
|
7496
|
-
*/
|
|
7497
|
-
var main_DateComponent = /** @class */ (function (_super) {
|
|
7498
|
-
__extends(DateComponent, _super);
|
|
7499
|
-
function DateComponent() {
|
|
7500
|
-
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
7501
|
-
_this.uid = guid();
|
|
7502
|
-
return _this;
|
|
7503
|
-
}
|
|
7504
|
-
// Hit System
|
|
7505
|
-
// -----------------------------------------------------------------------------------------------------------------
|
|
7506
|
-
DateComponent.prototype.prepareHits = function () {
|
|
7507
|
-
};
|
|
7508
|
-
DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {
|
|
7509
|
-
return null; // this should be abstract
|
|
7510
|
-
};
|
|
7511
|
-
// Validation
|
|
7512
|
-
// -----------------------------------------------------------------------------------------------------------------
|
|
7513
|
-
DateComponent.prototype.isInteractionValid = function (interaction) {
|
|
7514
|
-
var dateProfile = this.props.dateProfile; // HACK
|
|
7515
|
-
var instances = interaction.mutatedEvents.instances;
|
|
7516
|
-
if (dateProfile) { // HACK for MorePopover
|
|
7517
|
-
for (var instanceId in instances) {
|
|
7518
|
-
if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {
|
|
7519
|
-
return false;
|
|
7520
|
-
}
|
|
7521
|
-
}
|
|
7522
|
-
}
|
|
7523
|
-
return isInteractionValid(interaction, this.context);
|
|
7524
|
-
};
|
|
7525
|
-
DateComponent.prototype.isDateSelectionValid = function (selection) {
|
|
7526
|
-
var dateProfile = this.props.dateProfile; // HACK
|
|
7527
|
-
if (dateProfile && // HACK for MorePopover
|
|
7528
|
-
!rangeContainsRange(dateProfile.validRange, selection.range)) {
|
|
7529
|
-
return false;
|
|
7530
|
-
}
|
|
7531
|
-
return isDateSelectionValid(selection, this.context);
|
|
7532
|
-
};
|
|
7533
|
-
// Pointer Interaction Utils
|
|
7534
|
-
// -----------------------------------------------------------------------------------------------------------------
|
|
7535
|
-
DateComponent.prototype.isValidSegDownEl = function (el) {
|
|
7536
|
-
return !this.props.eventDrag && // HACK
|
|
7537
|
-
!this.props.eventResize && // HACK
|
|
7538
|
-
!elementClosest(el, '.fc-event-mirror') &&
|
|
7539
|
-
(this.isPopover() || !this.isInPopover(el));
|
|
7540
|
-
// ^above line ensures we don't detect a seg interaction within a nested component.
|
|
7541
|
-
// it's a HACK because it only supports a popover as the nested component.
|
|
7542
|
-
};
|
|
7543
|
-
DateComponent.prototype.isValidDateDownEl = function (el) {
|
|
7544
|
-
return !elementClosest(el, '.fc-event:not(.fc-bg-event)') &&
|
|
7545
|
-
!elementClosest(el, '.fc-daygrid-more-link') && // a "more.." link
|
|
7546
|
-
!elementClosest(el, 'a[data-navlink]') && // a clickable nav link
|
|
7547
|
-
!this.isInPopover(el);
|
|
7548
|
-
};
|
|
7549
|
-
DateComponent.prototype.isPopover = function () {
|
|
7550
|
-
return false;
|
|
7551
|
-
};
|
|
7552
|
-
DateComponent.prototype.isInPopover = function (el) {
|
|
7553
|
-
return Boolean(elementClosest(el, '.fc-popover'));
|
|
7554
|
-
};
|
|
7555
|
-
return DateComponent;
|
|
7556
|
-
}(main_BaseComponent));
|
|
7557
|
-
|
|
7558
|
-
// TODO: easier way to add new hooks? need to update a million things
|
|
7559
|
-
function createPlugin(input) {
|
|
7560
|
-
return {
|
|
7561
|
-
id: guid(),
|
|
7562
|
-
deps: input.deps || [],
|
|
7563
|
-
reducers: input.reducers || [],
|
|
7564
|
-
contextInit: [].concat(input.contextInit || []),
|
|
7565
|
-
eventRefiners: input.eventRefiners || {},
|
|
7566
|
-
eventDefMemberAdders: input.eventDefMemberAdders || [],
|
|
7567
|
-
eventSourceRefiners: input.eventSourceRefiners || {},
|
|
7568
|
-
isDraggableTransformers: input.isDraggableTransformers || [],
|
|
7569
|
-
eventDragMutationMassagers: input.eventDragMutationMassagers || [],
|
|
7570
|
-
eventDefMutationAppliers: input.eventDefMutationAppliers || [],
|
|
7571
|
-
dateSelectionTransformers: input.dateSelectionTransformers || [],
|
|
7572
|
-
datePointTransforms: input.datePointTransforms || [],
|
|
7573
|
-
dateSpanTransforms: input.dateSpanTransforms || [],
|
|
7574
|
-
views: input.views || {},
|
|
7575
|
-
viewPropsTransformers: input.viewPropsTransformers || [],
|
|
7576
|
-
isPropsValid: input.isPropsValid || null,
|
|
7577
|
-
externalDefTransforms: input.externalDefTransforms || [],
|
|
7578
|
-
eventResizeJoinTransforms: input.eventResizeJoinTransforms || [],
|
|
7579
|
-
viewContainerAppends: input.viewContainerAppends || [],
|
|
7580
|
-
eventDropTransformers: input.eventDropTransformers || [],
|
|
7581
|
-
componentInteractions: input.componentInteractions || [],
|
|
7582
|
-
calendarInteractions: input.calendarInteractions || [],
|
|
7583
|
-
themeClasses: input.themeClasses || {},
|
|
7584
|
-
eventSourceDefs: input.eventSourceDefs || [],
|
|
7585
|
-
cmdFormatter: input.cmdFormatter,
|
|
7586
|
-
recurringTypes: input.recurringTypes || [],
|
|
7587
|
-
namedTimeZonedImpl: input.namedTimeZonedImpl,
|
|
7588
|
-
initialView: input.initialView || '',
|
|
7589
|
-
elementDraggingImpl: input.elementDraggingImpl,
|
|
7590
|
-
optionChangeHandlers: input.optionChangeHandlers || {},
|
|
7591
|
-
scrollGridImpl: input.scrollGridImpl || null,
|
|
7592
|
-
contentTypeHandlers: input.contentTypeHandlers || {},
|
|
7593
|
-
listenerRefiners: input.listenerRefiners || {},
|
|
7594
|
-
optionRefiners: input.optionRefiners || {},
|
|
7595
|
-
propSetHandlers: input.propSetHandlers || {},
|
|
7596
|
-
};
|
|
7597
|
-
}
|
|
7598
|
-
function buildPluginHooks(pluginDefs, globalDefs) {
|
|
7599
|
-
var isAdded = {};
|
|
7600
|
-
var hooks = {
|
|
7601
|
-
reducers: [],
|
|
7602
|
-
contextInit: [],
|
|
7603
|
-
eventRefiners: {},
|
|
7604
|
-
eventDefMemberAdders: [],
|
|
7605
|
-
eventSourceRefiners: {},
|
|
7606
|
-
isDraggableTransformers: [],
|
|
7607
|
-
eventDragMutationMassagers: [],
|
|
7608
|
-
eventDefMutationAppliers: [],
|
|
7609
|
-
dateSelectionTransformers: [],
|
|
7610
|
-
datePointTransforms: [],
|
|
7611
|
-
dateSpanTransforms: [],
|
|
7612
|
-
views: {},
|
|
7613
|
-
viewPropsTransformers: [],
|
|
7614
|
-
isPropsValid: null,
|
|
7615
|
-
externalDefTransforms: [],
|
|
7616
|
-
eventResizeJoinTransforms: [],
|
|
7617
|
-
viewContainerAppends: [],
|
|
7618
|
-
eventDropTransformers: [],
|
|
7619
|
-
componentInteractions: [],
|
|
7620
|
-
calendarInteractions: [],
|
|
7621
|
-
themeClasses: {},
|
|
7622
|
-
eventSourceDefs: [],
|
|
7623
|
-
cmdFormatter: null,
|
|
7624
|
-
recurringTypes: [],
|
|
7625
|
-
namedTimeZonedImpl: null,
|
|
7626
|
-
initialView: '',
|
|
7627
|
-
elementDraggingImpl: null,
|
|
7628
|
-
optionChangeHandlers: {},
|
|
7629
|
-
scrollGridImpl: null,
|
|
7630
|
-
contentTypeHandlers: {},
|
|
7631
|
-
listenerRefiners: {},
|
|
7632
|
-
optionRefiners: {},
|
|
7633
|
-
propSetHandlers: {},
|
|
7634
|
-
};
|
|
7635
|
-
function addDefs(defs) {
|
|
7636
|
-
for (var _i = 0, defs_1 = defs; _i < defs_1.length; _i++) {
|
|
7637
|
-
var def = defs_1[_i];
|
|
7638
|
-
if (!isAdded[def.id]) {
|
|
7639
|
-
isAdded[def.id] = true;
|
|
7640
|
-
addDefs(def.deps);
|
|
7641
|
-
hooks = combineHooks(hooks, def);
|
|
7642
|
-
}
|
|
7643
|
-
}
|
|
7644
|
-
}
|
|
7645
|
-
if (pluginDefs) {
|
|
7646
|
-
addDefs(pluginDefs);
|
|
7647
|
-
}
|
|
7648
|
-
addDefs(globalDefs);
|
|
7649
|
-
return hooks;
|
|
7650
|
-
}
|
|
7651
|
-
function buildBuildPluginHooks() {
|
|
7652
|
-
var currentOverrideDefs = [];
|
|
7653
|
-
var currentGlobalDefs = [];
|
|
7654
|
-
var currentHooks;
|
|
7655
|
-
return function (overrideDefs, globalDefs) {
|
|
7656
|
-
if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {
|
|
7657
|
-
currentHooks = buildPluginHooks(overrideDefs, globalDefs);
|
|
7658
|
-
}
|
|
7659
|
-
currentOverrideDefs = overrideDefs;
|
|
7660
|
-
currentGlobalDefs = globalDefs;
|
|
7661
|
-
return currentHooks;
|
|
7662
|
-
};
|
|
7544
|
+
currentOverrideDefs = overrideDefs;
|
|
7545
|
+
currentGlobalDefs = globalDefs;
|
|
7546
|
+
return currentHooks;
|
|
7547
|
+
};
|
|
7663
7548
|
}
|
|
7664
7549
|
function combineHooks(hooks0, hooks1) {
|
|
7665
7550
|
return {
|
|
7666
7551
|
reducers: hooks0.reducers.concat(hooks1.reducers),
|
|
7552
|
+
isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),
|
|
7667
7553
|
contextInit: hooks0.contextInit.concat(hooks1.contextInit),
|
|
7668
7554
|
eventRefiners: __assign(__assign({}, hooks0.eventRefiners), hooks1.eventRefiners),
|
|
7669
7555
|
eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),
|
|
@@ -7678,7 +7564,6 @@ function combineHooks(hooks0, hooks1) {
|
|
|
7678
7564
|
viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),
|
|
7679
7565
|
isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,
|
|
7680
7566
|
externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),
|
|
7681
|
-
eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms),
|
|
7682
7567
|
viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),
|
|
7683
7568
|
eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),
|
|
7684
7569
|
calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),
|
|
@@ -7831,39 +7716,56 @@ var main_ContentHookInner = /** @class */ (function (_super) {
|
|
|
7831
7716
|
}
|
|
7832
7717
|
};
|
|
7833
7718
|
ContentHookInner.prototype.renderInnerContent = function () {
|
|
7834
|
-
var
|
|
7835
|
-
var
|
|
7836
|
-
var
|
|
7837
|
-
|
|
7838
|
-
|
|
7839
|
-
|
|
7840
|
-
innerContent = normalizeContent(props.defaultContent, props.hookProps);
|
|
7841
|
-
}
|
|
7842
|
-
if (innerContent !== undefined) { // we allow custom content handlers to return nothing
|
|
7719
|
+
var customContentInfo = this.customContentInfo; // only populated if using non-[p]react node(s)
|
|
7720
|
+
var innerContent = this.getInnerContent();
|
|
7721
|
+
var meta = this.getContentMeta(innerContent);
|
|
7722
|
+
// initial run, or content-type changing? (from vue -> react for example)
|
|
7723
|
+
if (!customContentInfo || customContentInfo.contentKey !== meta.contentKey) {
|
|
7724
|
+
// clearing old value
|
|
7843
7725
|
if (customContentInfo) {
|
|
7844
|
-
customContentInfo.
|
|
7845
|
-
|
|
7846
|
-
else if (typeof innerContent === 'object') {
|
|
7847
|
-
// look for a prop that would indicate a custom content handler is needed
|
|
7848
|
-
for (var contentKey in contentTypeHandlers) {
|
|
7849
|
-
if (innerContent[contentKey] !== undefined) {
|
|
7850
|
-
var stuff = contentTypeHandlers[contentKey]();
|
|
7851
|
-
customContentInfo = this.customContentInfo = __assign({ contentKey: contentKey, contentVal: innerContent[contentKey] }, stuff);
|
|
7852
|
-
break;
|
|
7853
|
-
}
|
|
7726
|
+
if (customContentInfo.destroy) {
|
|
7727
|
+
customContentInfo.destroy();
|
|
7854
7728
|
}
|
|
7729
|
+
customContentInfo = this.customContentInfo = null;
|
|
7855
7730
|
}
|
|
7856
|
-
|
|
7857
|
-
|
|
7731
|
+
// assigning new value
|
|
7732
|
+
if (meta.contentKey) {
|
|
7733
|
+
customContentInfo = this.customContentInfo = __assign({ contentKey: meta.contentKey, contentVal: innerContent[meta.contentKey] }, meta.buildLifecycleFuncs());
|
|
7858
7734
|
}
|
|
7859
|
-
|
|
7860
|
-
|
|
7735
|
+
// updating
|
|
7736
|
+
}
|
|
7737
|
+
else if (customContentInfo) {
|
|
7738
|
+
customContentInfo.contentVal = innerContent[meta.contentKey];
|
|
7739
|
+
}
|
|
7740
|
+
return customContentInfo
|
|
7741
|
+
? [] // signal that something was specified
|
|
7742
|
+
: innerContent; // assume a [p]react vdom node. use it
|
|
7743
|
+
};
|
|
7744
|
+
ContentHookInner.prototype.getInnerContent = function () {
|
|
7745
|
+
var props = this.props;
|
|
7746
|
+
var innerContent = normalizeContent(props.content, props.hookProps);
|
|
7747
|
+
if (innerContent === undefined) { // use the default
|
|
7748
|
+
innerContent = normalizeContent(props.defaultContent, props.hookProps);
|
|
7749
|
+
}
|
|
7750
|
+
return innerContent == null ? null : innerContent; // convert undefined to null (better for React)
|
|
7751
|
+
};
|
|
7752
|
+
ContentHookInner.prototype.getContentMeta = function (innerContent) {
|
|
7753
|
+
var contentTypeHandlers = this.context.pluginHooks.contentTypeHandlers;
|
|
7754
|
+
var contentKey = '';
|
|
7755
|
+
var buildLifecycleFuncs = null;
|
|
7756
|
+
if (innerContent) { // allowed to be null, for convenience to caller
|
|
7757
|
+
for (var searchKey in contentTypeHandlers) {
|
|
7758
|
+
if (innerContent[searchKey] !== undefined) {
|
|
7759
|
+
contentKey = searchKey;
|
|
7760
|
+
buildLifecycleFuncs = contentTypeHandlers[searchKey];
|
|
7761
|
+
break;
|
|
7762
|
+
}
|
|
7861
7763
|
}
|
|
7862
7764
|
}
|
|
7863
|
-
return
|
|
7765
|
+
return { contentKey: contentKey, buildLifecycleFuncs: buildLifecycleFuncs };
|
|
7864
7766
|
};
|
|
7865
7767
|
ContentHookInner.prototype.updateCustomContent = function () {
|
|
7866
|
-
if (this.customContentInfo) {
|
|
7768
|
+
if (this.customContentInfo) { // for non-[p]react
|
|
7867
7769
|
this.customContentInfo.render(this.innerElRef.current || this.props.backupElRef.current, // the element to render into
|
|
7868
7770
|
this.customContentInfo.contentVal);
|
|
7869
7771
|
}
|
|
@@ -8007,6 +7909,20 @@ function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionO
|
|
|
8007
7909
|
}
|
|
8008
7910
|
return null;
|
|
8009
7911
|
};
|
|
7912
|
+
var queryButtonTitle = function (optionsSubset) {
|
|
7913
|
+
var buttonHints = optionsSubset.buttonHints || {};
|
|
7914
|
+
var buttonKey = viewDef.defaults.buttonTextKey; // use same key as text
|
|
7915
|
+
if (buttonKey != null && buttonHints[buttonKey] != null) {
|
|
7916
|
+
return buttonHints[buttonKey];
|
|
7917
|
+
}
|
|
7918
|
+
if (buttonHints[viewDef.type] != null) {
|
|
7919
|
+
return buttonHints[viewDef.type];
|
|
7920
|
+
}
|
|
7921
|
+
if (buttonHints[singleUnit] != null) {
|
|
7922
|
+
return buttonHints[singleUnit];
|
|
7923
|
+
}
|
|
7924
|
+
return null;
|
|
7925
|
+
};
|
|
8010
7926
|
return {
|
|
8011
7927
|
type: viewDef.type,
|
|
8012
7928
|
component: viewDef.component,
|
|
@@ -8022,6 +7938,14 @@ function buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionO
|
|
|
8022
7938
|
viewDef.defaults.buttonText ||
|
|
8023
7939
|
queryButtonText(BASE_OPTION_DEFAULTS) ||
|
|
8024
7940
|
viewDef.type,
|
|
7941
|
+
// not DRY
|
|
7942
|
+
buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) ||
|
|
7943
|
+
queryButtonTitle(optionOverrides) ||
|
|
7944
|
+
viewDef.overrides.buttonHint,
|
|
7945
|
+
buttonTitleDefault: queryButtonTitle(localeDefaults) ||
|
|
7946
|
+
viewDef.defaults.buttonHint ||
|
|
7947
|
+
queryButtonTitle(BASE_OPTION_DEFAULTS),
|
|
7948
|
+
// will eventually fall back to buttonText
|
|
8025
7949
|
};
|
|
8026
7950
|
}
|
|
8027
7951
|
// hack to get memoization working
|
|
@@ -8111,6 +8035,7 @@ var DateProfileGenerator = /** @class */ (function () {
|
|
|
8111
8035
|
isValid: isValid,
|
|
8112
8036
|
// how far the current date will move for a prev/next operation
|
|
8113
8037
|
dateIncrement: this.buildDateIncrement(currentInfo.duration),
|
|
8038
|
+
// pass a fallback (might be null) ^
|
|
8114
8039
|
};
|
|
8115
8040
|
};
|
|
8116
8041
|
// Builds an object with optional start/end properties.
|
|
@@ -8369,12 +8294,7 @@ function reduceDateProfile(currentDateProfile, action, currentDate, dateProfileG
|
|
|
8369
8294
|
case 'CHANGE_VIEW_TYPE':
|
|
8370
8295
|
return dateProfileGenerator.build(action.dateMarker || currentDate);
|
|
8371
8296
|
case 'CHANGE_DATE':
|
|
8372
|
-
|
|
8373
|
-
!rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker) // don't move if date already in view
|
|
8374
|
-
) {
|
|
8375
|
-
return dateProfileGenerator.build(action.dateMarker);
|
|
8376
|
-
}
|
|
8377
|
-
break;
|
|
8297
|
+
return dateProfileGenerator.build(action.dateMarker);
|
|
8378
8298
|
case 'PREV':
|
|
8379
8299
|
dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);
|
|
8380
8300
|
if (dp.isValid) {
|
|
@@ -8413,7 +8333,7 @@ function reduceEventSources(eventSources, action, dateProfile, context) {
|
|
|
8413
8333
|
case 'FETCH_EVENT_SOURCES':
|
|
8414
8334
|
return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?
|
|
8415
8335
|
arrayToHash(action.sourceIds) :
|
|
8416
|
-
excludeStaticSources(eventSources, context), activeRange, context);
|
|
8336
|
+
excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);
|
|
8417
8337
|
case 'RECEIVE_EVENTS':
|
|
8418
8338
|
case 'RECEIVE_EVENT_ERROR':
|
|
8419
8339
|
return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);
|
|
@@ -8425,16 +8345,15 @@ function reduceEventSources(eventSources, action, dateProfile, context) {
|
|
|
8425
8345
|
}
|
|
8426
8346
|
function reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {
|
|
8427
8347
|
var activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?
|
|
8428
|
-
return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, context);
|
|
8348
|
+
return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);
|
|
8429
8349
|
}
|
|
8430
|
-
function
|
|
8431
|
-
var cnt = 0;
|
|
8350
|
+
function computeEventSourcesLoading(eventSources) {
|
|
8432
8351
|
for (var sourceId in eventSources) {
|
|
8433
8352
|
if (eventSources[sourceId].isFetching) {
|
|
8434
|
-
|
|
8353
|
+
return true;
|
|
8435
8354
|
}
|
|
8436
8355
|
}
|
|
8437
|
-
return
|
|
8356
|
+
return false;
|
|
8438
8357
|
}
|
|
8439
8358
|
function addSources(eventSourceHash, sources, fetchRange, context) {
|
|
8440
8359
|
var hash = {};
|
|
@@ -8451,7 +8370,7 @@ function removeSource(eventSourceHash, sourceId) {
|
|
|
8451
8370
|
return filterHash(eventSourceHash, function (eventSource) { return eventSource.sourceId !== sourceId; });
|
|
8452
8371
|
}
|
|
8453
8372
|
function fetchDirtySources(sourceHash, fetchRange, context) {
|
|
8454
|
-
return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { return isSourceDirty(eventSource, fetchRange, context); }), fetchRange, context);
|
|
8373
|
+
return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { return isSourceDirty(eventSource, fetchRange, context); }), fetchRange, false, context);
|
|
8455
8374
|
}
|
|
8456
8375
|
function isSourceDirty(eventSource, fetchRange, context) {
|
|
8457
8376
|
if (!doesSourceNeedRange(eventSource, context)) {
|
|
@@ -8463,12 +8382,12 @@ function isSourceDirty(eventSource, fetchRange, context) {
|
|
|
8463
8382
|
fetchRange.start < eventSource.fetchRange.start ||
|
|
8464
8383
|
fetchRange.end > eventSource.fetchRange.end;
|
|
8465
8384
|
}
|
|
8466
|
-
function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, context) {
|
|
8385
|
+
function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {
|
|
8467
8386
|
var nextSources = {};
|
|
8468
8387
|
for (var sourceId in prevSources) {
|
|
8469
8388
|
var source = prevSources[sourceId];
|
|
8470
8389
|
if (sourceIdHash[sourceId]) {
|
|
8471
|
-
nextSources[sourceId] = fetchSource(source, fetchRange, context);
|
|
8390
|
+
nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);
|
|
8472
8391
|
}
|
|
8473
8392
|
else {
|
|
8474
8393
|
nextSources[sourceId] = source;
|
|
@@ -8476,13 +8395,14 @@ function fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, context) {
|
|
|
8476
8395
|
}
|
|
8477
8396
|
return nextSources;
|
|
8478
8397
|
}
|
|
8479
|
-
function fetchSource(eventSource, fetchRange, context) {
|
|
8398
|
+
function fetchSource(eventSource, fetchRange, isRefetch, context) {
|
|
8480
8399
|
var options = context.options, calendarApi = context.calendarApi;
|
|
8481
8400
|
var sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];
|
|
8482
8401
|
var fetchId = guid();
|
|
8483
8402
|
sourceDef.fetch({
|
|
8484
8403
|
eventSource: eventSource,
|
|
8485
8404
|
range: fetchRange,
|
|
8405
|
+
isRefetch: isRefetch,
|
|
8486
8406
|
context: context,
|
|
8487
8407
|
}, function (res) {
|
|
8488
8408
|
var rawEvents = res.rawEvents;
|
|
@@ -8524,33 +8444,139 @@ function receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {
|
|
|
8524
8444
|
fetchId === eventSource.latestFetchId) {
|
|
8525
8445
|
return __assign(__assign({}, sourceHash), (_a = {}, _a[sourceId] = __assign(__assign({}, eventSource), { isFetching: false, fetchRange: fetchRange }), _a));
|
|
8526
8446
|
}
|
|
8527
|
-
return sourceHash;
|
|
8528
|
-
}
|
|
8529
|
-
function excludeStaticSources(eventSources, context) {
|
|
8530
|
-
return filterHash(eventSources, function (eventSource) { return doesSourceNeedRange(eventSource, context); });
|
|
8447
|
+
return sourceHash;
|
|
8448
|
+
}
|
|
8449
|
+
function excludeStaticSources(eventSources, context) {
|
|
8450
|
+
return filterHash(eventSources, function (eventSource) { return doesSourceNeedRange(eventSource, context); });
|
|
8451
|
+
}
|
|
8452
|
+
function parseInitialSources(rawOptions, context) {
|
|
8453
|
+
var refiners = buildEventSourceRefiners(context);
|
|
8454
|
+
var rawSources = [].concat(rawOptions.eventSources || []);
|
|
8455
|
+
var sources = []; // parsed
|
|
8456
|
+
if (rawOptions.initialEvents) {
|
|
8457
|
+
rawSources.unshift(rawOptions.initialEvents);
|
|
8458
|
+
}
|
|
8459
|
+
if (rawOptions.events) {
|
|
8460
|
+
rawSources.unshift(rawOptions.events);
|
|
8461
|
+
}
|
|
8462
|
+
for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) {
|
|
8463
|
+
var rawSource = rawSources_1[_i];
|
|
8464
|
+
var source = parseEventSource(rawSource, context, refiners);
|
|
8465
|
+
if (source) {
|
|
8466
|
+
sources.push(source);
|
|
8467
|
+
}
|
|
8468
|
+
}
|
|
8469
|
+
return sources;
|
|
8470
|
+
}
|
|
8471
|
+
function doesSourceNeedRange(eventSource, context) {
|
|
8472
|
+
var defs = context.pluginHooks.eventSourceDefs;
|
|
8473
|
+
return !defs[eventSource.sourceDefId].ignoreRange;
|
|
8474
|
+
}
|
|
8475
|
+
|
|
8476
|
+
function reduceEventStore(eventStore, action, eventSources, dateProfile, context) {
|
|
8477
|
+
switch (action.type) {
|
|
8478
|
+
case 'RECEIVE_EVENTS': // raw
|
|
8479
|
+
return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);
|
|
8480
|
+
case 'ADD_EVENTS': // already parsed, but not expanded
|
|
8481
|
+
return addEvent(eventStore, action.eventStore, // new ones
|
|
8482
|
+
dateProfile ? dateProfile.activeRange : null, context);
|
|
8483
|
+
case 'RESET_EVENTS':
|
|
8484
|
+
return action.eventStore;
|
|
8485
|
+
case 'MERGE_EVENTS': // already parsed and expanded
|
|
8486
|
+
return mergeEventStores(eventStore, action.eventStore);
|
|
8487
|
+
case 'PREV': // TODO: how do we track all actions that affect dateProfile :(
|
|
8488
|
+
case 'NEXT':
|
|
8489
|
+
case 'CHANGE_DATE':
|
|
8490
|
+
case 'CHANGE_VIEW_TYPE':
|
|
8491
|
+
if (dateProfile) {
|
|
8492
|
+
return expandRecurring(eventStore, dateProfile.activeRange, context);
|
|
8493
|
+
}
|
|
8494
|
+
return eventStore;
|
|
8495
|
+
case 'REMOVE_EVENTS':
|
|
8496
|
+
return excludeSubEventStore(eventStore, action.eventStore);
|
|
8497
|
+
case 'REMOVE_EVENT_SOURCE':
|
|
8498
|
+
return excludeEventsBySourceId(eventStore, action.sourceId);
|
|
8499
|
+
case 'REMOVE_ALL_EVENT_SOURCES':
|
|
8500
|
+
return filterEventStoreDefs(eventStore, function (eventDef) { return (!eventDef.sourceId // only keep events with no source id
|
|
8501
|
+
); });
|
|
8502
|
+
case 'REMOVE_ALL_EVENTS':
|
|
8503
|
+
return createEmptyEventStore();
|
|
8504
|
+
default:
|
|
8505
|
+
return eventStore;
|
|
8506
|
+
}
|
|
8507
|
+
}
|
|
8508
|
+
function receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, context) {
|
|
8509
|
+
if (eventSource && // not already removed
|
|
8510
|
+
fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources
|
|
8511
|
+
) {
|
|
8512
|
+
var subset = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context);
|
|
8513
|
+
if (fetchRange) {
|
|
8514
|
+
subset = expandRecurring(subset, fetchRange, context);
|
|
8515
|
+
}
|
|
8516
|
+
return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);
|
|
8517
|
+
}
|
|
8518
|
+
return eventStore;
|
|
8519
|
+
}
|
|
8520
|
+
function transformRawEvents(rawEvents, eventSource, context) {
|
|
8521
|
+
var calEachTransform = context.options.eventDataTransform;
|
|
8522
|
+
var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;
|
|
8523
|
+
if (sourceEachTransform) {
|
|
8524
|
+
rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);
|
|
8525
|
+
}
|
|
8526
|
+
if (calEachTransform) {
|
|
8527
|
+
rawEvents = transformEachRawEvent(rawEvents, calEachTransform);
|
|
8528
|
+
}
|
|
8529
|
+
return rawEvents;
|
|
8530
|
+
}
|
|
8531
|
+
function transformEachRawEvent(rawEvents, func) {
|
|
8532
|
+
var refinedEvents;
|
|
8533
|
+
if (!func) {
|
|
8534
|
+
refinedEvents = rawEvents;
|
|
8535
|
+
}
|
|
8536
|
+
else {
|
|
8537
|
+
refinedEvents = [];
|
|
8538
|
+
for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {
|
|
8539
|
+
var rawEvent = rawEvents_1[_i];
|
|
8540
|
+
var refinedEvent = func(rawEvent);
|
|
8541
|
+
if (refinedEvent) {
|
|
8542
|
+
refinedEvents.push(refinedEvent);
|
|
8543
|
+
}
|
|
8544
|
+
else if (refinedEvent == null) {
|
|
8545
|
+
refinedEvents.push(rawEvent);
|
|
8546
|
+
} // if a different falsy value, do nothing
|
|
8547
|
+
}
|
|
8548
|
+
}
|
|
8549
|
+
return refinedEvents;
|
|
8531
8550
|
}
|
|
8532
|
-
function
|
|
8533
|
-
|
|
8534
|
-
|
|
8535
|
-
var sources = []; // parsed
|
|
8536
|
-
if (rawOptions.initialEvents) {
|
|
8537
|
-
rawSources.unshift(rawOptions.initialEvents);
|
|
8538
|
-
}
|
|
8539
|
-
if (rawOptions.events) {
|
|
8540
|
-
rawSources.unshift(rawOptions.events);
|
|
8551
|
+
function addEvent(eventStore, subset, expandRange, context) {
|
|
8552
|
+
if (expandRange) {
|
|
8553
|
+
subset = expandRecurring(subset, expandRange, context);
|
|
8541
8554
|
}
|
|
8542
|
-
|
|
8543
|
-
|
|
8544
|
-
|
|
8545
|
-
|
|
8546
|
-
|
|
8555
|
+
return mergeEventStores(eventStore, subset);
|
|
8556
|
+
}
|
|
8557
|
+
function rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {
|
|
8558
|
+
var defs = eventStore.defs;
|
|
8559
|
+
var instances = mapHash(eventStore.instances, function (instance) {
|
|
8560
|
+
var def = defs[instance.defId];
|
|
8561
|
+
if (def.allDay || def.recurringDef) {
|
|
8562
|
+
return instance; // isn't dependent on timezone
|
|
8547
8563
|
}
|
|
8548
|
-
|
|
8549
|
-
|
|
8564
|
+
return __assign(__assign({}, instance), { range: {
|
|
8565
|
+
start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),
|
|
8566
|
+
end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)),
|
|
8567
|
+
}, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });
|
|
8568
|
+
});
|
|
8569
|
+
return { defs: defs, instances: instances };
|
|
8550
8570
|
}
|
|
8551
|
-
function
|
|
8552
|
-
|
|
8553
|
-
|
|
8571
|
+
function excludeEventsBySourceId(eventStore, sourceId) {
|
|
8572
|
+
return filterEventStoreDefs(eventStore, function (eventDef) { return eventDef.sourceId !== sourceId; });
|
|
8573
|
+
}
|
|
8574
|
+
// QUESTION: why not just return instances? do a general object-property-exclusion util
|
|
8575
|
+
function excludeInstances(eventStore, removals) {
|
|
8576
|
+
return {
|
|
8577
|
+
defs: eventStore.defs,
|
|
8578
|
+
instances: filterHash(eventStore.instances, function (instance) { return !removals[instance.instanceId]; }),
|
|
8579
|
+
};
|
|
8554
8580
|
}
|
|
8555
8581
|
|
|
8556
8582
|
function reduceDateSelection(currentSelection, action) {
|
|
@@ -8610,25 +8636,41 @@ function reduceEventResize(currentResize, action) {
|
|
|
8610
8636
|
}
|
|
8611
8637
|
|
|
8612
8638
|
function parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {
|
|
8613
|
-
var
|
|
8614
|
-
var
|
|
8615
|
-
|
|
8616
|
-
return { headerToolbar: headerToolbar, footerToolbar: footerToolbar, viewsWithButtons: viewsWithButtons };
|
|
8639
|
+
var header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;
|
|
8640
|
+
var footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;
|
|
8641
|
+
return { header: header, footer: footer };
|
|
8617
8642
|
}
|
|
8618
|
-
function parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi
|
|
8619
|
-
|
|
8643
|
+
function parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {
|
|
8644
|
+
var sectionWidgets = {};
|
|
8645
|
+
var viewsWithButtons = [];
|
|
8646
|
+
var hasTitle = false;
|
|
8647
|
+
for (var sectionName in sectionStrHash) {
|
|
8648
|
+
var sectionStr = sectionStrHash[sectionName];
|
|
8649
|
+
var sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);
|
|
8650
|
+
sectionWidgets[sectionName] = sectionRes.widgets;
|
|
8651
|
+
viewsWithButtons.push.apply(viewsWithButtons, sectionRes.viewsWithButtons);
|
|
8652
|
+
hasTitle = hasTitle || sectionRes.hasTitle;
|
|
8653
|
+
}
|
|
8654
|
+
return { sectionWidgets: sectionWidgets, viewsWithButtons: viewsWithButtons, hasTitle: hasTitle };
|
|
8620
8655
|
}
|
|
8621
8656
|
/*
|
|
8622
8657
|
BAD: querying icons and text here. should be done at render time
|
|
8623
8658
|
*/
|
|
8624
|
-
function parseSection(sectionStr, calendarOptions,
|
|
8659
|
+
function parseSection(sectionStr, calendarOptions, // defaults+overrides, then refined
|
|
8660
|
+
calendarOptionOverrides, // overrides only!, unrefined :(
|
|
8661
|
+
theme, viewSpecs, calendarApi) {
|
|
8625
8662
|
var isRtl = calendarOptions.direction === 'rtl';
|
|
8626
8663
|
var calendarCustomButtons = calendarOptions.customButtons || {};
|
|
8627
8664
|
var calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};
|
|
8628
8665
|
var calendarButtonText = calendarOptions.buttonText || {};
|
|
8666
|
+
var calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};
|
|
8667
|
+
var calendarButtonHints = calendarOptions.buttonHints || {};
|
|
8629
8668
|
var sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];
|
|
8630
|
-
|
|
8669
|
+
var viewsWithButtons = [];
|
|
8670
|
+
var hasTitle = false;
|
|
8671
|
+
var widgets = sectionSubstrs.map(function (buttonGroupStr) { return (buttonGroupStr.split(',').map(function (buttonName) {
|
|
8631
8672
|
if (buttonName === 'title') {
|
|
8673
|
+
hasTitle = true;
|
|
8632
8674
|
return { buttonName: buttonName };
|
|
8633
8675
|
}
|
|
8634
8676
|
var customButtonProps;
|
|
@@ -8636,15 +8678,18 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
|
|
|
8636
8678
|
var buttonClick;
|
|
8637
8679
|
var buttonIcon; // only one of these will be set
|
|
8638
8680
|
var buttonText; // "
|
|
8681
|
+
var buttonHint;
|
|
8682
|
+
// ^ for the title="" attribute, for accessibility
|
|
8639
8683
|
if ((customButtonProps = calendarCustomButtons[buttonName])) {
|
|
8640
8684
|
buttonClick = function (ev) {
|
|
8641
8685
|
if (customButtonProps.click) {
|
|
8642
|
-
customButtonProps.click.call(ev.target, ev, ev.target);
|
|
8686
|
+
customButtonProps.click.call(ev.target, ev, ev.target); // TODO: use Calendar this context?
|
|
8643
8687
|
}
|
|
8644
8688
|
};
|
|
8645
8689
|
(buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||
|
|
8646
8690
|
(buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
|
|
8647
8691
|
(buttonText = customButtonProps.text);
|
|
8692
|
+
buttonHint = customButtonProps.hint || customButtonProps.text;
|
|
8648
8693
|
}
|
|
8649
8694
|
else if ((viewSpec = viewSpecs[buttonName])) {
|
|
8650
8695
|
viewsWithButtons.push(buttonName);
|
|
@@ -8654,6 +8699,12 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
|
|
|
8654
8699
|
(buttonText = viewSpec.buttonTextOverride) ||
|
|
8655
8700
|
(buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
|
|
8656
8701
|
(buttonText = viewSpec.buttonTextDefault);
|
|
8702
|
+
var textFallback = viewSpec.buttonTextOverride ||
|
|
8703
|
+
viewSpec.buttonTextDefault;
|
|
8704
|
+
buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride ||
|
|
8705
|
+
viewSpec.buttonTitleDefault ||
|
|
8706
|
+
calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName
|
|
8707
|
+
textFallback);
|
|
8657
8708
|
}
|
|
8658
8709
|
else if (calendarApi[buttonName]) { // a calendarApi method
|
|
8659
8710
|
buttonClick = function () {
|
|
@@ -8661,14 +8712,29 @@ function parseSection(sectionStr, calendarOptions, calendarOptionOverrides, them
|
|
|
8661
8712
|
};
|
|
8662
8713
|
(buttonText = calendarButtonTextOverrides[buttonName]) ||
|
|
8663
8714
|
(buttonIcon = theme.getIconClass(buttonName, isRtl)) ||
|
|
8664
|
-
(buttonText = calendarButtonText[buttonName]);
|
|
8665
|
-
|
|
8715
|
+
(buttonText = calendarButtonText[buttonName]); // everything else is considered default
|
|
8716
|
+
if (buttonName === 'prevYear' || buttonName === 'nextYear') {
|
|
8717
|
+
var prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';
|
|
8718
|
+
buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] ||
|
|
8719
|
+
calendarButtonHints[prevOrNext], [
|
|
8720
|
+
calendarButtonText.year || 'year',
|
|
8721
|
+
'year',
|
|
8722
|
+
], calendarButtonText[buttonName]);
|
|
8723
|
+
}
|
|
8724
|
+
else {
|
|
8725
|
+
buttonHint = function (navUnit) { return formatWithOrdinals(calendarButtonHintOverrides[buttonName] ||
|
|
8726
|
+
calendarButtonHints[buttonName], [
|
|
8727
|
+
calendarButtonText[navUnit] || navUnit,
|
|
8728
|
+
navUnit,
|
|
8729
|
+
], calendarButtonText[buttonName]); };
|
|
8730
|
+
}
|
|
8666
8731
|
}
|
|
8667
|
-
return { buttonName: buttonName, buttonClick: buttonClick, buttonIcon: buttonIcon, buttonText: buttonText };
|
|
8732
|
+
return { buttonName: buttonName, buttonClick: buttonClick, buttonIcon: buttonIcon, buttonText: buttonText, buttonHint: buttonHint };
|
|
8668
8733
|
})); });
|
|
8734
|
+
return { widgets: widgets, viewsWithButtons: viewsWithButtons, hasTitle: hasTitle };
|
|
8669
8735
|
}
|
|
8670
8736
|
|
|
8671
|
-
var eventSourceDef = {
|
|
8737
|
+
var eventSourceDef$2 = {
|
|
8672
8738
|
ignoreRange: true,
|
|
8673
8739
|
parseMeta: function (refined) {
|
|
8674
8740
|
if (Array.isArray(refined.events)) {
|
|
@@ -8683,7 +8749,7 @@ var eventSourceDef = {
|
|
|
8683
8749
|
},
|
|
8684
8750
|
};
|
|
8685
8751
|
var arrayEventSourcePlugin = createPlugin({
|
|
8686
|
-
eventSourceDefs: [eventSourceDef],
|
|
8752
|
+
eventSourceDefs: [eventSourceDef$2],
|
|
8687
8753
|
});
|
|
8688
8754
|
|
|
8689
8755
|
var eventSourceDef$1 = {
|
|
@@ -8767,11 +8833,12 @@ var JSON_FEED_EVENT_SOURCE_REFINERS = {
|
|
|
8767
8833
|
timeZoneParam: String,
|
|
8768
8834
|
};
|
|
8769
8835
|
|
|
8770
|
-
var eventSourceDef
|
|
8836
|
+
var eventSourceDef = {
|
|
8771
8837
|
parseMeta: function (refined) {
|
|
8772
|
-
if (refined.url) {
|
|
8838
|
+
if (refined.url && (refined.format === 'json' || !refined.format)) {
|
|
8773
8839
|
return {
|
|
8774
8840
|
url: refined.url,
|
|
8841
|
+
format: 'json',
|
|
8775
8842
|
method: (refined.method || 'GET').toUpperCase(),
|
|
8776
8843
|
extraParams: refined.extraParams,
|
|
8777
8844
|
startParam: refined.startParam,
|
|
@@ -8793,7 +8860,7 @@ var eventSourceDef$2 = {
|
|
|
8793
8860
|
};
|
|
8794
8861
|
var jsonFeedEventSourcePlugin = createPlugin({
|
|
8795
8862
|
eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,
|
|
8796
|
-
eventSourceDefs: [eventSourceDef
|
|
8863
|
+
eventSourceDefs: [eventSourceDef],
|
|
8797
8864
|
});
|
|
8798
8865
|
function buildRequestParams(meta, range, context) {
|
|
8799
8866
|
var dateEnv = context.dateEnv, options = context.options;
|
|
@@ -8861,7 +8928,7 @@ var recurring = {
|
|
|
8861
8928
|
return {
|
|
8862
8929
|
allDayGuess: Boolean(!refined.startTime && !refined.endTime),
|
|
8863
8930
|
duration: duration,
|
|
8864
|
-
typeData: recurringData,
|
|
8931
|
+
typeData: recurringData, // doesn't need endTime anymore but oh well
|
|
8865
8932
|
};
|
|
8866
8933
|
}
|
|
8867
8934
|
return null;
|
|
@@ -8965,9 +9032,12 @@ var globalPlugins = [
|
|
|
8965
9032
|
simpleRecurringEventsPlugin,
|
|
8966
9033
|
changeHandlerPlugin,
|
|
8967
9034
|
createPlugin({
|
|
9035
|
+
isLoadingFuncs: [
|
|
9036
|
+
function (state) { return computeEventSourcesLoading(state.eventSources); },
|
|
9037
|
+
],
|
|
8968
9038
|
contentTypeHandlers: {
|
|
8969
|
-
html:
|
|
8970
|
-
domNodes:
|
|
9039
|
+
html: buildHtmlRenderer,
|
|
9040
|
+
domNodes: buildDomNodeRenderer,
|
|
8971
9041
|
},
|
|
8972
9042
|
propSetHandlers: {
|
|
8973
9043
|
dateProfile: handleDateProfile,
|
|
@@ -8975,19 +9045,45 @@ var globalPlugins = [
|
|
|
8975
9045
|
},
|
|
8976
9046
|
}),
|
|
8977
9047
|
];
|
|
8978
|
-
function
|
|
8979
|
-
|
|
9048
|
+
function buildHtmlRenderer() {
|
|
9049
|
+
var currentEl = null;
|
|
9050
|
+
var currentHtml = '';
|
|
9051
|
+
function render(el, html) {
|
|
9052
|
+
if (el !== currentEl || html !== currentHtml) {
|
|
9053
|
+
el.innerHTML = html;
|
|
9054
|
+
}
|
|
9055
|
+
currentEl = el;
|
|
9056
|
+
currentHtml = html;
|
|
9057
|
+
}
|
|
9058
|
+
function destroy() {
|
|
9059
|
+
currentEl.innerHTML = '';
|
|
9060
|
+
currentEl = null;
|
|
9061
|
+
currentHtml = '';
|
|
9062
|
+
}
|
|
9063
|
+
return { render: render, destroy: destroy };
|
|
8980
9064
|
}
|
|
8981
|
-
function
|
|
8982
|
-
var
|
|
8983
|
-
var
|
|
8984
|
-
|
|
8985
|
-
|
|
8986
|
-
|
|
8987
|
-
|
|
9065
|
+
function buildDomNodeRenderer() {
|
|
9066
|
+
var currentEl = null;
|
|
9067
|
+
var currentDomNodes = [];
|
|
9068
|
+
function render(el, domNodes) {
|
|
9069
|
+
var newDomNodes = Array.prototype.slice.call(domNodes);
|
|
9070
|
+
if (el !== currentEl || !isArraysEqual(currentDomNodes, newDomNodes)) {
|
|
9071
|
+
// append first, remove second (for scroll resetting)
|
|
9072
|
+
for (var _i = 0, newDomNodes_1 = newDomNodes; _i < newDomNodes_1.length; _i++) {
|
|
9073
|
+
var newNode = newDomNodes_1[_i];
|
|
9074
|
+
el.appendChild(newNode);
|
|
9075
|
+
}
|
|
9076
|
+
destroy();
|
|
8988
9077
|
}
|
|
8989
|
-
|
|
9078
|
+
currentEl = el;
|
|
9079
|
+
currentDomNodes = newDomNodes;
|
|
8990
9080
|
}
|
|
9081
|
+
function destroy() {
|
|
9082
|
+
currentDomNodes.forEach(removeElement);
|
|
9083
|
+
currentDomNodes = [];
|
|
9084
|
+
currentEl = null;
|
|
9085
|
+
}
|
|
9086
|
+
return { render: render, destroy: destroy };
|
|
8991
9087
|
}
|
|
8992
9088
|
|
|
8993
9089
|
var DelayedRunner = /** @class */ (function () {
|
|
@@ -9152,7 +9248,7 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9152
9248
|
this.organizeRawLocales = memoize(organizeRawLocales);
|
|
9153
9249
|
this.buildLocale = memoize(buildLocale);
|
|
9154
9250
|
this.buildPluginHooks = buildBuildPluginHooks();
|
|
9155
|
-
this.buildDateEnv = memoize(buildDateEnv
|
|
9251
|
+
this.buildDateEnv = memoize(buildDateEnv);
|
|
9156
9252
|
this.buildTheme = memoize(buildTheme);
|
|
9157
9253
|
this.parseToolbars = memoize(parseToolbars);
|
|
9158
9254
|
this.buildViewSpecs = memoize(buildViewSpecs);
|
|
@@ -9214,7 +9310,6 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9214
9310
|
businessHours: this.parseContextBusinessHours(calendarContext),
|
|
9215
9311
|
eventSources: eventSources,
|
|
9216
9312
|
eventUiBases: {},
|
|
9217
|
-
loadingLevel: computeEventSourceLoadingLevel(eventSources),
|
|
9218
9313
|
eventStore: createEmptyEventStore(),
|
|
9219
9314
|
renderableEventStore: createEmptyEventStore(),
|
|
9220
9315
|
dateSelection: null,
|
|
@@ -9228,7 +9323,7 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9228
9323
|
var reducer = _c[_b];
|
|
9229
9324
|
__assign(initialState, reducer(null, null, contextAndState));
|
|
9230
9325
|
}
|
|
9231
|
-
if (initialState
|
|
9326
|
+
if (computeIsLoading(initialState, calendarContext)) {
|
|
9232
9327
|
this.emitter.trigger('loading', true); // NOT DRY
|
|
9233
9328
|
}
|
|
9234
9329
|
this.state = initialState;
|
|
@@ -9269,20 +9364,20 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9269
9364
|
}
|
|
9270
9365
|
currentDate = reduceCurrentDate(currentDate, action);
|
|
9271
9366
|
dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);
|
|
9272
|
-
if (
|
|
9367
|
+
if (action.type === 'PREV' || // TODO: move this logic into DateProfileGenerator
|
|
9368
|
+
action.type === 'NEXT' || // "
|
|
9369
|
+
!rangeContainsMarker(dateProfile.currentRange, currentDate)) {
|
|
9273
9370
|
currentDate = dateProfile.currentRange.start;
|
|
9274
9371
|
}
|
|
9275
9372
|
var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);
|
|
9276
|
-
var eventSourceLoadingLevel = computeEventSourceLoadingLevel(eventSources);
|
|
9277
9373
|
var eventStore = reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);
|
|
9278
|
-
var
|
|
9374
|
+
var isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading
|
|
9375
|
+
var renderableEventStore = (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?
|
|
9279
9376
|
(state.renderableEventStore || eventStore) : // try from previous state
|
|
9280
9377
|
eventStore;
|
|
9281
9378
|
var _b = this.buildViewUiProps(calendarContext), eventUiSingleBase = _b.eventUiSingleBase, selectionConfig = _b.selectionConfig; // will memoize obj
|
|
9282
9379
|
var eventUiBySource = this.buildEventUiBySource(eventSources);
|
|
9283
9380
|
var eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);
|
|
9284
|
-
var prevLoadingLevel = state.loadingLevel || 0;
|
|
9285
|
-
var loadingLevel = eventSourceLoadingLevel;
|
|
9286
9381
|
var newState = {
|
|
9287
9382
|
dynamicOptionOverrides: dynamicOptionOverrides,
|
|
9288
9383
|
currentViewType: currentViewType,
|
|
@@ -9293,7 +9388,6 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9293
9388
|
renderableEventStore: renderableEventStore,
|
|
9294
9389
|
selectionConfig: selectionConfig,
|
|
9295
9390
|
eventUiBases: eventUiBases,
|
|
9296
|
-
loadingLevel: loadingLevel,
|
|
9297
9391
|
businessHours: this.parseContextBusinessHours(calendarContext),
|
|
9298
9392
|
dateSelection: reduceDateSelection(state.dateSelection, action),
|
|
9299
9393
|
eventSelection: reduceSelectedEvent(state.eventSelection, action),
|
|
@@ -9305,11 +9399,13 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9305
9399
|
var reducer = _c[_i];
|
|
9306
9400
|
__assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value
|
|
9307
9401
|
}
|
|
9402
|
+
var wasLoading = computeIsLoading(state, calendarContext);
|
|
9403
|
+
var isLoading = computeIsLoading(newState, calendarContext);
|
|
9308
9404
|
// TODO: use propSetHandlers in plugin system
|
|
9309
|
-
if (!
|
|
9405
|
+
if (!wasLoading && isLoading) {
|
|
9310
9406
|
emitter.trigger('loading', true);
|
|
9311
9407
|
}
|
|
9312
|
-
else if (
|
|
9408
|
+
else if (wasLoading && !isLoading) {
|
|
9313
9409
|
emitter.trigger('loading', false);
|
|
9314
9410
|
}
|
|
9315
9411
|
this.state = newState;
|
|
@@ -9491,7 +9587,7 @@ var main_CalendarDataManager = /** @class */ (function () {
|
|
|
9491
9587
|
};
|
|
9492
9588
|
return CalendarDataManager;
|
|
9493
9589
|
}());
|
|
9494
|
-
function buildDateEnv
|
|
9590
|
+
function buildDateEnv(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {
|
|
9495
9591
|
var locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);
|
|
9496
9592
|
return new DateEnv({
|
|
9497
9593
|
calendarSystem: 'gregory',
|
|
@@ -9544,6 +9640,7 @@ function buildViewUiProps(calendarContext) {
|
|
|
9544
9640
|
borderColor: options.eventBorderColor,
|
|
9545
9641
|
textColor: options.eventTextColor,
|
|
9546
9642
|
color: options.eventColor,
|
|
9643
|
+
// classNames: options.eventClassNames // render hook will handle this
|
|
9547
9644
|
}, calendarContext),
|
|
9548
9645
|
selectionConfig: createEventUi({
|
|
9549
9646
|
constraint: options.selectConstraint,
|
|
@@ -9552,6 +9649,15 @@ function buildViewUiProps(calendarContext) {
|
|
|
9552
9649
|
}, calendarContext),
|
|
9553
9650
|
};
|
|
9554
9651
|
}
|
|
9652
|
+
function computeIsLoading(state, context) {
|
|
9653
|
+
for (var _i = 0, _a = context.pluginHooks.isLoadingFuncs; _i < _a.length; _i++) {
|
|
9654
|
+
var isLoadingFunc = _a[_i];
|
|
9655
|
+
if (isLoadingFunc(state)) {
|
|
9656
|
+
return true;
|
|
9657
|
+
}
|
|
9658
|
+
}
|
|
9659
|
+
return false;
|
|
9660
|
+
}
|
|
9555
9661
|
function parseContextBusinessHours(calendarContext) {
|
|
9556
9662
|
return parseBusinessHours(calendarContext.options.businessHours, calendarContext);
|
|
9557
9663
|
}
|
|
@@ -9611,9 +9717,248 @@ var NamedTimeZoneImpl = /** @class */ (function () {
|
|
|
9611
9717
|
return NamedTimeZoneImpl;
|
|
9612
9718
|
}());
|
|
9613
9719
|
|
|
9720
|
+
var main_SegHierarchy = /** @class */ (function () {
|
|
9721
|
+
function SegHierarchy() {
|
|
9722
|
+
// settings
|
|
9723
|
+
this.strictOrder = false;
|
|
9724
|
+
this.allowReslicing = false;
|
|
9725
|
+
this.maxCoord = -1; // -1 means no max
|
|
9726
|
+
this.maxStackCnt = -1; // -1 means no max
|
|
9727
|
+
this.levelCoords = []; // ordered
|
|
9728
|
+
this.entriesByLevel = []; // parallel with levelCoords
|
|
9729
|
+
this.stackCnts = {}; // TODO: use better technique!?
|
|
9730
|
+
}
|
|
9731
|
+
SegHierarchy.prototype.addSegs = function (inputs) {
|
|
9732
|
+
var hiddenEntries = [];
|
|
9733
|
+
for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {
|
|
9734
|
+
var input = inputs_1[_i];
|
|
9735
|
+
this.insertEntry(input, hiddenEntries);
|
|
9736
|
+
}
|
|
9737
|
+
return hiddenEntries;
|
|
9738
|
+
};
|
|
9739
|
+
SegHierarchy.prototype.insertEntry = function (entry, hiddenEntries) {
|
|
9740
|
+
var insertion = this.findInsertion(entry);
|
|
9741
|
+
if (this.isInsertionValid(insertion, entry)) {
|
|
9742
|
+
this.insertEntryAt(entry, insertion);
|
|
9743
|
+
return 1;
|
|
9744
|
+
}
|
|
9745
|
+
return this.handleInvalidInsertion(insertion, entry, hiddenEntries);
|
|
9746
|
+
};
|
|
9747
|
+
SegHierarchy.prototype.isInsertionValid = function (insertion, entry) {
|
|
9748
|
+
return (this.maxCoord === -1 || insertion.levelCoord + entry.thickness <= this.maxCoord) &&
|
|
9749
|
+
(this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);
|
|
9750
|
+
};
|
|
9751
|
+
// returns number of new entries inserted
|
|
9752
|
+
SegHierarchy.prototype.handleInvalidInsertion = function (insertion, entry, hiddenEntries) {
|
|
9753
|
+
if (this.allowReslicing && insertion.touchingEntry) {
|
|
9754
|
+
return this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);
|
|
9755
|
+
}
|
|
9756
|
+
hiddenEntries.push(entry);
|
|
9757
|
+
return 0;
|
|
9758
|
+
};
|
|
9759
|
+
SegHierarchy.prototype.splitEntry = function (entry, barrier, hiddenEntries) {
|
|
9760
|
+
var partCnt = 0;
|
|
9761
|
+
var splitHiddenEntries = [];
|
|
9762
|
+
var entrySpan = entry.span;
|
|
9763
|
+
var barrierSpan = barrier.span;
|
|
9764
|
+
if (entrySpan.start < barrierSpan.start) {
|
|
9765
|
+
partCnt += this.insertEntry({
|
|
9766
|
+
index: entry.index,
|
|
9767
|
+
thickness: entry.thickness,
|
|
9768
|
+
span: { start: entrySpan.start, end: barrierSpan.start },
|
|
9769
|
+
}, splitHiddenEntries);
|
|
9770
|
+
}
|
|
9771
|
+
if (entrySpan.end > barrierSpan.end) {
|
|
9772
|
+
partCnt += this.insertEntry({
|
|
9773
|
+
index: entry.index,
|
|
9774
|
+
thickness: entry.thickness,
|
|
9775
|
+
span: { start: barrierSpan.end, end: entrySpan.end },
|
|
9776
|
+
}, splitHiddenEntries);
|
|
9777
|
+
}
|
|
9778
|
+
if (partCnt) {
|
|
9779
|
+
hiddenEntries.push.apply(hiddenEntries, __spreadArray([{
|
|
9780
|
+
index: entry.index,
|
|
9781
|
+
thickness: entry.thickness,
|
|
9782
|
+
span: intersectSpans(barrierSpan, entrySpan), // guaranteed to intersect
|
|
9783
|
+
}], splitHiddenEntries));
|
|
9784
|
+
return partCnt;
|
|
9785
|
+
}
|
|
9786
|
+
hiddenEntries.push(entry);
|
|
9787
|
+
return 0;
|
|
9788
|
+
};
|
|
9789
|
+
SegHierarchy.prototype.insertEntryAt = function (entry, insertion) {
|
|
9790
|
+
var _a = this, entriesByLevel = _a.entriesByLevel, levelCoords = _a.levelCoords;
|
|
9791
|
+
if (insertion.lateral === -1) {
|
|
9792
|
+
// create a new level
|
|
9793
|
+
insertAt(levelCoords, insertion.level, insertion.levelCoord);
|
|
9794
|
+
insertAt(entriesByLevel, insertion.level, [entry]);
|
|
9795
|
+
}
|
|
9796
|
+
else {
|
|
9797
|
+
// insert into existing level
|
|
9798
|
+
insertAt(entriesByLevel[insertion.level], insertion.lateral, entry);
|
|
9799
|
+
}
|
|
9800
|
+
this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;
|
|
9801
|
+
};
|
|
9802
|
+
SegHierarchy.prototype.findInsertion = function (newEntry) {
|
|
9803
|
+
var _a = this, levelCoords = _a.levelCoords, entriesByLevel = _a.entriesByLevel, strictOrder = _a.strictOrder, stackCnts = _a.stackCnts;
|
|
9804
|
+
var levelCnt = levelCoords.length;
|
|
9805
|
+
var candidateCoord = 0;
|
|
9806
|
+
var touchingLevel = -1;
|
|
9807
|
+
var touchingLateral = -1;
|
|
9808
|
+
var touchingEntry = null;
|
|
9809
|
+
var stackCnt = 0;
|
|
9810
|
+
for (var trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {
|
|
9811
|
+
var trackingCoord = levelCoords[trackingLevel];
|
|
9812
|
+
// if the current level is past the placed entry, we have found a good empty space and can stop.
|
|
9813
|
+
// if strictOrder, keep finding more lateral intersections.
|
|
9814
|
+
if (!strictOrder && trackingCoord >= candidateCoord + newEntry.thickness) {
|
|
9815
|
+
break;
|
|
9816
|
+
}
|
|
9817
|
+
var trackingEntries = entriesByLevel[trackingLevel];
|
|
9818
|
+
var trackingEntry = void 0;
|
|
9819
|
+
var searchRes = binarySearch(trackingEntries, newEntry.span.start, getEntrySpanEnd); // find first entry after newEntry's end
|
|
9820
|
+
var lateralIndex = searchRes[0] + searchRes[1]; // if exact match (which doesn't collide), go to next one
|
|
9821
|
+
while ( // loop through entries that horizontally intersect
|
|
9822
|
+
(trackingEntry = trackingEntries[lateralIndex]) && // but not past the whole entry list
|
|
9823
|
+
trackingEntry.span.start < newEntry.span.end // and not entirely past newEntry
|
|
9824
|
+
) {
|
|
9825
|
+
var trackingEntryBottom = trackingCoord + trackingEntry.thickness;
|
|
9826
|
+
// intersects into the top of the candidate?
|
|
9827
|
+
if (trackingEntryBottom > candidateCoord) {
|
|
9828
|
+
candidateCoord = trackingEntryBottom;
|
|
9829
|
+
touchingEntry = trackingEntry;
|
|
9830
|
+
touchingLevel = trackingLevel;
|
|
9831
|
+
touchingLateral = lateralIndex;
|
|
9832
|
+
}
|
|
9833
|
+
// butts up against top of candidate? (will happen if just intersected as well)
|
|
9834
|
+
if (trackingEntryBottom === candidateCoord) {
|
|
9835
|
+
// accumulate the highest possible stackCnt of the trackingEntries that butt up
|
|
9836
|
+
stackCnt = Math.max(stackCnt, stackCnts[buildEntryKey(trackingEntry)] + 1);
|
|
9837
|
+
}
|
|
9838
|
+
lateralIndex += 1;
|
|
9839
|
+
}
|
|
9840
|
+
}
|
|
9841
|
+
// the destination level will be after touchingEntry's level. find it
|
|
9842
|
+
var destLevel = 0;
|
|
9843
|
+
if (touchingEntry) {
|
|
9844
|
+
destLevel = touchingLevel + 1;
|
|
9845
|
+
while (destLevel < levelCnt && levelCoords[destLevel] < candidateCoord) {
|
|
9846
|
+
destLevel += 1;
|
|
9847
|
+
}
|
|
9848
|
+
}
|
|
9849
|
+
// if adding to an existing level, find where to insert
|
|
9850
|
+
var destLateral = -1;
|
|
9851
|
+
if (destLevel < levelCnt && levelCoords[destLevel] === candidateCoord) {
|
|
9852
|
+
destLateral = binarySearch(entriesByLevel[destLevel], newEntry.span.end, getEntrySpanEnd)[0];
|
|
9853
|
+
}
|
|
9854
|
+
return {
|
|
9855
|
+
touchingLevel: touchingLevel,
|
|
9856
|
+
touchingLateral: touchingLateral,
|
|
9857
|
+
touchingEntry: touchingEntry,
|
|
9858
|
+
stackCnt: stackCnt,
|
|
9859
|
+
levelCoord: candidateCoord,
|
|
9860
|
+
level: destLevel,
|
|
9861
|
+
lateral: destLateral,
|
|
9862
|
+
};
|
|
9863
|
+
};
|
|
9864
|
+
// sorted by levelCoord (lowest to highest)
|
|
9865
|
+
SegHierarchy.prototype.toRects = function () {
|
|
9866
|
+
var _a = this, entriesByLevel = _a.entriesByLevel, levelCoords = _a.levelCoords;
|
|
9867
|
+
var levelCnt = entriesByLevel.length;
|
|
9868
|
+
var rects = [];
|
|
9869
|
+
for (var level = 0; level < levelCnt; level += 1) {
|
|
9870
|
+
var entries = entriesByLevel[level];
|
|
9871
|
+
var levelCoord = levelCoords[level];
|
|
9872
|
+
for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
|
|
9873
|
+
var entry = entries_1[_i];
|
|
9874
|
+
rects.push(__assign(__assign({}, entry), { levelCoord: levelCoord }));
|
|
9875
|
+
}
|
|
9876
|
+
}
|
|
9877
|
+
return rects;
|
|
9878
|
+
};
|
|
9879
|
+
return SegHierarchy;
|
|
9880
|
+
}());
|
|
9881
|
+
function getEntrySpanEnd(entry) {
|
|
9882
|
+
return entry.span.end;
|
|
9883
|
+
}
|
|
9884
|
+
function buildEntryKey(entry) {
|
|
9885
|
+
return entry.index + ':' + entry.span.start;
|
|
9886
|
+
}
|
|
9887
|
+
// returns groups with entries sorted by input order
|
|
9888
|
+
function groupIntersectingEntries(entries) {
|
|
9889
|
+
var merges = [];
|
|
9890
|
+
for (var _i = 0, entries_2 = entries; _i < entries_2.length; _i++) {
|
|
9891
|
+
var entry = entries_2[_i];
|
|
9892
|
+
var filteredMerges = [];
|
|
9893
|
+
var hungryMerge = {
|
|
9894
|
+
span: entry.span,
|
|
9895
|
+
entries: [entry],
|
|
9896
|
+
};
|
|
9897
|
+
for (var _a = 0, merges_1 = merges; _a < merges_1.length; _a++) {
|
|
9898
|
+
var merge = merges_1[_a];
|
|
9899
|
+
if (intersectSpans(merge.span, hungryMerge.span)) {
|
|
9900
|
+
hungryMerge = {
|
|
9901
|
+
entries: merge.entries.concat(hungryMerge.entries),
|
|
9902
|
+
span: joinSpans(merge.span, hungryMerge.span),
|
|
9903
|
+
};
|
|
9904
|
+
}
|
|
9905
|
+
else {
|
|
9906
|
+
filteredMerges.push(merge);
|
|
9907
|
+
}
|
|
9908
|
+
}
|
|
9909
|
+
filteredMerges.push(hungryMerge);
|
|
9910
|
+
merges = filteredMerges;
|
|
9911
|
+
}
|
|
9912
|
+
return merges;
|
|
9913
|
+
}
|
|
9914
|
+
function joinSpans(span0, span1) {
|
|
9915
|
+
return {
|
|
9916
|
+
start: Math.min(span0.start, span1.start),
|
|
9917
|
+
end: Math.max(span0.end, span1.end),
|
|
9918
|
+
};
|
|
9919
|
+
}
|
|
9920
|
+
function intersectSpans(span0, span1) {
|
|
9921
|
+
var start = Math.max(span0.start, span1.start);
|
|
9922
|
+
var end = Math.min(span0.end, span1.end);
|
|
9923
|
+
if (start < end) {
|
|
9924
|
+
return { start: start, end: end };
|
|
9925
|
+
}
|
|
9926
|
+
return null;
|
|
9927
|
+
}
|
|
9928
|
+
// general util
|
|
9929
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
9930
|
+
function insertAt(arr, index, item) {
|
|
9931
|
+
arr.splice(index, 0, item);
|
|
9932
|
+
}
|
|
9933
|
+
function binarySearch(a, searchVal, getItemVal) {
|
|
9934
|
+
var startIndex = 0;
|
|
9935
|
+
var endIndex = a.length; // exclusive
|
|
9936
|
+
if (!endIndex || searchVal < getItemVal(a[startIndex])) { // no items OR before first item
|
|
9937
|
+
return [0, 0];
|
|
9938
|
+
}
|
|
9939
|
+
if (searchVal > getItemVal(a[endIndex - 1])) { // after last item
|
|
9940
|
+
return [endIndex, 0];
|
|
9941
|
+
}
|
|
9942
|
+
while (startIndex < endIndex) {
|
|
9943
|
+
var middleIndex = Math.floor(startIndex + (endIndex - startIndex) / 2);
|
|
9944
|
+
var middleVal = getItemVal(a[middleIndex]);
|
|
9945
|
+
if (searchVal < middleVal) {
|
|
9946
|
+
endIndex = middleIndex;
|
|
9947
|
+
}
|
|
9948
|
+
else if (searchVal > middleVal) {
|
|
9949
|
+
startIndex = middleIndex + 1;
|
|
9950
|
+
}
|
|
9951
|
+
else { // equal!
|
|
9952
|
+
return [middleIndex, 1];
|
|
9953
|
+
}
|
|
9954
|
+
}
|
|
9955
|
+
return [startIndex, 0];
|
|
9956
|
+
}
|
|
9957
|
+
|
|
9614
9958
|
var Interaction = /** @class */ (function () {
|
|
9615
9959
|
function Interaction(settings) {
|
|
9616
9960
|
this.component = settings.component;
|
|
9961
|
+
this.isHitComboAllowed = settings.isHitComboAllowed || null;
|
|
9617
9962
|
}
|
|
9618
9963
|
Interaction.prototype.destroy = function () {
|
|
9619
9964
|
};
|
|
@@ -9624,6 +9969,7 @@ function parseInteractionSettings(component, input) {
|
|
|
9624
9969
|
component: component,
|
|
9625
9970
|
el: input.el,
|
|
9626
9971
|
useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,
|
|
9972
|
+
isHitComboAllowed: input.isHitComboAllowed || null,
|
|
9627
9973
|
};
|
|
9628
9974
|
}
|
|
9629
9975
|
function interactionSettingsToStore(settings) {
|
|
@@ -9699,7 +10045,7 @@ var main_ToolbarSection = /** @class */ (function (_super) {
|
|
|
9699
10045
|
ToolbarSection.prototype.render = function () {
|
|
9700
10046
|
var _this = this;
|
|
9701
10047
|
var children = this.props.widgetGroups.map(function (widgetGroup) { return _this.renderWidgetGroup(widgetGroup); });
|
|
9702
|
-
return createElement.apply(void 0,
|
|
10048
|
+
return createElement.apply(void 0, __spreadArray(['div', { className: 'fc-toolbar-chunk' }], children));
|
|
9703
10049
|
};
|
|
9704
10050
|
ToolbarSection.prototype.renderWidgetGroup = function (widgetGroup) {
|
|
9705
10051
|
var props = this.props;
|
|
@@ -9708,26 +10054,26 @@ var main_ToolbarSection = /** @class */ (function (_super) {
|
|
|
9708
10054
|
var isOnlyButtons = true;
|
|
9709
10055
|
for (var _i = 0, widgetGroup_1 = widgetGroup; _i < widgetGroup_1.length; _i++) {
|
|
9710
10056
|
var widget = widgetGroup_1[_i];
|
|
9711
|
-
var buttonName = widget.buttonName, buttonClick = widget.buttonClick, buttonText = widget.buttonText, buttonIcon = widget.buttonIcon;
|
|
10057
|
+
var buttonName = widget.buttonName, buttonClick = widget.buttonClick, buttonText = widget.buttonText, buttonIcon = widget.buttonIcon, buttonHint = widget.buttonHint;
|
|
9712
10058
|
if (buttonName === 'title') {
|
|
9713
10059
|
isOnlyButtons = false;
|
|
9714
|
-
children.push(createElement("h2", { className: "fc-toolbar-title" }, props.title));
|
|
10060
|
+
children.push(createElement("h2", { className: "fc-toolbar-title", id: props.titleId }, props.title));
|
|
9715
10061
|
}
|
|
9716
10062
|
else {
|
|
9717
|
-
var
|
|
9718
|
-
var buttonClasses = ["fc-" + buttonName + "-button", theme.getClass('button')];
|
|
9719
|
-
if (buttonName === props.activeButton) {
|
|
9720
|
-
buttonClasses.push(theme.getClass('buttonActive'));
|
|
9721
|
-
}
|
|
10063
|
+
var isPressed = buttonName === props.activeButton;
|
|
9722
10064
|
var isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||
|
|
9723
10065
|
(!props.isPrevEnabled && buttonName === 'prev') ||
|
|
9724
10066
|
(!props.isNextEnabled && buttonName === 'next');
|
|
9725
|
-
|
|
10067
|
+
var buttonClasses = ["fc-" + buttonName + "-button", theme.getClass('button')];
|
|
10068
|
+
if (isPressed) {
|
|
10069
|
+
buttonClasses.push(theme.getClass('buttonActive'));
|
|
10070
|
+
}
|
|
10071
|
+
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 }) : '')));
|
|
9726
10072
|
}
|
|
9727
10073
|
}
|
|
9728
10074
|
if (children.length > 1) {
|
|
9729
10075
|
var groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';
|
|
9730
|
-
return createElement.apply(void 0,
|
|
10076
|
+
return createElement.apply(void 0, __spreadArray(['div', { className: groupClassName }], children));
|
|
9731
10077
|
}
|
|
9732
10078
|
return children[0];
|
|
9733
10079
|
};
|
|
@@ -9744,20 +10090,21 @@ var main_Toolbar = /** @class */ (function (_super) {
|
|
|
9744
10090
|
var forceLtr = false;
|
|
9745
10091
|
var startContent;
|
|
9746
10092
|
var endContent;
|
|
9747
|
-
var
|
|
9748
|
-
|
|
10093
|
+
var sectionWidgets = model.sectionWidgets;
|
|
10094
|
+
var centerContent = sectionWidgets.center;
|
|
10095
|
+
if (sectionWidgets.left) {
|
|
9749
10096
|
forceLtr = true;
|
|
9750
|
-
startContent =
|
|
10097
|
+
startContent = sectionWidgets.left;
|
|
9751
10098
|
}
|
|
9752
10099
|
else {
|
|
9753
|
-
startContent =
|
|
10100
|
+
startContent = sectionWidgets.start;
|
|
9754
10101
|
}
|
|
9755
|
-
if (
|
|
10102
|
+
if (sectionWidgets.right) {
|
|
9756
10103
|
forceLtr = true;
|
|
9757
|
-
endContent =
|
|
10104
|
+
endContent = sectionWidgets.right;
|
|
9758
10105
|
}
|
|
9759
10106
|
else {
|
|
9760
|
-
endContent =
|
|
10107
|
+
endContent = sectionWidgets.end;
|
|
9761
10108
|
}
|
|
9762
10109
|
var classNames = [
|
|
9763
10110
|
extraClassName || '',
|
|
@@ -9771,7 +10118,7 @@ var main_Toolbar = /** @class */ (function (_super) {
|
|
|
9771
10118
|
};
|
|
9772
10119
|
Toolbar.prototype.renderSection = function (key, widgetGroups) {
|
|
9773
10120
|
var props = this.props;
|
|
9774
|
-
return (createElement(main_ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled }));
|
|
10121
|
+
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 }));
|
|
9775
10122
|
};
|
|
9776
10123
|
return Toolbar;
|
|
9777
10124
|
}(main_BaseComponent));
|
|
@@ -9801,7 +10148,7 @@ var main_ViewContainer = /** @class */ (function (_super) {
|
|
|
9801
10148
|
'fc-view-harness',
|
|
9802
10149
|
(aspectRatio || props.liquid || props.height)
|
|
9803
10150
|
? 'fc-view-harness-active' // harness controls the height
|
|
9804
|
-
: 'fc-view-harness-passive',
|
|
10151
|
+
: 'fc-view-harness-passive', // let the view do the height
|
|
9805
10152
|
];
|
|
9806
10153
|
var height = '';
|
|
9807
10154
|
var paddingBottom = '';
|
|
@@ -9820,7 +10167,7 @@ var main_ViewContainer = /** @class */ (function (_super) {
|
|
|
9820
10167
|
else {
|
|
9821
10168
|
height = props.height || '';
|
|
9822
10169
|
}
|
|
9823
|
-
return (createElement("div", {
|
|
10170
|
+
return (createElement("div", { "aria-labelledby": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height: height, paddingBottom: paddingBottom } }, props.children));
|
|
9824
10171
|
};
|
|
9825
10172
|
ViewContainer.prototype.componentDidMount = function () {
|
|
9826
10173
|
this.context.addResizeHandler(this.handleResize);
|
|
@@ -9929,10 +10276,13 @@ var main_CalendarContent = /** @class */ (function (_super) {
|
|
|
9929
10276
|
_this.buildViewContext = memoize(buildViewContext);
|
|
9930
10277
|
_this.buildViewPropTransformers = memoize(buildViewPropTransformers);
|
|
9931
10278
|
_this.buildToolbarProps = memoize(buildToolbarProps);
|
|
9932
|
-
_this.handleNavLinkClick = buildDelegationHandler('a[data-navlink]', _this._handleNavLinkClick.bind(_this));
|
|
9933
10279
|
_this.headerRef = createRef();
|
|
9934
10280
|
_this.footerRef = createRef();
|
|
9935
10281
|
_this.interactionsStore = {};
|
|
10282
|
+
// eslint-disable-next-line
|
|
10283
|
+
_this.state = {
|
|
10284
|
+
viewLabelId: getUniqueDomId(),
|
|
10285
|
+
};
|
|
9936
10286
|
// Component Registration
|
|
9937
10287
|
// -----------------------------------------------------------------------------------------------------------------
|
|
9938
10288
|
_this.registerInteractiveComponent = function (component, settingsInput) {
|
|
@@ -9994,12 +10344,15 @@ var main_CalendarContent = /** @class */ (function (_super) {
|
|
|
9994
10344
|
viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall
|
|
9995
10345
|
}
|
|
9996
10346
|
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);
|
|
10347
|
+
var viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)
|
|
10348
|
+
? this.state.viewLabelId
|
|
10349
|
+
: '';
|
|
9997
10350
|
return (createElement(ViewContextType.Provider, { value: viewContext },
|
|
9998
|
-
toolbarConfig.
|
|
9999
|
-
createElement(main_ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio,
|
|
10351
|
+
toolbarConfig.header && (createElement(main_Toolbar, __assign({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),
|
|
10352
|
+
createElement(main_ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },
|
|
10000
10353
|
this.renderView(props),
|
|
10001
10354
|
this.buildAppendContent()),
|
|
10002
|
-
toolbarConfig.
|
|
10355
|
+
toolbarConfig.footer && (createElement(main_Toolbar, __assign({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: toolbarConfig.footer, titleId: "" }, toolbarProps)))));
|
|
10003
10356
|
};
|
|
10004
10357
|
CalendarContent.prototype.componentDidMount = function () {
|
|
10005
10358
|
var props = this.props;
|
|
@@ -10029,28 +10382,10 @@ var main_CalendarContent = /** @class */ (function (_super) {
|
|
|
10029
10382
|
}
|
|
10030
10383
|
this.props.emitter.trigger('_unmount');
|
|
10031
10384
|
};
|
|
10032
|
-
CalendarContent.prototype._handleNavLinkClick = function (ev, anchorEl) {
|
|
10033
|
-
var _a = this.props, dateEnv = _a.dateEnv, options = _a.options, calendarApi = _a.calendarApi;
|
|
10034
|
-
var navLinkOptions = anchorEl.getAttribute('data-navlink');
|
|
10035
|
-
navLinkOptions = navLinkOptions ? JSON.parse(navLinkOptions) : {};
|
|
10036
|
-
var dateMarker = dateEnv.createMarker(navLinkOptions.date);
|
|
10037
|
-
var viewType = navLinkOptions.type;
|
|
10038
|
-
var customAction = viewType === 'day' ? options.navLinkDayClick :
|
|
10039
|
-
viewType === 'week' ? options.navLinkWeekClick : null;
|
|
10040
|
-
if (typeof customAction === 'function') {
|
|
10041
|
-
customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);
|
|
10042
|
-
}
|
|
10043
|
-
else {
|
|
10044
|
-
if (typeof customAction === 'string') {
|
|
10045
|
-
viewType = customAction;
|
|
10046
|
-
}
|
|
10047
|
-
calendarApi.zoomTo(dateMarker, viewType);
|
|
10048
|
-
}
|
|
10049
|
-
};
|
|
10050
10385
|
CalendarContent.prototype.buildAppendContent = function () {
|
|
10051
10386
|
var props = this.props;
|
|
10052
10387
|
var children = props.pluginHooks.viewContainerAppends.map(function (buildAppendContent) { return buildAppendContent(props); });
|
|
10053
|
-
return createElement.apply(void 0,
|
|
10388
|
+
return createElement.apply(void 0, __spreadArray([Fragment, {}], children));
|
|
10054
10389
|
};
|
|
10055
10390
|
CalendarContent.prototype.renderView = function (props) {
|
|
10056
10391
|
var pluginHooks = props.pluginHooks;
|
|
@@ -10085,6 +10420,7 @@ function buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentD
|
|
|
10085
10420
|
return {
|
|
10086
10421
|
title: title,
|
|
10087
10422
|
activeButton: viewSpec.type,
|
|
10423
|
+
navUnit: viewSpec.singleUnit,
|
|
10088
10424
|
isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),
|
|
10089
10425
|
isPrevEnabled: prevInfo.isValid,
|
|
10090
10426
|
isNextEnabled: nextInfo.isValid,
|
|
@@ -10155,7 +10491,7 @@ function computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {
|
|
|
10155
10491
|
}
|
|
10156
10492
|
|
|
10157
10493
|
var CLASS_NAME = 'fc-col-header-cell'; // do the cushion too? no
|
|
10158
|
-
function renderInner(hookProps) {
|
|
10494
|
+
function renderInner$1(hookProps) {
|
|
10159
10495
|
return hookProps.text;
|
|
10160
10496
|
}
|
|
10161
10497
|
|
|
@@ -10172,11 +10508,11 @@ var main_TableDateCell = /** @class */ (function (_super) {
|
|
|
10172
10508
|
var classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));
|
|
10173
10509
|
var text = dateEnv.format(date, props.dayHeaderFormat);
|
|
10174
10510
|
// if colCnt is 1, we are already in a day-view and don't need a navlink
|
|
10175
|
-
var navLinkAttrs = (
|
|
10176
|
-
?
|
|
10511
|
+
var navLinkAttrs = (!dayMeta.isDisabled && props.colCnt > 1)
|
|
10512
|
+
? buildNavLinkAttrs(this.context, date)
|
|
10177
10513
|
: {};
|
|
10178
10514
|
var hookProps = __assign(__assign(__assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraHookProps), { text: text }), dayMeta);
|
|
10179
|
-
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),
|
|
10515
|
+
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),
|
|
10180
10516
|
createElement("div", { className: "fc-scrollgrid-sync-inner" }, !dayMeta.isDisabled && (createElement("a", __assign({ ref: innerElRef, className: [
|
|
10181
10517
|
'fc-col-header-cell-cushion',
|
|
10182
10518
|
props.isSticky ? 'fc-sticky' : '',
|
|
@@ -10185,6 +10521,7 @@ var main_TableDateCell = /** @class */ (function (_super) {
|
|
|
10185
10521
|
return TableDateCell;
|
|
10186
10522
|
}(main_BaseComponent));
|
|
10187
10523
|
|
|
10524
|
+
var WEEKDAY_FORMAT = createFormatter({ weekday: 'long' });
|
|
10188
10525
|
var main_TableDowCell = /** @class */ (function (_super) {
|
|
10189
10526
|
__extends(TableDowCell, _super);
|
|
10190
10527
|
function TableDowCell() {
|
|
@@ -10206,9 +10543,9 @@ var main_TableDowCell = /** @class */ (function (_super) {
|
|
|
10206
10543
|
var text = dateEnv.format(date, props.dayHeaderFormat);
|
|
10207
10544
|
var hookProps = __assign(__assign(__assign(__assign({ // TODO: make this public?
|
|
10208
10545
|
date: date }, dateMeta), { view: viewApi }), props.extraHookProps), { text: text });
|
|
10209
|
-
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),
|
|
10546
|
+
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),
|
|
10210
10547
|
createElement("div", { className: "fc-scrollgrid-sync-inner" },
|
|
10211
|
-
createElement("a", { className: [
|
|
10548
|
+
createElement("a", { "aria-label": dateEnv.format(date, WEEKDAY_FORMAT), className: [
|
|
10212
10549
|
'fc-col-header-cell-cushion',
|
|
10213
10550
|
props.isSticky ? 'fc-sticky' : '',
|
|
10214
10551
|
].join(' '), ref: innerElRef }, innerContent)))); }));
|
|
@@ -10247,6 +10584,9 @@ var main_NowTimer = /** @class */ (function (_super) {
|
|
|
10247
10584
|
var currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);
|
|
10248
10585
|
var nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));
|
|
10249
10586
|
var waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf();
|
|
10587
|
+
// there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)
|
|
10588
|
+
// ensure no longer than a day
|
|
10589
|
+
waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);
|
|
10250
10590
|
return {
|
|
10251
10591
|
currentState: { nowDate: currentUnitStart, todayRange: buildDayRange(currentUnitStart) },
|
|
10252
10592
|
nextState: { nowDate: nextUnitStart, todayRange: buildDayRange(nextUnitStart) },
|
|
@@ -10287,8 +10627,8 @@ var main_DayHeader = /** @class */ (function (_super) {
|
|
|
10287
10627
|
var context = this.context;
|
|
10288
10628
|
var _a = this.props, dates = _a.dates, dateProfile = _a.dateProfile, datesRepDistinctDays = _a.datesRepDistinctDays, renderIntro = _a.renderIntro;
|
|
10289
10629
|
var dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);
|
|
10290
|
-
return (createElement(main_NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (createElement("tr",
|
|
10291
|
-
renderIntro && renderIntro(),
|
|
10630
|
+
return (createElement(main_NowTimer, { unit: "day" }, function (nowDate, todayRange) { return (createElement("tr", { role: "row" },
|
|
10631
|
+
renderIntro && renderIntro('day'),
|
|
10292
10632
|
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 }))); }))); }));
|
|
10293
10633
|
};
|
|
10294
10634
|
return DayHeader;
|
|
@@ -10447,14 +10787,14 @@ var main_Slicer = /** @class */ (function () {
|
|
|
10447
10787
|
extraArgs[_i - 4] = arguments[_i];
|
|
10448
10788
|
}
|
|
10449
10789
|
var eventUiBases = props.eventUiBases;
|
|
10450
|
-
var eventSegs = this.sliceEventStore.apply(this,
|
|
10790
|
+
var eventSegs = this.sliceEventStore.apply(this, __spreadArray([props.eventStore, eventUiBases, dateProfile, nextDayThreshold], extraArgs));
|
|
10451
10791
|
return {
|
|
10452
|
-
dateSelectionSegs: this.sliceDateSelection.apply(this,
|
|
10453
|
-
businessHourSegs: this.sliceBusinessHours.apply(this,
|
|
10792
|
+
dateSelectionSegs: this.sliceDateSelection.apply(this, __spreadArray([props.dateSelection, eventUiBases, context], extraArgs)),
|
|
10793
|
+
businessHourSegs: this.sliceBusinessHours.apply(this, __spreadArray([props.businessHours, dateProfile, nextDayThreshold, context], extraArgs)),
|
|
10454
10794
|
fgEventSegs: eventSegs.fg,
|
|
10455
10795
|
bgEventSegs: eventSegs.bg,
|
|
10456
|
-
eventDrag: this.sliceEventDrag.apply(this,
|
|
10457
|
-
eventResize: this.sliceEventResize.apply(this,
|
|
10796
|
+
eventDrag: this.sliceEventDrag.apply(this, __spreadArray([props.eventDrag, eventUiBases, dateProfile, nextDayThreshold], extraArgs)),
|
|
10797
|
+
eventResize: this.sliceEventResize.apply(this, __spreadArray([props.eventResize, eventUiBases, dateProfile, nextDayThreshold], extraArgs)),
|
|
10458
10798
|
eventSelection: props.eventSelection,
|
|
10459
10799
|
}; // TODO: give interactionSegs?
|
|
10460
10800
|
};
|
|
@@ -10464,7 +10804,7 @@ var main_Slicer = /** @class */ (function () {
|
|
|
10464
10804
|
for (var _i = 2; _i < arguments.length; _i++) {
|
|
10465
10805
|
extraArgs[_i - 2] = arguments[_i];
|
|
10466
10806
|
}
|
|
10467
|
-
return this._sliceDateSpan.apply(this,
|
|
10807
|
+
return this._sliceDateSpan.apply(this, __spreadArray([{ range: { start: date, end: addMs(date, 1) }, allDay: false },
|
|
10468
10808
|
{},
|
|
10469
10809
|
context], extraArgs));
|
|
10470
10810
|
};
|
|
@@ -10476,7 +10816,7 @@ var main_Slicer = /** @class */ (function () {
|
|
|
10476
10816
|
if (!businessHours) {
|
|
10477
10817
|
return [];
|
|
10478
10818
|
}
|
|
10479
|
-
return this._sliceEventStore.apply(this,
|
|
10819
|
+
return this._sliceEventStore.apply(this, __spreadArray([expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), context),
|
|
10480
10820
|
{},
|
|
10481
10821
|
dateProfile,
|
|
10482
10822
|
nextDayThreshold], extraArgs)).bg;
|
|
@@ -10515,65 +10855,254 @@ var main_Slicer = /** @class */ (function () {
|
|
|
10515
10855
|
for (var _i = 3; _i < arguments.length; _i++) {
|
|
10516
10856
|
extraArgs[_i - 3] = arguments[_i];
|
|
10517
10857
|
}
|
|
10518
|
-
if (!dateSpan) {
|
|
10519
|
-
return [];
|
|
10858
|
+
if (!dateSpan) {
|
|
10859
|
+
return [];
|
|
10860
|
+
}
|
|
10861
|
+
var eventRange = fabricateEventRange(dateSpan, eventUiBases, context);
|
|
10862
|
+
var segs = this.sliceRange.apply(this, __spreadArray([dateSpan.range], extraArgs));
|
|
10863
|
+
for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) {
|
|
10864
|
+
var seg = segs_1[_a];
|
|
10865
|
+
seg.eventRange = eventRange;
|
|
10866
|
+
}
|
|
10867
|
+
return segs;
|
|
10868
|
+
};
|
|
10869
|
+
/*
|
|
10870
|
+
"complete" seg means it has component and eventRange
|
|
10871
|
+
*/
|
|
10872
|
+
Slicer.prototype.sliceEventRanges = function (eventRanges, extraArgs) {
|
|
10873
|
+
var segs = [];
|
|
10874
|
+
for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {
|
|
10875
|
+
var eventRange = eventRanges_1[_i];
|
|
10876
|
+
segs.push.apply(segs, this.sliceEventRange(eventRange, extraArgs));
|
|
10877
|
+
}
|
|
10878
|
+
return segs;
|
|
10879
|
+
};
|
|
10880
|
+
/*
|
|
10881
|
+
"complete" seg means it has component and eventRange
|
|
10882
|
+
*/
|
|
10883
|
+
Slicer.prototype.sliceEventRange = function (eventRange, extraArgs) {
|
|
10884
|
+
var dateRange = eventRange.range;
|
|
10885
|
+
// hack to make multi-day events that are being force-displayed as list-items to take up only one day
|
|
10886
|
+
if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {
|
|
10887
|
+
dateRange = {
|
|
10888
|
+
start: dateRange.start,
|
|
10889
|
+
end: addDays(dateRange.start, 1),
|
|
10890
|
+
};
|
|
10891
|
+
}
|
|
10892
|
+
var segs = this.sliceRange.apply(this, __spreadArray([dateRange], extraArgs));
|
|
10893
|
+
for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {
|
|
10894
|
+
var seg = segs_2[_i];
|
|
10895
|
+
seg.eventRange = eventRange;
|
|
10896
|
+
seg.isStart = eventRange.isStart && seg.isStart;
|
|
10897
|
+
seg.isEnd = eventRange.isEnd && seg.isEnd;
|
|
10898
|
+
}
|
|
10899
|
+
return segs;
|
|
10900
|
+
};
|
|
10901
|
+
return Slicer;
|
|
10902
|
+
}());
|
|
10903
|
+
/*
|
|
10904
|
+
for incorporating slotMinTime/slotMaxTime if appropriate
|
|
10905
|
+
TODO: should be part of DateProfile!
|
|
10906
|
+
TimelineDateProfile already does this btw
|
|
10907
|
+
*/
|
|
10908
|
+
function computeActiveRange(dateProfile, isComponentAllDay) {
|
|
10909
|
+
var range = dateProfile.activeRange;
|
|
10910
|
+
if (isComponentAllDay) {
|
|
10911
|
+
return range;
|
|
10912
|
+
}
|
|
10913
|
+
return {
|
|
10914
|
+
start: addMs(range.start, dateProfile.slotMinTime.milliseconds),
|
|
10915
|
+
end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5), // 864e5 = ms in a day
|
|
10916
|
+
};
|
|
10917
|
+
}
|
|
10918
|
+
|
|
10919
|
+
// high-level segmenting-aware tester functions
|
|
10920
|
+
// ------------------------------------------------------------------------------------------------------------------------
|
|
10921
|
+
function isInteractionValid(interaction, dateProfile, context) {
|
|
10922
|
+
var instances = interaction.mutatedEvents.instances;
|
|
10923
|
+
for (var instanceId in instances) {
|
|
10924
|
+
if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {
|
|
10925
|
+
return false;
|
|
10926
|
+
}
|
|
10927
|
+
}
|
|
10928
|
+
return isNewPropsValid({ eventDrag: interaction }, context); // HACK: the eventDrag props is used for ALL interactions
|
|
10929
|
+
}
|
|
10930
|
+
function isDateSelectionValid(dateSelection, dateProfile, context) {
|
|
10931
|
+
if (!rangeContainsRange(dateProfile.validRange, dateSelection.range)) {
|
|
10932
|
+
return false;
|
|
10933
|
+
}
|
|
10934
|
+
return isNewPropsValid({ dateSelection: dateSelection }, context);
|
|
10935
|
+
}
|
|
10936
|
+
function isNewPropsValid(newProps, context) {
|
|
10937
|
+
var calendarState = context.getCurrentData();
|
|
10938
|
+
var props = __assign({ businessHours: calendarState.businessHours, dateSelection: '', eventStore: calendarState.eventStore, eventUiBases: calendarState.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);
|
|
10939
|
+
return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);
|
|
10940
|
+
}
|
|
10941
|
+
function isPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
10942
|
+
if (dateSpanMeta === void 0) { dateSpanMeta = {}; }
|
|
10943
|
+
if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {
|
|
10944
|
+
return false;
|
|
10945
|
+
}
|
|
10946
|
+
if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {
|
|
10947
|
+
return false;
|
|
10948
|
+
}
|
|
10949
|
+
return true;
|
|
10950
|
+
}
|
|
10951
|
+
// Moving Event Validation
|
|
10952
|
+
// ------------------------------------------------------------------------------------------------------------------------
|
|
10953
|
+
function isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
10954
|
+
var currentState = context.getCurrentData();
|
|
10955
|
+
var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions
|
|
10956
|
+
var subjectEventStore = interaction.mutatedEvents;
|
|
10957
|
+
var subjectDefs = subjectEventStore.defs;
|
|
10958
|
+
var subjectInstances = subjectEventStore.instances;
|
|
10959
|
+
var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?
|
|
10960
|
+
state.eventUiBases :
|
|
10961
|
+
{ '': currentState.selectionConfig });
|
|
10962
|
+
if (filterConfig) {
|
|
10963
|
+
subjectConfigs = mapHash(subjectConfigs, filterConfig);
|
|
10964
|
+
}
|
|
10965
|
+
// exclude the subject events. TODO: exclude defs too?
|
|
10966
|
+
var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);
|
|
10967
|
+
var otherDefs = otherEventStore.defs;
|
|
10968
|
+
var otherInstances = otherEventStore.instances;
|
|
10969
|
+
var otherConfigs = compileEventUis(otherDefs, state.eventUiBases);
|
|
10970
|
+
for (var subjectInstanceId in subjectInstances) {
|
|
10971
|
+
var subjectInstance = subjectInstances[subjectInstanceId];
|
|
10972
|
+
var subjectRange = subjectInstance.range;
|
|
10973
|
+
var subjectConfig = subjectConfigs[subjectInstance.defId];
|
|
10974
|
+
var subjectDef = subjectDefs[subjectInstance.defId];
|
|
10975
|
+
// constraint
|
|
10976
|
+
if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {
|
|
10977
|
+
return false;
|
|
10978
|
+
}
|
|
10979
|
+
// overlap
|
|
10980
|
+
var eventOverlap = context.options.eventOverlap;
|
|
10981
|
+
var eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;
|
|
10982
|
+
for (var otherInstanceId in otherInstances) {
|
|
10983
|
+
var otherInstance = otherInstances[otherInstanceId];
|
|
10984
|
+
// intersect! evaluate
|
|
10985
|
+
if (rangesIntersect(subjectRange, otherInstance.range)) {
|
|
10986
|
+
var otherOverlap = otherConfigs[otherInstance.defId].overlap;
|
|
10987
|
+
// consider the other event's overlap. only do this if the subject event is a "real" event
|
|
10988
|
+
if (otherOverlap === false && interaction.isEvent) {
|
|
10989
|
+
return false;
|
|
10990
|
+
}
|
|
10991
|
+
if (subjectConfig.overlap === false) {
|
|
10992
|
+
return false;
|
|
10993
|
+
}
|
|
10994
|
+
if (eventOverlapFunc && !eventOverlapFunc(new main_EventApi(context, otherDefs[otherInstance.defId], otherInstance), // still event
|
|
10995
|
+
new main_EventApi(context, subjectDef, subjectInstance))) {
|
|
10996
|
+
return false;
|
|
10997
|
+
}
|
|
10998
|
+
}
|
|
10999
|
+
}
|
|
11000
|
+
// allow (a function)
|
|
11001
|
+
var calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state
|
|
11002
|
+
for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) {
|
|
11003
|
+
var subjectAllow = _a[_i];
|
|
11004
|
+
var subjectDateSpan = __assign(__assign({}, dateSpanMeta), { range: subjectInstance.range, allDay: subjectDef.allDay });
|
|
11005
|
+
var origDef = calendarEventStore.defs[subjectDef.defId];
|
|
11006
|
+
var origInstance = calendarEventStore.instances[subjectInstanceId];
|
|
11007
|
+
var eventApi = void 0;
|
|
11008
|
+
if (origDef) { // was previously in the calendar
|
|
11009
|
+
eventApi = new main_EventApi(context, origDef, origInstance);
|
|
11010
|
+
}
|
|
11011
|
+
else { // was an external event
|
|
11012
|
+
eventApi = new main_EventApi(context, subjectDef); // no instance, because had no dates
|
|
11013
|
+
}
|
|
11014
|
+
if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {
|
|
11015
|
+
return false;
|
|
11016
|
+
}
|
|
10520
11017
|
}
|
|
10521
|
-
|
|
10522
|
-
|
|
10523
|
-
|
|
10524
|
-
|
|
10525
|
-
|
|
11018
|
+
}
|
|
11019
|
+
return true;
|
|
11020
|
+
}
|
|
11021
|
+
// Date Selection Validation
|
|
11022
|
+
// ------------------------------------------------------------------------------------------------------------------------
|
|
11023
|
+
function isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig) {
|
|
11024
|
+
var relevantEventStore = state.eventStore;
|
|
11025
|
+
var relevantDefs = relevantEventStore.defs;
|
|
11026
|
+
var relevantInstances = relevantEventStore.instances;
|
|
11027
|
+
var selection = state.dateSelection;
|
|
11028
|
+
var selectionRange = selection.range;
|
|
11029
|
+
var selectionConfig = context.getCurrentData().selectionConfig;
|
|
11030
|
+
if (filterConfig) {
|
|
11031
|
+
selectionConfig = filterConfig(selectionConfig);
|
|
11032
|
+
}
|
|
11033
|
+
// constraint
|
|
11034
|
+
if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {
|
|
11035
|
+
return false;
|
|
11036
|
+
}
|
|
11037
|
+
// overlap
|
|
11038
|
+
var selectOverlap = context.options.selectOverlap;
|
|
11039
|
+
var selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;
|
|
11040
|
+
for (var relevantInstanceId in relevantInstances) {
|
|
11041
|
+
var relevantInstance = relevantInstances[relevantInstanceId];
|
|
11042
|
+
// intersect! evaluate
|
|
11043
|
+
if (rangesIntersect(selectionRange, relevantInstance.range)) {
|
|
11044
|
+
if (selectionConfig.overlap === false) {
|
|
11045
|
+
return false;
|
|
11046
|
+
}
|
|
11047
|
+
if (selectOverlapFunc && !selectOverlapFunc(new main_EventApi(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {
|
|
11048
|
+
return false;
|
|
11049
|
+
}
|
|
10526
11050
|
}
|
|
10527
|
-
|
|
10528
|
-
|
|
10529
|
-
|
|
10530
|
-
|
|
10531
|
-
|
|
10532
|
-
|
|
10533
|
-
|
|
10534
|
-
for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {
|
|
10535
|
-
var eventRange = eventRanges_1[_i];
|
|
10536
|
-
segs.push.apply(segs, this.sliceEventRange(eventRange, extraArgs));
|
|
11051
|
+
}
|
|
11052
|
+
// allow (a function)
|
|
11053
|
+
for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) {
|
|
11054
|
+
var selectionAllow = _a[_i];
|
|
11055
|
+
var fullDateSpan = __assign(__assign({}, dateSpanMeta), selection);
|
|
11056
|
+
if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {
|
|
11057
|
+
return false;
|
|
10537
11058
|
}
|
|
10538
|
-
|
|
10539
|
-
|
|
10540
|
-
|
|
10541
|
-
|
|
10542
|
-
|
|
10543
|
-
|
|
10544
|
-
|
|
10545
|
-
|
|
10546
|
-
if (
|
|
10547
|
-
|
|
10548
|
-
start: dateRange.start,
|
|
10549
|
-
end: addDays(dateRange.start, 1),
|
|
10550
|
-
};
|
|
11059
|
+
}
|
|
11060
|
+
return true;
|
|
11061
|
+
}
|
|
11062
|
+
// Constraint Utils
|
|
11063
|
+
// ------------------------------------------------------------------------------------------------------------------------
|
|
11064
|
+
function allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {
|
|
11065
|
+
for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) {
|
|
11066
|
+
var constraint = constraints_1[_i];
|
|
11067
|
+
if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {
|
|
11068
|
+
return false;
|
|
10551
11069
|
}
|
|
10552
|
-
|
|
10553
|
-
|
|
10554
|
-
|
|
10555
|
-
|
|
10556
|
-
|
|
10557
|
-
|
|
11070
|
+
}
|
|
11071
|
+
return true;
|
|
11072
|
+
}
|
|
11073
|
+
function constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours
|
|
11074
|
+
otherEventStore, // for if constraint is an even group ID
|
|
11075
|
+
businessHoursUnexpanded, // for if constraint is 'businessHours'
|
|
11076
|
+
context) {
|
|
11077
|
+
if (constraint === 'businessHours') {
|
|
11078
|
+
return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));
|
|
11079
|
+
}
|
|
11080
|
+
if (typeof constraint === 'string') { // an group ID
|
|
11081
|
+
return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { return eventDef.groupId === constraint; }));
|
|
11082
|
+
}
|
|
11083
|
+
if (typeof constraint === 'object' && constraint) { // non-null object
|
|
11084
|
+
return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));
|
|
11085
|
+
}
|
|
11086
|
+
return []; // if it's false
|
|
11087
|
+
}
|
|
11088
|
+
// TODO: move to event-store file?
|
|
11089
|
+
function eventStoreToRanges(eventStore) {
|
|
11090
|
+
var instances = eventStore.instances;
|
|
11091
|
+
var ranges = [];
|
|
11092
|
+
for (var instanceId in instances) {
|
|
11093
|
+
ranges.push(instances[instanceId].range);
|
|
11094
|
+
}
|
|
11095
|
+
return ranges;
|
|
11096
|
+
}
|
|
11097
|
+
// TODO: move to geom file?
|
|
11098
|
+
function anyRangesContainRange(outerRanges, innerRange) {
|
|
11099
|
+
for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) {
|
|
11100
|
+
var outerRange = outerRanges_1[_i];
|
|
11101
|
+
if (rangeContainsRange(outerRange, innerRange)) {
|
|
11102
|
+
return true;
|
|
10558
11103
|
}
|
|
10559
|
-
return segs;
|
|
10560
|
-
};
|
|
10561
|
-
return Slicer;
|
|
10562
|
-
}());
|
|
10563
|
-
/*
|
|
10564
|
-
for incorporating slotMinTime/slotMaxTime if appropriate
|
|
10565
|
-
TODO: should be part of DateProfile!
|
|
10566
|
-
TimelineDateProfile already does this btw
|
|
10567
|
-
*/
|
|
10568
|
-
function computeActiveRange(dateProfile, isComponentAllDay) {
|
|
10569
|
-
var range = dateProfile.activeRange;
|
|
10570
|
-
if (isComponentAllDay) {
|
|
10571
|
-
return range;
|
|
10572
11104
|
}
|
|
10573
|
-
return
|
|
10574
|
-
start: addMs(range.start, dateProfile.slotMinTime.milliseconds),
|
|
10575
|
-
end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5),
|
|
10576
|
-
};
|
|
11105
|
+
return false;
|
|
10577
11106
|
}
|
|
10578
11107
|
|
|
10579
11108
|
var VISIBLE_HIDDEN_RE = /^(visible|hidden)$/;
|
|
@@ -10742,11 +11271,12 @@ function getAllowYScrolling(props, sectionConfig) {
|
|
|
10742
11271
|
getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars
|
|
10743
11272
|
}
|
|
10744
11273
|
// TODO: ONLY use `arg`. force out internal function to use same API
|
|
10745
|
-
function renderChunkContent(sectionConfig, chunkConfig, arg) {
|
|
11274
|
+
function renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {
|
|
10746
11275
|
var expandRows = arg.expandRows;
|
|
10747
11276
|
var content = typeof chunkConfig.content === 'function' ?
|
|
10748
11277
|
chunkConfig.content(arg) :
|
|
10749
11278
|
createElement('table', {
|
|
11279
|
+
role: 'presentation',
|
|
10750
11280
|
className: [
|
|
10751
11281
|
chunkConfig.tableClassName,
|
|
10752
11282
|
sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',
|
|
@@ -10754,9 +11284,13 @@ function renderChunkContent(sectionConfig, chunkConfig, arg) {
|
|
|
10754
11284
|
style: {
|
|
10755
11285
|
minWidth: arg.tableMinWidth,
|
|
10756
11286
|
width: arg.clientWidth,
|
|
10757
|
-
height: expandRows ? arg.clientHeight : '',
|
|
11287
|
+
height: expandRows ? arg.clientHeight : '', // css `height` on a <table> serves as a min-height
|
|
10758
11288
|
},
|
|
10759
|
-
}, arg.tableColGroupNode, createElement('
|
|
11289
|
+
}, arg.tableColGroupNode, createElement(isHeader ? 'thead' : 'tbody', {
|
|
11290
|
+
role: 'presentation',
|
|
11291
|
+
}, typeof chunkConfig.rowContent === 'function'
|
|
11292
|
+
? chunkConfig.rowContent(arg)
|
|
11293
|
+
: chunkConfig.rowContent));
|
|
10760
11294
|
return content;
|
|
10761
11295
|
}
|
|
10762
11296
|
function isColPropsEqual(cols0, cols1) {
|
|
@@ -10779,7 +11313,7 @@ function renderMicroColGroup(cols, shrinkWidth) {
|
|
|
10779
11313
|
} }));
|
|
10780
11314
|
}
|
|
10781
11315
|
}
|
|
10782
|
-
return createElement.apply(void 0,
|
|
11316
|
+
return createElement.apply(void 0, __spreadArray(['colgroup', {}], colNodes));
|
|
10783
11317
|
}
|
|
10784
11318
|
function sanitizeShrinkWidth(shrinkWidth) {
|
|
10785
11319
|
/* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth
|
|
@@ -10809,7 +11343,7 @@ function getSectionClassNames(sectionConfig, wholeTableVGrow) {
|
|
|
10809
11343
|
var classNames = [
|
|
10810
11344
|
'fc-scrollgrid-section',
|
|
10811
11345
|
"fc-scrollgrid-section-" + sectionConfig.type,
|
|
10812
|
-
sectionConfig.className,
|
|
11346
|
+
sectionConfig.className, // used?
|
|
10813
11347
|
];
|
|
10814
11348
|
if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {
|
|
10815
11349
|
classNames.push('fc-scrollgrid-section-liquid');
|
|
@@ -10867,6 +11401,9 @@ var main_SimpleScrollGrid = /** @class */ (function (_super) {
|
|
|
10867
11401
|
var cols = this.processCols(props.cols);
|
|
10868
11402
|
var microColGroupNode = this.renderMicroColGroup(cols, state.shrinkWidth);
|
|
10869
11403
|
var classNames = getScrollGridClassNames(props.liquid, context);
|
|
11404
|
+
if (props.collapsibleWidth) {
|
|
11405
|
+
classNames.push('fc-scrollgrid-collapsible');
|
|
11406
|
+
}
|
|
10870
11407
|
// TODO: make DRY
|
|
10871
11408
|
var configCnt = sectionConfigs.length;
|
|
10872
11409
|
var configI = 0;
|
|
@@ -10875,15 +11412,15 @@ var main_SimpleScrollGrid = /** @class */ (function (_super) {
|
|
|
10875
11412
|
var bodySectionNodes = [];
|
|
10876
11413
|
var footSectionNodes = [];
|
|
10877
11414
|
while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {
|
|
10878
|
-
headSectionNodes.push(this.renderSection(currentConfig,
|
|
11415
|
+
headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));
|
|
10879
11416
|
configI += 1;
|
|
10880
11417
|
}
|
|
10881
11418
|
while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {
|
|
10882
|
-
bodySectionNodes.push(this.renderSection(currentConfig,
|
|
11419
|
+
bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));
|
|
10883
11420
|
configI += 1;
|
|
10884
11421
|
}
|
|
10885
11422
|
while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {
|
|
10886
|
-
footSectionNodes.push(this.renderSection(currentConfig,
|
|
11423
|
+
footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));
|
|
10887
11424
|
configI += 1;
|
|
10888
11425
|
}
|
|
10889
11426
|
// firefox bug: when setting height on table and there is a thead or tfoot,
|
|
@@ -10891,18 +11428,20 @@ var main_SimpleScrollGrid = /** @class */ (function (_super) {
|
|
|
10891
11428
|
// use getCanVGrowWithinCell as a way to detect table-stupid firefox.
|
|
10892
11429
|
// if so, use a simpler dom structure, jam everything into a lone tbody.
|
|
10893
11430
|
var isBuggy = !getCanVGrowWithinCell();
|
|
11431
|
+
var roleAttrs = { role: 'rowgroup' };
|
|
10894
11432
|
return createElement('table', {
|
|
11433
|
+
role: 'grid',
|
|
10895
11434
|
className: classNames.join(' '),
|
|
10896
11435
|
style: { height: props.height },
|
|
10897
|
-
}, Boolean(!isBuggy && headSectionNodes.length) && createElement.apply(void 0,
|
|
11436
|
+
}, 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)));
|
|
10898
11437
|
};
|
|
10899
|
-
SimpleScrollGrid.prototype.renderSection = function (sectionConfig,
|
|
11438
|
+
SimpleScrollGrid.prototype.renderSection = function (sectionConfig, microColGroupNode, isHeader) {
|
|
10900
11439
|
if ('outerContent' in sectionConfig) {
|
|
10901
11440
|
return (createElement(Fragment, { key: sectionConfig.key }, sectionConfig.outerContent));
|
|
10902
11441
|
}
|
|
10903
|
-
return (createElement("tr", { key: sectionConfig.key, className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig,
|
|
11442
|
+
return (createElement("tr", { key: sectionConfig.key, role: "presentation", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));
|
|
10904
11443
|
};
|
|
10905
|
-
SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig,
|
|
11444
|
+
SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig, microColGroupNode, chunkConfig, isHeader) {
|
|
10906
11445
|
if ('outerContent' in chunkConfig) {
|
|
10907
11446
|
return chunkConfig.outerContent;
|
|
10908
11447
|
}
|
|
@@ -10916,25 +11455,29 @@ var main_SimpleScrollGrid = /** @class */ (function (_super) {
|
|
|
10916
11455
|
forceYScrollbars ? 'scroll' :
|
|
10917
11456
|
!needsYScrolling ? 'hidden' :
|
|
10918
11457
|
'auto';
|
|
11458
|
+
var sectionKey = sectionConfig.key;
|
|
10919
11459
|
var content = renderChunkContent(sectionConfig, chunkConfig, {
|
|
10920
11460
|
tableColGroupNode: microColGroupNode,
|
|
10921
11461
|
tableMinWidth: '',
|
|
10922
|
-
clientWidth: scrollerClientWidths[
|
|
10923
|
-
clientHeight: scrollerClientHeights[
|
|
11462
|
+
clientWidth: (!props.collapsibleWidth && scrollerClientWidths[sectionKey] !== undefined) ? scrollerClientWidths[sectionKey] : null,
|
|
11463
|
+
clientHeight: scrollerClientHeights[sectionKey] !== undefined ? scrollerClientHeights[sectionKey] : null,
|
|
10924
11464
|
expandRows: sectionConfig.expandRows,
|
|
10925
11465
|
syncRowHeights: false,
|
|
10926
11466
|
rowSyncHeights: [],
|
|
10927
11467
|
reportRowHeightChange: function () { },
|
|
10928
|
-
});
|
|
10929
|
-
return
|
|
10930
|
-
|
|
10931
|
-
|
|
10932
|
-
|
|
11468
|
+
}, isHeader);
|
|
11469
|
+
return createElement(isHeader ? 'th' : 'td', {
|
|
11470
|
+
ref: chunkConfig.elRef,
|
|
11471
|
+
role: 'presentation',
|
|
11472
|
+
}, createElement("div", { className: "fc-scroller-harness" + (isLiquid ? ' fc-scroller-harness-liquid' : '') },
|
|
11473
|
+
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
|
|
11474
|
+
: true }, content)));
|
|
10933
11475
|
};
|
|
10934
11476
|
SimpleScrollGrid.prototype._handleScrollerEl = function (scrollerEl, key) {
|
|
10935
|
-
var
|
|
10936
|
-
|
|
10937
|
-
|
|
11477
|
+
var section = getSectionByKey(this.props.sections, key);
|
|
11478
|
+
if (section) {
|
|
11479
|
+
setRef(section.chunk.scrollerElRef, scrollerEl);
|
|
11480
|
+
}
|
|
10938
11481
|
};
|
|
10939
11482
|
SimpleScrollGrid.prototype.componentDidMount = function () {
|
|
10940
11483
|
this.handleSizing();
|
|
@@ -10954,26 +11497,27 @@ var main_SimpleScrollGrid = /** @class */ (function (_super) {
|
|
|
10954
11497
|
};
|
|
10955
11498
|
SimpleScrollGrid.prototype.computeScrollerDims = function () {
|
|
10956
11499
|
var scrollbarWidth = getScrollbarWidths();
|
|
10957
|
-
var sectionCnt = this.props.sections.length;
|
|
10958
11500
|
var _a = this, scrollerRefs = _a.scrollerRefs, scrollerElRefs = _a.scrollerElRefs;
|
|
10959
11501
|
var forceYScrollbars = false;
|
|
10960
11502
|
var scrollerClientWidths = {};
|
|
10961
11503
|
var scrollerClientHeights = {};
|
|
10962
|
-
for (var
|
|
10963
|
-
var scroller = scrollerRefs.currentMap[
|
|
11504
|
+
for (var sectionKey in scrollerRefs.currentMap) {
|
|
11505
|
+
var scroller = scrollerRefs.currentMap[sectionKey];
|
|
10964
11506
|
if (scroller && scroller.needsYScrolling()) {
|
|
10965
11507
|
forceYScrollbars = true;
|
|
10966
11508
|
break;
|
|
10967
11509
|
}
|
|
10968
11510
|
}
|
|
10969
|
-
for (var
|
|
10970
|
-
var
|
|
11511
|
+
for (var _i = 0, _b = this.props.sections; _i < _b.length; _i++) {
|
|
11512
|
+
var section = _b[_i];
|
|
11513
|
+
var sectionKey = section.key;
|
|
11514
|
+
var scrollerEl = scrollerElRefs.currentMap[sectionKey];
|
|
10971
11515
|
if (scrollerEl) {
|
|
10972
11516
|
var harnessEl = scrollerEl.parentNode; // TODO: weird way to get this. need harness b/c doesn't include table borders
|
|
10973
|
-
scrollerClientWidths[
|
|
11517
|
+
scrollerClientWidths[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().width - (forceYScrollbars
|
|
10974
11518
|
? scrollbarWidth.y // use global because scroller might not have scrollbars yet but will need them in future
|
|
10975
11519
|
: 0));
|
|
10976
|
-
scrollerClientHeights[
|
|
11520
|
+
scrollerClientHeights[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().height);
|
|
10977
11521
|
}
|
|
10978
11522
|
}
|
|
10979
11523
|
return { forceYScrollbars: forceYScrollbars, scrollerClientWidths: scrollerClientWidths, scrollerClientHeights: scrollerClientHeights };
|
|
@@ -10984,6 +11528,15 @@ main_SimpleScrollGrid.addStateEquality({
|
|
|
10984
11528
|
scrollerClientWidths: isPropsEqual,
|
|
10985
11529
|
scrollerClientHeights: isPropsEqual,
|
|
10986
11530
|
});
|
|
11531
|
+
function getSectionByKey(sections, key) {
|
|
11532
|
+
for (var _i = 0, sections_1 = sections; _i < sections_1.length; _i++) {
|
|
11533
|
+
var section = sections_1[_i];
|
|
11534
|
+
if (section.key === key) {
|
|
11535
|
+
return section;
|
|
11536
|
+
}
|
|
11537
|
+
}
|
|
11538
|
+
return null;
|
|
11539
|
+
}
|
|
10987
11540
|
|
|
10988
11541
|
var main_EventRoot = /** @class */ (function (_super) {
|
|
10989
11542
|
__extends(EventRoot, _super);
|
|
@@ -11047,10 +11600,10 @@ var main_StandardEvent = /** @class */ (function (_super) {
|
|
|
11047
11600
|
var seg = props.seg;
|
|
11048
11601
|
var timeFormat = context.options.eventTimeFormat || props.defaultTimeFormat;
|
|
11049
11602
|
var timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);
|
|
11050
|
-
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: {
|
|
11603
|
+
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: {
|
|
11051
11604
|
borderColor: hookProps.borderColor,
|
|
11052
11605
|
backgroundColor: hookProps.backgroundColor,
|
|
11053
|
-
}, ref: rootElRef }, getSegAnchorAttrs(seg)),
|
|
11606
|
+
}, ref: rootElRef }, getSegAnchorAttrs(seg, context)),
|
|
11054
11607
|
createElement("div", { className: "fc-event-main", ref: innerElRef, style: { color: hookProps.textColor } }, innerContent),
|
|
11055
11608
|
hookProps.isStartResizable &&
|
|
11056
11609
|
createElement("div", { className: "fc-event-resizer fc-event-resizer-start" }),
|
|
@@ -11059,16 +11612,12 @@ var main_StandardEvent = /** @class */ (function (_super) {
|
|
|
11059
11612
|
};
|
|
11060
11613
|
return StandardEvent;
|
|
11061
11614
|
}(main_BaseComponent));
|
|
11062
|
-
function renderInnerContent(innerProps) {
|
|
11615
|
+
function renderInnerContent$1(innerProps) {
|
|
11063
11616
|
return (createElement("div", { className: "fc-event-main-frame" },
|
|
11064
11617
|
innerProps.timeText && (createElement("div", { className: "fc-event-time" }, innerProps.timeText)),
|
|
11065
11618
|
createElement("div", { className: "fc-event-title-container" },
|
|
11066
11619
|
createElement("div", { className: "fc-event-title fc-sticky" }, innerProps.event.title || createElement(Fragment, null, "\u00A0")))));
|
|
11067
11620
|
}
|
|
11068
|
-
function getSegAnchorAttrs(seg) {
|
|
11069
|
-
var url = seg.eventRange.def.url;
|
|
11070
|
-
return url ? { href: url } : {};
|
|
11071
|
-
}
|
|
11072
11621
|
|
|
11073
11622
|
var NowIndicatorRoot = function (props) { return (createElement(ViewContextType.Consumer, null, function (context) {
|
|
11074
11623
|
var options = context.options;
|
|
@@ -11142,10 +11691,10 @@ var main_DayCellRoot = /** @class */ (function (_super) {
|
|
|
11142
11691
|
function renderFill(fillType) {
|
|
11143
11692
|
return (createElement("div", { className: "fc-" + fillType }));
|
|
11144
11693
|
}
|
|
11145
|
-
var BgEvent = function (props) { return (createElement(main_EventRoot, { defaultContent: renderInnerContent
|
|
11694
|
+
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: {
|
|
11146
11695
|
backgroundColor: hookProps.backgroundColor,
|
|
11147
11696
|
} }, innerContent)); })); };
|
|
11148
|
-
function renderInnerContent
|
|
11697
|
+
function renderInnerContent(props) {
|
|
11149
11698
|
var title = props.event.title;
|
|
11150
11699
|
return title && (createElement("div", { className: "fc-event-title" }, props.event.title));
|
|
11151
11700
|
}
|
|
@@ -11157,24 +11706,270 @@ var WeekNumberRoot = function (props) { return (createElement(ViewContextType.Co
|
|
|
11157
11706
|
var num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?
|
|
11158
11707
|
var text = dateEnv.format(date, format);
|
|
11159
11708
|
var hookProps = { num: num, text: text, date: date };
|
|
11160
|
-
return (createElement(main_RenderHook, { hookProps: hookProps, classNames: options.weekNumberClassNames, content: options.weekNumberContent, defaultContent: renderInner
|
|
11709
|
+
return (createElement(main_RenderHook, { hookProps: hookProps, classNames: options.weekNumberClassNames, content: options.weekNumberContent, defaultContent: renderInner, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount }, props.children));
|
|
11161
11710
|
})); };
|
|
11162
|
-
function renderInner
|
|
11711
|
+
function renderInner(innerProps) {
|
|
11163
11712
|
return innerProps.text;
|
|
11164
11713
|
}
|
|
11165
11714
|
|
|
11715
|
+
var PADDING_FROM_VIEWPORT = 10;
|
|
11716
|
+
var main_Popover = /** @class */ (function (_super) {
|
|
11717
|
+
__extends(Popover, _super);
|
|
11718
|
+
function Popover() {
|
|
11719
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
11720
|
+
_this.state = {
|
|
11721
|
+
titleId: getUniqueDomId(),
|
|
11722
|
+
};
|
|
11723
|
+
_this.handleRootEl = function (el) {
|
|
11724
|
+
_this.rootEl = el;
|
|
11725
|
+
if (_this.props.elRef) {
|
|
11726
|
+
setRef(_this.props.elRef, el);
|
|
11727
|
+
}
|
|
11728
|
+
};
|
|
11729
|
+
// Triggered when the user clicks *anywhere* in the document, for the autoHide feature
|
|
11730
|
+
_this.handleDocumentMouseDown = function (ev) {
|
|
11731
|
+
// only hide the popover if the click happened outside the popover
|
|
11732
|
+
var target = getEventTargetViaRoot(ev);
|
|
11733
|
+
if (!_this.rootEl.contains(target)) {
|
|
11734
|
+
_this.handleCloseClick();
|
|
11735
|
+
}
|
|
11736
|
+
};
|
|
11737
|
+
_this.handleDocumentKeyDown = function (ev) {
|
|
11738
|
+
if (ev.key === 'Escape') {
|
|
11739
|
+
_this.handleCloseClick();
|
|
11740
|
+
}
|
|
11741
|
+
};
|
|
11742
|
+
_this.handleCloseClick = function () {
|
|
11743
|
+
var onClose = _this.props.onClose;
|
|
11744
|
+
if (onClose) {
|
|
11745
|
+
onClose();
|
|
11746
|
+
}
|
|
11747
|
+
};
|
|
11748
|
+
return _this;
|
|
11749
|
+
}
|
|
11750
|
+
Popover.prototype.render = function () {
|
|
11751
|
+
var _a = this.context, theme = _a.theme, options = _a.options;
|
|
11752
|
+
var _b = this, props = _b.props, state = _b.state;
|
|
11753
|
+
var classNames = [
|
|
11754
|
+
'fc-popover',
|
|
11755
|
+
theme.getClass('popover'),
|
|
11756
|
+
].concat(props.extraClassNames || []);
|
|
11757
|
+
return createPortal(createElement("div", __assign({ id: props.id, className: classNames.join(' '), "aria-labelledby": state.titleId }, props.extraAttrs, { ref: this.handleRootEl }),
|
|
11758
|
+
createElement("div", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },
|
|
11759
|
+
createElement("span", { className: "fc-popover-title", id: state.titleId }, props.title),
|
|
11760
|
+
createElement("span", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),
|
|
11761
|
+
createElement("div", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);
|
|
11762
|
+
};
|
|
11763
|
+
Popover.prototype.componentDidMount = function () {
|
|
11764
|
+
document.addEventListener('mousedown', this.handleDocumentMouseDown);
|
|
11765
|
+
document.addEventListener('keydown', this.handleDocumentKeyDown);
|
|
11766
|
+
this.updateSize();
|
|
11767
|
+
};
|
|
11768
|
+
Popover.prototype.componentWillUnmount = function () {
|
|
11769
|
+
document.removeEventListener('mousedown', this.handleDocumentMouseDown);
|
|
11770
|
+
document.removeEventListener('keydown', this.handleDocumentKeyDown);
|
|
11771
|
+
};
|
|
11772
|
+
Popover.prototype.updateSize = function () {
|
|
11773
|
+
var isRtl = this.context.isRtl;
|
|
11774
|
+
var _a = this.props, alignmentEl = _a.alignmentEl, alignGridTop = _a.alignGridTop;
|
|
11775
|
+
var rootEl = this.rootEl;
|
|
11776
|
+
var alignmentRect = computeClippedClientRect(alignmentEl);
|
|
11777
|
+
if (alignmentRect) {
|
|
11778
|
+
var popoverDims = rootEl.getBoundingClientRect();
|
|
11779
|
+
// position relative to viewport
|
|
11780
|
+
var popoverTop = alignGridTop
|
|
11781
|
+
? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top
|
|
11782
|
+
: alignmentRect.top;
|
|
11783
|
+
var popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left;
|
|
11784
|
+
// constrain
|
|
11785
|
+
popoverTop = Math.max(popoverTop, PADDING_FROM_VIEWPORT);
|
|
11786
|
+
popoverLeft = Math.min(popoverLeft, document.documentElement.clientWidth - PADDING_FROM_VIEWPORT - popoverDims.width);
|
|
11787
|
+
popoverLeft = Math.max(popoverLeft, PADDING_FROM_VIEWPORT);
|
|
11788
|
+
var origin_1 = rootEl.offsetParent.getBoundingClientRect();
|
|
11789
|
+
applyStyle(rootEl, {
|
|
11790
|
+
top: popoverTop - origin_1.top,
|
|
11791
|
+
left: popoverLeft - origin_1.left,
|
|
11792
|
+
});
|
|
11793
|
+
}
|
|
11794
|
+
};
|
|
11795
|
+
return Popover;
|
|
11796
|
+
}(main_BaseComponent));
|
|
11797
|
+
|
|
11798
|
+
var main_MorePopover = /** @class */ (function (_super) {
|
|
11799
|
+
__extends(MorePopover, _super);
|
|
11800
|
+
function MorePopover() {
|
|
11801
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
11802
|
+
_this.handleRootEl = function (rootEl) {
|
|
11803
|
+
_this.rootEl = rootEl;
|
|
11804
|
+
if (rootEl) {
|
|
11805
|
+
_this.context.registerInteractiveComponent(_this, {
|
|
11806
|
+
el: rootEl,
|
|
11807
|
+
useEventCenter: false,
|
|
11808
|
+
});
|
|
11809
|
+
}
|
|
11810
|
+
else {
|
|
11811
|
+
_this.context.unregisterInteractiveComponent(_this);
|
|
11812
|
+
}
|
|
11813
|
+
};
|
|
11814
|
+
return _this;
|
|
11815
|
+
}
|
|
11816
|
+
MorePopover.prototype.render = function () {
|
|
11817
|
+
var _a = this.context, options = _a.options, dateEnv = _a.dateEnv;
|
|
11818
|
+
var props = this.props;
|
|
11819
|
+
var startDate = props.startDate, todayRange = props.todayRange, dateProfile = props.dateProfile;
|
|
11820
|
+
var title = dateEnv.format(startDate, options.dayPopoverFormat);
|
|
11821
|
+
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 },
|
|
11822
|
+
createElement(main_DayCellContent, { date: startDate, dateProfile: dateProfile, todayRange: todayRange }, function (innerElRef, innerContent) { return (innerContent &&
|
|
11823
|
+
createElement("div", { className: "fc-more-popover-misc", ref: innerElRef }, innerContent)); }),
|
|
11824
|
+
props.children)); }));
|
|
11825
|
+
};
|
|
11826
|
+
MorePopover.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {
|
|
11827
|
+
var _a = this, rootEl = _a.rootEl, props = _a.props;
|
|
11828
|
+
if (positionLeft >= 0 && positionLeft < elWidth &&
|
|
11829
|
+
positionTop >= 0 && positionTop < elHeight) {
|
|
11830
|
+
return {
|
|
11831
|
+
dateProfile: props.dateProfile,
|
|
11832
|
+
dateSpan: __assign({ allDay: true, range: {
|
|
11833
|
+
start: props.startDate,
|
|
11834
|
+
end: props.endDate,
|
|
11835
|
+
} }, props.extraDateSpan),
|
|
11836
|
+
dayEl: rootEl,
|
|
11837
|
+
rect: {
|
|
11838
|
+
left: 0,
|
|
11839
|
+
top: 0,
|
|
11840
|
+
right: elWidth,
|
|
11841
|
+
bottom: elHeight,
|
|
11842
|
+
},
|
|
11843
|
+
layer: 1, // important when comparing with hits from other components
|
|
11844
|
+
};
|
|
11845
|
+
}
|
|
11846
|
+
return null;
|
|
11847
|
+
};
|
|
11848
|
+
return MorePopover;
|
|
11849
|
+
}(main_DateComponent));
|
|
11850
|
+
|
|
11851
|
+
var main_MoreLinkRoot = /** @class */ (function (_super) {
|
|
11852
|
+
__extends(MoreLinkRoot, _super);
|
|
11853
|
+
function MoreLinkRoot() {
|
|
11854
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
11855
|
+
_this.linkElRef = createRef();
|
|
11856
|
+
_this.state = {
|
|
11857
|
+
isPopoverOpen: false,
|
|
11858
|
+
popoverId: getUniqueDomId(),
|
|
11859
|
+
};
|
|
11860
|
+
_this.handleClick = function (ev) {
|
|
11861
|
+
var _a = _this, props = _a.props, context = _a.context;
|
|
11862
|
+
var moreLinkClick = context.options.moreLinkClick;
|
|
11863
|
+
var date = computeRange(props).start;
|
|
11864
|
+
function buildPublicSeg(seg) {
|
|
11865
|
+
var _a = seg.eventRange, def = _a.def, instance = _a.instance, range = _a.range;
|
|
11866
|
+
return {
|
|
11867
|
+
event: new main_EventApi(context, def, instance),
|
|
11868
|
+
start: context.dateEnv.toDate(range.start),
|
|
11869
|
+
end: context.dateEnv.toDate(range.end),
|
|
11870
|
+
isStart: seg.isStart,
|
|
11871
|
+
isEnd: seg.isEnd,
|
|
11872
|
+
};
|
|
11873
|
+
}
|
|
11874
|
+
if (typeof moreLinkClick === 'function') {
|
|
11875
|
+
moreLinkClick = moreLinkClick({
|
|
11876
|
+
date: date,
|
|
11877
|
+
allDay: Boolean(props.allDayDate),
|
|
11878
|
+
allSegs: props.allSegs.map(buildPublicSeg),
|
|
11879
|
+
hiddenSegs: props.hiddenSegs.map(buildPublicSeg),
|
|
11880
|
+
jsEvent: ev,
|
|
11881
|
+
view: context.viewApi,
|
|
11882
|
+
});
|
|
11883
|
+
}
|
|
11884
|
+
if (!moreLinkClick || moreLinkClick === 'popover') {
|
|
11885
|
+
_this.setState({ isPopoverOpen: true });
|
|
11886
|
+
}
|
|
11887
|
+
else if (typeof moreLinkClick === 'string') { // a view name
|
|
11888
|
+
context.calendarApi.zoomTo(date, moreLinkClick);
|
|
11889
|
+
}
|
|
11890
|
+
};
|
|
11891
|
+
_this.handlePopoverClose = function () {
|
|
11892
|
+
_this.setState({ isPopoverOpen: false });
|
|
11893
|
+
};
|
|
11894
|
+
return _this;
|
|
11895
|
+
}
|
|
11896
|
+
MoreLinkRoot.prototype.render = function () {
|
|
11897
|
+
var _this = this;
|
|
11898
|
+
var _a = this, props = _a.props, state = _a.state;
|
|
11899
|
+
return (createElement(ViewContextType.Consumer, null, function (context) {
|
|
11900
|
+
var viewApi = context.viewApi, options = context.options, calendarApi = context.calendarApi;
|
|
11901
|
+
var moreLinkText = options.moreLinkText;
|
|
11902
|
+
var moreCnt = props.moreCnt;
|
|
11903
|
+
var range = computeRange(props);
|
|
11904
|
+
var text = typeof moreLinkText === 'function' // TODO: eventually use formatWithOrdinals
|
|
11905
|
+
? moreLinkText.call(calendarApi, moreCnt)
|
|
11906
|
+
: "+" + moreCnt + " " + moreLinkText;
|
|
11907
|
+
var title = formatWithOrdinals(options.moreLinkHint, [moreCnt], text);
|
|
11908
|
+
var hookProps = {
|
|
11909
|
+
num: moreCnt,
|
|
11910
|
+
shortText: "+" + moreCnt,
|
|
11911
|
+
text: text,
|
|
11912
|
+
view: viewApi,
|
|
11913
|
+
};
|
|
11914
|
+
return (createElement(Fragment, null,
|
|
11915
|
+
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 : ''); })),
|
|
11916
|
+
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()))));
|
|
11917
|
+
}));
|
|
11918
|
+
};
|
|
11919
|
+
MoreLinkRoot.prototype.componentDidMount = function () {
|
|
11920
|
+
this.updateParentEl();
|
|
11921
|
+
};
|
|
11922
|
+
MoreLinkRoot.prototype.componentDidUpdate = function () {
|
|
11923
|
+
this.updateParentEl();
|
|
11924
|
+
};
|
|
11925
|
+
MoreLinkRoot.prototype.updateParentEl = function () {
|
|
11926
|
+
if (this.linkElRef.current) {
|
|
11927
|
+
this.parentEl = elementClosest(this.linkElRef.current, '.fc-view-harness');
|
|
11928
|
+
}
|
|
11929
|
+
};
|
|
11930
|
+
return MoreLinkRoot;
|
|
11931
|
+
}(main_BaseComponent));
|
|
11932
|
+
function renderMoreLinkInner(props) {
|
|
11933
|
+
return props.text;
|
|
11934
|
+
}
|
|
11935
|
+
function computeRange(props) {
|
|
11936
|
+
if (props.allDayDate) {
|
|
11937
|
+
return {
|
|
11938
|
+
start: props.allDayDate,
|
|
11939
|
+
end: addDays(props.allDayDate, 1),
|
|
11940
|
+
};
|
|
11941
|
+
}
|
|
11942
|
+
var hiddenSegs = props.hiddenSegs;
|
|
11943
|
+
return {
|
|
11944
|
+
start: computeEarliestSegStart(hiddenSegs),
|
|
11945
|
+
end: computeLatestSegEnd(hiddenSegs),
|
|
11946
|
+
};
|
|
11947
|
+
}
|
|
11948
|
+
function computeEarliestSegStart(segs) {
|
|
11949
|
+
return segs.reduce(pickEarliestStart).eventRange.range.start;
|
|
11950
|
+
}
|
|
11951
|
+
function pickEarliestStart(seg0, seg1) {
|
|
11952
|
+
return seg0.eventRange.range.start < seg1.eventRange.range.start ? seg0 : seg1;
|
|
11953
|
+
}
|
|
11954
|
+
function computeLatestSegEnd(segs) {
|
|
11955
|
+
return segs.reduce(pickLatestEnd).eventRange.range.end;
|
|
11956
|
+
}
|
|
11957
|
+
function pickLatestEnd(seg0, seg1) {
|
|
11958
|
+
return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;
|
|
11959
|
+
}
|
|
11960
|
+
|
|
11166
11961
|
// exports
|
|
11167
11962
|
// --------------------------------------------------------------------------------------------------
|
|
11168
|
-
var version = '5.
|
|
11963
|
+
var version = '5.10.1'; // important to type it, so .d.ts has generic string
|
|
11169
11964
|
|
|
11170
11965
|
|
|
11171
11966
|
//# sourceMappingURL=main.js.map
|
|
11172
11967
|
|
|
11173
11968
|
// CONCATENATED MODULE: ./node_modules/@fullcalendar/core/main.js
|
|
11174
11969
|
/*!
|
|
11175
|
-
FullCalendar v5.
|
|
11970
|
+
FullCalendar v5.10.1
|
|
11176
11971
|
Docs & License: https://fullcalendar.io/
|
|
11177
|
-
(c)
|
|
11972
|
+
(c) 2021 Adam Shaw
|
|
11178
11973
|
*/
|
|
11179
11974
|
|
|
11180
11975
|
|
|
@@ -11303,6 +12098,7 @@ var main_Calendar = /** @class */ (function (_super) {
|
|
|
11303
12098
|
|
|
11304
12099
|
|
|
11305
12100
|
|
|
12101
|
+
|
|
11306
12102
|
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; }
|
|
11307
12103
|
|
|
11308
12104
|
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; }
|