@sme.up/ketchup 10.3.1 → 10.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{component-cb3b32f5.js → component-a6dd6c14.js} +1 -1
- package/dist/cjs/{f-cell-be0c55ac.js → f-cell-7a2faf7a.js} +8 -6
- package/dist/cjs/{f-chip-dc085b9b.js → f-chip-f2d6124b.js} +1 -1
- package/dist/cjs/{f-object-field-96e1c599.js → f-object-field-3810f288.js} +2 -2
- package/dist/cjs/{f-paginator-utils-3f233ebe.js → f-paginator-utils-3855e84c.js} +1 -1
- package/dist/cjs/{f-text-field-d91ab1e8.js → f-text-field-a34a5979.js} +2 -2
- package/dist/cjs/{f-text-field-mdc-2a3c8c01.js → f-text-field-mdc-29aae9c9.js} +1 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/ketchup.cjs.js +1 -1
- package/dist/cjs/kup-accordion.cjs.entry.js +247 -44
- package/dist/cjs/kup-activity-timeline.cjs.entry.js +2 -2
- package/dist/cjs/kup-autocomplete_29.cjs.entry.js +927 -894
- package/dist/cjs/kup-box.cjs.entry.js +9 -9
- package/dist/cjs/kup-calendar.cjs.entry.js +925 -87
- package/dist/cjs/kup-card-list.cjs.entry.js +1 -1
- package/dist/cjs/kup-cell.cjs.entry.js +5 -5
- package/dist/cjs/kup-dashboard.cjs.entry.js +4 -4
- package/dist/cjs/{kup-data-table-helper-ff263f4f.js → kup-data-table-helper-f53032e7.js} +1 -1
- package/dist/cjs/kup-drawer.cjs.entry.js +1 -1
- package/dist/cjs/kup-echart.cjs.entry.js +5 -4
- package/dist/cjs/kup-editor.cjs.entry.js +3 -3
- package/dist/cjs/kup-family-tree.cjs.entry.js +1 -1
- package/dist/cjs/kup-grid.cjs.entry.js +1 -1
- package/dist/cjs/kup-htm.cjs.entry.js +1 -1
- package/dist/cjs/kup-iframe.cjs.entry.js +1 -1
- package/dist/cjs/kup-image-list.cjs.entry.js +6 -6
- package/dist/cjs/kup-input-panel.cjs.entry.js +58 -31
- package/dist/cjs/kup-lazy.cjs.entry.js +1 -1
- package/dist/cjs/kup-magic-box.cjs.entry.js +1 -1
- package/dist/cjs/{kup-manager-ecc44384.js → kup-manager-c70d3188.js} +122 -24
- package/dist/cjs/kup-nav-bar.cjs.entry.js +1 -1
- package/dist/cjs/kup-numeric-picker.cjs.entry.js +4 -4
- package/dist/cjs/kup-object-field.cjs.entry.js +3 -3
- package/dist/cjs/kup-pdf.cjs.entry.js +1 -1
- package/dist/cjs/kup-planner.cjs.entry.js +4 -4
- package/dist/cjs/kup-probe.cjs.entry.js +1 -1
- package/dist/cjs/kup-qlik.cjs.entry.js +1 -1
- package/dist/cjs/kup-snackbar.cjs.entry.js +1 -1
- package/dist/cjs/kup-txt.cjs.entry.js +1 -1
- package/dist/cjs/kup-typography-list.cjs.entry.js +1 -1
- package/dist/cjs/kup-typography.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/assets/accordion.js +73 -18
- package/dist/collection/assets/dashboard.js +3 -9
- package/dist/collection/components/kup-accordion/kup-accordion-declarations.js +6 -1
- package/dist/collection/components/kup-accordion/kup-accordion.css +10 -2
- package/dist/collection/components/kup-accordion/kup-accordion.js +432 -54
- package/dist/collection/components/kup-autocomplete/kup-autocomplete-declarations.js +2 -0
- package/dist/collection/components/kup-autocomplete/kup-autocomplete.js +44 -28
- package/dist/collection/components/kup-calendar/kup-calendar.css +13 -0
- package/dist/collection/components/kup-card/built-in/kup-card-column-drop-menu.js +3 -3
- package/dist/collection/components/kup-card/kup-card-helper.js +3 -2
- package/dist/collection/components/kup-card/kup-card.css +16 -0
- package/dist/collection/components/kup-card/standard/kup-card-standard.js +10 -3
- package/dist/collection/components/kup-chip/kup-chip.js +5 -5
- package/dist/collection/components/kup-combobox/kup-combobox-declarations.js +1 -0
- package/dist/collection/components/kup-combobox/kup-combobox.js +37 -2
- package/dist/collection/components/kup-data-table/kup-data-table.js +45 -46
- package/dist/collection/components/kup-date-picker/kup-date-picker.js +1 -1
- package/dist/collection/components/kup-echart/kup-echart.js +4 -3
- package/dist/collection/components/kup-input-panel/kup-input-panel-declarations.js +1 -0
- package/dist/collection/components/kup-input-panel/kup-input-panel-utils.js +20 -14
- package/dist/collection/components/kup-input-panel/kup-input-panel.js +53 -13
- package/dist/collection/components/kup-tab-bar/kup-tab-bar-declarations.js +4 -0
- package/dist/collection/components/kup-tab-bar/kup-tab-bar.js +26 -43
- package/dist/collection/components/kup-toolbar/kup-toolbar.css +17 -6
- package/dist/collection/components/kup-tree/kup-tree.js +7 -10
- package/dist/collection/f-components/f-cell/f-cell.js +2 -1
- package/dist/collection/f-components/f-radio/f-radio.js +1 -1
- package/dist/collection/f-components/f-text-field/f-text-field.js +1 -1
- package/dist/collection/managers/kup-data/kup-data.js +2 -0
- package/dist/collection/managers/kup-dynamic-position/kup-dynamic-position.js +45 -1
- package/dist/collection/managers/kup-language/kup-language-declarations.js +2 -0
- package/dist/collection/managers/kup-manager/kup-manager.js +3 -2
- package/dist/collection/managers/kup-perf-tuning/kup-perf-tuning-declarations.js +1 -0
- package/dist/collection/managers/kup-perf-tuning/kup-perf-tuning.js +25 -0
- package/dist/collection/utils/cell-utils.js +21 -0
- package/dist/components/index.js +1 -1
- package/dist/components/kup-accordion.js +253 -45
- package/dist/components/kup-activity-timeline.js +2 -2
- package/dist/components/kup-autocomplete.js +1 -1
- package/dist/components/kup-badge.js +1 -1
- package/dist/components/kup-box.js +1 -1
- package/dist/components/kup-button-list.js +1 -1
- package/dist/components/kup-button.js +1 -1
- package/dist/components/kup-calendar.js +925 -87
- package/dist/components/kup-card-list.js +3 -3
- package/dist/components/kup-card.js +1 -1
- package/dist/components/kup-cell.js +2 -2
- package/dist/components/kup-chart.js +1 -1
- package/dist/components/kup-checkbox.js +1 -1
- package/dist/components/kup-chip.js +1 -1
- package/dist/components/kup-color-picker.js +1 -1
- package/dist/components/kup-combobox.js +1 -1
- package/dist/components/kup-dashboard.js +2 -2
- package/dist/components/kup-data-table.js +1 -1
- package/dist/components/kup-date-picker.js +1 -1
- package/dist/components/kup-dialog.js +1 -1
- package/dist/components/kup-drawer.js +2 -2
- package/dist/components/kup-dropdown-button.js +1 -1
- package/dist/components/kup-echart.js +1 -1
- package/dist/components/kup-editor.js +1 -1
- package/dist/components/kup-family-tree.js +3 -3
- package/dist/components/kup-file-upload.js +1 -1
- package/dist/components/kup-form.js +1 -1
- package/dist/components/kup-gauge.js +1 -1
- package/dist/components/kup-grid.js +1 -1
- package/dist/components/kup-htm.js +2 -2
- package/dist/components/kup-iframe.js +2 -2
- package/dist/components/kup-image-list.js +2 -2
- package/dist/components/kup-image.js +1 -1
- package/dist/components/kup-input-panel.js +55 -27
- package/dist/components/kup-lazy.js +2 -2
- package/dist/components/kup-list.js +1 -1
- package/dist/components/kup-magic-box.js +4 -4
- package/dist/components/kup-nav-bar.js +2 -2
- package/dist/components/kup-numeric-picker.js +2 -2
- package/dist/components/kup-object-field.js +2 -2
- package/dist/components/kup-pdf.js +2 -2
- package/dist/components/kup-planner.js +2 -2
- package/dist/components/kup-probe.js +2 -2
- package/dist/components/kup-progress-bar.js +1 -1
- package/dist/components/kup-qlik.js +2 -2
- package/dist/components/kup-radio.js +1 -1
- package/dist/components/kup-rating.js +1 -1
- package/dist/components/kup-snackbar.js +2 -2
- package/dist/components/kup-spinner.js +1 -1
- package/dist/components/kup-switch.js +1 -1
- package/dist/components/kup-tab-bar.js +1 -1
- package/dist/components/kup-text-field.js +1 -1
- package/dist/components/kup-time-picker.js +1 -1
- package/dist/components/kup-toolbar.js +1 -1
- package/dist/components/kup-tree.js +1 -1
- package/dist/components/kup-txt.js +2 -2
- package/dist/components/kup-typography-list.js +2 -2
- package/dist/components/kup-typography.js +2 -2
- package/dist/components/{p-680ee680.js → p-286915d4.js} +2 -2
- package/dist/components/{p-685106b4.js → p-3ba7c133.js} +2 -2
- package/dist/components/{p-e0031e17.js → p-55fda958.js} +2025 -1983
- package/dist/components/{p-8037ef07.js → p-7bdb5142.js} +4 -4
- package/dist/components/{p-73922583.js → p-9859e801.js} +122 -25
- package/dist/components/{p-39e807bc.js → p-a22e5ee4.js} +6 -5
- package/dist/esm/{component-879e99bf.js → component-a35bc7f1.js} +1 -1
- package/dist/esm/{f-cell-eea4e836.js → f-cell-ae0c965d.js} +8 -6
- package/dist/esm/{f-chip-72bcea75.js → f-chip-29242e70.js} +1 -1
- package/dist/esm/{f-object-field-1827746c.js → f-object-field-75069ac2.js} +2 -2
- package/dist/esm/{f-paginator-utils-e785d34e.js → f-paginator-utils-212f93c3.js} +1 -1
- package/dist/esm/{f-text-field-591dc383.js → f-text-field-ebe023fb.js} +2 -2
- package/dist/esm/{f-text-field-mdc-9a862967.js → f-text-field-mdc-81ce6c7c.js} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/ketchup.js +1 -1
- package/dist/esm/kup-accordion.entry.js +247 -44
- package/dist/esm/kup-activity-timeline.entry.js +2 -2
- package/dist/esm/kup-autocomplete_29.entry.js +164 -131
- package/dist/esm/kup-box.entry.js +9 -9
- package/dist/esm/kup-calendar.entry.js +925 -87
- package/dist/esm/kup-card-list.entry.js +1 -1
- package/dist/esm/kup-cell.entry.js +5 -5
- package/dist/esm/kup-dashboard.entry.js +4 -4
- package/dist/esm/{kup-data-table-helper-0fbe9df1.js → kup-data-table-helper-ca11e6e9.js} +1 -1
- package/dist/esm/kup-drawer.entry.js +1 -1
- package/dist/esm/kup-echart.entry.js +5 -4
- package/dist/esm/kup-editor.entry.js +3 -3
- package/dist/esm/kup-family-tree.entry.js +1 -1
- package/dist/esm/kup-grid.entry.js +1 -1
- package/dist/esm/kup-htm.entry.js +1 -1
- package/dist/esm/kup-iframe.entry.js +1 -1
- package/dist/esm/kup-image-list.entry.js +6 -6
- package/dist/esm/kup-input-panel.entry.js +58 -31
- package/dist/esm/kup-lazy.entry.js +1 -1
- package/dist/esm/kup-magic-box.entry.js +1 -1
- package/dist/esm/{kup-manager-a3f8ee8f.js → kup-manager-63a8048f.js} +122 -25
- package/dist/esm/kup-nav-bar.entry.js +1 -1
- package/dist/esm/kup-numeric-picker.entry.js +4 -4
- package/dist/esm/kup-object-field.entry.js +3 -3
- package/dist/esm/kup-pdf.entry.js +1 -1
- package/dist/esm/kup-planner.entry.js +4 -4
- package/dist/esm/kup-probe.entry.js +1 -1
- package/dist/esm/kup-qlik.entry.js +1 -1
- package/dist/esm/kup-snackbar.entry.js +1 -1
- package/dist/esm/kup-txt.entry.js +1 -1
- package/dist/esm/kup-typography-list.entry.js +1 -1
- package/dist/esm/kup-typography.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/ketchup/index.esm.js +1 -1
- package/dist/ketchup/ketchup.esm.js +1 -1
- package/dist/ketchup/p-102d35b1.js +1 -0
- package/dist/ketchup/p-11e54526.entry.js +1 -0
- package/dist/ketchup/{p-5e55604b.entry.js → p-260587c5.entry.js} +1 -1
- package/dist/ketchup/p-3533879b.entry.js +1 -0
- package/dist/ketchup/{p-8cf7b4a6.entry.js → p-434f2c39.entry.js} +1 -1
- package/dist/ketchup/{p-cd5db3b1.entry.js → p-4365fbd3.entry.js} +1 -1
- package/dist/ketchup/p-43f12940.entry.js +1 -0
- package/dist/ketchup/{p-442a16b1.entry.js → p-4a64f9f2.entry.js} +1 -1
- package/dist/ketchup/{p-64e064f0.js → p-4cfa35bc.js} +1 -1
- package/dist/ketchup/{p-d2e3f987.entry.js → p-5bf3d60d.entry.js} +2 -2
- package/dist/ketchup/p-5d28e8e0.entry.js +8 -0
- package/dist/ketchup/{p-932940cb.js → p-610faea9.js} +1 -1
- package/dist/ketchup/{p-2faa7118.entry.js → p-6c41cd20.entry.js} +1 -1
- package/dist/ketchup/{p-dcf2c5c0.entry.js → p-6f1dec16.entry.js} +1 -1
- package/dist/ketchup/{p-f1886258.js → p-7375d456.js} +1 -1
- package/dist/ketchup/{p-2f0664cb.entry.js → p-7b326bde.entry.js} +1 -1
- package/dist/ketchup/{p-c4054aba.js → p-7db300e0.js} +1 -1
- package/dist/ketchup/{p-36ec5bc3.entry.js → p-7dfc42f0.entry.js} +1 -1
- package/dist/ketchup/p-81743364.entry.js +1 -0
- package/dist/ketchup/p-8610d5b5.js +21 -0
- package/dist/ketchup/{p-beef4fe9.entry.js → p-8ba1d444.entry.js} +1 -1
- package/dist/ketchup/{p-a4168ce9.entry.js → p-93541362.entry.js} +1 -1
- package/dist/ketchup/{p-ee0836a4.entry.js → p-9b200a90.entry.js} +1 -1
- package/dist/ketchup/{p-43dc9f87.entry.js → p-9baa1d6d.entry.js} +1 -1
- package/dist/ketchup/{p-57a93686.entry.js → p-a2d40711.entry.js} +1 -1
- package/dist/ketchup/{p-0f9ae966.entry.js → p-b068a383.entry.js} +1 -1
- package/dist/ketchup/{p-2c11b778.entry.js → p-b6beace3.entry.js} +1 -1
- package/dist/ketchup/{p-5340f777.entry.js → p-b91e3bae.entry.js} +1 -1
- package/dist/ketchup/{p-4c5b911e.entry.js → p-bc789017.entry.js} +1 -1
- package/dist/ketchup/{p-79e580bc.entry.js → p-c8cd012e.entry.js} +1 -1
- package/dist/ketchup/{p-d9ae70bb.entry.js → p-d84e4e90.entry.js} +1 -1
- package/dist/ketchup/{p-d1fa33e0.js → p-da694791.js} +1 -1
- package/dist/ketchup/{p-8140c1d2.js → p-e705eb4a.js} +1 -1
- package/dist/ketchup/{p-21a2d25a.entry.js → p-e7293ae8.entry.js} +1 -1
- package/dist/ketchup/{p-283f7bfc.entry.js → p-eb090acd.entry.js} +1 -1
- package/dist/ketchup/{p-d03527d8.entry.js → p-fb7c0958.entry.js} +1 -1
- package/dist/ketchup/p-fb82cad9.entry.js +1 -0
- package/dist/ketchup/{p-6fe57b1a.entry.js → p-fe42ae2d.entry.js} +1 -1
- package/dist/types/components/kup-accordion/kup-accordion-declarations.d.ts +14 -7
- package/dist/types/components/kup-accordion/kup-accordion.d.ts +62 -6
- package/dist/types/components/kup-autocomplete/kup-autocomplete-declarations.d.ts +3 -1
- package/dist/types/components/kup-autocomplete/kup-autocomplete.d.ts +7 -2
- package/dist/types/components/kup-card/kup-card-declarations.d.ts +1 -1
- package/dist/types/components/kup-card/kup-card-helper.d.ts +2 -1
- package/dist/types/components/kup-combobox/kup-combobox-declarations.d.ts +2 -1
- package/dist/types/components/kup-combobox/kup-combobox.d.ts +5 -0
- package/dist/types/components/kup-input-panel/kup-input-panel-declarations.d.ts +2 -1
- package/dist/types/components/kup-input-panel/kup-input-panel-utils.d.ts +1 -1
- package/dist/types/components/kup-input-panel/kup-input-panel.d.ts +6 -0
- package/dist/types/components/kup-tab-bar/kup-tab-bar-declarations.d.ts +6 -1
- package/dist/types/components/kup-tab-bar/kup-tab-bar.d.ts +1 -5
- package/dist/types/components.d.ts +86 -21
- package/dist/types/f-components/f-radio/f-radio-declarations.d.ts +1 -0
- package/dist/types/managers/kup-dynamic-position/kup-dynamic-position.d.ts +1 -0
- package/dist/types/managers/kup-language/kup-language-declarations.d.ts +3 -1
- package/dist/types/managers/kup-perf-tuning/kup-perf-tuning-declarations.d.ts +3 -1
- package/dist/types/managers/kup-perf-tuning/kup-perf-tuning.d.ts +1 -0
- package/dist/types/utils/cell-utils.d.ts +2 -0
- package/package.json +2 -2
- package/dist/ketchup/p-0eea54ac.js +0 -1
- package/dist/ketchup/p-1a9fb6e7.entry.js +0 -1
- package/dist/ketchup/p-32a6feed.entry.js +0 -9
- package/dist/ketchup/p-4c16edda.entry.js +0 -1
- package/dist/ketchup/p-e1281898.entry.js +0 -1
- package/dist/ketchup/p-ec86f88f.entry.js +0 -1
- package/dist/ketchup/p-fb4f10d5.js +0 -21
- package/dist/ketchup/p-fc750bff.entry.js +0 -1
- /package/dist/ketchup/{p-d4a879fc.js → p-c56195a0.js} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, f as forceUpdate, h as h$1, H as Host, d as getElement } from './index-9b0f4a0d.js';
|
|
2
|
-
import { k as kupManagerInstance, g as getProps, s as setProps,
|
|
2
|
+
import { k as kupManagerInstance, g as getProps, s as setProps, b as KupLanguageGeneric, x as getColumnByName, h as KupDebugCategory } from './kup-manager-63a8048f.js';
|
|
3
3
|
import { c as componentWrapperId } from './GenericVariables-d8d0541e.js';
|
|
4
4
|
import { F as FButton } from './f-button-3c8f4506.js';
|
|
5
|
-
import { d as FChip, F as FChipType } from './f-chip-
|
|
5
|
+
import { d as FChip, F as FChipType } from './f-chip-29242e70.js';
|
|
6
6
|
import { b as KupDatesLocales, K as KupDatesFormats } from './kup-dates-da19044e.js';
|
|
7
7
|
import './f-button-declarations-6c8f8abe.js';
|
|
8
8
|
import './f-image-a2ecd7c3.js';
|
|
@@ -93,8 +93,8 @@ if (typeof document !== 'undefined') {
|
|
|
93
93
|
registerStylesRoot(document);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
var css_248z$3 = ":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.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 var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,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\") format(\"truetype\")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-moz-user-select:none;user-select:none;width:1em}.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;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.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{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{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{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.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){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.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{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.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 var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-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:var(--fc-page-bg-color);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{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}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{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{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:\"\";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:\"\";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.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:calc(var(--fc-event-resizer-thickness)*-.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:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.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:calc(var(--fc-event-resizer-dot-total-width)*-.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:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}";
|
|
97
|
-
injectStyles(css_248z$
|
|
96
|
+
var css_248z$4 = ":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.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 var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\"data:application/x-font-ttf;charset=utf-8;base64,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\") format(\"truetype\")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-moz-user-select:none;user-select:none;width:1em}.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;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.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{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{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{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.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){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.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{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.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 var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-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:var(--fc-page-bg-color);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{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}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{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{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:\"\";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:\"\";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:\"\";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.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:calc(var(--fc-event-resizer-thickness)*-.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:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.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:calc(var(--fc-event-resizer-dot-total-width)*-.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:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}";
|
|
97
|
+
injectStyles(css_248z$4);
|
|
98
98
|
|
|
99
99
|
class DelayedRunner {
|
|
100
100
|
constructor(drainedOption) {
|
|
@@ -7021,10 +7021,10 @@ class BgEvent extends BaseComponent {
|
|
|
7021
7021
|
render() {
|
|
7022
7022
|
let { props } = this;
|
|
7023
7023
|
let { seg } = props;
|
|
7024
|
-
return (y(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent$
|
|
7024
|
+
return (y(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent$4, seg: seg, timeText: "", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));
|
|
7025
7025
|
}
|
|
7026
7026
|
}
|
|
7027
|
-
function renderInnerContent$
|
|
7027
|
+
function renderInnerContent$4(props) {
|
|
7028
7028
|
let { title } = props.event;
|
|
7029
7029
|
return title && (y("div", { className: "fc-event-title" }, props.event.title));
|
|
7030
7030
|
}
|
|
@@ -9464,7 +9464,7 @@ class TableView extends DateComponent {
|
|
|
9464
9464
|
}
|
|
9465
9465
|
}
|
|
9466
9466
|
|
|
9467
|
-
function splitSegsByRow(segs, rowCnt) {
|
|
9467
|
+
function splitSegsByRow$1(segs, rowCnt) {
|
|
9468
9468
|
let byRow = [];
|
|
9469
9469
|
for (let i = 0; i < rowCnt; i += 1) {
|
|
9470
9470
|
byRow[i] = [];
|
|
@@ -9474,7 +9474,7 @@ function splitSegsByRow(segs, rowCnt) {
|
|
|
9474
9474
|
}
|
|
9475
9475
|
return byRow;
|
|
9476
9476
|
}
|
|
9477
|
-
function splitSegsByFirstCol(segs, colCnt) {
|
|
9477
|
+
function splitSegsByFirstCol$1(segs, colCnt) {
|
|
9478
9478
|
let byCol = [];
|
|
9479
9479
|
for (let i = 0; i < colCnt; i += 1) {
|
|
9480
9480
|
byCol[i] = [];
|
|
@@ -9484,7 +9484,7 @@ function splitSegsByFirstCol(segs, colCnt) {
|
|
|
9484
9484
|
}
|
|
9485
9485
|
return byCol;
|
|
9486
9486
|
}
|
|
9487
|
-
function splitInteractionByRow(ui, rowCnt) {
|
|
9487
|
+
function splitInteractionByRow$1(ui, rowCnt) {
|
|
9488
9488
|
let byRow = [];
|
|
9489
9489
|
if (!ui) {
|
|
9490
9490
|
for (let i = 0; i < rowCnt; i += 1) {
|
|
@@ -9506,13 +9506,13 @@ function splitInteractionByRow(ui, rowCnt) {
|
|
|
9506
9506
|
return byRow;
|
|
9507
9507
|
}
|
|
9508
9508
|
|
|
9509
|
-
const DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({
|
|
9509
|
+
const DEFAULT_TABLE_EVENT_TIME_FORMAT$1 = createFormatter({
|
|
9510
9510
|
hour: 'numeric',
|
|
9511
9511
|
minute: '2-digit',
|
|
9512
9512
|
omitZeroMinute: true,
|
|
9513
9513
|
meridiem: 'narrow',
|
|
9514
9514
|
});
|
|
9515
|
-
function hasListItemDisplay(seg) {
|
|
9515
|
+
function hasListItemDisplay$1(seg) {
|
|
9516
9516
|
let { display } = seg.eventRange.ui;
|
|
9517
9517
|
return display === 'list-item' || (display === 'auto' &&
|
|
9518
9518
|
!seg.eventRange.def.allDay &&
|
|
@@ -9522,34 +9522,34 @@ function hasListItemDisplay(seg) {
|
|
|
9522
9522
|
);
|
|
9523
9523
|
}
|
|
9524
9524
|
|
|
9525
|
-
class TableBlockEvent extends BaseComponent {
|
|
9525
|
+
class TableBlockEvent$1 extends BaseComponent {
|
|
9526
9526
|
render() {
|
|
9527
9527
|
let { props } = this;
|
|
9528
|
-
return (y(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
|
|
9528
|
+
return (y(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT$1, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
|
|
9529
9529
|
}
|
|
9530
9530
|
}
|
|
9531
9531
|
|
|
9532
|
-
class TableListItemEvent extends BaseComponent {
|
|
9532
|
+
class TableListItemEvent$1 extends BaseComponent {
|
|
9533
9533
|
render() {
|
|
9534
9534
|
let { props, context } = this;
|
|
9535
9535
|
let { options } = context;
|
|
9536
9536
|
let { seg } = props;
|
|
9537
|
-
let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
|
|
9537
|
+
let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT$1;
|
|
9538
9538
|
let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);
|
|
9539
|
-
return (y(EventContainer, Object.assign({}, props, { elTag: "a", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent$
|
|
9539
|
+
return (y(EventContainer, Object.assign({}, props, { elTag: "a", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent$3, timeText: timeText, isResizing: false, isDateSelecting: false })));
|
|
9540
9540
|
}
|
|
9541
9541
|
}
|
|
9542
|
-
function renderInnerContent$
|
|
9542
|
+
function renderInnerContent$3(renderProps) {
|
|
9543
9543
|
return (y(_, null,
|
|
9544
9544
|
y("div", { className: "fc-daygrid-event-dot", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),
|
|
9545
9545
|
renderProps.timeText && (y("div", { className: "fc-event-time" }, renderProps.timeText)),
|
|
9546
9546
|
y("div", { className: "fc-event-title" }, renderProps.event.title || y(_, null, "\u00A0"))));
|
|
9547
9547
|
}
|
|
9548
9548
|
|
|
9549
|
-
class TableCellMoreLink extends BaseComponent {
|
|
9549
|
+
class TableCellMoreLink$1 extends BaseComponent {
|
|
9550
9550
|
constructor() {
|
|
9551
9551
|
super(...arguments);
|
|
9552
|
-
this.compileSegs = memoize(compileSegs);
|
|
9552
|
+
this.compileSegs = memoize(compileSegs$1);
|
|
9553
9553
|
}
|
|
9554
9554
|
render() {
|
|
9555
9555
|
let { props } = this;
|
|
@@ -9562,12 +9562,12 @@ class TableCellMoreLink extends BaseComponent {
|
|
|
9562
9562
|
let instanceId = seg.eventRange.instance.instanceId;
|
|
9563
9563
|
return (y("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
|
|
9564
9564
|
visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
|
|
9565
|
-
} }, hasListItemDisplay(seg) ? (y(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (y(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
|
|
9565
|
+
} }, hasListItemDisplay$1(seg) ? (y(TableListItemEvent$1, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (y(TableBlockEvent$1, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
|
|
9566
9566
|
})));
|
|
9567
9567
|
} }));
|
|
9568
9568
|
}
|
|
9569
9569
|
}
|
|
9570
|
-
function compileSegs(singlePlacements) {
|
|
9570
|
+
function compileSegs$1(singlePlacements) {
|
|
9571
9571
|
let allSegs = [];
|
|
9572
9572
|
let invisibleSegs = [];
|
|
9573
9573
|
for (let placement of singlePlacements) {
|
|
@@ -9579,8 +9579,8 @@ function compileSegs(singlePlacements) {
|
|
|
9579
9579
|
return { allSegs, invisibleSegs };
|
|
9580
9580
|
}
|
|
9581
9581
|
|
|
9582
|
-
const DEFAULT_WEEK_NUM_FORMAT$
|
|
9583
|
-
class TableCell extends DateComponent {
|
|
9582
|
+
const DEFAULT_WEEK_NUM_FORMAT$2 = createFormatter({ week: 'narrow' });
|
|
9583
|
+
class TableCell$1 extends DateComponent {
|
|
9584
9584
|
constructor() {
|
|
9585
9585
|
super(...arguments);
|
|
9586
9586
|
this.rootElRef = d();
|
|
@@ -9598,12 +9598,12 @@ class TableCell extends DateComponent {
|
|
|
9598
9598
|
let { date, dateProfile } = props;
|
|
9599
9599
|
// TODO: memoize this?
|
|
9600
9600
|
const isMonthStart = props.showDayNumber &&
|
|
9601
|
-
shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);
|
|
9601
|
+
shouldDisplayMonthStart$1(date, dateProfile.currentRange, dateEnv);
|
|
9602
9602
|
return (y(DayCellContainer, { elTag: "td", elRef: this.handleRootEl, elClasses: [
|
|
9603
9603
|
'fc-daygrid-day',
|
|
9604
9604
|
...(props.extraClassNames || []),
|
|
9605
|
-
], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (y("div", { ref: props.innerElRef, className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", style: { minHeight: props.minHeight } },
|
|
9606
|
-
props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$
|
|
9605
|
+
], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner$1, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (y("div", { ref: props.innerElRef, className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", style: { minHeight: props.minHeight } },
|
|
9606
|
+
props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$2 })),
|
|
9607
9607
|
!renderProps.isDisabled &&
|
|
9608
9608
|
(props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (y("div", { className: "fc-daygrid-day-top" },
|
|
9609
9609
|
y(InnerContent, { elTag: "a", elClasses: [
|
|
@@ -9616,14 +9616,14 @@ class TableCell extends DateComponent {
|
|
|
9616
9616
|
y("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
|
|
9617
9617
|
props.fgContent,
|
|
9618
9618
|
y("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
|
|
9619
|
-
y(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
|
|
9619
|
+
y(TableCellMoreLink$1, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
|
|
9620
9620
|
y("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))));
|
|
9621
9621
|
}
|
|
9622
9622
|
}
|
|
9623
|
-
function renderTopInner(props) {
|
|
9623
|
+
function renderTopInner$1(props) {
|
|
9624
9624
|
return props.dayNumberText || y(_, null, "\u00A0");
|
|
9625
9625
|
}
|
|
9626
|
-
function shouldDisplayMonthStart(date, currentRange, dateEnv) {
|
|
9626
|
+
function shouldDisplayMonthStart$1(date, currentRange, dateEnv) {
|
|
9627
9627
|
const { start: currentStart, end: currentEnd } = currentRange;
|
|
9628
9628
|
const currentEndIncl = addMs(currentEnd, -1);
|
|
9629
9629
|
const currentFirstYear = dateEnv.getYear(currentStart);
|
|
@@ -9639,15 +9639,15 @@ function shouldDisplayMonthStart(date, currentRange, dateEnv) {
|
|
|
9639
9639
|
(dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));
|
|
9640
9640
|
}
|
|
9641
9641
|
|
|
9642
|
-
function generateSegKey(seg) {
|
|
9642
|
+
function generateSegKey$1(seg) {
|
|
9643
9643
|
return seg.eventRange.instance.instanceId + ':' + seg.firstCol;
|
|
9644
9644
|
}
|
|
9645
|
-
function generateSegUid(seg) {
|
|
9646
|
-
return generateSegKey(seg) + ':' + seg.lastCol;
|
|
9645
|
+
function generateSegUid$1(seg) {
|
|
9646
|
+
return generateSegKey$1(seg) + ':' + seg.lastCol;
|
|
9647
9647
|
}
|
|
9648
|
-
function computeFgSegPlacement(segs, // assumed already sorted
|
|
9648
|
+
function computeFgSegPlacement$1(segs, // assumed already sorted
|
|
9649
9649
|
dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {
|
|
9650
|
-
let hierarchy = new DayGridSegHierarchy((segEntry) => {
|
|
9650
|
+
let hierarchy = new DayGridSegHierarchy$1((segEntry) => {
|
|
9651
9651
|
// TODO: more DRY with generateSegUid
|
|
9652
9652
|
let segUid = segs[segEntry.index].eventRange.instance.instanceId +
|
|
9653
9653
|
':' + segEntry.span.start +
|
|
@@ -9673,7 +9673,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9673
9673
|
let unknownHeightSegs = [];
|
|
9674
9674
|
for (let i = 0; i < segs.length; i += 1) {
|
|
9675
9675
|
let seg = segs[i];
|
|
9676
|
-
let segUid = generateSegUid(seg);
|
|
9676
|
+
let segUid = generateSegUid$1(seg);
|
|
9677
9677
|
let eventHeight = segHeights[segUid];
|
|
9678
9678
|
if (eventHeight != null) {
|
|
9679
9679
|
segInputs.push({
|
|
@@ -9690,7 +9690,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9690
9690
|
}
|
|
9691
9691
|
let hiddenEntries = hierarchy.addSegs(segInputs);
|
|
9692
9692
|
let segRects = hierarchy.toRects();
|
|
9693
|
-
let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
|
|
9693
|
+
let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects$1(segRects, segs, cells);
|
|
9694
9694
|
let moreCnts = [];
|
|
9695
9695
|
let moreMarginTops = [];
|
|
9696
9696
|
// add segs with unknown heights
|
|
@@ -9704,7 +9704,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9704
9704
|
});
|
|
9705
9705
|
for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
|
|
9706
9706
|
singleColPlacements[col].push({
|
|
9707
|
-
seg: resliceSeg(seg, col, col + 1, cells),
|
|
9707
|
+
seg: resliceSeg$1(seg, col, col + 1, cells),
|
|
9708
9708
|
isVisible: false,
|
|
9709
9709
|
isAbsolute: false,
|
|
9710
9710
|
absoluteTop: 0,
|
|
@@ -9720,7 +9720,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9720
9720
|
let seg = segs[hiddenEntry.index];
|
|
9721
9721
|
let hiddenSpan = hiddenEntry.span;
|
|
9722
9722
|
multiColPlacements[hiddenSpan.start].push({
|
|
9723
|
-
seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),
|
|
9723
|
+
seg: resliceSeg$1(seg, hiddenSpan.start, hiddenSpan.end, cells),
|
|
9724
9724
|
isVisible: false,
|
|
9725
9725
|
isAbsolute: true,
|
|
9726
9726
|
absoluteTop: 0,
|
|
@@ -9729,7 +9729,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9729
9729
|
for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
|
|
9730
9730
|
moreCnts[col] += 1;
|
|
9731
9731
|
singleColPlacements[col].push({
|
|
9732
|
-
seg: resliceSeg(seg, col, col + 1, cells),
|
|
9732
|
+
seg: resliceSeg$1(seg, col, col + 1, cells),
|
|
9733
9733
|
isVisible: false,
|
|
9734
9734
|
isAbsolute: false,
|
|
9735
9735
|
absoluteTop: 0,
|
|
@@ -9744,8 +9744,8 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9744
9744
|
return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
|
|
9745
9745
|
}
|
|
9746
9746
|
// rects ordered by top coord, then left
|
|
9747
|
-
function placeRects(allRects, segs, cells) {
|
|
9748
|
-
let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
|
|
9747
|
+
function placeRects$1(allRects, segs, cells) {
|
|
9748
|
+
let rectsByEachCol = groupRectsByEachCol$1(allRects, cells.length);
|
|
9749
9749
|
let singleColPlacements = [];
|
|
9750
9750
|
let multiColPlacements = [];
|
|
9751
9751
|
let leftoverMargins = [];
|
|
@@ -9758,7 +9758,7 @@ function placeRects(allRects, segs, cells) {
|
|
|
9758
9758
|
for (let rect of rects) {
|
|
9759
9759
|
let seg = segs[rect.index];
|
|
9760
9760
|
singlePlacements.push({
|
|
9761
|
-
seg: resliceSeg(seg, col, col + 1, cells),
|
|
9761
|
+
seg: resliceSeg$1(seg, col, col + 1, cells),
|
|
9762
9762
|
isVisible: true,
|
|
9763
9763
|
isAbsolute: false,
|
|
9764
9764
|
absoluteTop: rect.levelCoord,
|
|
@@ -9780,7 +9780,7 @@ function placeRects(allRects, segs, cells) {
|
|
|
9780
9780
|
currentMarginTop += rect.thickness;
|
|
9781
9781
|
if (isFirstCol) {
|
|
9782
9782
|
multiPlacements.push({
|
|
9783
|
-
seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
|
|
9783
|
+
seg: resliceSeg$1(seg, rect.span.start, rect.span.end, cells),
|
|
9784
9784
|
isVisible: true,
|
|
9785
9785
|
isAbsolute: true,
|
|
9786
9786
|
absoluteTop: rect.levelCoord,
|
|
@@ -9790,7 +9790,7 @@ function placeRects(allRects, segs, cells) {
|
|
|
9790
9790
|
}
|
|
9791
9791
|
else if (isFirstCol) {
|
|
9792
9792
|
multiPlacements.push({
|
|
9793
|
-
seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
|
|
9793
|
+
seg: resliceSeg$1(seg, rect.span.start, rect.span.end, cells),
|
|
9794
9794
|
isVisible: true,
|
|
9795
9795
|
isAbsolute: false,
|
|
9796
9796
|
absoluteTop: rect.levelCoord,
|
|
@@ -9805,7 +9805,7 @@ function placeRects(allRects, segs, cells) {
|
|
|
9805
9805
|
}
|
|
9806
9806
|
return { singleColPlacements, multiColPlacements, leftoverMargins };
|
|
9807
9807
|
}
|
|
9808
|
-
function groupRectsByEachCol(rects, colCnt) {
|
|
9808
|
+
function groupRectsByEachCol$1(rects, colCnt) {
|
|
9809
9809
|
let rectsByEachCol = [];
|
|
9810
9810
|
for (let col = 0; col < colCnt; col += 1) {
|
|
9811
9811
|
rectsByEachCol.push([]);
|
|
@@ -9817,7 +9817,7 @@ function groupRectsByEachCol(rects, colCnt) {
|
|
|
9817
9817
|
}
|
|
9818
9818
|
return rectsByEachCol;
|
|
9819
9819
|
}
|
|
9820
|
-
function resliceSeg(seg, spanStart, spanEnd, cells) {
|
|
9820
|
+
function resliceSeg$1(seg, spanStart, spanEnd, cells) {
|
|
9821
9821
|
if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {
|
|
9822
9822
|
return seg;
|
|
9823
9823
|
}
|
|
@@ -9834,7 +9834,7 @@ function resliceSeg(seg, spanStart, spanEnd, cells) {
|
|
|
9834
9834
|
range: slicedRange,
|
|
9835
9835
|
}, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });
|
|
9836
9836
|
}
|
|
9837
|
-
class DayGridSegHierarchy extends SegHierarchy {
|
|
9837
|
+
class DayGridSegHierarchy$1 extends SegHierarchy {
|
|
9838
9838
|
constructor() {
|
|
9839
9839
|
super(...arguments);
|
|
9840
9840
|
// config
|
|
@@ -9881,7 +9881,7 @@ class DayGridSegHierarchy extends SegHierarchy {
|
|
|
9881
9881
|
}
|
|
9882
9882
|
}
|
|
9883
9883
|
|
|
9884
|
-
class TableRow extends DateComponent {
|
|
9884
|
+
class TableRow$1 extends DateComponent {
|
|
9885
9885
|
constructor() {
|
|
9886
9886
|
super(...arguments);
|
|
9887
9887
|
this.cellElRefs = new RefMap(); // the <td>
|
|
@@ -9904,11 +9904,11 @@ class TableRow extends DateComponent {
|
|
|
9904
9904
|
let { props, state, context } = this;
|
|
9905
9905
|
let { options } = context;
|
|
9906
9906
|
let colCnt = props.cells.length;
|
|
9907
|
-
let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
|
|
9908
|
-
let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
|
|
9909
|
-
let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
|
|
9910
|
-
let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
|
|
9911
|
-
let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
|
|
9907
|
+
let businessHoursByCol = splitSegsByFirstCol$1(props.businessHourSegs, colCnt);
|
|
9908
|
+
let bgEventSegsByCol = splitSegsByFirstCol$1(props.bgEventSegs, colCnt);
|
|
9909
|
+
let highlightSegsByCol = splitSegsByFirstCol$1(this.getHighlightSegs(), colCnt);
|
|
9910
|
+
let mirrorSegsByCol = splitSegsByFirstCol$1(this.getMirrorSegs(), colCnt);
|
|
9911
|
+
let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement$1(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
|
|
9912
9912
|
let isForcedInvisible = // TODO: messy way to compute this
|
|
9913
9913
|
(props.eventDrag && props.eventDrag.affectedInstances) ||
|
|
9914
9914
|
(props.eventResize && props.eventResize.affectedInstances) ||
|
|
@@ -9917,8 +9917,8 @@ class TableRow extends DateComponent {
|
|
|
9917
9917
|
props.renderIntro && props.renderIntro(),
|
|
9918
9918
|
props.cells.map((cell, col) => {
|
|
9919
9919
|
let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
|
|
9920
|
-
let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
|
|
9921
|
-
return (y(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
|
|
9920
|
+
let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements$1(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
|
|
9921
|
+
return (y(TableCell$1, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
|
|
9922
9922
|
y(_, null,
|
|
9923
9923
|
y(_, null, normalFgNodes),
|
|
9924
9924
|
y(_, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys
|
|
@@ -9985,13 +9985,13 @@ class TableRow extends DateComponent {
|
|
|
9985
9985
|
known bug: events that are force to be list-item but span multiple days still take up space in later columns
|
|
9986
9986
|
todo: in print view, for multi-day events, don't display title within non-start/end segs
|
|
9987
9987
|
*/
|
|
9988
|
-
nodes.push(y("div", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid(seg)), style: {
|
|
9988
|
+
nodes.push(y("div", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey$1(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid$1(seg)), style: {
|
|
9989
9989
|
visibility: isVisible ? '' : 'hidden',
|
|
9990
9990
|
marginTop: isAbsolute ? '' : placement.marginTop,
|
|
9991
9991
|
top: isAbsolute ? placement.absoluteTop : '',
|
|
9992
9992
|
left,
|
|
9993
9993
|
right,
|
|
9994
|
-
} }, hasListItemDisplay(seg) ? (y(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (y(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));
|
|
9994
|
+
} }, hasListItemDisplay$1(seg) ? (y(TableListItemEvent$1, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (y(TableBlockEvent$1, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));
|
|
9995
9995
|
}
|
|
9996
9996
|
}
|
|
9997
9997
|
return nodes;
|
|
@@ -10069,14 +10069,14 @@ class TableRow extends DateComponent {
|
|
|
10069
10069
|
return this.props.cells.map((cell) => elMap[cell.key]);
|
|
10070
10070
|
}
|
|
10071
10071
|
}
|
|
10072
|
-
TableRow.addStateEquality({
|
|
10072
|
+
TableRow$1.addStateEquality({
|
|
10073
10073
|
segHeights: isPropsEqual,
|
|
10074
10074
|
});
|
|
10075
|
-
function buildMirrorPlacements(mirrorSegs, colPlacements) {
|
|
10075
|
+
function buildMirrorPlacements$1(mirrorSegs, colPlacements) {
|
|
10076
10076
|
if (!mirrorSegs.length) {
|
|
10077
10077
|
return [];
|
|
10078
10078
|
}
|
|
10079
|
-
let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
|
|
10079
|
+
let topsByInstanceId = buildAbsoluteTopHash$1(colPlacements); // TODO: cache this at first render?
|
|
10080
10080
|
return mirrorSegs.map((seg) => ({
|
|
10081
10081
|
seg,
|
|
10082
10082
|
isVisible: true,
|
|
@@ -10085,7 +10085,7 @@ function buildMirrorPlacements(mirrorSegs, colPlacements) {
|
|
|
10085
10085
|
marginTop: 0,
|
|
10086
10086
|
}));
|
|
10087
10087
|
}
|
|
10088
|
-
function buildAbsoluteTopHash(colPlacements) {
|
|
10088
|
+
function buildAbsoluteTopHash$1(colPlacements) {
|
|
10089
10089
|
let topsByInstanceId = {};
|
|
10090
10090
|
for (let placements of colPlacements) {
|
|
10091
10091
|
for (let placement of placements) {
|
|
@@ -10095,15 +10095,15 @@ function buildAbsoluteTopHash(colPlacements) {
|
|
|
10095
10095
|
return topsByInstanceId;
|
|
10096
10096
|
}
|
|
10097
10097
|
|
|
10098
|
-
class TableRows extends DateComponent {
|
|
10098
|
+
class TableRows$1 extends DateComponent {
|
|
10099
10099
|
constructor() {
|
|
10100
10100
|
super(...arguments);
|
|
10101
|
-
this.splitBusinessHourSegs = memoize(splitSegsByRow);
|
|
10102
|
-
this.splitBgEventSegs = memoize(splitSegsByRow);
|
|
10103
|
-
this.splitFgEventSegs = memoize(splitSegsByRow);
|
|
10104
|
-
this.splitDateSelectionSegs = memoize(splitSegsByRow);
|
|
10105
|
-
this.splitEventDrag = memoize(splitInteractionByRow);
|
|
10106
|
-
this.splitEventResize = memoize(splitInteractionByRow);
|
|
10101
|
+
this.splitBusinessHourSegs = memoize(splitSegsByRow$1);
|
|
10102
|
+
this.splitBgEventSegs = memoize(splitSegsByRow$1);
|
|
10103
|
+
this.splitFgEventSegs = memoize(splitSegsByRow$1);
|
|
10104
|
+
this.splitDateSelectionSegs = memoize(splitSegsByRow$1);
|
|
10105
|
+
this.splitEventDrag = memoize(splitInteractionByRow$1);
|
|
10106
|
+
this.splitEventResize = memoize(splitInteractionByRow$1);
|
|
10107
10107
|
this.rowRefs = new RefMap();
|
|
10108
10108
|
}
|
|
10109
10109
|
render() {
|
|
@@ -10120,10 +10120,10 @@ class TableRows extends DateComponent {
|
|
|
10120
10120
|
let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?
|
|
10121
10121
|
props.clientWidth / context.options.aspectRatio / 6 :
|
|
10122
10122
|
null;
|
|
10123
|
-
return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y(_, null, props.cells.map((cells, row) => (y(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
|
|
10123
|
+
return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y(_, null, props.cells.map((cells, row) => (y(TableRow$1, { ref: this.rowRefs.createRef(row), key: cells.length
|
|
10124
10124
|
? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
|
|
10125
10125
|
: row // in case there are no cells (like when resource view is loading)
|
|
10126
|
-
, showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));
|
|
10126
|
+
, showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay$1) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));
|
|
10127
10127
|
}
|
|
10128
10128
|
componentDidMount() {
|
|
10129
10129
|
this.registerInteractiveComponent();
|
|
@@ -10192,11 +10192,11 @@ class TableRows extends DateComponent {
|
|
|
10192
10192
|
return { start, end };
|
|
10193
10193
|
}
|
|
10194
10194
|
}
|
|
10195
|
-
function isSegAllDay(seg) {
|
|
10195
|
+
function isSegAllDay$1(seg) {
|
|
10196
10196
|
return seg.eventRange.def.allDay;
|
|
10197
10197
|
}
|
|
10198
10198
|
|
|
10199
|
-
class Table extends DateComponent {
|
|
10199
|
+
class Table$1 extends DateComponent {
|
|
10200
10200
|
constructor() {
|
|
10201
10201
|
super(...arguments);
|
|
10202
10202
|
this.elRef = d();
|
|
@@ -10231,7 +10231,7 @@ class Table extends DateComponent {
|
|
|
10231
10231
|
} },
|
|
10232
10232
|
props.colGroupNode,
|
|
10233
10233
|
y("tbody", { role: "presentation" },
|
|
10234
|
-
y(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));
|
|
10234
|
+
y(TableRows$1, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));
|
|
10235
10235
|
}
|
|
10236
10236
|
componentDidMount() {
|
|
10237
10237
|
this.requestScrollReset();
|
|
@@ -10252,7 +10252,7 @@ class Table extends DateComponent {
|
|
|
10252
10252
|
if (this.needsScrollReset &&
|
|
10253
10253
|
this.props.clientWidth // sizes computed?
|
|
10254
10254
|
) {
|
|
10255
|
-
const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);
|
|
10255
|
+
const subjectEl = getScrollSubjectEl$1(this.elRef.current, this.props.dateProfile);
|
|
10256
10256
|
if (subjectEl) {
|
|
10257
10257
|
const originEl = subjectEl.closest('.fc-daygrid-body');
|
|
10258
10258
|
const scrollEl = originEl.closest('.fc-scroller');
|
|
@@ -10264,7 +10264,7 @@ class Table extends DateComponent {
|
|
|
10264
10264
|
}
|
|
10265
10265
|
}
|
|
10266
10266
|
}
|
|
10267
|
-
function getScrollSubjectEl(containerEl, dateProfile) {
|
|
10267
|
+
function getScrollSubjectEl$1(containerEl, dateProfile) {
|
|
10268
10268
|
let el;
|
|
10269
10269
|
if (dateProfile.currentRangeUnit.match(/year|month/)) {
|
|
10270
10270
|
el = containerEl.querySelector(`[data-date="${formatIsoMonthStr(dateProfile.currentDate)}-01"]`);
|
|
@@ -10277,7 +10277,7 @@ function getScrollSubjectEl(containerEl, dateProfile) {
|
|
|
10277
10277
|
return el;
|
|
10278
10278
|
}
|
|
10279
10279
|
|
|
10280
|
-
class DayTableSlicer extends Slicer {
|
|
10280
|
+
class DayTableSlicer$1 extends Slicer {
|
|
10281
10281
|
constructor() {
|
|
10282
10282
|
super(...arguments);
|
|
10283
10283
|
this.forceDayIfListItem = true;
|
|
@@ -10287,15 +10287,15 @@ class DayTableSlicer extends Slicer {
|
|
|
10287
10287
|
}
|
|
10288
10288
|
}
|
|
10289
10289
|
|
|
10290
|
-
class DayTable extends DateComponent {
|
|
10290
|
+
class DayTable$1 extends DateComponent {
|
|
10291
10291
|
constructor() {
|
|
10292
10292
|
super(...arguments);
|
|
10293
|
-
this.slicer = new DayTableSlicer();
|
|
10293
|
+
this.slicer = new DayTableSlicer$1();
|
|
10294
10294
|
this.tableRef = d();
|
|
10295
10295
|
}
|
|
10296
10296
|
render() {
|
|
10297
10297
|
let { props, context } = this;
|
|
10298
|
-
return (y(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
|
|
10298
|
+
return (y(Table$1, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
|
|
10299
10299
|
}
|
|
10300
10300
|
}
|
|
10301
10301
|
|
|
@@ -10312,7 +10312,7 @@ class DayTableView extends TableView {
|
|
|
10312
10312
|
let { props } = this;
|
|
10313
10313
|
let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
|
|
10314
10314
|
let headerContent = options.dayHeaders && (y(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
|
|
10315
|
-
let bodyContent = (contentArg) => (y(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));
|
|
10315
|
+
let bodyContent = (contentArg) => (y(DayTable$1, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));
|
|
10316
10316
|
return options.dayMinWidth
|
|
10317
10317
|
? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)
|
|
10318
10318
|
: this.renderSimpleLayout(headerContent, bodyContent);
|
|
@@ -10361,8 +10361,8 @@ function buildDayTableRenderRange(props) {
|
|
|
10361
10361
|
return { start, end };
|
|
10362
10362
|
}
|
|
10363
10363
|
|
|
10364
|
-
var css_248z$
|
|
10365
|
-
injectStyles(css_248z$
|
|
10364
|
+
var css_248z$3 = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
|
|
10365
|
+
injectStyles(css_248z$3);
|
|
10366
10366
|
|
|
10367
10367
|
var index$3 = createPlugin({
|
|
10368
10368
|
name: '@fullcalendar/daygrid',
|
|
@@ -12290,7 +12290,7 @@ class ListViewHeaderRow extends BaseComponent {
|
|
|
12290
12290
|
...getDayClassNames(dayMeta, theme),
|
|
12291
12291
|
], elAttrs: {
|
|
12292
12292
|
'data-date': formatDayString(dayDate),
|
|
12293
|
-
}, renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInnerContent$
|
|
12293
|
+
}, renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInnerContent$2, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => ( // TODO: force-hide top border based on :first-child
|
|
12294
12294
|
y("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
|
|
12295
12295
|
y(InnerContent, { elTag: "div", elClasses: [
|
|
12296
12296
|
'fc-list-day-cushion',
|
|
@@ -12298,7 +12298,7 @@ class ListViewHeaderRow extends BaseComponent {
|
|
|
12298
12298
|
] })))));
|
|
12299
12299
|
}
|
|
12300
12300
|
}
|
|
12301
|
-
function renderInnerContent$
|
|
12301
|
+
function renderInnerContent$2(props) {
|
|
12302
12302
|
return (y(_, null,
|
|
12303
12303
|
props.text && (y("a", Object.assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
|
|
12304
12304
|
props.sideText && ( /* not keyboard tabbable */y("a", Object.assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
|
|
@@ -12525,8 +12525,8 @@ function groupSegsByDay(segs) {
|
|
|
12525
12525
|
return segsByDay;
|
|
12526
12526
|
}
|
|
12527
12527
|
|
|
12528
|
-
var css_248z$
|
|
12529
|
-
injectStyles(css_248z$
|
|
12528
|
+
var css_248z$2 = ":root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:\"\";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}";
|
|
12529
|
+
injectStyles(css_248z$2);
|
|
12530
12530
|
|
|
12531
12531
|
const OPTION_REFINERS$1 = {
|
|
12532
12532
|
listDayFormat: createFalsableFormatter,
|
|
@@ -12574,6 +12574,844 @@ var index$1 = createPlugin({
|
|
|
12574
12574
|
},
|
|
12575
12575
|
});
|
|
12576
12576
|
|
|
12577
|
+
function splitSegsByRow(segs, rowCnt) {
|
|
12578
|
+
let byRow = [];
|
|
12579
|
+
for (let i = 0; i < rowCnt; i += 1) {
|
|
12580
|
+
byRow[i] = [];
|
|
12581
|
+
}
|
|
12582
|
+
for (let seg of segs) {
|
|
12583
|
+
byRow[seg.row].push(seg);
|
|
12584
|
+
}
|
|
12585
|
+
return byRow;
|
|
12586
|
+
}
|
|
12587
|
+
function splitSegsByFirstCol(segs, colCnt) {
|
|
12588
|
+
let byCol = [];
|
|
12589
|
+
for (let i = 0; i < colCnt; i += 1) {
|
|
12590
|
+
byCol[i] = [];
|
|
12591
|
+
}
|
|
12592
|
+
for (let seg of segs) {
|
|
12593
|
+
byCol[seg.firstCol].push(seg);
|
|
12594
|
+
}
|
|
12595
|
+
return byCol;
|
|
12596
|
+
}
|
|
12597
|
+
function splitInteractionByRow(ui, rowCnt) {
|
|
12598
|
+
let byRow = [];
|
|
12599
|
+
if (!ui) {
|
|
12600
|
+
for (let i = 0; i < rowCnt; i += 1) {
|
|
12601
|
+
byRow[i] = null;
|
|
12602
|
+
}
|
|
12603
|
+
}
|
|
12604
|
+
else {
|
|
12605
|
+
for (let i = 0; i < rowCnt; i += 1) {
|
|
12606
|
+
byRow[i] = {
|
|
12607
|
+
affectedInstances: ui.affectedInstances,
|
|
12608
|
+
isEvent: ui.isEvent,
|
|
12609
|
+
segs: [],
|
|
12610
|
+
};
|
|
12611
|
+
}
|
|
12612
|
+
for (let seg of ui.segs) {
|
|
12613
|
+
byRow[seg.row].segs.push(seg);
|
|
12614
|
+
}
|
|
12615
|
+
}
|
|
12616
|
+
return byRow;
|
|
12617
|
+
}
|
|
12618
|
+
|
|
12619
|
+
const DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({
|
|
12620
|
+
hour: 'numeric',
|
|
12621
|
+
minute: '2-digit',
|
|
12622
|
+
omitZeroMinute: true,
|
|
12623
|
+
meridiem: 'narrow',
|
|
12624
|
+
});
|
|
12625
|
+
function hasListItemDisplay(seg) {
|
|
12626
|
+
let { display } = seg.eventRange.ui;
|
|
12627
|
+
return display === 'list-item' || (display === 'auto' &&
|
|
12628
|
+
!seg.eventRange.def.allDay &&
|
|
12629
|
+
seg.firstCol === seg.lastCol && // can't be multi-day
|
|
12630
|
+
seg.isStart && // "
|
|
12631
|
+
seg.isEnd // "
|
|
12632
|
+
);
|
|
12633
|
+
}
|
|
12634
|
+
|
|
12635
|
+
class TableBlockEvent extends BaseComponent {
|
|
12636
|
+
render() {
|
|
12637
|
+
let { props } = this;
|
|
12638
|
+
return (y(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));
|
|
12639
|
+
}
|
|
12640
|
+
}
|
|
12641
|
+
|
|
12642
|
+
class TableListItemEvent extends BaseComponent {
|
|
12643
|
+
render() {
|
|
12644
|
+
let { props, context } = this;
|
|
12645
|
+
let { options } = context;
|
|
12646
|
+
let { seg } = props;
|
|
12647
|
+
let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
|
|
12648
|
+
let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);
|
|
12649
|
+
return (y(EventContainer, Object.assign({}, props, { elTag: "a", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent$1, timeText: timeText, isResizing: false, isDateSelecting: false })));
|
|
12650
|
+
}
|
|
12651
|
+
}
|
|
12652
|
+
function renderInnerContent$1(renderProps) {
|
|
12653
|
+
return (y(_, null,
|
|
12654
|
+
y("div", { className: "fc-daygrid-event-dot", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),
|
|
12655
|
+
renderProps.timeText && (y("div", { className: "fc-event-time" }, renderProps.timeText)),
|
|
12656
|
+
y("div", { className: "fc-event-title" }, renderProps.event.title || y(_, null, "\u00A0"))));
|
|
12657
|
+
}
|
|
12658
|
+
|
|
12659
|
+
class TableCellMoreLink extends BaseComponent {
|
|
12660
|
+
constructor() {
|
|
12661
|
+
super(...arguments);
|
|
12662
|
+
this.compileSegs = memoize(compileSegs);
|
|
12663
|
+
}
|
|
12664
|
+
render() {
|
|
12665
|
+
let { props } = this;
|
|
12666
|
+
let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);
|
|
12667
|
+
return (y(MoreLinkContainer, { elClasses: ['fc-daygrid-more-link'], dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {
|
|
12668
|
+
let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
|
|
12669
|
+
(props.eventResize ? props.eventResize.affectedInstances : null) ||
|
|
12670
|
+
{};
|
|
12671
|
+
return (y(_, null, allSegs.map((seg) => {
|
|
12672
|
+
let instanceId = seg.eventRange.instance.instanceId;
|
|
12673
|
+
return (y("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
|
|
12674
|
+
visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
|
|
12675
|
+
} }, hasListItemDisplay(seg) ? (y(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (y(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));
|
|
12676
|
+
})));
|
|
12677
|
+
} }));
|
|
12678
|
+
}
|
|
12679
|
+
}
|
|
12680
|
+
function compileSegs(singlePlacements) {
|
|
12681
|
+
let allSegs = [];
|
|
12682
|
+
let invisibleSegs = [];
|
|
12683
|
+
for (let placement of singlePlacements) {
|
|
12684
|
+
allSegs.push(placement.seg);
|
|
12685
|
+
if (!placement.isVisible) {
|
|
12686
|
+
invisibleSegs.push(placement.seg);
|
|
12687
|
+
}
|
|
12688
|
+
}
|
|
12689
|
+
return { allSegs, invisibleSegs };
|
|
12690
|
+
}
|
|
12691
|
+
|
|
12692
|
+
const DEFAULT_WEEK_NUM_FORMAT$1 = createFormatter({ week: 'narrow' });
|
|
12693
|
+
class TableCell extends DateComponent {
|
|
12694
|
+
constructor() {
|
|
12695
|
+
super(...arguments);
|
|
12696
|
+
this.rootElRef = d();
|
|
12697
|
+
this.state = {
|
|
12698
|
+
dayNumberId: getUniqueDomId(),
|
|
12699
|
+
};
|
|
12700
|
+
this.handleRootEl = (el) => {
|
|
12701
|
+
setRef(this.rootElRef, el);
|
|
12702
|
+
setRef(this.props.elRef, el);
|
|
12703
|
+
};
|
|
12704
|
+
}
|
|
12705
|
+
render() {
|
|
12706
|
+
let { context, props, state, rootElRef } = this;
|
|
12707
|
+
let { options, dateEnv } = context;
|
|
12708
|
+
let { date, dateProfile } = props;
|
|
12709
|
+
// TODO: memoize this?
|
|
12710
|
+
const isMonthStart = props.showDayNumber &&
|
|
12711
|
+
shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);
|
|
12712
|
+
return (y(DayCellContainer, { elTag: "td", elRef: this.handleRootEl, elClasses: [
|
|
12713
|
+
'fc-daygrid-day',
|
|
12714
|
+
...(props.extraClassNames || []),
|
|
12715
|
+
], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (y("div", { ref: props.innerElRef, className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", style: { minHeight: props.minHeight } },
|
|
12716
|
+
props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$1 })),
|
|
12717
|
+
!renderProps.isDisabled &&
|
|
12718
|
+
(props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (y("div", { className: "fc-daygrid-day-top" },
|
|
12719
|
+
y(InnerContent, { elTag: "a", elClasses: [
|
|
12720
|
+
'fc-daygrid-day-number',
|
|
12721
|
+
isMonthStart && 'fc-daygrid-month-start',
|
|
12722
|
+
], elAttrs: Object.assign(Object.assign({}, buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (
|
|
12723
|
+
// for creating correct amount of space (see issue #7162)
|
|
12724
|
+
y("div", { className: "fc-daygrid-day-top", style: { visibility: 'hidden' } },
|
|
12725
|
+
y("a", { className: "fc-daygrid-day-number" }, "\u00A0"))) : undefined,
|
|
12726
|
+
y("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
|
|
12727
|
+
props.fgContent,
|
|
12728
|
+
y("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
|
|
12729
|
+
y(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),
|
|
12730
|
+
y("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))));
|
|
12731
|
+
}
|
|
12732
|
+
}
|
|
12733
|
+
function renderTopInner(props) {
|
|
12734
|
+
return props.dayNumberText || y(_, null, "\u00A0");
|
|
12735
|
+
}
|
|
12736
|
+
function shouldDisplayMonthStart(date, currentRange, dateEnv) {
|
|
12737
|
+
const { start: currentStart, end: currentEnd } = currentRange;
|
|
12738
|
+
const currentEndIncl = addMs(currentEnd, -1);
|
|
12739
|
+
const currentFirstYear = dateEnv.getYear(currentStart);
|
|
12740
|
+
const currentFirstMonth = dateEnv.getMonth(currentStart);
|
|
12741
|
+
const currentLastYear = dateEnv.getYear(currentEndIncl);
|
|
12742
|
+
const currentLastMonth = dateEnv.getMonth(currentEndIncl);
|
|
12743
|
+
// spans more than one month?
|
|
12744
|
+
return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&
|
|
12745
|
+
Boolean(
|
|
12746
|
+
// first date in current view?
|
|
12747
|
+
date.valueOf() === currentStart.valueOf() ||
|
|
12748
|
+
// a month-start that's within the current range?
|
|
12749
|
+
(dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));
|
|
12750
|
+
}
|
|
12751
|
+
|
|
12752
|
+
function generateSegKey(seg) {
|
|
12753
|
+
return seg.eventRange.instance.instanceId + ':' + seg.firstCol;
|
|
12754
|
+
}
|
|
12755
|
+
function generateSegUid(seg) {
|
|
12756
|
+
return generateSegKey(seg) + ':' + seg.lastCol;
|
|
12757
|
+
}
|
|
12758
|
+
function computeFgSegPlacement(segs, // assumed already sorted
|
|
12759
|
+
dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {
|
|
12760
|
+
let hierarchy = new DayGridSegHierarchy((segEntry) => {
|
|
12761
|
+
// TODO: more DRY with generateSegUid
|
|
12762
|
+
let segUid = segs[segEntry.index].eventRange.instance.instanceId +
|
|
12763
|
+
':' + segEntry.span.start +
|
|
12764
|
+
':' + (segEntry.span.end - 1);
|
|
12765
|
+
// if no thickness known, assume 1 (if 0, so small it always fits)
|
|
12766
|
+
return segHeights[segUid] || 1;
|
|
12767
|
+
});
|
|
12768
|
+
hierarchy.allowReslicing = true;
|
|
12769
|
+
hierarchy.strictOrder = strictOrder;
|
|
12770
|
+
if (dayMaxEvents === true || dayMaxEventRows === true) {
|
|
12771
|
+
hierarchy.maxCoord = maxContentHeight;
|
|
12772
|
+
hierarchy.hiddenConsumes = true;
|
|
12773
|
+
}
|
|
12774
|
+
else if (typeof dayMaxEvents === 'number') {
|
|
12775
|
+
hierarchy.maxStackCnt = dayMaxEvents;
|
|
12776
|
+
}
|
|
12777
|
+
else if (typeof dayMaxEventRows === 'number') {
|
|
12778
|
+
hierarchy.maxStackCnt = dayMaxEventRows;
|
|
12779
|
+
hierarchy.hiddenConsumes = true;
|
|
12780
|
+
}
|
|
12781
|
+
// create segInputs only for segs with known heights
|
|
12782
|
+
let segInputs = [];
|
|
12783
|
+
let unknownHeightSegs = [];
|
|
12784
|
+
for (let i = 0; i < segs.length; i += 1) {
|
|
12785
|
+
let seg = segs[i];
|
|
12786
|
+
let segUid = generateSegUid(seg);
|
|
12787
|
+
let eventHeight = segHeights[segUid];
|
|
12788
|
+
if (eventHeight != null) {
|
|
12789
|
+
segInputs.push({
|
|
12790
|
+
index: i,
|
|
12791
|
+
span: {
|
|
12792
|
+
start: seg.firstCol,
|
|
12793
|
+
end: seg.lastCol + 1,
|
|
12794
|
+
},
|
|
12795
|
+
});
|
|
12796
|
+
}
|
|
12797
|
+
else {
|
|
12798
|
+
unknownHeightSegs.push(seg);
|
|
12799
|
+
}
|
|
12800
|
+
}
|
|
12801
|
+
let hiddenEntries = hierarchy.addSegs(segInputs);
|
|
12802
|
+
let segRects = hierarchy.toRects();
|
|
12803
|
+
let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
|
|
12804
|
+
let moreCnts = [];
|
|
12805
|
+
let moreMarginTops = [];
|
|
12806
|
+
// add segs with unknown heights
|
|
12807
|
+
for (let seg of unknownHeightSegs) {
|
|
12808
|
+
multiColPlacements[seg.firstCol].push({
|
|
12809
|
+
seg,
|
|
12810
|
+
isVisible: false,
|
|
12811
|
+
isAbsolute: true,
|
|
12812
|
+
absoluteTop: 0,
|
|
12813
|
+
marginTop: 0,
|
|
12814
|
+
});
|
|
12815
|
+
for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
|
|
12816
|
+
singleColPlacements[col].push({
|
|
12817
|
+
seg: resliceSeg(seg, col, col + 1, cells),
|
|
12818
|
+
isVisible: false,
|
|
12819
|
+
isAbsolute: false,
|
|
12820
|
+
absoluteTop: 0,
|
|
12821
|
+
marginTop: 0,
|
|
12822
|
+
});
|
|
12823
|
+
}
|
|
12824
|
+
}
|
|
12825
|
+
// add the hidden entries
|
|
12826
|
+
for (let col = 0; col < cells.length; col += 1) {
|
|
12827
|
+
moreCnts.push(0);
|
|
12828
|
+
}
|
|
12829
|
+
for (let hiddenEntry of hiddenEntries) {
|
|
12830
|
+
let seg = segs[hiddenEntry.index];
|
|
12831
|
+
let hiddenSpan = hiddenEntry.span;
|
|
12832
|
+
multiColPlacements[hiddenSpan.start].push({
|
|
12833
|
+
seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),
|
|
12834
|
+
isVisible: false,
|
|
12835
|
+
isAbsolute: true,
|
|
12836
|
+
absoluteTop: 0,
|
|
12837
|
+
marginTop: 0,
|
|
12838
|
+
});
|
|
12839
|
+
for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
|
|
12840
|
+
moreCnts[col] += 1;
|
|
12841
|
+
singleColPlacements[col].push({
|
|
12842
|
+
seg: resliceSeg(seg, col, col + 1, cells),
|
|
12843
|
+
isVisible: false,
|
|
12844
|
+
isAbsolute: false,
|
|
12845
|
+
absoluteTop: 0,
|
|
12846
|
+
marginTop: 0,
|
|
12847
|
+
});
|
|
12848
|
+
}
|
|
12849
|
+
}
|
|
12850
|
+
// deal with leftover margins
|
|
12851
|
+
for (let col = 0; col < cells.length; col += 1) {
|
|
12852
|
+
moreMarginTops.push(leftoverMargins[col]);
|
|
12853
|
+
}
|
|
12854
|
+
return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
|
|
12855
|
+
}
|
|
12856
|
+
// rects ordered by top coord, then left
|
|
12857
|
+
function placeRects(allRects, segs, cells) {
|
|
12858
|
+
let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
|
|
12859
|
+
let singleColPlacements = [];
|
|
12860
|
+
let multiColPlacements = [];
|
|
12861
|
+
let leftoverMargins = [];
|
|
12862
|
+
for (let col = 0; col < cells.length; col += 1) {
|
|
12863
|
+
let rects = rectsByEachCol[col];
|
|
12864
|
+
// compute all static segs in singlePlacements
|
|
12865
|
+
let singlePlacements = [];
|
|
12866
|
+
let currentHeight = 0;
|
|
12867
|
+
let currentMarginTop = 0;
|
|
12868
|
+
for (let rect of rects) {
|
|
12869
|
+
let seg = segs[rect.index];
|
|
12870
|
+
singlePlacements.push({
|
|
12871
|
+
seg: resliceSeg(seg, col, col + 1, cells),
|
|
12872
|
+
isVisible: true,
|
|
12873
|
+
isAbsolute: false,
|
|
12874
|
+
absoluteTop: rect.levelCoord,
|
|
12875
|
+
marginTop: rect.levelCoord - currentHeight,
|
|
12876
|
+
});
|
|
12877
|
+
currentHeight = rect.levelCoord + rect.thickness;
|
|
12878
|
+
}
|
|
12879
|
+
// compute mixed static/absolute segs in multiPlacements
|
|
12880
|
+
let multiPlacements = [];
|
|
12881
|
+
currentHeight = 0;
|
|
12882
|
+
currentMarginTop = 0;
|
|
12883
|
+
for (let rect of rects) {
|
|
12884
|
+
let seg = segs[rect.index];
|
|
12885
|
+
let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?
|
|
12886
|
+
let isFirstCol = rect.span.start === col;
|
|
12887
|
+
currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg
|
|
12888
|
+
currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg
|
|
12889
|
+
if (isAbsolute) {
|
|
12890
|
+
currentMarginTop += rect.thickness;
|
|
12891
|
+
if (isFirstCol) {
|
|
12892
|
+
multiPlacements.push({
|
|
12893
|
+
seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
|
|
12894
|
+
isVisible: true,
|
|
12895
|
+
isAbsolute: true,
|
|
12896
|
+
absoluteTop: rect.levelCoord,
|
|
12897
|
+
marginTop: 0,
|
|
12898
|
+
});
|
|
12899
|
+
}
|
|
12900
|
+
}
|
|
12901
|
+
else if (isFirstCol) {
|
|
12902
|
+
multiPlacements.push({
|
|
12903
|
+
seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
|
|
12904
|
+
isVisible: true,
|
|
12905
|
+
isAbsolute: false,
|
|
12906
|
+
absoluteTop: rect.levelCoord,
|
|
12907
|
+
marginTop: currentMarginTop, // claim the margin
|
|
12908
|
+
});
|
|
12909
|
+
currentMarginTop = 0;
|
|
12910
|
+
}
|
|
12911
|
+
}
|
|
12912
|
+
singleColPlacements.push(singlePlacements);
|
|
12913
|
+
multiColPlacements.push(multiPlacements);
|
|
12914
|
+
leftoverMargins.push(currentMarginTop);
|
|
12915
|
+
}
|
|
12916
|
+
return { singleColPlacements, multiColPlacements, leftoverMargins };
|
|
12917
|
+
}
|
|
12918
|
+
function groupRectsByEachCol(rects, colCnt) {
|
|
12919
|
+
let rectsByEachCol = [];
|
|
12920
|
+
for (let col = 0; col < colCnt; col += 1) {
|
|
12921
|
+
rectsByEachCol.push([]);
|
|
12922
|
+
}
|
|
12923
|
+
for (let rect of rects) {
|
|
12924
|
+
for (let col = rect.span.start; col < rect.span.end; col += 1) {
|
|
12925
|
+
rectsByEachCol[col].push(rect);
|
|
12926
|
+
}
|
|
12927
|
+
}
|
|
12928
|
+
return rectsByEachCol;
|
|
12929
|
+
}
|
|
12930
|
+
function resliceSeg(seg, spanStart, spanEnd, cells) {
|
|
12931
|
+
if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {
|
|
12932
|
+
return seg;
|
|
12933
|
+
}
|
|
12934
|
+
let eventRange = seg.eventRange;
|
|
12935
|
+
let origRange = eventRange.range;
|
|
12936
|
+
let slicedRange = intersectRanges(origRange, {
|
|
12937
|
+
start: cells[spanStart].date,
|
|
12938
|
+
end: addDays(cells[spanEnd - 1].date, 1),
|
|
12939
|
+
});
|
|
12940
|
+
return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {
|
|
12941
|
+
def: eventRange.def,
|
|
12942
|
+
ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),
|
|
12943
|
+
instance: eventRange.instance,
|
|
12944
|
+
range: slicedRange,
|
|
12945
|
+
}, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });
|
|
12946
|
+
}
|
|
12947
|
+
class DayGridSegHierarchy extends SegHierarchy {
|
|
12948
|
+
constructor() {
|
|
12949
|
+
super(...arguments);
|
|
12950
|
+
// config
|
|
12951
|
+
this.hiddenConsumes = false;
|
|
12952
|
+
// allows us to keep hidden entries in the hierarchy so they take up space
|
|
12953
|
+
this.forceHidden = {};
|
|
12954
|
+
}
|
|
12955
|
+
addSegs(segInputs) {
|
|
12956
|
+
const hiddenSegs = super.addSegs(segInputs);
|
|
12957
|
+
const { entriesByLevel } = this;
|
|
12958
|
+
const excludeHidden = (entry) => !this.forceHidden[buildEntryKey(entry)];
|
|
12959
|
+
// remove the forced-hidden segs
|
|
12960
|
+
for (let level = 0; level < entriesByLevel.length; level += 1) {
|
|
12961
|
+
entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);
|
|
12962
|
+
}
|
|
12963
|
+
return hiddenSegs;
|
|
12964
|
+
}
|
|
12965
|
+
handleInvalidInsertion(insertion, entry, hiddenEntries) {
|
|
12966
|
+
const { entriesByLevel, forceHidden } = this;
|
|
12967
|
+
const { touchingEntry, touchingLevel, touchingLateral } = insertion;
|
|
12968
|
+
// the entry that the new insertion is touching must be hidden
|
|
12969
|
+
if (this.hiddenConsumes && touchingEntry) {
|
|
12970
|
+
const touchingEntryId = buildEntryKey(touchingEntry);
|
|
12971
|
+
if (!forceHidden[touchingEntryId]) {
|
|
12972
|
+
if (this.allowReslicing) {
|
|
12973
|
+
// split up the touchingEntry, reinsert it
|
|
12974
|
+
const hiddenEntry = Object.assign(Object.assign({}, touchingEntry), { span: intersectSpans(touchingEntry.span, entry.span) });
|
|
12975
|
+
// reinsert the area that turned into a "more" link (so no other entries try to
|
|
12976
|
+
// occupy the space) but mark it forced-hidden
|
|
12977
|
+
const hiddenEntryId = buildEntryKey(hiddenEntry);
|
|
12978
|
+
forceHidden[hiddenEntryId] = true;
|
|
12979
|
+
entriesByLevel[touchingLevel][touchingLateral] = hiddenEntry;
|
|
12980
|
+
hiddenEntries.push(hiddenEntry);
|
|
12981
|
+
this.splitEntry(touchingEntry, entry, hiddenEntries);
|
|
12982
|
+
}
|
|
12983
|
+
else {
|
|
12984
|
+
forceHidden[touchingEntryId] = true;
|
|
12985
|
+
hiddenEntries.push(touchingEntry);
|
|
12986
|
+
}
|
|
12987
|
+
}
|
|
12988
|
+
}
|
|
12989
|
+
// will try to reslice...
|
|
12990
|
+
super.handleInvalidInsertion(insertion, entry, hiddenEntries);
|
|
12991
|
+
}
|
|
12992
|
+
}
|
|
12993
|
+
|
|
12994
|
+
class TableRow extends DateComponent {
|
|
12995
|
+
constructor() {
|
|
12996
|
+
super(...arguments);
|
|
12997
|
+
this.cellElRefs = new RefMap(); // the <td>
|
|
12998
|
+
this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame
|
|
12999
|
+
this.fgElRefs = new RefMap(); // the fc-daygrid-day-events
|
|
13000
|
+
this.segHarnessRefs = new RefMap(); // indexed by "instanceId:firstCol"
|
|
13001
|
+
this.rootElRef = d();
|
|
13002
|
+
this.state = {
|
|
13003
|
+
framePositions: null,
|
|
13004
|
+
maxContentHeight: null,
|
|
13005
|
+
segHeights: {},
|
|
13006
|
+
};
|
|
13007
|
+
this.handleResize = (isForced) => {
|
|
13008
|
+
if (isForced) {
|
|
13009
|
+
this.updateSizing(true); // isExternal=true
|
|
13010
|
+
}
|
|
13011
|
+
};
|
|
13012
|
+
}
|
|
13013
|
+
render() {
|
|
13014
|
+
let { props, state, context } = this;
|
|
13015
|
+
let { options } = context;
|
|
13016
|
+
let colCnt = props.cells.length;
|
|
13017
|
+
let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
|
|
13018
|
+
let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
|
|
13019
|
+
let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
|
|
13020
|
+
let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
|
|
13021
|
+
let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
|
|
13022
|
+
let isForcedInvisible = // TODO: messy way to compute this
|
|
13023
|
+
(props.eventDrag && props.eventDrag.affectedInstances) ||
|
|
13024
|
+
(props.eventResize && props.eventResize.affectedInstances) ||
|
|
13025
|
+
{};
|
|
13026
|
+
return (y("tr", { ref: this.rootElRef, role: "row" },
|
|
13027
|
+
props.renderIntro && props.renderIntro(),
|
|
13028
|
+
props.cells.map((cell, col) => {
|
|
13029
|
+
let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
|
|
13030
|
+
let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
|
|
13031
|
+
return (y(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys
|
|
13032
|
+
y(_, null,
|
|
13033
|
+
y(_, null, normalFgNodes),
|
|
13034
|
+
y(_, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys
|
|
13035
|
+
y(_, null,
|
|
13036
|
+
this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
|
|
13037
|
+
this.renderFillSegs(businessHoursByCol[col], 'non-business'),
|
|
13038
|
+
this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));
|
|
13039
|
+
})));
|
|
13040
|
+
}
|
|
13041
|
+
componentDidMount() {
|
|
13042
|
+
this.updateSizing(true);
|
|
13043
|
+
this.context.addResizeHandler(this.handleResize);
|
|
13044
|
+
}
|
|
13045
|
+
componentDidUpdate(prevProps, prevState) {
|
|
13046
|
+
let currentProps = this.props;
|
|
13047
|
+
this.updateSizing(!isPropsEqual(prevProps, currentProps));
|
|
13048
|
+
}
|
|
13049
|
+
componentWillUnmount() {
|
|
13050
|
+
this.context.removeResizeHandler(this.handleResize);
|
|
13051
|
+
}
|
|
13052
|
+
getHighlightSegs() {
|
|
13053
|
+
let { props } = this;
|
|
13054
|
+
if (props.eventDrag && props.eventDrag.segs.length) { // messy check
|
|
13055
|
+
return props.eventDrag.segs;
|
|
13056
|
+
}
|
|
13057
|
+
if (props.eventResize && props.eventResize.segs.length) { // messy check
|
|
13058
|
+
return props.eventResize.segs;
|
|
13059
|
+
}
|
|
13060
|
+
return props.dateSelectionSegs;
|
|
13061
|
+
}
|
|
13062
|
+
getMirrorSegs() {
|
|
13063
|
+
let { props } = this;
|
|
13064
|
+
if (props.eventResize && props.eventResize.segs.length) { // messy check
|
|
13065
|
+
return props.eventResize.segs;
|
|
13066
|
+
}
|
|
13067
|
+
return [];
|
|
13068
|
+
}
|
|
13069
|
+
renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {
|
|
13070
|
+
let { context } = this;
|
|
13071
|
+
let { eventSelection } = this.props;
|
|
13072
|
+
let { framePositions } = this.state;
|
|
13073
|
+
let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1
|
|
13074
|
+
let isMirror = isDragging || isResizing || isDateSelecting;
|
|
13075
|
+
let nodes = [];
|
|
13076
|
+
if (framePositions) {
|
|
13077
|
+
for (let placement of segPlacements) {
|
|
13078
|
+
let { seg } = placement;
|
|
13079
|
+
let { instanceId } = seg.eventRange.instance;
|
|
13080
|
+
let isVisible = placement.isVisible && !isForcedInvisible[instanceId];
|
|
13081
|
+
let isAbsolute = placement.isAbsolute;
|
|
13082
|
+
let left = '';
|
|
13083
|
+
let right = '';
|
|
13084
|
+
if (isAbsolute) {
|
|
13085
|
+
if (context.isRtl) {
|
|
13086
|
+
right = 0;
|
|
13087
|
+
left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];
|
|
13088
|
+
}
|
|
13089
|
+
else {
|
|
13090
|
+
left = 0;
|
|
13091
|
+
right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];
|
|
13092
|
+
}
|
|
13093
|
+
}
|
|
13094
|
+
/*
|
|
13095
|
+
known bug: events that are force to be list-item but span multiple days still take up space in later columns
|
|
13096
|
+
todo: in print view, for multi-day events, don't display title within non-start/end segs
|
|
13097
|
+
*/
|
|
13098
|
+
nodes.push(y("div", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid(seg)), style: {
|
|
13099
|
+
visibility: isVisible ? '' : 'hidden',
|
|
13100
|
+
marginTop: isAbsolute ? '' : placement.marginTop,
|
|
13101
|
+
top: isAbsolute ? placement.absoluteTop : '',
|
|
13102
|
+
left,
|
|
13103
|
+
right,
|
|
13104
|
+
} }, hasListItemDisplay(seg) ? (y(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (y(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));
|
|
13105
|
+
}
|
|
13106
|
+
}
|
|
13107
|
+
return nodes;
|
|
13108
|
+
}
|
|
13109
|
+
renderFillSegs(segs, fillType) {
|
|
13110
|
+
let { isRtl } = this.context;
|
|
13111
|
+
let { todayRange } = this.props;
|
|
13112
|
+
let { framePositions } = this.state;
|
|
13113
|
+
let nodes = [];
|
|
13114
|
+
if (framePositions) {
|
|
13115
|
+
for (let seg of segs) {
|
|
13116
|
+
let leftRightCss = isRtl ? {
|
|
13117
|
+
right: 0,
|
|
13118
|
+
left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],
|
|
13119
|
+
} : {
|
|
13120
|
+
left: 0,
|
|
13121
|
+
right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],
|
|
13122
|
+
};
|
|
13123
|
+
nodes.push(y("div", { key: buildEventRangeKey(seg.eventRange), className: "fc-daygrid-bg-harness", style: leftRightCss }, fillType === 'bg-event' ?
|
|
13124
|
+
y(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :
|
|
13125
|
+
renderFill(fillType)));
|
|
13126
|
+
}
|
|
13127
|
+
}
|
|
13128
|
+
return y(_, {}, ...nodes);
|
|
13129
|
+
}
|
|
13130
|
+
updateSizing(isExternalSizingChange) {
|
|
13131
|
+
let { props, state, frameElRefs } = this;
|
|
13132
|
+
if (!props.forPrint &&
|
|
13133
|
+
props.clientWidth !== null // positioning ready?
|
|
13134
|
+
) {
|
|
13135
|
+
if (isExternalSizingChange) {
|
|
13136
|
+
let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);
|
|
13137
|
+
if (frameEls.length) {
|
|
13138
|
+
let originEl = this.rootElRef.current;
|
|
13139
|
+
let newPositionCache = new PositionCache(originEl, frameEls, true, // isHorizontal
|
|
13140
|
+
false);
|
|
13141
|
+
if (!state.framePositions || !state.framePositions.similarTo(newPositionCache)) {
|
|
13142
|
+
this.setState({
|
|
13143
|
+
framePositions: new PositionCache(originEl, frameEls, true, // isHorizontal
|
|
13144
|
+
false),
|
|
13145
|
+
});
|
|
13146
|
+
}
|
|
13147
|
+
}
|
|
13148
|
+
}
|
|
13149
|
+
const oldSegHeights = this.state.segHeights;
|
|
13150
|
+
const newSegHeights = this.querySegHeights();
|
|
13151
|
+
const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
|
|
13152
|
+
this.safeSetState({
|
|
13153
|
+
// HACK to prevent oscillations of events being shown/hidden from max-event-rows
|
|
13154
|
+
// Essentially, once you compute an element's height, never null-out.
|
|
13155
|
+
// TODO: always display all events, as visibility:hidden?
|
|
13156
|
+
segHeights: Object.assign(Object.assign({}, oldSegHeights), newSegHeights),
|
|
13157
|
+
maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,
|
|
13158
|
+
});
|
|
13159
|
+
}
|
|
13160
|
+
}
|
|
13161
|
+
querySegHeights() {
|
|
13162
|
+
let segElMap = this.segHarnessRefs.currentMap;
|
|
13163
|
+
let segHeights = {};
|
|
13164
|
+
// get the max height amongst instance segs
|
|
13165
|
+
for (let segUid in segElMap) {
|
|
13166
|
+
let height = Math.round(segElMap[segUid].getBoundingClientRect().height);
|
|
13167
|
+
segHeights[segUid] = Math.max(segHeights[segUid] || 0, height);
|
|
13168
|
+
}
|
|
13169
|
+
return segHeights;
|
|
13170
|
+
}
|
|
13171
|
+
computeMaxContentHeight() {
|
|
13172
|
+
let firstKey = this.props.cells[0].key;
|
|
13173
|
+
let cellEl = this.cellElRefs.currentMap[firstKey];
|
|
13174
|
+
let fcContainerEl = this.fgElRefs.currentMap[firstKey];
|
|
13175
|
+
return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;
|
|
13176
|
+
}
|
|
13177
|
+
getCellEls() {
|
|
13178
|
+
let elMap = this.cellElRefs.currentMap;
|
|
13179
|
+
return this.props.cells.map((cell) => elMap[cell.key]);
|
|
13180
|
+
}
|
|
13181
|
+
}
|
|
13182
|
+
TableRow.addStateEquality({
|
|
13183
|
+
segHeights: isPropsEqual,
|
|
13184
|
+
});
|
|
13185
|
+
function buildMirrorPlacements(mirrorSegs, colPlacements) {
|
|
13186
|
+
if (!mirrorSegs.length) {
|
|
13187
|
+
return [];
|
|
13188
|
+
}
|
|
13189
|
+
let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
|
|
13190
|
+
return mirrorSegs.map((seg) => ({
|
|
13191
|
+
seg,
|
|
13192
|
+
isVisible: true,
|
|
13193
|
+
isAbsolute: true,
|
|
13194
|
+
absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],
|
|
13195
|
+
marginTop: 0,
|
|
13196
|
+
}));
|
|
13197
|
+
}
|
|
13198
|
+
function buildAbsoluteTopHash(colPlacements) {
|
|
13199
|
+
let topsByInstanceId = {};
|
|
13200
|
+
for (let placements of colPlacements) {
|
|
13201
|
+
for (let placement of placements) {
|
|
13202
|
+
topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;
|
|
13203
|
+
}
|
|
13204
|
+
}
|
|
13205
|
+
return topsByInstanceId;
|
|
13206
|
+
}
|
|
13207
|
+
|
|
13208
|
+
class TableRows extends DateComponent {
|
|
13209
|
+
constructor() {
|
|
13210
|
+
super(...arguments);
|
|
13211
|
+
this.splitBusinessHourSegs = memoize(splitSegsByRow);
|
|
13212
|
+
this.splitBgEventSegs = memoize(splitSegsByRow);
|
|
13213
|
+
this.splitFgEventSegs = memoize(splitSegsByRow);
|
|
13214
|
+
this.splitDateSelectionSegs = memoize(splitSegsByRow);
|
|
13215
|
+
this.splitEventDrag = memoize(splitInteractionByRow);
|
|
13216
|
+
this.splitEventResize = memoize(splitInteractionByRow);
|
|
13217
|
+
this.rowRefs = new RefMap();
|
|
13218
|
+
}
|
|
13219
|
+
render() {
|
|
13220
|
+
let { props, context } = this;
|
|
13221
|
+
let rowCnt = props.cells.length;
|
|
13222
|
+
let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
|
|
13223
|
+
let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
|
|
13224
|
+
let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);
|
|
13225
|
+
let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
|
|
13226
|
+
let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
|
|
13227
|
+
let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
|
|
13228
|
+
// for DayGrid view with many rows, force a min-height on cells so doesn't appear squished
|
|
13229
|
+
// choose 7 because a month view will have max 6 rows
|
|
13230
|
+
let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?
|
|
13231
|
+
props.clientWidth / context.options.aspectRatio / 6 :
|
|
13232
|
+
null;
|
|
13233
|
+
return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y(_, null, props.cells.map((cells, row) => (y(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
|
|
13234
|
+
? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
|
|
13235
|
+
: row // in case there are no cells (like when resource view is loading)
|
|
13236
|
+
, showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));
|
|
13237
|
+
}
|
|
13238
|
+
componentDidMount() {
|
|
13239
|
+
this.registerInteractiveComponent();
|
|
13240
|
+
}
|
|
13241
|
+
componentDidUpdate() {
|
|
13242
|
+
// for if started with zero cells
|
|
13243
|
+
this.registerInteractiveComponent();
|
|
13244
|
+
}
|
|
13245
|
+
registerInteractiveComponent() {
|
|
13246
|
+
if (!this.rootEl) {
|
|
13247
|
+
// HACK: need a daygrid wrapper parent to do positioning
|
|
13248
|
+
// NOTE: a daygrid resource view w/o resources can have zero cells
|
|
13249
|
+
const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];
|
|
13250
|
+
const rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;
|
|
13251
|
+
if (rootEl) {
|
|
13252
|
+
this.rootEl = rootEl;
|
|
13253
|
+
this.context.registerInteractiveComponent(this, {
|
|
13254
|
+
el: rootEl,
|
|
13255
|
+
isHitComboAllowed: this.props.isHitComboAllowed,
|
|
13256
|
+
});
|
|
13257
|
+
}
|
|
13258
|
+
}
|
|
13259
|
+
}
|
|
13260
|
+
componentWillUnmount() {
|
|
13261
|
+
if (this.rootEl) {
|
|
13262
|
+
this.context.unregisterInteractiveComponent(this);
|
|
13263
|
+
this.rootEl = null;
|
|
13264
|
+
}
|
|
13265
|
+
}
|
|
13266
|
+
// Hit System
|
|
13267
|
+
// ----------------------------------------------------------------------------------------------------
|
|
13268
|
+
prepareHits() {
|
|
13269
|
+
this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal
|
|
13270
|
+
false, true);
|
|
13271
|
+
this.colPositions = new PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row
|
|
13272
|
+
true, // horizontal
|
|
13273
|
+
false);
|
|
13274
|
+
}
|
|
13275
|
+
queryHit(positionLeft, positionTop) {
|
|
13276
|
+
let { colPositions, rowPositions } = this;
|
|
13277
|
+
let col = colPositions.leftToIndex(positionLeft);
|
|
13278
|
+
let row = rowPositions.topToIndex(positionTop);
|
|
13279
|
+
if (row != null && col != null) {
|
|
13280
|
+
let cell = this.props.cells[row][col];
|
|
13281
|
+
return {
|
|
13282
|
+
dateProfile: this.props.dateProfile,
|
|
13283
|
+
dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),
|
|
13284
|
+
dayEl: this.getCellEl(row, col),
|
|
13285
|
+
rect: {
|
|
13286
|
+
left: colPositions.lefts[col],
|
|
13287
|
+
right: colPositions.rights[col],
|
|
13288
|
+
top: rowPositions.tops[row],
|
|
13289
|
+
bottom: rowPositions.bottoms[row],
|
|
13290
|
+
},
|
|
13291
|
+
layer: 0,
|
|
13292
|
+
};
|
|
13293
|
+
}
|
|
13294
|
+
return null;
|
|
13295
|
+
}
|
|
13296
|
+
getCellEl(row, col) {
|
|
13297
|
+
return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal
|
|
13298
|
+
}
|
|
13299
|
+
getCellRange(row, col) {
|
|
13300
|
+
let start = this.props.cells[row][col].date;
|
|
13301
|
+
let end = addDays(start, 1);
|
|
13302
|
+
return { start, end };
|
|
13303
|
+
}
|
|
13304
|
+
}
|
|
13305
|
+
function isSegAllDay(seg) {
|
|
13306
|
+
return seg.eventRange.def.allDay;
|
|
13307
|
+
}
|
|
13308
|
+
|
|
13309
|
+
class Table extends DateComponent {
|
|
13310
|
+
constructor() {
|
|
13311
|
+
super(...arguments);
|
|
13312
|
+
this.elRef = d();
|
|
13313
|
+
this.needsScrollReset = false;
|
|
13314
|
+
}
|
|
13315
|
+
render() {
|
|
13316
|
+
let { props } = this;
|
|
13317
|
+
let { dayMaxEventRows, dayMaxEvents, expandRows } = props;
|
|
13318
|
+
let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
|
|
13319
|
+
// if rows can't expand to fill fixed height, can't do balanced-height event limit
|
|
13320
|
+
// TODO: best place to normalize these options?
|
|
13321
|
+
if (limitViaBalanced && !expandRows) {
|
|
13322
|
+
limitViaBalanced = false;
|
|
13323
|
+
dayMaxEventRows = null;
|
|
13324
|
+
dayMaxEvents = null;
|
|
13325
|
+
}
|
|
13326
|
+
let classNames = [
|
|
13327
|
+
'fc-daygrid-body',
|
|
13328
|
+
limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',
|
|
13329
|
+
expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?
|
|
13330
|
+
];
|
|
13331
|
+
return (y("div", { ref: this.elRef, className: classNames.join(' '), style: {
|
|
13332
|
+
// these props are important to give this wrapper correct dimensions for interactions
|
|
13333
|
+
// TODO: if we set it here, can we avoid giving to inner tables?
|
|
13334
|
+
width: props.clientWidth,
|
|
13335
|
+
minWidth: props.tableMinWidth,
|
|
13336
|
+
} },
|
|
13337
|
+
y("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {
|
|
13338
|
+
width: props.clientWidth,
|
|
13339
|
+
minWidth: props.tableMinWidth,
|
|
13340
|
+
height: expandRows ? props.clientHeight : '',
|
|
13341
|
+
} },
|
|
13342
|
+
props.colGroupNode,
|
|
13343
|
+
y("tbody", { role: "presentation" },
|
|
13344
|
+
y(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));
|
|
13345
|
+
}
|
|
13346
|
+
componentDidMount() {
|
|
13347
|
+
this.requestScrollReset();
|
|
13348
|
+
}
|
|
13349
|
+
componentDidUpdate(prevProps) {
|
|
13350
|
+
if (prevProps.dateProfile !== this.props.dateProfile) {
|
|
13351
|
+
this.requestScrollReset();
|
|
13352
|
+
}
|
|
13353
|
+
else {
|
|
13354
|
+
this.flushScrollReset();
|
|
13355
|
+
}
|
|
13356
|
+
}
|
|
13357
|
+
requestScrollReset() {
|
|
13358
|
+
this.needsScrollReset = true;
|
|
13359
|
+
this.flushScrollReset();
|
|
13360
|
+
}
|
|
13361
|
+
flushScrollReset() {
|
|
13362
|
+
if (this.needsScrollReset &&
|
|
13363
|
+
this.props.clientWidth // sizes computed?
|
|
13364
|
+
) {
|
|
13365
|
+
const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);
|
|
13366
|
+
if (subjectEl) {
|
|
13367
|
+
const originEl = subjectEl.closest('.fc-daygrid-body');
|
|
13368
|
+
const scrollEl = originEl.closest('.fc-scroller');
|
|
13369
|
+
const scrollTop = subjectEl.getBoundingClientRect().top -
|
|
13370
|
+
originEl.getBoundingClientRect().top;
|
|
13371
|
+
scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border
|
|
13372
|
+
}
|
|
13373
|
+
this.needsScrollReset = false;
|
|
13374
|
+
}
|
|
13375
|
+
}
|
|
13376
|
+
}
|
|
13377
|
+
function getScrollSubjectEl(containerEl, dateProfile) {
|
|
13378
|
+
let el;
|
|
13379
|
+
if (dateProfile.currentRangeUnit.match(/year|month/)) {
|
|
13380
|
+
el = containerEl.querySelector(`[data-date="${formatIsoMonthStr(dateProfile.currentDate)}-01"]`);
|
|
13381
|
+
// even if view is month-based, first-of-month might be hidden...
|
|
13382
|
+
}
|
|
13383
|
+
if (!el) {
|
|
13384
|
+
el = containerEl.querySelector(`[data-date="${formatDayString(dateProfile.currentDate)}"]`);
|
|
13385
|
+
// could still be hidden if an interior-view hidden day
|
|
13386
|
+
}
|
|
13387
|
+
return el;
|
|
13388
|
+
}
|
|
13389
|
+
|
|
13390
|
+
class DayTableSlicer extends Slicer {
|
|
13391
|
+
constructor() {
|
|
13392
|
+
super(...arguments);
|
|
13393
|
+
this.forceDayIfListItem = true;
|
|
13394
|
+
}
|
|
13395
|
+
sliceRange(dateRange, dayTableModel) {
|
|
13396
|
+
return dayTableModel.sliceRange(dateRange);
|
|
13397
|
+
}
|
|
13398
|
+
}
|
|
13399
|
+
|
|
13400
|
+
class DayTable extends DateComponent {
|
|
13401
|
+
constructor() {
|
|
13402
|
+
super(...arguments);
|
|
13403
|
+
this.slicer = new DayTableSlicer();
|
|
13404
|
+
this.tableRef = d();
|
|
13405
|
+
}
|
|
13406
|
+
render() {
|
|
13407
|
+
let { props, context } = this;
|
|
13408
|
+
return (y(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));
|
|
13409
|
+
}
|
|
13410
|
+
}
|
|
13411
|
+
|
|
13412
|
+
var css_248z$1 = ":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\"\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}";
|
|
13413
|
+
injectStyles(css_248z$1);
|
|
13414
|
+
|
|
12577
13415
|
class AllDaySplitter extends Splitter {
|
|
12578
13416
|
getKeyInfo() {
|
|
12579
13417
|
return {
|
|
@@ -13962,7 +14800,7 @@ class KupCalendarState {
|
|
|
13962
14800
|
}
|
|
13963
14801
|
}
|
|
13964
14802
|
|
|
13965
|
-
const kupCalendarCss = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:var(--kup-label-01-font-size, 12px);line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-heading-compact-01-font-size, 14px);line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:var(--kup-heading-01-font-size, 14px);line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}:host{--kup_calendar_background_color:var(\n --kup-calendar-background-color,\n var(--kup-layer-1)\n );--kup_calendar_border_color:var(\n --kup-calendar-border-color,\n var(--kup-border-subtle)\n );--kup_calendar_event_background_color:var(\n --kup-calendar-event-background-color,\n var(--kup-gray-color-30)\n );--kup_calendar_event_border_radius:var(\n --kup-calendar-event-border-radius,\n 4px\n );--kup_calendar_event_color:var(\n --kup-calendar-event-color,\n var(--kup-text-secondary)\n );--kup_calendar_font_family:var(\n --kup-calendar-font-family,\n var(--kup-font-family)\n );--kup_calendar_font_size:var(--kup-calendar-font-size, var(--kup-font-size));--kup_calendar_header_background_color:var(\n --kup-calendar-header-background-color,\n var(--kup-layer-2)\n );--kup_calendar_header_color:var(\n --kup-calendar-header-color,\n var(--kup-text-secondary)\n );--kup_calendar_navigator_border:var(\n --kup-calendar-navigator-border,\n 1px solid var(--kup-border-subtle)\n );--kup_calendar_no_work_day_background_color:var(\n --kup-calendar-no-work-day-background-color,\n var(--kup-layer-0)\n );--kup_calendar_no_work_day_color:var(\n --kup-calendar-no-work-day-color,\n var(--kup-text-secondary)\n );--kup_calendar_today_background_color:var(\n --kup-calendar-today-background-color,\n var(--kup-layer-2)\n );--kup_calendar_border_top_color:var(\n --kup-calendar-border-top-color,\n var(--kup-border-interactive)\n );--fc-border-color:var(--kup_calendar_border_color);background-color:var(--kup_calendar_background_color);display:block;font-family:var(--kup_calendar_font_family);font-size:var(--kup_calendar_font_size);height:100%;width:100%}.navigation{align-items:center;display:flex;justify-content:space-between;background-color:var(--kup_calendar_background_color)}.navigation__left{--kup-font-size:0.875em;display:flex;margin-left:var(--kup-space-03)}.navigation__right{display:flex;margin-right:var(--kup-space-03)}.navigation__title{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0;margin:0px;padding:0px 0.5em}.navigation__title--centered{padding:0.35em 0;text-align:center;width:100%}.icon-wrapper{display:flex;justify-content:flex-end;flex-wrap:wrap}.image-wrapper{display:flex;justify-content:space-between;flex-wrap:wrap}.image-wrapper img{width:20px;height:20px}.custom-icon{background-color:var(--kup_calendar_event_color);height:1.5em;width:1.5em}#kup-component .fc-toolbar.fc-header-toolbar{margin-top:1.5rem}#kup-component .fc-ltr .fc-dayGrid-view .fc-day-top{text-align:center;padding:0.5rem}#kup-component .fc-ltr .fc-dayGrid-view .fc-day-top .fc-day-number{float:none}#kup-component .fc-content{padding:0.25rem}#kup-component .fc-event-title{white-space:normal;word-break:break-word}#kup-component .fc-content,#kup-component .fc-divider,#kup-component .fc-list-heading td,#kup-component .fc-list-view,#kup-component .fc-popover,#kup-component .fc-row,#kup-component .fc-scrollgrid,#kup-component tbody,#kup-component td{border-color:var(--kup_calendar_border_color)}#kup-component .fc-col-header-cell{background:var(--kup_calendar_header_background_color);color:var(--kup_calendar_header_color)}#kup-component .fc-h-event{background:none;border:none}#kup-component .fc-list-event-dot{border-color:var(--kup_calendar_event_background_color)}#kup-component .fc-list-day-cushion{background:var(--kup_calendar_header_background_color);color:var(--kup_calendar_header_color);font-family:var(--kup-font-family);font-size:var(--kup-heading-01-font-size, 14px);line-height:20px;font-weight:600;letter-spacing:0.16px}#kup-component .fc-list-event:hover td{background:var(--kup-hover-background-color);color:var(--kup-hover-color)}#kup-component .fc-daygrid-event,#kup-component .fc-timegrid-event{background:var(--kup_calendar_event_background_color);border:none;border-color:var(--kup_calendar_event_background_color);color:var(--kup_calendar_event_color)}#kup-component .fc-event{padding:0.5rem}#kup-component .fc-event-main{color:inherit;display:flex}#kup-component .fc-event-title .fc-event-time{padding:0.25em}#kup-component .fc-event-time{white-space:pre}#kup-component td.fc-day-today{background-color:var(--kup_calendar_today_background_color);border-top:2px solid var(--kup_calendar_border_top_color)}#kup-component td.fc-day-sun,#kup-component td.fc-day-sat{background-color:var(--kup_calendar_no_work_day_background_color);color:var(--kup_calendar_no_work_day_color);opacity:0.7}@media (max-width: 599px){.navigation{flex-direction:column}.calendar{height:100%}.calendar .fc-view-harness{min-height:450px}.navigation .navigation__left{font-size:20px;gap:8px}.navigation .navigation__right .f-chip .chip-set .chip-set__item{font-size:16px}}@media (min-width: 599px){#kup-component .fc-daygrid-event{align-items:baseline;white-space:pre-line}}";
|
|
14803
|
+
const kupCalendarCss = ".kup-body-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-body-compact-01-font-size, 14px);line-height:18px;font-weight:400;letter-spacing:0.16px}.kup-body-01{font-family:var(--kup-font-family);font-size:var(--kup-body-01-font-size, 14px);line-height:20px;font-weight:400;letter-spacing:0.16px}.kup-code-01{font-family:var(--kup-font-family-monospace);font-size:12px;line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-label-01{font-family:var(--kup-font-family);font-size:var(--kup-label-01-font-size, 12px);line-height:16px;font-weight:400;letter-spacing:0.32px}.kup-caption-02{font-family:var(--kup-font-family);font-size:12px;line-height:15px;font-weight:500;letter-spacing:1px}.kup-caption-01{font-family:var(--kup-font-family);font-size:10px;line-height:13px;font-weight:400;letter-spacing:1px}.kup-small-label-01{font-family:var(--kup-font-family);font-size:6px;line-height:9px;font-weight:400;letter-spacing:1px}.kup-heading-compact-01{font-family:var(--kup-font-family);font-size:var(--kup-heading-compact-01-font-size, 14px);line-height:18px;font-weight:600;letter-spacing:0.16px}.kup-heading-01{font-family:var(--kup-font-family);font-size:var(--kup-heading-01-font-size, 14px);line-height:20px;font-weight:600;letter-spacing:0.16px}.kup-heading-02{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0}.kup-heading-03{font-family:var(--kup-font-family);font-size:20px;line-height:28px;font-weight:400;letter-spacing:0}.kup-heading-04{font-family:var(--kup-font-family);font-size:28px;line-height:36px;font-weight:400;letter-spacing:0}.kup-heading-05{font-family:var(--kup-font-family);font-size:32px;line-height:40px;font-weight:300;letter-spacing:0}.kup-heading-06{font-family:var(--kup-font-family);font-size:42px;line-height:50px;font-weight:300;letter-spacing:0}.kup-heading-07{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:300;letter-spacing:0}.kup-heading-08{font-family:var(--kup-font-family);font-size:54px;line-height:64px;font-weight:600;letter-spacing:0}:host{--kup_calendar_background_color:var(\n --kup-calendar-background-color,\n var(--kup-layer-1)\n );--kup_calendar_border_color:var(\n --kup-calendar-border-color,\n var(--kup-border-subtle)\n );--kup_calendar_event_background_color:var(\n --kup-calendar-event-background-color,\n var(--kup-gray-color-30)\n );--kup_calendar_event_border_radius:var(\n --kup-calendar-event-border-radius,\n 4px\n );--kup_calendar_event_color:var(\n --kup-calendar-event-color,\n var(--kup-text-secondary)\n );--kup_calendar_font_family:var(\n --kup-calendar-font-family,\n var(--kup-font-family)\n );--kup_calendar_font_size:var(--kup-calendar-font-size, var(--kup-font-size));--kup_calendar_header_background_color:var(\n --kup-calendar-header-background-color,\n var(--kup-layer-2)\n );--kup_calendar_header_color:var(\n --kup-calendar-header-color,\n var(--kup-text-secondary)\n );--kup_calendar_navigator_border:var(\n --kup-calendar-navigator-border,\n 1px solid var(--kup-border-subtle)\n );--kup_calendar_no_work_day_background_color:var(\n --kup-calendar-no-work-day-background-color,\n var(--kup-layer-0)\n );--kup_calendar_no_work_day_color:var(\n --kup-calendar-no-work-day-color,\n var(--kup-text-secondary)\n );--kup_calendar_today_background_color:var(\n --kup-calendar-today-background-color,\n var(--kup-layer-2)\n );--kup_calendar_border_top_color:var(\n --kup-calendar-border-top-color,\n var(--kup-border-interactive)\n );--fc-border-color:var(--kup_calendar_border_color);background-color:var(--kup_calendar_background_color);display:block;font-family:var(--kup_calendar_font_family);font-size:var(--kup_calendar_font_size);height:100%;width:100%}.navigation{align-items:center;display:flex;justify-content:space-between;background-color:var(--kup_calendar_background_color)}.navigation__left{--kup-font-size:0.875em;display:flex;margin-left:var(--kup-space-03)}.navigation__right{display:flex;margin-right:var(--kup-space-03)}.navigation__title{font-family:var(--kup-font-family);font-size:16px;line-height:24px;font-weight:500;letter-spacing:0;margin:0px;padding:0px 0.5em}.navigation__title--centered{padding:0.35em 0;text-align:center;width:100%}.icon-wrapper{display:flex;justify-content:flex-end;flex-wrap:wrap}.image-wrapper{display:flex;justify-content:space-between;flex-wrap:wrap}.image-wrapper img{width:20px;height:20px}.custom-icon{background-color:var(--kup_calendar_event_color);height:1.5em;width:1.5em}#kup-component .fc-toolbar.fc-header-toolbar{margin-top:1.5rem}#kup-component .fc-ltr .fc-dayGrid-view .fc-day-top{text-align:center;padding:0.5rem}#kup-component .fc-ltr .fc-dayGrid-view .fc-day-top .fc-day-number{float:none}#kup-component .fc-content{padding:0.25rem}#kup-component .fc-event-title{white-space:normal;word-break:break-word}#kup-component .fc-content,#kup-component .fc-divider,#kup-component .fc-list-heading td,#kup-component .fc-list-view,#kup-component .fc-popover,#kup-component .fc-row,#kup-component .fc-scrollgrid,#kup-component tbody,#kup-component td{border-color:var(--kup_calendar_border_color)}#kup-component .fc-col-header-cell{background:var(--kup_calendar_header_background_color);color:var(--kup_calendar_header_color)}#kup-component .fc-h-event{background:none;border:none}#kup-component .fc-list-event-dot{border-color:var(--kup_calendar_event_background_color)}#kup-component .fc-list-day-cushion{background:var(--kup_calendar_header_background_color);color:var(--kup_calendar_header_color);font-family:var(--kup-font-family);font-size:var(--kup-heading-01-font-size, 14px);line-height:20px;font-weight:600;letter-spacing:0.16px}#kup-component .fc-list-event:hover td{background:var(--kup-hover-background-color);color:var(--kup-hover-color)}#kup-component .fc-daygrid-event,#kup-component .fc-timegrid-event{background:var(--kup_calendar_event_background_color);border:none;border-color:var(--kup_calendar_event_background_color);color:var(--kup_calendar_event_color)}#kup-component .fc-event{padding:0.5rem}#kup-component .fc-event-main{color:inherit;display:flex}#kup-component .fc-event-title .fc-event-time{padding:0.25em}#kup-component .fc-event-time{white-space:pre}#kup-component td.fc-day-today{background-color:var(--kup_calendar_today_background_color);border-top:2px solid var(--kup_calendar_border_top_color)}#kup-component td.fc-day-sun,#kup-component td.fc-day-sat{background-color:var(--kup_calendar_no_work_day_background_color);color:var(--kup_calendar_no_work_day_color);opacity:0.7}@media (max-width: 599px){.navigation{flex-direction:column}.calendar{height:100%}.calendar .fc-view-harness{min-height:450px}.fc-event{display:flex;flex-direction:column;padding:0.2rem;gap:var(--kup-space-03)}.fc-event .fc-event-main{display:flex;flex-direction:column}.fc-event .fc-daygrid-event-dot{display:none}.navigation .navigation__left{font-size:20px;gap:8px}.navigation .navigation__right .f-chip .chip-set .chip-set__item{font-size:16px}}@media (min-width: 599px){#kup-component .fc-daygrid-event{align-items:baseline;white-space:pre-line}}";
|
|
13966
14804
|
const KupCalendarStyle0 = kupCalendarCss;
|
|
13967
14805
|
|
|
13968
14806
|
const KupCalendar = class {
|