dyo-tools 0.1.0-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/.c8rc.json +4 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc.json +41 -0
  4. package/Makefile +34 -0
  5. package/README.md +0 -0
  6. package/TODO.md +18 -0
  7. package/babel.config.js +1 -0
  8. package/dist/core/DTBunch.d.ts +32 -0
  9. package/dist/core/DTBunch.js +283 -0
  10. package/dist/core/DTBunch.js.map +1 -0
  11. package/dist/core/DTComponent.d.ts +20 -0
  12. package/dist/core/DTComponent.js +41 -0
  13. package/dist/core/DTComponent.js.map +1 -0
  14. package/dist/core/DTComponentWithMeta.d.ts +9 -0
  15. package/dist/core/DTComponentWithMeta.js +32 -0
  16. package/dist/core/DTComponentWithMeta.js.map +1 -0
  17. package/dist/core/DTElement.d.ts +13 -0
  18. package/dist/core/DTElement.js +46 -0
  19. package/dist/core/DTElement.js.map +1 -0
  20. package/dist/core/DTError.d.ts +13 -0
  21. package/dist/core/DTError.js +28 -0
  22. package/dist/core/DTError.js.map +1 -0
  23. package/dist/core/DTPlayer.d.ts +8 -0
  24. package/dist/core/DTPlayer.js +30 -0
  25. package/dist/core/DTPlayer.js.map +1 -0
  26. package/dist/index.d.ts +6 -0
  27. package/dist/index.js +16 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/tsconfig.tsbuildinfo +1321 -0
  30. package/dist/types/index.d.ts +58 -0
  31. package/dist/types/index.js +15 -0
  32. package/dist/types/index.js.map +1 -0
  33. package/dist/utils/filters.d.ts +6 -0
  34. package/dist/utils/filters.js +39 -0
  35. package/dist/utils/filters.js.map +1 -0
  36. package/docs/.nojekyll +1 -0
  37. package/docs/assets/highlight.css +22 -0
  38. package/docs/assets/icons.css +1043 -0
  39. package/docs/assets/icons.png +0 -0
  40. package/docs/assets/icons@2x.png +0 -0
  41. package/docs/assets/main.js +52 -0
  42. package/docs/assets/search.js +1 -0
  43. package/docs/assets/style.css +1388 -0
  44. package/docs/assets/widgets.png +0 -0
  45. package/docs/assets/widgets@2x.png +0 -0
  46. package/docs/classes/DTBunch.html +265 -0
  47. package/docs/classes/DTComponent.html +49 -0
  48. package/docs/classes/DTComponentWithMeta.html +73 -0
  49. package/docs/classes/DTElement.html +95 -0
  50. package/docs/classes/DTError.html +32 -0
  51. package/docs/classes/DTPlayer.html +86 -0
  52. package/docs/index.html +1 -0
  53. package/docs/modules.html +1 -0
  54. package/jest.config.js +6 -0
  55. package/package.json +41 -0
  56. package/src/core/DTBunch.ts +600 -0
  57. package/src/core/DTComponent.ts +135 -0
  58. package/src/core/DTComponentWithMeta.ts +62 -0
  59. package/src/core/DTElement.ts +96 -0
  60. package/src/core/DTError.ts +78 -0
  61. package/src/core/DTPlayer.ts +57 -0
  62. package/src/index.ts +7 -0
  63. package/src/types/index.ts +76 -0
  64. package/src/utils/filters.ts +64 -0
  65. package/test/core/DTBunch.double.ts +150 -0
  66. package/test/core/DTBunch.spec.ts +1374 -0
  67. package/test/core/DTComponent.double.ts +69 -0
  68. package/test/core/DTComponent.spec.ts +182 -0
  69. package/test/core/DTComponentWithMeta.double.ts +88 -0
  70. package/test/core/DTComponentWithMeta.spec.ts +112 -0
  71. package/test/core/DTElement.double.ts +27 -0
  72. package/test/core/DTElement.spec.ts +181 -0
  73. package/test/core/DTError.double.ts +43 -0
  74. package/test/core/DTError.spec.ts +106 -0
  75. package/test/core/DTPlayer.double.ts +49 -0
  76. package/test/core/DTPlayer.spec.ts +102 -0
  77. package/test/utils/filters.spec.ts +109 -0
  78. package/tsconfig.json +21 -0
package/.c8rc.json ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "src": ["./src"],
3
+ "reporter": ["html", "text"]
4
+ }
package/.eslintignore ADDED
@@ -0,0 +1,2 @@
1
+ node_modules
2
+ dist
package/.eslintrc.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "root": true,
3
+ "parser": "@typescript-eslint/parser",
4
+ "parserOptions": {
5
+ "project": "./tsconfig.json"
6
+ },
7
+ "plugins": [
8
+ "@typescript-eslint"
9
+ ],
10
+ "extends": [
11
+ "eslint:recommended",
12
+ "plugin:@typescript-eslint/eslint-recommended",
13
+ "plugin:@typescript-eslint/recommended",
14
+ "airbnb-base",
15
+ "airbnb-typescript"
16
+ ],
17
+ "rules": {
18
+ // Use of underscored private props
19
+ "no-underscore-dangle": "off",
20
+ // Disable JSX unexpected error
21
+ "react/jsx-filename-extension": "off",
22
+ // Max length line : 130
23
+ "max-len": ["error", 130],
24
+ // Authorize for-of to return and break
25
+ "no-restricted-syntax": [
26
+ "error",
27
+ {
28
+ "selector": "ForInStatement",
29
+ "message": "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."
30
+ },
31
+ {
32
+ "selector": "LabeledStatement",
33
+ "message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
34
+ },
35
+ {
36
+ "selector": "WithStatement",
37
+ "message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
38
+ }
39
+ ]
40
+ }
41
+ }
package/Makefile ADDED
@@ -0,0 +1,34 @@
1
+ .DEFAULT_GOAL := all
2
+
3
+ .PHONY: all
4
+ all: dist
5
+
6
+ .PHONY: check
7
+ check:
8
+ npm run-script lint
9
+
10
+ .PHONY: checkfix
11
+ checkfix:
12
+ npm run-script lint:fix
13
+
14
+ .PHONY: clean
15
+ clean: distclean
16
+ rm -Rf node_modules/
17
+
18
+ dist: node_modules distclean
19
+ npm run-script build
20
+
21
+ .PHONY: distclean
22
+ distclean:
23
+ rm -Rf dist/
24
+
25
+ node_modules:
26
+ npm install
27
+
28
+ .PHONY: test
29
+ test:
30
+ npm run-script test
31
+
32
+ .PHONY: verify
33
+ verify: dist check
34
+ npm run-script test:coverage:verify
package/README.md ADDED
File without changes
package/TODO.md ADDED
@@ -0,0 +1,18 @@
1
+ ### TODO
2
+
3
+ #### Mise en place du TDD + Tests
4
+
5
+ En suivant les best practices des tests unitaires et TDD accordées :
6
+
7
+ * Structure de test/ égale à celle de src/
8
+ * Tester chaque fichier pour avoir la plus grande couverture de test
9
+ * Créer des "stubs" pour éviter les dépendances dans les tests
10
+ * Ne pas créer de fausses classes
11
+ * Mettre en place la structure "describe(method)" => "test(useCase)"
12
+
13
+ #### Liste de tâches
14
+
15
+ * Eslint
16
+ * Test coverage package
17
+ * Array.isArray dans les filters DTBunch
18
+ * Restreindre les types dans les meta-data
@@ -0,0 +1 @@
1
+ module.exports = {presets: ['@babel/preset-env']}
@@ -0,0 +1,32 @@
1
+ import DYOToolsComponentWithMeta from './DTComponentWithMeta';
2
+ import DYOToolsElement from './DTElement';
3
+ import { DTAcceptedMetaData, DTBunchFilters, DTBunchOptionsConstructor, DTBunchOptionsEditable, DTBunchToObject } from '../types';
4
+ import DYOToolsPlayer from './DTPlayer';
5
+ import DYOToolsError from './DTError';
6
+ export default class DYOToolsBunch<IBunchItem extends DYOToolsElement<DTAcceptedMetaData>, IComponentMeta extends DTAcceptedMetaData> extends DYOToolsComponentWithMeta<IComponentMeta> {
7
+ protected _componentType: string;
8
+ protected _owner?: DYOToolsPlayer<DTAcceptedMetaData>;
9
+ protected _items: IBunchItem[];
10
+ protected _globalOptions: DTBunchOptionsConstructor;
11
+ protected _errors: DYOToolsError[];
12
+ constructor(key?: string, items?: IBunchItem[], options?: Partial<DTBunchOptionsConstructor>);
13
+ getOwner(): DYOToolsPlayer<DTAcceptedMetaData>;
14
+ setOwner(value: DYOToolsPlayer<DTAcceptedMetaData>): void;
15
+ removeOwner(): void;
16
+ getErrors(): DYOToolsError[];
17
+ getLastError(): DYOToolsError | undefined;
18
+ add(item: IBunchItem, options?: Partial<DTBunchOptionsEditable>): void;
19
+ addAtIndex(item: IBunchItem, index: number, options?: Partial<DTBunchOptionsEditable>): void;
20
+ addMany(items: IBunchItem[], options?: Partial<DTBunchOptionsEditable>): void;
21
+ addManyAtIndex(items: IBunchItem[], index: number, options?: Partial<DTBunchOptionsEditable>): void;
22
+ get(index: string | number): IBunchItem | undefined;
23
+ getAll(): IBunchItem[];
24
+ indexOf(id: string): number;
25
+ remove(index: string | number): void;
26
+ removeMany(indexes: string[] | number[]): void;
27
+ removeAll(): void;
28
+ find(filters: Partial<DTBunchFilters>): IBunchItem[];
29
+ copy(): DYOToolsBunch<IBunchItem, IComponentMeta>;
30
+ toObject(): DTBunchToObject<IComponentMeta>;
31
+ toString(): string;
32
+ }
@@ -0,0 +1,283 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const DTComponentWithMeta_1 = require("./DTComponentWithMeta");
4
+ const types_1 = require("../types");
5
+ const DTError_1 = require("./DTError");
6
+ const filters_1 = require("../utils/filters");
7
+ class DYOToolsBunch extends DTComponentWithMeta_1.default {
8
+ constructor(key, items = [], options = {}) {
9
+ super(key);
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
+ this._items = [];
21
+ if (items && items.length > 0) {
22
+ this.addMany(items);
23
+ }
24
+ }
25
+ getOwner() {
26
+ return this._owner;
27
+ }
28
+ setOwner(value) {
29
+ this._owner = value;
30
+ const { inheritOwner } = this._globalOptions;
31
+ if (inheritOwner) {
32
+ this._items.forEach((item) => { item.setOwner(this.getOwner()); });
33
+ }
34
+ }
35
+ removeOwner() {
36
+ this._owner = undefined;
37
+ const { inheritOwner } = this._globalOptions;
38
+ if (inheritOwner) {
39
+ this._items.forEach((item) => { item.removeOwner(); });
40
+ }
41
+ }
42
+ getErrors() {
43
+ return this._errors;
44
+ }
45
+ getLastError() {
46
+ return this._errors.length > 0 ? this._errors[this._errors.length - 1] : undefined;
47
+ }
48
+ add(item, options = {}) {
49
+ this.addAtIndex(item, this._items.length, options);
50
+ }
51
+ addAtIndex(item, index, options = {}) {
52
+ const { errors, uniqueKey, replaceIndex, inheritOwner, } = Object.assign(Object.assign({}, this._globalOptions), options);
53
+ let hasError = false;
54
+ let finalIndex = index;
55
+ const existingItem = this.get(item.getId());
56
+ if (existingItem) {
57
+ hasError = true;
58
+ if (errors) {
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
+ }
64
+ }
65
+ if (uniqueKey && !hasError) {
66
+ const existingItemByKey = this.find({ key: { $eq: item.getKey() } });
67
+ if (existingItemByKey) {
68
+ hasError = true;
69
+ if (errors) {
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
+ }
75
+ }
76
+ }
77
+ if (!hasError) {
78
+ if (index < 0) {
79
+ finalIndex = 0;
80
+ }
81
+ if (index > this._items.length) {
82
+ finalIndex = this._items.length;
83
+ }
84
+ if (!this._globalOptions.virtualContext) {
85
+ const oldContext = item.getContext();
86
+ if (oldContext && oldContext.getComponentType() === 'bunch') {
87
+ oldContext.remove(item.getId());
88
+ }
89
+ item.setContext(this);
90
+ }
91
+ if (inheritOwner) {
92
+ item.setOwner(this._owner);
93
+ }
94
+ if (replaceIndex) {
95
+ this._items[finalIndex] = item;
96
+ }
97
+ else {
98
+ const arrayPart1 = this._items.slice(0, finalIndex);
99
+ const arrayPart2 = this._items.slice(finalIndex);
100
+ this._items = [...arrayPart1, item, ...arrayPart2];
101
+ }
102
+ }
103
+ }
104
+ addMany(items, options = {}) {
105
+ this.addManyAtIndex(items, this._items.length, options);
106
+ }
107
+ addManyAtIndex(items, index, options = {}) {
108
+ const previousItems = this._items;
109
+ const { errors } = Object.assign(Object.assign({}, this._globalOptions), options);
110
+ let currentIndex = index;
111
+ if (index < 0) {
112
+ currentIndex = 0;
113
+ }
114
+ try {
115
+ for (const item of items) {
116
+ this.addAtIndex(item, currentIndex, options);
117
+ currentIndex += 1;
118
+ }
119
+ }
120
+ catch (exception) {
121
+ if (!errors) {
122
+ this._items = previousItems;
123
+ throw exception;
124
+ }
125
+ }
126
+ }
127
+ get(index) {
128
+ if (typeof index === 'number') {
129
+ return this._items[index];
130
+ }
131
+ const itemFiltered = this._items.filter((item) => item.getId() === index);
132
+ return itemFiltered.length > 0 ? itemFiltered[0] : undefined;
133
+ }
134
+ getAll() {
135
+ return this._items;
136
+ }
137
+ indexOf(id) {
138
+ let indexOfItem = -1;
139
+ for (let i = 0; i < this._items.length; i += 1) {
140
+ if (this._items[i].getId() === id) {
141
+ indexOfItem = i;
142
+ break;
143
+ }
144
+ }
145
+ return indexOfItem;
146
+ }
147
+ remove(index) {
148
+ if (typeof index === 'number') {
149
+ this.removeMany([index]);
150
+ }
151
+ else {
152
+ this.removeMany([index]);
153
+ }
154
+ }
155
+ removeMany(indexes) {
156
+ const { virtualContext } = this._globalOptions;
157
+ const newItems = [];
158
+ for (let i = 0; i < this._items.length; i += 1) {
159
+ if (typeof indexes[0] === 'number') {
160
+ if (!indexes.includes(i)) {
161
+ newItems.push(this._items[i]);
162
+ }
163
+ else if (!virtualContext) {
164
+ this._items[i].removeContext();
165
+ }
166
+ }
167
+ else if (!indexes.includes(this._items[i].getId())) {
168
+ newItems.push(this._items[i]);
169
+ }
170
+ else if (!virtualContext) {
171
+ this._items[i].removeContext();
172
+ }
173
+ }
174
+ this._items = newItems;
175
+ }
176
+ removeAll() {
177
+ const keysToRemove = this._items.map((item, index) => index);
178
+ this.removeMany(keysToRemove);
179
+ }
180
+ find(filters) {
181
+ const filteredItems = [];
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;
243
+ }
244
+ copy() {
245
+ let copyItems;
246
+ if (this._globalOptions.virtualContext) {
247
+ copyItems = this._items;
248
+ }
249
+ else {
250
+ copyItems = this._items.length === 0 ? [] : this._items.map((item) => item.copy());
251
+ }
252
+ const copyBunch = new DYOToolsBunch(this._key, copyItems, this._globalOptions);
253
+ copyBunch.setManyMeta(Object.assign({}, this.getManyMeta()));
254
+ return copyBunch;
255
+ }
256
+ toObject() {
257
+ const objectBunch = {
258
+ id: this._id,
259
+ key: this._key,
260
+ type: this._componentType,
261
+ items: [],
262
+ };
263
+ if (this._items.length) {
264
+ objectBunch.items = this._items.map((item) => item.toObject());
265
+ }
266
+ if (this._owner) {
267
+ objectBunch.owner = this._owner.toString();
268
+ }
269
+ if (this._meta && Object.keys(this._meta).length > 0) {
270
+ objectBunch.meta = Object.assign({}, this.getManyMeta());
271
+ }
272
+ return objectBunch;
273
+ }
274
+ toString() {
275
+ let ownerKey = '';
276
+ if (this._owner) {
277
+ ownerKey = ` - Owner: ${this._owner.getKey()}`;
278
+ }
279
+ return `Component ${this._key} - Type: Bunch${ownerKey} - Items: ${this._items.length}`;
280
+ }
281
+ }
282
+ exports.default = DYOToolsBunch;
283
+ //# sourceMappingURL=DTBunch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DTBunch.js","sourceRoot":"","sources":["../../src/core/DTBunch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export default abstract class DYOToolsComponent {
2
+ protected _id: string;
3
+ protected _key: string;
4
+ protected _context?: DYOToolsComponent;
5
+ protected abstract _componentType: string;
6
+ protected _domain?: string;
7
+ protected _subKind?: string;
8
+ constructor(key?: string);
9
+ getId(): string;
10
+ getKey(): string;
11
+ getContext(contextType?: string): DYOToolsComponent | undefined;
12
+ setContext(value: DYOToolsComponent): void;
13
+ removeContext(): void;
14
+ getComponentType(): string;
15
+ getDomain(): string;
16
+ getSubKind(): string;
17
+ abstract copy(): DYOToolsComponent;
18
+ abstract toObject(): unknown;
19
+ abstract toString(): string;
20
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const uuid = require("uuid");
4
+ class DYOToolsComponent {
5
+ constructor(key) {
6
+ this._id = uuid.v4();
7
+ this._key = key || this._id;
8
+ }
9
+ getId() {
10
+ return this._id;
11
+ }
12
+ getKey() {
13
+ return this._key;
14
+ }
15
+ getContext(contextType) {
16
+ if (this._context) {
17
+ if (!contextType || this._context.getComponentType() === contextType) {
18
+ return this._context;
19
+ }
20
+ return this._context.getContext(contextType);
21
+ }
22
+ return undefined;
23
+ }
24
+ setContext(value) {
25
+ this._context = value;
26
+ }
27
+ removeContext() {
28
+ this._context = undefined;
29
+ }
30
+ getComponentType() {
31
+ return this._componentType;
32
+ }
33
+ getDomain() {
34
+ return this._domain;
35
+ }
36
+ getSubKind() {
37
+ return this._subKind;
38
+ }
39
+ }
40
+ exports.default = DYOToolsComponent;
41
+ //# sourceMappingURL=DTComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DTComponent.js","sourceRoot":"","sources":["../../src/core/DTComponent.ts"],"names":[],"mappings":";;AAAA,6BAA6B;AAE7B,MAA8B,iBAAiB;IA6C7C,YAAY,GAAY;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IAC9B,CAAC;IAKD,KAAK;QACH,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAKD,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAWD,UAAU,CAAC,WAAoB;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,WAAW,EAAE;gBACpE,OAAO,IAAI,CAAC,QAAQ,CAAC;aACtB;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SAC9C;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAKD,UAAU,CAAC,KAAwB;QACjC,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;CAgBF;AApID,oCAoIC"}
@@ -0,0 +1,9 @@
1
+ import DYOToolsComponent from './DTComponent';
2
+ import { DTAcceptedMetaData } from '../types';
3
+ export default abstract class DYOToolsComponentWithMeta<IComponentMeta extends DTAcceptedMetaData> extends DYOToolsComponent {
4
+ protected _meta: Partial<IComponentMeta>;
5
+ getMeta<K extends keyof IComponentMeta>(metaKey: K): IComponentMeta[K] | undefined;
6
+ setMeta<K extends keyof IComponentMeta>(metaKey: K, metaValue: IComponentMeta[K]): void;
7
+ getManyMeta(metaKeys?: Array<keyof IComponentMeta>): Partial<IComponentMeta>;
8
+ setManyMeta(metaValues: Partial<IComponentMeta>): void;
9
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const DTComponent_1 = require("./DTComponent");
4
+ class DYOToolsComponentWithMeta extends DTComponent_1.default {
5
+ constructor() {
6
+ super(...arguments);
7
+ this._meta = {};
8
+ }
9
+ getMeta(metaKey) {
10
+ return this._meta && this._meta[metaKey];
11
+ }
12
+ setMeta(metaKey, metaValue) {
13
+ this._meta[metaKey] = metaValue;
14
+ }
15
+ getManyMeta(metaKeys = []) {
16
+ const arrayMeta = {};
17
+ if (!metaKeys.length) {
18
+ return this._meta;
19
+ }
20
+ metaKeys.forEach((key) => {
21
+ if (this._meta && this._meta[key]) {
22
+ arrayMeta[key] = this._meta[key];
23
+ }
24
+ });
25
+ return arrayMeta;
26
+ }
27
+ setManyMeta(metaValues) {
28
+ this._meta = Object.assign(Object.assign({}, this._meta), metaValues);
29
+ }
30
+ }
31
+ exports.default = DYOToolsComponentWithMeta;
32
+ //# sourceMappingURL=DTComponentWithMeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DTComponentWithMeta.js","sourceRoot":"","sources":["../../src/core/DTComponentWithMeta.ts"],"names":[],"mappings":";;AAAA,+CAA8C;AAG9C,MAA8B,yBAAqE,SAAQ,qBAAiB;IAA5H;;QAMY,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;AA1DD,4CA0DC"}
@@ -0,0 +1,13 @@
1
+ import DYOToolsComponentWithMeta from './DTComponentWithMeta';
2
+ import DYOToolsPlayer from './DTPlayer';
3
+ import { DTAcceptedMetaData, DTElementToObject } from '../types';
4
+ export default class DYOToolsElement<IComponentMeta extends DTAcceptedMetaData> extends DYOToolsComponentWithMeta<IComponentMeta> {
5
+ protected _componentType: string;
6
+ private _owner?;
7
+ getOwner(): DYOToolsPlayer<DTAcceptedMetaData>;
8
+ setOwner(value: DYOToolsPlayer<DTAcceptedMetaData>): void;
9
+ removeOwner(): void;
10
+ copy(): DYOToolsElement<IComponentMeta>;
11
+ toObject(): DTElementToObject<IComponentMeta>;
12
+ toString(): string;
13
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const DTComponentWithMeta_1 = require("./DTComponentWithMeta");
4
+ class DYOToolsElement extends DTComponentWithMeta_1.default {
5
+ constructor() {
6
+ super(...arguments);
7
+ this._componentType = 'element';
8
+ }
9
+ getOwner() {
10
+ return this._owner;
11
+ }
12
+ setOwner(value) {
13
+ this._owner = value;
14
+ }
15
+ removeOwner() {
16
+ this._owner = undefined;
17
+ }
18
+ copy() {
19
+ const copyElement = new DYOToolsElement(this._key);
20
+ copyElement.setManyMeta(Object.assign({}, this.getManyMeta()));
21
+ return copyElement;
22
+ }
23
+ toObject() {
24
+ const objectElement = {
25
+ id: this._id,
26
+ key: this._key,
27
+ type: this._componentType,
28
+ };
29
+ if (this._owner) {
30
+ objectElement.owner = this._owner.toString();
31
+ }
32
+ if (this._meta && Object.keys(this._meta).length > 0) {
33
+ objectElement.meta = Object.assign({}, this.getManyMeta());
34
+ }
35
+ return objectElement;
36
+ }
37
+ toString() {
38
+ let ownerKey = '';
39
+ if (this._owner) {
40
+ ownerKey = ` - Owner: ${this._owner.getKey()}`;
41
+ }
42
+ return `Component ${this._key} - Type: Element${ownerKey}`;
43
+ }
44
+ }
45
+ exports.default = DYOToolsElement;
46
+ //# sourceMappingURL=DTElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DTElement.js","sourceRoot":"","sources":["../../src/core/DTElement.ts"],"names":[],"mappings":";;AAAA,+DAA8D;AAI9D,MAAqB,eAEjB,SAAQ,6BAAyC;IAFrD;;QAMY,mBAAc,GAAG,SAAS,CAAC;IAqFvC,CAAC;IA3EC,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAKD,QAAQ,CAAC,KAAyC;QAChD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAKD,WAAW;QACT,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;IASD,IAAI;QACF,MAAM,WAAW,GAAG,IAAI,eAAe,CAAiB,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,WAAW,CAAC,WAAW,mBAAM,IAAI,CAAC,WAAW,EAAE,EAAG,CAAC;QAEnD,OAAO,WAAW,CAAC;IACrB,CAAC;IAcD,QAAQ;QACN,MAAM,aAAa,GAAsC;YACvD,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,IAAI,EAAE,IAAI,CAAC,cAAc;SAC1B,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SAC9C;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,aAAa,CAAC,IAAI,qBAAQ,IAAI,CAAC,WAAW,EAAE,CAAE,CAAC;SAChD;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAOD,QAAQ;QACN,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,QAAQ,GAAG,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;SAChD;QAED,OAAO,aAAa,IAAI,CAAC,IAAI,mBAAmB,QAAQ,EAAE,CAAC;IAC7D,CAAC;CACF;AA3FD,kCA2FC"}
@@ -0,0 +1,13 @@
1
+ import DYOToolsComponent from './DTComponent';
2
+ export default class DYOToolsError extends Error {
3
+ protected code: string;
4
+ protected timestamp: Date;
5
+ protected initiator?: DYOToolsComponent;
6
+ protected convicted?: DYOToolsComponent;
7
+ constructor(code: string, message: string, initiator?: DYOToolsComponent, convicted?: DYOToolsComponent);
8
+ getCode(): string;
9
+ getMessage(): string;
10
+ getTimestamp(): Date;
11
+ getInitiator(): DYOToolsComponent;
12
+ getConvicted(): DYOToolsComponent;
13
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class DYOToolsError extends Error {
4
+ constructor(code, message, initiator, convicted) {
5
+ super(message);
6
+ this.code = code;
7
+ this.timestamp = new Date();
8
+ this.initiator = initiator;
9
+ this.convicted = convicted;
10
+ }
11
+ getCode() {
12
+ return this.code;
13
+ }
14
+ getMessage() {
15
+ return this.message;
16
+ }
17
+ getTimestamp() {
18
+ return this.timestamp;
19
+ }
20
+ getInitiator() {
21
+ return this.initiator;
22
+ }
23
+ getConvicted() {
24
+ return this.convicted;
25
+ }
26
+ }
27
+ exports.default = DYOToolsError;
28
+ //# sourceMappingURL=DTError.js.map