@fullcalendar/resource-timegrid 6.1.0 → 6.1.1

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/index.cjs ADDED
@@ -0,0 +1,48 @@
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/core/internal.cjs');
11
+ require('@fullcalendar/core/preact.cjs');
12
+ require('@fullcalendar/timegrid/internal.cjs');
13
+ require('@fullcalendar/resource/internal.cjs');
14
+ require('@fullcalendar/resource-daygrid/internal.cjs');
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 resourcePlugin__default = /*#__PURE__*/_interopDefaultLegacy(resourcePlugin);
20
+ var timeGridPlugin__default = /*#__PURE__*/_interopDefaultLegacy(timeGridPlugin);
21
+
22
+ var index = index_cjs.createPlugin({
23
+ name: '@fullcalendar/resource-timegrid',
24
+ premiumReleaseDate: '2023-01-30',
25
+ deps: [
26
+ premiumCommonPlugin__default["default"],
27
+ resourcePlugin__default["default"],
28
+ timeGridPlugin__default["default"],
29
+ ],
30
+ initialView: 'resourceTimeGridDay',
31
+ views: {
32
+ resourceTimeGrid: {
33
+ type: 'timeGrid',
34
+ component: internalCommon.ResourceDayTimeColsView,
35
+ needsResourceData: true,
36
+ },
37
+ resourceTimeGridDay: {
38
+ type: 'resourceTimeGrid',
39
+ duration: { days: 1 },
40
+ },
41
+ resourceTimeGridWeek: {
42
+ type: 'resourceTimeGrid',
43
+ duration: { weeks: 1 },
44
+ },
45
+ },
46
+ });
47
+
48
+ exports["default"] = index;
package/index.global.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
- FullCalendar Resource Time Grid Plugin v6.1.0
2
+ FullCalendar Resource Time Grid Plugin v6.1.1
3
3
  Docs & License: https://fullcalendar.io/docs/vertical-resource-view
4
- (c) 2022 Adam Shaw
4
+ (c) 2023 Adam Shaw
5
5
  */
6
6
  FullCalendar.ResourceTimeGrid = (function (exports, core, premiumCommonPlugin, resourcePlugin, timeGridPlugin, internal$2, preact, internal$3, internal$1, internal$4) {
7
7
  'use strict';
@@ -1,6 +1,6 @@
1
1
  /*!
2
- FullCalendar Resource Time Grid Plugin v6.1.0
2
+ FullCalendar Resource Time Grid Plugin v6.1.1
3
3
  Docs & License: https://fullcalendar.io/docs/vertical-resource-view
4
- (c) 2022 Adam Shaw
4
+ (c) 2023 Adam Shaw
5
5
  */
6
6
  FullCalendar.ResourceTimeGrid=function(e,t,l,o,r,s,i,a,n,d){"use strict";function u(e){return e&&e.__esModule?e:{default:e}}var c=u(l),h=u(o),m=u(r);class p extends n.VResourceJoiner{transformSeg(e,t,l){return[Object.assign(Object.assign({},e),{col:t.computeCol(e.col,l)})]}}class R extends s.DateComponent{constructor(){super(...arguments),this.buildDayRanges=s.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:t}=this,{dateEnv:l,options:o}=t,{dateProfile:r,resourceDayTableModel:n}=e,d=this.dayRanges=this.buildDayRanges(n.dayTableModel,r,l),u=this.splitter.splitProps(e);this.slicers=s.mapHash(u,(e,t)=>this.slicers[t]||new a.DayTimeColsSlicer);let c=s.mapHash(this.slicers,(e,l)=>e.sliceProps(u[l],r,null,t,d));return i.createElement(s.NowTimer,{unit:o.nowIndicator?"minute":"day"},(t,l)=>i.createElement(a.TimeCols,Object.assign({ref:this.timeColsRef},this.joiner.joinProps(c,n),{dateProfile:r,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:o.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.props.dateProfile,this.context.options.nextDayThreshold,this.context,this.dayRanges);return this.joiner.expandSegs(this.props.resourceDayTableModel,t)}}class b extends a.TimeColsView{constructor(){super(...arguments),this.flattenResources=s.memoize(n.flattenResources),this.buildResourceTimeColsModel=s.memoize(y),this.buildSlatMetas=s.memoize(a.buildSlatMetas)}render(){let{props:e,context:t}=this,{options:l,dateEnv:o}=t,{dateProfile:r}=e,s=this.allDaySplitter.splitProps(e),a=l.resourceOrder||n.DEFAULT_RESOURCE_ORDER,u=this.flattenResources(e.resourceStore,a),c=this.buildResourceTimeColsModel(r,t.dateProfileGenerator,u,l.datesAboveResources,t),h=this.buildSlatMetas(r.slotMinTime,r.slotMaxTime,l.slotLabelInterval,l.slotDuration,o),{dayMinWidth:m}=l,p=!m,b=m,y=l.dayHeaders&&i.createElement(n.ResourceDayHeader,{resources:u,dates:c.dayTableModel.headerDates,dateProfile:r,datesRepDistinctDays:!0,renderIntro:p?this.renderHeadAxis:null}),D=!1!==l.allDaySlot&&(t=>i.createElement(d.ResourceDayTable,Object.assign({},s.allDay,{dateProfile:r,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()))),C=t=>i.createElement(R,Object.assign({},s.timed,{dateProfile:r,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,D,C,c.colCnt,m,h,this.state.slatCoords):this.renderSimpleLayout(y,D,C)}}function y(e,t,l,o,r){let s=a.buildTimeColsModel(e,t);return o?new n.DayResourceTableModel(s,l,r):new n.ResourceDayTableModel(s,l,r)}var D=t.createPlugin({name:"@fullcalendar/resource-timegrid",premiumReleaseDate:"2023-01-30",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}}}}),C={__proto__:null,ResourceDayTimeColsView:b,ResourceDayTimeCols:R};return t.globalPlugins.push(D),e.Internal=C,e.default=D,Object.defineProperty(e,"__esModule",{value:!0}),e}({},FullCalendar,FullCalendar.PremiumCommon,FullCalendar.Resource,FullCalendar.TimeGrid,FullCalendar.Internal,FullCalendar.Preact,FullCalendar.TimeGrid.Internal,FullCalendar.Resource.Internal,FullCalendar.ResourceDayGrid.Internal);
package/index.js CHANGED
@@ -1,37 +1,27 @@
1
- 'use strict';
1
+ import { createPlugin } from '@fullcalendar/core';
2
+ import premiumCommonPlugin from '@fullcalendar/premium-common';
3
+ import resourcePlugin from '@fullcalendar/resource';
4
+ import timeGridPlugin from '@fullcalendar/timegrid';
5
+ import { ResourceDayTimeColsView } from './internal.js';
6
+ import '@fullcalendar/core/internal';
7
+ import '@fullcalendar/core/preact';
8
+ import '@fullcalendar/timegrid/internal';
9
+ import '@fullcalendar/resource/internal';
10
+ import '@fullcalendar/resource-daygrid/internal';
2
11
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var core = require('@fullcalendar/core');
6
- var premiumCommonPlugin = require('@fullcalendar/premium-common');
7
- var resourcePlugin = require('@fullcalendar/resource');
8
- var timeGridPlugin = require('@fullcalendar/timegrid');
9
- var internalCommon = require('./internal.js');
10
- require('@fullcalendar/core/internal');
11
- require('@fullcalendar/core/preact');
12
- require('@fullcalendar/timegrid/internal');
13
- require('@fullcalendar/resource/internal');
14
- require('@fullcalendar/resource-daygrid/internal');
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 resourcePlugin__default = /*#__PURE__*/_interopDefaultLegacy(resourcePlugin);
20
- var timeGridPlugin__default = /*#__PURE__*/_interopDefaultLegacy(timeGridPlugin);
21
-
22
- var index = core.createPlugin({
12
+ var index = createPlugin({
23
13
  name: '@fullcalendar/resource-timegrid',
24
14
  premiumReleaseDate: '2023-01-30',
25
15
  deps: [
26
- premiumCommonPlugin__default["default"],
27
- resourcePlugin__default["default"],
28
- timeGridPlugin__default["default"],
16
+ premiumCommonPlugin,
17
+ resourcePlugin,
18
+ timeGridPlugin,
29
19
  ],
30
20
  initialView: 'resourceTimeGridDay',
31
21
  views: {
32
22
  resourceTimeGrid: {
33
23
  type: 'timeGrid',
34
- component: internalCommon.ResourceDayTimeColsView,
24
+ component: ResourceDayTimeColsView,
35
25
  needsResourceData: true,
36
26
  },
37
27
  resourceTimeGridDay: {
@@ -45,4 +35,4 @@ var index = core.createPlugin({
45
35
  },
46
36
  });
47
37
 
48
- exports["default"] = index;
38
+ 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.props.dateProfile, this.context.options.nextDayThreshold, 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;
package/internal.js CHANGED
@@ -1,14 +1,10 @@
1
- 'use strict';
1
+ import { DateComponent, memoize, mapHash, NowTimer } from '@fullcalendar/core/internal';
2
+ import { createRef, createElement } from '@fullcalendar/core/preact';
3
+ import { buildDayRanges, DayTimeColsSlicer, TimeCols, TimeColsView, buildSlatMetas, buildTimeColsModel } from '@fullcalendar/timegrid/internal';
4
+ import { VResourceJoiner, VResourceSplitter, flattenResources, DEFAULT_RESOURCE_ORDER, ResourceDayHeader, DayResourceTableModel, ResourceDayTableModel } from '@fullcalendar/resource/internal';
5
+ import { ResourceDayTable } from '@fullcalendar/resource-daygrid/internal';
2
6
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var internal$1 = require('@fullcalendar/core/internal');
6
- var preact = require('@fullcalendar/core/preact');
7
- var internal$2 = require('@fullcalendar/timegrid/internal');
8
- var internal = require('@fullcalendar/resource/internal');
9
- var internal$3 = require('@fullcalendar/resource-daygrid/internal');
10
-
11
- class ResourceDayTimeColsJoiner extends internal.VResourceJoiner {
7
+ class ResourceDayTimeColsJoiner extends VResourceJoiner {
12
8
  transformSeg(seg, resourceDayTable, resourceI) {
13
9
  return [
14
10
  Object.assign(Object.assign({}, seg), { col: resourceDayTable.computeCol(seg.col, resourceI) }),
@@ -16,14 +12,14 @@ class ResourceDayTimeColsJoiner extends internal.VResourceJoiner {
16
12
  }
17
13
  }
18
14
 
19
- class ResourceDayTimeCols extends internal$1.DateComponent {
15
+ class ResourceDayTimeCols extends DateComponent {
20
16
  constructor() {
21
17
  super(...arguments);
22
- this.buildDayRanges = internal$1.memoize(internal$2.buildDayRanges);
23
- this.splitter = new internal.VResourceSplitter();
18
+ this.buildDayRanges = memoize(buildDayRanges);
19
+ this.splitter = new VResourceSplitter();
24
20
  this.slicers = {};
25
21
  this.joiner = new ResourceDayTimeColsJoiner();
26
- this.timeColsRef = preact.createRef();
22
+ this.timeColsRef = createRef();
27
23
  this.isHitComboAllowed = (hit0, hit1) => {
28
24
  let allowAcrossResources = this.dayRanges.length === 1;
29
25
  return allowAcrossResources || hit0.dateSpan.resourceId === hit1.dateSpan.resourceId;
@@ -35,10 +31,10 @@ class ResourceDayTimeCols extends internal$1.DateComponent {
35
31
  let { dateProfile, resourceDayTableModel } = props;
36
32
  let dayRanges = this.dayRanges = this.buildDayRanges(resourceDayTableModel.dayTableModel, dateProfile, dateEnv);
37
33
  let splitProps = this.splitter.splitProps(props);
38
- this.slicers = internal$1.mapHash(splitProps, (split, resourceId) => this.slicers[resourceId] || new internal$2.DayTimeColsSlicer());
39
- let slicedProps = internal$1.mapHash(this.slicers, (slicer, resourceId) => slicer.sliceProps(splitProps[resourceId], dateProfile, null, context, dayRanges));
34
+ this.slicers = mapHash(splitProps, (split, resourceId) => this.slicers[resourceId] || new DayTimeColsSlicer());
35
+ let slicedProps = mapHash(this.slicers, (slicer, resourceId) => slicer.sliceProps(splitProps[resourceId], dateProfile, null, context, dayRanges));
40
36
  return ( // TODO: would move this further down hierarchy, but sliceNowDate needs it
41
- preact.createElement(internal$1.NowTimer, { unit: options.nowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (preact.createElement(internal$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 })))));
37
+ createElement(NowTimer, { unit: options.nowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (createElement(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
38
  }
43
39
  buildNowIndicatorSegs(date) {
44
40
  let nonResourceSegs = this.slicers[''].sliceNowDate(date, this.props.dateProfile, this.context.options.nextDayThreshold, this.context, this.dayRanges);
@@ -46,39 +42,38 @@ class ResourceDayTimeCols extends internal$1.DateComponent {
46
42
  }
47
43
  }
48
44
 
49
- class ResourceDayTimeColsView extends internal$2.TimeColsView {
45
+ class ResourceDayTimeColsView extends TimeColsView {
50
46
  constructor() {
51
47
  super(...arguments);
52
- this.flattenResources = internal$1.memoize(internal.flattenResources);
53
- this.buildResourceTimeColsModel = internal$1.memoize(buildResourceTimeColsModel);
54
- this.buildSlatMetas = internal$1.memoize(internal$2.buildSlatMetas);
48
+ this.flattenResources = memoize(flattenResources);
49
+ this.buildResourceTimeColsModel = memoize(buildResourceTimeColsModel);
50
+ this.buildSlatMetas = memoize(buildSlatMetas);
55
51
  }
56
52
  render() {
57
53
  let { props, context } = this;
58
54
  let { options, dateEnv } = context;
59
55
  let { dateProfile } = props;
60
56
  let splitProps = this.allDaySplitter.splitProps(props);
61
- let resourceOrderSpecs = options.resourceOrder || internal.DEFAULT_RESOURCE_ORDER;
57
+ let resourceOrderSpecs = options.resourceOrder || DEFAULT_RESOURCE_ORDER;
62
58
  let resources = this.flattenResources(props.resourceStore, resourceOrderSpecs);
63
59
  let resourceDayTableModel = this.buildResourceTimeColsModel(dateProfile, context.dateProfileGenerator, resources, options.datesAboveResources, context);
64
60
  let slatMetas = this.buildSlatMetas(dateProfile.slotMinTime, dateProfile.slotMaxTime, options.slotLabelInterval, options.slotDuration, dateEnv);
65
61
  let { dayMinWidth } = options;
66
62
  let hasAttachedAxis = !dayMinWidth;
67
63
  let hasDetachedAxis = dayMinWidth;
68
- let headerContent = options.dayHeaders && (preact.createElement(internal.ResourceDayHeader, { resources: resources, dates: resourceDayTableModel.dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));
69
- let allDayContent = (options.allDaySlot !== false) && ((contentArg) => (preact.createElement(internal$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.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 })));
64
+ let headerContent = options.dayHeaders && (createElement(ResourceDayHeader, { resources: resources, dates: resourceDayTableModel.dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));
65
+ let allDayContent = (options.allDaySlot !== false) && ((contentArg) => (createElement(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()))));
66
+ let timeGridContent = (contentArg) => (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
67
  return hasDetachedAxis
72
68
  ? this.renderHScrollLayout(headerContent, allDayContent, timeGridContent, resourceDayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords)
73
69
  : this.renderSimpleLayout(headerContent, allDayContent, timeGridContent);
74
70
  }
75
71
  }
76
72
  function buildResourceTimeColsModel(dateProfile, dateProfileGenerator, resources, datesAboveResources, context) {
77
- let dayTable = internal$2.buildTimeColsModel(dateProfile, dateProfileGenerator);
73
+ let dayTable = buildTimeColsModel(dateProfile, dateProfileGenerator);
78
74
  return datesAboveResources ?
79
- new internal.DayResourceTableModel(dayTable, resources, context) :
80
- new internal.ResourceDayTableModel(dayTable, resources, context);
75
+ new DayResourceTableModel(dayTable, resources, context) :
76
+ new ResourceDayTableModel(dayTable, resources, context);
81
77
  }
82
78
 
83
- exports.ResourceDayTimeCols = ResourceDayTimeCols;
84
- exports.ResourceDayTimeColsView = ResourceDayTimeColsView;
79
+ export { ResourceDayTimeCols, ResourceDayTimeColsView };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fullcalendar/resource-timegrid",
3
- "version": "6.1.0",
3
+ "version": "6.1.1",
4
4
  "title": "FullCalendar Resource Time Grid Plugin",
5
5
  "description": "Displays events on a vertical resource view with time slots",
6
6
  "keywords": [
@@ -15,13 +15,13 @@
15
15
  ],
16
16
  "homepage": "https://fullcalendar.io/docs/vertical-resource-view",
17
17
  "dependencies": {
18
- "@fullcalendar/premium-common": "~6.1.0",
19
- "@fullcalendar/resource-daygrid": "~6.1.0",
20
- "@fullcalendar/timegrid": "~6.1.0"
18
+ "@fullcalendar/premium-common": "~6.1.1",
19
+ "@fullcalendar/resource-daygrid": "~6.1.1",
20
+ "@fullcalendar/timegrid": "~6.1.1"
21
21
  },
22
22
  "peerDependencies": {
23
- "@fullcalendar/core": "~6.1.0",
24
- "@fullcalendar/resource": "~6.1.0"
23
+ "@fullcalendar/core": "~6.1.1",
24
+ "@fullcalendar/resource": "~6.1.1"
25
25
  },
26
26
  "type": "module",
27
27
  "bugs": "https://fullcalendar.io/reporting-bugs",
@@ -36,23 +36,25 @@
36
36
  "email": "arshaw@arshaw.com",
37
37
  "url": "http://arshaw.com/"
38
38
  },
39
- "copyright": "2022 Adam Shaw",
39
+ "copyright": "2023 Adam Shaw",
40
40
  "types": "./index.d.ts",
41
- "main": "./index.js",
42
- "module": "./index.esm.js",
41
+ "main": "./index.cjs",
42
+ "module": "./index.js",
43
43
  "unpkg": "./index.global.min.js",
44
44
  "jsdelivr": "./index.global.min.js",
45
45
  "exports": {
46
46
  "./package.json": "./package.json",
47
+ "./index.cjs": "./index.cjs",
47
48
  ".": {
48
49
  "types": "./index.d.ts",
49
- "require": "./index.js",
50
- "import": "./index.esm.js"
50
+ "require": "./index.cjs",
51
+ "import": "./index.js"
51
52
  },
53
+ "./internal.cjs": "./internal.cjs",
52
54
  "./internal": {
53
55
  "types": "./internal.d.ts",
54
- "require": "./internal.js",
55
- "import": "./internal.esm.js"
56
+ "require": "./internal.cjs",
57
+ "import": "./internal.js"
56
58
  }
57
59
  },
58
60
  "sideEffects": false
package/index.esm.js DELETED
@@ -1,38 +0,0 @@
1
- import { createPlugin } from '@fullcalendar/core';
2
- import premiumCommonPlugin from '@fullcalendar/premium-common';
3
- import resourcePlugin from '@fullcalendar/resource';
4
- import timeGridPlugin from '@fullcalendar/timegrid';
5
- import { ResourceDayTimeColsView } from './internal.esm.js';
6
- import '@fullcalendar/core/internal';
7
- import '@fullcalendar/core/preact';
8
- import '@fullcalendar/timegrid/internal';
9
- import '@fullcalendar/resource/internal';
10
- import '@fullcalendar/resource-daygrid/internal';
11
-
12
- var index = createPlugin({
13
- name: '@fullcalendar/resource-timegrid',
14
- premiumReleaseDate: '2023-01-30',
15
- deps: [
16
- premiumCommonPlugin,
17
- resourcePlugin,
18
- timeGridPlugin,
19
- ],
20
- initialView: 'resourceTimeGridDay',
21
- views: {
22
- resourceTimeGrid: {
23
- type: 'timeGrid',
24
- component: ResourceDayTimeColsView,
25
- needsResourceData: true,
26
- },
27
- resourceTimeGridDay: {
28
- type: 'resourceTimeGrid',
29
- duration: { days: 1 },
30
- },
31
- resourceTimeGridWeek: {
32
- type: 'resourceTimeGrid',
33
- duration: { weeks: 1 },
34
- },
35
- },
36
- });
37
-
38
- export { index as default };
package/internal.esm.js DELETED
@@ -1,79 +0,0 @@
1
- import { DateComponent, memoize, mapHash, NowTimer } from '@fullcalendar/core/internal';
2
- import { createRef, createElement } from '@fullcalendar/core/preact';
3
- import { buildDayRanges, DayTimeColsSlicer, TimeCols, TimeColsView, buildSlatMetas, buildTimeColsModel } from '@fullcalendar/timegrid/internal';
4
- import { VResourceJoiner, VResourceSplitter, flattenResources, DEFAULT_RESOURCE_ORDER, ResourceDayHeader, DayResourceTableModel, ResourceDayTableModel } from '@fullcalendar/resource/internal';
5
- import { ResourceDayTable } from '@fullcalendar/resource-daygrid/internal';
6
-
7
- class ResourceDayTimeColsJoiner extends VResourceJoiner {
8
- transformSeg(seg, resourceDayTable, resourceI) {
9
- return [
10
- Object.assign(Object.assign({}, seg), { col: resourceDayTable.computeCol(seg.col, resourceI) }),
11
- ];
12
- }
13
- }
14
-
15
- class ResourceDayTimeCols extends DateComponent {
16
- constructor() {
17
- super(...arguments);
18
- this.buildDayRanges = memoize(buildDayRanges);
19
- this.splitter = new VResourceSplitter();
20
- this.slicers = {};
21
- this.joiner = new ResourceDayTimeColsJoiner();
22
- this.timeColsRef = createRef();
23
- this.isHitComboAllowed = (hit0, hit1) => {
24
- let allowAcrossResources = this.dayRanges.length === 1;
25
- return allowAcrossResources || hit0.dateSpan.resourceId === hit1.dateSpan.resourceId;
26
- };
27
- }
28
- render() {
29
- let { props, context } = this;
30
- let { dateEnv, options } = context;
31
- let { dateProfile, resourceDayTableModel } = props;
32
- let dayRanges = this.dayRanges = this.buildDayRanges(resourceDayTableModel.dayTableModel, dateProfile, dateEnv);
33
- let splitProps = this.splitter.splitProps(props);
34
- this.slicers = mapHash(splitProps, (split, resourceId) => this.slicers[resourceId] || new DayTimeColsSlicer());
35
- let slicedProps = mapHash(this.slicers, (slicer, resourceId) => slicer.sliceProps(splitProps[resourceId], dateProfile, null, context, dayRanges));
36
- return ( // TODO: would move this further down hierarchy, but sliceNowDate needs it
37
- createElement(NowTimer, { unit: options.nowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (createElement(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 })))));
38
- }
39
- buildNowIndicatorSegs(date) {
40
- let nonResourceSegs = this.slicers[''].sliceNowDate(date, this.props.dateProfile, this.context.options.nextDayThreshold, this.context, this.dayRanges);
41
- return this.joiner.expandSegs(this.props.resourceDayTableModel, nonResourceSegs);
42
- }
43
- }
44
-
45
- class ResourceDayTimeColsView extends TimeColsView {
46
- constructor() {
47
- super(...arguments);
48
- this.flattenResources = memoize(flattenResources);
49
- this.buildResourceTimeColsModel = memoize(buildResourceTimeColsModel);
50
- this.buildSlatMetas = memoize(buildSlatMetas);
51
- }
52
- render() {
53
- let { props, context } = this;
54
- let { options, dateEnv } = context;
55
- let { dateProfile } = props;
56
- let splitProps = this.allDaySplitter.splitProps(props);
57
- let resourceOrderSpecs = options.resourceOrder || DEFAULT_RESOURCE_ORDER;
58
- let resources = this.flattenResources(props.resourceStore, resourceOrderSpecs);
59
- let resourceDayTableModel = this.buildResourceTimeColsModel(dateProfile, context.dateProfileGenerator, resources, options.datesAboveResources, context);
60
- let slatMetas = this.buildSlatMetas(dateProfile.slotMinTime, dateProfile.slotMaxTime, options.slotLabelInterval, options.slotDuration, dateEnv);
61
- let { dayMinWidth } = options;
62
- let hasAttachedAxis = !dayMinWidth;
63
- let hasDetachedAxis = dayMinWidth;
64
- let headerContent = options.dayHeaders && (createElement(ResourceDayHeader, { resources: resources, dates: resourceDayTableModel.dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));
65
- let allDayContent = (options.allDaySlot !== false) && ((contentArg) => (createElement(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()))));
66
- let timeGridContent = (contentArg) => (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 })));
67
- return hasDetachedAxis
68
- ? this.renderHScrollLayout(headerContent, allDayContent, timeGridContent, resourceDayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords)
69
- : this.renderSimpleLayout(headerContent, allDayContent, timeGridContent);
70
- }
71
- }
72
- function buildResourceTimeColsModel(dateProfile, dateProfileGenerator, resources, datesAboveResources, context) {
73
- let dayTable = buildTimeColsModel(dateProfile, dateProfileGenerator);
74
- return datesAboveResources ?
75
- new DayResourceTableModel(dayTable, resources, context) :
76
- new ResourceDayTableModel(dayTable, resources, context);
77
- }
78
-
79
- export { ResourceDayTimeCols, ResourceDayTimeColsView };