@sprucelabs/heartwood-view-controllers 118.1.0 → 118.2.1
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/webRtcCropPoint.schema.d.ts +3 -0
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcCropPoint.schema.js +38 -0
- package/build/.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcPlayer.schema.js +9 -0
- package/build/.spruce/schemas/schemas.types.d.ts +51 -0
- package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcCropPoint.schema.d.ts +3 -0
- package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcCropPoint.schema.js +36 -0
- package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcPlayer.schema.js +6 -0
- package/build/esm/.spruce/schemas/schemas.types.d.ts +51 -0
- package/build/esm/index.d.ts +3 -0
- package/build/esm/index.js +3 -0
- package/build/esm/schemas/v2021_02_11/webRtcPlayer.builder.d.ts +26 -0
- package/build/esm/schemas/v2021_02_11/webRtcPlayer.builder.js +26 -0
- package/build/esm/tests/utilities/webRtcAssert.d.ts +12 -1
- package/build/esm/tests/utilities/webRtcAssert.js +62 -1
- package/build/esm/tests/utilities/webRtcInteractor.d.ts +6 -0
- package/build/esm/tests/utilities/webRtcInteractor.js +20 -0
- package/build/esm/types/heartwood.types.d.ts +3 -8
- package/build/esm/viewControllers/webRtcStreaming/WebRtcPlayer.vc.d.ts +5 -1
- package/build/esm/viewControllers/webRtcStreaming/WebRtcPlayer.vc.js +20 -1
- package/build/esm/webRtcStreaming/WebRtcConnection.d.ts +1 -1
- package/build/index.d.ts +3 -0
- package/build/index.js +7 -2
- package/build/schemas/v2021_02_11/webRtcPlayer.builder.d.ts +26 -0
- package/build/schemas/v2021_02_11/webRtcPlayer.builder.js +26 -0
- package/build/tests/utilities/webRtcAssert.d.ts +12 -1
- package/build/tests/utilities/webRtcAssert.js +49 -0
- package/build/tests/utilities/webRtcInteractor.d.ts +6 -0
- package/build/tests/utilities/webRtcInteractor.js +15 -0
- package/build/types/heartwood.types.d.ts +3 -8
- package/build/viewControllers/webRtcStreaming/WebRtcPlayer.vc.d.ts +5 -1
- package/build/viewControllers/webRtcStreaming/WebRtcPlayer.vc.js +22 -1
- package/build/webRtcStreaming/WebRtcConnection.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const schema_1 = require("@sprucelabs/schema");
|
|
4
|
+
const webRtcCropPointSchema = {
|
|
5
|
+
id: 'webRtcCropPoint',
|
|
6
|
+
version: 'v2021_02_11',
|
|
7
|
+
namespace: 'HeartwoodViewControllers',
|
|
8
|
+
name: '',
|
|
9
|
+
moduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',
|
|
10
|
+
fields: {
|
|
11
|
+
/** . */
|
|
12
|
+
'xPercent': {
|
|
13
|
+
type: 'number',
|
|
14
|
+
isRequired: true,
|
|
15
|
+
options: undefined
|
|
16
|
+
},
|
|
17
|
+
/** . */
|
|
18
|
+
'yPercent': {
|
|
19
|
+
type: 'number',
|
|
20
|
+
isRequired: true,
|
|
21
|
+
options: undefined
|
|
22
|
+
},
|
|
23
|
+
/** . */
|
|
24
|
+
'widthPercent': {
|
|
25
|
+
type: 'number',
|
|
26
|
+
isRequired: true,
|
|
27
|
+
options: undefined
|
|
28
|
+
},
|
|
29
|
+
/** . */
|
|
30
|
+
'heightPercent': {
|
|
31
|
+
type: 'number',
|
|
32
|
+
isRequired: true,
|
|
33
|
+
options: undefined
|
|
34
|
+
},
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
schema_1.SchemaRegistry.getInstance().trackSchema(webRtcCropPointSchema);
|
|
38
|
+
exports.default = webRtcCropPointSchema;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
const schema_1 = require("@sprucelabs/schema");
|
|
7
|
+
const webRtcCropPoint_schema_1 = __importDefault(require("./webRtcCropPoint.schema"));
|
|
4
8
|
const webRtcPlayerSchema = {
|
|
5
9
|
id: 'webRtcPlayer',
|
|
6
10
|
version: 'v2021_02_11',
|
|
@@ -29,6 +33,11 @@ const webRtcPlayerSchema = {
|
|
|
29
33
|
options: { valueType: `HeartwoodTypes.WebRtcPlayerCropHandler`, }
|
|
30
34
|
},
|
|
31
35
|
/** . */
|
|
36
|
+
'crop': {
|
|
37
|
+
type: 'schema',
|
|
38
|
+
options: { schema: webRtcCropPoint_schema_1.default, }
|
|
39
|
+
},
|
|
40
|
+
/** . */
|
|
32
41
|
'connection': {
|
|
33
42
|
type: 'raw',
|
|
34
43
|
options: { valueType: `HeartwoodTypes.WebRtcConnection`, }
|
|
@@ -704,12 +704,56 @@ declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schem
|
|
|
704
704
|
interface InputEntity extends SchemaEntity<SpruceSchemas.HeartwoodViewControllers.v2021_02_11.InputSchema> {
|
|
705
705
|
}
|
|
706
706
|
}
|
|
707
|
+
namespace SpruceSchemas.HeartwoodViewControllers.v2021_02_11 {
|
|
708
|
+
interface WebRtcCropPoint {
|
|
709
|
+
'xPercent': number;
|
|
710
|
+
'yPercent': number;
|
|
711
|
+
'widthPercent': number;
|
|
712
|
+
'heightPercent': number;
|
|
713
|
+
}
|
|
714
|
+
interface WebRtcCropPointSchema extends SpruceSchema.Schema {
|
|
715
|
+
id: 'webRtcCropPoint';
|
|
716
|
+
version: 'v2021_02_11';
|
|
717
|
+
namespace: 'HeartwoodViewControllers';
|
|
718
|
+
name: '';
|
|
719
|
+
moduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers';
|
|
720
|
+
fields: {
|
|
721
|
+
/** . */
|
|
722
|
+
'xPercent': {
|
|
723
|
+
type: 'number';
|
|
724
|
+
isRequired: true;
|
|
725
|
+
options: undefined;
|
|
726
|
+
};
|
|
727
|
+
/** . */
|
|
728
|
+
'yPercent': {
|
|
729
|
+
type: 'number';
|
|
730
|
+
isRequired: true;
|
|
731
|
+
options: undefined;
|
|
732
|
+
};
|
|
733
|
+
/** . */
|
|
734
|
+
'widthPercent': {
|
|
735
|
+
type: 'number';
|
|
736
|
+
isRequired: true;
|
|
737
|
+
options: undefined;
|
|
738
|
+
};
|
|
739
|
+
/** . */
|
|
740
|
+
'heightPercent': {
|
|
741
|
+
type: 'number';
|
|
742
|
+
isRequired: true;
|
|
743
|
+
options: undefined;
|
|
744
|
+
};
|
|
745
|
+
};
|
|
746
|
+
}
|
|
747
|
+
interface WebRtcCropPointEntity extends SchemaEntity<SpruceSchemas.HeartwoodViewControllers.v2021_02_11.WebRtcCropPointSchema> {
|
|
748
|
+
}
|
|
749
|
+
}
|
|
707
750
|
namespace SpruceSchemas.HeartwoodViewControllers.v2021_02_11 {
|
|
708
751
|
interface WebRtcPlayer {
|
|
709
752
|
'id'?: string | undefined | null;
|
|
710
753
|
'controller'?: (HeartwoodTypes.ViewController<HeartwoodTypes.WebRtcPlayer>) | undefined | null;
|
|
711
754
|
'shouldAllowCropping'?: boolean | undefined | null;
|
|
712
755
|
'onCrop'?: (HeartwoodTypes.WebRtcPlayerCropHandler) | undefined | null;
|
|
756
|
+
'crop'?: SpruceSchemas.HeartwoodViewControllers.v2021_02_11.WebRtcCropPoint | undefined | null;
|
|
713
757
|
'connection'?: (HeartwoodTypes.WebRtcConnection) | undefined | null;
|
|
714
758
|
'streamer'?: (HeartwoodTypes.WebRtcStreamer) | undefined | null;
|
|
715
759
|
}
|
|
@@ -745,6 +789,13 @@ declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schem
|
|
|
745
789
|
};
|
|
746
790
|
};
|
|
747
791
|
/** . */
|
|
792
|
+
'crop': {
|
|
793
|
+
type: 'schema';
|
|
794
|
+
options: {
|
|
795
|
+
schema: SpruceSchemas.HeartwoodViewControllers.v2021_02_11.WebRtcCropPointSchema;
|
|
796
|
+
};
|
|
797
|
+
};
|
|
798
|
+
/** . */
|
|
748
799
|
'connection': {
|
|
749
800
|
type: 'raw';
|
|
750
801
|
options: {
|
package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcCropPoint.schema.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { SchemaRegistry } from '@sprucelabs/schema';
|
|
2
|
+
const webRtcCropPointSchema = {
|
|
3
|
+
id: 'webRtcCropPoint',
|
|
4
|
+
version: 'v2021_02_11',
|
|
5
|
+
namespace: 'HeartwoodViewControllers',
|
|
6
|
+
name: '',
|
|
7
|
+
moduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',
|
|
8
|
+
fields: {
|
|
9
|
+
/** . */
|
|
10
|
+
'xPercent': {
|
|
11
|
+
type: 'number',
|
|
12
|
+
isRequired: true,
|
|
13
|
+
options: undefined
|
|
14
|
+
},
|
|
15
|
+
/** . */
|
|
16
|
+
'yPercent': {
|
|
17
|
+
type: 'number',
|
|
18
|
+
isRequired: true,
|
|
19
|
+
options: undefined
|
|
20
|
+
},
|
|
21
|
+
/** . */
|
|
22
|
+
'widthPercent': {
|
|
23
|
+
type: 'number',
|
|
24
|
+
isRequired: true,
|
|
25
|
+
options: undefined
|
|
26
|
+
},
|
|
27
|
+
/** . */
|
|
28
|
+
'heightPercent': {
|
|
29
|
+
type: 'number',
|
|
30
|
+
isRequired: true,
|
|
31
|
+
options: undefined
|
|
32
|
+
},
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
SchemaRegistry.getInstance().trackSchema(webRtcCropPointSchema);
|
|
36
|
+
export default webRtcCropPointSchema;
|
package/build/esm/.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcPlayer.schema.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SchemaRegistry } from '@sprucelabs/schema';
|
|
2
|
+
import webRtcCropPointSchema_v2021_02_11 from './webRtcCropPoint.schema.js';
|
|
2
3
|
const webRtcPlayerSchema = {
|
|
3
4
|
id: 'webRtcPlayer',
|
|
4
5
|
version: 'v2021_02_11',
|
|
@@ -27,6 +28,11 @@ const webRtcPlayerSchema = {
|
|
|
27
28
|
options: { valueType: `HeartwoodTypes.WebRtcPlayerCropHandler`, }
|
|
28
29
|
},
|
|
29
30
|
/** . */
|
|
31
|
+
'crop': {
|
|
32
|
+
type: 'schema',
|
|
33
|
+
options: { schema: webRtcCropPointSchema_v2021_02_11, }
|
|
34
|
+
},
|
|
35
|
+
/** . */
|
|
30
36
|
'connection': {
|
|
31
37
|
type: 'raw',
|
|
32
38
|
options: { valueType: `HeartwoodTypes.WebRtcConnection`, }
|
|
@@ -704,12 +704,56 @@ declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schem
|
|
|
704
704
|
interface InputEntity extends SchemaEntity<SpruceSchemas.HeartwoodViewControllers.v2021_02_11.InputSchema> {
|
|
705
705
|
}
|
|
706
706
|
}
|
|
707
|
+
namespace SpruceSchemas.HeartwoodViewControllers.v2021_02_11 {
|
|
708
|
+
interface WebRtcCropPoint {
|
|
709
|
+
'xPercent': number;
|
|
710
|
+
'yPercent': number;
|
|
711
|
+
'widthPercent': number;
|
|
712
|
+
'heightPercent': number;
|
|
713
|
+
}
|
|
714
|
+
interface WebRtcCropPointSchema extends SpruceSchema.Schema {
|
|
715
|
+
id: 'webRtcCropPoint';
|
|
716
|
+
version: 'v2021_02_11';
|
|
717
|
+
namespace: 'HeartwoodViewControllers';
|
|
718
|
+
name: '';
|
|
719
|
+
moduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers';
|
|
720
|
+
fields: {
|
|
721
|
+
/** . */
|
|
722
|
+
'xPercent': {
|
|
723
|
+
type: 'number';
|
|
724
|
+
isRequired: true;
|
|
725
|
+
options: undefined;
|
|
726
|
+
};
|
|
727
|
+
/** . */
|
|
728
|
+
'yPercent': {
|
|
729
|
+
type: 'number';
|
|
730
|
+
isRequired: true;
|
|
731
|
+
options: undefined;
|
|
732
|
+
};
|
|
733
|
+
/** . */
|
|
734
|
+
'widthPercent': {
|
|
735
|
+
type: 'number';
|
|
736
|
+
isRequired: true;
|
|
737
|
+
options: undefined;
|
|
738
|
+
};
|
|
739
|
+
/** . */
|
|
740
|
+
'heightPercent': {
|
|
741
|
+
type: 'number';
|
|
742
|
+
isRequired: true;
|
|
743
|
+
options: undefined;
|
|
744
|
+
};
|
|
745
|
+
};
|
|
746
|
+
}
|
|
747
|
+
interface WebRtcCropPointEntity extends SchemaEntity<SpruceSchemas.HeartwoodViewControllers.v2021_02_11.WebRtcCropPointSchema> {
|
|
748
|
+
}
|
|
749
|
+
}
|
|
707
750
|
namespace SpruceSchemas.HeartwoodViewControllers.v2021_02_11 {
|
|
708
751
|
interface WebRtcPlayer {
|
|
709
752
|
'id'?: string | undefined | null;
|
|
710
753
|
'controller'?: (HeartwoodTypes.ViewController<HeartwoodTypes.WebRtcPlayer>) | undefined | null;
|
|
711
754
|
'shouldAllowCropping'?: boolean | undefined | null;
|
|
712
755
|
'onCrop'?: (HeartwoodTypes.WebRtcPlayerCropHandler) | undefined | null;
|
|
756
|
+
'crop'?: SpruceSchemas.HeartwoodViewControllers.v2021_02_11.WebRtcCropPoint | undefined | null;
|
|
713
757
|
'connection'?: (HeartwoodTypes.WebRtcConnection) | undefined | null;
|
|
714
758
|
'streamer'?: (HeartwoodTypes.WebRtcStreamer) | undefined | null;
|
|
715
759
|
}
|
|
@@ -745,6 +789,13 @@ declare module '@sprucelabs/spruce-core-schemas/build/.spruce/schemas/core.schem
|
|
|
745
789
|
};
|
|
746
790
|
};
|
|
747
791
|
/** . */
|
|
792
|
+
'crop': {
|
|
793
|
+
type: 'schema';
|
|
794
|
+
options: {
|
|
795
|
+
schema: SpruceSchemas.HeartwoodViewControllers.v2021_02_11.WebRtcCropPointSchema;
|
|
796
|
+
};
|
|
797
|
+
};
|
|
798
|
+
/** . */
|
|
748
799
|
'connection': {
|
|
749
800
|
type: 'raw';
|
|
750
801
|
options: {
|
package/build/esm/index.d.ts
CHANGED
|
@@ -152,6 +152,7 @@ export { default as polarAreaSchema } from './.spruce/schemas/heartwoodViewContr
|
|
|
152
152
|
export { default as polarAreaDataItemSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/polarAreaDataItem.schema';
|
|
153
153
|
export { default as pagerSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/pager.schema';
|
|
154
154
|
export { default as webRtcPlayerSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcPlayer.schema';
|
|
155
|
+
export { default as webRtcCropPointSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcCropPoint.schema';
|
|
155
156
|
export { default as ViewControllerExporter } from './viewControllers/ViewControllerExporter';
|
|
156
157
|
export { default as ViewControllerImporter } from './viewControllers/ViewControllerImporter';
|
|
157
158
|
export { default as ViewControllerFactory } from './viewControllers/ViewControllerFactory';
|
|
@@ -175,6 +176,8 @@ export { default as listAssert } from './tests/utilities/listAssert';
|
|
|
175
176
|
export { default as autocompleteAssert } from './tests/utilities/autocompleteAssert';
|
|
176
177
|
export { default as formAssert } from './tests/utilities/formAssert';
|
|
177
178
|
export { default as webRtcAssert } from './tests/utilities/webRtcAssert';
|
|
179
|
+
export * from './tests/utilities/webRtcAssert';
|
|
180
|
+
export { default as webRtcInteractor } from './tests/utilities/webRtcInteractor';
|
|
178
181
|
export { default as autocompleteInteractor } from './tests/utilities/autocompleteInteractor';
|
|
179
182
|
export { normalizeScopeFromVc } from './tests/utilities/vcAssert';
|
|
180
183
|
export { default as interactor } from './tests/utilities/interactor';
|
package/build/esm/index.js
CHANGED
|
@@ -151,6 +151,7 @@ export { default as polarAreaSchema } from './.spruce/schemas/heartwoodViewContr
|
|
|
151
151
|
export { default as polarAreaDataItemSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/polarAreaDataItem.schema.js';
|
|
152
152
|
export { default as pagerSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/pager.schema.js';
|
|
153
153
|
export { default as webRtcPlayerSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcPlayer.schema.js';
|
|
154
|
+
export { default as webRtcCropPointSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcCropPoint.schema.js';
|
|
154
155
|
export { default as ViewControllerExporter } from './viewControllers/ViewControllerExporter.js';
|
|
155
156
|
export { default as ViewControllerImporter } from './viewControllers/ViewControllerImporter.js';
|
|
156
157
|
export { default as ViewControllerFactory } from './viewControllers/ViewControllerFactory.js';
|
|
@@ -174,6 +175,8 @@ export { default as listAssert } from './tests/utilities/listAssert.js';
|
|
|
174
175
|
export { default as autocompleteAssert } from './tests/utilities/autocompleteAssert.js';
|
|
175
176
|
export { default as formAssert } from './tests/utilities/formAssert.js';
|
|
176
177
|
export { default as webRtcAssert } from './tests/utilities/webRtcAssert.js';
|
|
178
|
+
export * from './tests/utilities/webRtcAssert.js';
|
|
179
|
+
export { default as webRtcInteractor } from './tests/utilities/webRtcInteractor.js';
|
|
177
180
|
export { default as autocompleteInteractor } from './tests/utilities/autocompleteInteractor.js';
|
|
178
181
|
export { normalizeScopeFromVc } from './tests/utilities/vcAssert.js';
|
|
179
182
|
export { default as interactor } from './tests/utilities/interactor.js';
|
|
@@ -19,6 +19,32 @@ declare const _default: {
|
|
|
19
19
|
valueType: string;
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
+
crop: {
|
|
23
|
+
type: "schema";
|
|
24
|
+
options: {
|
|
25
|
+
schema: {
|
|
26
|
+
id: string;
|
|
27
|
+
fields: {
|
|
28
|
+
xPercent: {
|
|
29
|
+
type: "number";
|
|
30
|
+
isRequired: true;
|
|
31
|
+
};
|
|
32
|
+
yPercent: {
|
|
33
|
+
type: "number";
|
|
34
|
+
isRequired: true;
|
|
35
|
+
};
|
|
36
|
+
widthPercent: {
|
|
37
|
+
type: "number";
|
|
38
|
+
isRequired: true;
|
|
39
|
+
};
|
|
40
|
+
heightPercent: {
|
|
41
|
+
type: "number";
|
|
42
|
+
isRequired: true;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
};
|
|
22
48
|
connection: {
|
|
23
49
|
type: "raw";
|
|
24
50
|
options: {
|
|
@@ -20,6 +20,32 @@ export default buildSchema({
|
|
|
20
20
|
valueType: 'HeartwoodTypes.WebRtcPlayerCropHandler',
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
|
+
crop: {
|
|
24
|
+
type: 'schema',
|
|
25
|
+
options: {
|
|
26
|
+
schema: buildSchema({
|
|
27
|
+
id: 'webRtcCropPoint',
|
|
28
|
+
fields: {
|
|
29
|
+
xPercent: {
|
|
30
|
+
type: 'number',
|
|
31
|
+
isRequired: true,
|
|
32
|
+
},
|
|
33
|
+
yPercent: {
|
|
34
|
+
type: 'number',
|
|
35
|
+
isRequired: true,
|
|
36
|
+
},
|
|
37
|
+
widthPercent: {
|
|
38
|
+
type: 'number',
|
|
39
|
+
isRequired: true,
|
|
40
|
+
},
|
|
41
|
+
heightPercent: {
|
|
42
|
+
type: 'number',
|
|
43
|
+
isRequired: true,
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
}),
|
|
47
|
+
},
|
|
48
|
+
},
|
|
23
49
|
connection: {
|
|
24
50
|
type: 'raw',
|
|
25
51
|
options: {
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
import { ViewController, Card } from '../../types/heartwood.types';
|
|
1
|
+
import { ViewController, Card, SimpleViewControllerFactory } from '../../types/heartwood.types';
|
|
2
2
|
import WebRtcPlayerViewController from '../../viewControllers/webRtcStreaming/WebRtcPlayer.vc';
|
|
3
3
|
declare const webRtcAssert: {
|
|
4
|
+
beforeEach: (views: SimpleViewControllerFactory) => void;
|
|
4
5
|
cardRendersPlayer: (vc: ViewController<Card>, id?: string) => WebRtcPlayerViewController;
|
|
6
|
+
actionCreatesOffer: (vc: WebRtcPlayerViewController, action: () => void | Promise<void>, expectedOptions?: RTCOfferOptions) => Promise<void>;
|
|
7
|
+
answerSet: (vc: WebRtcPlayerViewController, answerSdp?: string) => Promise<void>;
|
|
5
8
|
};
|
|
6
9
|
export default webRtcAssert;
|
|
10
|
+
export declare class AssertingWebRtcPlayerViewController extends WebRtcPlayerViewController {
|
|
11
|
+
private onCreateOfferHandler?;
|
|
12
|
+
private passedAnswer?;
|
|
13
|
+
onCreateOffer(cb: (offerOptions: RTCOfferOptions) => void): void;
|
|
14
|
+
createOffer(offerOptions: RTCOfferOptions): Promise<string>;
|
|
15
|
+
setAnswer(answerSdp: string): Promise<void>;
|
|
16
|
+
assertAnswerWasSet(answerSdp?: string): void;
|
|
17
|
+
}
|
|
@@ -1,8 +1,21 @@
|
|
|
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
|
+
};
|
|
1
10
|
import { assertOptions } from '@sprucelabs/schema';
|
|
2
|
-
import { assert } from '@sprucelabs/test-utils';
|
|
11
|
+
import { assert, generateId } from '@sprucelabs/test-utils';
|
|
3
12
|
import renderUtil from '../../utilities/render.utility.js';
|
|
13
|
+
import WebRtcPlayerViewController from '../../viewControllers/webRtcStreaming/WebRtcPlayer.vc.js';
|
|
4
14
|
import { pluckAllFromView } from './assertSupport.js';
|
|
5
15
|
const webRtcAssert = {
|
|
16
|
+
beforeEach: (views) => {
|
|
17
|
+
views.setController('web-rtc-player', AssertingWebRtcPlayerViewController);
|
|
18
|
+
},
|
|
6
19
|
cardRendersPlayer: (vc, id) => {
|
|
7
20
|
assertOptions({ vc }, ['vc']);
|
|
8
21
|
const model = renderUtil.render(vc);
|
|
@@ -18,5 +31,53 @@ const webRtcAssert = {
|
|
|
18
31
|
}
|
|
19
32
|
return players[0].controller;
|
|
20
33
|
},
|
|
34
|
+
actionCreatesOffer: (vc, action, expectedOptions) => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
assertOptions({ vc, action }, ['vc', 'action']);
|
|
36
|
+
const assertingVc = assertCalledBeforeEach(vc);
|
|
37
|
+
let wasHit = false;
|
|
38
|
+
let passedOptions;
|
|
39
|
+
assertingVc.onCreateOffer((options) => {
|
|
40
|
+
passedOptions = options;
|
|
41
|
+
wasHit = true;
|
|
42
|
+
});
|
|
43
|
+
yield action();
|
|
44
|
+
if (expectedOptions) {
|
|
45
|
+
assert.isEqualDeep(passedOptions, expectedOptions, `The options you passed to createOffer did not matching.`);
|
|
46
|
+
}
|
|
47
|
+
assert.isTrue(wasHit, `You did not create an offer. Try 'const offer = await this.plaperVc.createOffer()'`);
|
|
48
|
+
}),
|
|
49
|
+
answerSet: (vc, answerSdp) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
assertOptions({ vc }, ['vc']);
|
|
51
|
+
const assertingVc = assertCalledBeforeEach(vc);
|
|
52
|
+
assertingVc.assertAnswerWasSet(answerSdp);
|
|
53
|
+
}),
|
|
21
54
|
};
|
|
22
55
|
export default webRtcAssert;
|
|
56
|
+
export class AssertingWebRtcPlayerViewController extends WebRtcPlayerViewController {
|
|
57
|
+
onCreateOffer(cb) {
|
|
58
|
+
this.onCreateOfferHandler = cb;
|
|
59
|
+
}
|
|
60
|
+
createOffer(offerOptions) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
var _a;
|
|
63
|
+
(_a = this.onCreateOfferHandler) === null || _a === void 0 ? void 0 : _a.call(this, offerOptions);
|
|
64
|
+
return generateId();
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
setAnswer(answerSdp) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
this.passedAnswer = answerSdp;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
assertAnswerWasSet(answerSdp) {
|
|
73
|
+
assert.isTruthy(this.passedAnswer, `You did not call setAnswer. Try 'await this.playerVc.setAnswer(offer)'`);
|
|
74
|
+
if (answerSdp) {
|
|
75
|
+
assert.isEqual(this.passedAnswer, answerSdp, `The answer you passed to 'await this.playerVc.setAnswer(...)' did not match expected.`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function assertCalledBeforeEach(vc) {
|
|
80
|
+
assert.isInstanceOf(vc, AssertingWebRtcPlayerViewController, `You have to run webRtcAssert.beforeEach(this.views) in your beforeEach before you create any ViewControllers.`);
|
|
81
|
+
const assertingVc = vc;
|
|
82
|
+
return assertingVc;
|
|
83
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { WebRtcCropPoint } from '../../types/heartwood.types';
|
|
2
|
+
import WebRtcPlayerViewController from '../../viewControllers/webRtcStreaming/WebRtcPlayer.vc';
|
|
3
|
+
declare const webRtcInteractor: {
|
|
4
|
+
simulateCrop: (vc: WebRtcPlayerViewController, cropPoint?: WebRtcCropPoint) => Promise<void>;
|
|
5
|
+
};
|
|
6
|
+
export default webRtcInteractor;
|
|
@@ -0,0 +1,20 @@
|
|
|
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 renderUtil from '../../utilities/render.utility.js';
|
|
12
|
+
const webRtcInteractor = {
|
|
13
|
+
simulateCrop: (vc, cropPoint) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
|
+
var _a;
|
|
15
|
+
assertOptions({ vc }, ['vc']);
|
|
16
|
+
const model = renderUtil.render(vc);
|
|
17
|
+
yield ((_a = model.onCrop) === null || _a === void 0 ? void 0 : _a.call(model, cropPoint));
|
|
18
|
+
}),
|
|
19
|
+
};
|
|
20
|
+
export default webRtcInteractor;
|
|
@@ -216,7 +216,7 @@ export type Button = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Button;
|
|
|
216
216
|
export type ToolBelt = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.ToolBelt;
|
|
217
217
|
export type Feed = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Feed;
|
|
218
218
|
export type Layout = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Layout;
|
|
219
|
-
export type SimpleViewControllerFactory = Pick<ViewControllerFactory, 'Controller'>;
|
|
219
|
+
export type SimpleViewControllerFactory = Pick<ViewControllerFactory, 'Controller' | 'setController'>;
|
|
220
220
|
export type CalendarSelectedDate = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.CalendarSelectedDate;
|
|
221
221
|
export type FormSection<S extends Schema> = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.FormSection<S>;
|
|
222
222
|
export type Map = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Map;
|
|
@@ -258,13 +258,8 @@ export type TriggerRender = () => void;
|
|
|
258
258
|
export type TriggerRenderHandler = () => void;
|
|
259
259
|
export { WebRtcStreamer } from '../webRtcStreaming/WebRtcStreamer';
|
|
260
260
|
export * from '../webRtcStreaming/WebRtcConnection';
|
|
261
|
-
export
|
|
262
|
-
|
|
263
|
-
y: number;
|
|
264
|
-
width: number;
|
|
265
|
-
height: number;
|
|
266
|
-
}
|
|
267
|
-
export type WebRtcPlayerCropHandler = (point?: Point) => void;
|
|
261
|
+
export type WebRtcCropPoint = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.WebRtcCropPoint;
|
|
262
|
+
export type WebRtcPlayerCropHandler = (point?: WebRtcCropPoint) => void | Promise<void>;
|
|
268
263
|
export interface ViewController<ViewModel extends Record<string, any>> {
|
|
269
264
|
render(): ViewModel;
|
|
270
265
|
setTriggerRenderHandler: (handler: TriggerRenderHandler) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ViewControllerOptions, WebRtcPlayer } from '../../types/heartwood.types';
|
|
1
|
+
import { ViewControllerOptions, WebRtcCropPoint, WebRtcPlayer } from '../../types/heartwood.types';
|
|
2
2
|
import { WebRtcStreamer } from '../../webRtcStreaming/WebRtcStreamer';
|
|
3
3
|
import AbstractViewController from '../Abstract.vc';
|
|
4
4
|
export default class WebRtcPlayerViewController extends AbstractViewController<WebRtcPlayer> {
|
|
@@ -9,6 +9,10 @@ export default class WebRtcPlayerViewController extends AbstractViewController<W
|
|
|
9
9
|
setStreamer(streamer: WebRtcStreamer): void;
|
|
10
10
|
createOffer(offerOptions: RTCOfferOptions): Promise<string>;
|
|
11
11
|
setAnswer(answerSdp: string): Promise<void>;
|
|
12
|
+
getCrop(): import("@sprucelabs/mercury-types").SpruceSchemas.HeartwoodViewControllers.v2021_02_11.WebRtcCropPoint | null | undefined;
|
|
13
|
+
enableCropping(): void;
|
|
14
|
+
disableCropping(): void;
|
|
15
|
+
setCrop(point?: WebRtcCropPoint): void;
|
|
12
16
|
render(): WebRtcPlayer;
|
|
13
17
|
}
|
|
14
18
|
export interface WebRtcPlayerOptions extends WebRtcPlayer {
|
|
@@ -42,8 +42,27 @@ class WebRtcPlayerViewController extends AbstractViewController {
|
|
|
42
42
|
yield this.model.streamer.setAnswer(answerSdp);
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
+
getCrop() {
|
|
46
|
+
return this.model.crop;
|
|
47
|
+
}
|
|
48
|
+
enableCropping() {
|
|
49
|
+
this.model.shouldAllowCropping = true;
|
|
50
|
+
this.triggerRender();
|
|
51
|
+
}
|
|
52
|
+
disableCropping() {
|
|
53
|
+
this.model.shouldAllowCropping = false;
|
|
54
|
+
this.triggerRender();
|
|
55
|
+
}
|
|
56
|
+
setCrop(point) {
|
|
57
|
+
var _a, _b;
|
|
58
|
+
this.model.crop = point;
|
|
59
|
+
void ((_b = (_a = this.model).onCrop) === null || _b === void 0 ? void 0 : _b.call(_a, point));
|
|
60
|
+
this.triggerRender();
|
|
61
|
+
}
|
|
45
62
|
render() {
|
|
46
|
-
return this.model
|
|
63
|
+
return Object.assign(Object.assign({}, this.model), { onCrop: (point) => {
|
|
64
|
+
this.setCrop(point);
|
|
65
|
+
} });
|
|
47
66
|
}
|
|
48
67
|
}
|
|
49
68
|
WebRtcPlayerViewController.id = 'web-rtc-player-card';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import MockRtcPeerConnection from '../tests/MockRtcPeerConnection';
|
|
2
2
|
import { WebRtcStreamer } from './WebRtcStreamer';
|
|
3
3
|
export default class WebRtcConnectionImpl implements WebRtcConnection {
|
|
4
|
-
static Class
|
|
4
|
+
static Class?: new () => WebRtcConnection;
|
|
5
5
|
static get RTCPeerConnection(): new (config: RTCConfiguration) => RTCPeerConnection | MockRtcPeerConnection;
|
|
6
6
|
static set RTCPeerConnection(value: new (config: RTCConfiguration) => RTCPeerConnection | MockRtcPeerConnection);
|
|
7
7
|
private stateChangeListeners;
|
package/build/index.d.ts
CHANGED
|
@@ -152,6 +152,7 @@ export { default as polarAreaSchema } from './.spruce/schemas/heartwoodViewContr
|
|
|
152
152
|
export { default as polarAreaDataItemSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/polarAreaDataItem.schema';
|
|
153
153
|
export { default as pagerSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/pager.schema';
|
|
154
154
|
export { default as webRtcPlayerSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcPlayer.schema';
|
|
155
|
+
export { default as webRtcCropPointSchema } from './.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcCropPoint.schema';
|
|
155
156
|
export { default as ViewControllerExporter } from './viewControllers/ViewControllerExporter';
|
|
156
157
|
export { default as ViewControllerImporter } from './viewControllers/ViewControllerImporter';
|
|
157
158
|
export { default as ViewControllerFactory } from './viewControllers/ViewControllerFactory';
|
|
@@ -175,6 +176,8 @@ export { default as listAssert } from './tests/utilities/listAssert';
|
|
|
175
176
|
export { default as autocompleteAssert } from './tests/utilities/autocompleteAssert';
|
|
176
177
|
export { default as formAssert } from './tests/utilities/formAssert';
|
|
177
178
|
export { default as webRtcAssert } from './tests/utilities/webRtcAssert';
|
|
179
|
+
export * from './tests/utilities/webRtcAssert';
|
|
180
|
+
export { default as webRtcInteractor } from './tests/utilities/webRtcInteractor';
|
|
178
181
|
export { default as autocompleteInteractor } from './tests/utilities/autocompleteInteractor';
|
|
179
182
|
export { normalizeScopeFromVc } from './tests/utilities/vcAssert';
|
|
180
183
|
export { default as interactor } from './tests/utilities/interactor';
|
package/build/index.js
CHANGED
|
@@ -19,8 +19,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
20
|
exports.WebRtcConnectionImpl = exports.MockRtcPeerConnection = exports.WebRtcStreamerImpl = exports.buildSkillView = exports.buildForm = exports.buildBigForm = exports.AuthenticatorImpl = exports.PolarAreaViewController = exports.SpyViewControllerExporter = 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.WebRtcPlayerViewController = exports.PagerViewController = exports.ProgressNavigatorViewController = exports.CountdownTimerViewController = exports.FormBuilderCardViewControllerImpl = 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
21
|
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 = exports.lineIconSchema = exports.fancyIconSchema = exports.selectInputSchema = exports.skillViewSchema = exports.bigFormSchema = exports.calendarEventColorsSchema = void 0;
|
|
22
|
-
exports.
|
|
23
|
-
exports.navigationRouteSchema = exports.routerDestinationSchema = exports.navigationDropdownButtonSchema = exports.navigationButtonDropdownSchema = exports.chartDataSetSchema = 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.splitCardsIntoLayouts = exports.listUtil = exports.mapInteractor = exports.mapAssert = exports.renderUtil = exports.routerTestPatcher = exports.dialogTestPatcher = exports.confirmTestPatcher = exports.calendarSeeder = exports.interactionUtil = exports.chartAssert = exports.progressNavigatorAssert = exports.countdownTimerInteractor = exports.countdownTimerAssert = exports.calendarInteractor = exports.interactor = exports.normalizeScopeFromVc = exports.autocompleteInteractor = exports.webRtcAssert = exports.formAssert = exports.autocompleteAssert = void 0;
|
|
22
|
+
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.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 = void 0;
|
|
23
|
+
exports.navigationRouteSchema = exports.routerDestinationSchema = exports.navigationDropdownButtonSchema = exports.navigationButtonDropdownSchema = exports.chartDataSetSchema = 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.splitCardsIntoLayouts = exports.listUtil = exports.mapInteractor = exports.mapAssert = exports.renderUtil = exports.routerTestPatcher = exports.dialogTestPatcher = exports.confirmTestPatcher = exports.calendarSeeder = exports.interactionUtil = exports.chartAssert = exports.progressNavigatorAssert = exports.countdownTimerInteractor = exports.countdownTimerAssert = exports.calendarInteractor = exports.interactor = exports.normalizeScopeFromVc = exports.autocompleteInteractor = exports.webRtcInteractor = exports.webRtcAssert = exports.formAssert = exports.autocompleteAssert = exports.listAssert = void 0;
|
|
24
24
|
__exportStar(require("./constants"), exports);
|
|
25
25
|
__exportStar(require("./types/heartwood.types"), exports);
|
|
26
26
|
__exportStar(require("./utilities/removeUniversalViewOptions"), exports);
|
|
@@ -304,6 +304,8 @@ var pager_schema_1 = require("./.spruce/schemas/heartwoodViewControllers/v2021_0
|
|
|
304
304
|
Object.defineProperty(exports, "pagerSchema", { enumerable: true, get: function () { return __importDefault(pager_schema_1).default; } });
|
|
305
305
|
var webRtcPlayer_schema_1 = require("./.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcPlayer.schema");
|
|
306
306
|
Object.defineProperty(exports, "webRtcPlayerSchema", { enumerable: true, get: function () { return __importDefault(webRtcPlayer_schema_1).default; } });
|
|
307
|
+
var webRtcCropPoint_schema_1 = require("./.spruce/schemas/heartwoodViewControllers/v2021_02_11/webRtcCropPoint.schema");
|
|
308
|
+
Object.defineProperty(exports, "webRtcCropPointSchema", { enumerable: true, get: function () { return __importDefault(webRtcCropPoint_schema_1).default; } });
|
|
307
309
|
var ViewControllerExporter_1 = require("./viewControllers/ViewControllerExporter");
|
|
308
310
|
Object.defineProperty(exports, "ViewControllerExporter", { enumerable: true, get: function () { return __importDefault(ViewControllerExporter_1).default; } });
|
|
309
311
|
var ViewControllerImporter_1 = require("./viewControllers/ViewControllerImporter");
|
|
@@ -350,6 +352,9 @@ var formAssert_1 = require("./tests/utilities/formAssert");
|
|
|
350
352
|
Object.defineProperty(exports, "formAssert", { enumerable: true, get: function () { return __importDefault(formAssert_1).default; } });
|
|
351
353
|
var webRtcAssert_1 = require("./tests/utilities/webRtcAssert");
|
|
352
354
|
Object.defineProperty(exports, "webRtcAssert", { enumerable: true, get: function () { return __importDefault(webRtcAssert_1).default; } });
|
|
355
|
+
__exportStar(require("./tests/utilities/webRtcAssert"), exports);
|
|
356
|
+
var webRtcInteractor_1 = require("./tests/utilities/webRtcInteractor");
|
|
357
|
+
Object.defineProperty(exports, "webRtcInteractor", { enumerable: true, get: function () { return __importDefault(webRtcInteractor_1).default; } });
|
|
353
358
|
var autocompleteInteractor_1 = require("./tests/utilities/autocompleteInteractor");
|
|
354
359
|
Object.defineProperty(exports, "autocompleteInteractor", { enumerable: true, get: function () { return __importDefault(autocompleteInteractor_1).default; } });
|
|
355
360
|
var vcAssert_2 = require("./tests/utilities/vcAssert");
|
|
@@ -19,6 +19,32 @@ declare const _default: {
|
|
|
19
19
|
valueType: string;
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
+
crop: {
|
|
23
|
+
type: "schema";
|
|
24
|
+
options: {
|
|
25
|
+
schema: {
|
|
26
|
+
id: string;
|
|
27
|
+
fields: {
|
|
28
|
+
xPercent: {
|
|
29
|
+
type: "number";
|
|
30
|
+
isRequired: true;
|
|
31
|
+
};
|
|
32
|
+
yPercent: {
|
|
33
|
+
type: "number";
|
|
34
|
+
isRequired: true;
|
|
35
|
+
};
|
|
36
|
+
widthPercent: {
|
|
37
|
+
type: "number";
|
|
38
|
+
isRequired: true;
|
|
39
|
+
};
|
|
40
|
+
heightPercent: {
|
|
41
|
+
type: "number";
|
|
42
|
+
isRequired: true;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
};
|
|
22
48
|
connection: {
|
|
23
49
|
type: "raw";
|
|
24
50
|
options: {
|
|
@@ -22,6 +22,32 @@ exports.default = (0, schema_1.buildSchema)({
|
|
|
22
22
|
valueType: 'HeartwoodTypes.WebRtcPlayerCropHandler',
|
|
23
23
|
},
|
|
24
24
|
},
|
|
25
|
+
crop: {
|
|
26
|
+
type: 'schema',
|
|
27
|
+
options: {
|
|
28
|
+
schema: (0, schema_1.buildSchema)({
|
|
29
|
+
id: 'webRtcCropPoint',
|
|
30
|
+
fields: {
|
|
31
|
+
xPercent: {
|
|
32
|
+
type: 'number',
|
|
33
|
+
isRequired: true,
|
|
34
|
+
},
|
|
35
|
+
yPercent: {
|
|
36
|
+
type: 'number',
|
|
37
|
+
isRequired: true,
|
|
38
|
+
},
|
|
39
|
+
widthPercent: {
|
|
40
|
+
type: 'number',
|
|
41
|
+
isRequired: true,
|
|
42
|
+
},
|
|
43
|
+
heightPercent: {
|
|
44
|
+
type: 'number',
|
|
45
|
+
isRequired: true,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
}),
|
|
49
|
+
},
|
|
50
|
+
},
|
|
25
51
|
connection: {
|
|
26
52
|
type: 'raw',
|
|
27
53
|
options: {
|
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
import { ViewController, Card } from '../../types/heartwood.types';
|
|
1
|
+
import { ViewController, Card, SimpleViewControllerFactory } from '../../types/heartwood.types';
|
|
2
2
|
import WebRtcPlayerViewController from '../../viewControllers/webRtcStreaming/WebRtcPlayer.vc';
|
|
3
3
|
declare const webRtcAssert: {
|
|
4
|
+
beforeEach: (views: SimpleViewControllerFactory) => void;
|
|
4
5
|
cardRendersPlayer: (vc: ViewController<Card>, id?: string) => WebRtcPlayerViewController;
|
|
6
|
+
actionCreatesOffer: (vc: WebRtcPlayerViewController, action: () => void | Promise<void>, expectedOptions?: RTCOfferOptions) => Promise<void>;
|
|
7
|
+
answerSet: (vc: WebRtcPlayerViewController, answerSdp?: string) => Promise<void>;
|
|
5
8
|
};
|
|
6
9
|
export default webRtcAssert;
|
|
10
|
+
export declare class AssertingWebRtcPlayerViewController extends WebRtcPlayerViewController {
|
|
11
|
+
private onCreateOfferHandler?;
|
|
12
|
+
private passedAnswer?;
|
|
13
|
+
onCreateOffer(cb: (offerOptions: RTCOfferOptions) => void): void;
|
|
14
|
+
createOffer(offerOptions: RTCOfferOptions): Promise<string>;
|
|
15
|
+
setAnswer(answerSdp: string): Promise<void>;
|
|
16
|
+
assertAnswerWasSet(answerSdp?: string): void;
|
|
17
|
+
}
|
|
@@ -3,11 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AssertingWebRtcPlayerViewController = void 0;
|
|
6
7
|
const schema_1 = require("@sprucelabs/schema");
|
|
7
8
|
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
8
9
|
const render_utility_1 = __importDefault(require("../../utilities/render.utility"));
|
|
10
|
+
const WebRtcPlayer_vc_1 = __importDefault(require("../../viewControllers/webRtcStreaming/WebRtcPlayer.vc"));
|
|
9
11
|
const assertSupport_1 = require("./assertSupport");
|
|
10
12
|
const webRtcAssert = {
|
|
13
|
+
beforeEach: (views) => {
|
|
14
|
+
views.setController('web-rtc-player', AssertingWebRtcPlayerViewController);
|
|
15
|
+
},
|
|
11
16
|
cardRendersPlayer: (vc, id) => {
|
|
12
17
|
(0, schema_1.assertOptions)({ vc }, ['vc']);
|
|
13
18
|
const model = render_utility_1.default.render(vc);
|
|
@@ -23,5 +28,49 @@ const webRtcAssert = {
|
|
|
23
28
|
}
|
|
24
29
|
return players[0].controller;
|
|
25
30
|
},
|
|
31
|
+
actionCreatesOffer: async (vc, action, expectedOptions) => {
|
|
32
|
+
(0, schema_1.assertOptions)({ vc, action }, ['vc', 'action']);
|
|
33
|
+
const assertingVc = assertCalledBeforeEach(vc);
|
|
34
|
+
let wasHit = false;
|
|
35
|
+
let passedOptions;
|
|
36
|
+
assertingVc.onCreateOffer((options) => {
|
|
37
|
+
passedOptions = options;
|
|
38
|
+
wasHit = true;
|
|
39
|
+
});
|
|
40
|
+
await action();
|
|
41
|
+
if (expectedOptions) {
|
|
42
|
+
test_utils_1.assert.isEqualDeep(passedOptions, expectedOptions, `The options you passed to createOffer did not matching.`);
|
|
43
|
+
}
|
|
44
|
+
test_utils_1.assert.isTrue(wasHit, `You did not create an offer. Try 'const offer = await this.plaperVc.createOffer()'`);
|
|
45
|
+
},
|
|
46
|
+
answerSet: async (vc, answerSdp) => {
|
|
47
|
+
(0, schema_1.assertOptions)({ vc }, ['vc']);
|
|
48
|
+
const assertingVc = assertCalledBeforeEach(vc);
|
|
49
|
+
assertingVc.assertAnswerWasSet(answerSdp);
|
|
50
|
+
},
|
|
26
51
|
};
|
|
27
52
|
exports.default = webRtcAssert;
|
|
53
|
+
class AssertingWebRtcPlayerViewController extends WebRtcPlayer_vc_1.default {
|
|
54
|
+
onCreateOffer(cb) {
|
|
55
|
+
this.onCreateOfferHandler = cb;
|
|
56
|
+
}
|
|
57
|
+
async createOffer(offerOptions) {
|
|
58
|
+
this.onCreateOfferHandler?.(offerOptions);
|
|
59
|
+
return (0, test_utils_1.generateId)();
|
|
60
|
+
}
|
|
61
|
+
async setAnswer(answerSdp) {
|
|
62
|
+
this.passedAnswer = answerSdp;
|
|
63
|
+
}
|
|
64
|
+
assertAnswerWasSet(answerSdp) {
|
|
65
|
+
test_utils_1.assert.isTruthy(this.passedAnswer, `You did not call setAnswer. Try 'await this.playerVc.setAnswer(offer)'`);
|
|
66
|
+
if (answerSdp) {
|
|
67
|
+
test_utils_1.assert.isEqual(this.passedAnswer, answerSdp, `The answer you passed to 'await this.playerVc.setAnswer(...)' did not match expected.`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.AssertingWebRtcPlayerViewController = AssertingWebRtcPlayerViewController;
|
|
72
|
+
function assertCalledBeforeEach(vc) {
|
|
73
|
+
test_utils_1.assert.isInstanceOf(vc, AssertingWebRtcPlayerViewController, `You have to run webRtcAssert.beforeEach(this.views) in your beforeEach before you create any ViewControllers.`);
|
|
74
|
+
const assertingVc = vc;
|
|
75
|
+
return assertingVc;
|
|
76
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { WebRtcCropPoint } from '../../types/heartwood.types';
|
|
2
|
+
import WebRtcPlayerViewController from '../../viewControllers/webRtcStreaming/WebRtcPlayer.vc';
|
|
3
|
+
declare const webRtcInteractor: {
|
|
4
|
+
simulateCrop: (vc: WebRtcPlayerViewController, cropPoint?: WebRtcCropPoint) => Promise<void>;
|
|
5
|
+
};
|
|
6
|
+
export default webRtcInteractor;
|
|
@@ -0,0 +1,15 @@
|
|
|
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 render_utility_1 = __importDefault(require("../../utilities/render.utility"));
|
|
8
|
+
const webRtcInteractor = {
|
|
9
|
+
simulateCrop: async (vc, cropPoint) => {
|
|
10
|
+
(0, schema_1.assertOptions)({ vc }, ['vc']);
|
|
11
|
+
const model = render_utility_1.default.render(vc);
|
|
12
|
+
await model.onCrop?.(cropPoint);
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
exports.default = webRtcInteractor;
|
|
@@ -216,7 +216,7 @@ export type Button = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Button;
|
|
|
216
216
|
export type ToolBelt = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.ToolBelt;
|
|
217
217
|
export type Feed = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Feed;
|
|
218
218
|
export type Layout = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Layout;
|
|
219
|
-
export type SimpleViewControllerFactory = Pick<ViewControllerFactory, 'Controller'>;
|
|
219
|
+
export type SimpleViewControllerFactory = Pick<ViewControllerFactory, 'Controller' | 'setController'>;
|
|
220
220
|
export type CalendarSelectedDate = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.CalendarSelectedDate;
|
|
221
221
|
export type FormSection<S extends Schema> = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.FormSection<S>;
|
|
222
222
|
export type Map = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.Map;
|
|
@@ -258,13 +258,8 @@ export type TriggerRender = () => void;
|
|
|
258
258
|
export type TriggerRenderHandler = () => void;
|
|
259
259
|
export { WebRtcStreamer } from '../webRtcStreaming/WebRtcStreamer';
|
|
260
260
|
export * from '../webRtcStreaming/WebRtcConnection';
|
|
261
|
-
export
|
|
262
|
-
|
|
263
|
-
y: number;
|
|
264
|
-
width: number;
|
|
265
|
-
height: number;
|
|
266
|
-
}
|
|
267
|
-
export type WebRtcPlayerCropHandler = (point?: Point) => void;
|
|
261
|
+
export type WebRtcCropPoint = SpruceSchemas.HeartwoodViewControllers.v2021_02_11.WebRtcCropPoint;
|
|
262
|
+
export type WebRtcPlayerCropHandler = (point?: WebRtcCropPoint) => void | Promise<void>;
|
|
268
263
|
export interface ViewController<ViewModel extends Record<string, any>> {
|
|
269
264
|
render(): ViewModel;
|
|
270
265
|
setTriggerRenderHandler: (handler: TriggerRenderHandler) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ViewControllerOptions, WebRtcPlayer } from '../../types/heartwood.types';
|
|
1
|
+
import { ViewControllerOptions, WebRtcCropPoint, WebRtcPlayer } from '../../types/heartwood.types';
|
|
2
2
|
import { WebRtcStreamer } from '../../webRtcStreaming/WebRtcStreamer';
|
|
3
3
|
import AbstractViewController from '../Abstract.vc';
|
|
4
4
|
export default class WebRtcPlayerViewController extends AbstractViewController<WebRtcPlayer> {
|
|
@@ -9,6 +9,10 @@ export default class WebRtcPlayerViewController extends AbstractViewController<W
|
|
|
9
9
|
setStreamer(streamer: WebRtcStreamer): void;
|
|
10
10
|
createOffer(offerOptions: RTCOfferOptions): Promise<string>;
|
|
11
11
|
setAnswer(answerSdp: string): Promise<void>;
|
|
12
|
+
getCrop(): import("@sprucelabs/mercury-types").SpruceSchemas.HeartwoodViewControllers.v2021_02_11.WebRtcCropPoint | null | undefined;
|
|
13
|
+
enableCropping(): void;
|
|
14
|
+
disableCropping(): void;
|
|
15
|
+
setCrop(point?: WebRtcCropPoint): void;
|
|
12
16
|
render(): WebRtcPlayer;
|
|
13
17
|
}
|
|
14
18
|
export interface WebRtcPlayerOptions extends WebRtcPlayer {
|
|
@@ -38,8 +38,29 @@ class WebRtcPlayerViewController extends Abstract_vc_1.default {
|
|
|
38
38
|
}
|
|
39
39
|
await this.model.streamer.setAnswer(answerSdp);
|
|
40
40
|
}
|
|
41
|
+
getCrop() {
|
|
42
|
+
return this.model.crop;
|
|
43
|
+
}
|
|
44
|
+
enableCropping() {
|
|
45
|
+
this.model.shouldAllowCropping = true;
|
|
46
|
+
this.triggerRender();
|
|
47
|
+
}
|
|
48
|
+
disableCropping() {
|
|
49
|
+
this.model.shouldAllowCropping = false;
|
|
50
|
+
this.triggerRender();
|
|
51
|
+
}
|
|
52
|
+
setCrop(point) {
|
|
53
|
+
this.model.crop = point;
|
|
54
|
+
void this.model.onCrop?.(point);
|
|
55
|
+
this.triggerRender();
|
|
56
|
+
}
|
|
41
57
|
render() {
|
|
42
|
-
return
|
|
58
|
+
return {
|
|
59
|
+
...this.model,
|
|
60
|
+
onCrop: (point) => {
|
|
61
|
+
this.setCrop(point);
|
|
62
|
+
},
|
|
63
|
+
};
|
|
43
64
|
}
|
|
44
65
|
}
|
|
45
66
|
WebRtcPlayerViewController.id = 'web-rtc-player-card';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import MockRtcPeerConnection from '../tests/MockRtcPeerConnection';
|
|
2
2
|
import { WebRtcStreamer } from './WebRtcStreamer';
|
|
3
3
|
export default class WebRtcConnectionImpl implements WebRtcConnection {
|
|
4
|
-
static Class
|
|
4
|
+
static Class?: new () => WebRtcConnection;
|
|
5
5
|
static get RTCPeerConnection(): new (config: RTCConfiguration) => RTCPeerConnection | MockRtcPeerConnection;
|
|
6
6
|
static set RTCPeerConnection(value: new (config: RTCConfiguration) => RTCPeerConnection | MockRtcPeerConnection);
|
|
7
7
|
private stateChangeListeners;
|
package/package.json
CHANGED