@sprucelabs/spruce-calendar-components 25.6.0 → 25.6.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/build/.spruce/schemas/schemas.types.d.ts +136 -136
- package/build/calendar/CalendarEventManager.d.ts +6 -5
- package/build/calendar/CalendarEventManager.js +7 -0
- package/build/esm/.spruce/schemas/schemas.types.d.ts +136 -136
- package/build/esm/calendar/CalendarEventManager.d.ts +6 -5
- package/build/esm/calendar/CalendarEventManager.js +7 -0
- package/build/esm/stores/RemoteEventStore.js +2 -20
- package/build/stores/RemoteEventStore.js +2 -20
- package/package.json +1 -1
|
@@ -857,142 +857,6 @@ declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schem
|
|
|
857
857
|
interface CancelCalendarEventResponsePayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CancelCalendarEventResponsePayloadSchema> {
|
|
858
858
|
}
|
|
859
859
|
}
|
|
860
|
-
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
861
|
-
interface CreateCalendarEmitTarget {
|
|
862
|
-
'organizationId': string;
|
|
863
|
-
}
|
|
864
|
-
interface CreateCalendarEmitTargetSchema extends SpruceSchema.Schema {
|
|
865
|
-
id: 'createCalendarEmitTarget';
|
|
866
|
-
version: 'v2021_05_19';
|
|
867
|
-
namespace: 'Calendar';
|
|
868
|
-
name: '';
|
|
869
|
-
fields: {
|
|
870
|
-
/** . */
|
|
871
|
-
'organizationId': {
|
|
872
|
-
type: 'id';
|
|
873
|
-
isRequired: true;
|
|
874
|
-
options: undefined;
|
|
875
|
-
};
|
|
876
|
-
};
|
|
877
|
-
}
|
|
878
|
-
interface CreateCalendarEmitTargetEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetSchema> {
|
|
879
|
-
}
|
|
880
|
-
}
|
|
881
|
-
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
882
|
-
interface CreateCalendarEmitPayload {
|
|
883
|
-
'slug': string;
|
|
884
|
-
'title': string;
|
|
885
|
-
'eventTypes'?: string[] | undefined | null;
|
|
886
|
-
'availableTimeSlotBehavior'?: ("include" | "exclude") | undefined | null;
|
|
887
|
-
}
|
|
888
|
-
interface CreateCalendarEmitPayloadSchema extends SpruceSchema.Schema {
|
|
889
|
-
id: 'createCalendarEmitPayload';
|
|
890
|
-
version: 'v2021_05_19';
|
|
891
|
-
namespace: 'Calendar';
|
|
892
|
-
name: '';
|
|
893
|
-
fields: {
|
|
894
|
-
/** . */
|
|
895
|
-
'slug': {
|
|
896
|
-
type: 'id';
|
|
897
|
-
isRequired: true;
|
|
898
|
-
options: undefined;
|
|
899
|
-
};
|
|
900
|
-
/** . */
|
|
901
|
-
'title': {
|
|
902
|
-
type: 'text';
|
|
903
|
-
isRequired: true;
|
|
904
|
-
options: undefined;
|
|
905
|
-
};
|
|
906
|
-
/** . */
|
|
907
|
-
'eventTypes': {
|
|
908
|
-
type: 'text';
|
|
909
|
-
isArray: true;
|
|
910
|
-
minArrayLength: 0;
|
|
911
|
-
options: undefined;
|
|
912
|
-
};
|
|
913
|
-
/** . */
|
|
914
|
-
'availableTimeSlotBehavior': {
|
|
915
|
-
type: 'select';
|
|
916
|
-
options: {
|
|
917
|
-
choices: [{
|
|
918
|
-
"value": "include";
|
|
919
|
-
"label": "Include";
|
|
920
|
-
}, {
|
|
921
|
-
"value": "exclude";
|
|
922
|
-
"label": "Exclude";
|
|
923
|
-
}];
|
|
924
|
-
};
|
|
925
|
-
};
|
|
926
|
-
};
|
|
927
|
-
}
|
|
928
|
-
interface CreateCalendarEmitPayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayloadSchema> {
|
|
929
|
-
}
|
|
930
|
-
}
|
|
931
|
-
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
932
|
-
interface CreateCalendarEmitTargetAndPayload {
|
|
933
|
-
/** Source. */
|
|
934
|
-
'source'?: SpruceSchemas.SpruceEventUtils.v2021_09_13.EventSource | undefined | null;
|
|
935
|
-
'target': SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTarget;
|
|
936
|
-
'payload': SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayload;
|
|
937
|
-
}
|
|
938
|
-
interface CreateCalendarEmitTargetAndPayloadSchema extends SpruceSchema.Schema {
|
|
939
|
-
id: 'createCalendarEmitTargetAndPayload';
|
|
940
|
-
version: 'v2021_05_19';
|
|
941
|
-
namespace: 'Calendar';
|
|
942
|
-
name: '';
|
|
943
|
-
fields: {
|
|
944
|
-
/** Source. */
|
|
945
|
-
'source': {
|
|
946
|
-
label: 'Source';
|
|
947
|
-
type: 'schema';
|
|
948
|
-
options: {
|
|
949
|
-
schema: SpruceSchemas.SpruceEventUtils.v2021_09_13.EventSourceSchema;
|
|
950
|
-
};
|
|
951
|
-
};
|
|
952
|
-
/** . */
|
|
953
|
-
'target': {
|
|
954
|
-
type: 'schema';
|
|
955
|
-
isRequired: true;
|
|
956
|
-
options: {
|
|
957
|
-
schema: SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetSchema;
|
|
958
|
-
};
|
|
959
|
-
};
|
|
960
|
-
/** . */
|
|
961
|
-
'payload': {
|
|
962
|
-
type: 'schema';
|
|
963
|
-
isRequired: true;
|
|
964
|
-
options: {
|
|
965
|
-
schema: SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayloadSchema;
|
|
966
|
-
};
|
|
967
|
-
};
|
|
968
|
-
};
|
|
969
|
-
}
|
|
970
|
-
interface CreateCalendarEmitTargetAndPayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetAndPayloadSchema> {
|
|
971
|
-
}
|
|
972
|
-
}
|
|
973
|
-
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
974
|
-
interface CreateCalendarResponsePayload {
|
|
975
|
-
'calendar': SpruceSchemas.Calendar.v2021_05_19.Calendar;
|
|
976
|
-
}
|
|
977
|
-
interface CreateCalendarResponsePayloadSchema extends SpruceSchema.Schema {
|
|
978
|
-
id: 'createCalendarResponsePayload';
|
|
979
|
-
version: 'v2021_05_19';
|
|
980
|
-
namespace: 'Calendar';
|
|
981
|
-
name: '';
|
|
982
|
-
fields: {
|
|
983
|
-
/** . */
|
|
984
|
-
'calendar': {
|
|
985
|
-
type: 'schema';
|
|
986
|
-
isRequired: true;
|
|
987
|
-
options: {
|
|
988
|
-
schema: SpruceSchemas.Calendar.v2021_05_19.CalendarSchema;
|
|
989
|
-
};
|
|
990
|
-
};
|
|
991
|
-
};
|
|
992
|
-
}
|
|
993
|
-
interface CreateCalendarResponsePayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarResponsePayloadSchema> {
|
|
994
|
-
}
|
|
995
|
-
}
|
|
996
860
|
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
997
861
|
interface CreateCalendarEventTypeEmitPayload {
|
|
998
862
|
'name': string;
|
|
@@ -1502,6 +1366,142 @@ declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schem
|
|
|
1502
1366
|
interface CreateCalendarEventTypeResponsePayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEventTypeResponsePayloadSchema> {
|
|
1503
1367
|
}
|
|
1504
1368
|
}
|
|
1369
|
+
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
1370
|
+
interface CreateCalendarEmitTarget {
|
|
1371
|
+
'organizationId': string;
|
|
1372
|
+
}
|
|
1373
|
+
interface CreateCalendarEmitTargetSchema extends SpruceSchema.Schema {
|
|
1374
|
+
id: 'createCalendarEmitTarget';
|
|
1375
|
+
version: 'v2021_05_19';
|
|
1376
|
+
namespace: 'Calendar';
|
|
1377
|
+
name: '';
|
|
1378
|
+
fields: {
|
|
1379
|
+
/** . */
|
|
1380
|
+
'organizationId': {
|
|
1381
|
+
type: 'id';
|
|
1382
|
+
isRequired: true;
|
|
1383
|
+
options: undefined;
|
|
1384
|
+
};
|
|
1385
|
+
};
|
|
1386
|
+
}
|
|
1387
|
+
interface CreateCalendarEmitTargetEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetSchema> {
|
|
1388
|
+
}
|
|
1389
|
+
}
|
|
1390
|
+
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
1391
|
+
interface CreateCalendarEmitPayload {
|
|
1392
|
+
'slug': string;
|
|
1393
|
+
'title': string;
|
|
1394
|
+
'eventTypes'?: string[] | undefined | null;
|
|
1395
|
+
'availableTimeSlotBehavior'?: ("include" | "exclude") | undefined | null;
|
|
1396
|
+
}
|
|
1397
|
+
interface CreateCalendarEmitPayloadSchema extends SpruceSchema.Schema {
|
|
1398
|
+
id: 'createCalendarEmitPayload';
|
|
1399
|
+
version: 'v2021_05_19';
|
|
1400
|
+
namespace: 'Calendar';
|
|
1401
|
+
name: '';
|
|
1402
|
+
fields: {
|
|
1403
|
+
/** . */
|
|
1404
|
+
'slug': {
|
|
1405
|
+
type: 'id';
|
|
1406
|
+
isRequired: true;
|
|
1407
|
+
options: undefined;
|
|
1408
|
+
};
|
|
1409
|
+
/** . */
|
|
1410
|
+
'title': {
|
|
1411
|
+
type: 'text';
|
|
1412
|
+
isRequired: true;
|
|
1413
|
+
options: undefined;
|
|
1414
|
+
};
|
|
1415
|
+
/** . */
|
|
1416
|
+
'eventTypes': {
|
|
1417
|
+
type: 'text';
|
|
1418
|
+
isArray: true;
|
|
1419
|
+
minArrayLength: 0;
|
|
1420
|
+
options: undefined;
|
|
1421
|
+
};
|
|
1422
|
+
/** . */
|
|
1423
|
+
'availableTimeSlotBehavior': {
|
|
1424
|
+
type: 'select';
|
|
1425
|
+
options: {
|
|
1426
|
+
choices: [{
|
|
1427
|
+
"value": "include";
|
|
1428
|
+
"label": "Include";
|
|
1429
|
+
}, {
|
|
1430
|
+
"value": "exclude";
|
|
1431
|
+
"label": "Exclude";
|
|
1432
|
+
}];
|
|
1433
|
+
};
|
|
1434
|
+
};
|
|
1435
|
+
};
|
|
1436
|
+
}
|
|
1437
|
+
interface CreateCalendarEmitPayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayloadSchema> {
|
|
1438
|
+
}
|
|
1439
|
+
}
|
|
1440
|
+
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
1441
|
+
interface CreateCalendarEmitTargetAndPayload {
|
|
1442
|
+
/** Source. */
|
|
1443
|
+
'source'?: SpruceSchemas.SpruceEventUtils.v2021_09_13.EventSource | undefined | null;
|
|
1444
|
+
'target': SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTarget;
|
|
1445
|
+
'payload': SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayload;
|
|
1446
|
+
}
|
|
1447
|
+
interface CreateCalendarEmitTargetAndPayloadSchema extends SpruceSchema.Schema {
|
|
1448
|
+
id: 'createCalendarEmitTargetAndPayload';
|
|
1449
|
+
version: 'v2021_05_19';
|
|
1450
|
+
namespace: 'Calendar';
|
|
1451
|
+
name: '';
|
|
1452
|
+
fields: {
|
|
1453
|
+
/** Source. */
|
|
1454
|
+
'source': {
|
|
1455
|
+
label: 'Source';
|
|
1456
|
+
type: 'schema';
|
|
1457
|
+
options: {
|
|
1458
|
+
schema: SpruceSchemas.SpruceEventUtils.v2021_09_13.EventSourceSchema;
|
|
1459
|
+
};
|
|
1460
|
+
};
|
|
1461
|
+
/** . */
|
|
1462
|
+
'target': {
|
|
1463
|
+
type: 'schema';
|
|
1464
|
+
isRequired: true;
|
|
1465
|
+
options: {
|
|
1466
|
+
schema: SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetSchema;
|
|
1467
|
+
};
|
|
1468
|
+
};
|
|
1469
|
+
/** . */
|
|
1470
|
+
'payload': {
|
|
1471
|
+
type: 'schema';
|
|
1472
|
+
isRequired: true;
|
|
1473
|
+
options: {
|
|
1474
|
+
schema: SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayloadSchema;
|
|
1475
|
+
};
|
|
1476
|
+
};
|
|
1477
|
+
};
|
|
1478
|
+
}
|
|
1479
|
+
interface CreateCalendarEmitTargetAndPayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetAndPayloadSchema> {
|
|
1480
|
+
}
|
|
1481
|
+
}
|
|
1482
|
+
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
1483
|
+
interface CreateCalendarResponsePayload {
|
|
1484
|
+
'calendar': SpruceSchemas.Calendar.v2021_05_19.Calendar;
|
|
1485
|
+
}
|
|
1486
|
+
interface CreateCalendarResponsePayloadSchema extends SpruceSchema.Schema {
|
|
1487
|
+
id: 'createCalendarResponsePayload';
|
|
1488
|
+
version: 'v2021_05_19';
|
|
1489
|
+
namespace: 'Calendar';
|
|
1490
|
+
name: '';
|
|
1491
|
+
fields: {
|
|
1492
|
+
/** . */
|
|
1493
|
+
'calendar': {
|
|
1494
|
+
type: 'schema';
|
|
1495
|
+
isRequired: true;
|
|
1496
|
+
options: {
|
|
1497
|
+
schema: SpruceSchemas.Calendar.v2021_05_19.CalendarSchema;
|
|
1498
|
+
};
|
|
1499
|
+
};
|
|
1500
|
+
};
|
|
1501
|
+
}
|
|
1502
|
+
interface CreateCalendarResponsePayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarResponsePayloadSchema> {
|
|
1503
|
+
}
|
|
1504
|
+
}
|
|
1505
1505
|
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
1506
1506
|
interface DeleteCalendarEmitTarget {
|
|
1507
1507
|
'organizationId': string;
|
|
@@ -48,11 +48,7 @@ export default class CalendarEventManager {
|
|
|
48
48
|
cancelEvent(id: string, options?: CancelOptions): Promise<void>;
|
|
49
49
|
makeCalendarVisible(calendarId: string): Promise<void>;
|
|
50
50
|
makeCalendarHidden(calendarId: string): Promise<void>;
|
|
51
|
-
updateEvent(id: string, updates:
|
|
52
|
-
dateToUpdate?: number;
|
|
53
|
-
shouldUpdateAllEventsGoingForward?: boolean;
|
|
54
|
-
shouldPersist?: boolean;
|
|
55
|
-
}): void;
|
|
51
|
+
updateEvent(id: string, updates: UpdateEventOptions): void;
|
|
56
52
|
loadEvents(startDate: number, endDate: number, peopleIds: string[]): Promise<import("@sprucelabs/calendar-utils").SpruceSchemas.HeartwoodViewControllers.v2021_02_11.CalendarEvent[]>;
|
|
57
53
|
setCalendarVisibility(calendarId: string, shouldBeVisible: boolean): Promise<void>;
|
|
58
54
|
setupVcForEventType(vcId: string, typeSlug: string): Promise<void>;
|
|
@@ -122,4 +118,9 @@ export type SavedEvent = Partial<CalendarEvent> & {
|
|
|
122
118
|
export interface CancelOptions {
|
|
123
119
|
shouldPersist?: boolean;
|
|
124
120
|
}
|
|
121
|
+
export type UpdateEventOptions = Partial<CalendarEvent> & {
|
|
122
|
+
dateToUpdate?: number;
|
|
123
|
+
shouldUpdateAllEventsGoingForward?: boolean;
|
|
124
|
+
shouldPersist?: boolean;
|
|
125
|
+
};
|
|
125
126
|
export {};
|
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
const heartwood_view_controllers_1 = require("@sprucelabs/heartwood-view-controllers");
|
|
18
18
|
const schema_1 = require("@sprucelabs/schema");
|
|
19
19
|
const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
|
|
20
|
+
const isEqual_1 = __importDefault(require("../stores/isEqual"));
|
|
20
21
|
const calendarShiftGenerator_1 = __importDefault(require("../utilities/calendarShiftGenerator"));
|
|
21
22
|
const draftGenerator_1 = __importDefault(require("../utilities/draftGenerator"));
|
|
22
23
|
class CalendarEventManager {
|
|
@@ -177,6 +178,12 @@ class CalendarEventManager {
|
|
|
177
178
|
updateEvent(id, updates) {
|
|
178
179
|
var _a;
|
|
179
180
|
const { shouldPersist } = updates, rest = __rest(updates, ["shouldPersist"]);
|
|
181
|
+
const match = this.allEvents.find((e) => e.id === id);
|
|
182
|
+
const updated = Object.assign(Object.assign({}, match), updates);
|
|
183
|
+
const isTheSame = (0, isEqual_1.default)(match, updated);
|
|
184
|
+
if (isTheSame) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
180
187
|
this.calendarVc.updateEvent(id, Object.assign(Object.assign({}, rest), { shouldPersist }));
|
|
181
188
|
const idx = this.allEvents.findIndex((e) => e.id === id);
|
|
182
189
|
this.allEvents[idx] = Object.assign(Object.assign({}, this.allEvents[idx]), rest);
|
|
@@ -857,142 +857,6 @@ declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schem
|
|
|
857
857
|
interface CancelCalendarEventResponsePayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CancelCalendarEventResponsePayloadSchema> {
|
|
858
858
|
}
|
|
859
859
|
}
|
|
860
|
-
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
861
|
-
interface CreateCalendarEmitTarget {
|
|
862
|
-
'organizationId': string;
|
|
863
|
-
}
|
|
864
|
-
interface CreateCalendarEmitTargetSchema extends SpruceSchema.Schema {
|
|
865
|
-
id: 'createCalendarEmitTarget';
|
|
866
|
-
version: 'v2021_05_19';
|
|
867
|
-
namespace: 'Calendar';
|
|
868
|
-
name: '';
|
|
869
|
-
fields: {
|
|
870
|
-
/** . */
|
|
871
|
-
'organizationId': {
|
|
872
|
-
type: 'id';
|
|
873
|
-
isRequired: true;
|
|
874
|
-
options: undefined;
|
|
875
|
-
};
|
|
876
|
-
};
|
|
877
|
-
}
|
|
878
|
-
interface CreateCalendarEmitTargetEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetSchema> {
|
|
879
|
-
}
|
|
880
|
-
}
|
|
881
|
-
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
882
|
-
interface CreateCalendarEmitPayload {
|
|
883
|
-
'slug': string;
|
|
884
|
-
'title': string;
|
|
885
|
-
'eventTypes'?: string[] | undefined | null;
|
|
886
|
-
'availableTimeSlotBehavior'?: ("include" | "exclude") | undefined | null;
|
|
887
|
-
}
|
|
888
|
-
interface CreateCalendarEmitPayloadSchema extends SpruceSchema.Schema {
|
|
889
|
-
id: 'createCalendarEmitPayload';
|
|
890
|
-
version: 'v2021_05_19';
|
|
891
|
-
namespace: 'Calendar';
|
|
892
|
-
name: '';
|
|
893
|
-
fields: {
|
|
894
|
-
/** . */
|
|
895
|
-
'slug': {
|
|
896
|
-
type: 'id';
|
|
897
|
-
isRequired: true;
|
|
898
|
-
options: undefined;
|
|
899
|
-
};
|
|
900
|
-
/** . */
|
|
901
|
-
'title': {
|
|
902
|
-
type: 'text';
|
|
903
|
-
isRequired: true;
|
|
904
|
-
options: undefined;
|
|
905
|
-
};
|
|
906
|
-
/** . */
|
|
907
|
-
'eventTypes': {
|
|
908
|
-
type: 'text';
|
|
909
|
-
isArray: true;
|
|
910
|
-
minArrayLength: 0;
|
|
911
|
-
options: undefined;
|
|
912
|
-
};
|
|
913
|
-
/** . */
|
|
914
|
-
'availableTimeSlotBehavior': {
|
|
915
|
-
type: 'select';
|
|
916
|
-
options: {
|
|
917
|
-
choices: [{
|
|
918
|
-
"value": "include";
|
|
919
|
-
"label": "Include";
|
|
920
|
-
}, {
|
|
921
|
-
"value": "exclude";
|
|
922
|
-
"label": "Exclude";
|
|
923
|
-
}];
|
|
924
|
-
};
|
|
925
|
-
};
|
|
926
|
-
};
|
|
927
|
-
}
|
|
928
|
-
interface CreateCalendarEmitPayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayloadSchema> {
|
|
929
|
-
}
|
|
930
|
-
}
|
|
931
|
-
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
932
|
-
interface CreateCalendarEmitTargetAndPayload {
|
|
933
|
-
/** Source. */
|
|
934
|
-
'source'?: SpruceSchemas.SpruceEventUtils.v2021_09_13.EventSource | undefined | null;
|
|
935
|
-
'target': SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTarget;
|
|
936
|
-
'payload': SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayload;
|
|
937
|
-
}
|
|
938
|
-
interface CreateCalendarEmitTargetAndPayloadSchema extends SpruceSchema.Schema {
|
|
939
|
-
id: 'createCalendarEmitTargetAndPayload';
|
|
940
|
-
version: 'v2021_05_19';
|
|
941
|
-
namespace: 'Calendar';
|
|
942
|
-
name: '';
|
|
943
|
-
fields: {
|
|
944
|
-
/** Source. */
|
|
945
|
-
'source': {
|
|
946
|
-
label: 'Source';
|
|
947
|
-
type: 'schema';
|
|
948
|
-
options: {
|
|
949
|
-
schema: SpruceSchemas.SpruceEventUtils.v2021_09_13.EventSourceSchema;
|
|
950
|
-
};
|
|
951
|
-
};
|
|
952
|
-
/** . */
|
|
953
|
-
'target': {
|
|
954
|
-
type: 'schema';
|
|
955
|
-
isRequired: true;
|
|
956
|
-
options: {
|
|
957
|
-
schema: SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetSchema;
|
|
958
|
-
};
|
|
959
|
-
};
|
|
960
|
-
/** . */
|
|
961
|
-
'payload': {
|
|
962
|
-
type: 'schema';
|
|
963
|
-
isRequired: true;
|
|
964
|
-
options: {
|
|
965
|
-
schema: SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayloadSchema;
|
|
966
|
-
};
|
|
967
|
-
};
|
|
968
|
-
};
|
|
969
|
-
}
|
|
970
|
-
interface CreateCalendarEmitTargetAndPayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetAndPayloadSchema> {
|
|
971
|
-
}
|
|
972
|
-
}
|
|
973
|
-
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
974
|
-
interface CreateCalendarResponsePayload {
|
|
975
|
-
'calendar': SpruceSchemas.Calendar.v2021_05_19.Calendar;
|
|
976
|
-
}
|
|
977
|
-
interface CreateCalendarResponsePayloadSchema extends SpruceSchema.Schema {
|
|
978
|
-
id: 'createCalendarResponsePayload';
|
|
979
|
-
version: 'v2021_05_19';
|
|
980
|
-
namespace: 'Calendar';
|
|
981
|
-
name: '';
|
|
982
|
-
fields: {
|
|
983
|
-
/** . */
|
|
984
|
-
'calendar': {
|
|
985
|
-
type: 'schema';
|
|
986
|
-
isRequired: true;
|
|
987
|
-
options: {
|
|
988
|
-
schema: SpruceSchemas.Calendar.v2021_05_19.CalendarSchema;
|
|
989
|
-
};
|
|
990
|
-
};
|
|
991
|
-
};
|
|
992
|
-
}
|
|
993
|
-
interface CreateCalendarResponsePayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarResponsePayloadSchema> {
|
|
994
|
-
}
|
|
995
|
-
}
|
|
996
860
|
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
997
861
|
interface CreateCalendarEventTypeEmitPayload {
|
|
998
862
|
'name': string;
|
|
@@ -1502,6 +1366,142 @@ declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schem
|
|
|
1502
1366
|
interface CreateCalendarEventTypeResponsePayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEventTypeResponsePayloadSchema> {
|
|
1503
1367
|
}
|
|
1504
1368
|
}
|
|
1369
|
+
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
1370
|
+
interface CreateCalendarEmitTarget {
|
|
1371
|
+
'organizationId': string;
|
|
1372
|
+
}
|
|
1373
|
+
interface CreateCalendarEmitTargetSchema extends SpruceSchema.Schema {
|
|
1374
|
+
id: 'createCalendarEmitTarget';
|
|
1375
|
+
version: 'v2021_05_19';
|
|
1376
|
+
namespace: 'Calendar';
|
|
1377
|
+
name: '';
|
|
1378
|
+
fields: {
|
|
1379
|
+
/** . */
|
|
1380
|
+
'organizationId': {
|
|
1381
|
+
type: 'id';
|
|
1382
|
+
isRequired: true;
|
|
1383
|
+
options: undefined;
|
|
1384
|
+
};
|
|
1385
|
+
};
|
|
1386
|
+
}
|
|
1387
|
+
interface CreateCalendarEmitTargetEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetSchema> {
|
|
1388
|
+
}
|
|
1389
|
+
}
|
|
1390
|
+
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
1391
|
+
interface CreateCalendarEmitPayload {
|
|
1392
|
+
'slug': string;
|
|
1393
|
+
'title': string;
|
|
1394
|
+
'eventTypes'?: string[] | undefined | null;
|
|
1395
|
+
'availableTimeSlotBehavior'?: ("include" | "exclude") | undefined | null;
|
|
1396
|
+
}
|
|
1397
|
+
interface CreateCalendarEmitPayloadSchema extends SpruceSchema.Schema {
|
|
1398
|
+
id: 'createCalendarEmitPayload';
|
|
1399
|
+
version: 'v2021_05_19';
|
|
1400
|
+
namespace: 'Calendar';
|
|
1401
|
+
name: '';
|
|
1402
|
+
fields: {
|
|
1403
|
+
/** . */
|
|
1404
|
+
'slug': {
|
|
1405
|
+
type: 'id';
|
|
1406
|
+
isRequired: true;
|
|
1407
|
+
options: undefined;
|
|
1408
|
+
};
|
|
1409
|
+
/** . */
|
|
1410
|
+
'title': {
|
|
1411
|
+
type: 'text';
|
|
1412
|
+
isRequired: true;
|
|
1413
|
+
options: undefined;
|
|
1414
|
+
};
|
|
1415
|
+
/** . */
|
|
1416
|
+
'eventTypes': {
|
|
1417
|
+
type: 'text';
|
|
1418
|
+
isArray: true;
|
|
1419
|
+
minArrayLength: 0;
|
|
1420
|
+
options: undefined;
|
|
1421
|
+
};
|
|
1422
|
+
/** . */
|
|
1423
|
+
'availableTimeSlotBehavior': {
|
|
1424
|
+
type: 'select';
|
|
1425
|
+
options: {
|
|
1426
|
+
choices: [{
|
|
1427
|
+
"value": "include";
|
|
1428
|
+
"label": "Include";
|
|
1429
|
+
}, {
|
|
1430
|
+
"value": "exclude";
|
|
1431
|
+
"label": "Exclude";
|
|
1432
|
+
}];
|
|
1433
|
+
};
|
|
1434
|
+
};
|
|
1435
|
+
};
|
|
1436
|
+
}
|
|
1437
|
+
interface CreateCalendarEmitPayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayloadSchema> {
|
|
1438
|
+
}
|
|
1439
|
+
}
|
|
1440
|
+
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
1441
|
+
interface CreateCalendarEmitTargetAndPayload {
|
|
1442
|
+
/** Source. */
|
|
1443
|
+
'source'?: SpruceSchemas.SpruceEventUtils.v2021_09_13.EventSource | undefined | null;
|
|
1444
|
+
'target': SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTarget;
|
|
1445
|
+
'payload': SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayload;
|
|
1446
|
+
}
|
|
1447
|
+
interface CreateCalendarEmitTargetAndPayloadSchema extends SpruceSchema.Schema {
|
|
1448
|
+
id: 'createCalendarEmitTargetAndPayload';
|
|
1449
|
+
version: 'v2021_05_19';
|
|
1450
|
+
namespace: 'Calendar';
|
|
1451
|
+
name: '';
|
|
1452
|
+
fields: {
|
|
1453
|
+
/** Source. */
|
|
1454
|
+
'source': {
|
|
1455
|
+
label: 'Source';
|
|
1456
|
+
type: 'schema';
|
|
1457
|
+
options: {
|
|
1458
|
+
schema: SpruceSchemas.SpruceEventUtils.v2021_09_13.EventSourceSchema;
|
|
1459
|
+
};
|
|
1460
|
+
};
|
|
1461
|
+
/** . */
|
|
1462
|
+
'target': {
|
|
1463
|
+
type: 'schema';
|
|
1464
|
+
isRequired: true;
|
|
1465
|
+
options: {
|
|
1466
|
+
schema: SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetSchema;
|
|
1467
|
+
};
|
|
1468
|
+
};
|
|
1469
|
+
/** . */
|
|
1470
|
+
'payload': {
|
|
1471
|
+
type: 'schema';
|
|
1472
|
+
isRequired: true;
|
|
1473
|
+
options: {
|
|
1474
|
+
schema: SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitPayloadSchema;
|
|
1475
|
+
};
|
|
1476
|
+
};
|
|
1477
|
+
};
|
|
1478
|
+
}
|
|
1479
|
+
interface CreateCalendarEmitTargetAndPayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarEmitTargetAndPayloadSchema> {
|
|
1480
|
+
}
|
|
1481
|
+
}
|
|
1482
|
+
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
1483
|
+
interface CreateCalendarResponsePayload {
|
|
1484
|
+
'calendar': SpruceSchemas.Calendar.v2021_05_19.Calendar;
|
|
1485
|
+
}
|
|
1486
|
+
interface CreateCalendarResponsePayloadSchema extends SpruceSchema.Schema {
|
|
1487
|
+
id: 'createCalendarResponsePayload';
|
|
1488
|
+
version: 'v2021_05_19';
|
|
1489
|
+
namespace: 'Calendar';
|
|
1490
|
+
name: '';
|
|
1491
|
+
fields: {
|
|
1492
|
+
/** . */
|
|
1493
|
+
'calendar': {
|
|
1494
|
+
type: 'schema';
|
|
1495
|
+
isRequired: true;
|
|
1496
|
+
options: {
|
|
1497
|
+
schema: SpruceSchemas.Calendar.v2021_05_19.CalendarSchema;
|
|
1498
|
+
};
|
|
1499
|
+
};
|
|
1500
|
+
};
|
|
1501
|
+
}
|
|
1502
|
+
interface CreateCalendarResponsePayloadEntity extends SchemaEntity<SpruceSchemas.Calendar.v2021_05_19.CreateCalendarResponsePayloadSchema> {
|
|
1503
|
+
}
|
|
1504
|
+
}
|
|
1505
1505
|
namespace SpruceSchemas.Calendar.v2021_05_19 {
|
|
1506
1506
|
interface DeleteCalendarEmitTarget {
|
|
1507
1507
|
'organizationId': string;
|
|
@@ -48,11 +48,7 @@ export default class CalendarEventManager {
|
|
|
48
48
|
cancelEvent(id: string, options?: CancelOptions): Promise<void>;
|
|
49
49
|
makeCalendarVisible(calendarId: string): Promise<void>;
|
|
50
50
|
makeCalendarHidden(calendarId: string): Promise<void>;
|
|
51
|
-
updateEvent(id: string, updates:
|
|
52
|
-
dateToUpdate?: number;
|
|
53
|
-
shouldUpdateAllEventsGoingForward?: boolean;
|
|
54
|
-
shouldPersist?: boolean;
|
|
55
|
-
}): void;
|
|
51
|
+
updateEvent(id: string, updates: UpdateEventOptions): void;
|
|
56
52
|
loadEvents(startDate: number, endDate: number, peopleIds: string[]): Promise<import("@sprucelabs/calendar-utils").SpruceSchemas.HeartwoodViewControllers.v2021_02_11.CalendarEvent[]>;
|
|
57
53
|
setCalendarVisibility(calendarId: string, shouldBeVisible: boolean): Promise<void>;
|
|
58
54
|
setupVcForEventType(vcId: string, typeSlug: string): Promise<void>;
|
|
@@ -122,4 +118,9 @@ export type SavedEvent = Partial<CalendarEvent> & {
|
|
|
122
118
|
export interface CancelOptions {
|
|
123
119
|
shouldPersist?: boolean;
|
|
124
120
|
}
|
|
121
|
+
export type UpdateEventOptions = Partial<CalendarEvent> & {
|
|
122
|
+
dateToUpdate?: number;
|
|
123
|
+
shouldUpdateAllEventsGoingForward?: boolean;
|
|
124
|
+
shouldPersist?: boolean;
|
|
125
|
+
};
|
|
125
126
|
export {};
|
|
@@ -21,6 +21,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
import { calendarEventSchema, } from '@sprucelabs/heartwood-view-controllers';
|
|
22
22
|
import { assertOptions, normalizeSchemaValues } from '@sprucelabs/schema';
|
|
23
23
|
import SpruceError from '../errors/SpruceError.js';
|
|
24
|
+
import isEqual from '../stores/isEqual.js';
|
|
24
25
|
import calendarShiftGenerator from '../utilities/calendarShiftGenerator.js';
|
|
25
26
|
import draftEventGenerator from '../utilities/draftGenerator.js';
|
|
26
27
|
export default class CalendarEventManager {
|
|
@@ -197,6 +198,12 @@ export default class CalendarEventManager {
|
|
|
197
198
|
updateEvent(id, updates) {
|
|
198
199
|
var _a;
|
|
199
200
|
const { shouldPersist } = updates, rest = __rest(updates, ["shouldPersist"]);
|
|
201
|
+
const match = this.allEvents.find((e) => e.id === id);
|
|
202
|
+
const updated = Object.assign(Object.assign({}, match), updates);
|
|
203
|
+
const isTheSame = isEqual(match, updated);
|
|
204
|
+
if (isTheSame) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
200
207
|
this.calendarVc.updateEvent(id, Object.assign(Object.assign({}, rest), { shouldPersist }));
|
|
201
208
|
const idx = this.allEvents.findIndex((e) => e.id === id);
|
|
202
209
|
this.allEvents[idx] = Object.assign(Object.assign({}, this.allEvents[idx]), rest);
|
|
@@ -21,6 +21,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
import { calendarEventSchema } from '@sprucelabs/calendar-utils';
|
|
22
22
|
import { assertOptions, normalizeSchemaValues } from '@sprucelabs/schema';
|
|
23
23
|
import draftEventGenerator from '../utilities/draftGenerator.js';
|
|
24
|
+
import isEqual from './isEqual.js';
|
|
24
25
|
export default class RemoteEventStoreImpl {
|
|
25
26
|
constructor(options) {
|
|
26
27
|
this.pendingEvents = {};
|
|
@@ -81,7 +82,7 @@ export default class RemoteEventStoreImpl {
|
|
|
81
82
|
}
|
|
82
83
|
delete event.isBusy;
|
|
83
84
|
const lastSaved = (_b = this.lastSavedById[this.getId(id)]) !== null && _b !== void 0 ? _b : {};
|
|
84
|
-
if (
|
|
85
|
+
if (isEqual(lastSaved.before, event) || isEqual(lastSaved.after, event)) {
|
|
85
86
|
resolve(lastSaved.after);
|
|
86
87
|
}
|
|
87
88
|
else {
|
|
@@ -273,22 +274,3 @@ export default class RemoteEventStoreImpl {
|
|
|
273
274
|
});
|
|
274
275
|
}
|
|
275
276
|
}
|
|
276
|
-
const equals = (a, b) => {
|
|
277
|
-
if (a === b) {
|
|
278
|
-
return true;
|
|
279
|
-
}
|
|
280
|
-
if (a instanceof Date && b instanceof Date) {
|
|
281
|
-
return a.getTime() === b.getTime();
|
|
282
|
-
}
|
|
283
|
-
if (!a || !b || (typeof a !== 'object' && typeof b !== 'object')) {
|
|
284
|
-
return a === b;
|
|
285
|
-
}
|
|
286
|
-
if (a.prototype !== b.prototype) {
|
|
287
|
-
return false;
|
|
288
|
-
}
|
|
289
|
-
const keys = Object.keys(a);
|
|
290
|
-
if (keys.length !== Object.keys(b).length) {
|
|
291
|
-
return false;
|
|
292
|
-
}
|
|
293
|
-
return keys.every((k) => equals(a[k], b[k]));
|
|
294
|
-
};
|
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
const calendar_utils_1 = require("@sprucelabs/calendar-utils");
|
|
18
18
|
const schema_1 = require("@sprucelabs/schema");
|
|
19
19
|
const draftGenerator_1 = __importDefault(require("../utilities/draftGenerator"));
|
|
20
|
+
const isEqual_1 = __importDefault(require("./isEqual"));
|
|
20
21
|
class RemoteEventStoreImpl {
|
|
21
22
|
constructor(options) {
|
|
22
23
|
this.pendingEvents = {};
|
|
@@ -72,7 +73,7 @@ class RemoteEventStoreImpl {
|
|
|
72
73
|
}
|
|
73
74
|
delete event.isBusy;
|
|
74
75
|
const lastSaved = (_b = this.lastSavedById[this.getId(id)]) !== null && _b !== void 0 ? _b : {};
|
|
75
|
-
if (
|
|
76
|
+
if ((0, isEqual_1.default)(lastSaved.before, event) || (0, isEqual_1.default)(lastSaved.after, event)) {
|
|
76
77
|
resolve(lastSaved.after);
|
|
77
78
|
}
|
|
78
79
|
else {
|
|
@@ -248,22 +249,3 @@ class RemoteEventStoreImpl {
|
|
|
248
249
|
}
|
|
249
250
|
}
|
|
250
251
|
exports.default = RemoteEventStoreImpl;
|
|
251
|
-
const equals = (a, b) => {
|
|
252
|
-
if (a === b) {
|
|
253
|
-
return true;
|
|
254
|
-
}
|
|
255
|
-
if (a instanceof Date && b instanceof Date) {
|
|
256
|
-
return a.getTime() === b.getTime();
|
|
257
|
-
}
|
|
258
|
-
if (!a || !b || (typeof a !== 'object' && typeof b !== 'object')) {
|
|
259
|
-
return a === b;
|
|
260
|
-
}
|
|
261
|
-
if (a.prototype !== b.prototype) {
|
|
262
|
-
return false;
|
|
263
|
-
}
|
|
264
|
-
const keys = Object.keys(a);
|
|
265
|
-
if (keys.length !== Object.keys(b).length) {
|
|
266
|
-
return false;
|
|
267
|
-
}
|
|
268
|
-
return keys.every((k) => equals(a[k], b[k]));
|
|
269
|
-
};
|