dyo-tools 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.c8rc.json +4 -4
- package/.eslintignore +1 -1
- package/.eslintrc.json +47 -47
- package/Makefile +34 -34
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +24 -20
- package/dist/constants.js.map +1 -1
- package/dist/core/DTAction.d.ts +6 -4
- package/dist/core/DTAction.d.ts.map +1 -0
- package/dist/core/DTAction.js +3 -6
- package/dist/core/DTAction.js.map +1 -1
- package/dist/core/DTBunch.d.ts +8 -5
- package/dist/core/DTBunch.d.ts.map +1 -0
- package/dist/core/DTBunch.js +54 -20
- package/dist/core/DTBunch.js.map +1 -1
- package/dist/core/DTComponent.d.ts +13 -10
- package/dist/core/DTComponent.d.ts.map +1 -0
- package/dist/core/DTComponent.js +23 -10
- package/dist/core/DTComponent.js.map +1 -1
- package/dist/core/DTComponentPhysical.d.ts +11 -7
- package/dist/core/DTComponentPhysical.d.ts.map +1 -0
- package/dist/core/DTComponentPhysical.js +21 -6
- package/dist/core/DTComponentPhysical.js.map +1 -1
- package/dist/core/DTComponentWithMeta.d.ts +6 -3
- package/dist/core/DTComponentWithMeta.d.ts.map +1 -0
- package/dist/core/DTComponentWithMeta.js +21 -7
- package/dist/core/DTComponentWithMeta.js.map +1 -1
- package/dist/core/DTElement.d.ts +10 -8
- package/dist/core/DTElement.d.ts.map +1 -0
- package/dist/core/DTElement.js +8 -9
- package/dist/core/DTElement.js.map +1 -1
- package/dist/core/DTError.d.ts +8 -7
- package/dist/core/DTError.d.ts.map +1 -0
- package/dist/core/DTError.js +1 -5
- package/dist/core/DTError.js.map +1 -1
- package/dist/core/DTManager.d.ts +17 -14
- package/dist/core/DTManager.d.ts.map +1 -0
- package/dist/core/DTManager.js +84 -26
- package/dist/core/DTManager.js.map +1 -1
- package/dist/core/DTMaster.d.ts +19 -16
- package/dist/core/DTMaster.d.ts.map +1 -0
- package/dist/core/DTMaster.js +48 -31
- package/dist/core/DTMaster.js.map +1 -1
- package/dist/core/DTModule.d.ts +8 -5
- package/dist/core/DTModule.d.ts.map +1 -0
- package/dist/core/DTModule.js +6 -6
- package/dist/core/DTModule.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -28
- package/dist/index.js.map +1 -1
- package/dist/libs/DYOFinder.d.ts +1 -0
- package/dist/libs/DYOFinder.d.ts.map +1 -0
- package/dist/libs/DYOFinder.js +10 -14
- package/dist/libs/DYOFinder.js.map +1 -1
- package/dist/libs/dix/DIXModule.module.d.ts +8 -0
- package/dist/libs/dix/DIXModule.module.d.ts.map +1 -0
- package/dist/libs/dix/DIXModule.module.js +73 -0
- package/dist/libs/player/DTPlayer.element.d.ts +3 -2
- package/dist/libs/player/DTPlayer.element.d.ts.map +1 -0
- package/dist/libs/player/DTPlayer.element.js +2 -6
- package/dist/libs/player/DTPlayer.element.js.map +1 -1
- package/dist/libs/player/DTPlayer.manager.d.ts +8 -7
- package/dist/libs/player/DTPlayer.manager.d.ts.map +1 -0
- package/dist/libs/player/DTPlayer.manager.js +13 -20
- package/dist/libs/player/DTPlayer.manager.js.map +1 -1
- package/dist/tsconfig.dev.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/core.d.ts +40 -12
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +2 -6
- package/dist/types/core.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -19
- package/dist/types/index.js.map +1 -1
- package/dist/types/player.d.ts +1 -1
- package/dist/types/player.d.ts.map +1 -0
- package/dist/types/player.js +1 -3
- package/docs/assets/main.js +59 -59
- package/docs/assets/style.css +1414 -1414
- package/integration/data/components/DTHero.ts +42 -0
- package/integration/data/components/DTHeroManager.ts +11 -0
- package/integration/data/components/DTHeroPlayZone.ts +6 -0
- package/integration/data/components/DTHeroPlayerHand.ts +11 -0
- package/integration/data/components/index.ts +5 -0
- package/integration/data/in/heroIn.helper.ts +8 -0
- package/integration/data/in/playerIn.helper.ts +13 -0
- package/integration/data/out/heroOut.helper.ts +48 -0
- package/integration/endings/synchronisation.ending.ts +25 -0
- package/integration/scenes/drawCard.scene.ts +31 -0
- package/integration/scenes/empty.scene.ts +6 -0
- package/integration/scenes/playCard.scene.ts +23 -0
- package/integration/scenes/playerLeave.scene.ts +33 -0
- package/integration/stages/baseDix.stage.ts +137 -0
- package/integration/stages/syncDix.stage.ts +36 -0
- package/integration/tests/scenario1.spec.ts +55 -0
- package/integration/types/index.ts +24 -0
- package/jest-integration.config.ts +25 -0
- package/jest.config.ts +26 -0
- package/package.json +31 -19
- package/src/constants.ts +87 -85
- package/src/core/DTAction.ts +54 -52
- package/src/core/DTBunch.ts +531 -467
- package/src/core/DTComponent.ts +258 -225
- package/src/core/DTComponentPhysical.ts +88 -53
- package/src/core/DTComponentWithMeta.ts +98 -65
- package/src/core/DTElement.ts +111 -102
- package/src/core/DTError.ts +78 -78
- package/src/core/DTManager.ts +555 -465
- package/src/core/DTMaster.ts +366 -318
- package/src/core/DTModule.ts +96 -90
- package/src/libs/dix/DIXModule.module.ts +98 -0
- package/src/libs/player/DTPlayer.element.ts +9 -9
- package/src/libs/player/DTPlayer.manager.ts +70 -84
- package/src/types/core.ts +204 -169
- package/src/types/player.ts +5 -6
- package/test/core/DTAction.double.ts +12 -28
- package/test/core/DTAction.spec.ts +8 -16
- package/test/core/DTBunch.double.ts +49 -135
- package/test/core/DTBunch.spec.ts +163 -238
- package/test/core/DTComponent.double.ts +17 -2
- package/test/core/DTComponent.spec.ts +6 -4
- package/test/core/DTComponentPhysical.double.ts +29 -43
- package/test/core/DTComponentPhysical.spec.ts +22 -19
- package/test/core/DTComponentWithMeta.double.ts +38 -31
- package/test/core/DTComponentWithMeta.spec.ts +23 -18
- package/test/core/DTElement.double.ts +32 -53
- package/test/core/DTElement.spec.ts +15 -38
- package/test/core/DTError.double.ts +18 -53
- package/test/core/DTError.spec.ts +21 -32
- package/test/core/DTManager.double.ts +74 -141
- package/test/core/DTManager.spec.ts +289 -380
- package/test/core/DTMaster.double.ts +56 -80
- package/test/core/DTMaster.spec.ts +185 -232
- package/test/core/DTModule.double.ts +12 -25
- package/test/core/DTModule.spec.ts +14 -28
- package/test/core/copy.spec.ts +9 -30
- package/tsconfig.dev.json +5 -8
- package/tsconfig.json +5 -8
- package/cucumber-report.html +0 -48
- package/docs/assets/navigation.js +0 -1
- package/docs/classes/core_DTAction.DYOToolsAction.html +0 -89
- package/docs/classes/core_DTBunch.DYOToolsBunch.html +0 -254
- package/docs/classes/core_DTComponent.DYOToolsComponent.html +0 -76
- package/docs/classes/core_DTComponentPhysical.DYOToolsComponentPhysical.html +0 -110
- package/docs/classes/core_DTComponentWithMeta.DYOToolsComponentWithMeta.html +0 -96
- package/docs/classes/core_DTElement.DYOToolsElement.html +0 -135
- package/docs/classes/core_DTError.DYOToolsError.html +0 -37
- package/docs/classes/core_DTManager.DYOToolsManager.html +0 -237
- package/docs/classes/core_DTMaster.DYOToolsMaster.html +0 -150
- package/docs/classes/core_DTModule.DYOToolsModule.html +0 -92
- package/docs/classes/libs_DYOFinder.DYOFinder.html +0 -34
- package/docs/classes/libs_player_DTPlayer_element.DYOToolsPlayer.html +0 -134
- package/docs/classes/libs_player_DTPlayer_manager.DYOToolsPlayerManager.html +0 -243
- package/docs/enums/types_core.FilterOperatorType.html +0 -10
- package/docs/hierarchy.html +0 -1
- package/docs/interfaces/types_core.DTBunchFilters.html +0 -6
- package/docs/interfaces/types_core.DTBunchOptions.html +0 -19
- package/docs/interfaces/types_core.DTBunchToObject.html +0 -7
- package/docs/interfaces/types_core.DTComponentOptions.html +0 -5
- package/docs/interfaces/types_core.DTComponentToObject.html +0 -4
- package/docs/interfaces/types_core.DTElementToObject.html +0 -7
- package/docs/interfaces/types_core.DTManagerFilters.html +0 -6
- package/docs/interfaces/types_core.DTManagerOptions.html +0 -8
- package/docs/interfaces/types_core.DTManagerToObject.html +0 -5
- package/docs/interfaces/types_core.DTMasterToObject.html +0 -8
- package/docs/interfaces/types_core.DTModuleToObject.html +0 -6
- package/docs/interfaces/types_core.DYOFinderConfigurationPropDefault.html +0 -4
- package/docs/interfaces/types_core.DYOFinderConfigurationPropObjectSearch.html +0 -4
- package/docs/interfaces/types_core.DYOFinderFilterOperatorAdvanced.html +0 -5
- package/docs/interfaces/types_core.DYOFinderFilterOperatorBase.html +0 -5
- package/docs/interfaces/types_player.DTPlayerManagerSimpleConfiguration.html +0 -3
- package/docs/modules/constants.html +0 -6
- package/docs/modules/core_DTAction.html +0 -2
- package/docs/modules/core_DTBunch.html +0 -2
- package/docs/modules/core_DTComponent.html +0 -2
- package/docs/modules/core_DTComponentPhysical.html +0 -2
- package/docs/modules/core_DTComponentWithMeta.html +0 -2
- package/docs/modules/core_DTElement.html +0 -2
- package/docs/modules/core_DTError.html +0 -2
- package/docs/modules/core_DTManager.html +0 -2
- package/docs/modules/core_DTMaster.html +0 -2
- package/docs/modules/core_DTModule.html +0 -2
- package/docs/modules/libs_DYOFinder.html +0 -2
- package/docs/modules/libs_player_DTPlayer_element.html +0 -2
- package/docs/modules/libs_player_DTPlayer_manager.html +0 -2
- package/docs/modules/types.html +0 -29
- package/docs/modules/types_core.html +0 -28
- package/docs/modules/types_player.html +0 -2
- package/docs/types/types_core.DTAcceptedMetaData.html +0 -2
- package/docs/types/types_core.DTManagerItemType.html +0 -1
- package/docs/types/types_core.DTManagerItemsType.html +0 -2
- package/docs/types/types_core.DYOFinderComponentType.html +0 -1
- package/docs/types/types_core.DYOFinderConfiguration.html +0 -2
- package/docs/types/types_core.DYOFinderConfigurationProp.html +0 -1
- package/docs/types/types_core.DYOFinderFilterOperator.html +0 -1
- package/docs/types/types_core.DYOFinderFilterOperatorArgument.html +0 -1
- package/docs/types/types_core.DYOFinderFilters.html +0 -1
- package/docs/types/types_core.StandardPrimitiveType.html +0 -2
- package/docs/types/types_core.StandardPrimitiveTypeWithArray.html +0 -1
- package/docs/variables/constants.bunchDefaultOptions.html +0 -2
- package/docs/variables/constants.componentBunchDefaultFinderConfiguration.html +0 -1
- package/docs/variables/constants.componentManagerDefaultFinderConfiguration.html +0 -1
- package/docs/variables/constants.componentPhysicalDefaultFinderConfiguration.html +0 -1
- package/docs/variables/constants.managerDefaultOptions.html +0 -2
- package/jest.config.js +0 -6
package/src/core/DTModule.ts
CHANGED
|
@@ -1,90 +1,96 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { DTModuleToObject } from '../types';
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
export default class
|
|
6
|
-
/**
|
|
7
|
-
* Defining component type to "module".
|
|
8
|
-
*/
|
|
9
|
-
protected _componentType: string = 'module';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Defining if the module is enabled or not.
|
|
13
|
-
* @protected
|
|
14
|
-
*/
|
|
15
|
-
protected _enabled: boolean;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Applying the parent constructor, and initializing _enabled property to true by default.
|
|
19
|
-
*
|
|
20
|
-
* @param key
|
|
21
|
-
*/
|
|
22
|
-
constructor(key?: string) {
|
|
23
|
-
super(key);
|
|
24
|
-
|
|
25
|
-
this._enabled = true;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Returns Master component from context, or undefined.
|
|
30
|
-
*/
|
|
31
|
-
getMaster():
|
|
32
|
-
return this.getContext<
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Getter for the _enabled property.
|
|
37
|
-
*/
|
|
38
|
-
isEnabled(): boolean {
|
|
39
|
-
return this._enabled;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Change _enabled property to true.
|
|
44
|
-
*/
|
|
45
|
-
enable(): void {
|
|
46
|
-
this._enabled = true;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Change _enabled property to false.
|
|
51
|
-
*/
|
|
52
|
-
disable(): void {
|
|
53
|
-
this._enabled = false;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Return String representation of the Module instance.
|
|
58
|
-
*
|
|
59
|
-
* @returns String representation of the Module.
|
|
60
|
-
*/
|
|
61
|
-
toString(): string {
|
|
62
|
-
let extraLabel: string = '';
|
|
63
|
-
|
|
64
|
-
if (!this._enabled) {
|
|
65
|
-
extraLabel = ' - Disabled';
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return `Component ${this._key} - Type: Module${extraLabel}`;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Return JSON Object representation of the Module instance.
|
|
73
|
-
*
|
|
74
|
-
* JSON Object returned has the following structure :
|
|
75
|
-
* * **id** : _id property of the Module.
|
|
76
|
-
* * **key** : _key property of the Module.
|
|
77
|
-
* * **type** : _componentType property of the Module.
|
|
78
|
-
* * **enabled** : _enabled property of the Module.
|
|
79
|
-
*
|
|
80
|
-
* @returns JSON Object representation of the Module.
|
|
81
|
-
*/
|
|
82
|
-
toObject(): DTModuleToObject {
|
|
83
|
-
return {
|
|
84
|
-
id: this._id,
|
|
85
|
-
key: this._key,
|
|
86
|
-
type: this._componentType,
|
|
87
|
-
enabled: this._enabled,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
|
|
1
|
+
import DTComponent from './DTComponent';
|
|
2
|
+
import { DIXObject, DTModuleToObject } from '../types';
|
|
3
|
+
import DTMaster from './DTMaster';
|
|
4
|
+
|
|
5
|
+
export default class DTModule extends DTComponent {
|
|
6
|
+
/**
|
|
7
|
+
* Defining component type to "module".
|
|
8
|
+
*/
|
|
9
|
+
protected _componentType: string = 'module';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Defining if the module is enabled or not.
|
|
13
|
+
* @protected
|
|
14
|
+
*/
|
|
15
|
+
protected _enabled: boolean;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Applying the parent constructor, and initializing _enabled property to true by default.
|
|
19
|
+
*
|
|
20
|
+
* @param key
|
|
21
|
+
*/
|
|
22
|
+
constructor(key?: string) {
|
|
23
|
+
super(key);
|
|
24
|
+
|
|
25
|
+
this._enabled = true;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Returns Master component from context, or undefined.
|
|
30
|
+
*/
|
|
31
|
+
getMaster(): DTMaster | undefined {
|
|
32
|
+
return this.getContext<DTMaster>('master');
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Getter for the _enabled property.
|
|
37
|
+
*/
|
|
38
|
+
isEnabled(): boolean {
|
|
39
|
+
return this._enabled;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Change _enabled property to true.
|
|
44
|
+
*/
|
|
45
|
+
enable(): void {
|
|
46
|
+
this._enabled = true;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Change _enabled property to false.
|
|
51
|
+
*/
|
|
52
|
+
disable(): void {
|
|
53
|
+
this._enabled = false;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Return String representation of the Module instance.
|
|
58
|
+
*
|
|
59
|
+
* @returns String representation of the Module.
|
|
60
|
+
*/
|
|
61
|
+
toString(): string {
|
|
62
|
+
let extraLabel: string = '';
|
|
63
|
+
|
|
64
|
+
if (!this._enabled) {
|
|
65
|
+
extraLabel = ' - Disabled';
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return `Component ${this._key} - Type: Module${extraLabel}`;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Return JSON Object representation of the Module instance.
|
|
73
|
+
*
|
|
74
|
+
* JSON Object returned has the following structure :
|
|
75
|
+
* * **id** : _id property of the Module.
|
|
76
|
+
* * **key** : _key property of the Module.
|
|
77
|
+
* * **type** : _componentType property of the Module.
|
|
78
|
+
* * **enabled** : _enabled property of the Module.
|
|
79
|
+
*
|
|
80
|
+
* @returns JSON Object representation of the Module.
|
|
81
|
+
*/
|
|
82
|
+
toObject(): DTModuleToObject {
|
|
83
|
+
return {
|
|
84
|
+
id: this._id,
|
|
85
|
+
key: this._key,
|
|
86
|
+
type: this._componentType,
|
|
87
|
+
enabled: this._enabled,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
toDIXObject(): Record<string, DIXObject> {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
updateFromDix(): void {}
|
|
96
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import * as CoreComponents from '../../index';
|
|
2
|
+
import { DIXObject } from '../../types';
|
|
3
|
+
|
|
4
|
+
type DTElementClass = new (key: string, options: Record<string, unknown>) => CoreComponents.DTComponent;
|
|
5
|
+
type DTBunchClass = new (key: string, items: unknown[], options: Record<string, unknown>) => CoreComponents.DTComponent;
|
|
6
|
+
type DTManagerClass = new (key: string, items: unknown[], scopes: unknown[], options: Record<string, unknown>) => CoreComponents.DTComponent;
|
|
7
|
+
type DTMasterClass = DTElementClass;
|
|
8
|
+
|
|
9
|
+
export default class DTDIXModule extends CoreComponents.DTModule {
|
|
10
|
+
overrides: Record<string, unknown>;
|
|
11
|
+
|
|
12
|
+
constructor(overrides: Record<string, unknown> = {}) {
|
|
13
|
+
super('dix');
|
|
14
|
+
this.overrides = {
|
|
15
|
+
...CoreComponents,
|
|
16
|
+
...overrides,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
syncNewItem(id: string, dix: Record<string, DIXObject>): CoreComponents.DTComponent | undefined {
|
|
21
|
+
const dixObject = dix[id];
|
|
22
|
+
let instance: CoreComponents.DTComponent | undefined;
|
|
23
|
+
const errorsEnabled = this._options.errors;
|
|
24
|
+
|
|
25
|
+
if (dixObject) {
|
|
26
|
+
switch (dixObject.componentType) {
|
|
27
|
+
case 'bunch':
|
|
28
|
+
try {
|
|
29
|
+
const UseClass = this.overrides[dixObject.useClass] as DTBunchClass;
|
|
30
|
+
instance = new UseClass(dixObject.key, [], { ...(JSON.parse(dixObject.options) ?? {}), syncId: id });
|
|
31
|
+
} catch (err: unknown) {
|
|
32
|
+
if (errorsEnabled) {
|
|
33
|
+
const UseClass = this.overrides.DTBunch as DTBunchClass;
|
|
34
|
+
instance = new UseClass(dixObject.key, [], { ...(JSON.parse(dixObject.options) ?? {}), syncId: id });
|
|
35
|
+
}
|
|
36
|
+
this.triggerError(new CoreComponents.DTError(
|
|
37
|
+
'dix_module_instance_error',
|
|
38
|
+
`Bunch Class ${dixObject.useClass} doesn't exist in DIX Module`,
|
|
39
|
+
this,
|
|
40
|
+
));
|
|
41
|
+
}
|
|
42
|
+
break;
|
|
43
|
+
case 'manager':
|
|
44
|
+
try {
|
|
45
|
+
const UseClass = this.overrides[dixObject.useClass] as DTManagerClass;
|
|
46
|
+
instance = new UseClass(dixObject.key, [], [], { ...(JSON.parse(dixObject.options) ?? {}), syncId: id });
|
|
47
|
+
} catch (err: unknown) {
|
|
48
|
+
if (errorsEnabled) {
|
|
49
|
+
const UseClass = this.overrides.DTManager as DTManagerClass;
|
|
50
|
+
instance = new UseClass(dixObject.key, [], [], { ...(JSON.parse(dixObject.options) ?? {}), syncId: id });
|
|
51
|
+
}
|
|
52
|
+
this.triggerError(new CoreComponents.DTError(
|
|
53
|
+
'dix_module_instance_error',
|
|
54
|
+
`Manager Class ${dixObject.useClass} doesn't exist in DIX Module`,
|
|
55
|
+
this,
|
|
56
|
+
));
|
|
57
|
+
}
|
|
58
|
+
break;
|
|
59
|
+
case 'master':
|
|
60
|
+
try {
|
|
61
|
+
const UseClass = this.overrides[dixObject.useClass] as DTMasterClass;
|
|
62
|
+
instance = new UseClass(dixObject.key, { ...(JSON.parse(dixObject.options) ?? {}), syncId: id });
|
|
63
|
+
} catch (err: unknown) {
|
|
64
|
+
if (errorsEnabled) {
|
|
65
|
+
const UseClass = this.overrides.DTElement as DTMasterClass;
|
|
66
|
+
instance = new UseClass(dixObject.key, { ...(JSON.parse(dixObject.options) ?? {}), syncId: id });
|
|
67
|
+
}
|
|
68
|
+
this.triggerError(new CoreComponents.DTError(
|
|
69
|
+
'dix_module_instance_error',
|
|
70
|
+
`Master Class ${dixObject.useClass} doesn't exist in DIX Module`,
|
|
71
|
+
this,
|
|
72
|
+
));
|
|
73
|
+
}
|
|
74
|
+
break;
|
|
75
|
+
case 'element':
|
|
76
|
+
default:
|
|
77
|
+
try {
|
|
78
|
+
const UseClass = this.overrides[dixObject.useClass] as DTElementClass;
|
|
79
|
+
instance = new UseClass(dixObject.key, { ...(JSON.parse(dixObject.options) ?? {}), syncId: id });
|
|
80
|
+
// console.log('Je test pour : ', instance.getKey(), instance.getId(), instance.getOptions(), id);
|
|
81
|
+
} catch (err: unknown) {
|
|
82
|
+
if (errorsEnabled) {
|
|
83
|
+
const UseClass = this.overrides.DTElement as DTElementClass;
|
|
84
|
+
instance = new UseClass(dixObject.key, { ...(JSON.parse(dixObject.options) ?? {}), syncId: id });
|
|
85
|
+
}
|
|
86
|
+
this.triggerError(new CoreComponents.DTError(
|
|
87
|
+
'dix_module_instance_error',
|
|
88
|
+
`Element Class ${dixObject.useClass} doesn't exist in DIX Module`,
|
|
89
|
+
this,
|
|
90
|
+
));
|
|
91
|
+
}
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return instance;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { DTAcceptedMetaData } from '../../types';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
export default class
|
|
5
|
-
/**
|
|
6
|
-
* Defining component domain to "player".
|
|
7
|
-
*/
|
|
8
|
-
protected _domain = 'player';
|
|
9
|
-
}
|
|
1
|
+
import { DTAcceptedMetaData } from '../../types';
|
|
2
|
+
import DTElement from '../../core/DTElement';
|
|
3
|
+
|
|
4
|
+
export default class DTPlayer<IComponentMeta extends DTAcceptedMetaData = DTAcceptedMetaData> extends DTElement<IComponentMeta> {
|
|
5
|
+
/**
|
|
6
|
+
* Defining component domain to "player".
|
|
7
|
+
*/
|
|
8
|
+
protected _domain = 'player';
|
|
9
|
+
}
|
|
@@ -1,84 +1,70 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { DTBunchFilters,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
removePlayer(id: string): void {
|
|
72
|
-
this._library.remove(id);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Find DTPlayer instances into the Library.
|
|
77
|
-
*
|
|
78
|
-
* @see [find](#find) method for search specifications.
|
|
79
|
-
* @param filters DTBunchFilters filters to apply.
|
|
80
|
-
*/
|
|
81
|
-
findPlayers(filters: Partial<DTBunchFilters>): DYOToolsPlayer[] {
|
|
82
|
-
return this._library.find(filters);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
1
|
+
import DTManager from '../../core/DTManager';
|
|
2
|
+
import DTPlayer from './DTPlayer.element';
|
|
3
|
+
import { DTBunchFilters, DTPlayerManagerSimpleConfiguration } from '../../types';
|
|
4
|
+
|
|
5
|
+
export default class DTPlayerManager extends DTManager<DTPlayer> {
|
|
6
|
+
/**
|
|
7
|
+
* Defining component domain to "player".
|
|
8
|
+
*/
|
|
9
|
+
protected _domain = 'player';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Simply configure the manager with a configuration JSON Object
|
|
13
|
+
* **players** : Default player configuration.
|
|
14
|
+
* If **players** is a number, it generates this number of DTPlayer instances and add it to the library.
|
|
15
|
+
* If **players** is an array of DTPlayer instances, it adds these to the library.
|
|
16
|
+
*
|
|
17
|
+
* @param configuration DTPlayerManagerSimpleConfiguration Optional configuration to apply.
|
|
18
|
+
*/
|
|
19
|
+
configure(configuration: DTPlayerManagerSimpleConfiguration) {
|
|
20
|
+
if (configuration.players) {
|
|
21
|
+
if (typeof configuration.players === 'number' && configuration.players > 0) {
|
|
22
|
+
let i = 1;
|
|
23
|
+
while (i <= configuration.players) {
|
|
24
|
+
const player = new DTPlayer(`player${i}`);
|
|
25
|
+
this._library.add(player);
|
|
26
|
+
i += 1;
|
|
27
|
+
}
|
|
28
|
+
} else if (Array.isArray(configuration.players)) {
|
|
29
|
+
this._library.addMany(configuration.players);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Get one DTPlayer instance by id into the library.
|
|
36
|
+
*
|
|
37
|
+
* @param id string _id property of the DTPlayer instance to get.
|
|
38
|
+
*/
|
|
39
|
+
getPlayer(id: string): DTPlayer {
|
|
40
|
+
return this._library.get(id);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Add one DTPlayer instance into the library.
|
|
45
|
+
*
|
|
46
|
+
* @param player DYOToolsPlayer instance to add.
|
|
47
|
+
*/
|
|
48
|
+
addPlayer(player: DTPlayer): void {
|
|
49
|
+
this._library.add(player);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Remove one DTPlayer instance by id from the library.
|
|
54
|
+
*
|
|
55
|
+
* @param id string _id property of the DTPlayer instance to remove.
|
|
56
|
+
*/
|
|
57
|
+
removePlayer(id: string): void {
|
|
58
|
+
this._library.remove(id);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Find DTPlayer instances into the Library.
|
|
63
|
+
*
|
|
64
|
+
* @see [find](#find) method for search specifications.
|
|
65
|
+
* @param filters DTBunchFilters filters to apply.
|
|
66
|
+
*/
|
|
67
|
+
findPlayers(filters: Partial<DTBunchFilters>): DTPlayer[] {
|
|
68
|
+
return this._library.find(filters);
|
|
69
|
+
}
|
|
70
|
+
}
|