dyo-tools 0.1.0 → 0.3.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 -0
- package/.eslintignore +2 -0
- package/.eslintrc.json +47 -0
- package/Makefile +34 -0
- package/README.md +0 -7
- package/babel.config.js +1 -0
- package/cucumber-report.html +48 -0
- package/dist/constants.d.ts +6 -0
- package/dist/constants.js +63 -0
- package/dist/constants.js.map +1 -0
- package/dist/core/DTAction.d.ts +10 -0
- package/dist/core/DTAction.js +24 -0
- package/dist/core/DTAction.js.map +1 -0
- package/dist/core/DTBunch.d.ts +12 -17
- package/dist/core/DTBunch.js +39 -115
- package/dist/core/DTBunch.js.map +1 -1
- package/dist/core/DTComponent.d.ts +13 -5
- package/dist/core/DTComponent.js +39 -1
- package/dist/core/DTComponent.js.map +1 -1
- package/dist/core/DTComponentPhysical.d.ts +12 -0
- package/dist/core/DTComponentPhysical.js +22 -0
- package/dist/core/DTComponentPhysical.js.map +1 -0
- package/dist/core/DTComponentWithMeta.d.ts +2 -2
- package/dist/core/DTComponentWithMeta.js.map +1 -1
- package/dist/core/DTElement.d.ts +7 -7
- package/dist/core/DTElement.js +12 -11
- package/dist/core/DTElement.js.map +1 -1
- package/dist/core/DTManager.d.ts +33 -0
- package/dist/core/DTManager.js +190 -0
- package/dist/core/DTManager.js.map +1 -0
- package/dist/core/DTMaster.d.ts +24 -0
- package/dist/core/DTMaster.js +133 -0
- package/dist/core/DTMaster.js.map +1 -0
- package/dist/core/DTModule.d.ts +14 -0
- package/dist/core/DTModule.js +39 -0
- package/dist/core/DTModule.js.map +1 -0
- package/dist/index.d.ts +7 -1
- package/dist/index.js +15 -3
- package/dist/index.js.map +1 -1
- package/dist/libs/DYOFinder.d.ts +10 -0
- package/dist/libs/DYOFinder.js +96 -0
- package/dist/libs/DYOFinder.js.map +1 -0
- package/dist/libs/player/DTPlayer.element.d.ts +5 -0
- package/dist/libs/player/DTPlayer.element.js +11 -0
- package/dist/libs/player/DTPlayer.element.js.map +1 -0
- package/dist/libs/player/DTPlayer.manager.d.ts +11 -0
- package/dist/libs/player/DTPlayer.manager.js +42 -0
- package/dist/libs/player/DTPlayer.manager.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1321
- package/dist/types/core.d.ts +103 -0
- package/dist/types/core.js +15 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/index.d.ts +2 -58
- package/dist/types/index.js +16 -12
- package/dist/types/index.js.map +1 -1
- package/dist/types/player.d.ts +5 -0
- package/dist/types/player.js +3 -0
- package/dist/types/player.js.map +1 -0
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +29 -0
- package/docs/assets/main.js +59 -0
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1414 -0
- package/docs/classes/core_DTAction.DYOToolsAction.html +89 -0
- package/docs/classes/core_DTBunch.DYOToolsBunch.html +254 -0
- package/docs/classes/core_DTComponent.DYOToolsComponent.html +76 -0
- package/docs/classes/core_DTComponentPhysical.DYOToolsComponentPhysical.html +110 -0
- package/docs/classes/core_DTComponentWithMeta.DYOToolsComponentWithMeta.html +96 -0
- package/docs/classes/core_DTElement.DYOToolsElement.html +135 -0
- package/docs/classes/core_DTError.DYOToolsError.html +37 -0
- package/docs/classes/core_DTManager.DYOToolsManager.html +237 -0
- package/docs/classes/core_DTMaster.DYOToolsMaster.html +150 -0
- package/docs/classes/core_DTModule.DYOToolsModule.html +92 -0
- package/docs/classes/libs_DYOFinder.DYOFinder.html +34 -0
- package/docs/classes/libs_player_DTPlayer_element.DYOToolsPlayer.html +134 -0
- package/docs/classes/libs_player_DTPlayer_manager.DYOToolsPlayerManager.html +243 -0
- package/docs/enums/types_core.FilterOperatorType.html +10 -0
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +1 -0
- package/docs/interfaces/types_core.DTBunchFilters.html +6 -0
- package/docs/interfaces/types_core.DTBunchOptions.html +19 -0
- package/docs/interfaces/types_core.DTBunchToObject.html +7 -0
- package/docs/interfaces/types_core.DTComponentOptions.html +5 -0
- package/docs/interfaces/types_core.DTComponentToObject.html +4 -0
- package/docs/interfaces/types_core.DTElementToObject.html +7 -0
- package/docs/interfaces/types_core.DTManagerFilters.html +6 -0
- package/docs/interfaces/types_core.DTManagerOptions.html +8 -0
- package/docs/interfaces/types_core.DTManagerToObject.html +5 -0
- package/docs/interfaces/types_core.DTMasterToObject.html +8 -0
- package/docs/interfaces/types_core.DTModuleToObject.html +6 -0
- package/docs/interfaces/types_core.DYOFinderConfigurationPropDefault.html +4 -0
- package/docs/interfaces/types_core.DYOFinderConfigurationPropObjectSearch.html +4 -0
- package/docs/interfaces/types_core.DYOFinderFilterOperatorAdvanced.html +5 -0
- package/docs/interfaces/types_core.DYOFinderFilterOperatorBase.html +5 -0
- package/docs/interfaces/types_player.DTPlayerManagerSimpleConfiguration.html +3 -0
- package/docs/modules/constants.html +6 -0
- package/docs/modules/core_DTAction.html +2 -0
- package/docs/modules/core_DTBunch.html +2 -0
- package/docs/modules/core_DTComponent.html +2 -0
- package/docs/modules/core_DTComponentPhysical.html +2 -0
- package/docs/modules/core_DTComponentWithMeta.html +2 -0
- package/docs/modules/core_DTElement.html +2 -0
- package/docs/modules/core_DTError.html +2 -0
- package/docs/modules/core_DTManager.html +2 -0
- package/docs/modules/core_DTMaster.html +2 -0
- package/docs/modules/core_DTModule.html +2 -0
- package/docs/modules/libs_DYOFinder.html +2 -0
- package/docs/modules/libs_player_DTPlayer_element.html +2 -0
- package/docs/modules/libs_player_DTPlayer_manager.html +2 -0
- package/docs/modules/types.html +29 -0
- package/docs/modules/types_core.html +28 -0
- package/docs/modules/types_player.html +2 -0
- package/docs/types/types_core.DTAcceptedMetaData.html +2 -0
- package/docs/types/types_core.DTManagerItemType.html +1 -0
- package/docs/types/types_core.DTManagerItemsType.html +2 -0
- package/docs/types/types_core.DYOFinderComponentType.html +1 -0
- package/docs/types/types_core.DYOFinderConfiguration.html +2 -0
- package/docs/types/types_core.DYOFinderConfigurationProp.html +1 -0
- package/docs/types/types_core.DYOFinderFilterOperator.html +1 -0
- package/docs/types/types_core.DYOFinderFilterOperatorArgument.html +1 -0
- package/docs/types/types_core.DYOFinderFilters.html +1 -0
- package/docs/types/types_core.StandardPrimitiveType.html +2 -0
- package/docs/types/types_core.StandardPrimitiveTypeWithArray.html +1 -0
- package/docs/variables/constants.bunchDefaultOptions.html +2 -0
- package/docs/variables/constants.componentBunchDefaultFinderConfiguration.html +1 -0
- package/docs/variables/constants.componentManagerDefaultFinderConfiguration.html +1 -0
- package/docs/variables/constants.componentPhysicalDefaultFinderConfiguration.html +1 -0
- package/docs/variables/constants.managerDefaultOptions.html +2 -0
- package/jest.config.js +6 -0
- package/package.json +32 -23
- package/src/constants.ts +85 -0
- package/src/core/DTAction.ts +52 -0
- package/src/core/DTBunch.ts +467 -0
- package/src/core/DTComponent.ts +225 -0
- package/src/core/DTComponentPhysical.ts +53 -0
- package/src/core/DTComponentWithMeta.ts +65 -0
- package/src/core/DTElement.ts +102 -0
- package/src/core/DTError.ts +78 -0
- package/src/core/DTManager.ts +465 -0
- package/src/core/DTMaster.ts +318 -0
- package/src/core/DTModule.ts +90 -0
- package/src/index.ts +17 -0
- package/src/libs/DYOFinder.ts +175 -0
- package/src/libs/player/DTPlayer.element.ts +9 -0
- package/src/libs/player/DTPlayer.manager.ts +84 -0
- package/src/types/core.ts +169 -0
- package/src/types/index.ts +2 -0
- package/src/types/player.ts +6 -0
- package/test/core/DTAction.double.ts +78 -0
- package/test/core/DTAction.spec.ts +76 -0
- package/test/core/DTBunch.double.ts +261 -0
- package/test/core/DTBunch.spec.ts +897 -0
- package/test/core/DTComponent.double.ts +164 -0
- package/test/core/DTComponent.spec.ts +295 -0
- package/test/core/DTComponentPhysical.double.ts +76 -0
- package/test/core/DTComponentPhysical.spec.ts +78 -0
- package/test/core/DTComponentWithMeta.double.ts +115 -0
- package/test/core/DTComponentWithMeta.spec.ts +124 -0
- package/test/core/DTElement.double.ts +163 -0
- package/test/core/DTElement.spec.ts +146 -0
- package/test/core/DTError.double.ts +92 -0
- package/test/core/DTError.spec.ts +89 -0
- package/test/core/DTManager.double.ts +216 -0
- package/test/core/DTManager.spec.ts +965 -0
- package/test/core/DTMaster.double.ts +141 -0
- package/test/core/DTMaster.spec.ts +584 -0
- package/test/core/DTModule.double.ts +80 -0
- package/test/core/DTModule.spec.ts +138 -0
- package/test/core/copy.spec.ts +243 -0
- package/test/libs/DYOFinder.double.ts +152 -0
- package/test/libs/DYOFinder.spec.ts +194 -0
- package/test/libs/player/DTPlayer.element.double.ts +55 -0
- package/test/libs/player/DTPlayer.element.spec.ts +28 -0
- package/test/libs/player/DTPlayer.manager.double.ts +92 -0
- package/test/libs/player/DTPlayer.manager.spec.ts +178 -0
- package/tsconfig.dev.json +22 -0
- package/tsconfig.json +21 -0
- package/dist/core/DTPlayer.d.ts +0 -8
- package/dist/core/DTPlayer.js +0 -30
- package/dist/core/DTPlayer.js.map +0 -1
- package/dist/utils/filters.d.ts +0 -6
- package/dist/utils/filters.js +0 -39
- package/dist/utils/filters.js.map +0 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DTBunchOptions, DTManagerOptions, DYOFinderConfiguration } from './types';
|
|
2
|
+
export declare const bunchDefaultOptions: DTBunchOptions;
|
|
3
|
+
export declare const managerDefaultOptions: DTManagerOptions;
|
|
4
|
+
export declare const componentPhysicalDefaultFinderConfiguration: DYOFinderConfiguration;
|
|
5
|
+
export declare const componentManagerDefaultFinderConfiguration: DYOFinderConfiguration;
|
|
6
|
+
export declare const componentBunchDefaultFinderConfiguration: DYOFinderConfiguration;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.componentBunchDefaultFinderConfiguration = exports.componentManagerDefaultFinderConfiguration = exports.componentPhysicalDefaultFinderConfiguration = exports.managerDefaultOptions = exports.bunchDefaultOptions = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
exports.bunchDefaultOptions = {
|
|
6
|
+
errors: false,
|
|
7
|
+
uniqueKey: false,
|
|
8
|
+
inheritOwner: false,
|
|
9
|
+
replaceIndex: false,
|
|
10
|
+
virtualContainer: false,
|
|
11
|
+
};
|
|
12
|
+
exports.managerDefaultOptions = {
|
|
13
|
+
errors: false,
|
|
14
|
+
libraryDeletion: false,
|
|
15
|
+
};
|
|
16
|
+
const baseOperators = [
|
|
17
|
+
types_1.FilterOperatorType.EQ,
|
|
18
|
+
types_1.FilterOperatorType.IN,
|
|
19
|
+
types_1.FilterOperatorType.NIN,
|
|
20
|
+
types_1.FilterOperatorType.NE,
|
|
21
|
+
];
|
|
22
|
+
const advancedOperators = [
|
|
23
|
+
...baseOperators,
|
|
24
|
+
types_1.FilterOperatorType.GTE,
|
|
25
|
+
types_1.FilterOperatorType.LTE,
|
|
26
|
+
types_1.FilterOperatorType.CONTAINS,
|
|
27
|
+
types_1.FilterOperatorType.NCONTAINS,
|
|
28
|
+
];
|
|
29
|
+
exports.componentPhysicalDefaultFinderConfiguration = {
|
|
30
|
+
id: {
|
|
31
|
+
operators: baseOperators,
|
|
32
|
+
getValue: (item) => item.getId(),
|
|
33
|
+
objectSearch: false,
|
|
34
|
+
},
|
|
35
|
+
key: {
|
|
36
|
+
operators: baseOperators,
|
|
37
|
+
getValue: (item) => item.getKey(),
|
|
38
|
+
objectSearch: false,
|
|
39
|
+
},
|
|
40
|
+
owner: {
|
|
41
|
+
operators: baseOperators,
|
|
42
|
+
getValue: (item) => item.getOwner(),
|
|
43
|
+
objectSearch: false,
|
|
44
|
+
},
|
|
45
|
+
meta: {
|
|
46
|
+
operators: advancedOperators,
|
|
47
|
+
getValue: (item) => item.getManyMeta(),
|
|
48
|
+
objectSearch: true,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
exports.componentManagerDefaultFinderConfiguration = Object.assign(Object.assign({}, exports.componentPhysicalDefaultFinderConfiguration), { scope: {
|
|
52
|
+
operators: baseOperators,
|
|
53
|
+
getValue(item, ctx) {
|
|
54
|
+
return ctx.getScope(item.getId());
|
|
55
|
+
},
|
|
56
|
+
objectSearch: false,
|
|
57
|
+
} });
|
|
58
|
+
exports.componentBunchDefaultFinderConfiguration = Object.assign(Object.assign({}, exports.componentPhysicalDefaultFinderConfiguration), { container: {
|
|
59
|
+
operators: baseOperators,
|
|
60
|
+
getValue: (item) => (item.getContainer() ? item.getContainer().getId() : null),
|
|
61
|
+
objectSearch: false,
|
|
62
|
+
} });
|
|
63
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,mCAOiB;AAOJ,QAAA,mBAAmB,GAAmB;IACjD,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,KAAK;IAChB,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,KAAK;IACnB,gBAAgB,EAAE,KAAK;CACxB,CAAC;AAGW,QAAA,qBAAqB,GAAqB;IACrD,MAAM,EAAE,KAAK;IACb,eAAe,EAAE,KAAK;CACvB,CAAC;AAGF,MAAM,aAAa,GAAG;IACpB,0BAAkB,CAAC,EAAE;IACrB,0BAAkB,CAAC,EAAE;IACrB,0BAAkB,CAAC,GAAG;IACtB,0BAAkB,CAAC,EAAE;CACtB,CAAC;AACF,MAAM,iBAAiB,GAAG;IACxB,GAAG,aAAa;IAChB,0BAAkB,CAAC,GAAG;IACtB,0BAAkB,CAAC,GAAG;IACtB,0BAAkB,CAAC,QAAQ;IAC3B,0BAAkB,CAAC,SAAS;CAC7B,CAAC;AAEW,QAAA,2CAA2C,GAA2B;IACjF,EAAE,EAAE;QACF,SAAS,EAAE,aAAa;QACxB,QAAQ,EAAE,CAAC,IAA6C,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE;QACzE,YAAY,EAAE,KAAK;KACpB;IACD,GAAG,EAAE;QACH,SAAS,EAAE,aAAa;QACxB,QAAQ,EAAE,CAAC,IAA6C,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;QAC1E,YAAY,EAAE,KAAK;KACpB;IACD,KAAK,EAAE;QACL,SAAS,EAAE,aAAa;QACxB,QAAQ,EAAE,CAAC,IAA6C,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;QAC5E,YAAY,EAAE,KAAK;KACpB;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,CAAC,IAA6C,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;QAC/E,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEW,QAAA,0CAA0C,mCAClD,mDAA2C,KAC9C,KAAK,EAAE;QACL,SAAS,EAAE,aAAa;QACxB,QAAQ,CAAC,IAA4C,EAAE,GAA6C;YAClG,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,YAAY,EAAE,KAAK;KACpB,IACD;AAEW,QAAA,wCAAwC,mCAChD,mDAA2C,KAC9C,SAAS,EAAE;QACT,SAAS,EAAE,aAAa;QACxB,QAAQ,EAAE,CAAC,IAAmC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7G,YAAY,EAAE,KAAK;KACpB,IACD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import DYOToolsComponent from './DTComponent';
|
|
2
|
+
import { DTComponentToObject } from '../types';
|
|
3
|
+
import DYOToolsMaster from './DTMaster';
|
|
4
|
+
export default abstract class DYOToolsAction<Payload = unknown> extends DYOToolsComponent {
|
|
5
|
+
protected _componentType: string;
|
|
6
|
+
getMaster(): DYOToolsMaster | undefined;
|
|
7
|
+
abstract execute(payload: Payload): Promise<void>;
|
|
8
|
+
toString(): string;
|
|
9
|
+
toObject(): DTComponentToObject;
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const DTComponent_1 = require("./DTComponent");
|
|
4
|
+
class DYOToolsAction extends DTComponent_1.default {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this._componentType = 'action';
|
|
8
|
+
}
|
|
9
|
+
getMaster() {
|
|
10
|
+
return this.getContext('master');
|
|
11
|
+
}
|
|
12
|
+
toString() {
|
|
13
|
+
return `Component ${this._key} - Type: Action`;
|
|
14
|
+
}
|
|
15
|
+
toObject() {
|
|
16
|
+
return {
|
|
17
|
+
id: this._id,
|
|
18
|
+
key: this._key,
|
|
19
|
+
type: this._componentType,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.default = DYOToolsAction;
|
|
24
|
+
//# sourceMappingURL=DTAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DTAction.js","sourceRoot":"","sources":["../../src/core/DTAction.ts"],"names":[],"mappings":";;AAAA,+CAA8C;AAI9C,MAA8B,cAAkC,SAAQ,qBAAiB;IAAzF;;QAIY,mBAAc,GAAW,QAAQ,CAAC;IA2C9C,CAAC;IAtCC,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,CAAiB,QAAQ,CAAC,CAAC;IACnD,CAAC;IAeD,QAAQ;QACN,OAAO,aAAa,IAAI,CAAC,IAAI,iBAAiB,CAAC;IACjD,CAAC;IAYD,QAAQ;QACN,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,IAAI,EAAE,IAAI,CAAC,cAAc;SAC1B,CAAC;IACJ,CAAC;CACF;AA/CD,iCA+CC"}
|
package/dist/core/DTBunch.d.ts
CHANGED
|
@@ -1,24 +1,19 @@
|
|
|
1
|
-
import DYOToolsComponentWithMeta from './DTComponentWithMeta';
|
|
2
1
|
import DYOToolsElement from './DTElement';
|
|
3
|
-
import { DTAcceptedMetaData, DTBunchFilters,
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
export default class DYOToolsBunch<IBunchItem extends DYOToolsElement<DTAcceptedMetaData>, IComponentMeta extends DTAcceptedMetaData> extends
|
|
2
|
+
import { DTAcceptedMetaData, DTBunchFilters, DTBunchOptions, DTBunchToObject, DYOFinderConfiguration } from '../types';
|
|
3
|
+
import DYOToolsComponentPhysical from './DTComponentPhysical';
|
|
4
|
+
import DYOFinder from '../libs/DYOFinder';
|
|
5
|
+
export default class DYOToolsBunch<IBunchItem extends DYOToolsElement<DTAcceptedMetaData> = DYOToolsElement<DTAcceptedMetaData>, IComponentMeta extends DTAcceptedMetaData = DTAcceptedMetaData> extends DYOToolsComponentPhysical<IComponentMeta, DTBunchOptions> {
|
|
7
6
|
protected _componentType: string;
|
|
8
|
-
protected _owner?: DYOToolsPlayer<DTAcceptedMetaData>;
|
|
9
7
|
protected _items: IBunchItem[];
|
|
10
|
-
protected
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
setOwner(value: DYOToolsPlayer<DTAcceptedMetaData>): void;
|
|
8
|
+
protected _finder: DYOFinder;
|
|
9
|
+
constructor(key?: string, items?: IBunchItem[], options?: Partial<DTBunchOptions>);
|
|
10
|
+
getFinderConfiguration(): DYOFinderConfiguration;
|
|
11
|
+
setOwner(value: string): void;
|
|
15
12
|
removeOwner(): void;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
addMany(items: IBunchItem[], options?: Partial<DTBunchOptionsEditable>): void;
|
|
21
|
-
addManyAtIndex(items: IBunchItem[], index: number, options?: Partial<DTBunchOptionsEditable>): void;
|
|
13
|
+
add(item: IBunchItem, options?: Partial<Omit<DTBunchOptions, 'virtualContainer'>>): void;
|
|
14
|
+
addAtIndex(item: IBunchItem, index: number, options?: Partial<Omit<DTBunchOptions, ''>>): void;
|
|
15
|
+
addMany(items: IBunchItem[], options?: Partial<Omit<DTBunchOptions, 'virtualContainer'>>): void;
|
|
16
|
+
addManyAtIndex(items: IBunchItem[], index: number, options?: Partial<Omit<DTBunchOptions, 'virtualContainer'>>): void;
|
|
22
17
|
get(index: string | number): IBunchItem | undefined;
|
|
23
18
|
getAll(): IBunchItem[];
|
|
24
19
|
indexOf(id: string): number;
|
package/dist/core/DTBunch.js
CHANGED
|
@@ -1,77 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const DTComponentWithMeta_1 = require("./DTComponentWithMeta");
|
|
4
|
-
const types_1 = require("../types");
|
|
5
3
|
const DTError_1 = require("./DTError");
|
|
6
|
-
const
|
|
7
|
-
|
|
4
|
+
const DTComponentPhysical_1 = require("./DTComponentPhysical");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
const DYOFinder_1 = require("../libs/DYOFinder");
|
|
7
|
+
class DYOToolsBunch extends DTComponentPhysical_1.default {
|
|
8
8
|
constructor(key, items = [], options = {}) {
|
|
9
|
-
super(key);
|
|
9
|
+
super(key, Object.assign(Object.assign({}, constants_1.bunchDefaultOptions), options));
|
|
10
10
|
this._componentType = 'bunch';
|
|
11
|
-
const defaultOptions = {
|
|
12
|
-
errors: false,
|
|
13
|
-
uniqueKey: false,
|
|
14
|
-
inheritOwner: false,
|
|
15
|
-
replaceIndex: false,
|
|
16
|
-
virtualContext: false,
|
|
17
|
-
};
|
|
18
|
-
this._globalOptions = Object.assign(Object.assign({}, defaultOptions), options);
|
|
19
|
-
this._errors = [];
|
|
20
11
|
this._items = [];
|
|
21
12
|
if (items && items.length > 0) {
|
|
22
13
|
this.addMany(items);
|
|
23
14
|
}
|
|
15
|
+
this._finder = new DYOFinder_1.default(this, this.getFinderConfiguration());
|
|
24
16
|
}
|
|
25
|
-
|
|
26
|
-
return
|
|
17
|
+
getFinderConfiguration() {
|
|
18
|
+
return constants_1.componentBunchDefaultFinderConfiguration;
|
|
27
19
|
}
|
|
28
20
|
setOwner(value) {
|
|
29
|
-
|
|
30
|
-
const { inheritOwner } = this.
|
|
21
|
+
super.setOwner(value);
|
|
22
|
+
const { inheritOwner } = this._options;
|
|
31
23
|
if (inheritOwner) {
|
|
32
24
|
this._items.forEach((item) => { item.setOwner(this.getOwner()); });
|
|
33
25
|
}
|
|
34
26
|
}
|
|
35
27
|
removeOwner() {
|
|
36
|
-
|
|
37
|
-
const { inheritOwner } = this.
|
|
28
|
+
super.removeOwner();
|
|
29
|
+
const { inheritOwner } = this._options;
|
|
38
30
|
if (inheritOwner) {
|
|
39
31
|
this._items.forEach((item) => { item.removeOwner(); });
|
|
40
32
|
}
|
|
41
33
|
}
|
|
42
|
-
getErrors() {
|
|
43
|
-
return this._errors;
|
|
44
|
-
}
|
|
45
|
-
getLastError() {
|
|
46
|
-
return this._errors.length > 0 ? this._errors[this._errors.length - 1] : undefined;
|
|
47
|
-
}
|
|
48
34
|
add(item, options = {}) {
|
|
49
35
|
this.addAtIndex(item, this._items.length, options);
|
|
50
36
|
}
|
|
51
37
|
addAtIndex(item, index, options = {}) {
|
|
52
|
-
const {
|
|
38
|
+
const { uniqueKey, replaceIndex, inheritOwner, virtualContainer, } = Object.assign(Object.assign({}, this._options), options);
|
|
53
39
|
let hasError = false;
|
|
54
40
|
let finalIndex = index;
|
|
55
41
|
const existingItem = this.get(item.getId());
|
|
56
42
|
if (existingItem) {
|
|
57
43
|
hasError = true;
|
|
58
|
-
|
|
59
|
-
this._errors.push(new DTError_1.default('id_conflict', 'Element with same id already exists in the bunch', this, item));
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
throw new DTError_1.default('id_conflict', 'Element with same id already exists in the bunch', this, item);
|
|
63
|
-
}
|
|
44
|
+
this.triggerError(new DTError_1.default('id_conflict', 'Element with same id already exists in the bunch', this, item));
|
|
64
45
|
}
|
|
65
46
|
if (uniqueKey && !hasError) {
|
|
66
47
|
const existingItemByKey = this.find({ key: { $eq: item.getKey() } });
|
|
67
48
|
if (existingItemByKey) {
|
|
68
49
|
hasError = true;
|
|
69
|
-
|
|
70
|
-
this._errors.push(new DTError_1.default('key_conflict', 'Element with same key already exists in the bunch', this, item));
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
throw new DTError_1.default('key_conflict', 'Element with same key already exists in the bunch', this, item);
|
|
74
|
-
}
|
|
50
|
+
this.triggerError(new DTError_1.default('key_conflict', 'Element with same key already exists in the bunch', this, item));
|
|
75
51
|
}
|
|
76
52
|
}
|
|
77
53
|
if (!hasError) {
|
|
@@ -81,16 +57,25 @@ class DYOToolsBunch extends DTComponentWithMeta_1.default {
|
|
|
81
57
|
if (index > this._items.length) {
|
|
82
58
|
finalIndex = this._items.length;
|
|
83
59
|
}
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
60
|
+
if (this._context) {
|
|
61
|
+
item.setContext(this._context);
|
|
62
|
+
}
|
|
63
|
+
if (!virtualContainer) {
|
|
64
|
+
const oldContainer = item.getContainer();
|
|
65
|
+
if (oldContainer && oldContainer.getComponentType() === 'bunch') {
|
|
66
|
+
oldContainer.remove(item.getId());
|
|
88
67
|
}
|
|
89
|
-
item.
|
|
68
|
+
item.setContainer(this);
|
|
90
69
|
}
|
|
91
70
|
if (inheritOwner) {
|
|
92
71
|
item.setOwner(this._owner);
|
|
93
72
|
}
|
|
73
|
+
if (this.getContext('manager')) {
|
|
74
|
+
const manager = this.getContext('manager');
|
|
75
|
+
if (!manager.getLibrary().get(item.getId())) {
|
|
76
|
+
manager.getLibrary().add(item);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
94
79
|
if (replaceIndex) {
|
|
95
80
|
this._items[finalIndex] = item;
|
|
96
81
|
}
|
|
@@ -106,7 +91,7 @@ class DYOToolsBunch extends DTComponentWithMeta_1.default {
|
|
|
106
91
|
}
|
|
107
92
|
addManyAtIndex(items, index, options = {}) {
|
|
108
93
|
const previousItems = this._items;
|
|
109
|
-
const { errors } = Object.assign(Object.assign({}, this.
|
|
94
|
+
const { errors } = Object.assign(Object.assign({}, this._options), options);
|
|
110
95
|
let currentIndex = index;
|
|
111
96
|
if (index < 0) {
|
|
112
97
|
currentIndex = 0;
|
|
@@ -153,22 +138,22 @@ class DYOToolsBunch extends DTComponentWithMeta_1.default {
|
|
|
153
138
|
}
|
|
154
139
|
}
|
|
155
140
|
removeMany(indexes) {
|
|
156
|
-
const {
|
|
141
|
+
const { virtualContainer } = this._options;
|
|
157
142
|
const newItems = [];
|
|
158
143
|
for (let i = 0; i < this._items.length; i += 1) {
|
|
159
144
|
if (typeof indexes[0] === 'number') {
|
|
160
145
|
if (!indexes.includes(i)) {
|
|
161
146
|
newItems.push(this._items[i]);
|
|
162
147
|
}
|
|
163
|
-
else if (!
|
|
164
|
-
this._items[i].
|
|
148
|
+
else if (!virtualContainer) {
|
|
149
|
+
this._items[i].removeContainer();
|
|
165
150
|
}
|
|
166
151
|
}
|
|
167
152
|
else if (!indexes.includes(this._items[i].getId())) {
|
|
168
153
|
newItems.push(this._items[i]);
|
|
169
154
|
}
|
|
170
|
-
else if (!
|
|
171
|
-
this._items[i].
|
|
155
|
+
else if (!virtualContainer) {
|
|
156
|
+
this._items[i].removeContainer();
|
|
172
157
|
}
|
|
173
158
|
}
|
|
174
159
|
this._items = newItems;
|
|
@@ -178,78 +163,17 @@ class DYOToolsBunch extends DTComponentWithMeta_1.default {
|
|
|
178
163
|
this.removeMany(keysToRemove);
|
|
179
164
|
}
|
|
180
165
|
find(filters) {
|
|
181
|
-
|
|
182
|
-
const validOperatorsBase = [
|
|
183
|
-
types_1.FilterOperatorType.EQ,
|
|
184
|
-
types_1.FilterOperatorType.IN,
|
|
185
|
-
types_1.FilterOperatorType.NIN,
|
|
186
|
-
types_1.FilterOperatorType.NE,
|
|
187
|
-
];
|
|
188
|
-
const validOperatorsMeta = [
|
|
189
|
-
types_1.FilterOperatorType.EQ,
|
|
190
|
-
types_1.FilterOperatorType.IN,
|
|
191
|
-
types_1.FilterOperatorType.NIN,
|
|
192
|
-
types_1.FilterOperatorType.NE,
|
|
193
|
-
types_1.FilterOperatorType.LTE,
|
|
194
|
-
types_1.FilterOperatorType.GTE,
|
|
195
|
-
types_1.FilterOperatorType.CONTAINS,
|
|
196
|
-
types_1.FilterOperatorType.NCONTAINS,
|
|
197
|
-
];
|
|
198
|
-
const checkAllValidFiltersForProp = (itemProp, operators, validOperators) => {
|
|
199
|
-
if (Object.keys(operators).length) {
|
|
200
|
-
for (const operator of Object.keys(operators)) {
|
|
201
|
-
if (!validOperators.includes(operator)
|
|
202
|
-
|| !filters_1.validFiltersForItem(itemProp, operators[operator], operator)) {
|
|
203
|
-
return false;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
return true;
|
|
207
|
-
}
|
|
208
|
-
return false;
|
|
209
|
-
};
|
|
210
|
-
for (const item of this._items) {
|
|
211
|
-
let validItem = !!(Object.keys(filters).length);
|
|
212
|
-
if (filters.id && !checkAllValidFiltersForProp(item.getId(), filters.id, validOperatorsBase)) {
|
|
213
|
-
validItem = false;
|
|
214
|
-
}
|
|
215
|
-
if (filters.key && !checkAllValidFiltersForProp(item.getKey(), filters.key, validOperatorsBase)) {
|
|
216
|
-
validItem = false;
|
|
217
|
-
}
|
|
218
|
-
const itemContext = item.getContext() ? item.getContext().getId() : null;
|
|
219
|
-
if (filters.context && !checkAllValidFiltersForProp(itemContext, filters.context, validOperatorsBase)) {
|
|
220
|
-
validItem = false;
|
|
221
|
-
}
|
|
222
|
-
const itemOwner = item.getOwner() ? item.getOwner().getId() : null;
|
|
223
|
-
if (filters.owner && !checkAllValidFiltersForProp(itemOwner, filters.owner, validOperatorsBase)) {
|
|
224
|
-
validItem = false;
|
|
225
|
-
}
|
|
226
|
-
if (filters.meta) {
|
|
227
|
-
if (Object.keys(filters.meta).length) {
|
|
228
|
-
const itemMeta = item.getManyMeta();
|
|
229
|
-
for (const [meta, filter] of Object.entries(filters.meta)) {
|
|
230
|
-
const metaValue = Object.prototype.hasOwnProperty.call(itemMeta, meta) ? itemMeta[meta] : null;
|
|
231
|
-
if (!checkAllValidFiltersForProp(metaValue, filter, validOperatorsMeta)) {
|
|
232
|
-
validItem = false;
|
|
233
|
-
break;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
if (validItem) {
|
|
239
|
-
filteredItems.push(item);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
return filteredItems;
|
|
166
|
+
return this._finder.execute(filters);
|
|
243
167
|
}
|
|
244
168
|
copy() {
|
|
245
169
|
let copyItems;
|
|
246
|
-
if (this.
|
|
170
|
+
if (this._options.virtualContainer) {
|
|
247
171
|
copyItems = this._items;
|
|
248
172
|
}
|
|
249
173
|
else {
|
|
250
174
|
copyItems = this._items.length === 0 ? [] : this._items.map((item) => item.copy());
|
|
251
175
|
}
|
|
252
|
-
const copyBunch = new DYOToolsBunch(this._key, copyItems, this.
|
|
176
|
+
const copyBunch = new DYOToolsBunch(this._key, copyItems, this._options);
|
|
253
177
|
copyBunch.setManyMeta(Object.assign({}, this.getManyMeta()));
|
|
254
178
|
return copyBunch;
|
|
255
179
|
}
|
|
@@ -274,7 +198,7 @@ class DYOToolsBunch extends DTComponentWithMeta_1.default {
|
|
|
274
198
|
toString() {
|
|
275
199
|
let ownerKey = '';
|
|
276
200
|
if (this._owner) {
|
|
277
|
-
ownerKey = ` - Owner: ${this._owner
|
|
201
|
+
ownerKey = ` - Owner: ${this._owner}`;
|
|
278
202
|
}
|
|
279
203
|
return `Component ${this._key} - Type: Bunch${ownerKey} - Items: ${this._items.length}`;
|
|
280
204
|
}
|
package/dist/core/DTBunch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DTBunch.js","sourceRoot":"","sources":["../../src/core/DTBunch.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"DTBunch.js","sourceRoot":"","sources":["../../src/core/DTBunch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
import DYOToolsError from './DTError';
|
|
2
|
+
import { DTComponentOptions } from '../types';
|
|
3
|
+
export default abstract class DYOToolsComponent<IComponentOptions extends DTComponentOptions = DTComponentOptions> {
|
|
2
4
|
protected _id: string;
|
|
3
5
|
protected _key: string;
|
|
4
6
|
protected _context?: DYOToolsComponent;
|
|
5
7
|
protected abstract _componentType: string;
|
|
6
8
|
protected _domain?: string;
|
|
7
9
|
protected _subKind?: string;
|
|
8
|
-
|
|
10
|
+
protected _errors: DYOToolsError[];
|
|
11
|
+
protected _options: IComponentOptions;
|
|
12
|
+
constructor(key?: string, options?: Partial<IComponentOptions>);
|
|
9
13
|
getId(): string;
|
|
10
14
|
getKey(): string;
|
|
11
|
-
getContext(contextType?: string):
|
|
12
|
-
setContext(value:
|
|
15
|
+
getContext<IContext extends DYOToolsComponent = DYOToolsComponent>(contextType?: string): IContext | undefined;
|
|
16
|
+
setContext<IContext extends DYOToolsComponent = DYOToolsComponent>(value: IContext): void;
|
|
13
17
|
removeContext(): void;
|
|
14
18
|
getComponentType(): string;
|
|
15
19
|
getDomain(): string;
|
|
16
20
|
getSubKind(): string;
|
|
17
|
-
|
|
21
|
+
getErrors(): DYOToolsError[];
|
|
22
|
+
getLastError(): DYOToolsError | undefined;
|
|
23
|
+
triggerError(error: DYOToolsError): void;
|
|
24
|
+
clearErrors(): void;
|
|
25
|
+
getOptions(): IComponentOptions;
|
|
18
26
|
abstract toObject(): unknown;
|
|
19
27
|
abstract toString(): string;
|
|
20
28
|
}
|
package/dist/core/DTComponent.js
CHANGED
|
@@ -2,9 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const uuid = require("uuid");
|
|
4
4
|
class DYOToolsComponent {
|
|
5
|
-
constructor(key) {
|
|
5
|
+
constructor(key, options = {}) {
|
|
6
6
|
this._id = uuid.v4();
|
|
7
7
|
this._key = key || this._id;
|
|
8
|
+
this._errors = [];
|
|
9
|
+
const defaultOptions = {
|
|
10
|
+
errors: false,
|
|
11
|
+
};
|
|
12
|
+
this._options = Object.assign(Object.assign({}, defaultOptions), options);
|
|
8
13
|
}
|
|
9
14
|
getId() {
|
|
10
15
|
return this._id;
|
|
@@ -36,6 +41,39 @@ class DYOToolsComponent {
|
|
|
36
41
|
getSubKind() {
|
|
37
42
|
return this._subKind;
|
|
38
43
|
}
|
|
44
|
+
getErrors() {
|
|
45
|
+
if (this.getContext()) {
|
|
46
|
+
return this.getContext().getErrors();
|
|
47
|
+
}
|
|
48
|
+
return this._errors;
|
|
49
|
+
}
|
|
50
|
+
getLastError() {
|
|
51
|
+
if (this.getContext()) {
|
|
52
|
+
return this.getContext().getLastError();
|
|
53
|
+
}
|
|
54
|
+
return this._errors.length > 0 ? this._errors[this._errors.length - 1] : undefined;
|
|
55
|
+
}
|
|
56
|
+
triggerError(error) {
|
|
57
|
+
const { errors = false } = this._options;
|
|
58
|
+
if (this.getContext()) {
|
|
59
|
+
this.getContext().triggerError(error);
|
|
60
|
+
}
|
|
61
|
+
else if (!errors) {
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
this._errors.push(error);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
clearErrors() {
|
|
69
|
+
if (this.getContext()) {
|
|
70
|
+
this.getContext().clearErrors();
|
|
71
|
+
}
|
|
72
|
+
this._errors = [];
|
|
73
|
+
}
|
|
74
|
+
getOptions() {
|
|
75
|
+
return this._options;
|
|
76
|
+
}
|
|
39
77
|
}
|
|
40
78
|
exports.default = DYOToolsComponent;
|
|
41
79
|
//# sourceMappingURL=DTComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DTComponent.js","sourceRoot":"","sources":["../../src/core/DTComponent.ts"],"names":[],"mappings":";;AAAA,6BAA6B;
|
|
1
|
+
{"version":3,"file":"DTComponent.js","sourceRoot":"","sources":["../../src/core/DTComponent.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAO7B,MAA8B,iBAAiB;IA+D7C,YAAY,GAAY,EAAE,UAAsC,EAAE;QAChE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAElB,MAAM,cAAc,GAAuB;YACzC,MAAM,EAAE,KAAK;SACd,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,gCACX,cAAc,GACd,OAAO,CACU,CAAC;IACzB,CAAC;IAKD,KAAK;QACH,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAKD,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAWD,UAAU,CAAyD,WAAoB;QACrF,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,WAAW,EAAE;gBACpE,OAAO,IAAI,CAAC,QAAoB,CAAC;aAClC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SAC9C;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAKD,UAAU,CAAyD,KAAe;QAChF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAKD,aAAa;QACX,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAKD,gBAAgB;QACd,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAKD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAKD,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAOD,SAAS;QACP,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;SACtC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAOD,YAAY;QACV,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,YAAY,EAAE,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,CAAC;IAWD,YAAY,CAAC,KAAoB;QAC/B,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACzC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACvC;aAAM,IAAI,CAAC,MAAM,EAAE;YAClB,MAAM,KAAK,CAAC;SACb;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;IACH,CAAC;IAOD,WAAW;QACT,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC;SACjC;QACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAKD,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CAWF;AAzND,oCAyNC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DTAcceptedMetaData, DTComponentOptions } from '../types';
|
|
2
|
+
import DYOToolsComponentWithMeta from './DTComponentWithMeta';
|
|
3
|
+
import DYOToolsMaster from './DTMaster';
|
|
4
|
+
export default abstract class DYOToolsComponentPhysical<IComponentMeta extends DTAcceptedMetaData, IComponentOptions extends DTComponentOptions = DTComponentOptions> extends DYOToolsComponentWithMeta<IComponentMeta, IComponentOptions> {
|
|
5
|
+
protected _owner?: string;
|
|
6
|
+
getManager(): DYOToolsMaster | undefined;
|
|
7
|
+
getMaster(): DYOToolsMaster | undefined;
|
|
8
|
+
getOwner(): string;
|
|
9
|
+
setOwner(value: string): void;
|
|
10
|
+
removeOwner(): void;
|
|
11
|
+
abstract copy(): DYOToolsComponentPhysical<IComponentMeta, IComponentOptions>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const DTComponentWithMeta_1 = require("./DTComponentWithMeta");
|
|
4
|
+
class DYOToolsComponentPhysical extends DTComponentWithMeta_1.default {
|
|
5
|
+
getManager() {
|
|
6
|
+
return this.getContext('manager');
|
|
7
|
+
}
|
|
8
|
+
getMaster() {
|
|
9
|
+
return this.getContext('master');
|
|
10
|
+
}
|
|
11
|
+
getOwner() {
|
|
12
|
+
return this._owner;
|
|
13
|
+
}
|
|
14
|
+
setOwner(value) {
|
|
15
|
+
this._owner = value;
|
|
16
|
+
}
|
|
17
|
+
removeOwner() {
|
|
18
|
+
this._owner = undefined;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = DYOToolsComponentPhysical;
|
|
22
|
+
//# sourceMappingURL=DTComponentPhysical.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DTComponentPhysical.js","sourceRoot":"","sources":["../../src/core/DTComponentPhysical.ts"],"names":[],"mappings":";;AACA,+DAA8D;AAG9D,MAA8B,yBAG1B,SAAQ,6BAA4D;IAStE,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAiB,SAAS,CAAC,CAAC;IACpD,CAAC;IAKD,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,CAAiB,QAAQ,CAAC,CAAC;IACnD,CAAC;IAKD,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAKD,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAKD,WAAW;QACT,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;CAMF;AAhDD,4CAgDC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import DYOToolsComponent from './DTComponent';
|
|
2
|
-
import { DTAcceptedMetaData } from '../types';
|
|
3
|
-
export default abstract class DYOToolsComponentWithMeta<IComponentMeta extends DTAcceptedMetaData> extends DYOToolsComponent {
|
|
2
|
+
import { DTAcceptedMetaData, DTComponentOptions } from '../types';
|
|
3
|
+
export default abstract class DYOToolsComponentWithMeta<IComponentMeta extends DTAcceptedMetaData, IComponentOptions extends DTComponentOptions = DTComponentOptions> extends DYOToolsComponent<IComponentOptions> {
|
|
4
4
|
protected _meta: Partial<IComponentMeta>;
|
|
5
5
|
getMeta<K extends keyof IComponentMeta>(metaKey: K): IComponentMeta[K] | undefined;
|
|
6
6
|
setMeta<K extends keyof IComponentMeta>(metaKey: K, metaValue: IComponentMeta[K]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DTComponentWithMeta.js","sourceRoot":"","sources":["../../src/core/DTComponentWithMeta.ts"],"names":[],"mappings":";;AAAA,+CAA8C;AAG9C,MAA8B,
|
|
1
|
+
{"version":3,"file":"DTComponentWithMeta.js","sourceRoot":"","sources":["../../src/core/DTComponentWithMeta.ts"],"names":[],"mappings":";;AAAA,+CAA8C;AAG9C,MAA8B,yBAG1B,SAAQ,qBAAoC;IAHhD;;QASY,UAAK,GAA6B,EAA6B,CAAC;IAoD5E,CAAC;IA3CC,OAAO,CAAiC,OAAW;QACjD,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAQD,OAAO,CAAiC,OAAW,EAAE,SAA6B;QAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAClC,CAAC;IASD,WAAW,CAAC,WAAyC,EAAE;QACrD,MAAM,SAAS,GAA4B,EAA6B,CAAC;QACzE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;QAED,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACjC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAClC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAOD,WAAW,CAAC,UAAoC;QAC9C,IAAI,CAAC,KAAK,mCAAQ,IAAI,CAAC,KAAK,GAAK,UAAU,CAAE,CAAC;IAChD,CAAC;CACF;AA7DD,4CA6DC"}
|
package/dist/core/DTElement.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import DYOToolsComponentWithMeta from './DTComponentWithMeta';
|
|
2
|
-
import DYOToolsPlayer from './DTPlayer';
|
|
3
1
|
import { DTAcceptedMetaData, DTElementToObject } from '../types';
|
|
4
|
-
|
|
2
|
+
import DYOToolsComponentPhysical from './DTComponentPhysical';
|
|
3
|
+
import DYOToolsBunch from './DTBunch';
|
|
4
|
+
export default class DYOToolsElement<IComponentMeta extends DTAcceptedMetaData> extends DYOToolsComponentPhysical<IComponentMeta> {
|
|
5
5
|
protected _componentType: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
protected _container: DYOToolsBunch;
|
|
7
|
+
getContainer(): DYOToolsBunch | undefined;
|
|
8
|
+
setContainer(container: DYOToolsBunch): void;
|
|
9
|
+
removeContainer(): void;
|
|
10
10
|
copy(): DYOToolsElement<IComponentMeta>;
|
|
11
11
|
toObject(): DTElementToObject<IComponentMeta>;
|
|
12
12
|
toString(): string;
|