@sprucelabs/heartwood-view-controllers 112.0.1 → 112.1.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/esm/index.d.ts +1 -0
- package/build/esm/index.js +1 -0
- package/build/esm/skillViewControllers/LockScreen.svc.d.ts +7 -5
- package/build/esm/skillViewControllers/LockScreen.svc.js +11 -3
- package/build/esm/tests/utilities/assertSupport.d.ts +4 -1
- package/build/esm/tests/utilities/assertSupport.js +9 -0
- package/build/esm/tests/utilities/lockScreenAssert.d.ts +7 -0
- package/build/esm/tests/utilities/lockScreenAssert.js +35 -0
- package/build/esm/tests/utilities/vcAssert.js +4 -0
- package/build/esm/types/heartwood.types.d.ts +1 -2
- package/build/esm/viewControllers/Abstract.ac.d.ts +5 -0
- package/build/esm/viewControllers/Abstract.ac.js +9 -1
- package/build/esm/viewControllers/Abstract.vc.d.ts +3 -2
- package/build/esm/viewControllers/ViewControllerFactory.d.ts +3 -3
- package/build/index.d.ts +1 -0
- package/build/index.js +6 -4
- package/build/skillViewControllers/LockScreen.svc.d.ts +7 -5
- package/build/skillViewControllers/LockScreen.svc.js +11 -3
- package/build/tests/utilities/assertSupport.d.ts +4 -1
- package/build/tests/utilities/assertSupport.js +10 -0
- package/build/tests/utilities/lockScreenAssert.d.ts +7 -0
- package/build/tests/utilities/lockScreenAssert.js +26 -0
- package/build/tests/utilities/vcAssert.js +4 -0
- package/build/types/heartwood.types.d.ts +1 -2
- package/build/viewControllers/Abstract.ac.d.ts +5 -0
- package/build/viewControllers/Abstract.ac.js +8 -1
- package/build/viewControllers/Abstract.vc.d.ts +3 -2
- package/build/viewControllers/ViewControllerFactory.d.ts +3 -3
- package/package.json +1 -1
package/build/esm/index.d.ts
CHANGED
|
@@ -56,6 +56,7 @@ export { default as buildActiveRecordCard } from './builders/buildActiveRecordCa
|
|
|
56
56
|
export { default as buildActiveRecordList } from './builders/buildActiveRecordList';
|
|
57
57
|
export { default as activeRecordCardAssert } from './tests/utilities/activeRecordCardAssert';
|
|
58
58
|
export { default as MockActiveRecordCard } from './tests/MockActiveRecordCard';
|
|
59
|
+
export { default as lockScreenAssert } from './tests/utilities/lockScreenAssert';
|
|
59
60
|
export { default as PolarAreaViewController } from './viewControllers/PolarAreaViewController.vc';
|
|
60
61
|
export { default as AuthenticatorImpl } from './auth/Authenticator';
|
|
61
62
|
export { default as buildBigForm } from './builders/buildBigForm';
|
package/build/esm/index.js
CHANGED
|
@@ -55,6 +55,7 @@ export { default as buildActiveRecordCard } from './builders/buildActiveRecordCa
|
|
|
55
55
|
export { default as buildActiveRecordList } from './builders/buildActiveRecordList.js';
|
|
56
56
|
export { default as activeRecordCardAssert } from './tests/utilities/activeRecordCardAssert.js';
|
|
57
57
|
export { default as MockActiveRecordCard } from './tests/MockActiveRecordCard.js';
|
|
58
|
+
export { default as lockScreenAssert } from './tests/utilities/lockScreenAssert.js';
|
|
58
59
|
export { default as PolarAreaViewController } from './viewControllers/PolarAreaViewController.vc.js';
|
|
59
60
|
export { default as AuthenticatorImpl } from './auth/Authenticator.js';
|
|
60
61
|
export { default as buildBigForm } from './builders/buildBigForm.js';
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { LockScreen, SkillView, ViewControllerOptions } from '../types/heartwood.types';
|
|
1
|
+
import { LockScreen, SkillView, SkillViewController, ViewControllerOptions } from '../types/heartwood.types';
|
|
2
2
|
import AbstractSkillViewController from './Abstract.svc';
|
|
3
3
|
export default class LockScreenSkillViewController extends AbstractSkillViewController<Record<string, any>, LockScreen> {
|
|
4
4
|
private skillViewController?;
|
|
5
|
-
private
|
|
5
|
+
private hideHandler?;
|
|
6
|
+
private isVisible;
|
|
6
7
|
constructor(options: ViewControllerOptions & LockScreen);
|
|
7
|
-
|
|
8
|
+
setHideHindler(hideHandler: HideDialogHandler): void;
|
|
8
9
|
hide(): Promise<void>;
|
|
10
|
+
getSkillViewVc(): SkillViewController<Record<string, any>, import("@sprucelabs/mercury-types").SpruceSchemas.HeartwoodViewControllers.v2021_02_11.SkillView> | undefined;
|
|
11
|
+
getIsVisible(): boolean;
|
|
9
12
|
render(): LockScreen;
|
|
10
13
|
}
|
|
11
14
|
export type LockScreenSkillViewControllerOptions = SkillView;
|
|
12
|
-
type
|
|
13
|
-
export {};
|
|
15
|
+
export type HideDialogHandler = () => Promise<void> | void;
|
|
@@ -11,18 +11,26 @@ import AbstractSkillViewController from './Abstract.svc.js';
|
|
|
11
11
|
export default class LockScreenSkillViewController extends AbstractSkillViewController {
|
|
12
12
|
constructor(options) {
|
|
13
13
|
super(options);
|
|
14
|
+
this.isVisible = true;
|
|
14
15
|
const { controller } = options;
|
|
15
16
|
this.skillViewController = controller;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
this.
|
|
18
|
+
setHideHindler(hideHandler) {
|
|
19
|
+
this.hideHandler = hideHandler;
|
|
19
20
|
}
|
|
20
21
|
hide() {
|
|
21
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
23
|
var _a;
|
|
23
|
-
yield ((_a = this.
|
|
24
|
+
yield ((_a = this.hideHandler) === null || _a === void 0 ? void 0 : _a.call(this));
|
|
25
|
+
this.isVisible = false;
|
|
24
26
|
});
|
|
25
27
|
}
|
|
28
|
+
getSkillViewVc() {
|
|
29
|
+
return this.skillViewController;
|
|
30
|
+
}
|
|
31
|
+
getIsVisible() {
|
|
32
|
+
return this.isVisible;
|
|
33
|
+
}
|
|
26
34
|
render() {
|
|
27
35
|
var _a;
|
|
28
36
|
return {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { SelectChoice } from '@sprucelabs/schema';
|
|
2
2
|
import { SpruceSchemas } from '@sprucelabs/spruce-core-schemas';
|
|
3
|
+
import AppController from '../../__tests__/testDirsAndFiles/skill_with_app/src/App.ac';
|
|
3
4
|
import { ConfirmOptions, ViewController, Router, CardSection, Card, TriggerRenderHandler, RouterDestination } from '../../types/heartwood.types';
|
|
5
|
+
import AbstractAppController from '../../viewControllers/Abstract.ac';
|
|
4
6
|
export type Vc = ViewController<any>;
|
|
5
7
|
export declare const WAIT_TIMEOUT = 5000;
|
|
6
8
|
export interface AssertConfirmViewController {
|
|
@@ -24,7 +26,8 @@ export interface ButtonViewController {
|
|
|
24
26
|
triggerRender(): void;
|
|
25
27
|
setTriggerRenderHandler(handler: TriggerRenderHandler): void;
|
|
26
28
|
}
|
|
27
|
-
export declare function getVcName(vc: ViewController<any>): any;
|
|
29
|
+
export declare function getVcName(vc: ViewController<any> | AbstractAppController | AppController): any;
|
|
30
|
+
export declare function getControllerType(vc: ViewController<any> | AbstractAppController | AppController): "App" | "SkillView" | "ViewController";
|
|
28
31
|
export declare function wait(...promises: (Promise<any> | undefined | any)[]): Promise<any>;
|
|
29
32
|
export declare function assertToolInstanceOf(tool: SpruceSchemas.HeartwoodViewControllers.v2021_02_11.ToolBeltTool, Class: any): ViewController<any>;
|
|
30
33
|
export declare function isVcInstanceOf<C>(vc: any, Class: new () => C): C | false;
|
|
@@ -8,7 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { assert } from '@sprucelabs/test-utils';
|
|
11
|
+
import AbstractSkillViewController from '../../skillViewControllers/Abstract.svc.js';
|
|
11
12
|
import renderUtil from '../../utilities/render.utility.js';
|
|
13
|
+
import AbstractAppController from '../../viewControllers/Abstract.ac.js';
|
|
12
14
|
import sectionIdOrIdxToIdx from '../../viewControllers/card/sectionIdOrIdxToIdx.js';
|
|
13
15
|
export const WAIT_TIMEOUT = 5000;
|
|
14
16
|
export function pluckAllFromView(model, key) {
|
|
@@ -31,6 +33,13 @@ export function getVcName(vc) {
|
|
|
31
33
|
//@ts-ignore
|
|
32
34
|
(_e = vc.costructor) === null || _e === void 0 ? void 0 : _e.name) !== null && _f !== void 0 ? _f : `view controller`);
|
|
33
35
|
}
|
|
36
|
+
export function getControllerType(vc) {
|
|
37
|
+
return vc instanceof AbstractAppController
|
|
38
|
+
? 'App'
|
|
39
|
+
: vc instanceof AbstractSkillViewController
|
|
40
|
+
? 'SkillView'
|
|
41
|
+
: 'ViewController';
|
|
42
|
+
}
|
|
34
43
|
export function wait(...promises) {
|
|
35
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
45
|
return new Promise((resolve, reject) => {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import AbstractSkillViewController from '../../skillViewControllers/Abstract.svc';
|
|
2
|
+
import LockScreenSkillViewController from '../../skillViewControllers/LockScreen.svc';
|
|
3
|
+
import AbstractAppController from '../../viewControllers/Abstract.ac';
|
|
4
|
+
declare const lockScreenAssert: {
|
|
5
|
+
actionRendersLockScreen(svcOrApp: AbstractSkillViewController | AbstractAppController, action: () => Promise<void> | void): Promise<LockScreenSkillViewController>;
|
|
6
|
+
};
|
|
7
|
+
export default lockScreenAssert;
|
|
@@ -0,0 +1,35 @@
|
|
|
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 { assert } from '@sprucelabs/test-utils';
|
|
12
|
+
import { getControllerType, getVcName } from './assertSupport.js';
|
|
13
|
+
const lockScreenAssert = {
|
|
14
|
+
actionRendersLockScreen(svcOrApp, action) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
assertOptions({
|
|
17
|
+
svcOrApp,
|
|
18
|
+
action,
|
|
19
|
+
}, ['svcOrApp', 'action']);
|
|
20
|
+
let lockScreen;
|
|
21
|
+
const originalRenderLockScreen =
|
|
22
|
+
//@ts-ignore
|
|
23
|
+
svcOrApp.renderLockScreen.bind(svcOrApp);
|
|
24
|
+
//@ts-ignore
|
|
25
|
+
svcOrApp.renderLockScreen = (options) => {
|
|
26
|
+
lockScreen = originalRenderLockScreen(options);
|
|
27
|
+
return lockScreen;
|
|
28
|
+
};
|
|
29
|
+
yield action();
|
|
30
|
+
assert.isTruthy(lockScreen, `You did not call this.renderLockScreen in your ${getControllerType(svcOrApp)} called ${getVcName(svcOrApp)}`);
|
|
31
|
+
return lockScreen;
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
export default lockScreenAssert;
|
|
@@ -11,6 +11,7 @@ import { assertOptions, validateSchemaValues } from '@sprucelabs/schema';
|
|
|
11
11
|
import { assert } from '@sprucelabs/test-utils';
|
|
12
12
|
import cardSchema from './../../.spruce/schemas/heartwoodViewControllers/v2021_02_11/card.schema.js';
|
|
13
13
|
import { CORE_CONTROLLER_MAP } from '../../controllerMap.js';
|
|
14
|
+
import LockScreenSkillViewController from '../../skillViewControllers/LockScreen.svc.js';
|
|
14
15
|
import renderUtil from '../../utilities/render.utility.js';
|
|
15
16
|
import DialogViewController from '../../viewControllers/Dialog.vc.js';
|
|
16
17
|
import ListViewController from '../../viewControllers/list/List.vc.js';
|
|
@@ -919,6 +920,9 @@ const vcAssert = {
|
|
|
919
920
|
if (vc instanceof DialogViewController) {
|
|
920
921
|
vc = vc.getCardVc();
|
|
921
922
|
}
|
|
923
|
+
else if (vc instanceof LockScreenSkillViewController) {
|
|
924
|
+
vc = vc.getSkillViewVc();
|
|
925
|
+
}
|
|
922
926
|
const model = renderUtil.render(vc);
|
|
923
927
|
assert.isTruthy(model.controller, `Your view controller does not return a controller. Make sure you return 'controller:this' from render() or that you're rending a built in view with 'render() { return this.cardVc.render() }'.`);
|
|
924
928
|
try {
|
|
@@ -361,7 +361,6 @@ export interface OpenNavigationOptions {
|
|
|
361
361
|
to: AddressFieldValue;
|
|
362
362
|
}
|
|
363
363
|
export type SkillViewControllerArgs<N extends SkillViewControllerId, O extends SkillViewControllerArgsMap = SkillViewControllerArgsMap> = N extends keyof O ? O[N] : Record<string, never>;
|
|
364
|
-
export type Client = MercuryClient;
|
|
365
364
|
export interface OnRenderHandler {
|
|
366
365
|
onRender?(): void;
|
|
367
366
|
}
|
|
@@ -399,7 +398,7 @@ export interface FormInputViewController<View extends Record<string, any> = any>
|
|
|
399
398
|
export interface ViewControllerOptions {
|
|
400
399
|
plugins: ViewControllerPlugins;
|
|
401
400
|
vcFactory: ViewControllerFactory;
|
|
402
|
-
connectToApi: () => Promise<
|
|
401
|
+
connectToApi: () => Promise<MercuryClient>;
|
|
403
402
|
renderInDialogHandler: RenderInDialogHandler;
|
|
404
403
|
renderLockScreenHandler: RenderLockScreenHandler;
|
|
405
404
|
confirmHandler: ConfirmHandler;
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import { MercuryClient } from '@sprucelabs/mercury-client';
|
|
2
|
+
import { LockScreenSkillViewControllerOptions } from '../skillViewControllers/LockScreen.svc';
|
|
1
3
|
import { AppController, AppControllerLoadOptions, ControllerOptions, ViewControllerId, ViewControllerMap, ViewControllerOptions, ViewControllerPlugins } from '../types/heartwood.types';
|
|
2
4
|
export default abstract class AbstractAppController implements AppController {
|
|
3
5
|
static id: string;
|
|
4
6
|
protected plugins: ViewControllerPlugins;
|
|
5
7
|
private views;
|
|
8
|
+
private renderLockScreenHandler;
|
|
9
|
+
protected connectToApi: () => Promise<MercuryClient>;
|
|
6
10
|
constructor(options: ViewControllerOptions);
|
|
7
11
|
load(options: AppControllerLoadOptions): Promise<void>;
|
|
12
|
+
protected renderLockScreen(options: LockScreenSkillViewControllerOptions): import("../skillViewControllers/LockScreen.svc").default;
|
|
8
13
|
Controller<N extends ViewControllerId, O extends ControllerOptions<N>>(id: N, options: O): ViewControllerMap[N];
|
|
9
14
|
}
|
|
@@ -9,13 +9,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
export default class AbstractAppController {
|
|
11
11
|
constructor(options) {
|
|
12
|
-
const { plugins, vcFactory } = options;
|
|
12
|
+
const { plugins, vcFactory, renderLockScreenHandler, connectToApi } = options;
|
|
13
13
|
this.plugins = plugins;
|
|
14
14
|
this.views = vcFactory;
|
|
15
|
+
this.renderLockScreenHandler = renderLockScreenHandler;
|
|
16
|
+
this.connectToApi = connectToApi;
|
|
15
17
|
}
|
|
16
18
|
load(options) {
|
|
17
19
|
return __awaiter(this, void 0, void 0, function* () { });
|
|
18
20
|
}
|
|
21
|
+
renderLockScreen(options) {
|
|
22
|
+
var _a;
|
|
23
|
+
const controller = this.Controller('lock-screen', Object.assign({}, options));
|
|
24
|
+
(_a = this.renderLockScreenHandler) === null || _a === void 0 ? void 0 : _a.call(this, controller.render());
|
|
25
|
+
return controller;
|
|
26
|
+
}
|
|
19
27
|
Controller(id, options) {
|
|
20
28
|
return this.views.Controller(id, options);
|
|
21
29
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DateUtil } from '@sprucelabs/calendar-utils';
|
|
2
|
+
import { MercuryClient } from '@sprucelabs/mercury-client';
|
|
2
3
|
import { Log } from '@sprucelabs/spruce-skill-utils';
|
|
3
|
-
import {
|
|
4
|
+
import { ViewController, ViewControllerOptions, ConfirmOptions, ViewControllerId, ViewControllerMap, ControllerOptions, VoteOptions, Device, MapUtil, AlertOptions, ToastOptions, TriggerRenderHandler, ViewControllerPlugins } from '../types/heartwood.types';
|
|
4
5
|
import { DialogViewControllerOptions } from './Dialog.vc';
|
|
5
6
|
import ViewControllerFactory from './ViewControllerFactory';
|
|
6
7
|
export default abstract class AbstractViewController<ViewModel extends Record<string, any>> implements ViewController<ViewModel> {
|
|
@@ -10,7 +11,7 @@ export default abstract class AbstractViewController<ViewModel extends Record<st
|
|
|
10
11
|
private confirmHandler;
|
|
11
12
|
private wasDestroyed;
|
|
12
13
|
private activeDialog?;
|
|
13
|
-
protected connectToApi: () => Promise<
|
|
14
|
+
protected connectToApi: () => Promise<MercuryClient>;
|
|
14
15
|
protected dates: DateUtil;
|
|
15
16
|
protected maps: MapUtil;
|
|
16
17
|
private voteHandler;
|
|
@@ -3,17 +3,17 @@ import { Log } from '@sprucelabs/spruce-skill-utils';
|
|
|
3
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
|
+
protected connectToApi: ConnectToApi;
|
|
7
|
+
protected log?: Log;
|
|
8
|
+
protected plugins: ViewControllerPlugins;
|
|
6
9
|
private controllerMap;
|
|
7
10
|
private renderInDialogHandler;
|
|
8
11
|
private confirmHandler;
|
|
9
|
-
private connectToApi;
|
|
10
12
|
private voteHandler;
|
|
11
13
|
private device;
|
|
12
14
|
private dates;
|
|
13
15
|
private maps;
|
|
14
16
|
private toastHandler;
|
|
15
|
-
protected log?: Log;
|
|
16
|
-
protected plugins: ViewControllerPlugins;
|
|
17
17
|
private AppMap;
|
|
18
18
|
private renderLockScreenHandler;
|
|
19
19
|
constructor(options: ViewControllerFactoryConstructorOptions);
|
package/build/index.d.ts
CHANGED
|
@@ -56,6 +56,7 @@ export { default as buildActiveRecordCard } from './builders/buildActiveRecordCa
|
|
|
56
56
|
export { default as buildActiveRecordList } from './builders/buildActiveRecordList';
|
|
57
57
|
export { default as activeRecordCardAssert } from './tests/utilities/activeRecordCardAssert';
|
|
58
58
|
export { default as MockActiveRecordCard } from './tests/MockActiveRecordCard';
|
|
59
|
+
export { default as lockScreenAssert } from './tests/utilities/lockScreenAssert';
|
|
59
60
|
export { default as PolarAreaViewController } from './viewControllers/PolarAreaViewController.vc';
|
|
60
61
|
export { default as AuthenticatorImpl } from './auth/Authenticator';
|
|
61
62
|
export { default as buildBigForm } from './builders/buildBigForm';
|
package/build/index.js
CHANGED
|
@@ -17,10 +17,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.
|
|
21
|
-
exports.
|
|
22
|
-
exports.
|
|
23
|
-
exports.navigationRouteSchema = exports.routerDestinationSchema = exports.navigationDropdownButtonSchema = exports.navigationButtonDropdownSchema = exports.barChartDataSetSchema = exports.barChartDataPointSchema = exports.barChartSchema = exports.progressDetailsSchema = exports.progressNavigatorStepSchema = exports.progressNavigatorSchema = exports.countdownTimerSchema = exports.permissionContractReferenceSchema = exports.navigationButtonSchema = exports.navigationSchema = exports.ToolBeltStateMachine = exports.removeUniversalViewOptions = exports.buildSkillViewLayout = exports.splitCardsIntoLayouts = exports.listUtil = exports.mapInteractor = exports.mapAssert = exports.renderUtil = exports.routerTestPatcher = exports.dialogTestPatcher = exports.confirmTestPatcher = exports.calendarSeeder = exports.interactionUtil = exports.barChartAssert = exports.progressNavigatorAssert = void 0;
|
|
20
|
+
exports.lineIconSchema = exports.fancyIconSchema = exports.selectInputSchema = exports.skillViewSchema = exports.bigFormSchema = exports.calendarEventColorsSchema = exports.buildSkillView = exports.buildForm = exports.buildBigForm = exports.AuthenticatorImpl = exports.PolarAreaViewController = exports.lockScreenAssert = exports.MockActiveRecordCard = exports.activeRecordCardAssert = exports.buildActiveRecordList = exports.buildActiveRecordCard = exports.AbstractInputViewController = exports.AutocompleteInputViewController = exports.AbstractCalendarEventViewController = exports.RatingsViewController = exports.ProgressViewController = exports.StatsViewController = exports.FeedViewController = exports.ActiveRecordListViewController = exports.ActiveRecordCardViewController = exports.TalkingSprucebotViewController = exports.ButtonBarViewController = exports.CalendarViewController = exports.SwipeCardViewControllerImpl = exports.SwipeViewControllerImpl = exports.PagerViewController = exports.ProgressNavigatorViewController = exports.CountdownTimerViewController = exports.FormBuilderCardViewControllerImpl = exports.LoginViewController = exports.BarChartViewController = exports.ToolBeltViewController = exports.FormViewControllerImpl = exports.ListCellViewController = exports.ListRowViewController = exports.ListViewController = exports.NavigationViewController = exports.LockScreenSkillViewController = exports.DialogViewController = exports.ConfirmViewController = exports.CardViewControllerImpl = exports.ButtonGroupViewController = exports.AbstractAppController = exports.AbstractViewController = exports.AbstractSkillViewController = void 0;
|
|
21
|
+
exports.progressSchema = exports.statsStatSchema = exports.statsSchema = exports.toggleInputSchema = exports.listToggleInputSchema = exports.addressInputSchema = exports.buttonBarButtonSchema = exports.buttonBarSchema = exports.toolBeltToolSchema = exports.toolBeltSchema = exports.calendarTimeSchema = exports.calendarPersonSchema = exports.calendarSchema = exports.themePropsSchema = exports.themeSchema = exports.cardFooterButtonSchema = exports.criticalErrorSchema = exports.sprucebotTypedMessageSentenceSchema = exports.sprucebotTypedMessageAvatarSchema = exports.selectInputChoiceSchema = exports.calendarEventColorOverrideSchema = exports.portalSchema = exports.listTextInputSchema = exports.listSelectInputSchema = exports.listCellButtonSchema = exports.dropdownButtonSchema = exports.bigFormSectionSchema = exports.textInputSchema = exports.phoneInputSchema = exports.inputSchema = exports.dropdownSchema = exports.sprucebotTypedMessageSchema = exports.talkingSprucebotSchema = exports.sprucebotAvatarSchema = exports.formBuilderImportExportObjectSchema = exports.listCellSchema = exports.listRowSchema = exports.listSchema = exports.layoutSchema = exports.cardSectionSchema = exports.cardHeaderSchema = exports.cardFooterSchema = exports.cardBodySchema = exports.cardSchema = exports.formSectionSchema = exports.formSchema = exports.textSchema = exports.lockScreenSchema = exports.dialogSchema = exports.buttonSchema = void 0;
|
|
22
|
+
exports.countdownTimerAssert = exports.calendarInteractor = exports.interactor = exports.normalizeScopeFromVc = exports.autocompleteInteractor = exports.formAssert = exports.autocompleteAssert = exports.listAssert = exports.buttonAssert = exports.deviceAssert = exports.navigationAssert = exports.toolBeltAssert = exports.toastAssert = exports.vcPluginAssert = exports.vcDurationAssert = exports.pagerAssert = exports.vcAssert = exports.vcAssertUtil = exports.feedAssert = exports.feedInteractor = exports.normalizeFormSectionFieldNamesUtil = exports.ViewControllerError = exports.SpyDevice = exports.StubStorage = exports.ViewControllerFactory = exports.ViewControllerImporter = exports.ViewControllerExporter = exports.pagerSchema = exports.polarAreaDataItemSchema = exports.polarAreaSchema = exports.inputButtonSchema = exports.mapPinSchema = exports.mapSchema = exports.latLngSchema = exports.formBuilderImportExportPageSchema = exports.autocompleteSuggestionSchema = exports.autocompleteInputSchema = exports.feedSchema = exports.calendarShiftSchema = exports.receiptTotalSchema = exports.receiptSectionSchema = exports.receiptLineItemSchema = exports.receiptHeaderSchema = exports.receiptSchema = exports.listDateInputSchema = exports.calendarSelectedDateSchema = exports.calendarEventSchema = exports.ratingsInputSchema = exports.listRatingsInputSchema = exports.ratingsSchema = void 0;
|
|
23
|
+
exports.navigationRouteSchema = exports.routerDestinationSchema = exports.navigationDropdownButtonSchema = exports.navigationButtonDropdownSchema = exports.barChartDataSetSchema = exports.barChartDataPointSchema = exports.barChartSchema = exports.progressDetailsSchema = exports.progressNavigatorStepSchema = exports.progressNavigatorSchema = exports.countdownTimerSchema = exports.permissionContractReferenceSchema = exports.navigationButtonSchema = exports.navigationSchema = exports.ToolBeltStateMachine = exports.removeUniversalViewOptions = exports.buildSkillViewLayout = exports.splitCardsIntoLayouts = exports.listUtil = exports.mapInteractor = exports.mapAssert = exports.renderUtil = exports.routerTestPatcher = exports.dialogTestPatcher = exports.confirmTestPatcher = exports.calendarSeeder = exports.interactionUtil = exports.barChartAssert = exports.progressNavigatorAssert = exports.countdownTimerInteractor = void 0;
|
|
24
24
|
__exportStar(require("./constants"), exports);
|
|
25
25
|
__exportStar(require("./types/heartwood.types"), exports);
|
|
26
26
|
__exportStar(require("./utilities/removeUniversalViewOptions"), exports);
|
|
@@ -116,6 +116,8 @@ var activeRecordCardAssert_1 = require("./tests/utilities/activeRecordCardAssert
|
|
|
116
116
|
Object.defineProperty(exports, "activeRecordCardAssert", { enumerable: true, get: function () { return __importDefault(activeRecordCardAssert_1).default; } });
|
|
117
117
|
var MockActiveRecordCard_1 = require("./tests/MockActiveRecordCard");
|
|
118
118
|
Object.defineProperty(exports, "MockActiveRecordCard", { enumerable: true, get: function () { return __importDefault(MockActiveRecordCard_1).default; } });
|
|
119
|
+
var lockScreenAssert_1 = require("./tests/utilities/lockScreenAssert");
|
|
120
|
+
Object.defineProperty(exports, "lockScreenAssert", { enumerable: true, get: function () { return __importDefault(lockScreenAssert_1).default; } });
|
|
119
121
|
var PolarAreaViewController_vc_1 = require("./viewControllers/PolarAreaViewController.vc");
|
|
120
122
|
Object.defineProperty(exports, "PolarAreaViewController", { enumerable: true, get: function () { return __importDefault(PolarAreaViewController_vc_1).default; } });
|
|
121
123
|
var Authenticator_1 = require("./auth/Authenticator");
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { LockScreen, SkillView, ViewControllerOptions } from '../types/heartwood.types';
|
|
1
|
+
import { LockScreen, SkillView, SkillViewController, ViewControllerOptions } from '../types/heartwood.types';
|
|
2
2
|
import AbstractSkillViewController from './Abstract.svc';
|
|
3
3
|
export default class LockScreenSkillViewController extends AbstractSkillViewController<Record<string, any>, LockScreen> {
|
|
4
4
|
private skillViewController?;
|
|
5
|
-
private
|
|
5
|
+
private hideHandler?;
|
|
6
|
+
private isVisible;
|
|
6
7
|
constructor(options: ViewControllerOptions & LockScreen);
|
|
7
|
-
|
|
8
|
+
setHideHindler(hideHandler: HideDialogHandler): void;
|
|
8
9
|
hide(): Promise<void>;
|
|
10
|
+
getSkillViewVc(): SkillViewController<Record<string, any>, import("@sprucelabs/mercury-types").SpruceSchemas.HeartwoodViewControllers.v2021_02_11.SkillView> | undefined;
|
|
11
|
+
getIsVisible(): boolean;
|
|
9
12
|
render(): LockScreen;
|
|
10
13
|
}
|
|
11
14
|
export type LockScreenSkillViewControllerOptions = SkillView;
|
|
12
|
-
type
|
|
13
|
-
export {};
|
|
15
|
+
export type HideDialogHandler = () => Promise<void> | void;
|
|
@@ -7,14 +7,22 @@ const Abstract_svc_1 = __importDefault(require("./Abstract.svc"));
|
|
|
7
7
|
class LockScreenSkillViewController extends Abstract_svc_1.default {
|
|
8
8
|
constructor(options) {
|
|
9
9
|
super(options);
|
|
10
|
+
this.isVisible = true;
|
|
10
11
|
const { controller } = options;
|
|
11
12
|
this.skillViewController = controller;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
this.
|
|
14
|
+
setHideHindler(hideHandler) {
|
|
15
|
+
this.hideHandler = hideHandler;
|
|
15
16
|
}
|
|
16
17
|
async hide() {
|
|
17
|
-
await this.
|
|
18
|
+
await this.hideHandler?.();
|
|
19
|
+
this.isVisible = false;
|
|
20
|
+
}
|
|
21
|
+
getSkillViewVc() {
|
|
22
|
+
return this.skillViewController;
|
|
23
|
+
}
|
|
24
|
+
getIsVisible() {
|
|
25
|
+
return this.isVisible;
|
|
18
26
|
}
|
|
19
27
|
render() {
|
|
20
28
|
return {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { SelectChoice } from '@sprucelabs/schema';
|
|
2
2
|
import { SpruceSchemas } from '@sprucelabs/spruce-core-schemas';
|
|
3
|
+
import AppController from '../../__tests__/testDirsAndFiles/skill_with_app/src/App.ac';
|
|
3
4
|
import { ConfirmOptions, ViewController, Router, CardSection, Card, TriggerRenderHandler, RouterDestination } from '../../types/heartwood.types';
|
|
5
|
+
import AbstractAppController from '../../viewControllers/Abstract.ac';
|
|
4
6
|
export type Vc = ViewController<any>;
|
|
5
7
|
export declare const WAIT_TIMEOUT = 5000;
|
|
6
8
|
export interface AssertConfirmViewController {
|
|
@@ -24,7 +26,8 @@ export interface ButtonViewController {
|
|
|
24
26
|
triggerRender(): void;
|
|
25
27
|
setTriggerRenderHandler(handler: TriggerRenderHandler): void;
|
|
26
28
|
}
|
|
27
|
-
export declare function getVcName(vc: ViewController<any>): any;
|
|
29
|
+
export declare function getVcName(vc: ViewController<any> | AbstractAppController | AppController): any;
|
|
30
|
+
export declare function getControllerType(vc: ViewController<any> | AbstractAppController | AppController): "App" | "SkillView" | "ViewController";
|
|
28
31
|
export declare function wait(...promises: (Promise<any> | undefined | any)[]): Promise<any>;
|
|
29
32
|
export declare function assertToolInstanceOf(tool: SpruceSchemas.HeartwoodViewControllers.v2021_02_11.ToolBeltTool, Class: any): ViewController<any>;
|
|
30
33
|
export declare function isVcInstanceOf<C>(vc: any, Class: new () => C): C | false;
|
|
@@ -7,12 +7,15 @@ exports.WAIT_TIMEOUT = void 0;
|
|
|
7
7
|
exports.pluckAllFromView = pluckAllFromView;
|
|
8
8
|
exports.pluckFirstFromCard = pluckFirstFromCard;
|
|
9
9
|
exports.getVcName = getVcName;
|
|
10
|
+
exports.getControllerType = getControllerType;
|
|
10
11
|
exports.wait = wait;
|
|
11
12
|
exports.assertToolInstanceOf = assertToolInstanceOf;
|
|
12
13
|
exports.isVcInstanceOf = isVcInstanceOf;
|
|
13
14
|
exports.checkForCardSection = checkForCardSection;
|
|
14
15
|
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
16
|
+
const Abstract_svc_1 = __importDefault(require("../../skillViewControllers/Abstract.svc"));
|
|
15
17
|
const render_utility_1 = __importDefault(require("../../utilities/render.utility"));
|
|
18
|
+
const Abstract_ac_1 = __importDefault(require("../../viewControllers/Abstract.ac"));
|
|
16
19
|
const sectionIdOrIdxToIdx_1 = __importDefault(require("../../viewControllers/card/sectionIdOrIdxToIdx"));
|
|
17
20
|
exports.WAIT_TIMEOUT = 5000;
|
|
18
21
|
function pluckAllFromView(model, key) {
|
|
@@ -35,6 +38,13 @@ function getVcName(vc) {
|
|
|
35
38
|
vc.costructor?.name ??
|
|
36
39
|
`view controller`);
|
|
37
40
|
}
|
|
41
|
+
function getControllerType(vc) {
|
|
42
|
+
return vc instanceof Abstract_ac_1.default
|
|
43
|
+
? 'App'
|
|
44
|
+
: vc instanceof Abstract_svc_1.default
|
|
45
|
+
? 'SkillView'
|
|
46
|
+
: 'ViewController';
|
|
47
|
+
}
|
|
38
48
|
async function wait(...promises) {
|
|
39
49
|
return new Promise((resolve, reject) => {
|
|
40
50
|
let isDone = false;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import AbstractSkillViewController from '../../skillViewControllers/Abstract.svc';
|
|
2
|
+
import LockScreenSkillViewController from '../../skillViewControllers/LockScreen.svc';
|
|
3
|
+
import AbstractAppController from '../../viewControllers/Abstract.ac';
|
|
4
|
+
declare const lockScreenAssert: {
|
|
5
|
+
actionRendersLockScreen(svcOrApp: AbstractSkillViewController | AbstractAppController, action: () => Promise<void> | void): Promise<LockScreenSkillViewController>;
|
|
6
|
+
};
|
|
7
|
+
export default lockScreenAssert;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const schema_1 = require("@sprucelabs/schema");
|
|
4
|
+
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
5
|
+
const assertSupport_1 = require("./assertSupport");
|
|
6
|
+
const lockScreenAssert = {
|
|
7
|
+
async actionRendersLockScreen(svcOrApp, action) {
|
|
8
|
+
(0, schema_1.assertOptions)({
|
|
9
|
+
svcOrApp,
|
|
10
|
+
action,
|
|
11
|
+
}, ['svcOrApp', 'action']);
|
|
12
|
+
let lockScreen;
|
|
13
|
+
const originalRenderLockScreen =
|
|
14
|
+
//@ts-ignore
|
|
15
|
+
svcOrApp.renderLockScreen.bind(svcOrApp);
|
|
16
|
+
//@ts-ignore
|
|
17
|
+
svcOrApp.renderLockScreen = (options) => {
|
|
18
|
+
lockScreen = originalRenderLockScreen(options);
|
|
19
|
+
return lockScreen;
|
|
20
|
+
};
|
|
21
|
+
await action();
|
|
22
|
+
test_utils_1.assert.isTruthy(lockScreen, `You did not call this.renderLockScreen in your ${(0, assertSupport_1.getControllerType)(svcOrApp)} called ${(0, assertSupport_1.getVcName)(svcOrApp)}`);
|
|
23
|
+
return lockScreen;
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
exports.default = lockScreenAssert;
|
|
@@ -10,6 +10,7 @@ const schema_1 = require("@sprucelabs/schema");
|
|
|
10
10
|
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
11
11
|
const card_schema_1 = __importDefault(require("./../../.spruce/schemas/heartwoodViewControllers/v2021_02_11/card.schema"));
|
|
12
12
|
const controllerMap_1 = require("../../controllerMap");
|
|
13
|
+
const LockScreen_svc_1 = __importDefault(require("../../skillViewControllers/LockScreen.svc"));
|
|
13
14
|
const render_utility_1 = __importDefault(require("../../utilities/render.utility"));
|
|
14
15
|
const Dialog_vc_1 = __importDefault(require("../../viewControllers/Dialog.vc"));
|
|
15
16
|
const List_vc_1 = __importDefault(require("../../viewControllers/list/List.vc"));
|
|
@@ -871,6 +872,9 @@ const vcAssert = {
|
|
|
871
872
|
if (vc instanceof Dialog_vc_1.default) {
|
|
872
873
|
vc = vc.getCardVc();
|
|
873
874
|
}
|
|
875
|
+
else if (vc instanceof LockScreen_svc_1.default) {
|
|
876
|
+
vc = vc.getSkillViewVc();
|
|
877
|
+
}
|
|
874
878
|
const model = render_utility_1.default.render(vc);
|
|
875
879
|
test_utils_1.assert.isTruthy(model.controller, `Your view controller does not return a controller. Make sure you return 'controller:this' from render() or that you're rending a built in view with 'render() { return this.cardVc.render() }'.`);
|
|
876
880
|
try {
|
|
@@ -361,7 +361,6 @@ export interface OpenNavigationOptions {
|
|
|
361
361
|
to: AddressFieldValue;
|
|
362
362
|
}
|
|
363
363
|
export type SkillViewControllerArgs<N extends SkillViewControllerId, O extends SkillViewControllerArgsMap = SkillViewControllerArgsMap> = N extends keyof O ? O[N] : Record<string, never>;
|
|
364
|
-
export type Client = MercuryClient;
|
|
365
364
|
export interface OnRenderHandler {
|
|
366
365
|
onRender?(): void;
|
|
367
366
|
}
|
|
@@ -399,7 +398,7 @@ export interface FormInputViewController<View extends Record<string, any> = any>
|
|
|
399
398
|
export interface ViewControllerOptions {
|
|
400
399
|
plugins: ViewControllerPlugins;
|
|
401
400
|
vcFactory: ViewControllerFactory;
|
|
402
|
-
connectToApi: () => Promise<
|
|
401
|
+
connectToApi: () => Promise<MercuryClient>;
|
|
403
402
|
renderInDialogHandler: RenderInDialogHandler;
|
|
404
403
|
renderLockScreenHandler: RenderLockScreenHandler;
|
|
405
404
|
confirmHandler: ConfirmHandler;
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import { MercuryClient } from '@sprucelabs/mercury-client';
|
|
2
|
+
import { LockScreenSkillViewControllerOptions } from '../skillViewControllers/LockScreen.svc';
|
|
1
3
|
import { AppController, AppControllerLoadOptions, ControllerOptions, ViewControllerId, ViewControllerMap, ViewControllerOptions, ViewControllerPlugins } from '../types/heartwood.types';
|
|
2
4
|
export default abstract class AbstractAppController implements AppController {
|
|
3
5
|
static id: string;
|
|
4
6
|
protected plugins: ViewControllerPlugins;
|
|
5
7
|
private views;
|
|
8
|
+
private renderLockScreenHandler;
|
|
9
|
+
protected connectToApi: () => Promise<MercuryClient>;
|
|
6
10
|
constructor(options: ViewControllerOptions);
|
|
7
11
|
load(options: AppControllerLoadOptions): Promise<void>;
|
|
12
|
+
protected renderLockScreen(options: LockScreenSkillViewControllerOptions): import("../skillViewControllers/LockScreen.svc").default;
|
|
8
13
|
Controller<N extends ViewControllerId, O extends ControllerOptions<N>>(id: N, options: O): ViewControllerMap[N];
|
|
9
14
|
}
|
|
@@ -2,11 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
class AbstractAppController {
|
|
4
4
|
constructor(options) {
|
|
5
|
-
const { plugins, vcFactory } = options;
|
|
5
|
+
const { plugins, vcFactory, renderLockScreenHandler, connectToApi } = options;
|
|
6
6
|
this.plugins = plugins;
|
|
7
7
|
this.views = vcFactory;
|
|
8
|
+
this.renderLockScreenHandler = renderLockScreenHandler;
|
|
9
|
+
this.connectToApi = connectToApi;
|
|
8
10
|
}
|
|
9
11
|
async load(options) { }
|
|
12
|
+
renderLockScreen(options) {
|
|
13
|
+
const controller = this.Controller('lock-screen', { ...options });
|
|
14
|
+
this.renderLockScreenHandler?.(controller.render());
|
|
15
|
+
return controller;
|
|
16
|
+
}
|
|
10
17
|
Controller(id, options) {
|
|
11
18
|
return this.views.Controller(id, options);
|
|
12
19
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DateUtil } from '@sprucelabs/calendar-utils';
|
|
2
|
+
import { MercuryClient } from '@sprucelabs/mercury-client';
|
|
2
3
|
import { Log } from '@sprucelabs/spruce-skill-utils';
|
|
3
|
-
import {
|
|
4
|
+
import { ViewController, ViewControllerOptions, ConfirmOptions, ViewControllerId, ViewControllerMap, ControllerOptions, VoteOptions, Device, MapUtil, AlertOptions, ToastOptions, TriggerRenderHandler, ViewControllerPlugins } from '../types/heartwood.types';
|
|
4
5
|
import { DialogViewControllerOptions } from './Dialog.vc';
|
|
5
6
|
import ViewControllerFactory from './ViewControllerFactory';
|
|
6
7
|
export default abstract class AbstractViewController<ViewModel extends Record<string, any>> implements ViewController<ViewModel> {
|
|
@@ -10,7 +11,7 @@ export default abstract class AbstractViewController<ViewModel extends Record<st
|
|
|
10
11
|
private confirmHandler;
|
|
11
12
|
private wasDestroyed;
|
|
12
13
|
private activeDialog?;
|
|
13
|
-
protected connectToApi: () => Promise<
|
|
14
|
+
protected connectToApi: () => Promise<MercuryClient>;
|
|
14
15
|
protected dates: DateUtil;
|
|
15
16
|
protected maps: MapUtil;
|
|
16
17
|
private voteHandler;
|
|
@@ -3,17 +3,17 @@ import { Log } from '@sprucelabs/spruce-skill-utils';
|
|
|
3
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
|
+
protected connectToApi: ConnectToApi;
|
|
7
|
+
protected log?: Log;
|
|
8
|
+
protected plugins: ViewControllerPlugins;
|
|
6
9
|
private controllerMap;
|
|
7
10
|
private renderInDialogHandler;
|
|
8
11
|
private confirmHandler;
|
|
9
|
-
private connectToApi;
|
|
10
12
|
private voteHandler;
|
|
11
13
|
private device;
|
|
12
14
|
private dates;
|
|
13
15
|
private maps;
|
|
14
16
|
private toastHandler;
|
|
15
|
-
protected log?: Log;
|
|
16
|
-
protected plugins: ViewControllerPlugins;
|
|
17
17
|
private AppMap;
|
|
18
18
|
private renderLockScreenHandler;
|
|
19
19
|
constructor(options: ViewControllerFactoryConstructorOptions);
|
package/package.json
CHANGED