config/Options/Options.ts

  1. /**
  2. * Copyright (c) 2017 ~ present NAVER Corp.
  3. * billboard.js project is licensed under the MIT license
  4. */
  5. // common
  6. import boost from "./common/boost";
  7. import color from "./common/color";
  8. import legend from "./common/legend";
  9. import main from "./common/main";
  10. import title from "./common/title";
  11. import tooltip from "./common/tooltip";
  12. import data from "./data/data";
  13. import interaction from "./interaction/interaction";
  14. import {deepClone} from "../../module/util";
  15. /**
  16. * Class to set options on generating chart.
  17. * - It's instantiated internally, not exposed for public.
  18. * @class Options
  19. * @see {@link bb.generate} to use these options on generating the chart
  20. */
  21. export default class Options {
  22. static data = {};
  23. static setOptions(options: any[]) {
  24. this.data = options
  25. .reduce((a, c) => ({...a, ...c}), this.data);
  26. }
  27. constructor() {
  28. return deepClone(
  29. main,
  30. boost,
  31. data,
  32. color,
  33. interaction,
  34. legend,
  35. title,
  36. tooltip,
  37. Options.data
  38. );
  39. }
  40. }