@webtypen/webframez-core 0.2.48 → 0.2.50

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.
@@ -332,19 +332,78 @@ class Datatable {
332
332
  }
333
333
  }
334
334
  // Handle integer/float range
335
- if ((filterEl.type === "integer-range" || filterEl.type === "float-range") && valueClean !== undefined) {
336
- if (valueClean.indexOf("-") > 0) {
335
+ if ((filterEl.type === "integer-range" ||
336
+ filterEl.type === "float-range" ||
337
+ filterEl.type === "date-range" ||
338
+ filterEl.type === "daterange") &&
339
+ valueClean !== undefined) {
340
+ const mappingKey = filterEl && filterEl.mapping && filterEl.mapping.trim() !== "" ? filterEl.mapping : key;
341
+ if (valueClean.startsWith("<=")) {
342
+ const val = valueClean.replace("<=", "").trim();
343
+ out[mappingKey] = {
344
+ $lte: filterEl.type === "float-range"
345
+ ? parseFloat(val.toString().replace(",", "."))
346
+ : filterEl.type === "integer-range"
347
+ ? parseInt(val.toString().replace(",", "."))
348
+ : val,
349
+ };
350
+ }
351
+ else if (valueClean.startsWith("<")) {
352
+ const val = valueClean.replace("<", "").trim();
353
+ out[mappingKey] = {
354
+ $lt: filterEl.type === "float-range"
355
+ ? parseFloat(val.toString().replace(",", "."))
356
+ : filterEl.type === "integer-range"
357
+ ? parseInt(val.toString().replace(",", "."))
358
+ : val,
359
+ };
360
+ }
361
+ else if (valueClean.startsWith(">=")) {
362
+ const val = valueClean.replace(">=", "").trim();
363
+ out[mappingKey] = {
364
+ $gte: filterEl.type === "float-range"
365
+ ? parseFloat(val.toString().replace(",", "."))
366
+ : filterEl.type === "integer-range"
367
+ ? parseInt(val.toString().replace(",", "."))
368
+ : val,
369
+ };
370
+ }
371
+ else if (valueClean.startsWith(">")) {
372
+ const val = valueClean.replace(">", "").trim();
373
+ out[mappingKey] = {
374
+ $gt: filterEl.type === "float-range"
375
+ ? parseFloat(val.toString().replace(",", "."))
376
+ : filterEl.type === "integer-range"
377
+ ? parseInt(val.toString().replace(",", "."))
378
+ : val,
379
+ };
380
+ }
381
+ else if (valueClean.startsWith("!=")) {
382
+ const val = valueClean.replace("!=", "").trim();
383
+ out[mappingKey] = {
384
+ $ne: filterEl.type === "float-range"
385
+ ? parseFloat(val.toString().replace(",", "."))
386
+ : filterEl.type === "integer-range"
387
+ ? parseInt(val.toString().replace(",", "."))
388
+ : val,
389
+ };
390
+ }
391
+ else if (valueClean.indexOf("-") > 0) {
337
392
  const range = valueClean.split("-");
338
393
  const min = range[0].toString().replace(",", ".");
339
394
  const max = range[1].toString().replace(",", ".");
340
- value = {
341
- $gte: filterEl.type === "float-range" ? parseFloat(min) : parseInt(min),
342
- $lte: filterEl.type === "float-range" ? parseFloat(max) : parseInt(max),
395
+ out[mappingKey] = {
396
+ $gte: filterEl.type === "float-range" ? parseFloat(min) : filterEl.type === "integer-range" ? parseInt(min) : min,
397
+ $lte: filterEl.type === "float-range" ? parseFloat(max) : filterEl.type === "integer-range" ? parseInt(max) : max,
343
398
  };
344
399
  }
345
400
  else {
346
- out[filterEl && filterEl.mapping && filterEl.mapping.trim() !== "" ? filterEl.mapping : key] =
347
- filterEl.type === "float-range" ? parseFloat(valueClean.toString().replace(",", ".")) : parseInt(valueClean);
401
+ out[mappingKey] =
402
+ filterEl.type === "float-range"
403
+ ? parseFloat(valueClean.toString().replace(",", "."))
404
+ : filterEl.type === "integer-range"
405
+ ? parseInt(valueClean)
406
+ : valueClean;
348
407
  }
349
408
  continue;
350
409
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webtypen/webframez-core",
3
- "version": "0.2.48",
3
+ "version": "0.2.50",
4
4
  "description": "The core package of the typescript based webframez (web-framework) by webtypen.de",
5
5
  "homepage": "https://webtypen.de/",
6
6
  "license": "MIT",
@@ -346,19 +346,85 @@ export class Datatable {
346
346
  }
347
347
 
348
348
  // Handle integer/float range
349
- if ((filterEl.type === "integer-range" || filterEl.type === "float-range") && valueClean !== undefined) {
350
- if (valueClean.indexOf("-") > 0) {
349
+ if (
350
+ (filterEl.type === "integer-range" ||
351
+ filterEl.type === "float-range" ||
352
+ filterEl.type === "date-range" ||
353
+ filterEl.type === "daterange") &&
354
+ valueClean !== undefined
355
+ ) {
356
+ const mappingKey = filterEl && filterEl.mapping && filterEl.mapping.trim() !== "" ? filterEl.mapping : key;
357
+ if (valueClean.startsWith("<=")) {
358
+ const val = valueClean.replace("<=", "").trim();
359
+
360
+ out[mappingKey] = {
361
+ $lte:
362
+ filterEl.type === "float-range"
363
+ ? parseFloat(val.toString().replace(",", "."))
364
+ : filterEl.type === "integer-range"
365
+ ? parseInt(val.toString().replace(",", "."))
366
+ : val,
367
+ };
368
+ } else if (valueClean.startsWith("<")) {
369
+ const val = valueClean.replace("<", "").trim();
370
+
371
+ out[mappingKey] = {
372
+ $lt:
373
+ filterEl.type === "float-range"
374
+ ? parseFloat(val.toString().replace(",", "."))
375
+ : filterEl.type === "integer-range"
376
+ ? parseInt(val.toString().replace(",", "."))
377
+ : val,
378
+ };
379
+ } else if (valueClean.startsWith(">=")) {
380
+ const val = valueClean.replace(">=", "").trim();
381
+
382
+ out[mappingKey] = {
383
+ $gte:
384
+ filterEl.type === "float-range"
385
+ ? parseFloat(val.toString().replace(",", "."))
386
+ : filterEl.type === "integer-range"
387
+ ? parseInt(val.toString().replace(",", "."))
388
+ : val,
389
+ };
390
+ } else if (valueClean.startsWith(">")) {
391
+ const val = valueClean.replace(">", "").trim();
392
+
393
+ out[mappingKey] = {
394
+ $gt:
395
+ filterEl.type === "float-range"
396
+ ? parseFloat(val.toString().replace(",", "."))
397
+ : filterEl.type === "integer-range"
398
+ ? parseInt(val.toString().replace(",", "."))
399
+ : val,
400
+ };
401
+ } else if (valueClean.startsWith("!=")) {
402
+ const val = valueClean.replace("!=", "").trim();
403
+
404
+ out[mappingKey] = {
405
+ $ne:
406
+ filterEl.type === "float-range"
407
+ ? parseFloat(val.toString().replace(",", "."))
408
+ : filterEl.type === "integer-range"
409
+ ? parseInt(val.toString().replace(",", "."))
410
+ : val,
411
+ };
412
+ } else if (valueClean.indexOf("-") > 0) {
351
413
  const range = valueClean.split("-");
352
414
  const min = range[0].toString().replace(",", ".");
353
415
  const max = range[1].toString().replace(",", ".");
354
416
 
355
- value = {
356
- $gte: filterEl.type === "float-range" ? parseFloat(min) : parseInt(min),
357
- $lte: filterEl.type === "float-range" ? parseFloat(max) : parseInt(max),
417
+ out[mappingKey] = {
418
+ $gte: filterEl.type === "float-range" ? parseFloat(min) : filterEl.type === "integer-range" ? parseInt(min) : min,
419
+ $lte: filterEl.type === "float-range" ? parseFloat(max) : filterEl.type === "integer-range" ? parseInt(max) : max,
358
420
  };
359
421
  } else {
360
- out[filterEl && filterEl.mapping && filterEl.mapping.trim() !== "" ? filterEl.mapping : key] =
361
- filterEl.type === "float-range" ? parseFloat(valueClean.toString().replace(",", ".")) : parseInt(valueClean);
422
+ out[mappingKey] =
423
+ filterEl.type === "float-range"
424
+ ? parseFloat(valueClean.toString().replace(",", "."))
425
+ : filterEl.type === "integer-range"
426
+ ? parseInt(valueClean)
427
+ : valueClean;
362
428
  }
363
429
 
364
430
  continue;