@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.
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/dialog.schema.js +9 -1
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/lockScreen.schema.d.ts +3 -0
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/lockScreen.schema.js +111 -0
- package/build/.spruce/schemas/schemas.types.d.ts +466 -294
- package/build/controllerMap.d.ts +2 -0
- package/build/controllerMap.js +2 -0
- package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/dialog.schema.js +9 -1
- package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/lockScreen.schema.d.ts +3 -0
- package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/lockScreen.schema.js +106 -0
- package/build/esm/.spruce/schemas/schemas.types.d.ts +466 -294
- package/build/esm/controllerMap.d.ts +2 -0
- package/build/esm/controllerMap.js +2 -0
- package/build/esm/index.d.ts +2 -0
- package/build/esm/index.js +2 -0
- package/build/esm/schemas/v2021_02_11/autocompleteInput.builder.d.ts +7 -7
- package/build/esm/schemas/v2021_02_11/dialog.builder.d.ts +9 -0
- package/build/esm/schemas/v2021_02_11/dialog.builder.js +8 -0
- package/build/esm/schemas/v2021_02_11/lockScreen.builder.d.ts +29728 -0
- package/build/esm/schemas/v2021_02_11/lockScreen.builder.js +19 -0
- package/build/esm/skillViewControllers/Abstract.svc.d.ts +7 -7
- package/build/esm/skillViewControllers/Abstract.svc.js +9 -0
- package/build/esm/skillViewControllers/LockScreen.svc.d.ts +13 -0
- package/build/esm/skillViewControllers/LockScreen.svc.js +33 -0
- package/build/esm/tests/AbstractViewControllerTest.d.ts +2 -2
- package/build/esm/tests/utilities/vcAssert.d.ts +1 -1
- package/build/esm/tests/utilities/vcAssert.js +1 -1
- package/build/esm/tests/utilities/vcAssert.utility.d.ts +1 -1
- package/build/esm/types/heartwood.types.d.ts +8 -1
- package/build/esm/utilities/removeUniversalViewOptions.d.ts +1 -1
- package/build/esm/utilities/removeUniversalViewOptions.js +1 -0
- package/build/esm/viewControllers/Confirm.vc.d.ts +7 -8
- package/build/esm/viewControllers/Confirm.vc.js +4 -1
- package/build/esm/viewControllers/Dialog.vc.d.ts +3 -5
- package/build/esm/viewControllers/ViewControllerFactory.d.ts +4 -1
- package/build/esm/viewControllers/ViewControllerFactory.js +8 -8
- package/build/index.d.ts +2 -0
- package/build/index.js +8 -4
- package/build/schemas/v2021_02_11/autocompleteInput.builder.d.ts +7 -7
- package/build/schemas/v2021_02_11/dialog.builder.d.ts +9 -0
- package/build/schemas/v2021_02_11/dialog.builder.js +9 -0
- package/build/schemas/v2021_02_11/lockScreen.builder.d.ts +29728 -0
- package/build/schemas/v2021_02_11/lockScreen.builder.js +28 -0
- package/build/skillViewControllers/Abstract.svc.d.ts +7 -7
- package/build/skillViewControllers/Abstract.svc.js +9 -0
- package/build/skillViewControllers/LockScreen.svc.d.ts +13 -0
- package/build/skillViewControllers/LockScreen.svc.js +26 -0
- package/build/tests/AbstractViewControllerTest.d.ts +2 -2
- package/build/tests/utilities/vcAssert.d.ts +1 -1
- package/build/tests/utilities/vcAssert.js +1 -1
- package/build/tests/utilities/vcAssert.utility.d.ts +1 -1
- package/build/types/heartwood.types.d.ts +8 -1
- package/build/utilities/removeUniversalViewOptions.d.ts +1 -1
- package/build/utilities/removeUniversalViewOptions.js +1 -0
- package/build/viewControllers/Confirm.vc.d.ts +7 -8
- package/build/viewControllers/Confirm.vc.js +4 -1
- package/build/viewControllers/Dialog.vc.d.ts +3 -5
- package/build/viewControllers/ViewControllerFactory.d.ts +4 -1
- package/build/viewControllers/ViewControllerFactory.js +8 -7
- 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 {
|
|
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
|
-
|
|
5
|
-
|
|
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
|
-
|
|
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, {
|
|
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<
|
|
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,
|
|
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
|
|
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>;
|
|
@@ -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():
|
|
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.
|
|
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
|
|
50
|
-
voteHandler: voteHandler
|
|
51
|
-
renderInDialogHandler: renderInDialogHandler
|
|
52
|
-
|
|
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": "
|
|
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.
|
|
84
|
-
"@sprucelabs/mercury-types": "^47.0.
|
|
85
|
-
"@sprucelabs/schema": "^30.0.
|
|
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.
|
|
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.
|
|
105
|
-
"@sprucelabs/mercury-event-emitter": "^42.0.
|
|
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",
|