@webtypen/webframez-core 0.2.51 → 0.2.53

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.
@@ -8,8 +8,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.Datatable = void 0;
16
+ const moment_1 = __importDefault(require("moment"));
13
17
  const DBConnection_1 = require("../Database/DBConnection");
14
18
  const NumericFunctions_1 = require("../Functions/NumericFunctions");
15
19
  class Datatable {
@@ -325,7 +329,7 @@ class Datatable {
325
329
  continue;
326
330
  }
327
331
  // Handle Boolean
328
- if (filterEl.type === "boolean") {
332
+ if (filterEl && filterEl.type === "boolean") {
329
333
  if ((typeof valueClean === "boolean" && valueClean) || (valueClean && valueClean.toString() === "true")) {
330
334
  out[filterEl && filterEl.mapping && filterEl.mapping.trim() !== "" ? filterEl.mapping : key] = true;
331
335
  continue;
@@ -333,60 +337,62 @@ class Datatable {
333
337
  }
334
338
  // Handle integer/float range
335
339
  if ((filterEl.type === "integer-range" ||
340
+ entryType === "integer-range" ||
336
341
  filterEl.type === "currency" ||
342
+ entryType === "currency" ||
337
343
  filterEl.type === "float-range" ||
344
+ entryType === "float-range" ||
338
345
  filterEl.type === "date-range" ||
346
+ entryType === "date-range" ||
347
+ entryType === "daterange" ||
339
348
  filterEl.type === "daterange") &&
340
349
  valueClean !== undefined) {
341
350
  const mappingKey = filterEl && filterEl.mapping && filterEl.mapping.trim() !== "" ? filterEl.mapping : key;
351
+ const cleanVal = (val) => {
352
+ return filterEl.type === "float-range" ||
353
+ filterEl.type === "currency" ||
354
+ entryType === "float-range" ||
355
+ entryType === "currency"
356
+ ? parseFloat(val.toString().replace(",", "."))
357
+ : filterEl.type === "integer-range" || entryType === "integer-range"
358
+ ? parseInt(val.toString().replace(",", "."))
359
+ : filterEl.type === "date-range" ||
360
+ filterEl.type === "daterange" ||
361
+ entryType === "date-range" ||
362
+ entryType === "daterange"
363
+ ? val.indexOf(".") > 0
364
+ ? (0, moment_1.default)(val, "DD.MM.YYYY").format("YYYY-MM-DD")
365
+ : val
366
+ : val;
367
+ };
342
368
  if (valueClean.startsWith("<=")) {
343
369
  const val = valueClean.replace("<=", "").trim();
344
370
  out[mappingKey] = {
345
- $lte: filterEl.type === "float-range" || filterEl.type === "currency"
346
- ? parseFloat(val.toString().replace(",", "."))
347
- : filterEl.type === "integer-range"
348
- ? parseInt(val.toString().replace(",", "."))
349
- : val,
371
+ $lte: cleanVal(val),
350
372
  };
351
373
  }
352
374
  else if (valueClean.startsWith("<")) {
353
375
  const val = valueClean.replace("<", "").trim();
354
376
  out[mappingKey] = {
355
- $lt: filterEl.type === "float-range" || filterEl.type === "currency"
356
- ? parseFloat(val.toString().replace(",", "."))
357
- : filterEl.type === "integer-range"
358
- ? parseInt(val.toString().replace(",", "."))
359
- : val,
377
+ $lt: cleanVal(val),
360
378
  };
361
379
  }
362
380
  else if (valueClean.startsWith(">=")) {
363
381
  const val = valueClean.replace(">=", "").trim();
364
382
  out[mappingKey] = {
365
- $gte: filterEl.type === "float-range" || filterEl.type === "currency"
366
- ? parseFloat(val.toString().replace(",", "."))
367
- : filterEl.type === "integer-range"
368
- ? parseInt(val.toString().replace(",", "."))
369
- : val,
383
+ $gte: cleanVal(val),
370
384
  };
371
385
  }
372
386
  else if (valueClean.startsWith(">")) {
373
387
  const val = valueClean.replace(">", "").trim();
374
388
  out[mappingKey] = {
375
- $gt: filterEl.type === "float-range" || filterEl.type === "currency"
376
- ? parseFloat(val.toString().replace(",", "."))
377
- : filterEl.type === "integer-range"
378
- ? parseInt(val.toString().replace(",", "."))
379
- : val,
389
+ $gt: cleanVal,
380
390
  };
381
391
  }
382
392
  else if (valueClean.startsWith("!=")) {
383
393
  const val = valueClean.replace("!=", "").trim();
384
394
  out[mappingKey] = {
385
- $ne: filterEl.type === "float-range" || filterEl.type === "currency"
386
- ? parseFloat(val.toString().replace(",", "."))
387
- : filterEl.type === "integer-range"
388
- ? parseInt(val.toString().replace(",", "."))
389
- : val,
395
+ $ne: cleanVal(val),
390
396
  };
391
397
  }
392
398
  else if (valueClean.indexOf("-") > 0) {
@@ -394,25 +400,12 @@ class Datatable {
394
400
  const min = range[0].toString().replace(",", ".");
395
401
  const max = range[1].toString().replace(",", ".");
396
402
  out[mappingKey] = {
397
- $gte: filterEl.type === "float-range" || filterEl.type === "currency"
398
- ? parseFloat(min)
399
- : filterEl.type === "integer-range"
400
- ? parseInt(min)
401
- : min,
402
- $lte: filterEl.type === "float-range" || filterEl.type === "currency"
403
- ? parseFloat(max)
404
- : filterEl.type === "integer-range"
405
- ? parseInt(max)
406
- : max,
403
+ $gte: cleanVal(min),
404
+ $lte: cleanVal(max),
407
405
  };
408
406
  }
409
407
  else {
410
- out[mappingKey] =
411
- filterEl.type === "float-range" || filterEl.type === "currency"
412
- ? parseFloat(valueClean.toString().replace(",", "."))
413
- : filterEl.type === "integer-range"
414
- ? parseInt(valueClean)
415
- : valueClean;
408
+ out[mappingKey] = cleanVal(valueClean);
416
409
  }
417
410
  continue;
418
411
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webtypen/webframez-core",
3
- "version": "0.2.51",
3
+ "version": "0.2.53",
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",
@@ -1,3 +1,4 @@
1
+ import moment from "moment";
1
2
  import { DBConnection } from "../Database/DBConnection";
2
3
  import { NumericFunctions } from "../Functions/NumericFunctions";
3
4
  import { Request } from "../Router/Request";
@@ -338,7 +339,7 @@ export class Datatable {
338
339
  }
339
340
 
340
341
  // Handle Boolean
341
- if (filterEl.type === "boolean") {
342
+ if (filterEl && filterEl.type === "boolean") {
342
343
  if ((typeof valueClean === "boolean" && valueClean) || (valueClean && valueClean.toString() === "true")) {
343
344
  out[filterEl && filterEl.mapping && filterEl.mapping.trim() !== "" ? filterEl.mapping : key] = true;
344
345
  continue;
@@ -348,67 +349,66 @@ export class Datatable {
348
349
  // Handle integer/float range
349
350
  if (
350
351
  (filterEl.type === "integer-range" ||
352
+ entryType === "integer-range" ||
351
353
  filterEl.type === "currency" ||
354
+ entryType === "currency" ||
352
355
  filterEl.type === "float-range" ||
356
+ entryType === "float-range" ||
353
357
  filterEl.type === "date-range" ||
358
+ entryType === "date-range" ||
359
+ entryType === "daterange" ||
354
360
  filterEl.type === "daterange") &&
355
361
  valueClean !== undefined
356
362
  ) {
357
363
  const mappingKey = filterEl && filterEl.mapping && filterEl.mapping.trim() !== "" ? filterEl.mapping : key;
364
+
365
+ const cleanVal = (val: any) => {
366
+ return filterEl.type === "float-range" ||
367
+ filterEl.type === "currency" ||
368
+ entryType === "float-range" ||
369
+ entryType === "currency"
370
+ ? parseFloat(val.toString().replace(",", "."))
371
+ : filterEl.type === "integer-range" || entryType === "integer-range"
372
+ ? parseInt(val.toString().replace(",", "."))
373
+ : filterEl.type === "date-range" ||
374
+ filterEl.type === "daterange" ||
375
+ entryType === "date-range" ||
376
+ entryType === "daterange"
377
+ ? val.indexOf(".") > 0
378
+ ? moment(val, "DD.MM.YYYY").format("YYYY-MM-DD")
379
+ : val
380
+ : val;
381
+ };
382
+
358
383
  if (valueClean.startsWith("<=")) {
359
384
  const val = valueClean.replace("<=", "").trim();
360
385
 
361
386
  out[mappingKey] = {
362
- $lte:
363
- filterEl.type === "float-range" || filterEl.type === "currency"
364
- ? parseFloat(val.toString().replace(",", "."))
365
- : filterEl.type === "integer-range"
366
- ? parseInt(val.toString().replace(",", "."))
367
- : val,
387
+ $lte: cleanVal(val),
368
388
  };
369
389
  } else if (valueClean.startsWith("<")) {
370
390
  const val = valueClean.replace("<", "").trim();
371
391
 
372
392
  out[mappingKey] = {
373
- $lt:
374
- filterEl.type === "float-range" || filterEl.type === "currency"
375
- ? parseFloat(val.toString().replace(",", "."))
376
- : filterEl.type === "integer-range"
377
- ? parseInt(val.toString().replace(",", "."))
378
- : val,
393
+ $lt: cleanVal(val),
379
394
  };
380
395
  } else if (valueClean.startsWith(">=")) {
381
396
  const val = valueClean.replace(">=", "").trim();
382
397
 
383
398
  out[mappingKey] = {
384
- $gte:
385
- filterEl.type === "float-range" || filterEl.type === "currency"
386
- ? parseFloat(val.toString().replace(",", "."))
387
- : filterEl.type === "integer-range"
388
- ? parseInt(val.toString().replace(",", "."))
389
- : val,
399
+ $gte: cleanVal(val),
390
400
  };
391
401
  } else if (valueClean.startsWith(">")) {
392
402
  const val = valueClean.replace(">", "").trim();
393
403
 
394
404
  out[mappingKey] = {
395
- $gt:
396
- filterEl.type === "float-range" || filterEl.type === "currency"
397
- ? parseFloat(val.toString().replace(",", "."))
398
- : filterEl.type === "integer-range"
399
- ? parseInt(val.toString().replace(",", "."))
400
- : val,
405
+ $gt: cleanVal,
401
406
  };
402
407
  } else if (valueClean.startsWith("!=")) {
403
408
  const val = valueClean.replace("!=", "").trim();
404
409
 
405
410
  out[mappingKey] = {
406
- $ne:
407
- filterEl.type === "float-range" || filterEl.type === "currency"
408
- ? parseFloat(val.toString().replace(",", "."))
409
- : filterEl.type === "integer-range"
410
- ? parseInt(val.toString().replace(",", "."))
411
- : val,
411
+ $ne: cleanVal(val),
412
412
  };
413
413
  } else if (valueClean.indexOf("-") > 0) {
414
414
  const range = valueClean.split("-");
@@ -416,26 +416,11 @@ export class Datatable {
416
416
  const max = range[1].toString().replace(",", ".");
417
417
 
418
418
  out[mappingKey] = {
419
- $gte:
420
- filterEl.type === "float-range" || filterEl.type === "currency"
421
- ? parseFloat(min)
422
- : filterEl.type === "integer-range"
423
- ? parseInt(min)
424
- : min,
425
- $lte:
426
- filterEl.type === "float-range" || filterEl.type === "currency"
427
- ? parseFloat(max)
428
- : filterEl.type === "integer-range"
429
- ? parseInt(max)
430
- : max,
419
+ $gte: cleanVal(min),
420
+ $lte: cleanVal(max),
431
421
  };
432
422
  } else {
433
- out[mappingKey] =
434
- filterEl.type === "float-range" || filterEl.type === "currency"
435
- ? parseFloat(valueClean.toString().replace(",", "."))
436
- : filterEl.type === "integer-range"
437
- ? parseInt(valueClean)
438
- : valueClean;
423
+ out[mappingKey] = cleanVal(valueClean);
439
424
  }
440
425
 
441
426
  continue;