@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 CHANGED
@@ -1,18 +1,18 @@
1
1
 
2
2
  For complete licensing information, visit:
3
- http://fullcalendar.io/scheduler/license
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, meant for commercial use)
10
- http://fullcalendar.io/scheduler/license-details
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
- (meant for trial and non-commercial use)
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
- (meant for open-source projects)
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 Scheduler v6.0.0-beta.1
3
- Docs & License: https://fullcalendar.io/scheduler
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
- var FullCalendarResourceTimeGrid = (function (exports, common, premiumCommonPlugin, resourceCommonPlugin, timeGridPlugin, resourceDaygrid) {
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 _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
10
10
 
11
- var premiumCommonPlugin__default = /*#__PURE__*/_interopDefaultLegacy(premiumCommonPlugin);
12
- var resourceCommonPlugin__default = /*#__PURE__*/_interopDefaultLegacy(resourceCommonPlugin);
13
- var timeGridPlugin__default = /*#__PURE__*/_interopDefaultLegacy(timeGridPlugin);
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 resourceCommonPlugin.VResourceJoiner {
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 common.DateComponent {
23
+ class ResourceDayTimeCols extends internal$2.DateComponent {
24
24
  constructor() {
25
25
  super(...arguments);
26
- this.buildDayRanges = common.memoize(timeGridPlugin.buildDayRanges);
27
- this.splitter = new resourceCommonPlugin.VResourceSplitter();
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 = common.createRef();
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 = common.mapHash(splitProps, (split, resourceId) => this.slicers[resourceId] || new timeGridPlugin.DayTimeColsSlicer());
43
- let slicedProps = common.mapHash(this.slicers, (slicer, resourceId) => slicer.sliceProps(splitProps[resourceId], dateProfile, null, context, dayRanges));
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
- 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 })))));
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 timeGridPlugin.TimeColsView {
53
+ class ResourceDayTimeColsView extends internal$3.TimeColsView {
54
54
  constructor() {
55
55
  super(...arguments);
56
- this.flattenResources = common.memoize(resourceCommonPlugin.flattenResources);
57
- this.buildResourceTimeColsModel = common.memoize(buildResourceTimeColsModel);
58
- this.buildSlatMetas = common.memoize(timeGridPlugin.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 || resourceCommonPlugin.DEFAULT_RESOURCE_ORDER;
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 && (common.createElement(resourceCommonPlugin.ResourceDayHeader, { resources: resources, dates: resourceDayTableModel.dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));
73
- 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()))));
74
- 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 })));
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 = timeGridPlugin.buildTimeColsModel(dateProfile, dateProfileGenerator);
81
+ let dayTable = internal$3.buildTimeColsModel(dateProfile, dateProfileGenerator);
82
82
  return datesAboveResources ?
83
- new resourceCommonPlugin.DayResourceTableModel(dayTable, resources, context) :
84
- new resourceCommonPlugin.ResourceDayTableModel(dayTable, resources, context);
83
+ new internal$1.DayResourceTableModel(dayTable, resources, context) :
84
+ new internal$1.ResourceDayTableModel(dayTable, resources, context);
85
85
  }
86
86
 
87
- var plugin = common.createPlugin({
87
+ var plugin = core.createPlugin({
88
+ name: '@fullcalendar/resource-timegrid',
89
+ premiumReleaseDate: '2022-11-22',
88
90
  deps: [
89
- premiumCommonPlugin__default['default'],
90
- resourceCommonPlugin__default['default'],
91
- timeGridPlugin__default['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
- common.globalPlugins.push(plugin);
113
+ var internal = {
114
+ __proto__: null,
115
+ ResourceDayTimeColsView: ResourceDayTimeColsView,
116
+ ResourceDayTimeCols: ResourceDayTimeCols
117
+ };
112
118
 
113
- exports.ResourceDayTimeCols = ResourceDayTimeCols;
114
- exports.ResourceDayTimeColsView = ResourceDayTimeColsView;
115
- exports.default = plugin;
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, FullCalendarPremiumCommon, FullCalendarResourceCommon, FullCalendarTimeGrid, FullCalendarResourceDayGrid));
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 * as _fullcalendar_common from '@fullcalendar/common';
3
- import { createElement, DateComponent, Hit, DateMarker, DateProfile, Duration, EventStore, EventUiHash, DateSpan, EventInteractionState, VNode, CssDimValue } from '@fullcalendar/common';
4
- import '@fullcalendar/premium-common';
5
- import { TimeColsView, TimeSlatMeta, TimeColsSlatsCoords } from '@fullcalendar/timegrid';
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 };
@@ -1,13 +1,8 @@
1
- /*!
2
- FullCalendar Scheduler v6.0.0-beta.1
3
- Docs & License: https://fullcalendar.io/scheduler
4
- (c) 2022 Adam Shaw
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.1",
4
- "title": "FullCalendar Resource Time Grid Plugin",
5
- "description": "Displays events on a vertical resource view with time slots",
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
- "devDependencies": {
34
- "@fullcalendar/core-preact": "6.0.0-beta.1"
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;
@@ -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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"}