@sprucelabs/heartwood-view-controllers 129.5.18 → 129.5.19

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 (29) hide show
  1. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/tree.schema.d.ts +3 -0
  2. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/tree.schema.js +49 -0
  3. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/treeNode.schema.d.ts +3 -0
  4. package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/treeNode.schema.js +50 -0
  5. package/build/.spruce/schemas/schemas.types.d.ts +1923 -1798
  6. package/build/controllerMap.d.ts +2 -0
  7. package/build/controllerMap.js +2 -0
  8. package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/tree.schema.d.ts +3 -0
  9. package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/tree.schema.js +44 -0
  10. package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/treeNode.schema.d.ts +3 -0
  11. package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/treeNode.schema.js +48 -0
  12. package/build/esm/.spruce/schemas/schemas.types.d.ts +1923 -1798
  13. package/build/esm/controllerMap.d.ts +2 -0
  14. package/build/esm/controllerMap.js +2 -0
  15. package/build/esm/index.d.ts +4 -0
  16. package/build/esm/index.js +4 -0
  17. package/build/esm/schemas/v2021_02_11/tree.builder.d.ts +74 -0
  18. package/build/esm/schemas/v2021_02_11/tree.builder.js +74 -0
  19. package/build/esm/types/heartwood.types.d.ts +5 -0
  20. package/build/esm/viewControllers/trees/Tree.vc.d.ts +8 -0
  21. package/build/esm/viewControllers/trees/Tree.vc.js +31 -0
  22. package/build/index.d.ts +4 -0
  23. package/build/index.js +12 -5
  24. package/build/schemas/v2021_02_11/tree.builder.d.ts +74 -0
  25. package/build/schemas/v2021_02_11/tree.builder.js +76 -0
  26. package/build/types/heartwood.types.d.ts +5 -0
  27. package/build/viewControllers/trees/Tree.vc.d.ts +8 -0
  28. package/build/viewControllers/trees/Tree.vc.js +30 -0
  29. package/package.json +1 -1
@@ -27,6 +27,7 @@ import StatsViewController from './viewControllers/reporting/Stats.vc';
27
27
  import SwipeCardViewController from './viewControllers/SwipeCard.vc';
28
28
  import TalkingSprucebotViewController from './viewControllers/TalkingSprucebot.vc';
29
29
  import ToolBeltViewController from './viewControllers/ToolBelt.vc';
30
+ import TreeViewController from './viewControllers/trees/Tree.vc';
30
31
  import WebRtcPlayerViewController from './viewControllers/webRtcStreaming/WebRtcPlayer.vc';
31
32
  export declare const CORE_CONTROLLER_MAP: {
32
33
  form: typeof FormViewController;
@@ -60,4 +61,5 @@ export declare const CORE_CONTROLLER_MAP: {
60
61
  'line-graph': typeof LineGraphViewController;
61
62
  'lock-screen': typeof LockScreenSkillViewController;
62
63
  'web-rtc-player': typeof WebRtcPlayerViewController;
64
+ tree: typeof TreeViewController;
63
65
  };
@@ -27,6 +27,7 @@ import StatsViewController from './viewControllers/reporting/Stats.vc.js';
27
27
  import SwipeCardViewController from './viewControllers/SwipeCard.vc.js';
28
28
  import TalkingSprucebotViewController from './viewControllers/TalkingSprucebot.vc.js';
29
29
  import ToolBeltViewController from './viewControllers/ToolBelt.vc.js';
30
+ import TreeViewController from './viewControllers/trees/Tree.vc.js';
30
31
  import WebRtcPlayerViewController from './viewControllers/webRtcStreaming/WebRtcPlayer.vc.js';
31
32
  export const CORE_CONTROLLER_MAP = {
32
33
  form: FormViewController,
@@ -60,4 +61,5 @@ export const CORE_CONTROLLER_MAP = {
60
61
  'line-graph': LineGraphViewController,
61
62
  'lock-screen': LockScreenSkillViewController,
62
63
  'web-rtc-player': WebRtcPlayerViewController,
64
+ tree: TreeViewController,
63
65
  };
@@ -68,6 +68,8 @@ export { default as lockScreenAssert } from './tests/utilities/lockScreenAssert'
68
68
  export { default as SpyViewControllerExporter } from './tests/SpyViewControllerExporter';
69
69
  export { default as FakeStorage } from './tests/FakeStorage';
70
70
  export { default as PolarAreaViewController } from './viewControllers/PolarAreaViewController.vc';
71
+ export { default as TreeViewController } from './viewControllers/trees/Tree.vc';
72
+ export * from './viewControllers/trees/Tree.vc';
71
73
  export { default as AuthenticatorImpl } from './auth/Authenticator';
72
74
  export * from './auth/Authenticator';
73
75
  export { default as buildBigForm } from './builders/buildBigForm';
@@ -166,6 +168,8 @@ export { default as webRtcPlayerSchema } from './.spruce/schemas/heartwoodViewCo
166
168
  export { default as webRtcCropPointSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcCropPoint.schema';
167
169
  export { default as statusIndicatorSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/statusIndicator.schema';
168
170
  export { default as statusIndicatorColorsSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/statusIndicatorColors.schema';
171
+ export { default as treeSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/tree.schema';
172
+ export { default as treeNodeSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/treeNode.schema';
169
173
  export { default as ViewControllerExporter } from './viewControllers/ViewControllerExporter';
170
174
  export { default as ViewControllerImporter } from './viewControllers/ViewControllerImporter';
171
175
  export { default as ViewControllerFactory } from './viewControllers/ViewControllerFactory';
@@ -68,6 +68,8 @@ export { default as lockScreenAssert } from './tests/utilities/lockScreenAssert.
68
68
  export { default as SpyViewControllerExporter } from './tests/SpyViewControllerExporter.js';
69
69
  export { default as FakeStorage } from './tests/FakeStorage.js';
70
70
  export { default as PolarAreaViewController } from './viewControllers/PolarAreaViewController.vc.js';
71
+ export { default as TreeViewController } from './viewControllers/trees/Tree.vc.js';
72
+ export * from './viewControllers/trees/Tree.vc.js';
71
73
  export { default as AuthenticatorImpl } from './auth/Authenticator.js';
72
74
  export * from './auth/Authenticator.js';
73
75
  export { default as buildBigForm } from './builders/buildBigForm.js';
@@ -166,6 +168,8 @@ export { default as webRtcPlayerSchema } from './.spruce/schemas/heartwoodViewCo
166
168
  export { default as webRtcCropPointSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcCropPoint.schema.js';
167
169
  export { default as statusIndicatorSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/statusIndicator.schema.js';
168
170
  export { default as statusIndicatorColorsSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/statusIndicatorColors.schema.js';
171
+ export { default as treeSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/tree.schema.js';
172
+ export { default as treeNodeSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/treeNode.schema.js';
169
173
  export { default as ViewControllerExporter } from './viewControllers/ViewControllerExporter.js';
170
174
  export { default as ViewControllerImporter } from './viewControllers/ViewControllerImporter.js';
171
175
  export { default as ViewControllerFactory } from './viewControllers/ViewControllerFactory.js';
@@ -0,0 +1,74 @@
1
+ declare const _default: {
2
+ id: string;
3
+ name: string;
4
+ fields: {
5
+ id: {
6
+ type: "id";
7
+ };
8
+ controller: {
9
+ type: "raw";
10
+ label: string;
11
+ options: {
12
+ valueType: string;
13
+ };
14
+ };
15
+ onClickNode: {
16
+ type: "raw";
17
+ label: string;
18
+ options: {
19
+ valueType: string;
20
+ };
21
+ };
22
+ onClickDeleteNode: {
23
+ type: "raw";
24
+ label: string;
25
+ options: {
26
+ valueType: string;
27
+ };
28
+ };
29
+ nodes: {
30
+ type: "schema";
31
+ isArray: true;
32
+ minArrayLength: number;
33
+ isRequired: true;
34
+ options: {
35
+ schema: {
36
+ id: string;
37
+ fields: {
38
+ id: {
39
+ type: "id";
40
+ isRequired: true;
41
+ };
42
+ label: {
43
+ type: "text";
44
+ isRequired: true;
45
+ };
46
+ childrenIds: {
47
+ type: "id";
48
+ isArray: true;
49
+ minArrayLength: number;
50
+ };
51
+ isSelected: {
52
+ type: "boolean";
53
+ };
54
+ onClickDelete: {
55
+ type: "raw";
56
+ label: string;
57
+ options: {
58
+ valueType: string;
59
+ };
60
+ };
61
+ onClick: {
62
+ type: "raw";
63
+ label: string;
64
+ options: {
65
+ valueType: string;
66
+ };
67
+ };
68
+ };
69
+ };
70
+ };
71
+ };
72
+ };
73
+ };
74
+ export default _default;
@@ -0,0 +1,74 @@
1
+ import { buildSchema } from '@sprucelabs/schema';
2
+ export default buildSchema({
3
+ id: 'tree',
4
+ name: 'Tree',
5
+ fields: {
6
+ id: {
7
+ type: 'id',
8
+ },
9
+ controller: {
10
+ type: 'raw',
11
+ label: 'Controller',
12
+ options: {
13
+ valueType: 'HeartwoodTypes.ViewController<HeartwoodTypes.Tree>',
14
+ },
15
+ },
16
+ onClickNode: {
17
+ type: 'raw',
18
+ label: 'Node click handler',
19
+ options: {
20
+ valueType: '(nodeId: string) => void | Promise<void>',
21
+ },
22
+ },
23
+ onClickDeleteNode: {
24
+ type: 'raw',
25
+ label: 'Delete node click handler',
26
+ options: {
27
+ valueType: '(nodeId: string) => void | Promise<void>',
28
+ },
29
+ },
30
+ nodes: {
31
+ type: 'schema',
32
+ isArray: true,
33
+ minArrayLength: 0,
34
+ isRequired: true,
35
+ options: {
36
+ schema: buildSchema({
37
+ id: 'treeNode',
38
+ fields: {
39
+ id: {
40
+ type: 'id',
41
+ isRequired: true,
42
+ },
43
+ label: {
44
+ type: 'text',
45
+ isRequired: true,
46
+ },
47
+ childrenIds: {
48
+ type: 'id',
49
+ isArray: true,
50
+ minArrayLength: 0,
51
+ },
52
+ isSelected: {
53
+ type: 'boolean',
54
+ },
55
+ onClickDelete: {
56
+ type: 'raw',
57
+ label: 'Delete click handler',
58
+ options: {
59
+ valueType: '() => void | Promise<void>',
60
+ },
61
+ },
62
+ onClick: {
63
+ type: 'raw',
64
+ label: 'Node click handler',
65
+ options: {
66
+ valueType: '() => void | Promise<void>',
67
+ },
68
+ },
69
+ },
70
+ }),
71
+ },
72
+ },
73
+ },
74
+ });
@@ -40,6 +40,7 @@ import StatsViewController, { StatsViewControllerOptions } from '../viewControll
40
40
  import SwipeCardViewControllerImpl, { SwipeCardPassthroughMethods, SwipeViewControllerOptions } from '../viewControllers/SwipeCard.vc';
41
41
  import TalkingSprucebotViewController, { TalkingSprucebotViewControllerOptions } from '../viewControllers/TalkingSprucebot.vc';
42
42
  import ToolBeltViewController, { ToolBeltViewControllerOptions } from '../viewControllers/ToolBelt.vc';
43
+ import TreeViewController, { TreeViewControllerOptions } from '../viewControllers/trees/Tree.vc';
43
44
  import ViewControllerFactory from '../viewControllers/ViewControllerFactory';
44
45
  export * from './calendar.types';
45
46
  import '@sprucelabs/mercury-core-events';
@@ -279,6 +280,8 @@ export type TalkingSprucebot = SpruceSchemas.HeartwoodViewControllers.v2021_02_1
279
280
  export type NavigationRoute = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.NavigationRoute;
280
281
  export type LayoutStyle = NonNullable<SpruceSchemas.HeartwoodViewControllers.v2021_02_11.SkillViewLayout['style']>;
281
282
  export type Video = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Video;
283
+ export type Tree = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Tree;
284
+ export type TreeNode = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.TreeNode;
282
285
  export type LayoutColumn = Card[];
283
286
  export type ListColumnWidth = NonNullable<List['columnWidths']>[number];
284
287
  export type DragAndDropListSortHandler = NonNullable<List['onDragAndDropSort']>;
@@ -374,6 +377,7 @@ export interface ViewControllerMap {
374
377
  progress: ProgressViewController;
375
378
  ratings: RatingsViewController;
376
379
  stats: StatsViewController;
380
+ tree: TreeViewController;
377
381
  }
378
382
  export interface ViewControllerOptionsMap {
379
383
  'active-record-card': ActiveRecordCardViewControllerOptions;
@@ -408,6 +412,7 @@ export interface ViewControllerOptionsMap {
408
412
  progress: ProgressViewControllerOptions;
409
413
  ratings: RatingsViewControllerOptions;
410
414
  stats: StatsViewControllerOptions;
415
+ tree: TreeViewControllerOptions;
411
416
  }
412
417
  export interface SkillViewControllerMap {
413
418
  }
@@ -0,0 +1,8 @@
1
+ import { Tree, ViewControllerOptions } from '../../types/heartwood.types';
2
+ import AbstractViewController from '../Abstract.vc';
3
+ export default class TreeViewController extends AbstractViewController<Tree> {
4
+ private model;
5
+ constructor(options: ViewControllerOptions & TreeViewControllerOptions);
6
+ render(): Tree;
7
+ }
8
+ export type TreeViewControllerOptions = Omit<Tree, 'controller'>;
@@ -0,0 +1,31 @@
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 removeUniversalViewOptions from '../../utilities/removeUniversalViewOptions.js';
12
+ import AbstractViewController from '../Abstract.vc.js';
13
+ export default class TreeViewController extends AbstractViewController {
14
+ constructor(options) {
15
+ super(options);
16
+ this.model = removeUniversalViewOptions(assertOptions(options, ['nodes']));
17
+ }
18
+ render() {
19
+ return {
20
+ nodes: this.model.nodes.map((node) => (Object.assign(Object.assign({}, node), { onClick: () => __awaiter(this, void 0, void 0, function* () {
21
+ var _a, _b, _c;
22
+ yield ((_a = node.onClick) === null || _a === void 0 ? void 0 : _a.call(node));
23
+ yield ((_c = (_b = this.model).onClickNode) === null || _c === void 0 ? void 0 : _c.call(_b, node.id));
24
+ }), onClickDelete: () => __awaiter(this, void 0, void 0, function* () {
25
+ var _a, _b, _c;
26
+ yield ((_a = node.onClickDelete) === null || _a === void 0 ? void 0 : _a.call(node));
27
+ yield ((_c = (_b = this.model).onClickDeleteNode) === null || _c === void 0 ? void 0 : _c.call(_b, node.id));
28
+ }) }))),
29
+ };
30
+ }
31
+ }
package/build/index.d.ts CHANGED
@@ -68,6 +68,8 @@ export { default as lockScreenAssert } from './tests/utilities/lockScreenAssert'
68
68
  export { default as SpyViewControllerExporter } from './tests/SpyViewControllerExporter';
69
69
  export { default as FakeStorage } from './tests/FakeStorage';
70
70
  export { default as PolarAreaViewController } from './viewControllers/PolarAreaViewController.vc';
71
+ export { default as TreeViewController } from './viewControllers/trees/Tree.vc';
72
+ export * from './viewControllers/trees/Tree.vc';
71
73
  export { default as AuthenticatorImpl } from './auth/Authenticator';
72
74
  export * from './auth/Authenticator';
73
75
  export { default as buildBigForm } from './builders/buildBigForm';
@@ -166,6 +168,8 @@ export { default as webRtcPlayerSchema } from './.spruce/schemas/heartwoodViewCo
166
168
  export { default as webRtcCropPointSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcCropPoint.schema';
167
169
  export { default as statusIndicatorSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/statusIndicator.schema';
168
170
  export { default as statusIndicatorColorsSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/statusIndicatorColors.schema';
171
+ export { default as treeSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/tree.schema';
172
+ export { default as treeNodeSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/treeNode.schema';
169
173
  export { default as ViewControllerExporter } from './viewControllers/ViewControllerExporter';
170
174
  export { default as ViewControllerImporter } from './viewControllers/ViewControllerImporter';
171
175
  export { default as ViewControllerFactory } from './viewControllers/ViewControllerFactory';
package/build/index.js CHANGED
@@ -17,11 +17,11 @@ 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.WebRtcStreamerImpl = exports.buildForm = exports.buildBigForm = exports.AuthenticatorImpl = exports.PolarAreaViewController = exports.FakeStorage = exports.SpyViewControllerExporter = exports.lockScreenAssert = exports.MockActiveRecordCard = exports.activeRecordListAssert = 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.WebRtcPlayerViewController = exports.PagerViewController = exports.ProgressNavigatorViewController = exports.CountdownTimerViewController = exports.FormBuilderCardViewControllerImpl = exports.LoginCardViewController = exports.LoginViewController = exports.LineGraphViewController = 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.cardFooterButtonSchema = exports.criticalErrorSchema = exports.sprucebotTypedMessageSentenceSchema = exports.sprucebotTypedMessageAvatarSchema = exports.selectInputChoiceSchema = exports.calendarEventColorOverrideSchema = exports.themeFontsSchema = exports.fontSettingSchema = exports.fontFamilySchema = exports.cardStylesSchema = exports.cardStyleSchema = 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.videoSchema = exports.listCellSchema = exports.listRowSchema = exports.listSchema = exports.skillViewLayoutSchema = exports.cardSectionSchema = exports.cardHeaderSchema = exports.cardFooterSchema = exports.cardBodySchema = exports.cardSchema = exports.formSectionSchema = exports.formSchema = exports.textSchema = exports.lockScreenSchema = exports.dialogSchema = exports.buttonSchema = exports.lineIconSchema = exports.fancyIconSchema = exports.selectInputSchema = exports.skillViewSchema = exports.bigFormSchema = exports.controlBarSchema = exports.calendarEventColorsSchema = exports.WebRtcConnectionImpl = exports.MockRtcPeerConnection = void 0;
22
- exports.normalizeFormSectionFieldNamesUtil = exports.ViewControllerError = exports.MockAudioController = exports.SpyDevice = exports.StubStorage = exports.ViewControllerFactory = exports.ViewControllerImporter = exports.ViewControllerExporter = exports.statusIndicatorColorsSchema = exports.statusIndicatorSchema = exports.webRtcCropPointSchema = exports.webRtcPlayerSchema = 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 = 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 = void 0;
23
- exports.chartDataPointSchema = exports.lineGraphSchema = exports.barChartSchema = exports.progressDetailsSchema = exports.progressNavigatorStepSchema = exports.progressNavigatorSchema = exports.countdownTimerSchema = exports.permissionContractReferenceSchema = exports.navigationButtonSchema = exports.navigationSchema = exports.ToolBeltStateMachine = exports.removeUniversalViewOptions = exports.buildSkillViewLayout = exports.splitCardsIntoColumns = exports.listUtil = exports.mapInteractor = exports.mapAssert = exports.renderUtil = exports.routerTestPatcher = exports.dialogTestPatcher = exports.confirmTestPatcher = exports.calendarSeeder = exports.interactionUtil = exports.talkingSprucebotInteractor = exports.webRtcInteractor = exports.feedInteractor = exports.countdownTimerInteractor = exports.countdownTimerAssert = exports.calendarInteractor = exports.interactor = exports.normalizeScopeFromVc = exports.autocompleteInteractor = exports.chartAssert = exports.progressNavigatorAssert = exports.generateCropPointValues = exports.webRtcAssert = 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 = void 0;
24
- exports.MockToastMessageHandler = exports.toastMessageSchema = exports.navigationRouteSchema = exports.routerDestinationSchema = exports.navigationDropdownButtonSchema = exports.navigationButtonDropdownSchema = exports.chartDataSetSchema = void 0;
20
+ exports.buildForm = exports.buildBigForm = exports.AuthenticatorImpl = exports.TreeViewController = exports.PolarAreaViewController = exports.FakeStorage = exports.SpyViewControllerExporter = exports.lockScreenAssert = exports.MockActiveRecordCard = exports.activeRecordListAssert = 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.WebRtcPlayerViewController = exports.PagerViewController = exports.ProgressNavigatorViewController = exports.CountdownTimerViewController = exports.FormBuilderCardViewControllerImpl = exports.LoginCardViewController = exports.LoginViewController = exports.LineGraphViewController = 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.criticalErrorSchema = exports.sprucebotTypedMessageSentenceSchema = exports.sprucebotTypedMessageAvatarSchema = exports.selectInputChoiceSchema = exports.calendarEventColorOverrideSchema = exports.themeFontsSchema = exports.fontSettingSchema = exports.fontFamilySchema = exports.cardStylesSchema = exports.cardStyleSchema = 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.videoSchema = exports.listCellSchema = exports.listRowSchema = exports.listSchema = exports.skillViewLayoutSchema = exports.cardSectionSchema = exports.cardHeaderSchema = exports.cardFooterSchema = exports.cardBodySchema = exports.cardSchema = exports.formSectionSchema = exports.formSchema = exports.textSchema = exports.lockScreenSchema = exports.dialogSchema = exports.buttonSchema = exports.lineIconSchema = exports.fancyIconSchema = exports.selectInputSchema = exports.skillViewSchema = exports.bigFormSchema = exports.controlBarSchema = exports.calendarEventColorsSchema = exports.WebRtcConnectionImpl = exports.MockRtcPeerConnection = exports.WebRtcStreamerImpl = void 0;
22
+ exports.SpyDevice = exports.StubStorage = exports.ViewControllerFactory = exports.ViewControllerImporter = exports.ViewControllerExporter = exports.treeNodeSchema = exports.treeSchema = exports.statusIndicatorColorsSchema = exports.statusIndicatorSchema = exports.webRtcCropPointSchema = exports.webRtcPlayerSchema = 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 = 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 = void 0;
23
+ exports.progressDetailsSchema = exports.progressNavigatorStepSchema = exports.progressNavigatorSchema = exports.countdownTimerSchema = exports.permissionContractReferenceSchema = exports.navigationButtonSchema = exports.navigationSchema = exports.ToolBeltStateMachine = exports.removeUniversalViewOptions = exports.buildSkillViewLayout = exports.splitCardsIntoColumns = exports.listUtil = exports.mapInteractor = exports.mapAssert = exports.renderUtil = exports.routerTestPatcher = exports.dialogTestPatcher = exports.confirmTestPatcher = exports.calendarSeeder = exports.interactionUtil = exports.talkingSprucebotInteractor = exports.webRtcInteractor = exports.feedInteractor = exports.countdownTimerInteractor = exports.countdownTimerAssert = exports.calendarInteractor = exports.interactor = exports.normalizeScopeFromVc = exports.autocompleteInteractor = exports.chartAssert = exports.progressNavigatorAssert = exports.generateCropPointValues = exports.webRtcAssert = 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.normalizeFormSectionFieldNamesUtil = exports.ViewControllerError = exports.MockAudioController = void 0;
24
+ exports.MockToastMessageHandler = exports.toastMessageSchema = exports.navigationRouteSchema = exports.routerDestinationSchema = exports.navigationDropdownButtonSchema = exports.navigationButtonDropdownSchema = exports.chartDataSetSchema = exports.chartDataPointSchema = exports.lineGraphSchema = exports.barChartSchema = void 0;
25
25
  __exportStar(require("./constants"), exports);
26
26
  __exportStar(require("./types/heartwood.types"), exports);
27
27
  __exportStar(require("./utilities/removeUniversalViewOptions"), exports);
@@ -138,6 +138,9 @@ var FakeStorage_1 = require("./tests/FakeStorage");
138
138
  Object.defineProperty(exports, "FakeStorage", { enumerable: true, get: function () { return __importDefault(FakeStorage_1).default; } });
139
139
  var PolarAreaViewController_vc_1 = require("./viewControllers/PolarAreaViewController.vc");
140
140
  Object.defineProperty(exports, "PolarAreaViewController", { enumerable: true, get: function () { return __importDefault(PolarAreaViewController_vc_1).default; } });
141
+ var Tree_vc_1 = require("./viewControllers/trees/Tree.vc");
142
+ Object.defineProperty(exports, "TreeViewController", { enumerable: true, get: function () { return __importDefault(Tree_vc_1).default; } });
143
+ __exportStar(require("./viewControllers/trees/Tree.vc"), exports);
141
144
  var Authenticator_1 = require("./auth/Authenticator");
142
145
  Object.defineProperty(exports, "AuthenticatorImpl", { enumerable: true, get: function () { return __importDefault(Authenticator_1).default; } });
143
146
  __exportStar(require("./auth/Authenticator"), exports);
@@ -332,6 +335,10 @@ var statusIndicator_schema_1 = require("./.spruce/schemas/heartwoodViewControlle
332
335
  Object.defineProperty(exports, "statusIndicatorSchema", { enumerable: true, get: function () { return __importDefault(statusIndicator_schema_1).default; } });
333
336
  var statusIndicatorColors_schema_1 = require("./.spruce/schemas/heartwoodViewControllers/v2021_02_11/statusIndicatorColors.schema");
334
337
  Object.defineProperty(exports, "statusIndicatorColorsSchema", { enumerable: true, get: function () { return __importDefault(statusIndicatorColors_schema_1).default; } });
338
+ var tree_schema_1 = require("./.spruce/schemas/heartwoodViewControllers/v2021_02_11/tree.schema");
339
+ Object.defineProperty(exports, "treeSchema", { enumerable: true, get: function () { return __importDefault(tree_schema_1).default; } });
340
+ var treeNode_schema_1 = require("./.spruce/schemas/heartwoodViewControllers/v2021_02_11/treeNode.schema");
341
+ Object.defineProperty(exports, "treeNodeSchema", { enumerable: true, get: function () { return __importDefault(treeNode_schema_1).default; } });
335
342
  var ViewControllerExporter_1 = require("./viewControllers/ViewControllerExporter");
336
343
  Object.defineProperty(exports, "ViewControllerExporter", { enumerable: true, get: function () { return __importDefault(ViewControllerExporter_1).default; } });
337
344
  var ViewControllerImporter_1 = require("./viewControllers/ViewControllerImporter");
@@ -0,0 +1,74 @@
1
+ declare const _default: {
2
+ id: string;
3
+ name: string;
4
+ fields: {
5
+ id: {
6
+ type: "id";
7
+ };
8
+ controller: {
9
+ type: "raw";
10
+ label: string;
11
+ options: {
12
+ valueType: string;
13
+ };
14
+ };
15
+ onClickNode: {
16
+ type: "raw";
17
+ label: string;
18
+ options: {
19
+ valueType: string;
20
+ };
21
+ };
22
+ onClickDeleteNode: {
23
+ type: "raw";
24
+ label: string;
25
+ options: {
26
+ valueType: string;
27
+ };
28
+ };
29
+ nodes: {
30
+ type: "schema";
31
+ isArray: true;
32
+ minArrayLength: number;
33
+ isRequired: true;
34
+ options: {
35
+ schema: {
36
+ id: string;
37
+ fields: {
38
+ id: {
39
+ type: "id";
40
+ isRequired: true;
41
+ };
42
+ label: {
43
+ type: "text";
44
+ isRequired: true;
45
+ };
46
+ childrenIds: {
47
+ type: "id";
48
+ isArray: true;
49
+ minArrayLength: number;
50
+ };
51
+ isSelected: {
52
+ type: "boolean";
53
+ };
54
+ onClickDelete: {
55
+ type: "raw";
56
+ label: string;
57
+ options: {
58
+ valueType: string;
59
+ };
60
+ };
61
+ onClick: {
62
+ type: "raw";
63
+ label: string;
64
+ options: {
65
+ valueType: string;
66
+ };
67
+ };
68
+ };
69
+ };
70
+ };
71
+ };
72
+ };
73
+ };
74
+ export default _default;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_1 = require("@sprucelabs/schema");
4
+ exports.default = (0, schema_1.buildSchema)({
5
+ id: 'tree',
6
+ name: 'Tree',
7
+ fields: {
8
+ id: {
9
+ type: 'id',
10
+ },
11
+ controller: {
12
+ type: 'raw',
13
+ label: 'Controller',
14
+ options: {
15
+ valueType: 'HeartwoodTypes.ViewController<HeartwoodTypes.Tree>',
16
+ },
17
+ },
18
+ onClickNode: {
19
+ type: 'raw',
20
+ label: 'Node click handler',
21
+ options: {
22
+ valueType: '(nodeId: string) => void | Promise<void>',
23
+ },
24
+ },
25
+ onClickDeleteNode: {
26
+ type: 'raw',
27
+ label: 'Delete node click handler',
28
+ options: {
29
+ valueType: '(nodeId: string) => void | Promise<void>',
30
+ },
31
+ },
32
+ nodes: {
33
+ type: 'schema',
34
+ isArray: true,
35
+ minArrayLength: 0,
36
+ isRequired: true,
37
+ options: {
38
+ schema: (0, schema_1.buildSchema)({
39
+ id: 'treeNode',
40
+ fields: {
41
+ id: {
42
+ type: 'id',
43
+ isRequired: true,
44
+ },
45
+ label: {
46
+ type: 'text',
47
+ isRequired: true,
48
+ },
49
+ childrenIds: {
50
+ type: 'id',
51
+ isArray: true,
52
+ minArrayLength: 0,
53
+ },
54
+ isSelected: {
55
+ type: 'boolean',
56
+ },
57
+ onClickDelete: {
58
+ type: 'raw',
59
+ label: 'Delete click handler',
60
+ options: {
61
+ valueType: '() => void | Promise<void>',
62
+ },
63
+ },
64
+ onClick: {
65
+ type: 'raw',
66
+ label: 'Node click handler',
67
+ options: {
68
+ valueType: '() => void | Promise<void>',
69
+ },
70
+ },
71
+ },
72
+ }),
73
+ },
74
+ },
75
+ },
76
+ });
@@ -40,6 +40,7 @@ import StatsViewController, { StatsViewControllerOptions } from '../viewControll
40
40
  import SwipeCardViewControllerImpl, { SwipeCardPassthroughMethods, SwipeViewControllerOptions } from '../viewControllers/SwipeCard.vc';
41
41
  import TalkingSprucebotViewController, { TalkingSprucebotViewControllerOptions } from '../viewControllers/TalkingSprucebot.vc';
42
42
  import ToolBeltViewController, { ToolBeltViewControllerOptions } from '../viewControllers/ToolBelt.vc';
43
+ import TreeViewController, { TreeViewControllerOptions } from '../viewControllers/trees/Tree.vc';
43
44
  import ViewControllerFactory from '../viewControllers/ViewControllerFactory';
44
45
  export * from './calendar.types';
45
46
  import '@sprucelabs/mercury-core-events';
@@ -279,6 +280,8 @@ export type TalkingSprucebot = SpruceSchemas.HeartwoodViewControllers.v2021_02_1
279
280
  export type NavigationRoute = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.NavigationRoute;
280
281
  export type LayoutStyle = NonNullable<SpruceSchemas.HeartwoodViewControllers.v2021_02_11.SkillViewLayout['style']>;
281
282
  export type Video = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Video;
283
+ export type Tree = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Tree;
284
+ export type TreeNode = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.TreeNode;
282
285
  export type LayoutColumn = Card[];
283
286
  export type ListColumnWidth = NonNullable<List['columnWidths']>[number];
284
287
  export type DragAndDropListSortHandler = NonNullable<List['onDragAndDropSort']>;
@@ -374,6 +377,7 @@ export interface ViewControllerMap {
374
377
  progress: ProgressViewController;
375
378
  ratings: RatingsViewController;
376
379
  stats: StatsViewController;
380
+ tree: TreeViewController;
377
381
  }
378
382
  export interface ViewControllerOptionsMap {
379
383
  'active-record-card': ActiveRecordCardViewControllerOptions;
@@ -408,6 +412,7 @@ export interface ViewControllerOptionsMap {
408
412
  progress: ProgressViewControllerOptions;
409
413
  ratings: RatingsViewControllerOptions;
410
414
  stats: StatsViewControllerOptions;
415
+ tree: TreeViewControllerOptions;
411
416
  }
412
417
  export interface SkillViewControllerMap {
413
418
  }
@@ -0,0 +1,8 @@
1
+ import { Tree, ViewControllerOptions } from '../../types/heartwood.types';
2
+ import AbstractViewController from '../Abstract.vc';
3
+ export default class TreeViewController extends AbstractViewController<Tree> {
4
+ private model;
5
+ constructor(options: ViewControllerOptions & TreeViewControllerOptions);
6
+ render(): Tree;
7
+ }
8
+ export type TreeViewControllerOptions = Omit<Tree, 'controller'>;
@@ -0,0 +1,30 @@
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 removeUniversalViewOptions_1 = __importDefault(require("../../utilities/removeUniversalViewOptions"));
8
+ const Abstract_vc_1 = __importDefault(require("../Abstract.vc"));
9
+ class TreeViewController extends Abstract_vc_1.default {
10
+ constructor(options) {
11
+ super(options);
12
+ this.model = (0, removeUniversalViewOptions_1.default)((0, schema_1.assertOptions)(options, ['nodes']));
13
+ }
14
+ render() {
15
+ return {
16
+ nodes: this.model.nodes.map((node) => ({
17
+ ...node,
18
+ onClick: async () => {
19
+ await node.onClick?.();
20
+ await this.model.onClickNode?.(node.id);
21
+ },
22
+ onClickDelete: async () => {
23
+ await node.onClickDelete?.();
24
+ await this.model.onClickDeleteNode?.(node.id);
25
+ },
26
+ })),
27
+ };
28
+ }
29
+ }
30
+ exports.default = TreeViewController;
package/package.json CHANGED
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "license": "MIT",
26
26
  "description": "All the power of Heartwood in one, convenient package.",
27
- "version": "129.5.18",
27
+ "version": "129.5.19",
28
28
  "skill": {
29
29
  "namespace": "HeartwoodViewControllers",
30
30
  "commandOverrides": {