util.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { c3_chart_internal_fn } from './core';
  2. export var isValue = function (v) {
  3. return v || v === 0;
  4. };
  5. export var isFunction = function (o) {
  6. return typeof o === 'function';
  7. };
  8. export var isArray = function (o) {
  9. return Array.isArray(o);
  10. };
  11. export var isString = function (o) {
  12. return typeof o === 'string';
  13. };
  14. export var isUndefined = function (v) {
  15. return typeof v === 'undefined';
  16. };
  17. export var isDefined = function (v) {
  18. return typeof v !== 'undefined';
  19. };
  20. export var ceil10 = function (v) {
  21. return Math.ceil(v / 10) * 10;
  22. };
  23. export var asHalfPixel = function (n) {
  24. return Math.ceil(n) + 0.5;
  25. };
  26. export var diffDomain = function (d) {
  27. return d[1] - d[0];
  28. };
  29. export var isEmpty = function (o) {
  30. return typeof o === 'undefined' || o === null || (isString(o) && o.length === 0) || (typeof o === 'object' && Object.keys(o).length === 0);
  31. };
  32. export var notEmpty = function (o) {
  33. return !c3_chart_internal_fn.isEmpty(o);
  34. };
  35. export var getOption = function (options, key, defaultValue) {
  36. return isDefined(options[key]) ? options[key] : defaultValue;
  37. };
  38. export var hasValue = function (dict, value) {
  39. var found = false;
  40. Object.keys(dict).forEach(function (key) {
  41. if (dict[key] === value) { found = true; }
  42. });
  43. return found;
  44. };
  45. export var sanitise = function (str) {
  46. return typeof str === 'string' ? str.replace(/</g, '&lt;').replace(/>/g, '&gt;') : str;
  47. };
  48. export var getPathBox = function (path) {
  49. var box = path.getBoundingClientRect(),
  50. items = [path.pathSegList.getItem(0), path.pathSegList.getItem(1)],
  51. minX = items[0].x, minY = Math.min(items[0].y, items[1].y);
  52. return {x: minX, y: minY, width: box.width, height: box.height};
  53. };