@sprucelabs/heartwood-view-controllers 111.1.65 → 112.0.0

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.
Files changed (59) hide show
  1. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/dialog.schema.js +9 -1
  2. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/lockScreen.schema.d.ts +3 -0
  3. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/lockScreen.schema.js +111 -0
  4. package/build/.spruce/schemas/schemas.types.d.ts +466 -294
  5. package/build/controllerMap.d.ts +2 -0
  6. package/build/controllerMap.js +2 -0
  7. package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/dialog.schema.js +9 -1
  8. package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/lockScreen.schema.d.ts +3 -0
  9. package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/lockScreen.schema.js +106 -0
  10. package/build/esm/.spruce/schemas/schemas.types.d.ts +466 -294
  11. package/build/esm/controllerMap.d.ts +2 -0
  12. package/build/esm/controllerMap.js +2 -0
  13. package/build/esm/index.d.ts +2 -0
  14. package/build/esm/index.js +2 -0
  15. package/build/esm/schemas/v2021_02_11/autocompleteInput.builder.d.ts +7 -7
  16. package/build/esm/schemas/v2021_02_11/dialog.builder.d.ts +9 -0
  17. package/build/esm/schemas/v2021_02_11/dialog.builder.js +8 -0
  18. package/build/esm/schemas/v2021_02_11/lockScreen.builder.d.ts +29728 -0
  19. package/build/esm/schemas/v2021_02_11/lockScreen.builder.js +19 -0
  20. package/build/esm/skillViewControllers/Abstract.svc.d.ts +7 -7
  21. package/build/esm/skillViewControllers/Abstract.svc.js +9 -0
  22. package/build/esm/skillViewControllers/LockScreen.svc.d.ts +13 -0
  23. package/build/esm/skillViewControllers/LockScreen.svc.js +33 -0
  24. package/build/esm/tests/AbstractViewControllerTest.d.ts +2 -2
  25. package/build/esm/tests/utilities/vcAssert.d.ts +1 -1
  26. package/build/esm/tests/utilities/vcAssert.js +1 -1
  27. package/build/esm/tests/utilities/vcAssert.utility.d.ts +1 -1
  28. package/build/esm/types/heartwood.types.d.ts +8 -1
  29. package/build/esm/utilities/removeUniversalViewOptions.d.ts +1 -1
  30. package/build/esm/utilities/removeUniversalViewOptions.js +1 -0
  31. package/build/esm/viewControllers/Confirm.vc.d.ts +7 -8
  32. package/build/esm/viewControllers/Confirm.vc.js +4 -1
  33. package/build/esm/viewControllers/Dialog.vc.d.ts +3 -5
  34. package/build/esm/viewControllers/ViewControllerFactory.d.ts +4 -1
  35. package/build/esm/viewControllers/ViewControllerFactory.js +8 -8
  36. package/build/index.d.ts +2 -0
  37. package/build/index.js +8 -4
  38. package/build/schemas/v2021_02_11/autocompleteInput.builder.d.ts +7 -7
  39. package/build/schemas/v2021_02_11/dialog.builder.d.ts +9 -0
  40. package/build/schemas/v2021_02_11/dialog.builder.js +9 -0
  41. package/build/schemas/v2021_02_11/lockScreen.builder.d.ts +29728 -0
  42. package/build/schemas/v2021_02_11/lockScreen.builder.js +28 -0
  43. package/build/skillViewControllers/Abstract.svc.d.ts +7 -7
  44. package/build/skillViewControllers/Abstract.svc.js +9 -0
  45. package/build/skillViewControllers/LockScreen.svc.d.ts +13 -0
  46. package/build/skillViewControllers/LockScreen.svc.js +26 -0
  47. package/build/tests/AbstractViewControllerTest.d.ts +2 -2
  48. package/build/tests/utilities/vcAssert.d.ts +1 -1
  49. package/build/tests/utilities/vcAssert.js +1 -1
  50. package/build/tests/utilities/vcAssert.utility.d.ts +1 -1
  51. package/build/types/heartwood.types.d.ts +8 -1
  52. package/build/utilities/removeUniversalViewOptions.d.ts +1 -1
  53. package/build/utilities/removeUniversalViewOptions.js +1 -0
  54. package/build/viewControllers/Confirm.vc.d.ts +7 -8
  55. package/build/viewControllers/Confirm.vc.js +4 -1
  56. package/build/viewControllers/Dialog.vc.d.ts +3 -5
  57. package/build/viewControllers/ViewControllerFactory.d.ts +4 -1
  58. package/build/viewControllers/ViewControllerFactory.js +8 -7
  59. package/package.json +7 -7
@@ -0,0 +1,28 @@
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 skillView_builder_1 = __importDefault(require("./skillView.builder"));
8
+ exports.default = (0, schema_1.buildSchema)({
9
+ id: 'lockScreen',
10
+ name: 'lock screen',
11
+ fields: {
12
+ ...skillView_builder_1.default.fields,
13
+ controller: {
14
+ type: 'raw',
15
+ label: 'Controller',
16
+ options: {
17
+ valueType: 'HeartwoodTypes.ViewController<SpruceSchemas.HeartwoodViewControllers.v2021_02_11.LockScreen>',
18
+ },
19
+ },
20
+ skillViewController: {
21
+ type: 'raw',
22
+ label: 'Card controller',
23
+ options: {
24
+ valueType: 'HeartwoodTypes.SkillViewController',
25
+ },
26
+ },
27
+ },
28
+ });
@@ -1,12 +1,12 @@
1
- import { SpruceSchemas } from '@sprucelabs/mercury-types';
2
- import { SkillViewController, SkillViewControllerLoadOptions } from '../types/heartwood.types';
1
+ import { SkillView, SkillViewController, SkillViewControllerLoadOptions, ToolBelt, ViewControllerOptions } from '../types/heartwood.types';
3
2
  import AbstractViewController from '../viewControllers/Abstract.vc';
4
- type SkillView = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.SkillView;
5
- type ToolBelt = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.ToolBelt;
6
- export default abstract class AbstractSkillViewController<Args extends Record<string, any> = Record<string, any>> extends AbstractViewController<SkillView> implements SkillViewController {
3
+ import { LockScreenSkillViewControllerOptions } from './LockScreen.svc';
4
+ export default abstract class AbstractSkillViewController<Args extends Record<string, any> = Record<string, any>, ViewModel extends Record<string, any> = SkillView> extends AbstractViewController<ViewModel> implements SkillViewController {
7
5
  static id: string;
8
6
  protected title?: string;
9
7
  protected subtitle?: string;
8
+ private renderLockScreenHandler;
9
+ constructor(options: ViewControllerOptions);
10
10
  load(options: SkillViewControllerLoadOptions<Args>): Promise<void>;
11
11
  focus(): Promise<void>;
12
12
  blur(): Promise<void>;
@@ -15,6 +15,6 @@ export default abstract class AbstractSkillViewController<Args extends Record<st
15
15
  protected setSubtitle(subtitle: string | null | undefined): void;
16
16
  getSubtitle(): string | undefined;
17
17
  renderToolBelt(): ToolBelt | null;
18
- abstract render(): SkillView;
18
+ protected renderLockScreen(options: LockScreenSkillViewControllerOptions): import("./LockScreen.svc").default;
19
+ abstract render(): ViewModel;
19
20
  }
20
- export {};
@@ -5,6 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const Abstract_vc_1 = __importDefault(require("../viewControllers/Abstract.vc"));
7
7
  class AbstractSkillViewController extends Abstract_vc_1.default {
8
+ constructor(options) {
9
+ super(options);
10
+ this.renderLockScreenHandler = options.renderLockScreenHandler;
11
+ }
8
12
  async load(options) { }
9
13
  async focus() { }
10
14
  async blur() { }
@@ -25,5 +29,10 @@ class AbstractSkillViewController extends Abstract_vc_1.default {
25
29
  renderToolBelt() {
26
30
  return null;
27
31
  }
32
+ renderLockScreen(options) {
33
+ const controller = this.Controller('lock-screen', { ...options });
34
+ this.renderLockScreenHandler(controller.render());
35
+ return controller;
36
+ }
28
37
  }
29
38
  exports.default = AbstractSkillViewController;
@@ -0,0 +1,13 @@
1
+ import { LockScreen, SkillView, ViewControllerOptions } from '../types/heartwood.types';
2
+ import AbstractSkillViewController from './Abstract.svc';
3
+ export default class LockScreenSkillViewController extends AbstractSkillViewController<Record<string, any>, LockScreen> {
4
+ private skillViewController?;
5
+ private onHideHandler?;
6
+ constructor(options: ViewControllerOptions & LockScreen);
7
+ setOnHideHandler(onHideHandler: OnHideHandler): void;
8
+ hide(): Promise<void>;
9
+ render(): LockScreen;
10
+ }
11
+ export type LockScreenSkillViewControllerOptions = SkillView;
12
+ type OnHideHandler = () => Promise<void> | void;
13
+ export {};
@@ -0,0 +1,26 @@
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 Abstract_svc_1 = __importDefault(require("./Abstract.svc"));
7
+ class LockScreenSkillViewController extends Abstract_svc_1.default {
8
+ constructor(options) {
9
+ super(options);
10
+ const { controller } = options;
11
+ this.skillViewController = controller;
12
+ }
13
+ setOnHideHandler(onHideHandler) {
14
+ this.onHideHandler = onHideHandler;
15
+ }
16
+ async hide() {
17
+ await this.onHideHandler?.();
18
+ }
19
+ render() {
20
+ return {
21
+ controller: this,
22
+ skillViewController: this.skillViewController ?? this,
23
+ };
24
+ }
25
+ }
26
+ exports.default = LockScreenSkillViewController;
@@ -3,7 +3,7 @@ import AbstractSpruceTest from '@sprucelabs/test-utils';
3
3
  import EventFaker from '../__tests__/support/EventFaker';
4
4
  import { ControllerOptions, ViewController, ViewControllerMap } from '../types/heartwood.types';
5
5
  import { RenderOptions } from '../utilities/render.utility';
6
- import ViewControllerFactory, { ViewControllerFactoryConstructorOptions } from '../viewControllers/ViewControllerFactory';
6
+ import ViewControllerFactory, { ViewControllerFactoryOptions } from '../viewControllers/ViewControllerFactory';
7
7
  import MercuryFixture from './fixtures/MercuryFixture';
8
8
  export default abstract class AbstractViewControllerTest extends AbstractSpruceTest {
9
9
  protected static controllerMap: Record<string, any>;
@@ -14,7 +14,7 @@ export default abstract class AbstractViewControllerTest extends AbstractSpruceT
14
14
  protected static get mercury(): MercuryFixture;
15
15
  protected static beforeEach(): Promise<void>;
16
16
  protected static afterEach(): Promise<void>;
17
- protected static Factory(options?: Partial<ViewControllerFactoryConstructorOptions>): ViewControllerFactory;
17
+ protected static Factory(options?: Partial<ViewControllerFactoryOptions>): ViewControllerFactory;
18
18
  protected static getFactory(): ViewControllerFactory;
19
19
  protected static Controller<N extends keyof ViewControllerMap>(name: N, options: ControllerOptions<N>): ViewControllerMap[N];
20
20
  protected static render<Vc extends ViewController<any>>(vc: Vc, options?: RenderOptions): ReturnType<Vc["render"]>;
@@ -256,7 +256,7 @@ declare const vcAssert: {
256
256
  * @deprecated vcAssert.assertIsActiveRecordCard(...) -> activeRecordCardAssert.isActiveRecordCard(...)
257
257
  */
258
258
  assertIsActiveRecordCard(vc: ViewController<Card>): void;
259
- assertControllerInstanceOf<Controller extends ViewController<any>>(vc: ViewController<any> | null, Class: new (...arg: any[]) => Controller): Controller;
259
+ assertControllerInstanceOf<Controller extends ViewController<any>>(vc: ViewController<any> | null | undefined, Class: new (...arg: any[]) => Controller): Controller;
260
260
  assertRendersAsInstanceOf<Controller extends ViewController<any>>(vc: ViewController<any>, Class: new (...args: any[]) => Controller): Controller;
261
261
  assertCardRendersStats(vc: ViewController<Card>): StatsViewController;
262
262
  assertStatsRendersValue(vc: StatsViewController, idx: number, value: number | string): void;
@@ -861,7 +861,7 @@ const vcAssert = {
861
861
  return activeRecordCardAssert_1.default.rendersAsActiveRecordCard(vc);
862
862
  },
863
863
  assertControllerInstanceOf(vc, Class) {
864
- test_utils_1.assert.isTruthy(vc, 'Expected a vc but received null!');
864
+ test_utils_1.assert.isTruthy(vc, `Expected a vc but received '${vc}'!`);
865
865
  const match = (0, assertSupport_1.isVcInstanceOf)(vc, Class);
866
866
  test_utils_1.assert.isTruthy(match, `Expected your ${Object.getPrototypeOf(vc)?.constructor?.name ??
867
867
  'view controller'} to be an instance of ${Class.name}, but it wasn't!`);
@@ -100,7 +100,7 @@ declare const vcAssertUtil: {
100
100
  assertRowRendersRatings(listVc: import("../..").ViewController<import("../..").List>, row: string | number): void;
101
101
  assertSkillViewRendersActiveRecordCard(svc: import("../..").SkillViewController, id?: string): import("../..").ActiveRecordCardViewController;
102
102
  assertIsActiveRecordCard(vc: import("../..").ViewController<import("../..").Card>): void;
103
- assertControllerInstanceOf<Controller extends import("../..").ViewController<any>>(vc: import("../..").ViewController<any> | null, Class: new (...arg: any[]) => Controller): Controller;
103
+ assertControllerInstanceOf<Controller extends import("../..").ViewController<any>>(vc: import("../..").ViewController<any> | null | undefined, Class: new (...arg: any[]) => Controller): Controller;
104
104
  assertRendersAsInstanceOf<Controller extends import("../..").ViewController<any>>(vc: import("../..").ViewController<any>, Class: new (...args: any[]) => Controller): Controller;
105
105
  assertCardRendersStats(vc: import("../..").ViewController<import("../..").Card>): import("../..").StatsViewController;
106
106
  assertStatsRendersValue(vc: import("../..").StatsViewController, idx: number, value: number | string): void;
@@ -6,6 +6,7 @@ import { Log } from '@sprucelabs/spruce-skill-utils';
6
6
  import { BarChartViewController, CalendarEventOptions, PagerViewController } from '..';
7
7
  import { fancyIcons, lineIcons } from '../constants';
8
8
  import mapUtil from '../maps/map.utility';
9
+ import LockScreenSkillViewController, { LockScreenSkillViewControllerOptions } from '../skillViewControllers/LockScreen.svc';
9
10
  import { UniversalViewOptionFields } from '../utilities/removeUniversalViewOptions';
10
11
  import ActiveRecordCardViewController, { ActiveRecordCardViewControllerOptions } from '../viewControllers/activeRecord/ActiveRecordCard.vc';
11
12
  import ActiveRecordListViewController, { ActiveRecordListViewControllerOptions } from '../viewControllers/activeRecord/ActiveRecordList.vc';
@@ -148,10 +149,12 @@ export type LatLng = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.LatLng;
148
149
  export type List = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.List;
149
150
  export type ListRow = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.ListRow;
150
151
  export type ListCell = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.ListCell;
152
+ export type Dialog = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Dialog;
151
153
  export type Receipt = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Receipt;
152
154
  export type Pager = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Pager;
153
155
  export type Slide = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.CardSection;
154
156
  export type SkillView = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.SkillView;
157
+ export type LockScreen = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.LockScreen;
155
158
  export type Calendar = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Calendar;
156
159
  export type CalendarPerson = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.CalendarPerson;
157
160
  export type CardFooter = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.CardFooter;
@@ -190,7 +193,7 @@ export type ButtonGroupButton = Omit<Button, 'onClick' | 'onClickHintIcon'> & {
190
193
  id: string;
191
194
  };
192
195
  export type LineIconPosition = NonNullable<Button['lineIconPosition']>;
193
- export interface SkillViewController<Args extends Record<string, any> = Record<string, any>> extends ViewController<SkillView> {
196
+ export interface SkillViewController<Args extends Record<string, any> = Record<string, any>, ViewModel extends Record<string, any> = SkillView> extends ViewController<ViewModel> {
194
197
  getIsLoginRequired?(): Promise<boolean>;
195
198
  focus?(): Promise<void>;
196
199
  /**
@@ -301,6 +304,7 @@ export interface ViewControllerMap {
301
304
  'polar-area': PolarAreaViewController;
302
305
  pager: PagerViewController;
303
306
  'bar-chart': BarChartViewController;
307
+ 'lock-screen': LockScreenSkillViewController;
304
308
  }
305
309
  export interface ViewControllerOptionsMap {
306
310
  form: FormViewControllerOptions<any>;
@@ -343,6 +347,7 @@ export interface ViewControllerOptionsMap {
343
347
  'polar-area': PolarAreaViewControllerOptions;
344
348
  pager: PagerViewControllerOptions;
345
349
  'bar-chart': BarChartViewControllerOptions;
350
+ 'lock-screen': LockScreenSkillViewControllerOptions;
346
351
  }
347
352
  export interface SkillViewControllerMap {
348
353
  }
@@ -361,6 +366,7 @@ export interface OnRenderHandler {
361
366
  onRender?(): void;
362
367
  }
363
368
  export type RenderInDialogHandler = (options: DialogViewControllerOptions) => void;
369
+ export type RenderLockScreenHandler = (options: LockScreen) => void;
364
370
  export interface ConfirmOptions {
365
371
  title?: string;
366
372
  subtitle?: string;
@@ -395,6 +401,7 @@ export interface ViewControllerOptions {
395
401
  vcFactory: ViewControllerFactory;
396
402
  connectToApi: () => Promise<Client>;
397
403
  renderInDialogHandler: RenderInDialogHandler;
404
+ renderLockScreenHandler: RenderLockScreenHandler;
398
405
  confirmHandler: ConfirmHandler;
399
406
  voteHandler: VoteHandler;
400
407
  toastHandler: ToastHandler;
@@ -1,3 +1,3 @@
1
- export declare const universalViewOptionFields: readonly ["vcFactory", "renderInDialogHandler", "confirmHandler", "voteHandler", "connectToApi", "device", "dates", "maps", "toastHandler", "log", "plugins"];
1
+ export declare const universalViewOptionFields: readonly ["vcFactory", "renderInDialogHandler", "confirmHandler", "voteHandler", "connectToApi", "device", "dates", "maps", "toastHandler", "log", "plugins", "renderLockScreenHandler"];
2
2
  export type UniversalViewOptionFields = (typeof universalViewOptionFields)[number];
3
3
  export default function removeUniversalViewOptions<R extends Record<string, any>>(rendered: R): Omit<R, UniversalViewOptionFields>;
@@ -14,6 +14,7 @@ exports.universalViewOptionFields = [
14
14
  'toastHandler',
15
15
  'log',
16
16
  'plugins',
17
+ 'renderLockScreenHandler',
17
18
  ];
18
19
  function removeUniversalViewOptions(rendered) {
19
20
  const { ...options } = rendered;
@@ -1,18 +1,17 @@
1
- import { ConfirmOptions, ViewControllerOptions } from '../types/heartwood.types';
1
+ import { ConfirmOptions, Dialog, ViewControllerOptions } from '../types/heartwood.types';
2
2
  import AbstractViewController from './Abstract.vc';
3
- import { DialogOptions } from './Dialog.vc';
4
- export type Dialog = DialogOptions;
5
- export type ConfirmViewControllerOptions = ConfirmOptions & {
6
- onAccept: () => void;
7
- onDecline: () => void;
8
- };
9
3
  export default class ConfirmViewController extends AbstractViewController<Dialog> {
10
4
  private dialogVc;
11
5
  private acceptHandler;
12
6
  private declineHandler;
13
7
  constructor(options: ConfirmOptions & ViewControllerOptions & ConfirmViewControllerOptions);
8
+ private DialogVc;
14
9
  handleDecline(): void;
15
10
  handleAccept(): void;
16
11
  hide(): Promise<void>;
17
- render(): DialogOptions;
12
+ render(): Dialog;
18
13
  }
14
+ export type ConfirmViewControllerOptions = ConfirmOptions & {
15
+ onAccept: () => void;
16
+ onDecline: () => void;
17
+ };
@@ -23,7 +23,10 @@ class ConfirmViewController extends Abstract_vc_1.default {
23
23
  title: options.message,
24
24
  });
25
25
  }
26
- this.dialogVc = this.Controller('dialog', {
26
+ this.dialogVc = this.DialogVc(options, body);
27
+ }
28
+ DialogVc(options, body) {
29
+ return this.Controller('dialog', {
27
30
  isVisible: true,
28
31
  shouldShowCloseButton: false,
29
32
  header: options.title || options.subtitle
@@ -1,11 +1,6 @@
1
1
  import { SpruceSchemas } from '@sprucelabs/mercury-types';
2
2
  import { ViewController, ViewControllerOptions } from '../types/heartwood.types';
3
3
  import AbstractViewController from './Abstract.vc';
4
- export type DialogOptions = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Card & SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Dialog & {
5
- closeHandler?: () => void;
6
- };
7
- export type Dialog = DialogOptions;
8
- export type DialogViewControllerOptions = Omit<Dialog, 'closeHandler'>;
9
4
  export default class DialogViewController extends AbstractViewController<Dialog> {
10
5
  private closeResolver?;
11
6
  private closePromise?;
@@ -25,3 +20,6 @@ export default class DialogViewController extends AbstractViewController<Dialog>
25
20
  wait(): Promise<void>;
26
21
  render(): Dialog;
27
22
  }
23
+ export type DialogOptions = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Card & SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Dialog;
24
+ export type Dialog = DialogOptions;
25
+ export type DialogViewControllerOptions = Omit<Dialog, 'closeHandler'>;
@@ -1,6 +1,6 @@
1
1
  import { DateUtil } from '@sprucelabs/calendar-utils';
2
2
  import { Log } from '@sprucelabs/spruce-skill-utils';
3
- import { ConfirmHandler, ControllerOptions, ImportedViewController, RenderInDialogHandler, ViewController, ViewControllerMap, ViewControllerId, VoteHandler, Device, MapUtil, ViewControllerConstructor, ToastHandler, ViewControllerPlugins, ViewControllerPluginsByName, ConnectToApi, ViewControllerPlugin, ViewControllerPluginOptions, ViewControllerOptions, AppController, AppControllerConstructor, AppControllerId, AppControllerMap } from '../types/heartwood.types';
3
+ import { ConfirmHandler, ControllerOptions, ImportedViewController, RenderInDialogHandler, ViewController, ViewControllerMap, ViewControllerId, VoteHandler, Device, MapUtil, ViewControllerConstructor, ToastHandler, ViewControllerPlugins, ViewControllerPluginsByName, ConnectToApi, ViewControllerPlugin, ViewControllerPluginOptions, ViewControllerOptions, AppController, AppControllerConstructor, AppControllerId, AppControllerMap, RenderLockScreenHandler } from '../types/heartwood.types';
4
4
  export default class ViewControllerFactory {
5
5
  static Class?: typeof ViewControllerFactory;
6
6
  private controllerMap;
@@ -15,6 +15,7 @@ export default class ViewControllerFactory {
15
15
  protected log?: Log;
16
16
  protected plugins: ViewControllerPlugins;
17
17
  private AppMap;
18
+ private renderLockScreenHandler;
18
19
  constructor(options: ViewControllerFactoryConstructorOptions);
19
20
  setRenderInDialogHandler(handler: RenderInDialogHandler): void;
20
21
  setConfirmHandler(handler: ConfirmHandler): void;
@@ -40,6 +41,7 @@ export default class ViewControllerFactory {
40
41
  export interface ViewControllerFactoryOptions {
41
42
  controllerMap?: Record<string, any>;
42
43
  renderInDialogHandler?: RenderInDialogHandler;
44
+ renderLockScreenHandler?: RenderLockScreenHandler;
43
45
  voteHandler?: VoteHandler;
44
46
  confirmHandler?: ConfirmHandler;
45
47
  toastHandler?: ToastHandler;
@@ -53,6 +55,7 @@ export interface ViewControllerFactoryOptions {
53
55
  export interface ViewControllerFactoryConstructorOptions {
54
56
  controllerMap: Record<string, any>;
55
57
  renderInDialogHandler: RenderInDialogHandler;
58
+ renderLockScreenHandler: RenderLockScreenHandler;
56
59
  connectToApi: ConnectToApi;
57
60
  confirmHandler: ConfirmHandler;
58
61
  voteHandler: VoteHandler;
@@ -13,9 +13,10 @@ class ViewControllerFactory {
13
13
  constructor(options) {
14
14
  this.plugins = {};
15
15
  this.AppMap = {};
16
- const { controllerMap, renderInDialogHandler, confirmHandler, connectToApi, voteHandler, device, dates, maps, toastHandler, log, pluginsByName, } = options;
16
+ const { controllerMap, renderInDialogHandler, renderLockScreenHandler, confirmHandler, connectToApi, voteHandler, device, dates, maps, toastHandler, log, pluginsByName, } = options;
17
17
  this.controllerMap = { ...controllerMap, ...controllerMap_1.CORE_CONTROLLER_MAP };
18
18
  this.renderInDialogHandler = renderInDialogHandler;
19
+ this.renderLockScreenHandler = renderLockScreenHandler;
19
20
  this.confirmHandler = confirmHandler;
20
21
  this.connectToApi = connectToApi;
21
22
  this.voteHandler = voteHandler;
@@ -36,7 +37,7 @@ class ViewControllerFactory {
36
37
  this.voteHandler = handler;
37
38
  }
38
39
  static Factory(options) {
39
- const { controllerMap = {}, renderInDialogHandler, confirmHandler, connectToApi, voteHandler, device, dates, maps, toastHandler, log, pluginsByName, } = (0, schema_1.assertOptions)(options, ['connectToApi', 'device']);
40
+ const { controllerMap = {}, renderInDialogHandler, renderLockScreenHandler, confirmHandler, connectToApi, voteHandler, device, dates, maps, toastHandler, log, pluginsByName, } = (0, schema_1.assertOptions)(options, ['connectToApi', 'device']);
40
41
  return new (this.Class ?? this)({
41
42
  controllerMap,
42
43
  connectToApi,
@@ -46,11 +47,10 @@ class ViewControllerFactory {
46
47
  log,
47
48
  pluginsByName,
48
49
  toastHandler: toastHandler ?? (() => { }),
49
- confirmHandler: confirmHandler ? confirmHandler : async () => false,
50
- voteHandler: voteHandler ? voteHandler : async () => { },
51
- renderInDialogHandler: renderInDialogHandler
52
- ? renderInDialogHandler
53
- : () => { },
50
+ confirmHandler: confirmHandler ?? (async () => false),
51
+ voteHandler: voteHandler ?? (async () => { }),
52
+ renderInDialogHandler: renderInDialogHandler ?? (() => { }),
53
+ renderLockScreenHandler: renderLockScreenHandler ?? (() => { }),
54
54
  });
55
55
  }
56
56
  setController(name, Class) {
@@ -158,6 +158,7 @@ class ViewControllerFactory {
158
158
  ...this.sharedConstructorOptions(name),
159
159
  renderInDialogHandler: this.renderInDialogHandler,
160
160
  confirmHandler: this.confirmHandler,
161
+ renderLockScreenHandler: this.renderLockScreenHandler,
161
162
  voteHandler: options?.voteHandler ?? this.voteHandler,
162
163
  toastHandler: this.toastHandler,
163
164
  };
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "sideEffects": false,
14
14
  "license": "MIT",
15
15
  "description": "All the power of Heartwood in one, convenient package.",
16
- "version": "111.1.65",
16
+ "version": "112.0.0",
17
17
  "skill": {
18
18
  "namespace": "HeartwoodViewControllers",
19
19
  "commandOverrides": {
@@ -80,11 +80,11 @@
80
80
  "@sprucelabs/calendar-utils": "^42.0.526",
81
81
  "@sprucelabs/error": "^6.0.551",
82
82
  "@sprucelabs/globby": "^2.0.499",
83
- "@sprucelabs/mercury-core-events": "^25.0.75",
84
- "@sprucelabs/mercury-types": "^47.0.622",
85
- "@sprucelabs/schema": "^30.0.583",
83
+ "@sprucelabs/mercury-core-events": "^25.0.76",
84
+ "@sprucelabs/mercury-types": "^47.0.623",
85
+ "@sprucelabs/schema": "^30.0.584",
86
86
  "@sprucelabs/spruce-core-schemas": "^40.1.569",
87
- "@sprucelabs/spruce-event-utils": "^40.1.346",
87
+ "@sprucelabs/spruce-event-utils": "^40.1.347",
88
88
  "@sprucelabs/spruce-skill-utils": "^31.0.647",
89
89
  "@sprucelabs/test-utils": "^5.1.520",
90
90
  "@swc/core": "1.2.103",
@@ -101,8 +101,8 @@
101
101
  "devDependencies": {
102
102
  "@sprucelabs/esm-postbuild": "^6.0.529",
103
103
  "@sprucelabs/jest-json-reporter": "^8.0.553",
104
- "@sprucelabs/mercury-client": "^42.0.630",
105
- "@sprucelabs/mercury-event-emitter": "^42.0.630",
104
+ "@sprucelabs/mercury-client": "^42.0.631",
105
+ "@sprucelabs/mercury-event-emitter": "^42.0.631",
106
106
  "@sprucelabs/resolve-path-aliases": "^2.0.520",
107
107
  "@sprucelabs/semantic-release": "^5.0.2",
108
108
  "@sprucelabs/test": "^9.0.63",