dyo-tools 0.1.0 → 0.2.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/LICENSE +21 -0
- package/Makefile +34 -0
- package/README.md +0 -7
- package/babel.config.js +1 -0
- package/cucumber-report.html +48 -0
- package/cucumber.js +9 -0
- package/dist/constants.d.ts +6 -0
- package/dist/constants.js +63 -0
- package/dist/constants.js.map +1 -0
- package/dist/core/DTBunch.d.ts +11 -15
- package/dist/core/DTBunch.js +27 -106
- 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 +10 -0
- package/dist/core/DTComponentPhysical.js +16 -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 +2 -7
- package/dist/core/DTElement.js +3 -12
- package/dist/core/DTElement.js.map +1 -1
- package/dist/core/DTManager.d.ts +31 -0
- package/dist/core/DTManager.js +180 -0
- package/dist/core/DTManager.js.map +1 -0
- package/dist/core/DTPlayer.js +1 -1
- package/dist/core/DTPlayer.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -1
- 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/tsconfig.tsbuildinfo +1 -1321
- package/dist/types/index.d.ts +64 -24
- package/dist/types/index.js.map +1 -1
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +29 -0
- package/docs/assets/main.js +58 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1367 -0
- package/docs/index.html +46 -0
- package/e2e/0.2.0/epic1.feature +29 -0
- package/e2e/0.2.0/epic2.feature +22 -0
- package/e2e/0.2.0/epic3.feature +25 -0
- package/e2e/0.2.0/resources/dominion.js +195 -0
- package/e2e/0.2.0/resources/utils.js +27 -0
- package/e2e/0.2.0/support/steps.js +108 -0
- package/e2e/future/epic4.feature +39 -0
- package/e2e/future/resources/dominion.js +238 -0
- package/e2e/future/resources/utils.js +27 -0
- package/jest.config.js +6 -0
- package/package.json +33 -23
- package/src/constants.ts +85 -0
- package/src/core/DTBunch.ts +461 -0
- package/src/core/DTComponent.ts +225 -0
- package/src/core/DTComponentPhysical.ts +39 -0
- package/src/core/DTComponentWithMeta.ts +65 -0
- package/src/core/DTElement.ts +69 -0
- package/src/core/DTError.ts +78 -0
- package/src/core/DTManager.ts +446 -0
- package/src/core/DTPlayer.ts +57 -0
- package/src/index.ts +9 -0
- package/src/libs/DYOFinder.ts +175 -0
- package/src/types/index.ts +162 -0
- package/test/core/DTBunch.double.ts +253 -0
- package/test/core/DTBunch.spec.ts +895 -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 +64 -0
- package/test/core/DTComponentWithMeta.double.ts +115 -0
- package/test/core/DTComponentWithMeta.spec.ts +124 -0
- package/test/core/DTElement.double.ts +147 -0
- package/test/core/DTElement.spec.ts +102 -0
- package/test/core/DTError.double.ts +92 -0
- package/test/core/DTError.spec.ts +89 -0
- package/test/core/DTManager.double.ts +192 -0
- package/test/core/DTManager.spec.ts +902 -0
- package/test/core/DTPlayer.double.ts +64 -0
- package/test/core/DTPlayer.spec.ts +80 -0
- package/test/core/copy.spec.ts +227 -0
- package/test/libs/DYOFinder.double.ts +152 -0
- package/test/libs/DYOFinder.spec.ts +194 -0
- package/tsconfig.dev.json +22 -0
- package/tsconfig.json +21 -0
- 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,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const DTComponent_1 = require("./DTComponent");
|
|
4
|
+
const DTBunch_1 = require("./DTBunch");
|
|
5
|
+
const DTError_1 = require("./DTError");
|
|
6
|
+
const DYOFinder_1 = require("../libs/DYOFinder");
|
|
7
|
+
const constants_1 = require("../constants");
|
|
8
|
+
class DYOToolsManager extends DTComponent_1.default {
|
|
9
|
+
constructor(key, elements = [], scopes = [], options = {}) {
|
|
10
|
+
super(key, Object.assign(Object.assign({}, constants_1.managerDefaultOptions), options));
|
|
11
|
+
this._componentType = 'manager';
|
|
12
|
+
this._key = !key ? (this.getDomain() || this._id) : key;
|
|
13
|
+
this._items = {};
|
|
14
|
+
this._scopes = [
|
|
15
|
+
'default',
|
|
16
|
+
'virtual',
|
|
17
|
+
...scopes,
|
|
18
|
+
];
|
|
19
|
+
this._library = new DTBunch_1.default('library', elements, { virtualContext: true });
|
|
20
|
+
this._finder = new DYOFinder_1.default(this, this.getFinderConfiguration());
|
|
21
|
+
}
|
|
22
|
+
getFinderConfiguration() {
|
|
23
|
+
return constants_1.componentManagerDefaultFinderConfiguration;
|
|
24
|
+
}
|
|
25
|
+
getLibrary() {
|
|
26
|
+
return this._library;
|
|
27
|
+
}
|
|
28
|
+
getScopes() {
|
|
29
|
+
return this._scopes;
|
|
30
|
+
}
|
|
31
|
+
isValidScope(scope) {
|
|
32
|
+
return this._scopes.includes(scope);
|
|
33
|
+
}
|
|
34
|
+
add(item, targetScope) {
|
|
35
|
+
if (Object.keys(this._items).includes(item.getId())) {
|
|
36
|
+
this.triggerError(new DTError_1.default('id_conflict', 'Bunch with same id already exists in the manager', this, item));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const { virtualContext } = item.getOptions();
|
|
40
|
+
let scope;
|
|
41
|
+
if (!targetScope) {
|
|
42
|
+
scope = virtualContext ? 'virtual' : 'default';
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const { code: errorCode, message: errorMessage } = this.getErrorDataForScope(targetScope, virtualContext);
|
|
46
|
+
if (errorCode && errorMessage) {
|
|
47
|
+
this.triggerError(new DTError_1.default(errorCode, errorMessage, this, item));
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
scope = targetScope;
|
|
51
|
+
}
|
|
52
|
+
if (item.getAll().length) {
|
|
53
|
+
item.getAll().forEach((element) => {
|
|
54
|
+
if (!this._library.get(element.getId())) {
|
|
55
|
+
this._library.add(element);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
item.setContext(this);
|
|
60
|
+
const oldContext = item.getContext();
|
|
61
|
+
if (oldContext && oldContext.getComponentType() === 'manager') {
|
|
62
|
+
oldContext.remove(item.getId());
|
|
63
|
+
}
|
|
64
|
+
this._items[item.getId()] = {
|
|
65
|
+
scope,
|
|
66
|
+
item,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
addMany(items, targetScope) {
|
|
70
|
+
const previousItems = Object.assign({}, this._items);
|
|
71
|
+
const { errors } = this._options;
|
|
72
|
+
try {
|
|
73
|
+
items.forEach((item) => {
|
|
74
|
+
this.add(item, targetScope);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
this._items = previousItems;
|
|
79
|
+
if (!errors) {
|
|
80
|
+
throw err;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
moveToScope(bunchId, targetScope) {
|
|
85
|
+
if (!Object.keys(this._items).includes(bunchId)) {
|
|
86
|
+
this.triggerError(new DTError_1.default('invalid_id', 'Bunch id provided doesn\'t exist in the manager', this));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const bunch = this._items[bunchId].item;
|
|
90
|
+
const { virtualContext } = bunch.getOptions();
|
|
91
|
+
const { code: errorCode, message: errorMessage } = this.getErrorDataForScope(targetScope, virtualContext);
|
|
92
|
+
if (errorCode && errorMessage) {
|
|
93
|
+
this.triggerError(new DTError_1.default(errorCode, errorMessage, this, bunch));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
this._items[bunchId].scope = targetScope;
|
|
97
|
+
}
|
|
98
|
+
get(id) {
|
|
99
|
+
var _a, _b;
|
|
100
|
+
return (_b = (_a = this._items[id]) === null || _a === void 0 ? void 0 : _a.item) !== null && _b !== void 0 ? _b : undefined;
|
|
101
|
+
}
|
|
102
|
+
getAll(scope) {
|
|
103
|
+
const finalItems = [];
|
|
104
|
+
Object.values(this._items).forEach((item) => {
|
|
105
|
+
if (!scope || item.scope === scope) {
|
|
106
|
+
finalItems.push(item.item);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return finalItems;
|
|
110
|
+
}
|
|
111
|
+
getScope(id) {
|
|
112
|
+
return this._items[id] && this._items[id].scope;
|
|
113
|
+
}
|
|
114
|
+
remove(id) {
|
|
115
|
+
this.removeMany([id]);
|
|
116
|
+
}
|
|
117
|
+
removeMany(ids, options = {}) {
|
|
118
|
+
const { libraryDeletion } = Object.assign(Object.assign({}, this._options), options);
|
|
119
|
+
ids.forEach((id) => {
|
|
120
|
+
if (this._items[id]) {
|
|
121
|
+
if (libraryDeletion) {
|
|
122
|
+
this._items[id].item.getAll().forEach((item) => {
|
|
123
|
+
this._library.remove(item.getId());
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
delete this._items[id];
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
removeAll() {
|
|
131
|
+
this.removeMany(Object.keys(this._items));
|
|
132
|
+
}
|
|
133
|
+
find(filters) {
|
|
134
|
+
return this._finder.execute(filters);
|
|
135
|
+
}
|
|
136
|
+
reloadLibrary() {
|
|
137
|
+
this._library.removeAll();
|
|
138
|
+
Object.values(this._items).forEach((item) => {
|
|
139
|
+
item.item.getAll().forEach((element) => {
|
|
140
|
+
if (!this._library.get(element.getId())) {
|
|
141
|
+
this._library.add(element);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
toObject() {
|
|
147
|
+
const objectManager = {
|
|
148
|
+
id: this._id,
|
|
149
|
+
key: this._key,
|
|
150
|
+
type: this._componentType,
|
|
151
|
+
items: [],
|
|
152
|
+
};
|
|
153
|
+
Object.keys(this._items).forEach((bunchId) => {
|
|
154
|
+
objectManager.items.push(Object.assign({ scope: this._items[bunchId].scope }, this._items[bunchId].item.toObject()));
|
|
155
|
+
});
|
|
156
|
+
return objectManager;
|
|
157
|
+
}
|
|
158
|
+
toString() {
|
|
159
|
+
const libraryLabel = `Library: ${this._library.getAll().length}`;
|
|
160
|
+
return `Component ${this._key} - Type: Manager - ${libraryLabel} - Items: ${Object.keys(this._items).length}`;
|
|
161
|
+
}
|
|
162
|
+
getErrorDataForScope(targetScope, virtualContext = false) {
|
|
163
|
+
const response = { code: '', message: '' };
|
|
164
|
+
if (!this.isValidScope(targetScope)) {
|
|
165
|
+
response.code = 'invalid_scope';
|
|
166
|
+
response.message = "Scope provided doesn't exist in the manager";
|
|
167
|
+
}
|
|
168
|
+
if (virtualContext && targetScope !== 'virtual') {
|
|
169
|
+
response.code = 'forbidden_scope';
|
|
170
|
+
response.message = 'Scope provided cannot be associated to a virtual bunch';
|
|
171
|
+
}
|
|
172
|
+
if (!virtualContext && targetScope === 'virtual') {
|
|
173
|
+
response.code = 'forbidden_virtual_scope';
|
|
174
|
+
response.message = 'Virtual Scope provided cannot be associated to a physical bunch';
|
|
175
|
+
}
|
|
176
|
+
return response;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
exports.default = DYOToolsManager;
|
|
180
|
+
//# sourceMappingURL=DTManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DTManager.js","sourceRoot":"","sources":["../../src/core/DTManager.ts"],"names":[],"mappings":"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"}
|
package/dist/core/DTPlayer.js
CHANGED
|
@@ -7,7 +7,7 @@ class DYOToolsPlayer extends DTComponentWithMeta_1.default {
|
|
|
7
7
|
this._componentType = 'player';
|
|
8
8
|
}
|
|
9
9
|
copy() {
|
|
10
|
-
const copyElement = new DYOToolsPlayer(this._key);
|
|
10
|
+
const copyElement = new DYOToolsPlayer(this._key, this._options);
|
|
11
11
|
copyElement.setManyMeta(Object.assign({}, this.getManyMeta()));
|
|
12
12
|
return copyElement;
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DTPlayer.js","sourceRoot":"","sources":["../../src/core/DTPlayer.ts"],"names":[],"mappings":";;AAAA,+DAA8D;AAG9D,MAAqB,cAA0D,SAAQ,6BAAyC;IAAhI;;QAIY,mBAAc,GAAG,QAAQ,CAAC;IAiDtC,CAAC;IAxCC,IAAI;QACF,MAAM,WAAW,GAAG,IAAI,cAAc,CAAiB,IAAI,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"DTPlayer.js","sourceRoot":"","sources":["../../src/core/DTPlayer.ts"],"names":[],"mappings":";;AAAA,+DAA8D;AAG9D,MAAqB,cAA0D,SAAQ,6BAAyC;IAAhI;;QAIY,mBAAc,GAAG,QAAQ,CAAC;IAiDtC,CAAC;IAxCC,IAAI;QACF,MAAM,WAAW,GAAG,IAAI,cAAc,CAAiB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjF,WAAW,CAAC,WAAW,mBAAM,IAAI,CAAC,WAAW,EAAE,EAAG,CAAC;QAEnD,OAAO,WAAW,CAAC;IACrB,CAAC;IAaD,QAAQ;QACN,MAAM,YAAY,GAAqC;YACrD,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,IAAI,EAAE,IAAI,CAAC,cAAc;SAC1B,CAAC;QAEF,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,YAAY,CAAC,IAAI,qBAAQ,IAAI,CAAC,WAAW,EAAE,CAAE,CAAC;SAC/C;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAOD,QAAQ;QACN,OAAO,aAAa,IAAI,CAAC,IAAI,iBAAiB,CAAC;IACjD,CAAC;CACF;AArDD,iCAqDC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { default as DTComponent } from './core/DTComponent';
|
|
2
2
|
export { default as DTComponentWithMeta } from './core/DTComponentWithMeta';
|
|
3
|
+
export { default as DTComponentPhysical } from './core/DTComponentPhysical';
|
|
3
4
|
export { default as DTElement } from './core/DTElement';
|
|
4
5
|
export { default as DTBunch } from './core/DTBunch';
|
|
6
|
+
export { default as DTManager } from './core/DTManager';
|
|
5
7
|
export { default as DTPlayer } from './core/DTPlayer';
|
|
6
8
|
export { default as DTError } from './core/DTError';
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DTError = exports.DTPlayer = exports.DTBunch = exports.DTElement = exports.DTComponentWithMeta = exports.DTComponent = void 0;
|
|
3
|
+
exports.DTError = exports.DTPlayer = exports.DTManager = exports.DTBunch = exports.DTElement = exports.DTComponentPhysical = exports.DTComponentWithMeta = exports.DTComponent = void 0;
|
|
4
4
|
var DTComponent_1 = require("./core/DTComponent");
|
|
5
5
|
Object.defineProperty(exports, "DTComponent", { enumerable: true, get: function () { return DTComponent_1.default; } });
|
|
6
6
|
var DTComponentWithMeta_1 = require("./core/DTComponentWithMeta");
|
|
7
7
|
Object.defineProperty(exports, "DTComponentWithMeta", { enumerable: true, get: function () { return DTComponentWithMeta_1.default; } });
|
|
8
|
+
var DTComponentPhysical_1 = require("./core/DTComponentPhysical");
|
|
9
|
+
Object.defineProperty(exports, "DTComponentPhysical", { enumerable: true, get: function () { return DTComponentPhysical_1.default; } });
|
|
8
10
|
var DTElement_1 = require("./core/DTElement");
|
|
9
11
|
Object.defineProperty(exports, "DTElement", { enumerable: true, get: function () { return DTElement_1.default; } });
|
|
10
12
|
var DTBunch_1 = require("./core/DTBunch");
|
|
11
13
|
Object.defineProperty(exports, "DTBunch", { enumerable: true, get: function () { return DTBunch_1.default; } });
|
|
14
|
+
var DTManager_1 = require("./core/DTManager");
|
|
15
|
+
Object.defineProperty(exports, "DTManager", { enumerable: true, get: function () { return DTManager_1.default; } });
|
|
12
16
|
var DTPlayer_1 = require("./core/DTPlayer");
|
|
13
17
|
Object.defineProperty(exports, "DTPlayer", { enumerable: true, get: function () { return DTPlayer_1.default; } });
|
|
14
18
|
var DTError_1 = require("./core/DTError");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,kDAA4D;AAAnD,0GAAA,OAAO,OAAe;AAC/B,kEAA4E;AAAnE,0HAAA,OAAO,OAAuB;AACvC,8CAAwD;AAA/C,sGAAA,OAAO,OAAa;AAC7B,0CAAoD;AAA3C,kGAAA,OAAO,OAAW;AAC3B,4CAAsD;AAA7C,oGAAA,OAAO,OAAY;AAC5B,0CAAoD;AAA3C,kGAAA,OAAO,OAAW"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,kDAA4D;AAAnD,0GAAA,OAAO,OAAe;AAC/B,kEAA4E;AAAnE,0HAAA,OAAO,OAAuB;AACvC,kEAA4E;AAAnE,0HAAA,OAAO,OAAuB;AACvC,8CAAwD;AAA/C,sGAAA,OAAO,OAAa;AAC7B,0CAAoD;AAA3C,kGAAA,OAAO,OAAW;AAC3B,8CAAwD;AAA/C,sGAAA,OAAO,OAAa;AAC7B,4CAAsD;AAA7C,oGAAA,OAAO,OAAY;AAC5B,0CAAoD;AAA3C,kGAAA,OAAO,OAAW"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DYOFinderComponentType, DYOFinderConfiguration, DYOFinderFilters } from '../types';
|
|
2
|
+
export default class DYOFinder {
|
|
3
|
+
protected _component: DYOFinderComponentType;
|
|
4
|
+
protected _configuration: DYOFinderConfiguration;
|
|
5
|
+
constructor(component: DYOFinderComponentType, configuration: DYOFinderConfiguration);
|
|
6
|
+
getComponent(): DYOFinderComponentType;
|
|
7
|
+
execute<ITEM>(filters: DYOFinderFilters): ITEM[];
|
|
8
|
+
private checkAllValidFiltersForProp;
|
|
9
|
+
private validFiltersForItem;
|
|
10
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const types_1 = require("../types");
|
|
4
|
+
class DYOFinder {
|
|
5
|
+
constructor(component, configuration) {
|
|
6
|
+
this.checkAllValidFiltersForProp = (itemProp, operators, validOperators) => {
|
|
7
|
+
if (Object.keys(operators).length) {
|
|
8
|
+
for (const operator of Object.keys(operators)) {
|
|
9
|
+
if (!validOperators.includes(operator)
|
|
10
|
+
|| !this.validFiltersForItem(itemProp, operators[operator], operator)) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
};
|
|
18
|
+
this._component = component;
|
|
19
|
+
this._configuration = configuration;
|
|
20
|
+
}
|
|
21
|
+
getComponent() {
|
|
22
|
+
return this._component;
|
|
23
|
+
}
|
|
24
|
+
execute(filters) {
|
|
25
|
+
const items = this._component.getAll();
|
|
26
|
+
const filteredItems = [];
|
|
27
|
+
for (const item of items) {
|
|
28
|
+
let validItem = !!(Object.keys(filters).length);
|
|
29
|
+
for (const [propKey, configProp] of Object.entries(this._configuration)) {
|
|
30
|
+
if (filters[propKey]) {
|
|
31
|
+
if (configProp.objectSearch) {
|
|
32
|
+
const objectValue = configProp.getValue(item, this.getComponent());
|
|
33
|
+
if (objectValue) {
|
|
34
|
+
for (const [filterK, filterV] of Object.entries(filters[propKey])) {
|
|
35
|
+
const metaValue = Object.prototype.hasOwnProperty.call(objectValue, filterK) ? objectValue[filterK] : undefined;
|
|
36
|
+
if (!this.checkAllValidFiltersForProp(metaValue, filterV, configProp.operators)) {
|
|
37
|
+
validItem = false;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
validItem = false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else if (!this.checkAllValidFiltersForProp(configProp.getValue(item, this.getComponent()), filters[propKey], configProp.operators)) {
|
|
47
|
+
validItem = false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (validItem) {
|
|
52
|
+
filteredItems.push(item);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return filteredItems;
|
|
56
|
+
}
|
|
57
|
+
validFiltersForItem(itemProp, filter, operator) {
|
|
58
|
+
if (operator === types_1.FilterOperatorType.EQ) {
|
|
59
|
+
return itemProp === filter;
|
|
60
|
+
}
|
|
61
|
+
if (operator === types_1.FilterOperatorType.IN) {
|
|
62
|
+
return filter ? filter.includes(itemProp) : false;
|
|
63
|
+
}
|
|
64
|
+
if (operator === types_1.FilterOperatorType.NIN) {
|
|
65
|
+
return filter ? !filter.includes(itemProp) : false;
|
|
66
|
+
}
|
|
67
|
+
if (operator === types_1.FilterOperatorType.NE) {
|
|
68
|
+
return itemProp !== filter;
|
|
69
|
+
}
|
|
70
|
+
if (operator === types_1.FilterOperatorType.LTE) {
|
|
71
|
+
if (typeof itemProp === 'number' && typeof filter === 'number') {
|
|
72
|
+
return itemProp <= filter;
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
if (operator === types_1.FilterOperatorType.GTE) {
|
|
77
|
+
if (typeof itemProp === 'number' && typeof filter === 'number') {
|
|
78
|
+
return itemProp >= filter;
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
if (operator === types_1.FilterOperatorType.CONTAINS) {
|
|
83
|
+
return (itemProp && Array.isArray(itemProp))
|
|
84
|
+
? itemProp.includes(filter)
|
|
85
|
+
: false;
|
|
86
|
+
}
|
|
87
|
+
if (operator === types_1.FilterOperatorType.NCONTAINS) {
|
|
88
|
+
return (itemProp && Array.isArray(itemProp))
|
|
89
|
+
? !itemProp.includes(filter)
|
|
90
|
+
: false;
|
|
91
|
+
}
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.default = DYOFinder;
|
|
96
|
+
//# sourceMappingURL=DYOFinder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DYOFinder.js","sourceRoot":"","sources":["../../src/libs/DYOFinder.ts"],"names":[],"mappings":"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"}
|