@sprucelabs/spruce-calendar-components 23.0.1 → 23.0.3

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.
@@ -35,7 +35,7 @@ export default class CalendarPeopleManager extends AbstractEventEmitter<PeopleCo
35
35
  private getWorkingPeople;
36
36
  setVisiblePeopleIds(visible: string[], options?: SetVisiblePeolpeOptions): Promise<void>;
37
37
  setPersonVisibility(id: string, shouldBeVisible: boolean): Promise<void>;
38
- private emitDidUpdate;
38
+ emitDidUpdate(): Promise<void>;
39
39
  }
40
40
  export interface PeopleManagerOptions {
41
41
  connectToApi: () => Promise<MercuryClient>;
@@ -35,7 +35,7 @@ export default class CalendarPeopleManager extends AbstractEventEmitter<PeopleCo
35
35
  private getWorkingPeople;
36
36
  setVisiblePeopleIds(visible: string[], options?: SetVisiblePeolpeOptions): Promise<void>;
37
37
  setPersonVisibility(id: string, shouldBeVisible: boolean): Promise<void>;
38
- private emitDidUpdate;
38
+ emitDidUpdate(): Promise<void>;
39
39
  }
40
40
  export interface PeopleManagerOptions {
41
41
  connectToApi: () => Promise<MercuryClient>;
@@ -70,6 +70,7 @@ export default class RootSkillViewController extends AbstractSkillViewController
70
70
  protected transitionToRoot(): Promise<void>;
71
71
  private loadLoggedInPerson;
72
72
  private getVisibleEvents;
73
+ private get rootToolBeltState();
73
74
  render(): SpruceSchemas.HeartwoodViewControllers.v2021_02_11.SkillView;
74
75
  }
75
76
  export type CalendarPerson = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.CalendarPerson;
@@ -54,6 +54,7 @@ export default class RootSkillViewController extends AbstractSkillViewController
54
54
  root: new RootToolBeltState({
55
55
  people: this.people,
56
56
  events: this.events,
57
+ dates: this.dates,
57
58
  }),
58
59
  prerequisites: new PrerequisitesToolBeltState({
59
60
  onSelectCalendar: this.handleSelectCalendar.bind(this),
@@ -195,6 +196,7 @@ export default class RootSkillViewController extends AbstractSkillViewController
195
196
  }
196
197
  handleChangeDate() {
197
198
  return __awaiter(this, void 0, void 0, function* () {
199
+ console.log('change date!!');
198
200
  this.makeDateSelectMatchSelectedDateFromCalendar();
199
201
  yield this.loadEvents();
200
202
  });
@@ -205,7 +207,7 @@ export default class RootSkillViewController extends AbstractSkillViewController
205
207
  }
206
208
  setSelectedDateInDateSelectVc(date) {
207
209
  const { year, month, day } = this.dates.splitDate(date);
208
- this.toolBeltStates.root.setSelectedDate(year, month, day);
210
+ this.rootToolBeltState.setSelectedDate(year, month, day);
209
211
  }
210
212
  getStartDate() {
211
213
  var _a;
@@ -322,7 +324,7 @@ export default class RootSkillViewController extends AbstractSkillViewController
322
324
  yield this.transitionToRoot();
323
325
  this.setSelectedDateInDateSelectVc(startDate);
324
326
  if (visiblePeopleIds) {
325
- yield this.getPersonSelectVc().setMode('custom');
327
+ yield this.people.setVisibilityMode('custom');
326
328
  yield this.people.setVisiblePeopleIds(visiblePeopleIds);
327
329
  }
328
330
  yield this.waitUntilDoneSaving();
@@ -413,7 +415,7 @@ export default class RootSkillViewController extends AbstractSkillViewController
413
415
  const startDate = this.dates.getStartOfDay(date);
414
416
  const endDate = this.dates.getEndOfDay(date);
415
417
  yield this.events.loadEvents(startDate, endDate, this.people.getTeam().map((t) => t.id));
416
- yield this.people.emit('did-update');
418
+ yield this.people.emitDidUpdate();
417
419
  }
418
420
  }
419
421
  catch (err) {
@@ -443,6 +445,9 @@ export default class RootSkillViewController extends AbstractSkillViewController
443
445
  .filter((e) => e.startDateTimeMs <= end && e.startDateTimeMs >= start);
444
446
  return events;
445
447
  }
448
+ get rootToolBeltState() {
449
+ return this.toolBeltStates.root;
450
+ }
446
451
  render() {
447
452
  return {
448
453
  isFullScreen: true,
@@ -1,3 +1,4 @@
1
+ import { DateUtil } from '@sprucelabs/calendar-utils';
1
2
  import { SpruceSchemas, ToolBeltState } from '@sprucelabs/heartwood-view-controllers';
2
3
  import CalendarEventManager from '../../calendar/CalendarEventManager';
3
4
  import CalendarPeopleManager from '../../calendar/CalendarPeopleManager';
@@ -16,9 +17,11 @@ export declare class RootToolBeltState implements ToolBeltState {
16
17
  private lastSelectedDate?;
17
18
  private people;
18
19
  private events;
20
+ private dates;
19
21
  constructor(options: {
20
22
  people: CalendarPeopleManager;
21
23
  events: CalendarEventManager;
24
+ dates: DateUtil;
22
25
  });
23
26
  getCalendarSelectCardVc(): CalendarSelectCardViewController | undefined;
24
27
  private CalendarSelectVc;
@@ -7,14 +7,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { dateUtil } from '@sprucelabs/calendar-utils';
11
10
  import { assertOptions } from '@sprucelabs/schema';
12
11
  export class RootToolBeltState {
13
12
  constructor(options) {
14
13
  this.id = 'root';
15
- const { people, events } = assertOptions(options, ['people', 'events']);
14
+ const { people, events, dates } = assertOptions(options, [
15
+ 'people',
16
+ 'events',
17
+ 'dates',
18
+ ]);
16
19
  this.people = people;
17
20
  this.events = events;
21
+ this.dates = dates;
18
22
  }
19
23
  getCalendarSelectCardVc() {
20
24
  return this.calendarSelectCardVc;
@@ -32,7 +36,7 @@ export class RootToolBeltState {
32
36
  this.resetToolBelt();
33
37
  this.dateSelectVc = this.sm.Controller('calendar.date-select-card', {
34
38
  onSelectDate: (date) => this.handleSelectDate(date),
35
- startDate: dateUtil.getStartOfDay(new Date().getTime()),
39
+ startDate: this.dates.getStartOfDay(),
36
40
  selectedDate: this.lastSelectedDate,
37
41
  });
38
42
  this.toolBeltVc.addTool({
@@ -7,7 +7,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { dateUtil } from '@sprucelabs/calendar-utils';
11
10
  import { AbstractViewController, buildForm, } from '@sprucelabs/heartwood-view-controllers';
12
11
  import { buildSchema } from '@sprucelabs/schema';
13
12
  export default class EventDateTimeToolViewController extends AbstractViewController {
@@ -30,15 +29,15 @@ export default class EventDateTimeToolViewController extends AbstractViewControl
30
29
  if (shouldBail) {
31
30
  return;
32
31
  }
33
- const { hour, minute } = dateUtil.splitDate(this.getContext().event.startDateTimeMs);
34
- yield this.formVc.setValue('startDateTime', dateUtil.setTimeOfDay(dateTimeMs, hour, minute, 0, 0));
32
+ const { hour, minute } = this.dates.splitDate(this.getContext().event.startDateTimeMs);
33
+ yield this.formVc.setValue('startDateTime', this.dates.setTimeOfDay(dateTimeMs, hour, minute, 0, 0));
35
34
  this.calendarVc.setSelectedDates([this.getSelectedDate(dateTimeMs)]);
36
35
  });
37
36
  }
38
37
  promptForNavigationPreference(dateTimeMs) {
39
38
  return __awaiter(this, void 0, void 0, function* () {
40
39
  let shouldBail = false;
41
- const formattedDestination = dateUtil.format(dateTimeMs, 'MMM do');
40
+ const formattedDestination = this.dates.format(dateTimeMs, 'MMM do');
42
41
  const dlg = this.renderInDialog({
43
42
  shouldShowCloseButton: false,
44
43
  header: {
@@ -1,15 +1,4 @@
1
1
  import { AbstractViewController, CalendarViewController, SpruceSchemas, ViewControllerOptions } from '@sprucelabs/heartwood-view-controllers';
2
- type Card = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Card;
3
- type DateSelectHandler = (dateTimeMs: number) => void | Promise<void>;
4
- export interface DateSelectOptions {
5
- onSelectDate: DateSelectHandler;
6
- startDate: number;
7
- selectedDate?: {
8
- year: number;
9
- month: number;
10
- day: number;
11
- };
12
- }
13
2
  export default class DateSelectCardViewController extends AbstractViewController<Card> {
14
3
  static id: string;
15
4
  private cardVc;
@@ -26,4 +15,15 @@ export default class DateSelectCardViewController extends AbstractViewController
26
15
  getCalendarVc(): CalendarViewController;
27
16
  render(): SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Card;
28
17
  }
18
+ type Card = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Card;
19
+ type DateSelectHandler = (dateTimeMs: number) => void | Promise<void>;
20
+ export interface DateSelectOptions {
21
+ onSelectDate: DateSelectHandler;
22
+ startDate: number;
23
+ selectedDate?: {
24
+ year: number;
25
+ month: number;
26
+ day: number;
27
+ };
28
+ }
29
29
  export {};
@@ -7,7 +7,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { dateUtil } from '@sprucelabs/calendar-utils';
11
10
  import { AbstractViewController, } from '@sprucelabs/heartwood-view-controllers';
12
11
  import { assertOptions } from '@sprucelabs/schema';
13
12
  export default class DateSelectCardViewController extends AbstractViewController {
@@ -37,7 +36,7 @@ export default class DateSelectCardViewController extends AbstractViewController
37
36
  }
38
37
  handleDateSelect(dateTimeMs) {
39
38
  return __awaiter(this, void 0, void 0, function* () {
40
- const { year, month, day } = dateUtil.splitDate(dateTimeMs);
39
+ const { year, month, day } = this.dates.splitDate(dateTimeMs);
41
40
  yield this.calendarVc.renderOnce(() => __awaiter(this, void 0, void 0, function* () {
42
41
  yield this.calendarVc.setStartDate(dateTimeMs);
43
42
  this.calendarVc.clearSelectedDates();
@@ -70,6 +70,7 @@ export default class RootSkillViewController extends AbstractSkillViewController
70
70
  protected transitionToRoot(): Promise<void>;
71
71
  private loadLoggedInPerson;
72
72
  private getVisibleEvents;
73
+ private get rootToolBeltState();
73
74
  render(): SpruceSchemas.HeartwoodViewControllers.v2021_02_11.SkillView;
74
75
  }
75
76
  export type CalendarPerson = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.CalendarPerson;
@@ -50,6 +50,7 @@ class RootSkillViewController extends heartwood_view_controllers_1.AbstractSkill
50
50
  root: new RootToolBeltState_1.RootToolBeltState({
51
51
  people: this.people,
52
52
  events: this.events,
53
+ dates: this.dates,
53
54
  }),
54
55
  prerequisites: new PrerequisitesToolBeltState_1.PrerequisitesToolBeltState({
55
56
  onSelectCalendar: this.handleSelectCalendar.bind(this),
@@ -172,6 +173,7 @@ class RootSkillViewController extends heartwood_view_controllers_1.AbstractSkill
172
173
  });
173
174
  }
174
175
  async handleChangeDate() {
176
+ console.log('change date!!');
175
177
  this.makeDateSelectMatchSelectedDateFromCalendar();
176
178
  await this.loadEvents();
177
179
  }
@@ -181,7 +183,7 @@ class RootSkillViewController extends heartwood_view_controllers_1.AbstractSkill
181
183
  }
182
184
  setSelectedDateInDateSelectVc(date) {
183
185
  const { year, month, day } = this.dates.splitDate(date);
184
- this.toolBeltStates.root.setSelectedDate(year, month, day);
186
+ this.rootToolBeltState.setSelectedDate(year, month, day);
185
187
  }
186
188
  getStartDate() {
187
189
  var _a;
@@ -283,7 +285,7 @@ class RootSkillViewController extends heartwood_view_controllers_1.AbstractSkill
283
285
  await this.transitionToRoot();
284
286
  this.setSelectedDateInDateSelectVc(startDate);
285
287
  if (visiblePeopleIds) {
286
- await this.getPersonSelectVc().setMode('custom');
288
+ await this.people.setVisibilityMode('custom');
287
289
  await this.people.setVisiblePeopleIds(visiblePeopleIds);
288
290
  }
289
291
  await this.waitUntilDoneSaving();
@@ -358,7 +360,7 @@ class RootSkillViewController extends heartwood_view_controllers_1.AbstractSkill
358
360
  const startDate = this.dates.getStartOfDay(date);
359
361
  const endDate = this.dates.getEndOfDay(date);
360
362
  await this.events.loadEvents(startDate, endDate, this.people.getTeam().map((t) => t.id));
361
- await this.people.emit('did-update');
363
+ await this.people.emitDidUpdate();
362
364
  }
363
365
  }
364
366
  catch (err) {
@@ -383,6 +385,9 @@ class RootSkillViewController extends heartwood_view_controllers_1.AbstractSkill
383
385
  .filter((e) => e.startDateTimeMs <= end && e.startDateTimeMs >= start);
384
386
  return events;
385
387
  }
388
+ get rootToolBeltState() {
389
+ return this.toolBeltStates.root;
390
+ }
386
391
  render() {
387
392
  return {
388
393
  isFullScreen: true,
@@ -1,3 +1,4 @@
1
+ import { DateUtil } from '@sprucelabs/calendar-utils';
1
2
  import { SpruceSchemas, ToolBeltState } from '@sprucelabs/heartwood-view-controllers';
2
3
  import CalendarEventManager from '../../calendar/CalendarEventManager';
3
4
  import CalendarPeopleManager from '../../calendar/CalendarPeopleManager';
@@ -16,9 +17,11 @@ export declare class RootToolBeltState implements ToolBeltState {
16
17
  private lastSelectedDate?;
17
18
  private people;
18
19
  private events;
20
+ private dates;
19
21
  constructor(options: {
20
22
  people: CalendarPeopleManager;
21
23
  events: CalendarEventManager;
24
+ dates: DateUtil;
22
25
  });
23
26
  getCalendarSelectCardVc(): CalendarSelectCardViewController | undefined;
24
27
  private CalendarSelectVc;
@@ -1,14 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RootToolBeltState = void 0;
4
- const calendar_utils_1 = require("@sprucelabs/calendar-utils");
5
4
  const schema_1 = require("@sprucelabs/schema");
6
5
  class RootToolBeltState {
7
6
  constructor(options) {
8
7
  this.id = 'root';
9
- const { people, events } = (0, schema_1.assertOptions)(options, ['people', 'events']);
8
+ const { people, events, dates } = (0, schema_1.assertOptions)(options, [
9
+ 'people',
10
+ 'events',
11
+ 'dates',
12
+ ]);
10
13
  this.people = people;
11
14
  this.events = events;
15
+ this.dates = dates;
12
16
  }
13
17
  getCalendarSelectCardVc() {
14
18
  return this.calendarSelectCardVc;
@@ -25,7 +29,7 @@ class RootToolBeltState {
25
29
  this.resetToolBelt();
26
30
  this.dateSelectVc = this.sm.Controller('calendar.date-select-card', {
27
31
  onSelectDate: (date) => this.handleSelectDate(date),
28
- startDate: calendar_utils_1.dateUtil.getStartOfDay(new Date().getTime()),
32
+ startDate: this.dates.getStartOfDay(),
29
33
  selectedDate: this.lastSelectedDate,
30
34
  });
31
35
  this.toolBeltVc.addTool({
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const calendar_utils_1 = require("@sprucelabs/calendar-utils");
4
3
  const heartwood_view_controllers_1 = require("@sprucelabs/heartwood-view-controllers");
5
4
  const schema_1 = require("@sprucelabs/schema");
6
5
  class EventDateTimeToolViewController extends heartwood_view_controllers_1.AbstractViewController {
@@ -22,13 +21,13 @@ class EventDateTimeToolViewController extends heartwood_view_controllers_1.Abstr
22
21
  if (shouldBail) {
23
22
  return;
24
23
  }
25
- const { hour, minute } = calendar_utils_1.dateUtil.splitDate(this.getContext().event.startDateTimeMs);
26
- await this.formVc.setValue('startDateTime', calendar_utils_1.dateUtil.setTimeOfDay(dateTimeMs, hour, minute, 0, 0));
24
+ const { hour, minute } = this.dates.splitDate(this.getContext().event.startDateTimeMs);
25
+ await this.formVc.setValue('startDateTime', this.dates.setTimeOfDay(dateTimeMs, hour, minute, 0, 0));
27
26
  this.calendarVc.setSelectedDates([this.getSelectedDate(dateTimeMs)]);
28
27
  }
29
28
  async promptForNavigationPreference(dateTimeMs) {
30
29
  let shouldBail = false;
31
- const formattedDestination = calendar_utils_1.dateUtil.format(dateTimeMs, 'MMM do');
30
+ const formattedDestination = this.dates.format(dateTimeMs, 'MMM do');
32
31
  const dlg = this.renderInDialog({
33
32
  shouldShowCloseButton: false,
34
33
  header: {
@@ -1,15 +1,4 @@
1
1
  import { AbstractViewController, CalendarViewController, SpruceSchemas, ViewControllerOptions } from '@sprucelabs/heartwood-view-controllers';
2
- type Card = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Card;
3
- type DateSelectHandler = (dateTimeMs: number) => void | Promise<void>;
4
- export interface DateSelectOptions {
5
- onSelectDate: DateSelectHandler;
6
- startDate: number;
7
- selectedDate?: {
8
- year: number;
9
- month: number;
10
- day: number;
11
- };
12
- }
13
2
  export default class DateSelectCardViewController extends AbstractViewController<Card> {
14
3
  static id: string;
15
4
  private cardVc;
@@ -26,4 +15,15 @@ export default class DateSelectCardViewController extends AbstractViewController
26
15
  getCalendarVc(): CalendarViewController;
27
16
  render(): SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Card;
28
17
  }
18
+ type Card = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Card;
19
+ type DateSelectHandler = (dateTimeMs: number) => void | Promise<void>;
20
+ export interface DateSelectOptions {
21
+ onSelectDate: DateSelectHandler;
22
+ startDate: number;
23
+ selectedDate?: {
24
+ year: number;
25
+ month: number;
26
+ day: number;
27
+ };
28
+ }
29
29
  export {};
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const calendar_utils_1 = require("@sprucelabs/calendar-utils");
4
3
  const heartwood_view_controllers_1 = require("@sprucelabs/heartwood-view-controllers");
5
4
  const schema_1 = require("@sprucelabs/schema");
6
5
  class DateSelectCardViewController extends heartwood_view_controllers_1.AbstractViewController {
@@ -27,7 +26,7 @@ class DateSelectCardViewController extends heartwood_view_controllers_1.Abstract
27
26
  return this.Controller('calendar', Object.assign({ view: 'month', onClickView: ({ dateTimeMs }) => this.handleDateSelect(dateTimeMs), selectedDates: [] }, options));
28
27
  }
29
28
  async handleDateSelect(dateTimeMs) {
30
- const { year, month, day } = calendar_utils_1.dateUtil.splitDate(dateTimeMs);
29
+ const { year, month, day } = this.dates.splitDate(dateTimeMs);
31
30
  await this.calendarVc.renderOnce(async () => {
32
31
  await this.calendarVc.setStartDate(dateTimeMs);
33
32
  this.calendarVc.clearSelectedDates();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sprucelabs/spruce-calendar-components",
3
3
  "description": "Calendar components for working with calendars and Sprucebot.",
4
- "version": "23.0.1",
4
+ "version": "23.0.3",
5
5
  "skill": {
6
6
  "namespace": "calendar"
7
7
  },