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.
Files changed (93) hide show
  1. package/.c8rc.json +4 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc.json +47 -0
  4. package/LICENSE +21 -0
  5. package/Makefile +34 -0
  6. package/README.md +0 -7
  7. package/babel.config.js +1 -0
  8. package/cucumber-report.html +48 -0
  9. package/cucumber.js +9 -0
  10. package/dist/constants.d.ts +6 -0
  11. package/dist/constants.js +63 -0
  12. package/dist/constants.js.map +1 -0
  13. package/dist/core/DTBunch.d.ts +11 -15
  14. package/dist/core/DTBunch.js +27 -106
  15. package/dist/core/DTBunch.js.map +1 -1
  16. package/dist/core/DTComponent.d.ts +13 -5
  17. package/dist/core/DTComponent.js +39 -1
  18. package/dist/core/DTComponent.js.map +1 -1
  19. package/dist/core/DTComponentPhysical.d.ts +10 -0
  20. package/dist/core/DTComponentPhysical.js +16 -0
  21. package/dist/core/DTComponentPhysical.js.map +1 -0
  22. package/dist/core/DTComponentWithMeta.d.ts +2 -2
  23. package/dist/core/DTComponentWithMeta.js.map +1 -1
  24. package/dist/core/DTElement.d.ts +2 -7
  25. package/dist/core/DTElement.js +3 -12
  26. package/dist/core/DTElement.js.map +1 -1
  27. package/dist/core/DTManager.d.ts +31 -0
  28. package/dist/core/DTManager.js +180 -0
  29. package/dist/core/DTManager.js.map +1 -0
  30. package/dist/core/DTPlayer.js +1 -1
  31. package/dist/core/DTPlayer.js.map +1 -1
  32. package/dist/index.d.ts +2 -0
  33. package/dist/index.js +5 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/libs/DYOFinder.d.ts +10 -0
  36. package/dist/libs/DYOFinder.js +96 -0
  37. package/dist/libs/DYOFinder.js.map +1 -0
  38. package/dist/tsconfig.tsbuildinfo +1 -1321
  39. package/dist/types/index.d.ts +64 -24
  40. package/dist/types/index.js.map +1 -1
  41. package/docs/.nojekyll +1 -0
  42. package/docs/assets/highlight.css +29 -0
  43. package/docs/assets/main.js +58 -0
  44. package/docs/assets/search.js +1 -0
  45. package/docs/assets/style.css +1367 -0
  46. package/docs/index.html +46 -0
  47. package/e2e/0.2.0/epic1.feature +29 -0
  48. package/e2e/0.2.0/epic2.feature +22 -0
  49. package/e2e/0.2.0/epic3.feature +25 -0
  50. package/e2e/0.2.0/resources/dominion.js +195 -0
  51. package/e2e/0.2.0/resources/utils.js +27 -0
  52. package/e2e/0.2.0/support/steps.js +108 -0
  53. package/e2e/future/epic4.feature +39 -0
  54. package/e2e/future/resources/dominion.js +238 -0
  55. package/e2e/future/resources/utils.js +27 -0
  56. package/jest.config.js +6 -0
  57. package/package.json +33 -23
  58. package/src/constants.ts +85 -0
  59. package/src/core/DTBunch.ts +461 -0
  60. package/src/core/DTComponent.ts +225 -0
  61. package/src/core/DTComponentPhysical.ts +39 -0
  62. package/src/core/DTComponentWithMeta.ts +65 -0
  63. package/src/core/DTElement.ts +69 -0
  64. package/src/core/DTError.ts +78 -0
  65. package/src/core/DTManager.ts +446 -0
  66. package/src/core/DTPlayer.ts +57 -0
  67. package/src/index.ts +9 -0
  68. package/src/libs/DYOFinder.ts +175 -0
  69. package/src/types/index.ts +162 -0
  70. package/test/core/DTBunch.double.ts +253 -0
  71. package/test/core/DTBunch.spec.ts +895 -0
  72. package/test/core/DTComponent.double.ts +164 -0
  73. package/test/core/DTComponent.spec.ts +295 -0
  74. package/test/core/DTComponentPhysical.double.ts +76 -0
  75. package/test/core/DTComponentPhysical.spec.ts +64 -0
  76. package/test/core/DTComponentWithMeta.double.ts +115 -0
  77. package/test/core/DTComponentWithMeta.spec.ts +124 -0
  78. package/test/core/DTElement.double.ts +147 -0
  79. package/test/core/DTElement.spec.ts +102 -0
  80. package/test/core/DTError.double.ts +92 -0
  81. package/test/core/DTError.spec.ts +89 -0
  82. package/test/core/DTManager.double.ts +192 -0
  83. package/test/core/DTManager.spec.ts +902 -0
  84. package/test/core/DTPlayer.double.ts +64 -0
  85. package/test/core/DTPlayer.spec.ts +80 -0
  86. package/test/core/copy.spec.ts +227 -0
  87. package/test/libs/DYOFinder.double.ts +152 -0
  88. package/test/libs/DYOFinder.spec.ts +194 -0
  89. package/tsconfig.dev.json +22 -0
  90. package/tsconfig.json +21 -0
  91. package/dist/utils/filters.d.ts +0 -6
  92. package/dist/utils/filters.js +0 -39
  93. 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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"}
@@ -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;QAClE,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"}
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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"}