@webtypen/webframez-core 0.2.10 → 0.2.11
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.
|
@@ -33,5 +33,6 @@ export declare class Datatable {
|
|
|
33
33
|
getFilter(req: Request): Promise<any>;
|
|
34
34
|
getColumns(req: Request): Promise<any>;
|
|
35
35
|
getOnPressLink(req: Request): Promise<any>;
|
|
36
|
+
private formatFilterEntryVal;
|
|
36
37
|
getFilterMatch(req: Request, searchOrFilter: any): Promise<any>;
|
|
37
38
|
}
|
|
@@ -239,6 +239,31 @@ class Datatable {
|
|
|
239
239
|
return this.onPressLink;
|
|
240
240
|
});
|
|
241
241
|
}
|
|
242
|
+
formatFilterEntryVal(entry, filterEl, options) {
|
|
243
|
+
const valueClean = entry.value !== undefined && entry.value !== "" ? entry.value : undefined;
|
|
244
|
+
const entryType = entry.type && entry.type.trim() !== "" ? entry.type : filterEl && filterEl.type ? filterEl.type : null;
|
|
245
|
+
let value = undefined;
|
|
246
|
+
if (entryType === "number" || entryType === "numeric" || entryType === "currency") {
|
|
247
|
+
value = parseFloat(valueClean.toString().replace(",", "."));
|
|
248
|
+
}
|
|
249
|
+
else if (entryType === "boolean") {
|
|
250
|
+
if (entry.value === "true") {
|
|
251
|
+
value = true;
|
|
252
|
+
}
|
|
253
|
+
else if (entry.value === "false") {
|
|
254
|
+
value = false;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
if (options && options.regex) {
|
|
259
|
+
value = new RegExp(valueClean, "i");
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
value = valueClean;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return value;
|
|
266
|
+
}
|
|
242
267
|
getFilterMatch(req, searchOrFilter) {
|
|
243
268
|
return __awaiter(this, void 0, void 0, function* () {
|
|
244
269
|
if (!searchOrFilter || Object.keys(searchOrFilter).length < 1) {
|
|
@@ -265,11 +290,12 @@ class Datatable {
|
|
|
265
290
|
value = { $ne: null };
|
|
266
291
|
break;
|
|
267
292
|
case "==":
|
|
268
|
-
value =
|
|
293
|
+
value = this.formatFilterEntryVal(entry, filterEl);
|
|
269
294
|
break;
|
|
270
295
|
case "!=":
|
|
271
|
-
|
|
272
|
-
|
|
296
|
+
const temp = this.formatFilterEntryVal(entry, filterEl);
|
|
297
|
+
if (temp !== undefined) {
|
|
298
|
+
value = { $ne: temp };
|
|
273
299
|
}
|
|
274
300
|
break;
|
|
275
301
|
case "$gt":
|
|
@@ -284,20 +310,7 @@ class Datatable {
|
|
|
284
310
|
break;
|
|
285
311
|
default:
|
|
286
312
|
if (valueClean !== undefined) {
|
|
287
|
-
|
|
288
|
-
value = parseFloat(valueClean.toString().replace(",", "."));
|
|
289
|
-
}
|
|
290
|
-
else if (entryType === "boolean") {
|
|
291
|
-
if (entry.value === "true") {
|
|
292
|
-
value = true;
|
|
293
|
-
}
|
|
294
|
-
else if (entry.value === "false") {
|
|
295
|
-
value = false;
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
value = new RegExp(valueClean, "i");
|
|
300
|
-
}
|
|
313
|
+
value = this.formatFilterEntryVal(entry, filterEl, { regex: true });
|
|
301
314
|
}
|
|
302
315
|
break;
|
|
303
316
|
}
|
package/package.json
CHANGED
|
@@ -251,6 +251,29 @@ export class Datatable {
|
|
|
251
251
|
return this.onPressLink;
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
+
private formatFilterEntryVal(entry: any, filterEl: any, options?: any) {
|
|
255
|
+
const valueClean = entry.value !== undefined && entry.value !== "" ? entry.value : undefined;
|
|
256
|
+
const entryType = entry.type && entry.type.trim() !== "" ? entry.type : filterEl && filterEl.type ? filterEl.type : null;
|
|
257
|
+
|
|
258
|
+
let value: any = undefined;
|
|
259
|
+
if (entryType === "number" || entryType === "numeric" || entryType === "currency") {
|
|
260
|
+
value = parseFloat(valueClean.toString().replace(",", "."));
|
|
261
|
+
} else if (entryType === "boolean") {
|
|
262
|
+
if (entry.value === "true") {
|
|
263
|
+
value = true;
|
|
264
|
+
} else if (entry.value === "false") {
|
|
265
|
+
value = false;
|
|
266
|
+
}
|
|
267
|
+
} else {
|
|
268
|
+
if (options && options.regex) {
|
|
269
|
+
value = new RegExp(valueClean, "i");
|
|
270
|
+
} else {
|
|
271
|
+
value = valueClean;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return value;
|
|
275
|
+
}
|
|
276
|
+
|
|
254
277
|
async getFilterMatch(req: Request, searchOrFilter: any) {
|
|
255
278
|
if (!searchOrFilter || Object.keys(searchOrFilter).length < 1) {
|
|
256
279
|
return {};
|
|
@@ -279,11 +302,12 @@ export class Datatable {
|
|
|
279
302
|
value = { $ne: null };
|
|
280
303
|
break;
|
|
281
304
|
case "==":
|
|
282
|
-
value =
|
|
305
|
+
value = this.formatFilterEntryVal(entry, filterEl);
|
|
283
306
|
break;
|
|
284
307
|
case "!=":
|
|
285
|
-
|
|
286
|
-
|
|
308
|
+
const temp = this.formatFilterEntryVal(entry, filterEl);
|
|
309
|
+
if (temp !== undefined) {
|
|
310
|
+
value = { $ne: temp };
|
|
287
311
|
}
|
|
288
312
|
break;
|
|
289
313
|
case "$gt":
|
|
@@ -298,17 +322,7 @@ export class Datatable {
|
|
|
298
322
|
break;
|
|
299
323
|
default:
|
|
300
324
|
if (valueClean !== undefined) {
|
|
301
|
-
|
|
302
|
-
value = parseFloat(valueClean.toString().replace(",", "."));
|
|
303
|
-
} else if (entryType === "boolean") {
|
|
304
|
-
if (entry.value === "true") {
|
|
305
|
-
value = true;
|
|
306
|
-
} else if (entry.value === "false") {
|
|
307
|
-
value = false;
|
|
308
|
-
}
|
|
309
|
-
} else {
|
|
310
|
-
value = new RegExp(valueClean, "i");
|
|
311
|
-
}
|
|
325
|
+
value = this.formatFilterEntryVal(entry, filterEl, { regex: true });
|
|
312
326
|
}
|
|
313
327
|
break;
|
|
314
328
|
}
|