@sprucelabs/spruce-appointment-utils 7.9.21 → 8.0.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.
@@ -5,5 +5,5 @@ export { default as EditOverrideDetailsCardViewController } from './viewControll
5
5
  export { default as EditTimeBlockTitleCardViewController } from './viewControllers/EditTimeBlockTitleCard.vc';
6
6
  export { default as RolesCardViewController } from './viewControllers/RoleCapabilitiesCard.vc';
7
7
  export { RolesCardViewControllerOptions } from './viewControllers/RoleCapabilitiesCard.vc';
8
- export { default as RemoteRoleCapabilityStore } from './stores/RemoteRoleCapabilityStore';
8
+ export { default as RemoteRoleCapabilityStore } from './capabilities/stores/RemoteRoleCapabilityStore';
9
9
  export * from './types-module';
@@ -4,5 +4,5 @@ export { default as DurationListViewController } from './viewControllers/Duratio
4
4
  export { default as EditOverrideDetailsCardViewController } from './viewControllers/EditOverrideDetailsCard.vc.js';
5
5
  export { default as EditTimeBlockTitleCardViewController } from './viewControllers/EditTimeBlockTitleCard.vc.js';
6
6
  export { default as RolesCardViewController } from './viewControllers/RoleCapabilitiesCard.vc.js';
7
- export { default as RemoteRoleCapabilityStore } from './stores/RemoteRoleCapabilityStore.js';
7
+ export { default as RemoteRoleCapabilityStore } from './capabilities/stores/RemoteRoleCapabilityStore.js';
8
8
  export * from './types-module.js';
@@ -21,8 +21,8 @@ export default class DurationCardViewController extends AbstractViewController<C
21
21
  getDurationListVc(): DurationListViewController;
22
22
  getTimeBlocks(): {
23
23
  title?: string | null | undefined;
24
- isBusy: boolean;
25
24
  subtitle?: string | null | undefined;
25
+ isBusy: boolean;
26
26
  rightIcons?: SpruceSchemasCalendarUtils.CalendarUtils.v2021_05_19.CalendarEventLineIcon[] | null | undefined;
27
27
  leftIcons?: SpruceSchemasCalendarUtils.CalendarUtils.v2021_05_19.CalendarEventLineIcon[] | null | undefined;
28
28
  durationMinutes?: number | undefined;
@@ -20,8 +20,8 @@ export default class DurationListViewController extends AbstractViewController<L
20
20
  getListVc(): ListViewController;
21
21
  getTimeBlocks(): {
22
22
  title?: string | null | undefined;
23
- isBusy: boolean;
24
23
  subtitle?: string | null | undefined;
24
+ isBusy: boolean;
25
25
  rightIcons?: SpruceSchemas.CalendarUtils.v2021_05_19.CalendarEventLineIcon[] | null | undefined;
26
26
  leftIcons?: SpruceSchemas.CalendarUtils.v2021_05_19.CalendarEventLineIcon[] | null | undefined;
27
27
  durationMinutes?: number | undefined;
@@ -0,0 +1,24 @@
1
+ import { SpruceSchemas, ViewControllerOptions } from '@sprucelabs/heartwood-view-controllers';
2
+ import AbstractCapabilityCardViewController from './AbstractCapabilityCardViewController';
3
+ declare type Role = SpruceSchemas.Spruce.v2020_07_22.Role;
4
+ declare type ToggleHandler = (serviceId: string, isSelected: boolean) => void;
5
+ export declare type RolesCardViewControllerOptions = ViewControllerOptions & {
6
+ role: Role;
7
+ onInsertOrUpdateCapability: (values: any) => void;
8
+ onUpdateHasCapability?: ToggleHandler;
9
+ onEdit?: (row: any) => void;
10
+ };
11
+ export default class RolesCardViewController extends AbstractCapabilityCardViewController {
12
+ static id: string;
13
+ protected role: Role;
14
+ protected onInsertOrUpdateCapability: any;
15
+ constructor(options: RolesCardViewControllerOptions);
16
+ load(options: {
17
+ organizationId?: string;
18
+ shouldIncludePrivateFields?: boolean;
19
+ }): Promise<void>;
20
+ protected loadCapabilities(): Promise<void>;
21
+ protected insertOrUpdateCapability(serviceId: string, values: any, serviceCapability: SpruceSchemas.Appointments.v2021_06_23.ListRoleCapability | undefined): Promise<SpruceSchemas.Appointments.v2021_06_23.ListRoleCapability | undefined>;
22
+ getCapabilities(): SpruceSchemas.Appointments.v2021_06_23.ListRoleCapability[];
23
+ }
24
+ export {};
@@ -0,0 +1,51 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { assertOptions } from '@sprucelabs/schema';
11
+ import { eventResponseUtil } from '@sprucelabs/spruce-event-utils';
12
+ import AbstractCapabilityCardViewController from './AbstractCapabilityCardViewController.js';
13
+ export default class RolesCardViewController extends AbstractCapabilityCardViewController {
14
+ constructor(options) {
15
+ super(options);
16
+ assertOptions(options, ['role', 'onInsertOrUpdateCapability']);
17
+ this.role = options.role;
18
+ this.toggleDoesOfferHandler = options.onUpdateHasCapability;
19
+ this.onInsertOrUpdateCapability = options.onInsertOrUpdateCapability;
20
+ this.onEdit = options === null || options === void 0 ? void 0 : options.onEdit;
21
+ this.activeRecordCardVc = this.ActiveRecordCard(options.role);
22
+ }
23
+ load(options) {
24
+ var _a;
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ yield this.loadVc((_a = options.organizationId) !== null && _a !== void 0 ? _a : 'missing-org');
27
+ });
28
+ }
29
+ loadCapabilities() {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ const client = yield this.connectToApi();
32
+ const results = yield client.emit('appointments.list-role-capabilities::v2021_06_23', {
33
+ target: {
34
+ organizationId: this.organizationId,
35
+ roleId: this.role.id,
36
+ },
37
+ });
38
+ const { capabilities } = eventResponseUtil.getFirstResponseOrThrow(results);
39
+ this.capabilities = capabilities;
40
+ });
41
+ }
42
+ insertOrUpdateCapability(serviceId, values, serviceCapability) {
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ return yield this.onInsertOrUpdateCapability(Object.assign(Object.assign({}, values), { serviceId, id: serviceCapability === null || serviceCapability === void 0 ? void 0 : serviceCapability.id }));
45
+ });
46
+ }
47
+ getCapabilities() {
48
+ return this.capabilities;
49
+ }
50
+ }
51
+ RolesCardViewController.id = 'role-capabilities-card';
@@ -5,5 +5,5 @@ export { default as EditOverrideDetailsCardViewController } from './viewControll
5
5
  export { default as EditTimeBlockTitleCardViewController } from './viewControllers/EditTimeBlockTitleCard.vc';
6
6
  export { default as RolesCardViewController } from './viewControllers/RoleCapabilitiesCard.vc';
7
7
  export { RolesCardViewControllerOptions } from './viewControllers/RoleCapabilitiesCard.vc';
8
- export { default as RemoteRoleCapabilityStore } from './stores/RemoteRoleCapabilityStore';
8
+ export { default as RemoteRoleCapabilityStore } from './capabilities/stores/RemoteRoleCapabilityStore';
9
9
  export * from './types-module';
@@ -30,6 +30,6 @@ var EditTimeBlockTitleCard_vc_1 = require("./viewControllers/EditTimeBlockTitleC
30
30
  Object.defineProperty(exports, "EditTimeBlockTitleCardViewController", { enumerable: true, get: function () { return __importDefault(EditTimeBlockTitleCard_vc_1).default; } });
31
31
  var RoleCapabilitiesCard_vc_1 = require("./viewControllers/RoleCapabilitiesCard.vc");
32
32
  Object.defineProperty(exports, "RolesCardViewController", { enumerable: true, get: function () { return __importDefault(RoleCapabilitiesCard_vc_1).default; } });
33
- var RemoteRoleCapabilityStore_1 = require("./stores/RemoteRoleCapabilityStore");
33
+ var RemoteRoleCapabilityStore_1 = require("./capabilities/stores/RemoteRoleCapabilityStore");
34
34
  Object.defineProperty(exports, "RemoteRoleCapabilityStore", { enumerable: true, get: function () { return __importDefault(RemoteRoleCapabilityStore_1).default; } });
35
35
  __exportStar(require("./types-module"), exports);
@@ -21,8 +21,8 @@ export default class DurationCardViewController extends AbstractViewController<C
21
21
  getDurationListVc(): DurationListViewController;
22
22
  getTimeBlocks(): {
23
23
  title?: string | null | undefined;
24
- isBusy: boolean;
25
24
  subtitle?: string | null | undefined;
25
+ isBusy: boolean;
26
26
  rightIcons?: SpruceSchemasCalendarUtils.CalendarUtils.v2021_05_19.CalendarEventLineIcon[] | null | undefined;
27
27
  leftIcons?: SpruceSchemasCalendarUtils.CalendarUtils.v2021_05_19.CalendarEventLineIcon[] | null | undefined;
28
28
  durationMinutes?: number | undefined;
@@ -20,8 +20,8 @@ export default class DurationListViewController extends AbstractViewController<L
20
20
  getListVc(): ListViewController;
21
21
  getTimeBlocks(): {
22
22
  title?: string | null | undefined;
23
- isBusy: boolean;
24
23
  subtitle?: string | null | undefined;
24
+ isBusy: boolean;
25
25
  rightIcons?: SpruceSchemas.CalendarUtils.v2021_05_19.CalendarEventLineIcon[] | null | undefined;
26
26
  leftIcons?: SpruceSchemas.CalendarUtils.v2021_05_19.CalendarEventLineIcon[] | null | undefined;
27
27
  durationMinutes?: number | undefined;
@@ -0,0 +1,24 @@
1
+ import { SpruceSchemas, ViewControllerOptions } from '@sprucelabs/heartwood-view-controllers';
2
+ import AbstractCapabilityCardViewController from './AbstractCapabilityCardViewController';
3
+ declare type Role = SpruceSchemas.Spruce.v2020_07_22.Role;
4
+ declare type ToggleHandler = (serviceId: string, isSelected: boolean) => void;
5
+ export declare type RolesCardViewControllerOptions = ViewControllerOptions & {
6
+ role: Role;
7
+ onInsertOrUpdateCapability: (values: any) => void;
8
+ onUpdateHasCapability?: ToggleHandler;
9
+ onEdit?: (row: any) => void;
10
+ };
11
+ export default class RolesCardViewController extends AbstractCapabilityCardViewController {
12
+ static id: string;
13
+ protected role: Role;
14
+ protected onInsertOrUpdateCapability: any;
15
+ constructor(options: RolesCardViewControllerOptions);
16
+ load(options: {
17
+ organizationId?: string;
18
+ shouldIncludePrivateFields?: boolean;
19
+ }): Promise<void>;
20
+ protected loadCapabilities(): Promise<void>;
21
+ protected insertOrUpdateCapability(serviceId: string, values: any, serviceCapability: SpruceSchemas.Appointments.v2021_06_23.ListRoleCapability | undefined): Promise<SpruceSchemas.Appointments.v2021_06_23.ListRoleCapability | undefined>;
22
+ getCapabilities(): SpruceSchemas.Appointments.v2021_06_23.ListRoleCapability[];
23
+ }
24
+ export {};
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const schema_1 = require("@sprucelabs/schema");
7
+ const spruce_event_utils_1 = require("@sprucelabs/spruce-event-utils");
8
+ const AbstractCapabilityCardViewController_1 = __importDefault(require("./AbstractCapabilityCardViewController"));
9
+ class RolesCardViewController extends AbstractCapabilityCardViewController_1.default {
10
+ constructor(options) {
11
+ super(options);
12
+ (0, schema_1.assertOptions)(options, ['role', 'onInsertOrUpdateCapability']);
13
+ this.role = options.role;
14
+ this.toggleDoesOfferHandler = options.onUpdateHasCapability;
15
+ this.onInsertOrUpdateCapability = options.onInsertOrUpdateCapability;
16
+ this.onEdit = options === null || options === void 0 ? void 0 : options.onEdit;
17
+ this.activeRecordCardVc = this.ActiveRecordCard(options.role);
18
+ }
19
+ async load(options) {
20
+ var _a;
21
+ await this.loadVc((_a = options.organizationId) !== null && _a !== void 0 ? _a : 'missing-org');
22
+ }
23
+ async loadCapabilities() {
24
+ const client = await this.connectToApi();
25
+ const results = await client.emit('appointments.list-role-capabilities::v2021_06_23', {
26
+ target: {
27
+ organizationId: this.organizationId,
28
+ roleId: this.role.id,
29
+ },
30
+ });
31
+ const { capabilities } = spruce_event_utils_1.eventResponseUtil.getFirstResponseOrThrow(results);
32
+ this.capabilities = capabilities;
33
+ }
34
+ async insertOrUpdateCapability(serviceId, values, serviceCapability) {
35
+ return await this.onInsertOrUpdateCapability(Object.assign(Object.assign({}, values), { serviceId, id: serviceCapability === null || serviceCapability === void 0 ? void 0 : serviceCapability.id }));
36
+ }
37
+ getCapabilities() {
38
+ return this.capabilities;
39
+ }
40
+ }
41
+ exports.default = RolesCardViewController;
42
+ RolesCardViewController.id = 'role-capabilities-card';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sprucelabs/spruce-appointment-utils",
3
3
  "description": "Utils for working with appointments and Sprucebot.",
4
- "version": "7.9.21",
4
+ "version": "8.0.2",
5
5
  "skill": {
6
6
  "namespace": "appointments"
7
7
  },
@@ -18,8 +18,8 @@
18
18
  "build/index-module.d.ts",
19
19
  "build/types-module.js",
20
20
  "build/types-module.d.ts",
21
- "build/stores/RemoteRoleCapabilityStore.d.ts",
22
- "build/stores/RemoteRoleCapabilityStore.js",
21
+ "build/capabilities/stores/RemoteRoleCapabilityStore.d.ts",
22
+ "build/capabilities/stores/RemoteRoleCapabilityStore.js",
23
23
  "build/viewControllers/AbstractCapabilityCardViewController.js",
24
24
  "build/viewControllers/AbstractCapabilityCardViewController.d.ts",
25
25
  "build/viewControllers/DurationCard.vc.js",
@@ -30,14 +30,14 @@
30
30
  "build/viewControllers/EditOverrideDetailsCard.vc.d.ts",
31
31
  "build/viewControllers/EditTimeBlockTitleCard.vc.js",
32
32
  "build/viewControllers/EditTimeBlockTitleCard.vc.d.ts",
33
- "build/viewControllers/RolesCard.vc.js",
34
- "build/viewControllers/RolesCard.vc.d.ts",
33
+ "build/viewControllers/RoleCapabilitiesCard.vc.js",
34
+ "build/viewControllers/RoleCapabilitiesCard.vc.d.ts",
35
35
  "build/esm/index-module.js",
36
36
  "build/esm/index-module.d.ts",
37
37
  "build/esm/types-module.js",
38
38
  "build/esm/types-module.d.ts",
39
- "build/esm/stores/RemoteRoleCapabilityStore.d.ts",
40
- "build/esm/stores/RemoteRoleCapabilityStore.js",
39
+ "build/esm/capabilities/stores/RemoteRoleCapabilityStore.d.ts",
40
+ "build/esm/capabilities/stores/RemoteRoleCapabilityStore.js",
41
41
  "build/esm/viewControllers/AbstractCapabilityCardViewController.js",
42
42
  "build/esm/viewControllers/AbstractCapabilityCardViewController.d.ts",
43
43
  "build/esm/viewControllers/DurationCard.vc.js",
@@ -48,8 +48,8 @@
48
48
  "build/esm/viewControllers/EditOverrideDetailsCard.vc.d.ts",
49
49
  "build/esm/viewControllers/EditTimeBlockTitleCard.vc.js",
50
50
  "build/esm/viewControllers/EditTimeBlockTitleCard.vc.d.ts",
51
- "build/esm/viewControllers/RolesCard.vc.js",
52
- "build/esm/viewControllers/RolesCard.vc.d.ts"
51
+ "build/esm/viewControllers/RoleCapabilitiesCard.vc.js",
52
+ "build/esm/viewControllers/RoleCapabilitiesCard.vc.d.ts"
53
53
  ],
54
54
  "keywords": [],
55
55
  "scripts": {