@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
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index$4 = require('./index-c7d441d8.js');
|
|
6
|
-
const kupManager = require('./kup-manager-
|
|
6
|
+
const kupManager = require('./kup-manager-c70d3188.js');
|
|
7
7
|
const GenericVariables = require('./GenericVariables-1d52ba57.js');
|
|
8
8
|
const fButton = require('./f-button-bfafefb3.js');
|
|
9
|
-
const fChip = require('./f-chip-
|
|
9
|
+
const fChip = require('./f-chip-f2d6124b.js');
|
|
10
10
|
const kupDates = require('./kup-dates-bc4cf9d0.js');
|
|
11
11
|
require('./f-button-declarations-76ef9f87.js');
|
|
12
12
|
require('./f-image-db10b066.js');
|
|
@@ -97,8 +97,8 @@ if (typeof document !== 'undefined') {
|
|
|
97
97
|
registerStylesRoot(document);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
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)}";
|
|
101
|
-
injectStyles(css_248z$
|
|
100
|
+
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,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\") 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)}";
|
|
101
|
+
injectStyles(css_248z$4);
|
|
102
102
|
|
|
103
103
|
class DelayedRunner {
|
|
104
104
|
constructor(drainedOption) {
|
|
@@ -7025,10 +7025,10 @@ class BgEvent extends BaseComponent {
|
|
|
7025
7025
|
render() {
|
|
7026
7026
|
let { props } = this;
|
|
7027
7027
|
let { seg } = props;
|
|
7028
|
-
return (y(EventContainer, { elTag: "div", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent$
|
|
7028
|
+
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 }));
|
|
7029
7029
|
}
|
|
7030
7030
|
}
|
|
7031
|
-
function renderInnerContent$
|
|
7031
|
+
function renderInnerContent$4(props) {
|
|
7032
7032
|
let { title } = props.event;
|
|
7033
7033
|
return title && (y("div", { className: "fc-event-title" }, props.event.title));
|
|
7034
7034
|
}
|
|
@@ -9468,7 +9468,7 @@ class TableView extends DateComponent {
|
|
|
9468
9468
|
}
|
|
9469
9469
|
}
|
|
9470
9470
|
|
|
9471
|
-
function splitSegsByRow(segs, rowCnt) {
|
|
9471
|
+
function splitSegsByRow$1(segs, rowCnt) {
|
|
9472
9472
|
let byRow = [];
|
|
9473
9473
|
for (let i = 0; i < rowCnt; i += 1) {
|
|
9474
9474
|
byRow[i] = [];
|
|
@@ -9478,7 +9478,7 @@ function splitSegsByRow(segs, rowCnt) {
|
|
|
9478
9478
|
}
|
|
9479
9479
|
return byRow;
|
|
9480
9480
|
}
|
|
9481
|
-
function splitSegsByFirstCol(segs, colCnt) {
|
|
9481
|
+
function splitSegsByFirstCol$1(segs, colCnt) {
|
|
9482
9482
|
let byCol = [];
|
|
9483
9483
|
for (let i = 0; i < colCnt; i += 1) {
|
|
9484
9484
|
byCol[i] = [];
|
|
@@ -9488,7 +9488,7 @@ function splitSegsByFirstCol(segs, colCnt) {
|
|
|
9488
9488
|
}
|
|
9489
9489
|
return byCol;
|
|
9490
9490
|
}
|
|
9491
|
-
function splitInteractionByRow(ui, rowCnt) {
|
|
9491
|
+
function splitInteractionByRow$1(ui, rowCnt) {
|
|
9492
9492
|
let byRow = [];
|
|
9493
9493
|
if (!ui) {
|
|
9494
9494
|
for (let i = 0; i < rowCnt; i += 1) {
|
|
@@ -9510,13 +9510,13 @@ function splitInteractionByRow(ui, rowCnt) {
|
|
|
9510
9510
|
return byRow;
|
|
9511
9511
|
}
|
|
9512
9512
|
|
|
9513
|
-
const DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({
|
|
9513
|
+
const DEFAULT_TABLE_EVENT_TIME_FORMAT$1 = createFormatter({
|
|
9514
9514
|
hour: 'numeric',
|
|
9515
9515
|
minute: '2-digit',
|
|
9516
9516
|
omitZeroMinute: true,
|
|
9517
9517
|
meridiem: 'narrow',
|
|
9518
9518
|
});
|
|
9519
|
-
function hasListItemDisplay(seg) {
|
|
9519
|
+
function hasListItemDisplay$1(seg) {
|
|
9520
9520
|
let { display } = seg.eventRange.ui;
|
|
9521
9521
|
return display === 'list-item' || (display === 'auto' &&
|
|
9522
9522
|
!seg.eventRange.def.allDay &&
|
|
@@ -9526,34 +9526,34 @@ function hasListItemDisplay(seg) {
|
|
|
9526
9526
|
);
|
|
9527
9527
|
}
|
|
9528
9528
|
|
|
9529
|
-
class TableBlockEvent extends BaseComponent {
|
|
9529
|
+
class TableBlockEvent$1 extends BaseComponent {
|
|
9530
9530
|
render() {
|
|
9531
9531
|
let { props } = this;
|
|
9532
|
-
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 })));
|
|
9532
|
+
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 })));
|
|
9533
9533
|
}
|
|
9534
9534
|
}
|
|
9535
9535
|
|
|
9536
|
-
class TableListItemEvent extends BaseComponent {
|
|
9536
|
+
class TableListItemEvent$1 extends BaseComponent {
|
|
9537
9537
|
render() {
|
|
9538
9538
|
let { props, context } = this;
|
|
9539
9539
|
let { options } = context;
|
|
9540
9540
|
let { seg } = props;
|
|
9541
|
-
let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
|
|
9541
|
+
let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT$1;
|
|
9542
9542
|
let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);
|
|
9543
|
-
return (y(EventContainer, Object.assign({}, props, { elTag: "a", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent$
|
|
9543
|
+
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 })));
|
|
9544
9544
|
}
|
|
9545
9545
|
}
|
|
9546
|
-
function renderInnerContent$
|
|
9546
|
+
function renderInnerContent$3(renderProps) {
|
|
9547
9547
|
return (y(_, null,
|
|
9548
9548
|
y("div", { className: "fc-daygrid-event-dot", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),
|
|
9549
9549
|
renderProps.timeText && (y("div", { className: "fc-event-time" }, renderProps.timeText)),
|
|
9550
9550
|
y("div", { className: "fc-event-title" }, renderProps.event.title || y(_, null, "\u00A0"))));
|
|
9551
9551
|
}
|
|
9552
9552
|
|
|
9553
|
-
class TableCellMoreLink extends BaseComponent {
|
|
9553
|
+
class TableCellMoreLink$1 extends BaseComponent {
|
|
9554
9554
|
constructor() {
|
|
9555
9555
|
super(...arguments);
|
|
9556
|
-
this.compileSegs = memoize(compileSegs);
|
|
9556
|
+
this.compileSegs = memoize(compileSegs$1);
|
|
9557
9557
|
}
|
|
9558
9558
|
render() {
|
|
9559
9559
|
let { props } = this;
|
|
@@ -9566,12 +9566,12 @@ class TableCellMoreLink extends BaseComponent {
|
|
|
9566
9566
|
let instanceId = seg.eventRange.instance.instanceId;
|
|
9567
9567
|
return (y("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
|
|
9568
9568
|
visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
|
|
9569
|
-
} }, 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))))));
|
|
9569
|
+
} }, 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))))));
|
|
9570
9570
|
})));
|
|
9571
9571
|
} }));
|
|
9572
9572
|
}
|
|
9573
9573
|
}
|
|
9574
|
-
function compileSegs(singlePlacements) {
|
|
9574
|
+
function compileSegs$1(singlePlacements) {
|
|
9575
9575
|
let allSegs = [];
|
|
9576
9576
|
let invisibleSegs = [];
|
|
9577
9577
|
for (let placement of singlePlacements) {
|
|
@@ -9583,8 +9583,8 @@ function compileSegs(singlePlacements) {
|
|
|
9583
9583
|
return { allSegs, invisibleSegs };
|
|
9584
9584
|
}
|
|
9585
9585
|
|
|
9586
|
-
const DEFAULT_WEEK_NUM_FORMAT$
|
|
9587
|
-
class TableCell extends DateComponent {
|
|
9586
|
+
const DEFAULT_WEEK_NUM_FORMAT$2 = createFormatter({ week: 'narrow' });
|
|
9587
|
+
class TableCell$1 extends DateComponent {
|
|
9588
9588
|
constructor() {
|
|
9589
9589
|
super(...arguments);
|
|
9590
9590
|
this.rootElRef = d();
|
|
@@ -9602,12 +9602,12 @@ class TableCell extends DateComponent {
|
|
|
9602
9602
|
let { date, dateProfile } = props;
|
|
9603
9603
|
// TODO: memoize this?
|
|
9604
9604
|
const isMonthStart = props.showDayNumber &&
|
|
9605
|
-
shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);
|
|
9605
|
+
shouldDisplayMonthStart$1(date, dateProfile.currentRange, dateEnv);
|
|
9606
9606
|
return (y(DayCellContainer, { elTag: "td", elRef: this.handleRootEl, elClasses: [
|
|
9607
9607
|
'fc-daygrid-day',
|
|
9608
9608
|
...(props.extraClassNames || []),
|
|
9609
|
-
], 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 } },
|
|
9610
|
-
props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$
|
|
9609
|
+
], 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 } },
|
|
9610
|
+
props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$2 })),
|
|
9611
9611
|
!renderProps.isDisabled &&
|
|
9612
9612
|
(props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (y("div", { className: "fc-daygrid-day-top" },
|
|
9613
9613
|
y(InnerContent, { elTag: "a", elClasses: [
|
|
@@ -9620,14 +9620,14 @@ class TableCell extends DateComponent {
|
|
|
9620
9620
|
y("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
|
|
9621
9621
|
props.fgContent,
|
|
9622
9622
|
y("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
|
|
9623
|
-
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 }))),
|
|
9623
|
+
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 }))),
|
|
9624
9624
|
y("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))));
|
|
9625
9625
|
}
|
|
9626
9626
|
}
|
|
9627
|
-
function renderTopInner(props) {
|
|
9627
|
+
function renderTopInner$1(props) {
|
|
9628
9628
|
return props.dayNumberText || y(_, null, "\u00A0");
|
|
9629
9629
|
}
|
|
9630
|
-
function shouldDisplayMonthStart(date, currentRange, dateEnv) {
|
|
9630
|
+
function shouldDisplayMonthStart$1(date, currentRange, dateEnv) {
|
|
9631
9631
|
const { start: currentStart, end: currentEnd } = currentRange;
|
|
9632
9632
|
const currentEndIncl = addMs(currentEnd, -1);
|
|
9633
9633
|
const currentFirstYear = dateEnv.getYear(currentStart);
|
|
@@ -9643,15 +9643,15 @@ function shouldDisplayMonthStart(date, currentRange, dateEnv) {
|
|
|
9643
9643
|
(dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));
|
|
9644
9644
|
}
|
|
9645
9645
|
|
|
9646
|
-
function generateSegKey(seg) {
|
|
9646
|
+
function generateSegKey$1(seg) {
|
|
9647
9647
|
return seg.eventRange.instance.instanceId + ':' + seg.firstCol;
|
|
9648
9648
|
}
|
|
9649
|
-
function generateSegUid(seg) {
|
|
9650
|
-
return generateSegKey(seg) + ':' + seg.lastCol;
|
|
9649
|
+
function generateSegUid$1(seg) {
|
|
9650
|
+
return generateSegKey$1(seg) + ':' + seg.lastCol;
|
|
9651
9651
|
}
|
|
9652
|
-
function computeFgSegPlacement(segs, // assumed already sorted
|
|
9652
|
+
function computeFgSegPlacement$1(segs, // assumed already sorted
|
|
9653
9653
|
dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {
|
|
9654
|
-
let hierarchy = new DayGridSegHierarchy((segEntry) => {
|
|
9654
|
+
let hierarchy = new DayGridSegHierarchy$1((segEntry) => {
|
|
9655
9655
|
// TODO: more DRY with generateSegUid
|
|
9656
9656
|
let segUid = segs[segEntry.index].eventRange.instance.instanceId +
|
|
9657
9657
|
':' + segEntry.span.start +
|
|
@@ -9677,7 +9677,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9677
9677
|
let unknownHeightSegs = [];
|
|
9678
9678
|
for (let i = 0; i < segs.length; i += 1) {
|
|
9679
9679
|
let seg = segs[i];
|
|
9680
|
-
let segUid = generateSegUid(seg);
|
|
9680
|
+
let segUid = generateSegUid$1(seg);
|
|
9681
9681
|
let eventHeight = segHeights[segUid];
|
|
9682
9682
|
if (eventHeight != null) {
|
|
9683
9683
|
segInputs.push({
|
|
@@ -9694,7 +9694,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9694
9694
|
}
|
|
9695
9695
|
let hiddenEntries = hierarchy.addSegs(segInputs);
|
|
9696
9696
|
let segRects = hierarchy.toRects();
|
|
9697
|
-
let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
|
|
9697
|
+
let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects$1(segRects, segs, cells);
|
|
9698
9698
|
let moreCnts = [];
|
|
9699
9699
|
let moreMarginTops = [];
|
|
9700
9700
|
// add segs with unknown heights
|
|
@@ -9708,7 +9708,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9708
9708
|
});
|
|
9709
9709
|
for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
|
|
9710
9710
|
singleColPlacements[col].push({
|
|
9711
|
-
seg: resliceSeg(seg, col, col + 1, cells),
|
|
9711
|
+
seg: resliceSeg$1(seg, col, col + 1, cells),
|
|
9712
9712
|
isVisible: false,
|
|
9713
9713
|
isAbsolute: false,
|
|
9714
9714
|
absoluteTop: 0,
|
|
@@ -9724,7 +9724,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9724
9724
|
let seg = segs[hiddenEntry.index];
|
|
9725
9725
|
let hiddenSpan = hiddenEntry.span;
|
|
9726
9726
|
multiColPlacements[hiddenSpan.start].push({
|
|
9727
|
-
seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),
|
|
9727
|
+
seg: resliceSeg$1(seg, hiddenSpan.start, hiddenSpan.end, cells),
|
|
9728
9728
|
isVisible: false,
|
|
9729
9729
|
isAbsolute: true,
|
|
9730
9730
|
absoluteTop: 0,
|
|
@@ -9733,7 +9733,7 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9733
9733
|
for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
|
|
9734
9734
|
moreCnts[col] += 1;
|
|
9735
9735
|
singleColPlacements[col].push({
|
|
9736
|
-
seg: resliceSeg(seg, col, col + 1, cells),
|
|
9736
|
+
seg: resliceSeg$1(seg, col, col + 1, cells),
|
|
9737
9737
|
isVisible: false,
|
|
9738
9738
|
isAbsolute: false,
|
|
9739
9739
|
absoluteTop: 0,
|
|
@@ -9748,8 +9748,8 @@ dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells)
|
|
|
9748
9748
|
return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
|
|
9749
9749
|
}
|
|
9750
9750
|
// rects ordered by top coord, then left
|
|
9751
|
-
function placeRects(allRects, segs, cells) {
|
|
9752
|
-
let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
|
|
9751
|
+
function placeRects$1(allRects, segs, cells) {
|
|
9752
|
+
let rectsByEachCol = groupRectsByEachCol$1(allRects, cells.length);
|
|
9753
9753
|
let singleColPlacements = [];
|
|
9754
9754
|
let multiColPlacements = [];
|
|
9755
9755
|
let leftoverMargins = [];
|
|
@@ -9762,7 +9762,7 @@ function placeRects(allRects, segs, cells) {
|
|
|
9762
9762
|
for (let rect of rects) {
|
|
9763
9763
|
let seg = segs[rect.index];
|
|
9764
9764
|
singlePlacements.push({
|
|
9765
|
-
seg: resliceSeg(seg, col, col + 1, cells),
|
|
9765
|
+
seg: resliceSeg$1(seg, col, col + 1, cells),
|
|
9766
9766
|
isVisible: true,
|
|
9767
9767
|
isAbsolute: false,
|
|
9768
9768
|
absoluteTop: rect.levelCoord,
|
|
@@ -9784,7 +9784,7 @@ function placeRects(allRects, segs, cells) {
|
|
|
9784
9784
|
currentMarginTop += rect.thickness;
|
|
9785
9785
|
if (isFirstCol) {
|
|
9786
9786
|
multiPlacements.push({
|
|
9787
|
-
seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
|
|
9787
|
+
seg: resliceSeg$1(seg, rect.span.start, rect.span.end, cells),
|
|
9788
9788
|
isVisible: true,
|
|
9789
9789
|
isAbsolute: true,
|
|
9790
9790
|
absoluteTop: rect.levelCoord,
|
|
@@ -9794,7 +9794,7 @@ function placeRects(allRects, segs, cells) {
|
|
|
9794
9794
|
}
|
|
9795
9795
|
else if (isFirstCol) {
|
|
9796
9796
|
multiPlacements.push({
|
|
9797
|
-
seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
|
|
9797
|
+
seg: resliceSeg$1(seg, rect.span.start, rect.span.end, cells),
|
|
9798
9798
|
isVisible: true,
|
|
9799
9799
|
isAbsolute: false,
|
|
9800
9800
|
absoluteTop: rect.levelCoord,
|
|
@@ -9809,7 +9809,7 @@ function placeRects(allRects, segs, cells) {
|
|
|
9809
9809
|
}
|
|
9810
9810
|
return { singleColPlacements, multiColPlacements, leftoverMargins };
|
|
9811
9811
|
}
|
|
9812
|
-
function groupRectsByEachCol(rects, colCnt) {
|
|
9812
|
+
function groupRectsByEachCol$1(rects, colCnt) {
|
|
9813
9813
|
let rectsByEachCol = [];
|
|
9814
9814
|
for (let col = 0; col < colCnt; col += 1) {
|
|
9815
9815
|
rectsByEachCol.push([]);
|
|
@@ -9821,7 +9821,7 @@ function groupRectsByEachCol(rects, colCnt) {
|
|
|
9821
9821
|
}
|
|
9822
9822
|
return rectsByEachCol;
|
|
9823
9823
|
}
|
|
9824
|
-
function resliceSeg(seg, spanStart, spanEnd, cells) {
|
|
9824
|
+
function resliceSeg$1(seg, spanStart, spanEnd, cells) {
|
|
9825
9825
|
if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {
|
|
9826
9826
|
return seg;
|
|
9827
9827
|
}
|
|
@@ -9838,7 +9838,7 @@ function resliceSeg(seg, spanStart, spanEnd, cells) {
|
|
|
9838
9838
|
range: slicedRange,
|
|
9839
9839
|
}, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });
|
|
9840
9840
|
}
|
|
9841
|
-
class DayGridSegHierarchy extends SegHierarchy {
|
|
9841
|
+
class DayGridSegHierarchy$1 extends SegHierarchy {
|
|
9842
9842
|
constructor() {
|
|
9843
9843
|
super(...arguments);
|
|
9844
9844
|
// config
|
|
@@ -9885,7 +9885,7 @@ class DayGridSegHierarchy extends SegHierarchy {
|
|
|
9885
9885
|
}
|
|
9886
9886
|
}
|
|
9887
9887
|
|
|
9888
|
-
class TableRow extends DateComponent {
|
|
9888
|
+
class TableRow$1 extends DateComponent {
|
|
9889
9889
|
constructor() {
|
|
9890
9890
|
super(...arguments);
|
|
9891
9891
|
this.cellElRefs = new RefMap(); // the <td>
|
|
@@ -9908,11 +9908,11 @@ class TableRow extends DateComponent {
|
|
|
9908
9908
|
let { props, state, context } = this;
|
|
9909
9909
|
let { options } = context;
|
|
9910
9910
|
let colCnt = props.cells.length;
|
|
9911
|
-
let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
|
|
9912
|
-
let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
|
|
9913
|
-
let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
|
|
9914
|
-
let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
|
|
9915
|
-
let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
|
|
9911
|
+
let businessHoursByCol = splitSegsByFirstCol$1(props.businessHourSegs, colCnt);
|
|
9912
|
+
let bgEventSegsByCol = splitSegsByFirstCol$1(props.bgEventSegs, colCnt);
|
|
9913
|
+
let highlightSegsByCol = splitSegsByFirstCol$1(this.getHighlightSegs(), colCnt);
|
|
9914
|
+
let mirrorSegsByCol = splitSegsByFirstCol$1(this.getMirrorSegs(), colCnt);
|
|
9915
|
+
let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement$1(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
|
|
9916
9916
|
let isForcedInvisible = // TODO: messy way to compute this
|
|
9917
9917
|
(props.eventDrag && props.eventDrag.affectedInstances) ||
|
|
9918
9918
|
(props.eventResize && props.eventResize.affectedInstances) ||
|
|
@@ -9921,8 +9921,8 @@ class TableRow extends DateComponent {
|
|
|
9921
9921
|
props.renderIntro && props.renderIntro(),
|
|
9922
9922
|
props.cells.map((cell, col) => {
|
|
9923
9923
|
let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
|
|
9924
|
-
let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
|
|
9925
|
-
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
|
|
9924
|
+
let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements$1(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
|
|
9925
|
+
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
|
|
9926
9926
|
y(_, null,
|
|
9927
9927
|
y(_, null, normalFgNodes),
|
|
9928
9928
|
y(_, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys
|
|
@@ -9989,13 +9989,13 @@ class TableRow extends DateComponent {
|
|
|
9989
9989
|
known bug: events that are force to be list-item but span multiple days still take up space in later columns
|
|
9990
9990
|
todo: in print view, for multi-day events, don't display title within non-start/end segs
|
|
9991
9991
|
*/
|
|
9992
|
-
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: {
|
|
9992
|
+
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: {
|
|
9993
9993
|
visibility: isVisible ? '' : 'hidden',
|
|
9994
9994
|
marginTop: isAbsolute ? '' : placement.marginTop,
|
|
9995
9995
|
top: isAbsolute ? placement.absoluteTop : '',
|
|
9996
9996
|
left,
|
|
9997
9997
|
right,
|
|
9998
|
-
} }, 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))))));
|
|
9998
|
+
} }, 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))))));
|
|
9999
9999
|
}
|
|
10000
10000
|
}
|
|
10001
10001
|
return nodes;
|
|
@@ -10073,14 +10073,14 @@ class TableRow extends DateComponent {
|
|
|
10073
10073
|
return this.props.cells.map((cell) => elMap[cell.key]);
|
|
10074
10074
|
}
|
|
10075
10075
|
}
|
|
10076
|
-
TableRow.addStateEquality({
|
|
10076
|
+
TableRow$1.addStateEquality({
|
|
10077
10077
|
segHeights: isPropsEqual,
|
|
10078
10078
|
});
|
|
10079
|
-
function buildMirrorPlacements(mirrorSegs, colPlacements) {
|
|
10079
|
+
function buildMirrorPlacements$1(mirrorSegs, colPlacements) {
|
|
10080
10080
|
if (!mirrorSegs.length) {
|
|
10081
10081
|
return [];
|
|
10082
10082
|
}
|
|
10083
|
-
let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
|
|
10083
|
+
let topsByInstanceId = buildAbsoluteTopHash$1(colPlacements); // TODO: cache this at first render?
|
|
10084
10084
|
return mirrorSegs.map((seg) => ({
|
|
10085
10085
|
seg,
|
|
10086
10086
|
isVisible: true,
|
|
@@ -10089,7 +10089,7 @@ function buildMirrorPlacements(mirrorSegs, colPlacements) {
|
|
|
10089
10089
|
marginTop: 0,
|
|
10090
10090
|
}));
|
|
10091
10091
|
}
|
|
10092
|
-
function buildAbsoluteTopHash(colPlacements) {
|
|
10092
|
+
function buildAbsoluteTopHash$1(colPlacements) {
|
|
10093
10093
|
let topsByInstanceId = {};
|
|
10094
10094
|
for (let placements of colPlacements) {
|
|
10095
10095
|
for (let placement of placements) {
|
|
@@ -10099,15 +10099,15 @@ function buildAbsoluteTopHash(colPlacements) {
|
|
|
10099
10099
|
return topsByInstanceId;
|
|
10100
10100
|
}
|
|
10101
10101
|
|
|
10102
|
-
class TableRows extends DateComponent {
|
|
10102
|
+
class TableRows$1 extends DateComponent {
|
|
10103
10103
|
constructor() {
|
|
10104
10104
|
super(...arguments);
|
|
10105
|
-
this.splitBusinessHourSegs = memoize(splitSegsByRow);
|
|
10106
|
-
this.splitBgEventSegs = memoize(splitSegsByRow);
|
|
10107
|
-
this.splitFgEventSegs = memoize(splitSegsByRow);
|
|
10108
|
-
this.splitDateSelectionSegs = memoize(splitSegsByRow);
|
|
10109
|
-
this.splitEventDrag = memoize(splitInteractionByRow);
|
|
10110
|
-
this.splitEventResize = memoize(splitInteractionByRow);
|
|
10105
|
+
this.splitBusinessHourSegs = memoize(splitSegsByRow$1);
|
|
10106
|
+
this.splitBgEventSegs = memoize(splitSegsByRow$1);
|
|
10107
|
+
this.splitFgEventSegs = memoize(splitSegsByRow$1);
|
|
10108
|
+
this.splitDateSelectionSegs = memoize(splitSegsByRow$1);
|
|
10109
|
+
this.splitEventDrag = memoize(splitInteractionByRow$1);
|
|
10110
|
+
this.splitEventResize = memoize(splitInteractionByRow$1);
|
|
10111
10111
|
this.rowRefs = new RefMap();
|
|
10112
10112
|
}
|
|
10113
10113
|
render() {
|
|
@@ -10124,10 +10124,10 @@ class TableRows extends DateComponent {
|
|
|
10124
10124
|
let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?
|
|
10125
10125
|
props.clientWidth / context.options.aspectRatio / 6 :
|
|
10126
10126
|
null;
|
|
10127
|
-
return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y(_, null, props.cells.map((cells, row) => (y(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
|
|
10127
|
+
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
|
|
10128
10128
|
? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
|
|
10129
10129
|
: row // in case there are no cells (like when resource view is loading)
|
|
10130
|
-
, 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 })))))));
|
|
10130
|
+
, 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 })))))));
|
|
10131
10131
|
}
|
|
10132
10132
|
componentDidMount() {
|
|
10133
10133
|
this.registerInteractiveComponent();
|
|
@@ -10196,11 +10196,11 @@ class TableRows extends DateComponent {
|
|
|
10196
10196
|
return { start, end };
|
|
10197
10197
|
}
|
|
10198
10198
|
}
|
|
10199
|
-
function isSegAllDay(seg) {
|
|
10199
|
+
function isSegAllDay$1(seg) {
|
|
10200
10200
|
return seg.eventRange.def.allDay;
|
|
10201
10201
|
}
|
|
10202
10202
|
|
|
10203
|
-
class Table extends DateComponent {
|
|
10203
|
+
class Table$1 extends DateComponent {
|
|
10204
10204
|
constructor() {
|
|
10205
10205
|
super(...arguments);
|
|
10206
10206
|
this.elRef = d();
|
|
@@ -10235,7 +10235,7 @@ class Table extends DateComponent {
|
|
|
10235
10235
|
} },
|
|
10236
10236
|
props.colGroupNode,
|
|
10237
10237
|
y("tbody", { role: "presentation" },
|
|
10238
|
-
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 })))));
|
|
10238
|
+
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 })))));
|
|
10239
10239
|
}
|
|
10240
10240
|
componentDidMount() {
|
|
10241
10241
|
this.requestScrollReset();
|
|
@@ -10256,7 +10256,7 @@ class Table extends DateComponent {
|
|
|
10256
10256
|
if (this.needsScrollReset &&
|
|
10257
10257
|
this.props.clientWidth // sizes computed?
|
|
10258
10258
|
) {
|
|
10259
|
-
const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);
|
|
10259
|
+
const subjectEl = getScrollSubjectEl$1(this.elRef.current, this.props.dateProfile);
|
|
10260
10260
|
if (subjectEl) {
|
|
10261
10261
|
const originEl = subjectEl.closest('.fc-daygrid-body');
|
|
10262
10262
|
const scrollEl = originEl.closest('.fc-scroller');
|
|
@@ -10268,7 +10268,7 @@ class Table extends DateComponent {
|
|
|
10268
10268
|
}
|
|
10269
10269
|
}
|
|
10270
10270
|
}
|
|
10271
|
-
function getScrollSubjectEl(containerEl, dateProfile) {
|
|
10271
|
+
function getScrollSubjectEl$1(containerEl, dateProfile) {
|
|
10272
10272
|
let el;
|
|
10273
10273
|
if (dateProfile.currentRangeUnit.match(/year|month/)) {
|
|
10274
10274
|
el = containerEl.querySelector(`[data-date="${formatIsoMonthStr(dateProfile.currentDate)}-01"]`);
|
|
@@ -10281,7 +10281,7 @@ function getScrollSubjectEl(containerEl, dateProfile) {
|
|
|
10281
10281
|
return el;
|
|
10282
10282
|
}
|
|
10283
10283
|
|
|
10284
|
-
class DayTableSlicer extends Slicer {
|
|
10284
|
+
class DayTableSlicer$1 extends Slicer {
|
|
10285
10285
|
constructor() {
|
|
10286
10286
|
super(...arguments);
|
|
10287
10287
|
this.forceDayIfListItem = true;
|
|
@@ -10291,15 +10291,15 @@ class DayTableSlicer extends Slicer {
|
|
|
10291
10291
|
}
|
|
10292
10292
|
}
|
|
10293
10293
|
|
|
10294
|
-
class DayTable extends DateComponent {
|
|
10294
|
+
class DayTable$1 extends DateComponent {
|
|
10295
10295
|
constructor() {
|
|
10296
10296
|
super(...arguments);
|
|
10297
|
-
this.slicer = new DayTableSlicer();
|
|
10297
|
+
this.slicer = new DayTableSlicer$1();
|
|
10298
10298
|
this.tableRef = d();
|
|
10299
10299
|
}
|
|
10300
10300
|
render() {
|
|
10301
10301
|
let { props, context } = this;
|
|
10302
|
-
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 })));
|
|
10302
|
+
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 })));
|
|
10303
10303
|
}
|
|
10304
10304
|
}
|
|
10305
10305
|
|
|
@@ -10316,7 +10316,7 @@ class DayTableView extends TableView {
|
|
|
10316
10316
|
let { props } = this;
|
|
10317
10317
|
let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);
|
|
10318
10318
|
let headerContent = options.dayHeaders && (y(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));
|
|
10319
|
-
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 }));
|
|
10319
|
+
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 }));
|
|
10320
10320
|
return options.dayMinWidth
|
|
10321
10321
|
? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)
|
|
10322
10322
|
: this.renderSimpleLayout(headerContent, bodyContent);
|
|
@@ -10365,8 +10365,8 @@ function buildDayTableRenderRange(props) {
|
|
|
10365
10365
|
return { start, end };
|
|
10366
10366
|
}
|
|
10367
10367
|
|
|
10368
|
-
var css_248z$
|
|
10369
|
-
injectStyles(css_248z$
|
|
10368
|
+
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}";
|
|
10369
|
+
injectStyles(css_248z$3);
|
|
10370
10370
|
|
|
10371
10371
|
var index$3 = createPlugin({
|
|
10372
10372
|
name: '@fullcalendar/daygrid',
|
|
@@ -12294,7 +12294,7 @@ class ListViewHeaderRow extends BaseComponent {
|
|
|
12294
12294
|
...getDayClassNames(dayMeta, theme),
|
|
12295
12295
|
], elAttrs: {
|
|
12296
12296
|
'data-date': formatDayString(dayDate),
|
|
12297
|
-
}, renderProps: renderProps, generatorName: "dayHeaderContent", customGenerator: options.dayHeaderContent, defaultGenerator: renderInnerContent$
|
|
12297
|
+
}, 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
|
|
12298
12298
|
y("th", { scope: "colgroup", colSpan: 3, id: cellId, "aria-labelledby": textId },
|
|
12299
12299
|
y(InnerContent, { elTag: "div", elClasses: [
|
|
12300
12300
|
'fc-list-day-cushion',
|
|
@@ -12302,7 +12302,7 @@ class ListViewHeaderRow extends BaseComponent {
|
|
|
12302
12302
|
] })))));
|
|
12303
12303
|
}
|
|
12304
12304
|
}
|
|
12305
|
-
function renderInnerContent$
|
|
12305
|
+
function renderInnerContent$2(props) {
|
|
12306
12306
|
return (y(_, null,
|
|
12307
12307
|
props.text && (y("a", Object.assign({ id: props.textId, className: "fc-list-day-text" }, props.navLinkAttrs), props.text)),
|
|
12308
12308
|
props.sideText && ( /* not keyboard tabbable */y("a", Object.assign({ "aria-hidden": true, className: "fc-list-day-side-text" }, props.sideNavLinkAttrs), props.sideText))));
|
|
@@ -12529,8 +12529,8 @@ function groupSegsByDay(segs) {
|
|
|
12529
12529
|
return segsByDay;
|
|
12530
12530
|
}
|
|
12531
12531
|
|
|
12532
|
-
var css_248z$
|
|
12533
|
-
injectStyles(css_248z$
|
|
12532
|
+
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}";
|
|
12533
|
+
injectStyles(css_248z$2);
|
|
12534
12534
|
|
|
12535
12535
|
const OPTION_REFINERS$1 = {
|
|
12536
12536
|
listDayFormat: createFalsableFormatter,
|
|
@@ -12578,6 +12578,844 @@ var index$1 = createPlugin({
|
|
|
12578
12578
|
},
|
|
12579
12579
|
});
|
|
12580
12580
|
|
|
12581
|
+
function splitSegsByRow(segs, rowCnt) {
|
|
12582
|
+
let byRow = [];
|
|
12583
|
+
for (let i = 0; i < rowCnt; i += 1) {
|
|
12584
|
+
byRow[i] = [];
|
|
12585
|
+
}
|
|
12586
|
+
for (let seg of segs) {
|
|
12587
|
+
byRow[seg.row].push(seg);
|
|
12588
|
+
}
|
|
12589
|
+
return byRow;
|
|
12590
|
+
}
|
|
12591
|
+
function splitSegsByFirstCol(segs, colCnt) {
|
|
12592
|
+
let byCol = [];
|
|
12593
|
+
for (let i = 0; i < colCnt; i += 1) {
|
|
12594
|
+
byCol[i] = [];
|
|
12595
|
+
}
|
|
12596
|
+
for (let seg of segs) {
|
|
12597
|
+
byCol[seg.firstCol].push(seg);
|
|
12598
|
+
}
|
|
12599
|
+
return byCol;
|
|
12600
|
+
}
|
|
12601
|
+
function splitInteractionByRow(ui, rowCnt) {
|
|
12602
|
+
let byRow = [];
|
|
12603
|
+
if (!ui) {
|
|
12604
|
+
for (let i = 0; i < rowCnt; i += 1) {
|
|
12605
|
+
byRow[i] = null;
|
|
12606
|
+
}
|
|
12607
|
+
}
|
|
12608
|
+
else {
|
|
12609
|
+
for (let i = 0; i < rowCnt; i += 1) {
|
|
12610
|
+
byRow[i] = {
|
|
12611
|
+
affectedInstances: ui.affectedInstances,
|
|
12612
|
+
isEvent: ui.isEvent,
|
|
12613
|
+
segs: [],
|
|
12614
|
+
};
|
|
12615
|
+
}
|
|
12616
|
+
for (let seg of ui.segs) {
|
|
12617
|
+
byRow[seg.row].segs.push(seg);
|
|
12618
|
+
}
|
|
12619
|
+
}
|
|
12620
|
+
return byRow;
|
|
12621
|
+
}
|
|
12622
|
+
|
|
12623
|
+
const DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({
|
|
12624
|
+
hour: 'numeric',
|
|
12625
|
+
minute: '2-digit',
|
|
12626
|
+
omitZeroMinute: true,
|
|
12627
|
+
meridiem: 'narrow',
|
|
12628
|
+
});
|
|
12629
|
+
function hasListItemDisplay(seg) {
|
|
12630
|
+
let { display } = seg.eventRange.ui;
|
|
12631
|
+
return display === 'list-item' || (display === 'auto' &&
|
|
12632
|
+
!seg.eventRange.def.allDay &&
|
|
12633
|
+
seg.firstCol === seg.lastCol && // can't be multi-day
|
|
12634
|
+
seg.isStart && // "
|
|
12635
|
+
seg.isEnd // "
|
|
12636
|
+
);
|
|
12637
|
+
}
|
|
12638
|
+
|
|
12639
|
+
class TableBlockEvent extends BaseComponent {
|
|
12640
|
+
render() {
|
|
12641
|
+
let { props } = this;
|
|
12642
|
+
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 })));
|
|
12643
|
+
}
|
|
12644
|
+
}
|
|
12645
|
+
|
|
12646
|
+
class TableListItemEvent extends BaseComponent {
|
|
12647
|
+
render() {
|
|
12648
|
+
let { props, context } = this;
|
|
12649
|
+
let { options } = context;
|
|
12650
|
+
let { seg } = props;
|
|
12651
|
+
let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;
|
|
12652
|
+
let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);
|
|
12653
|
+
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 })));
|
|
12654
|
+
}
|
|
12655
|
+
}
|
|
12656
|
+
function renderInnerContent$1(renderProps) {
|
|
12657
|
+
return (y(_, null,
|
|
12658
|
+
y("div", { className: "fc-daygrid-event-dot", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),
|
|
12659
|
+
renderProps.timeText && (y("div", { className: "fc-event-time" }, renderProps.timeText)),
|
|
12660
|
+
y("div", { className: "fc-event-title" }, renderProps.event.title || y(_, null, "\u00A0"))));
|
|
12661
|
+
}
|
|
12662
|
+
|
|
12663
|
+
class TableCellMoreLink extends BaseComponent {
|
|
12664
|
+
constructor() {
|
|
12665
|
+
super(...arguments);
|
|
12666
|
+
this.compileSegs = memoize(compileSegs);
|
|
12667
|
+
}
|
|
12668
|
+
render() {
|
|
12669
|
+
let { props } = this;
|
|
12670
|
+
let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);
|
|
12671
|
+
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: () => {
|
|
12672
|
+
let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||
|
|
12673
|
+
(props.eventResize ? props.eventResize.affectedInstances : null) ||
|
|
12674
|
+
{};
|
|
12675
|
+
return (y(_, null, allSegs.map((seg) => {
|
|
12676
|
+
let instanceId = seg.eventRange.instance.instanceId;
|
|
12677
|
+
return (y("div", { className: "fc-daygrid-event-harness", key: instanceId, style: {
|
|
12678
|
+
visibility: isForcedInvisible[instanceId] ? 'hidden' : '',
|
|
12679
|
+
} }, 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))))));
|
|
12680
|
+
})));
|
|
12681
|
+
} }));
|
|
12682
|
+
}
|
|
12683
|
+
}
|
|
12684
|
+
function compileSegs(singlePlacements) {
|
|
12685
|
+
let allSegs = [];
|
|
12686
|
+
let invisibleSegs = [];
|
|
12687
|
+
for (let placement of singlePlacements) {
|
|
12688
|
+
allSegs.push(placement.seg);
|
|
12689
|
+
if (!placement.isVisible) {
|
|
12690
|
+
invisibleSegs.push(placement.seg);
|
|
12691
|
+
}
|
|
12692
|
+
}
|
|
12693
|
+
return { allSegs, invisibleSegs };
|
|
12694
|
+
}
|
|
12695
|
+
|
|
12696
|
+
const DEFAULT_WEEK_NUM_FORMAT$1 = createFormatter({ week: 'narrow' });
|
|
12697
|
+
class TableCell extends DateComponent {
|
|
12698
|
+
constructor() {
|
|
12699
|
+
super(...arguments);
|
|
12700
|
+
this.rootElRef = d();
|
|
12701
|
+
this.state = {
|
|
12702
|
+
dayNumberId: getUniqueDomId(),
|
|
12703
|
+
};
|
|
12704
|
+
this.handleRootEl = (el) => {
|
|
12705
|
+
setRef(this.rootElRef, el);
|
|
12706
|
+
setRef(this.props.elRef, el);
|
|
12707
|
+
};
|
|
12708
|
+
}
|
|
12709
|
+
render() {
|
|
12710
|
+
let { context, props, state, rootElRef } = this;
|
|
12711
|
+
let { options, dateEnv } = context;
|
|
12712
|
+
let { date, dateProfile } = props;
|
|
12713
|
+
// TODO: memoize this?
|
|
12714
|
+
const isMonthStart = props.showDayNumber &&
|
|
12715
|
+
shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);
|
|
12716
|
+
return (y(DayCellContainer, { elTag: "td", elRef: this.handleRootEl, elClasses: [
|
|
12717
|
+
'fc-daygrid-day',
|
|
12718
|
+
...(props.extraClassNames || []),
|
|
12719
|
+
], 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 } },
|
|
12720
|
+
props.showWeekNumber && (y(WeekNumberContainer, { elTag: "a", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT$1 })),
|
|
12721
|
+
!renderProps.isDisabled &&
|
|
12722
|
+
(props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (y("div", { className: "fc-daygrid-day-top" },
|
|
12723
|
+
y(InnerContent, { elTag: "a", elClasses: [
|
|
12724
|
+
'fc-daygrid-day-number',
|
|
12725
|
+
isMonthStart && 'fc-daygrid-month-start',
|
|
12726
|
+
], elAttrs: Object.assign(Object.assign({}, buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (
|
|
12727
|
+
// for creating correct amount of space (see issue #7162)
|
|
12728
|
+
y("div", { className: "fc-daygrid-day-top", style: { visibility: 'hidden' } },
|
|
12729
|
+
y("a", { className: "fc-daygrid-day-number" }, "\u00A0"))) : undefined,
|
|
12730
|
+
y("div", { className: "fc-daygrid-day-events", ref: props.fgContentElRef },
|
|
12731
|
+
props.fgContent,
|
|
12732
|
+
y("div", { className: "fc-daygrid-day-bottom", style: { marginTop: props.moreMarginTop } },
|
|
12733
|
+
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 }))),
|
|
12734
|
+
y("div", { className: "fc-daygrid-day-bg" }, props.bgContent)))));
|
|
12735
|
+
}
|
|
12736
|
+
}
|
|
12737
|
+
function renderTopInner(props) {
|
|
12738
|
+
return props.dayNumberText || y(_, null, "\u00A0");
|
|
12739
|
+
}
|
|
12740
|
+
function shouldDisplayMonthStart(date, currentRange, dateEnv) {
|
|
12741
|
+
const { start: currentStart, end: currentEnd } = currentRange;
|
|
12742
|
+
const currentEndIncl = addMs(currentEnd, -1);
|
|
12743
|
+
const currentFirstYear = dateEnv.getYear(currentStart);
|
|
12744
|
+
const currentFirstMonth = dateEnv.getMonth(currentStart);
|
|
12745
|
+
const currentLastYear = dateEnv.getYear(currentEndIncl);
|
|
12746
|
+
const currentLastMonth = dateEnv.getMonth(currentEndIncl);
|
|
12747
|
+
// spans more than one month?
|
|
12748
|
+
return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&
|
|
12749
|
+
Boolean(
|
|
12750
|
+
// first date in current view?
|
|
12751
|
+
date.valueOf() === currentStart.valueOf() ||
|
|
12752
|
+
// a month-start that's within the current range?
|
|
12753
|
+
(dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));
|
|
12754
|
+
}
|
|
12755
|
+
|
|
12756
|
+
function generateSegKey(seg) {
|
|
12757
|
+
return seg.eventRange.instance.instanceId + ':' + seg.firstCol;
|
|
12758
|
+
}
|
|
12759
|
+
function generateSegUid(seg) {
|
|
12760
|
+
return generateSegKey(seg) + ':' + seg.lastCol;
|
|
12761
|
+
}
|
|
12762
|
+
function computeFgSegPlacement(segs, // assumed already sorted
|
|
12763
|
+
dayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {
|
|
12764
|
+
let hierarchy = new DayGridSegHierarchy((segEntry) => {
|
|
12765
|
+
// TODO: more DRY with generateSegUid
|
|
12766
|
+
let segUid = segs[segEntry.index].eventRange.instance.instanceId +
|
|
12767
|
+
':' + segEntry.span.start +
|
|
12768
|
+
':' + (segEntry.span.end - 1);
|
|
12769
|
+
// if no thickness known, assume 1 (if 0, so small it always fits)
|
|
12770
|
+
return segHeights[segUid] || 1;
|
|
12771
|
+
});
|
|
12772
|
+
hierarchy.allowReslicing = true;
|
|
12773
|
+
hierarchy.strictOrder = strictOrder;
|
|
12774
|
+
if (dayMaxEvents === true || dayMaxEventRows === true) {
|
|
12775
|
+
hierarchy.maxCoord = maxContentHeight;
|
|
12776
|
+
hierarchy.hiddenConsumes = true;
|
|
12777
|
+
}
|
|
12778
|
+
else if (typeof dayMaxEvents === 'number') {
|
|
12779
|
+
hierarchy.maxStackCnt = dayMaxEvents;
|
|
12780
|
+
}
|
|
12781
|
+
else if (typeof dayMaxEventRows === 'number') {
|
|
12782
|
+
hierarchy.maxStackCnt = dayMaxEventRows;
|
|
12783
|
+
hierarchy.hiddenConsumes = true;
|
|
12784
|
+
}
|
|
12785
|
+
// create segInputs only for segs with known heights
|
|
12786
|
+
let segInputs = [];
|
|
12787
|
+
let unknownHeightSegs = [];
|
|
12788
|
+
for (let i = 0; i < segs.length; i += 1) {
|
|
12789
|
+
let seg = segs[i];
|
|
12790
|
+
let segUid = generateSegUid(seg);
|
|
12791
|
+
let eventHeight = segHeights[segUid];
|
|
12792
|
+
if (eventHeight != null) {
|
|
12793
|
+
segInputs.push({
|
|
12794
|
+
index: i,
|
|
12795
|
+
span: {
|
|
12796
|
+
start: seg.firstCol,
|
|
12797
|
+
end: seg.lastCol + 1,
|
|
12798
|
+
},
|
|
12799
|
+
});
|
|
12800
|
+
}
|
|
12801
|
+
else {
|
|
12802
|
+
unknownHeightSegs.push(seg);
|
|
12803
|
+
}
|
|
12804
|
+
}
|
|
12805
|
+
let hiddenEntries = hierarchy.addSegs(segInputs);
|
|
12806
|
+
let segRects = hierarchy.toRects();
|
|
12807
|
+
let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);
|
|
12808
|
+
let moreCnts = [];
|
|
12809
|
+
let moreMarginTops = [];
|
|
12810
|
+
// add segs with unknown heights
|
|
12811
|
+
for (let seg of unknownHeightSegs) {
|
|
12812
|
+
multiColPlacements[seg.firstCol].push({
|
|
12813
|
+
seg,
|
|
12814
|
+
isVisible: false,
|
|
12815
|
+
isAbsolute: true,
|
|
12816
|
+
absoluteTop: 0,
|
|
12817
|
+
marginTop: 0,
|
|
12818
|
+
});
|
|
12819
|
+
for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {
|
|
12820
|
+
singleColPlacements[col].push({
|
|
12821
|
+
seg: resliceSeg(seg, col, col + 1, cells),
|
|
12822
|
+
isVisible: false,
|
|
12823
|
+
isAbsolute: false,
|
|
12824
|
+
absoluteTop: 0,
|
|
12825
|
+
marginTop: 0,
|
|
12826
|
+
});
|
|
12827
|
+
}
|
|
12828
|
+
}
|
|
12829
|
+
// add the hidden entries
|
|
12830
|
+
for (let col = 0; col < cells.length; col += 1) {
|
|
12831
|
+
moreCnts.push(0);
|
|
12832
|
+
}
|
|
12833
|
+
for (let hiddenEntry of hiddenEntries) {
|
|
12834
|
+
let seg = segs[hiddenEntry.index];
|
|
12835
|
+
let hiddenSpan = hiddenEntry.span;
|
|
12836
|
+
multiColPlacements[hiddenSpan.start].push({
|
|
12837
|
+
seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),
|
|
12838
|
+
isVisible: false,
|
|
12839
|
+
isAbsolute: true,
|
|
12840
|
+
absoluteTop: 0,
|
|
12841
|
+
marginTop: 0,
|
|
12842
|
+
});
|
|
12843
|
+
for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {
|
|
12844
|
+
moreCnts[col] += 1;
|
|
12845
|
+
singleColPlacements[col].push({
|
|
12846
|
+
seg: resliceSeg(seg, col, col + 1, cells),
|
|
12847
|
+
isVisible: false,
|
|
12848
|
+
isAbsolute: false,
|
|
12849
|
+
absoluteTop: 0,
|
|
12850
|
+
marginTop: 0,
|
|
12851
|
+
});
|
|
12852
|
+
}
|
|
12853
|
+
}
|
|
12854
|
+
// deal with leftover margins
|
|
12855
|
+
for (let col = 0; col < cells.length; col += 1) {
|
|
12856
|
+
moreMarginTops.push(leftoverMargins[col]);
|
|
12857
|
+
}
|
|
12858
|
+
return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };
|
|
12859
|
+
}
|
|
12860
|
+
// rects ordered by top coord, then left
|
|
12861
|
+
function placeRects(allRects, segs, cells) {
|
|
12862
|
+
let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);
|
|
12863
|
+
let singleColPlacements = [];
|
|
12864
|
+
let multiColPlacements = [];
|
|
12865
|
+
let leftoverMargins = [];
|
|
12866
|
+
for (let col = 0; col < cells.length; col += 1) {
|
|
12867
|
+
let rects = rectsByEachCol[col];
|
|
12868
|
+
// compute all static segs in singlePlacements
|
|
12869
|
+
let singlePlacements = [];
|
|
12870
|
+
let currentHeight = 0;
|
|
12871
|
+
let currentMarginTop = 0;
|
|
12872
|
+
for (let rect of rects) {
|
|
12873
|
+
let seg = segs[rect.index];
|
|
12874
|
+
singlePlacements.push({
|
|
12875
|
+
seg: resliceSeg(seg, col, col + 1, cells),
|
|
12876
|
+
isVisible: true,
|
|
12877
|
+
isAbsolute: false,
|
|
12878
|
+
absoluteTop: rect.levelCoord,
|
|
12879
|
+
marginTop: rect.levelCoord - currentHeight,
|
|
12880
|
+
});
|
|
12881
|
+
currentHeight = rect.levelCoord + rect.thickness;
|
|
12882
|
+
}
|
|
12883
|
+
// compute mixed static/absolute segs in multiPlacements
|
|
12884
|
+
let multiPlacements = [];
|
|
12885
|
+
currentHeight = 0;
|
|
12886
|
+
currentMarginTop = 0;
|
|
12887
|
+
for (let rect of rects) {
|
|
12888
|
+
let seg = segs[rect.index];
|
|
12889
|
+
let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?
|
|
12890
|
+
let isFirstCol = rect.span.start === col;
|
|
12891
|
+
currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg
|
|
12892
|
+
currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg
|
|
12893
|
+
if (isAbsolute) {
|
|
12894
|
+
currentMarginTop += rect.thickness;
|
|
12895
|
+
if (isFirstCol) {
|
|
12896
|
+
multiPlacements.push({
|
|
12897
|
+
seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
|
|
12898
|
+
isVisible: true,
|
|
12899
|
+
isAbsolute: true,
|
|
12900
|
+
absoluteTop: rect.levelCoord,
|
|
12901
|
+
marginTop: 0,
|
|
12902
|
+
});
|
|
12903
|
+
}
|
|
12904
|
+
}
|
|
12905
|
+
else if (isFirstCol) {
|
|
12906
|
+
multiPlacements.push({
|
|
12907
|
+
seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),
|
|
12908
|
+
isVisible: true,
|
|
12909
|
+
isAbsolute: false,
|
|
12910
|
+
absoluteTop: rect.levelCoord,
|
|
12911
|
+
marginTop: currentMarginTop, // claim the margin
|
|
12912
|
+
});
|
|
12913
|
+
currentMarginTop = 0;
|
|
12914
|
+
}
|
|
12915
|
+
}
|
|
12916
|
+
singleColPlacements.push(singlePlacements);
|
|
12917
|
+
multiColPlacements.push(multiPlacements);
|
|
12918
|
+
leftoverMargins.push(currentMarginTop);
|
|
12919
|
+
}
|
|
12920
|
+
return { singleColPlacements, multiColPlacements, leftoverMargins };
|
|
12921
|
+
}
|
|
12922
|
+
function groupRectsByEachCol(rects, colCnt) {
|
|
12923
|
+
let rectsByEachCol = [];
|
|
12924
|
+
for (let col = 0; col < colCnt; col += 1) {
|
|
12925
|
+
rectsByEachCol.push([]);
|
|
12926
|
+
}
|
|
12927
|
+
for (let rect of rects) {
|
|
12928
|
+
for (let col = rect.span.start; col < rect.span.end; col += 1) {
|
|
12929
|
+
rectsByEachCol[col].push(rect);
|
|
12930
|
+
}
|
|
12931
|
+
}
|
|
12932
|
+
return rectsByEachCol;
|
|
12933
|
+
}
|
|
12934
|
+
function resliceSeg(seg, spanStart, spanEnd, cells) {
|
|
12935
|
+
if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {
|
|
12936
|
+
return seg;
|
|
12937
|
+
}
|
|
12938
|
+
let eventRange = seg.eventRange;
|
|
12939
|
+
let origRange = eventRange.range;
|
|
12940
|
+
let slicedRange = intersectRanges(origRange, {
|
|
12941
|
+
start: cells[spanStart].date,
|
|
12942
|
+
end: addDays(cells[spanEnd - 1].date, 1),
|
|
12943
|
+
});
|
|
12944
|
+
return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {
|
|
12945
|
+
def: eventRange.def,
|
|
12946
|
+
ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),
|
|
12947
|
+
instance: eventRange.instance,
|
|
12948
|
+
range: slicedRange,
|
|
12949
|
+
}, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });
|
|
12950
|
+
}
|
|
12951
|
+
class DayGridSegHierarchy extends SegHierarchy {
|
|
12952
|
+
constructor() {
|
|
12953
|
+
super(...arguments);
|
|
12954
|
+
// config
|
|
12955
|
+
this.hiddenConsumes = false;
|
|
12956
|
+
// allows us to keep hidden entries in the hierarchy so they take up space
|
|
12957
|
+
this.forceHidden = {};
|
|
12958
|
+
}
|
|
12959
|
+
addSegs(segInputs) {
|
|
12960
|
+
const hiddenSegs = super.addSegs(segInputs);
|
|
12961
|
+
const { entriesByLevel } = this;
|
|
12962
|
+
const excludeHidden = (entry) => !this.forceHidden[buildEntryKey(entry)];
|
|
12963
|
+
// remove the forced-hidden segs
|
|
12964
|
+
for (let level = 0; level < entriesByLevel.length; level += 1) {
|
|
12965
|
+
entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);
|
|
12966
|
+
}
|
|
12967
|
+
return hiddenSegs;
|
|
12968
|
+
}
|
|
12969
|
+
handleInvalidInsertion(insertion, entry, hiddenEntries) {
|
|
12970
|
+
const { entriesByLevel, forceHidden } = this;
|
|
12971
|
+
const { touchingEntry, touchingLevel, touchingLateral } = insertion;
|
|
12972
|
+
// the entry that the new insertion is touching must be hidden
|
|
12973
|
+
if (this.hiddenConsumes && touchingEntry) {
|
|
12974
|
+
const touchingEntryId = buildEntryKey(touchingEntry);
|
|
12975
|
+
if (!forceHidden[touchingEntryId]) {
|
|
12976
|
+
if (this.allowReslicing) {
|
|
12977
|
+
// split up the touchingEntry, reinsert it
|
|
12978
|
+
const hiddenEntry = Object.assign(Object.assign({}, touchingEntry), { span: intersectSpans(touchingEntry.span, entry.span) });
|
|
12979
|
+
// reinsert the area that turned into a "more" link (so no other entries try to
|
|
12980
|
+
// occupy the space) but mark it forced-hidden
|
|
12981
|
+
const hiddenEntryId = buildEntryKey(hiddenEntry);
|
|
12982
|
+
forceHidden[hiddenEntryId] = true;
|
|
12983
|
+
entriesByLevel[touchingLevel][touchingLateral] = hiddenEntry;
|
|
12984
|
+
hiddenEntries.push(hiddenEntry);
|
|
12985
|
+
this.splitEntry(touchingEntry, entry, hiddenEntries);
|
|
12986
|
+
}
|
|
12987
|
+
else {
|
|
12988
|
+
forceHidden[touchingEntryId] = true;
|
|
12989
|
+
hiddenEntries.push(touchingEntry);
|
|
12990
|
+
}
|
|
12991
|
+
}
|
|
12992
|
+
}
|
|
12993
|
+
// will try to reslice...
|
|
12994
|
+
super.handleInvalidInsertion(insertion, entry, hiddenEntries);
|
|
12995
|
+
}
|
|
12996
|
+
}
|
|
12997
|
+
|
|
12998
|
+
class TableRow extends DateComponent {
|
|
12999
|
+
constructor() {
|
|
13000
|
+
super(...arguments);
|
|
13001
|
+
this.cellElRefs = new RefMap(); // the <td>
|
|
13002
|
+
this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame
|
|
13003
|
+
this.fgElRefs = new RefMap(); // the fc-daygrid-day-events
|
|
13004
|
+
this.segHarnessRefs = new RefMap(); // indexed by "instanceId:firstCol"
|
|
13005
|
+
this.rootElRef = d();
|
|
13006
|
+
this.state = {
|
|
13007
|
+
framePositions: null,
|
|
13008
|
+
maxContentHeight: null,
|
|
13009
|
+
segHeights: {},
|
|
13010
|
+
};
|
|
13011
|
+
this.handleResize = (isForced) => {
|
|
13012
|
+
if (isForced) {
|
|
13013
|
+
this.updateSizing(true); // isExternal=true
|
|
13014
|
+
}
|
|
13015
|
+
};
|
|
13016
|
+
}
|
|
13017
|
+
render() {
|
|
13018
|
+
let { props, state, context } = this;
|
|
13019
|
+
let { options } = context;
|
|
13020
|
+
let colCnt = props.cells.length;
|
|
13021
|
+
let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);
|
|
13022
|
+
let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);
|
|
13023
|
+
let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);
|
|
13024
|
+
let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);
|
|
13025
|
+
let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);
|
|
13026
|
+
let isForcedInvisible = // TODO: messy way to compute this
|
|
13027
|
+
(props.eventDrag && props.eventDrag.affectedInstances) ||
|
|
13028
|
+
(props.eventResize && props.eventResize.affectedInstances) ||
|
|
13029
|
+
{};
|
|
13030
|
+
return (y("tr", { ref: this.rootElRef, role: "row" },
|
|
13031
|
+
props.renderIntro && props.renderIntro(),
|
|
13032
|
+
props.cells.map((cell, col) => {
|
|
13033
|
+
let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);
|
|
13034
|
+
let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);
|
|
13035
|
+
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
|
|
13036
|
+
y(_, null,
|
|
13037
|
+
y(_, null, normalFgNodes),
|
|
13038
|
+
y(_, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys
|
|
13039
|
+
y(_, null,
|
|
13040
|
+
this.renderFillSegs(highlightSegsByCol[col], 'highlight'),
|
|
13041
|
+
this.renderFillSegs(businessHoursByCol[col], 'non-business'),
|
|
13042
|
+
this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));
|
|
13043
|
+
})));
|
|
13044
|
+
}
|
|
13045
|
+
componentDidMount() {
|
|
13046
|
+
this.updateSizing(true);
|
|
13047
|
+
this.context.addResizeHandler(this.handleResize);
|
|
13048
|
+
}
|
|
13049
|
+
componentDidUpdate(prevProps, prevState) {
|
|
13050
|
+
let currentProps = this.props;
|
|
13051
|
+
this.updateSizing(!isPropsEqual(prevProps, currentProps));
|
|
13052
|
+
}
|
|
13053
|
+
componentWillUnmount() {
|
|
13054
|
+
this.context.removeResizeHandler(this.handleResize);
|
|
13055
|
+
}
|
|
13056
|
+
getHighlightSegs() {
|
|
13057
|
+
let { props } = this;
|
|
13058
|
+
if (props.eventDrag && props.eventDrag.segs.length) { // messy check
|
|
13059
|
+
return props.eventDrag.segs;
|
|
13060
|
+
}
|
|
13061
|
+
if (props.eventResize && props.eventResize.segs.length) { // messy check
|
|
13062
|
+
return props.eventResize.segs;
|
|
13063
|
+
}
|
|
13064
|
+
return props.dateSelectionSegs;
|
|
13065
|
+
}
|
|
13066
|
+
getMirrorSegs() {
|
|
13067
|
+
let { props } = this;
|
|
13068
|
+
if (props.eventResize && props.eventResize.segs.length) { // messy check
|
|
13069
|
+
return props.eventResize.segs;
|
|
13070
|
+
}
|
|
13071
|
+
return [];
|
|
13072
|
+
}
|
|
13073
|
+
renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {
|
|
13074
|
+
let { context } = this;
|
|
13075
|
+
let { eventSelection } = this.props;
|
|
13076
|
+
let { framePositions } = this.state;
|
|
13077
|
+
let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1
|
|
13078
|
+
let isMirror = isDragging || isResizing || isDateSelecting;
|
|
13079
|
+
let nodes = [];
|
|
13080
|
+
if (framePositions) {
|
|
13081
|
+
for (let placement of segPlacements) {
|
|
13082
|
+
let { seg } = placement;
|
|
13083
|
+
let { instanceId } = seg.eventRange.instance;
|
|
13084
|
+
let isVisible = placement.isVisible && !isForcedInvisible[instanceId];
|
|
13085
|
+
let isAbsolute = placement.isAbsolute;
|
|
13086
|
+
let left = '';
|
|
13087
|
+
let right = '';
|
|
13088
|
+
if (isAbsolute) {
|
|
13089
|
+
if (context.isRtl) {
|
|
13090
|
+
right = 0;
|
|
13091
|
+
left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];
|
|
13092
|
+
}
|
|
13093
|
+
else {
|
|
13094
|
+
left = 0;
|
|
13095
|
+
right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];
|
|
13096
|
+
}
|
|
13097
|
+
}
|
|
13098
|
+
/*
|
|
13099
|
+
known bug: events that are force to be list-item but span multiple days still take up space in later columns
|
|
13100
|
+
todo: in print view, for multi-day events, don't display title within non-start/end segs
|
|
13101
|
+
*/
|
|
13102
|
+
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: {
|
|
13103
|
+
visibility: isVisible ? '' : 'hidden',
|
|
13104
|
+
marginTop: isAbsolute ? '' : placement.marginTop,
|
|
13105
|
+
top: isAbsolute ? placement.absoluteTop : '',
|
|
13106
|
+
left,
|
|
13107
|
+
right,
|
|
13108
|
+
} }, 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))))));
|
|
13109
|
+
}
|
|
13110
|
+
}
|
|
13111
|
+
return nodes;
|
|
13112
|
+
}
|
|
13113
|
+
renderFillSegs(segs, fillType) {
|
|
13114
|
+
let { isRtl } = this.context;
|
|
13115
|
+
let { todayRange } = this.props;
|
|
13116
|
+
let { framePositions } = this.state;
|
|
13117
|
+
let nodes = [];
|
|
13118
|
+
if (framePositions) {
|
|
13119
|
+
for (let seg of segs) {
|
|
13120
|
+
let leftRightCss = isRtl ? {
|
|
13121
|
+
right: 0,
|
|
13122
|
+
left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],
|
|
13123
|
+
} : {
|
|
13124
|
+
left: 0,
|
|
13125
|
+
right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],
|
|
13126
|
+
};
|
|
13127
|
+
nodes.push(y("div", { key: buildEventRangeKey(seg.eventRange), className: "fc-daygrid-bg-harness", style: leftRightCss }, fillType === 'bg-event' ?
|
|
13128
|
+
y(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :
|
|
13129
|
+
renderFill(fillType)));
|
|
13130
|
+
}
|
|
13131
|
+
}
|
|
13132
|
+
return y(_, {}, ...nodes);
|
|
13133
|
+
}
|
|
13134
|
+
updateSizing(isExternalSizingChange) {
|
|
13135
|
+
let { props, state, frameElRefs } = this;
|
|
13136
|
+
if (!props.forPrint &&
|
|
13137
|
+
props.clientWidth !== null // positioning ready?
|
|
13138
|
+
) {
|
|
13139
|
+
if (isExternalSizingChange) {
|
|
13140
|
+
let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);
|
|
13141
|
+
if (frameEls.length) {
|
|
13142
|
+
let originEl = this.rootElRef.current;
|
|
13143
|
+
let newPositionCache = new PositionCache(originEl, frameEls, true, // isHorizontal
|
|
13144
|
+
false);
|
|
13145
|
+
if (!state.framePositions || !state.framePositions.similarTo(newPositionCache)) {
|
|
13146
|
+
this.setState({
|
|
13147
|
+
framePositions: new PositionCache(originEl, frameEls, true, // isHorizontal
|
|
13148
|
+
false),
|
|
13149
|
+
});
|
|
13150
|
+
}
|
|
13151
|
+
}
|
|
13152
|
+
}
|
|
13153
|
+
const oldSegHeights = this.state.segHeights;
|
|
13154
|
+
const newSegHeights = this.querySegHeights();
|
|
13155
|
+
const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;
|
|
13156
|
+
this.safeSetState({
|
|
13157
|
+
// HACK to prevent oscillations of events being shown/hidden from max-event-rows
|
|
13158
|
+
// Essentially, once you compute an element's height, never null-out.
|
|
13159
|
+
// TODO: always display all events, as visibility:hidden?
|
|
13160
|
+
segHeights: Object.assign(Object.assign({}, oldSegHeights), newSegHeights),
|
|
13161
|
+
maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,
|
|
13162
|
+
});
|
|
13163
|
+
}
|
|
13164
|
+
}
|
|
13165
|
+
querySegHeights() {
|
|
13166
|
+
let segElMap = this.segHarnessRefs.currentMap;
|
|
13167
|
+
let segHeights = {};
|
|
13168
|
+
// get the max height amongst instance segs
|
|
13169
|
+
for (let segUid in segElMap) {
|
|
13170
|
+
let height = Math.round(segElMap[segUid].getBoundingClientRect().height);
|
|
13171
|
+
segHeights[segUid] = Math.max(segHeights[segUid] || 0, height);
|
|
13172
|
+
}
|
|
13173
|
+
return segHeights;
|
|
13174
|
+
}
|
|
13175
|
+
computeMaxContentHeight() {
|
|
13176
|
+
let firstKey = this.props.cells[0].key;
|
|
13177
|
+
let cellEl = this.cellElRefs.currentMap[firstKey];
|
|
13178
|
+
let fcContainerEl = this.fgElRefs.currentMap[firstKey];
|
|
13179
|
+
return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;
|
|
13180
|
+
}
|
|
13181
|
+
getCellEls() {
|
|
13182
|
+
let elMap = this.cellElRefs.currentMap;
|
|
13183
|
+
return this.props.cells.map((cell) => elMap[cell.key]);
|
|
13184
|
+
}
|
|
13185
|
+
}
|
|
13186
|
+
TableRow.addStateEquality({
|
|
13187
|
+
segHeights: isPropsEqual,
|
|
13188
|
+
});
|
|
13189
|
+
function buildMirrorPlacements(mirrorSegs, colPlacements) {
|
|
13190
|
+
if (!mirrorSegs.length) {
|
|
13191
|
+
return [];
|
|
13192
|
+
}
|
|
13193
|
+
let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?
|
|
13194
|
+
return mirrorSegs.map((seg) => ({
|
|
13195
|
+
seg,
|
|
13196
|
+
isVisible: true,
|
|
13197
|
+
isAbsolute: true,
|
|
13198
|
+
absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],
|
|
13199
|
+
marginTop: 0,
|
|
13200
|
+
}));
|
|
13201
|
+
}
|
|
13202
|
+
function buildAbsoluteTopHash(colPlacements) {
|
|
13203
|
+
let topsByInstanceId = {};
|
|
13204
|
+
for (let placements of colPlacements) {
|
|
13205
|
+
for (let placement of placements) {
|
|
13206
|
+
topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;
|
|
13207
|
+
}
|
|
13208
|
+
}
|
|
13209
|
+
return topsByInstanceId;
|
|
13210
|
+
}
|
|
13211
|
+
|
|
13212
|
+
class TableRows extends DateComponent {
|
|
13213
|
+
constructor() {
|
|
13214
|
+
super(...arguments);
|
|
13215
|
+
this.splitBusinessHourSegs = memoize(splitSegsByRow);
|
|
13216
|
+
this.splitBgEventSegs = memoize(splitSegsByRow);
|
|
13217
|
+
this.splitFgEventSegs = memoize(splitSegsByRow);
|
|
13218
|
+
this.splitDateSelectionSegs = memoize(splitSegsByRow);
|
|
13219
|
+
this.splitEventDrag = memoize(splitInteractionByRow);
|
|
13220
|
+
this.splitEventResize = memoize(splitInteractionByRow);
|
|
13221
|
+
this.rowRefs = new RefMap();
|
|
13222
|
+
}
|
|
13223
|
+
render() {
|
|
13224
|
+
let { props, context } = this;
|
|
13225
|
+
let rowCnt = props.cells.length;
|
|
13226
|
+
let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);
|
|
13227
|
+
let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);
|
|
13228
|
+
let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);
|
|
13229
|
+
let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);
|
|
13230
|
+
let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);
|
|
13231
|
+
let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);
|
|
13232
|
+
// for DayGrid view with many rows, force a min-height on cells so doesn't appear squished
|
|
13233
|
+
// choose 7 because a month view will have max 6 rows
|
|
13234
|
+
let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?
|
|
13235
|
+
props.clientWidth / context.options.aspectRatio / 6 :
|
|
13236
|
+
null;
|
|
13237
|
+
return (y(NowTimer, { unit: "day" }, (nowDate, todayRange) => (y(_, null, props.cells.map((cells, row) => (y(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length
|
|
13238
|
+
? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */
|
|
13239
|
+
: row // in case there are no cells (like when resource view is loading)
|
|
13240
|
+
, 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 })))))));
|
|
13241
|
+
}
|
|
13242
|
+
componentDidMount() {
|
|
13243
|
+
this.registerInteractiveComponent();
|
|
13244
|
+
}
|
|
13245
|
+
componentDidUpdate() {
|
|
13246
|
+
// for if started with zero cells
|
|
13247
|
+
this.registerInteractiveComponent();
|
|
13248
|
+
}
|
|
13249
|
+
registerInteractiveComponent() {
|
|
13250
|
+
if (!this.rootEl) {
|
|
13251
|
+
// HACK: need a daygrid wrapper parent to do positioning
|
|
13252
|
+
// NOTE: a daygrid resource view w/o resources can have zero cells
|
|
13253
|
+
const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];
|
|
13254
|
+
const rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;
|
|
13255
|
+
if (rootEl) {
|
|
13256
|
+
this.rootEl = rootEl;
|
|
13257
|
+
this.context.registerInteractiveComponent(this, {
|
|
13258
|
+
el: rootEl,
|
|
13259
|
+
isHitComboAllowed: this.props.isHitComboAllowed,
|
|
13260
|
+
});
|
|
13261
|
+
}
|
|
13262
|
+
}
|
|
13263
|
+
}
|
|
13264
|
+
componentWillUnmount() {
|
|
13265
|
+
if (this.rootEl) {
|
|
13266
|
+
this.context.unregisterInteractiveComponent(this);
|
|
13267
|
+
this.rootEl = null;
|
|
13268
|
+
}
|
|
13269
|
+
}
|
|
13270
|
+
// Hit System
|
|
13271
|
+
// ----------------------------------------------------------------------------------------------------
|
|
13272
|
+
prepareHits() {
|
|
13273
|
+
this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal
|
|
13274
|
+
false, true);
|
|
13275
|
+
this.colPositions = new PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row
|
|
13276
|
+
true, // horizontal
|
|
13277
|
+
false);
|
|
13278
|
+
}
|
|
13279
|
+
queryHit(positionLeft, positionTop) {
|
|
13280
|
+
let { colPositions, rowPositions } = this;
|
|
13281
|
+
let col = colPositions.leftToIndex(positionLeft);
|
|
13282
|
+
let row = rowPositions.topToIndex(positionTop);
|
|
13283
|
+
if (row != null && col != null) {
|
|
13284
|
+
let cell = this.props.cells[row][col];
|
|
13285
|
+
return {
|
|
13286
|
+
dateProfile: this.props.dateProfile,
|
|
13287
|
+
dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),
|
|
13288
|
+
dayEl: this.getCellEl(row, col),
|
|
13289
|
+
rect: {
|
|
13290
|
+
left: colPositions.lefts[col],
|
|
13291
|
+
right: colPositions.rights[col],
|
|
13292
|
+
top: rowPositions.tops[row],
|
|
13293
|
+
bottom: rowPositions.bottoms[row],
|
|
13294
|
+
},
|
|
13295
|
+
layer: 0,
|
|
13296
|
+
};
|
|
13297
|
+
}
|
|
13298
|
+
return null;
|
|
13299
|
+
}
|
|
13300
|
+
getCellEl(row, col) {
|
|
13301
|
+
return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal
|
|
13302
|
+
}
|
|
13303
|
+
getCellRange(row, col) {
|
|
13304
|
+
let start = this.props.cells[row][col].date;
|
|
13305
|
+
let end = addDays(start, 1);
|
|
13306
|
+
return { start, end };
|
|
13307
|
+
}
|
|
13308
|
+
}
|
|
13309
|
+
function isSegAllDay(seg) {
|
|
13310
|
+
return seg.eventRange.def.allDay;
|
|
13311
|
+
}
|
|
13312
|
+
|
|
13313
|
+
class Table extends DateComponent {
|
|
13314
|
+
constructor() {
|
|
13315
|
+
super(...arguments);
|
|
13316
|
+
this.elRef = d();
|
|
13317
|
+
this.needsScrollReset = false;
|
|
13318
|
+
}
|
|
13319
|
+
render() {
|
|
13320
|
+
let { props } = this;
|
|
13321
|
+
let { dayMaxEventRows, dayMaxEvents, expandRows } = props;
|
|
13322
|
+
let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;
|
|
13323
|
+
// if rows can't expand to fill fixed height, can't do balanced-height event limit
|
|
13324
|
+
// TODO: best place to normalize these options?
|
|
13325
|
+
if (limitViaBalanced && !expandRows) {
|
|
13326
|
+
limitViaBalanced = false;
|
|
13327
|
+
dayMaxEventRows = null;
|
|
13328
|
+
dayMaxEvents = null;
|
|
13329
|
+
}
|
|
13330
|
+
let classNames = [
|
|
13331
|
+
'fc-daygrid-body',
|
|
13332
|
+
limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',
|
|
13333
|
+
expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?
|
|
13334
|
+
];
|
|
13335
|
+
return (y("div", { ref: this.elRef, className: classNames.join(' '), style: {
|
|
13336
|
+
// these props are important to give this wrapper correct dimensions for interactions
|
|
13337
|
+
// TODO: if we set it here, can we avoid giving to inner tables?
|
|
13338
|
+
width: props.clientWidth,
|
|
13339
|
+
minWidth: props.tableMinWidth,
|
|
13340
|
+
} },
|
|
13341
|
+
y("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: {
|
|
13342
|
+
width: props.clientWidth,
|
|
13343
|
+
minWidth: props.tableMinWidth,
|
|
13344
|
+
height: expandRows ? props.clientHeight : '',
|
|
13345
|
+
} },
|
|
13346
|
+
props.colGroupNode,
|
|
13347
|
+
y("tbody", { role: "presentation" },
|
|
13348
|
+
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 })))));
|
|
13349
|
+
}
|
|
13350
|
+
componentDidMount() {
|
|
13351
|
+
this.requestScrollReset();
|
|
13352
|
+
}
|
|
13353
|
+
componentDidUpdate(prevProps) {
|
|
13354
|
+
if (prevProps.dateProfile !== this.props.dateProfile) {
|
|
13355
|
+
this.requestScrollReset();
|
|
13356
|
+
}
|
|
13357
|
+
else {
|
|
13358
|
+
this.flushScrollReset();
|
|
13359
|
+
}
|
|
13360
|
+
}
|
|
13361
|
+
requestScrollReset() {
|
|
13362
|
+
this.needsScrollReset = true;
|
|
13363
|
+
this.flushScrollReset();
|
|
13364
|
+
}
|
|
13365
|
+
flushScrollReset() {
|
|
13366
|
+
if (this.needsScrollReset &&
|
|
13367
|
+
this.props.clientWidth // sizes computed?
|
|
13368
|
+
) {
|
|
13369
|
+
const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);
|
|
13370
|
+
if (subjectEl) {
|
|
13371
|
+
const originEl = subjectEl.closest('.fc-daygrid-body');
|
|
13372
|
+
const scrollEl = originEl.closest('.fc-scroller');
|
|
13373
|
+
const scrollTop = subjectEl.getBoundingClientRect().top -
|
|
13374
|
+
originEl.getBoundingClientRect().top;
|
|
13375
|
+
scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border
|
|
13376
|
+
}
|
|
13377
|
+
this.needsScrollReset = false;
|
|
13378
|
+
}
|
|
13379
|
+
}
|
|
13380
|
+
}
|
|
13381
|
+
function getScrollSubjectEl(containerEl, dateProfile) {
|
|
13382
|
+
let el;
|
|
13383
|
+
if (dateProfile.currentRangeUnit.match(/year|month/)) {
|
|
13384
|
+
el = containerEl.querySelector(`[data-date="${formatIsoMonthStr(dateProfile.currentDate)}-01"]`);
|
|
13385
|
+
// even if view is month-based, first-of-month might be hidden...
|
|
13386
|
+
}
|
|
13387
|
+
if (!el) {
|
|
13388
|
+
el = containerEl.querySelector(`[data-date="${formatDayString(dateProfile.currentDate)}"]`);
|
|
13389
|
+
// could still be hidden if an interior-view hidden day
|
|
13390
|
+
}
|
|
13391
|
+
return el;
|
|
13392
|
+
}
|
|
13393
|
+
|
|
13394
|
+
class DayTableSlicer extends Slicer {
|
|
13395
|
+
constructor() {
|
|
13396
|
+
super(...arguments);
|
|
13397
|
+
this.forceDayIfListItem = true;
|
|
13398
|
+
}
|
|
13399
|
+
sliceRange(dateRange, dayTableModel) {
|
|
13400
|
+
return dayTableModel.sliceRange(dateRange);
|
|
13401
|
+
}
|
|
13402
|
+
}
|
|
13403
|
+
|
|
13404
|
+
class DayTable extends DateComponent {
|
|
13405
|
+
constructor() {
|
|
13406
|
+
super(...arguments);
|
|
13407
|
+
this.slicer = new DayTableSlicer();
|
|
13408
|
+
this.tableRef = d();
|
|
13409
|
+
}
|
|
13410
|
+
render() {
|
|
13411
|
+
let { props, context } = this;
|
|
13412
|
+
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 })));
|
|
13413
|
+
}
|
|
13414
|
+
}
|
|
13415
|
+
|
|
13416
|
+
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}";
|
|
13417
|
+
injectStyles(css_248z$1);
|
|
13418
|
+
|
|
12581
13419
|
class AllDaySplitter extends Splitter {
|
|
12582
13420
|
getKeyInfo() {
|
|
12583
13421
|
return {
|
|
@@ -13966,7 +14804,7 @@ class KupCalendarState {
|
|
|
13966
14804
|
}
|
|
13967
14805
|
}
|
|
13968
14806
|
|
|
13969
|
-
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}}";
|
|
14807
|
+
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}}";
|
|
13970
14808
|
const KupCalendarStyle0 = kupCalendarCss;
|
|
13971
14809
|
|
|
13972
14810
|
const KupCalendar = class {
|