parse_utils.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * DevExtreme (viz/components/parse_utils.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var noop = require("../../core/utils/common").noop;
  11. var dateSerialization = require("../../core/utils/date_serialization");
  12. var isDefined = require("../../core/utils/type").isDefined;
  13. var parsers = {
  14. string: function(val) {
  15. return isDefined(val) ? "" + val : val
  16. },
  17. numeric: function(val) {
  18. if (!isDefined(val)) {
  19. return val
  20. }
  21. var parsedVal = Number(val);
  22. if (isNaN(parsedVal)) {
  23. parsedVal = void 0
  24. }
  25. return parsedVal
  26. },
  27. datetime: function(val) {
  28. if (!isDefined(val)) {
  29. return val
  30. }
  31. var parsedVal;
  32. var numVal = Number(val);
  33. if (!isNaN(numVal)) {
  34. parsedVal = new Date(numVal)
  35. } else {
  36. parsedVal = dateSerialization.deserializeDate(val)
  37. }
  38. if (isNaN(Number(parsedVal))) {
  39. parsedVal = void 0
  40. }
  41. return parsedVal
  42. }
  43. };
  44. function correctValueType(type) {
  45. return "numeric" === type || "datetime" === type || "string" === type ? type : ""
  46. }
  47. module.exports = {
  48. correctValueType: correctValueType,
  49. getParser: function(valueType) {
  50. return parsers[correctValueType(valueType)] || noop
  51. }
  52. };