@fullcalendar/resource-timegrid 6.0.0-beta.1 → 6.0.0-beta.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/LICENSE.md +5 -5
- package/index.cjs +49 -0
- package/index.d.ts +10 -0
- package/{main.global.js → index.global.js} +42 -35
- package/index.global.min.js +6 -0
- package/index.js +39 -0
- package/internal.cjs +84 -0
- package/{main.d.ts → internal.d.ts} +5 -10
- package/{main.js → internal.js} +5 -36
- package/package.json +44 -20
- package/main.cjs.js +0 -120
- package/main.global.min.js +0 -6
- package/main.js.map +0 -1
package/LICENSE.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
|
|
2
2
|
For complete licensing information, visit:
|
|
3
|
-
|
|
3
|
+
https://fullcalendar.io/scheduler/license
|
|
4
4
|
|
|
5
5
|
FullCalendar Scheduler is tri-licensed, meaning you must choose
|
|
6
6
|
one of three licenses to use. Here is a summary of those licenses:
|
|
7
7
|
|
|
8
8
|
- Commercial License
|
|
9
|
-
(a paid license,
|
|
10
|
-
|
|
9
|
+
(a paid license, intended for commercial use)
|
|
10
|
+
https://fullcalendar.io/scheduler/license-details
|
|
11
11
|
|
|
12
12
|
- Creative Commons Non-Commercial No-Derivatives
|
|
13
|
-
(
|
|
13
|
+
(intended for trial and non-commercial use)
|
|
14
14
|
https://creativecommons.org/licenses/by-nc-nd/4.0/
|
|
15
15
|
|
|
16
16
|
- GPLv3 License
|
|
17
|
-
(
|
|
17
|
+
(intended for open-source projects)
|
|
18
18
|
http://www.gnu.org/licenses/gpl-3.0.en.html
|
package/index.cjs
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var index_cjs = require('@fullcalendar/core/index.cjs');
|
|
6
|
+
var premiumCommonPlugin = require('@fullcalendar/premium-common/index.cjs');
|
|
7
|
+
var resourcePlugin = require('@fullcalendar/resource/index.cjs');
|
|
8
|
+
var timeGridPlugin = require('@fullcalendar/timegrid/index.cjs');
|
|
9
|
+
var internalCommon = require('./internal.cjs');
|
|
10
|
+
require('@fullcalendar/resource-daygrid/index.cjs');
|
|
11
|
+
require('@fullcalendar/core/internal.cjs');
|
|
12
|
+
require('@fullcalendar/core/preact.cjs');
|
|
13
|
+
require('@fullcalendar/timegrid/internal.cjs');
|
|
14
|
+
require('@fullcalendar/resource/internal.cjs');
|
|
15
|
+
require('@fullcalendar/resource-daygrid/internal.cjs');
|
|
16
|
+
|
|
17
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
18
|
+
|
|
19
|
+
var premiumCommonPlugin__default = /*#__PURE__*/_interopDefaultLegacy(premiumCommonPlugin);
|
|
20
|
+
var resourcePlugin__default = /*#__PURE__*/_interopDefaultLegacy(resourcePlugin);
|
|
21
|
+
var timeGridPlugin__default = /*#__PURE__*/_interopDefaultLegacy(timeGridPlugin);
|
|
22
|
+
|
|
23
|
+
var index = index_cjs.createPlugin({
|
|
24
|
+
name: '@fullcalendar/resource-timegrid',
|
|
25
|
+
premiumReleaseDate: '2022-11-22',
|
|
26
|
+
deps: [
|
|
27
|
+
premiumCommonPlugin__default["default"],
|
|
28
|
+
resourcePlugin__default["default"],
|
|
29
|
+
timeGridPlugin__default["default"],
|
|
30
|
+
],
|
|
31
|
+
initialView: 'resourceTimeGridDay',
|
|
32
|
+
views: {
|
|
33
|
+
resourceTimeGrid: {
|
|
34
|
+
type: 'timeGrid',
|
|
35
|
+
component: internalCommon.ResourceDayTimeColsView,
|
|
36
|
+
needsResourceData: true,
|
|
37
|
+
},
|
|
38
|
+
resourceTimeGridDay: {
|
|
39
|
+
type: 'resourceTimeGrid',
|
|
40
|
+
duration: { days: 1 },
|
|
41
|
+
},
|
|
42
|
+
resourceTimeGridWeek: {
|
|
43
|
+
type: 'resourceTimeGrid',
|
|
44
|
+
duration: { weeks: 1 },
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
exports["default"] = index;
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PluginDef } from '@fullcalendar/core';
|
|
2
|
+
import '@fullcalendar/premium-common';
|
|
3
|
+
import '@fullcalendar/resource';
|
|
4
|
+
import '@fullcalendar/resource-daygrid';
|
|
5
|
+
import '@fullcalendar/timegrid';
|
|
6
|
+
|
|
7
|
+
declare const _default: PluginDef;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
9
|
+
|
|
10
|
+
export { _default as default };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
FullCalendar
|
|
3
|
-
Docs & License: https://fullcalendar.io/
|
|
2
|
+
FullCalendar Resource Time Grid Plugin v6.0.0-beta.2
|
|
3
|
+
Docs & License: https://fullcalendar.io/premium
|
|
4
4
|
(c) 2022 Adam Shaw
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
FullCalendar.ResourceTimeGrid = (function (exports, internal$2, core, premiumCommonPlugin, resourcePlugin, timeGridPlugin, preact, internal$3, internal$1, internal$4) {
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
-
function
|
|
9
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
10
10
|
|
|
11
|
-
var premiumCommonPlugin__default = /*#__PURE__*/
|
|
12
|
-
var
|
|
13
|
-
var timeGridPlugin__default = /*#__PURE__*/
|
|
11
|
+
var premiumCommonPlugin__default = /*#__PURE__*/_interopDefault(premiumCommonPlugin);
|
|
12
|
+
var resourcePlugin__default = /*#__PURE__*/_interopDefault(resourcePlugin);
|
|
13
|
+
var timeGridPlugin__default = /*#__PURE__*/_interopDefault(timeGridPlugin);
|
|
14
14
|
|
|
15
|
-
class ResourceDayTimeColsJoiner extends
|
|
15
|
+
class ResourceDayTimeColsJoiner extends internal$1.VResourceJoiner {
|
|
16
16
|
transformSeg(seg, resourceDayTable, resourceI) {
|
|
17
17
|
return [
|
|
18
18
|
Object.assign(Object.assign({}, seg), { col: resourceDayTable.computeCol(seg.col, resourceI) }),
|
|
@@ -20,14 +20,14 @@ var FullCalendarResourceTimeGrid = (function (exports, common, premiumCommonPlug
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
class ResourceDayTimeCols extends
|
|
23
|
+
class ResourceDayTimeCols extends internal$2.DateComponent {
|
|
24
24
|
constructor() {
|
|
25
25
|
super(...arguments);
|
|
26
|
-
this.buildDayRanges =
|
|
27
|
-
this.splitter = new
|
|
26
|
+
this.buildDayRanges = internal$2.memoize(internal$3.buildDayRanges);
|
|
27
|
+
this.splitter = new internal$1.VResourceSplitter();
|
|
28
28
|
this.slicers = {};
|
|
29
29
|
this.joiner = new ResourceDayTimeColsJoiner();
|
|
30
|
-
this.timeColsRef =
|
|
30
|
+
this.timeColsRef = preact.createRef();
|
|
31
31
|
this.isHitComboAllowed = (hit0, hit1) => {
|
|
32
32
|
let allowAcrossResources = this.dayRanges.length === 1;
|
|
33
33
|
return allowAcrossResources || hit0.dateSpan.resourceId === hit1.dateSpan.resourceId;
|
|
@@ -39,10 +39,10 @@ var FullCalendarResourceTimeGrid = (function (exports, common, premiumCommonPlug
|
|
|
39
39
|
let { dateProfile, resourceDayTableModel } = props;
|
|
40
40
|
let dayRanges = this.dayRanges = this.buildDayRanges(resourceDayTableModel.dayTableModel, dateProfile, dateEnv);
|
|
41
41
|
let splitProps = this.splitter.splitProps(props);
|
|
42
|
-
this.slicers =
|
|
43
|
-
let slicedProps =
|
|
42
|
+
this.slicers = internal$2.mapHash(splitProps, (split, resourceId) => this.slicers[resourceId] || new internal$3.DayTimeColsSlicer());
|
|
43
|
+
let slicedProps = internal$2.mapHash(this.slicers, (slicer, resourceId) => slicer.sliceProps(splitProps[resourceId], dateProfile, null, context, dayRanges));
|
|
44
44
|
return ( // TODO: would move this further down hierarchy, but sliceNowDate needs it
|
|
45
|
-
|
|
45
|
+
preact.createElement(internal$2.NowTimer, { unit: options.nowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (preact.createElement(internal$3.TimeCols, Object.assign({ ref: this.timeColsRef }, this.joiner.joinProps(slicedProps, resourceDayTableModel), { dateProfile: dateProfile, axis: props.axis, slotDuration: props.slotDuration, slatMetas: props.slatMetas, cells: resourceDayTableModel.cells[0], tableColGroupNode: props.tableColGroupNode, tableMinWidth: props.tableMinWidth, clientWidth: props.clientWidth, clientHeight: props.clientHeight, expandRows: props.expandRows, nowDate: nowDate, nowIndicatorSegs: options.nowIndicator && this.buildNowIndicatorSegs(nowDate), todayRange: todayRange, onScrollTopRequest: props.onScrollTopRequest, forPrint: props.forPrint, onSlatCoords: props.onSlatCoords, isHitComboAllowed: this.isHitComboAllowed })))));
|
|
46
46
|
}
|
|
47
47
|
buildNowIndicatorSegs(date) {
|
|
48
48
|
let nonResourceSegs = this.slicers[''].sliceNowDate(date, this.context, this.dayRanges);
|
|
@@ -50,45 +50,47 @@ var FullCalendarResourceTimeGrid = (function (exports, common, premiumCommonPlug
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
class ResourceDayTimeColsView extends
|
|
53
|
+
class ResourceDayTimeColsView extends internal$3.TimeColsView {
|
|
54
54
|
constructor() {
|
|
55
55
|
super(...arguments);
|
|
56
|
-
this.flattenResources =
|
|
57
|
-
this.buildResourceTimeColsModel =
|
|
58
|
-
this.buildSlatMetas =
|
|
56
|
+
this.flattenResources = internal$2.memoize(internal$1.flattenResources);
|
|
57
|
+
this.buildResourceTimeColsModel = internal$2.memoize(buildResourceTimeColsModel);
|
|
58
|
+
this.buildSlatMetas = internal$2.memoize(internal$3.buildSlatMetas);
|
|
59
59
|
}
|
|
60
60
|
render() {
|
|
61
61
|
let { props, context } = this;
|
|
62
62
|
let { options, dateEnv } = context;
|
|
63
63
|
let { dateProfile } = props;
|
|
64
64
|
let splitProps = this.allDaySplitter.splitProps(props);
|
|
65
|
-
let resourceOrderSpecs = options.resourceOrder ||
|
|
65
|
+
let resourceOrderSpecs = options.resourceOrder || internal$1.DEFAULT_RESOURCE_ORDER;
|
|
66
66
|
let resources = this.flattenResources(props.resourceStore, resourceOrderSpecs);
|
|
67
67
|
let resourceDayTableModel = this.buildResourceTimeColsModel(dateProfile, context.dateProfileGenerator, resources, options.datesAboveResources, context);
|
|
68
68
|
let slatMetas = this.buildSlatMetas(dateProfile.slotMinTime, dateProfile.slotMaxTime, options.slotLabelInterval, options.slotDuration, dateEnv);
|
|
69
69
|
let { dayMinWidth } = options;
|
|
70
70
|
let hasAttachedAxis = !dayMinWidth;
|
|
71
71
|
let hasDetachedAxis = dayMinWidth;
|
|
72
|
-
let headerContent = options.dayHeaders && (
|
|
73
|
-
let allDayContent = (options.allDaySlot !== false) && ((contentArg) => (
|
|
74
|
-
let timeGridContent = (contentArg) => (
|
|
72
|
+
let headerContent = options.dayHeaders && (preact.createElement(internal$1.ResourceDayHeader, { resources: resources, dates: resourceDayTableModel.dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));
|
|
73
|
+
let allDayContent = (options.allDaySlot !== false) && ((contentArg) => (preact.createElement(internal$4.ResourceDayTable, Object.assign({}, splitProps.allDay, { dateProfile: dateProfile, resourceDayTableModel: resourceDayTableModel, nextDayThreshold: options.nextDayThreshold, tableMinWidth: contentArg.tableMinWidth, colGroupNode: contentArg.tableColGroupNode, renderRowIntro: hasAttachedAxis ? this.renderTableRowAxis : null, showWeekNumbers: false, expandRows: false, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }, this.getAllDayMaxEventProps()))));
|
|
74
|
+
let timeGridContent = (contentArg) => (preact.createElement(ResourceDayTimeCols, Object.assign({}, splitProps.timed, { dateProfile: dateProfile, axis: hasAttachedAxis, slotDuration: options.slotDuration, slatMetas: slatMetas, resourceDayTableModel: resourceDayTableModel, tableColGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, onSlatCoords: this.handleSlatCoords, expandRows: contentArg.expandRows, forPrint: props.forPrint, onScrollTopRequest: this.handleScrollTopRequest })));
|
|
75
75
|
return hasDetachedAxis
|
|
76
76
|
? this.renderHScrollLayout(headerContent, allDayContent, timeGridContent, resourceDayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords)
|
|
77
77
|
: this.renderSimpleLayout(headerContent, allDayContent, timeGridContent);
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
function buildResourceTimeColsModel(dateProfile, dateProfileGenerator, resources, datesAboveResources, context) {
|
|
81
|
-
let dayTable =
|
|
81
|
+
let dayTable = internal$3.buildTimeColsModel(dateProfile, dateProfileGenerator);
|
|
82
82
|
return datesAboveResources ?
|
|
83
|
-
new
|
|
84
|
-
new
|
|
83
|
+
new internal$1.DayResourceTableModel(dayTable, resources, context) :
|
|
84
|
+
new internal$1.ResourceDayTableModel(dayTable, resources, context);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
var plugin =
|
|
87
|
+
var plugin = core.createPlugin({
|
|
88
|
+
name: '@fullcalendar/resource-timegrid',
|
|
89
|
+
premiumReleaseDate: '2022-11-22',
|
|
88
90
|
deps: [
|
|
89
|
-
premiumCommonPlugin__default[
|
|
90
|
-
|
|
91
|
-
timeGridPlugin__default[
|
|
91
|
+
premiumCommonPlugin__default["default"],
|
|
92
|
+
resourcePlugin__default["default"],
|
|
93
|
+
timeGridPlugin__default["default"],
|
|
92
94
|
],
|
|
93
95
|
initialView: 'resourceTimeGridDay',
|
|
94
96
|
views: {
|
|
@@ -108,14 +110,19 @@ var FullCalendarResourceTimeGrid = (function (exports, common, premiumCommonPlug
|
|
|
108
110
|
},
|
|
109
111
|
});
|
|
110
112
|
|
|
111
|
-
|
|
113
|
+
var internal = {
|
|
114
|
+
__proto__: null,
|
|
115
|
+
ResourceDayTimeColsView: ResourceDayTimeColsView,
|
|
116
|
+
ResourceDayTimeCols: ResourceDayTimeCols
|
|
117
|
+
};
|
|
112
118
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
exports.
|
|
119
|
+
internal$2.globalPlugins.push(plugin);
|
|
120
|
+
|
|
121
|
+
exports.Internal = internal;
|
|
122
|
+
exports["default"] = plugin;
|
|
116
123
|
|
|
117
124
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
118
125
|
|
|
119
126
|
return exports;
|
|
120
127
|
|
|
121
|
-
}({}, FullCalendar,
|
|
128
|
+
})({}, FullCalendar.Internal, FullCalendar, FullCalendar.PremiumCommon, FullCalendar.Resource, FullCalendar.TimeGrid, FullCalendar.Preact, FullCalendar.TimeGrid.Internal, FullCalendar.Resource.Internal, FullCalendar.ResourceDayGrid.Internal);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
FullCalendar Resource Time Grid Plugin v6.0.0-beta.2
|
|
3
|
+
Docs & License: https://fullcalendar.io/premium
|
|
4
|
+
(c) 2022 Adam Shaw
|
|
5
|
+
*/
|
|
6
|
+
FullCalendar.ResourceTimeGrid=function(e,t,l,r,s,o,i,a,n,d){"use strict";function u(e){return e&&e.__esModule?e:{default:e}}var c=u(r),h=u(s),m=u(o);class p extends n.VResourceJoiner{transformSeg(e,t,l){return[Object.assign(Object.assign({},e),{col:t.computeCol(e.col,l)})]}}class R extends t.DateComponent{constructor(){super(...arguments),this.buildDayRanges=t.memoize(a.buildDayRanges),this.splitter=new n.VResourceSplitter,this.slicers={},this.joiner=new p,this.timeColsRef=i.createRef(),this.isHitComboAllowed=(e,t)=>1===this.dayRanges.length||e.dateSpan.resourceId===t.dateSpan.resourceId}render(){let{props:e,context:l}=this,{dateEnv:r,options:s}=l,{dateProfile:o,resourceDayTableModel:n}=e,d=this.dayRanges=this.buildDayRanges(n.dayTableModel,o,r),u=this.splitter.splitProps(e);this.slicers=t.mapHash(u,(e,t)=>this.slicers[t]||new a.DayTimeColsSlicer);let c=t.mapHash(this.slicers,(e,t)=>e.sliceProps(u[t],o,null,l,d));return i.createElement(t.NowTimer,{unit:s.nowIndicator?"minute":"day"},(t,l)=>i.createElement(a.TimeCols,Object.assign({ref:this.timeColsRef},this.joiner.joinProps(c,n),{dateProfile:o,axis:e.axis,slotDuration:e.slotDuration,slatMetas:e.slatMetas,cells:n.cells[0],tableColGroupNode:e.tableColGroupNode,tableMinWidth:e.tableMinWidth,clientWidth:e.clientWidth,clientHeight:e.clientHeight,expandRows:e.expandRows,nowDate:t,nowIndicatorSegs:s.nowIndicator&&this.buildNowIndicatorSegs(t),todayRange:l,onScrollTopRequest:e.onScrollTopRequest,forPrint:e.forPrint,onSlatCoords:e.onSlatCoords,isHitComboAllowed:this.isHitComboAllowed})))}buildNowIndicatorSegs(e){let t=this.slicers[""].sliceNowDate(e,this.context,this.dayRanges);return this.joiner.expandSegs(this.props.resourceDayTableModel,t)}}class b extends a.TimeColsView{constructor(){super(...arguments),this.flattenResources=t.memoize(n.flattenResources),this.buildResourceTimeColsModel=t.memoize(y),this.buildSlatMetas=t.memoize(a.buildSlatMetas)}render(){let{props:e,context:t}=this,{options:l,dateEnv:r}=t,{dateProfile:s}=e,o=this.allDaySplitter.splitProps(e),a=l.resourceOrder||n.DEFAULT_RESOURCE_ORDER,u=this.flattenResources(e.resourceStore,a),c=this.buildResourceTimeColsModel(s,t.dateProfileGenerator,u,l.datesAboveResources,t),h=this.buildSlatMetas(s.slotMinTime,s.slotMaxTime,l.slotLabelInterval,l.slotDuration,r),{dayMinWidth:m}=l,p=!m,b=m,y=l.dayHeaders&&i.createElement(n.ResourceDayHeader,{resources:u,dates:c.dayTableModel.headerDates,dateProfile:s,datesRepDistinctDays:!0,renderIntro:p?this.renderHeadAxis:null}),C=!1!==l.allDaySlot&&(t=>i.createElement(d.ResourceDayTable,Object.assign({},o.allDay,{dateProfile:s,resourceDayTableModel:c,nextDayThreshold:l.nextDayThreshold,tableMinWidth:t.tableMinWidth,colGroupNode:t.tableColGroupNode,renderRowIntro:p?this.renderTableRowAxis:null,showWeekNumbers:!1,expandRows:!1,headerAlignElRef:this.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:e.forPrint},this.getAllDayMaxEventProps()))),D=t=>i.createElement(R,Object.assign({},o.timed,{dateProfile:s,axis:p,slotDuration:l.slotDuration,slatMetas:h,resourceDayTableModel:c,tableColGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,clientWidth:t.clientWidth,clientHeight:t.clientHeight,onSlatCoords:this.handleSlatCoords,expandRows:t.expandRows,forPrint:e.forPrint,onScrollTopRequest:this.handleScrollTopRequest}));return b?this.renderHScrollLayout(y,C,D,c.colCnt,m,h,this.state.slatCoords):this.renderSimpleLayout(y,C,D)}}function y(e,t,l,r,s){let o=a.buildTimeColsModel(e,t);return r?new n.DayResourceTableModel(o,l,s):new n.ResourceDayTableModel(o,l,s)}var C=l.createPlugin({name:"@fullcalendar/resource-timegrid",premiumReleaseDate:"2022-11-22",deps:[c.default,h.default,m.default],initialView:"resourceTimeGridDay",views:{resourceTimeGrid:{type:"timeGrid",component:b,needsResourceData:!0},resourceTimeGridDay:{type:"resourceTimeGrid",duration:{days:1}},resourceTimeGridWeek:{type:"resourceTimeGrid",duration:{weeks:1}}}}),D={__proto__:null,ResourceDayTimeColsView:b,ResourceDayTimeCols:R};return t.globalPlugins.push(C),e.Internal=D,e.default=C,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar.Internal,FullCalendar,FullCalendar.PremiumCommon,FullCalendar.Resource,FullCalendar.TimeGrid,FullCalendar.Preact,FullCalendar.TimeGrid.Internal,FullCalendar.Resource.Internal,FullCalendar.ResourceDayGrid.Internal);
|
package/index.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createPlugin } from '@fullcalendar/core/index.js';
|
|
2
|
+
import premiumCommonPlugin from '@fullcalendar/premium-common/index.js';
|
|
3
|
+
import resourcePlugin from '@fullcalendar/resource/index.js';
|
|
4
|
+
import timeGridPlugin from '@fullcalendar/timegrid/index.js';
|
|
5
|
+
import { ResourceDayTimeColsView } from './internal.js';
|
|
6
|
+
import '@fullcalendar/resource-daygrid/index.js';
|
|
7
|
+
import '@fullcalendar/core/internal.js';
|
|
8
|
+
import '@fullcalendar/core/preact.js';
|
|
9
|
+
import '@fullcalendar/timegrid/internal.js';
|
|
10
|
+
import '@fullcalendar/resource/internal.js';
|
|
11
|
+
import '@fullcalendar/resource-daygrid/internal.js';
|
|
12
|
+
|
|
13
|
+
var index = createPlugin({
|
|
14
|
+
name: '@fullcalendar/resource-timegrid',
|
|
15
|
+
premiumReleaseDate: '2022-11-22',
|
|
16
|
+
deps: [
|
|
17
|
+
premiumCommonPlugin,
|
|
18
|
+
resourcePlugin,
|
|
19
|
+
timeGridPlugin,
|
|
20
|
+
],
|
|
21
|
+
initialView: 'resourceTimeGridDay',
|
|
22
|
+
views: {
|
|
23
|
+
resourceTimeGrid: {
|
|
24
|
+
type: 'timeGrid',
|
|
25
|
+
component: ResourceDayTimeColsView,
|
|
26
|
+
needsResourceData: true,
|
|
27
|
+
},
|
|
28
|
+
resourceTimeGridDay: {
|
|
29
|
+
type: 'resourceTimeGrid',
|
|
30
|
+
duration: { days: 1 },
|
|
31
|
+
},
|
|
32
|
+
resourceTimeGridWeek: {
|
|
33
|
+
type: 'resourceTimeGrid',
|
|
34
|
+
duration: { weeks: 1 },
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export { index as default };
|
package/internal.cjs
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var internal_cjs$1 = require('@fullcalendar/core/internal.cjs');
|
|
6
|
+
var preact_cjs = require('@fullcalendar/core/preact.cjs');
|
|
7
|
+
var internal_cjs$2 = require('@fullcalendar/timegrid/internal.cjs');
|
|
8
|
+
var internal_cjs = require('@fullcalendar/resource/internal.cjs');
|
|
9
|
+
var internal_cjs$3 = require('@fullcalendar/resource-daygrid/internal.cjs');
|
|
10
|
+
|
|
11
|
+
class ResourceDayTimeColsJoiner extends internal_cjs.VResourceJoiner {
|
|
12
|
+
transformSeg(seg, resourceDayTable, resourceI) {
|
|
13
|
+
return [
|
|
14
|
+
Object.assign(Object.assign({}, seg), { col: resourceDayTable.computeCol(seg.col, resourceI) }),
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
class ResourceDayTimeCols extends internal_cjs$1.DateComponent {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this.buildDayRanges = internal_cjs$1.memoize(internal_cjs$2.buildDayRanges);
|
|
23
|
+
this.splitter = new internal_cjs.VResourceSplitter();
|
|
24
|
+
this.slicers = {};
|
|
25
|
+
this.joiner = new ResourceDayTimeColsJoiner();
|
|
26
|
+
this.timeColsRef = preact_cjs.createRef();
|
|
27
|
+
this.isHitComboAllowed = (hit0, hit1) => {
|
|
28
|
+
let allowAcrossResources = this.dayRanges.length === 1;
|
|
29
|
+
return allowAcrossResources || hit0.dateSpan.resourceId === hit1.dateSpan.resourceId;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
render() {
|
|
33
|
+
let { props, context } = this;
|
|
34
|
+
let { dateEnv, options } = context;
|
|
35
|
+
let { dateProfile, resourceDayTableModel } = props;
|
|
36
|
+
let dayRanges = this.dayRanges = this.buildDayRanges(resourceDayTableModel.dayTableModel, dateProfile, dateEnv);
|
|
37
|
+
let splitProps = this.splitter.splitProps(props);
|
|
38
|
+
this.slicers = internal_cjs$1.mapHash(splitProps, (split, resourceId) => this.slicers[resourceId] || new internal_cjs$2.DayTimeColsSlicer());
|
|
39
|
+
let slicedProps = internal_cjs$1.mapHash(this.slicers, (slicer, resourceId) => slicer.sliceProps(splitProps[resourceId], dateProfile, null, context, dayRanges));
|
|
40
|
+
return ( // TODO: would move this further down hierarchy, but sliceNowDate needs it
|
|
41
|
+
preact_cjs.createElement(internal_cjs$1.NowTimer, { unit: options.nowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (preact_cjs.createElement(internal_cjs$2.TimeCols, Object.assign({ ref: this.timeColsRef }, this.joiner.joinProps(slicedProps, resourceDayTableModel), { dateProfile: dateProfile, axis: props.axis, slotDuration: props.slotDuration, slatMetas: props.slatMetas, cells: resourceDayTableModel.cells[0], tableColGroupNode: props.tableColGroupNode, tableMinWidth: props.tableMinWidth, clientWidth: props.clientWidth, clientHeight: props.clientHeight, expandRows: props.expandRows, nowDate: nowDate, nowIndicatorSegs: options.nowIndicator && this.buildNowIndicatorSegs(nowDate), todayRange: todayRange, onScrollTopRequest: props.onScrollTopRequest, forPrint: props.forPrint, onSlatCoords: props.onSlatCoords, isHitComboAllowed: this.isHitComboAllowed })))));
|
|
42
|
+
}
|
|
43
|
+
buildNowIndicatorSegs(date) {
|
|
44
|
+
let nonResourceSegs = this.slicers[''].sliceNowDate(date, this.context, this.dayRanges);
|
|
45
|
+
return this.joiner.expandSegs(this.props.resourceDayTableModel, nonResourceSegs);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
class ResourceDayTimeColsView extends internal_cjs$2.TimeColsView {
|
|
50
|
+
constructor() {
|
|
51
|
+
super(...arguments);
|
|
52
|
+
this.flattenResources = internal_cjs$1.memoize(internal_cjs.flattenResources);
|
|
53
|
+
this.buildResourceTimeColsModel = internal_cjs$1.memoize(buildResourceTimeColsModel);
|
|
54
|
+
this.buildSlatMetas = internal_cjs$1.memoize(internal_cjs$2.buildSlatMetas);
|
|
55
|
+
}
|
|
56
|
+
render() {
|
|
57
|
+
let { props, context } = this;
|
|
58
|
+
let { options, dateEnv } = context;
|
|
59
|
+
let { dateProfile } = props;
|
|
60
|
+
let splitProps = this.allDaySplitter.splitProps(props);
|
|
61
|
+
let resourceOrderSpecs = options.resourceOrder || internal_cjs.DEFAULT_RESOURCE_ORDER;
|
|
62
|
+
let resources = this.flattenResources(props.resourceStore, resourceOrderSpecs);
|
|
63
|
+
let resourceDayTableModel = this.buildResourceTimeColsModel(dateProfile, context.dateProfileGenerator, resources, options.datesAboveResources, context);
|
|
64
|
+
let slatMetas = this.buildSlatMetas(dateProfile.slotMinTime, dateProfile.slotMaxTime, options.slotLabelInterval, options.slotDuration, dateEnv);
|
|
65
|
+
let { dayMinWidth } = options;
|
|
66
|
+
let hasAttachedAxis = !dayMinWidth;
|
|
67
|
+
let hasDetachedAxis = dayMinWidth;
|
|
68
|
+
let headerContent = options.dayHeaders && (preact_cjs.createElement(internal_cjs.ResourceDayHeader, { resources: resources, dates: resourceDayTableModel.dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));
|
|
69
|
+
let allDayContent = (options.allDaySlot !== false) && ((contentArg) => (preact_cjs.createElement(internal_cjs$3.ResourceDayTable, Object.assign({}, splitProps.allDay, { dateProfile: dateProfile, resourceDayTableModel: resourceDayTableModel, nextDayThreshold: options.nextDayThreshold, tableMinWidth: contentArg.tableMinWidth, colGroupNode: contentArg.tableColGroupNode, renderRowIntro: hasAttachedAxis ? this.renderTableRowAxis : null, showWeekNumbers: false, expandRows: false, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }, this.getAllDayMaxEventProps()))));
|
|
70
|
+
let timeGridContent = (contentArg) => (preact_cjs.createElement(ResourceDayTimeCols, Object.assign({}, splitProps.timed, { dateProfile: dateProfile, axis: hasAttachedAxis, slotDuration: options.slotDuration, slatMetas: slatMetas, resourceDayTableModel: resourceDayTableModel, tableColGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, onSlatCoords: this.handleSlatCoords, expandRows: contentArg.expandRows, forPrint: props.forPrint, onScrollTopRequest: this.handleScrollTopRequest })));
|
|
71
|
+
return hasDetachedAxis
|
|
72
|
+
? this.renderHScrollLayout(headerContent, allDayContent, timeGridContent, resourceDayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords)
|
|
73
|
+
: this.renderSimpleLayout(headerContent, allDayContent, timeGridContent);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function buildResourceTimeColsModel(dateProfile, dateProfileGenerator, resources, datesAboveResources, context) {
|
|
77
|
+
let dayTable = internal_cjs$2.buildTimeColsModel(dateProfile, dateProfileGenerator);
|
|
78
|
+
return datesAboveResources ?
|
|
79
|
+
new internal_cjs.DayResourceTableModel(dayTable, resources, context) :
|
|
80
|
+
new internal_cjs.ResourceDayTableModel(dayTable, resources, context);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
exports.ResourceDayTimeCols = ResourceDayTimeCols;
|
|
84
|
+
exports.ResourceDayTimeColsView = ResourceDayTimeColsView;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import '@fullcalendar/
|
|
5
|
-
import {
|
|
6
|
-
import { ResourceViewProps, AbstractResourceDayTableModel } from '@fullcalendar/resource-common';
|
|
1
|
+
import { createElement, VNode } from '@fullcalendar/core/preact';
|
|
2
|
+
import { TimeColsView, TimeSlatMeta, TimeColsSlatsCoords } from '@fullcalendar/timegrid/internal';
|
|
3
|
+
import { ResourceViewProps, AbstractResourceDayTableModel } from '@fullcalendar/resource/internal';
|
|
4
|
+
import { Duration, CssDimValue } from '@fullcalendar/core';
|
|
5
|
+
import { DateComponent, Hit, DateMarker, DateProfile, EventStore, EventUiHash, DateSpan, EventInteractionState } from '@fullcalendar/core/internal';
|
|
7
6
|
|
|
8
7
|
declare class ResourceDayTimeColsView extends TimeColsView {
|
|
9
8
|
props: ResourceViewProps;
|
|
@@ -47,8 +46,4 @@ declare class ResourceDayTimeCols extends DateComponent<ResourceDayTimeColsProps
|
|
|
47
46
|
buildNowIndicatorSegs(date: DateMarker): any[];
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
declare const _default: _fullcalendar_common.PluginDef;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
export default _default;
|
|
54
49
|
export { ResourceDayTimeCols, ResourceDayTimeColsView };
|
package/{main.js → internal.js}
RENAMED
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { DateComponent, memoize, createRef, mapHash, createElement, NowTimer, createPlugin } from '@fullcalendar/common';
|
|
7
|
-
import premiumCommonPlugin from '@fullcalendar/premium-common';
|
|
8
|
-
import resourceCommonPlugin, { VResourceJoiner, VResourceSplitter, flattenResources, DEFAULT_RESOURCE_ORDER, ResourceDayHeader, DayResourceTableModel, ResourceDayTableModel } from '@fullcalendar/resource-common';
|
|
9
|
-
import timeGridPlugin, { buildDayRanges, DayTimeColsSlicer, TimeCols, TimeColsView, buildSlatMetas, buildTimeColsModel } from '@fullcalendar/timegrid';
|
|
10
|
-
import { ResourceDayTable } from '@fullcalendar/resource-daygrid';
|
|
1
|
+
import { DateComponent, memoize, mapHash, NowTimer } from '@fullcalendar/core/internal.js';
|
|
2
|
+
import { createRef, createElement } from '@fullcalendar/core/preact.js';
|
|
3
|
+
import { buildDayRanges, DayTimeColsSlicer, TimeCols, TimeColsView, buildSlatMetas, buildTimeColsModel } from '@fullcalendar/timegrid/internal.js';
|
|
4
|
+
import { VResourceJoiner, VResourceSplitter, flattenResources, DEFAULT_RESOURCE_ORDER, ResourceDayHeader, DayResourceTableModel, ResourceDayTableModel } from '@fullcalendar/resource/internal.js';
|
|
5
|
+
import { ResourceDayTable } from '@fullcalendar/resource-daygrid/internal.js';
|
|
11
6
|
|
|
12
7
|
class ResourceDayTimeColsJoiner extends VResourceJoiner {
|
|
13
8
|
transformSeg(seg, resourceDayTable, resourceI) {
|
|
@@ -81,30 +76,4 @@ function buildResourceTimeColsModel(dateProfile, dateProfileGenerator, resources
|
|
|
81
76
|
new ResourceDayTableModel(dayTable, resources, context);
|
|
82
77
|
}
|
|
83
78
|
|
|
84
|
-
var main = createPlugin({
|
|
85
|
-
deps: [
|
|
86
|
-
premiumCommonPlugin,
|
|
87
|
-
resourceCommonPlugin,
|
|
88
|
-
timeGridPlugin,
|
|
89
|
-
],
|
|
90
|
-
initialView: 'resourceTimeGridDay',
|
|
91
|
-
views: {
|
|
92
|
-
resourceTimeGrid: {
|
|
93
|
-
type: 'timeGrid',
|
|
94
|
-
component: ResourceDayTimeColsView,
|
|
95
|
-
needsResourceData: true,
|
|
96
|
-
},
|
|
97
|
-
resourceTimeGridDay: {
|
|
98
|
-
type: 'resourceTimeGrid',
|
|
99
|
-
duration: { days: 1 },
|
|
100
|
-
},
|
|
101
|
-
resourceTimeGridWeek: {
|
|
102
|
-
type: 'resourceTimeGrid',
|
|
103
|
-
duration: { weeks: 1 },
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
export default main;
|
|
109
79
|
export { ResourceDayTimeCols, ResourceDayTimeColsView };
|
|
110
|
-
//# sourceMappingURL=main.js.map
|
package/package.json
CHANGED
|
@@ -1,28 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fullcalendar/resource-timegrid",
|
|
3
|
-
"version": "6.0.0-beta.
|
|
4
|
-
"
|
|
5
|
-
|
|
3
|
+
"version": "6.0.0-beta.2",
|
|
4
|
+
"keywords": [
|
|
5
|
+
"calendar",
|
|
6
|
+
"event",
|
|
7
|
+
"full-sized"
|
|
8
|
+
],
|
|
9
|
+
"homepage": "https://fullcalendar.io/premium",
|
|
6
10
|
"docs": "https://fullcalendar.io/docs/vertical-resource-view",
|
|
7
|
-
"dependencies": {
|
|
8
|
-
"@fullcalendar/common": "6.0.0-beta.1",
|
|
9
|
-
"@fullcalendar/premium-common": "6.0.0-beta.1",
|
|
10
|
-
"@fullcalendar/resource-common": "6.0.0-beta.1",
|
|
11
|
-
"@fullcalendar/resource-daygrid": "6.0.0-beta.1",
|
|
12
|
-
"@fullcalendar/timegrid": "6.0.0-beta.1",
|
|
13
|
-
"tslib": "^2.1.0"
|
|
14
|
-
},
|
|
15
|
-
"main": "main.cjs.js",
|
|
16
|
-
"module": "main.js",
|
|
17
|
-
"types": "main.d.ts",
|
|
18
|
-
"jsdelivr": "main.global.min.js",
|
|
19
|
-
"browserGlobal": "FullCalendarResourceTimeGrid",
|
|
20
|
-
"homepage": "https://fullcalendar.io/scheduler",
|
|
21
11
|
"bugs": "https://fullcalendar.io/reporting-bugs",
|
|
22
12
|
"repository": {
|
|
23
13
|
"type": "git",
|
|
24
14
|
"url": "https://github.com/fullcalendar/fullcalendar-scheduler.git",
|
|
25
|
-
"homepage": "https://github.com/fullcalendar/fullcalendar-scheduler"
|
|
15
|
+
"homepage": "https://github.com/fullcalendar/fullcalendar-scheduler",
|
|
16
|
+
"directory": "packages/resource-timegrid"
|
|
26
17
|
},
|
|
27
18
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
28
19
|
"author": {
|
|
@@ -30,7 +21,40 @@
|
|
|
30
21
|
"email": "arshaw@arshaw.com",
|
|
31
22
|
"url": "http://arshaw.com/"
|
|
32
23
|
},
|
|
33
|
-
"
|
|
34
|
-
|
|
24
|
+
"copyright": "2022 Adam Shaw",
|
|
25
|
+
"title": "FullCalendar Resource Time Grid Plugin",
|
|
26
|
+
"description": "Displays events on a vertical resource view with time slots",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@fullcalendar/premium-common": "6.0.0-beta.2",
|
|
29
|
+
"@fullcalendar/resource-daygrid": "6.0.0-beta.2",
|
|
30
|
+
"@fullcalendar/timegrid": "6.0.0-beta.2"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"@fullcalendar/core": "6.0.0-beta.2",
|
|
34
|
+
"@fullcalendar/resource": "6.0.0-beta.2"
|
|
35
|
+
},
|
|
36
|
+
"type": "module",
|
|
37
|
+
"main": "./index.cjs",
|
|
38
|
+
"module": "./index.js",
|
|
39
|
+
"types": "./index.d.ts",
|
|
40
|
+
"unpkg": "./index.global.min.js",
|
|
41
|
+
"jsdelvr": "./index.global.min.js",
|
|
42
|
+
"exports": {
|
|
43
|
+
"./package.json": "./package.json",
|
|
44
|
+
"./index.cjs": "./index.cjs",
|
|
45
|
+
"./index.js": "./index.js",
|
|
46
|
+
".": {
|
|
47
|
+
"require": "./index.cjs",
|
|
48
|
+
"import": "./index.js",
|
|
49
|
+
"types": "./index.d.ts",
|
|
50
|
+
"default": "./index.global.js"
|
|
51
|
+
},
|
|
52
|
+
"./internal.cjs": "./internal.cjs",
|
|
53
|
+
"./internal.js": "./internal.js",
|
|
54
|
+
"./internal": {
|
|
55
|
+
"require": "./internal.cjs",
|
|
56
|
+
"import": "./internal.js",
|
|
57
|
+
"types": "./internal.d.ts"
|
|
58
|
+
}
|
|
35
59
|
}
|
|
36
60
|
}
|
package/main.cjs.js
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
FullCalendar Scheduler v6.0.0-beta.1
|
|
3
|
-
Docs & License: https://fullcalendar.io/scheduler
|
|
4
|
-
(c) 2022 Adam Shaw
|
|
5
|
-
*/
|
|
6
|
-
'use strict';
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
9
|
-
|
|
10
|
-
var common = require('@fullcalendar/common');
|
|
11
|
-
var premiumCommonPlugin = require('@fullcalendar/premium-common');
|
|
12
|
-
var resourceCommonPlugin = require('@fullcalendar/resource-common');
|
|
13
|
-
var timeGridPlugin = require('@fullcalendar/timegrid');
|
|
14
|
-
var resourceDaygrid = require('@fullcalendar/resource-daygrid');
|
|
15
|
-
|
|
16
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
|
-
|
|
18
|
-
var premiumCommonPlugin__default = /*#__PURE__*/_interopDefaultLegacy(premiumCommonPlugin);
|
|
19
|
-
var resourceCommonPlugin__default = /*#__PURE__*/_interopDefaultLegacy(resourceCommonPlugin);
|
|
20
|
-
var timeGridPlugin__default = /*#__PURE__*/_interopDefaultLegacy(timeGridPlugin);
|
|
21
|
-
|
|
22
|
-
class ResourceDayTimeColsJoiner extends resourceCommonPlugin.VResourceJoiner {
|
|
23
|
-
transformSeg(seg, resourceDayTable, resourceI) {
|
|
24
|
-
return [
|
|
25
|
-
Object.assign(Object.assign({}, seg), { col: resourceDayTable.computeCol(seg.col, resourceI) }),
|
|
26
|
-
];
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
class ResourceDayTimeCols extends common.DateComponent {
|
|
31
|
-
constructor() {
|
|
32
|
-
super(...arguments);
|
|
33
|
-
this.buildDayRanges = common.memoize(timeGridPlugin.buildDayRanges);
|
|
34
|
-
this.splitter = new resourceCommonPlugin.VResourceSplitter();
|
|
35
|
-
this.slicers = {};
|
|
36
|
-
this.joiner = new ResourceDayTimeColsJoiner();
|
|
37
|
-
this.timeColsRef = common.createRef();
|
|
38
|
-
this.isHitComboAllowed = (hit0, hit1) => {
|
|
39
|
-
let allowAcrossResources = this.dayRanges.length === 1;
|
|
40
|
-
return allowAcrossResources || hit0.dateSpan.resourceId === hit1.dateSpan.resourceId;
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
render() {
|
|
44
|
-
let { props, context } = this;
|
|
45
|
-
let { dateEnv, options } = context;
|
|
46
|
-
let { dateProfile, resourceDayTableModel } = props;
|
|
47
|
-
let dayRanges = this.dayRanges = this.buildDayRanges(resourceDayTableModel.dayTableModel, dateProfile, dateEnv);
|
|
48
|
-
let splitProps = this.splitter.splitProps(props);
|
|
49
|
-
this.slicers = common.mapHash(splitProps, (split, resourceId) => this.slicers[resourceId] || new timeGridPlugin.DayTimeColsSlicer());
|
|
50
|
-
let slicedProps = common.mapHash(this.slicers, (slicer, resourceId) => slicer.sliceProps(splitProps[resourceId], dateProfile, null, context, dayRanges));
|
|
51
|
-
return ( // TODO: would move this further down hierarchy, but sliceNowDate needs it
|
|
52
|
-
common.createElement(common.NowTimer, { unit: options.nowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (common.createElement(timeGridPlugin.TimeCols, Object.assign({ ref: this.timeColsRef }, this.joiner.joinProps(slicedProps, resourceDayTableModel), { dateProfile: dateProfile, axis: props.axis, slotDuration: props.slotDuration, slatMetas: props.slatMetas, cells: resourceDayTableModel.cells[0], tableColGroupNode: props.tableColGroupNode, tableMinWidth: props.tableMinWidth, clientWidth: props.clientWidth, clientHeight: props.clientHeight, expandRows: props.expandRows, nowDate: nowDate, nowIndicatorSegs: options.nowIndicator && this.buildNowIndicatorSegs(nowDate), todayRange: todayRange, onScrollTopRequest: props.onScrollTopRequest, forPrint: props.forPrint, onSlatCoords: props.onSlatCoords, isHitComboAllowed: this.isHitComboAllowed })))));
|
|
53
|
-
}
|
|
54
|
-
buildNowIndicatorSegs(date) {
|
|
55
|
-
let nonResourceSegs = this.slicers[''].sliceNowDate(date, this.context, this.dayRanges);
|
|
56
|
-
return this.joiner.expandSegs(this.props.resourceDayTableModel, nonResourceSegs);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
class ResourceDayTimeColsView extends timeGridPlugin.TimeColsView {
|
|
61
|
-
constructor() {
|
|
62
|
-
super(...arguments);
|
|
63
|
-
this.flattenResources = common.memoize(resourceCommonPlugin.flattenResources);
|
|
64
|
-
this.buildResourceTimeColsModel = common.memoize(buildResourceTimeColsModel);
|
|
65
|
-
this.buildSlatMetas = common.memoize(timeGridPlugin.buildSlatMetas);
|
|
66
|
-
}
|
|
67
|
-
render() {
|
|
68
|
-
let { props, context } = this;
|
|
69
|
-
let { options, dateEnv } = context;
|
|
70
|
-
let { dateProfile } = props;
|
|
71
|
-
let splitProps = this.allDaySplitter.splitProps(props);
|
|
72
|
-
let resourceOrderSpecs = options.resourceOrder || resourceCommonPlugin.DEFAULT_RESOURCE_ORDER;
|
|
73
|
-
let resources = this.flattenResources(props.resourceStore, resourceOrderSpecs);
|
|
74
|
-
let resourceDayTableModel = this.buildResourceTimeColsModel(dateProfile, context.dateProfileGenerator, resources, options.datesAboveResources, context);
|
|
75
|
-
let slatMetas = this.buildSlatMetas(dateProfile.slotMinTime, dateProfile.slotMaxTime, options.slotLabelInterval, options.slotDuration, dateEnv);
|
|
76
|
-
let { dayMinWidth } = options;
|
|
77
|
-
let hasAttachedAxis = !dayMinWidth;
|
|
78
|
-
let hasDetachedAxis = dayMinWidth;
|
|
79
|
-
let headerContent = options.dayHeaders && (common.createElement(resourceCommonPlugin.ResourceDayHeader, { resources: resources, dates: resourceDayTableModel.dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));
|
|
80
|
-
let allDayContent = (options.allDaySlot !== false) && ((contentArg) => (common.createElement(resourceDaygrid.ResourceDayTable, Object.assign({}, splitProps.allDay, { dateProfile: dateProfile, resourceDayTableModel: resourceDayTableModel, nextDayThreshold: options.nextDayThreshold, tableMinWidth: contentArg.tableMinWidth, colGroupNode: contentArg.tableColGroupNode, renderRowIntro: hasAttachedAxis ? this.renderTableRowAxis : null, showWeekNumbers: false, expandRows: false, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }, this.getAllDayMaxEventProps()))));
|
|
81
|
-
let timeGridContent = (contentArg) => (common.createElement(ResourceDayTimeCols, Object.assign({}, splitProps.timed, { dateProfile: dateProfile, axis: hasAttachedAxis, slotDuration: options.slotDuration, slatMetas: slatMetas, resourceDayTableModel: resourceDayTableModel, tableColGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, onSlatCoords: this.handleSlatCoords, expandRows: contentArg.expandRows, forPrint: props.forPrint, onScrollTopRequest: this.handleScrollTopRequest })));
|
|
82
|
-
return hasDetachedAxis
|
|
83
|
-
? this.renderHScrollLayout(headerContent, allDayContent, timeGridContent, resourceDayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords)
|
|
84
|
-
: this.renderSimpleLayout(headerContent, allDayContent, timeGridContent);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
function buildResourceTimeColsModel(dateProfile, dateProfileGenerator, resources, datesAboveResources, context) {
|
|
88
|
-
let dayTable = timeGridPlugin.buildTimeColsModel(dateProfile, dateProfileGenerator);
|
|
89
|
-
return datesAboveResources ?
|
|
90
|
-
new resourceCommonPlugin.DayResourceTableModel(dayTable, resources, context) :
|
|
91
|
-
new resourceCommonPlugin.ResourceDayTableModel(dayTable, resources, context);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
var main = common.createPlugin({
|
|
95
|
-
deps: [
|
|
96
|
-
premiumCommonPlugin__default['default'],
|
|
97
|
-
resourceCommonPlugin__default['default'],
|
|
98
|
-
timeGridPlugin__default['default'],
|
|
99
|
-
],
|
|
100
|
-
initialView: 'resourceTimeGridDay',
|
|
101
|
-
views: {
|
|
102
|
-
resourceTimeGrid: {
|
|
103
|
-
type: 'timeGrid',
|
|
104
|
-
component: ResourceDayTimeColsView,
|
|
105
|
-
needsResourceData: true,
|
|
106
|
-
},
|
|
107
|
-
resourceTimeGridDay: {
|
|
108
|
-
type: 'resourceTimeGrid',
|
|
109
|
-
duration: { days: 1 },
|
|
110
|
-
},
|
|
111
|
-
resourceTimeGridWeek: {
|
|
112
|
-
type: 'resourceTimeGrid',
|
|
113
|
-
duration: { weeks: 1 },
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
exports.ResourceDayTimeCols = ResourceDayTimeCols;
|
|
119
|
-
exports.ResourceDayTimeColsView = ResourceDayTimeColsView;
|
|
120
|
-
exports.default = main;
|
package/main.global.min.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
FullCalendar Scheduler v6.0.0-beta.1
|
|
3
|
-
Docs & License: https://fullcalendar.io/scheduler
|
|
4
|
-
(c) 2022 Adam Shaw
|
|
5
|
-
*/
|
|
6
|
-
var FullCalendarResourceTimeGrid=function(e,t,o,s,i,l){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=r(o),n=r(s),d=r(i);class u extends s.VResourceJoiner{transformSeg(e,t,o){return[Object.assign(Object.assign({},e),{col:t.computeCol(e.col,o)})]}}class c extends t.DateComponent{constructor(){super(...arguments),this.buildDayRanges=t.memoize(i.buildDayRanges),this.splitter=new s.VResourceSplitter,this.slicers={},this.joiner=new u,this.timeColsRef=t.createRef(),this.isHitComboAllowed=(e,t)=>1===this.dayRanges.length||e.dateSpan.resourceId===t.dateSpan.resourceId}render(){let{props:e,context:o}=this,{dateEnv:s,options:l}=o,{dateProfile:r,resourceDayTableModel:a}=e,n=this.dayRanges=this.buildDayRanges(a.dayTableModel,r,s),d=this.splitter.splitProps(e);this.slicers=t.mapHash(d,((e,t)=>this.slicers[t]||new i.DayTimeColsSlicer));let u=t.mapHash(this.slicers,((e,t)=>e.sliceProps(d[t],r,null,o,n)));return t.createElement(t.NowTimer,{unit:l.nowIndicator?"minute":"day"},((o,s)=>t.createElement(i.TimeCols,Object.assign({ref:this.timeColsRef},this.joiner.joinProps(u,a),{dateProfile:r,axis:e.axis,slotDuration:e.slotDuration,slatMetas:e.slatMetas,cells:a.cells[0],tableColGroupNode:e.tableColGroupNode,tableMinWidth:e.tableMinWidth,clientWidth:e.clientWidth,clientHeight:e.clientHeight,expandRows:e.expandRows,nowDate:o,nowIndicatorSegs:l.nowIndicator&&this.buildNowIndicatorSegs(o),todayRange:s,onScrollTopRequest:e.onScrollTopRequest,forPrint:e.forPrint,onSlatCoords:e.onSlatCoords,isHitComboAllowed:this.isHitComboAllowed}))))}buildNowIndicatorSegs(e){let t=this.slicers[""].sliceNowDate(e,this.context,this.dayRanges);return this.joiner.expandSegs(this.props.resourceDayTableModel,t)}}class h extends i.TimeColsView{constructor(){super(...arguments),this.flattenResources=t.memoize(s.flattenResources),this.buildResourceTimeColsModel=t.memoize(m),this.buildSlatMetas=t.memoize(i.buildSlatMetas)}render(){let{props:e,context:o}=this,{options:i,dateEnv:r}=o,{dateProfile:a}=e,n=this.allDaySplitter.splitProps(e),d=i.resourceOrder||s.DEFAULT_RESOURCE_ORDER,u=this.flattenResources(e.resourceStore,d),h=this.buildResourceTimeColsModel(a,o.dateProfileGenerator,u,i.datesAboveResources,o),m=this.buildSlatMetas(a.slotMinTime,a.slotMaxTime,i.slotLabelInterval,i.slotDuration,r),{dayMinWidth:p}=i,b=!p,R=p,y=i.dayHeaders&&t.createElement(s.ResourceDayHeader,{resources:u,dates:h.dayTableModel.headerDates,dateProfile:a,datesRepDistinctDays:!0,renderIntro:b?this.renderHeadAxis:null}),D=!1!==i.allDaySlot&&(o=>t.createElement(l.ResourceDayTable,Object.assign({},n.allDay,{dateProfile:a,resourceDayTableModel:h,nextDayThreshold:i.nextDayThreshold,tableMinWidth:o.tableMinWidth,colGroupNode:o.tableColGroupNode,renderRowIntro:b?this.renderTableRowAxis:null,showWeekNumbers:!1,expandRows:!1,headerAlignElRef:this.headerElRef,clientWidth:o.clientWidth,clientHeight:o.clientHeight,forPrint:e.forPrint},this.getAllDayMaxEventProps()))),T=o=>t.createElement(c,Object.assign({},n.timed,{dateProfile:a,axis:b,slotDuration:i.slotDuration,slatMetas:m,resourceDayTableModel:h,tableColGroupNode:o.tableColGroupNode,tableMinWidth:o.tableMinWidth,clientWidth:o.clientWidth,clientHeight:o.clientHeight,onSlatCoords:this.handleSlatCoords,expandRows:o.expandRows,forPrint:e.forPrint,onScrollTopRequest:this.handleScrollTopRequest}));return R?this.renderHScrollLayout(y,D,T,h.colCnt,p,m,this.state.slatCoords):this.renderSimpleLayout(y,D,T)}}function m(e,t,o,l,r){let a=i.buildTimeColsModel(e,t);return l?new s.DayResourceTableModel(a,o,r):new s.ResourceDayTableModel(a,o,r)}var p=t.createPlugin({deps:[a.default,n.default,d.default],initialView:"resourceTimeGridDay",views:{resourceTimeGrid:{type:"timeGrid",component:h,needsResourceData:!0},resourceTimeGridDay:{type:"resourceTimeGrid",duration:{days:1}},resourceTimeGridWeek:{type:"resourceTimeGrid",duration:{weeks:1}}}});return t.globalPlugins.push(p),e.ResourceDayTimeCols=c,e.ResourceDayTimeColsView=h,e.default=p,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendarPremiumCommon,FullCalendarResourceCommon,FullCalendarTimeGrid,FullCalendarResourceDayGrid);
|
package/main.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["src/ResourceDayTimeColsJoiner.ts","src/ResourceDayTimeCols.tsx","src/ResourceDayTimeColsView.tsx","src/main.ts"],"sourcesContent":["import { TimeColsSeg } from '@fullcalendar/timegrid'\nimport { AbstractResourceDayTableModel, VResourceJoiner } from '@fullcalendar/resource-common'\n\nexport class ResourceDayTimeColsJoiner extends VResourceJoiner<TimeColsSeg> {\n transformSeg(seg: TimeColsSeg, resourceDayTable: AbstractResourceDayTableModel, resourceI: number) {\n return [\n {\n ...seg,\n col: resourceDayTable.computeCol(seg.col, resourceI),\n },\n ]\n }\n}\n","import {\n createElement, createRef, VNode,\n mapHash, DateSpan, DateComponent, EventStore, EventUiHash, EventInteractionState, memoize, DateRange,\n DateMarker, Hit, CssDimValue, NowTimer, Duration, DateProfile,\n} from '@fullcalendar/common'\nimport { DayTimeColsSlicer, TimeCols, buildDayRanges, TimeSlatMeta, TimeColsSlatsCoords } from '@fullcalendar/timegrid'\nimport { AbstractResourceDayTableModel, VResourceSplitter } from '@fullcalendar/resource-common'\nimport { ResourceDayTimeColsJoiner } from './ResourceDayTimeColsJoiner'\n\nexport interface ResourceDayTimeColsProps {\n dateProfile: DateProfile\n resourceDayTableModel: AbstractResourceDayTableModel\n axis: boolean\n slotDuration: Duration\n slatMetas: TimeSlatMeta[]\n businessHours: EventStore\n eventStore: EventStore\n eventUiBases: EventUiHash\n dateSelection: DateSpan | null\n eventSelection: string\n eventDrag: EventInteractionState | null\n eventResize: EventInteractionState | null\n tableColGroupNode: VNode\n tableMinWidth: CssDimValue\n clientWidth: number | null\n clientHeight: number | null\n expandRows: boolean\n onScrollTopRequest?: (scrollTop: number) => void\n forPrint: boolean\n onSlatCoords?: (slatCoords: TimeColsSlatsCoords) => void\n}\n\nexport class ResourceDayTimeCols extends DateComponent<ResourceDayTimeColsProps> {\n private buildDayRanges = memoize(buildDayRanges)\n private dayRanges: DateRange[] // for now indicator\n private splitter = new VResourceSplitter()\n private slicers: { [resourceId: string]: DayTimeColsSlicer } = {}\n private joiner = new ResourceDayTimeColsJoiner()\n private timeColsRef = createRef<TimeCols>()\n\n render() {\n let { props, context } = this\n let { dateEnv, options } = context\n let { dateProfile, resourceDayTableModel } = props\n\n let dayRanges = this.dayRanges = this.buildDayRanges(resourceDayTableModel.dayTableModel, dateProfile, dateEnv)\n let splitProps = this.splitter.splitProps(props)\n\n this.slicers = mapHash(splitProps, (split, resourceId) => this.slicers[resourceId] || new DayTimeColsSlicer())\n let slicedProps = mapHash(this.slicers, (slicer, resourceId) => slicer.sliceProps(\n splitProps[resourceId],\n dateProfile,\n null,\n context,\n dayRanges,\n ))\n\n return ( // TODO: would move this further down hierarchy, but sliceNowDate needs it\n <NowTimer unit={options.nowIndicator ? 'minute' : 'day'}>\n {(nowDate: DateMarker, todayRange: DateRange) => (\n <TimeCols\n ref={this.timeColsRef}\n {...this.joiner.joinProps(slicedProps, resourceDayTableModel)}\n dateProfile={dateProfile}\n axis={props.axis}\n slotDuration={props.slotDuration}\n slatMetas={props.slatMetas}\n cells={resourceDayTableModel.cells[0]}\n tableColGroupNode={props.tableColGroupNode}\n tableMinWidth={props.tableMinWidth}\n clientWidth={props.clientWidth}\n clientHeight={props.clientHeight}\n expandRows={props.expandRows}\n nowDate={nowDate}\n nowIndicatorSegs={options.nowIndicator && this.buildNowIndicatorSegs(nowDate)}\n todayRange={todayRange}\n onScrollTopRequest={props.onScrollTopRequest}\n forPrint={props.forPrint}\n onSlatCoords={props.onSlatCoords}\n isHitComboAllowed={this.isHitComboAllowed}\n />\n )}\n </NowTimer>\n )\n }\n\n isHitComboAllowed = (hit0: Hit, hit1: Hit) => {\n let allowAcrossResources = this.dayRanges.length === 1\n return allowAcrossResources || hit0.dateSpan.resourceId === hit1.dateSpan.resourceId\n }\n\n buildNowIndicatorSegs(date: DateMarker) {\n let nonResourceSegs = this.slicers[''].sliceNowDate(date, this.context, this.dayRanges)\n return this.joiner.expandSegs(this.props.resourceDayTableModel, nonResourceSegs)\n }\n}\n","import { createElement, DateProfileGenerator, memoize, DateProfile, ChunkContentCallbackArgs, CalendarContext } from '@fullcalendar/common'\nimport { TimeColsView, buildTimeColsModel, buildSlatMetas } from '@fullcalendar/timegrid'\nimport {\n ResourceDayHeader, ResourceDayTableModel, DayResourceTableModel, ResourceViewProps,\n Resource, flattenResources, DEFAULT_RESOURCE_ORDER,\n} from '@fullcalendar/resource-common'\nimport { ResourceDayTable } from '@fullcalendar/resource-daygrid'\nimport { ResourceDayTimeCols } from './ResourceDayTimeCols'\n\nexport class ResourceDayTimeColsView extends TimeColsView {\n props: ResourceViewProps\n\n private flattenResources = memoize(flattenResources)\n private buildResourceTimeColsModel = memoize(buildResourceTimeColsModel)\n private buildSlatMetas = memoize(buildSlatMetas)\n\n render() {\n let { props, context } = this\n let { options, dateEnv } = context\n let { dateProfile } = props\n\n let splitProps = this.allDaySplitter.splitProps(props)\n let resourceOrderSpecs = options.resourceOrder || DEFAULT_RESOURCE_ORDER\n let resources = this.flattenResources(props.resourceStore, resourceOrderSpecs)\n let resourceDayTableModel = this.buildResourceTimeColsModel(\n dateProfile,\n context.dateProfileGenerator,\n resources,\n options.datesAboveResources,\n context,\n )\n\n let slatMetas = this.buildSlatMetas(\n dateProfile.slotMinTime,\n dateProfile.slotMaxTime,\n options.slotLabelInterval,\n options.slotDuration,\n dateEnv,\n )\n let { dayMinWidth } = options\n let hasAttachedAxis = !dayMinWidth\n let hasDetachedAxis = dayMinWidth\n\n let headerContent = options.dayHeaders && (\n <ResourceDayHeader\n resources={resources}\n dates={resourceDayTableModel.dayTableModel.headerDates}\n dateProfile={dateProfile}\n datesRepDistinctDays\n renderIntro={hasAttachedAxis ? this.renderHeadAxis : null}\n />\n )\n\n let allDayContent = (options.allDaySlot !== false) && ((contentArg: ChunkContentCallbackArgs) => (\n <ResourceDayTable\n {...splitProps.allDay}\n dateProfile={dateProfile}\n resourceDayTableModel={resourceDayTableModel}\n nextDayThreshold={options.nextDayThreshold}\n tableMinWidth={contentArg.tableMinWidth}\n colGroupNode={contentArg.tableColGroupNode}\n renderRowIntro={hasAttachedAxis ? this.renderTableRowAxis : null}\n showWeekNumbers={false}\n expandRows={false}\n headerAlignElRef={this.headerElRef}\n clientWidth={contentArg.clientWidth}\n clientHeight={contentArg.clientHeight}\n forPrint={props.forPrint}\n {...this.getAllDayMaxEventProps()}\n />\n ))\n\n let timeGridContent = (contentArg: ChunkContentCallbackArgs) => (\n <ResourceDayTimeCols\n {...splitProps.timed}\n dateProfile={dateProfile}\n axis={hasAttachedAxis}\n slotDuration={options.slotDuration}\n slatMetas={slatMetas}\n resourceDayTableModel={resourceDayTableModel}\n tableColGroupNode={contentArg.tableColGroupNode}\n tableMinWidth={contentArg.tableMinWidth}\n clientWidth={contentArg.clientWidth}\n clientHeight={contentArg.clientHeight}\n onSlatCoords={this.handleSlatCoords}\n expandRows={contentArg.expandRows}\n forPrint={props.forPrint}\n onScrollTopRequest={this.handleScrollTopRequest}\n />\n )\n\n return hasDetachedAxis\n ? this.renderHScrollLayout(\n headerContent,\n allDayContent,\n timeGridContent,\n resourceDayTableModel.colCnt,\n dayMinWidth,\n slatMetas,\n this.state.slatCoords,\n )\n : this.renderSimpleLayout(\n headerContent,\n allDayContent,\n timeGridContent,\n )\n }\n}\n\nfunction buildResourceTimeColsModel(\n dateProfile: DateProfile,\n dateProfileGenerator: DateProfileGenerator,\n resources: Resource[],\n datesAboveResources: boolean,\n context: CalendarContext,\n) {\n let dayTable = buildTimeColsModel(dateProfile, dateProfileGenerator)\n\n return datesAboveResources ?\n new DayResourceTableModel(dayTable, resources, context) :\n new ResourceDayTableModel(dayTable, resources, context)\n}\n","import { createPlugin } from '@fullcalendar/common'\n\nimport premiumCommonPlugin from '@fullcalendar/premium-common' // eslint-disable-line import/no-duplicates\n// ensure ambient declarations\nimport '@fullcalendar/premium-common' // eslint-disable-line import/no-duplicates\n\nimport resourceCommonPlugin from '@fullcalendar/resource-common'\nimport timeGridPlugin from '@fullcalendar/timegrid'\nimport { ResourceDayTimeColsView } from './ResourceDayTimeColsView'\n\nexport { ResourceDayTimeColsView }\nexport { ResourceDayTimeCols } from './ResourceDayTimeCols'\n\nexport default createPlugin({\n deps: [\n premiumCommonPlugin,\n resourceCommonPlugin,\n timeGridPlugin,\n ],\n initialView: 'resourceTimeGridDay',\n views: {\n\n resourceTimeGrid: {\n type: 'timeGrid', // will inherit this configuration\n component: ResourceDayTimeColsView,\n needsResourceData: true,\n },\n\n resourceTimeGridDay: {\n type: 'resourceTimeGrid',\n duration: { days: 1 },\n },\n\n resourceTimeGridWeek: {\n type: 'resourceTimeGrid',\n duration: { weeks: 1 },\n },\n\n },\n})\n"],"names":[],"mappings":"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"}
|