index.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { __extends } from "tslib";
  2. import { each } from '@antv/util';
  3. import { Plot } from '../../core/plot';
  4. import { getAllElementsRecursively } from '../../utils';
  5. import { adaptor } from './adaptor';
  6. import { DEFAULT_OPTIONS, FUNNEL_CONVERSATION as FUNNEL_CONVERSATION_FIELD, FUNNEL_PERCENT, FUNNEL_TOTAL_PERCENT, } from './constant';
  7. import './interactions';
  8. export { FUNNEL_CONVERSATION_FIELD };
  9. var Funnel = /** @class */ (function (_super) {
  10. __extends(Funnel, _super);
  11. function Funnel() {
  12. var _this = _super !== null && _super.apply(this, arguments) || this;
  13. /** 图表类型 */
  14. _this.type = 'funnel';
  15. return _this;
  16. }
  17. Funnel.getDefaultOptions = function () {
  18. return DEFAULT_OPTIONS;
  19. };
  20. /**
  21. * 获取 漏斗图 默认配置项
  22. */
  23. Funnel.prototype.getDefaultOptions = function () {
  24. // 由于不同漏斗图 defaultOption 有部分逻辑不同,此处仅处理 core.getDefaultOptions 覆盖范围,funnel 的 defaulOption 为不分散逻辑统一写到 adaptor 的 defaultOption 中
  25. return Funnel.getDefaultOptions();
  26. };
  27. /**
  28. * 获取 漏斗图 的适配器
  29. */
  30. Funnel.prototype.getSchemaAdaptor = function () {
  31. return adaptor;
  32. };
  33. /**
  34. * 设置状态
  35. * @param type 状态类型,支持 'active' | 'inactive' | 'selected' 三种
  36. * @param conditions 条件,支持数组
  37. * @param status 是否激活,默认 true
  38. */
  39. Funnel.prototype.setState = function (type, condition, status) {
  40. if (status === void 0) { status = true; }
  41. var elements = getAllElementsRecursively(this.chart);
  42. each(elements, function (ele) {
  43. if (condition(ele.getData())) {
  44. ele.setState(type, status);
  45. }
  46. });
  47. };
  48. /**
  49. * 获取状态
  50. */
  51. Funnel.prototype.getStates = function () {
  52. var elements = getAllElementsRecursively(this.chart);
  53. var stateObjects = [];
  54. each(elements, function (element) {
  55. var data = element.getData();
  56. var states = element.getStates();
  57. each(states, function (state) {
  58. stateObjects.push({ data: data, state: state, geometry: element.geometry, element: element });
  59. });
  60. });
  61. return stateObjects;
  62. };
  63. // 内部变量
  64. /** 漏斗 转化率 字段 */
  65. Funnel.CONVERSATION_FIELD = FUNNEL_CONVERSATION_FIELD;
  66. /** 漏斗 百分比 字段 */
  67. Funnel.PERCENT_FIELD = FUNNEL_PERCENT;
  68. /** 漏斗 总转换率百分比 字段 */
  69. Funnel.TOTAL_PERCENT_FIELD = FUNNEL_TOTAL_PERCENT;
  70. return Funnel;
  71. }(Plot));
  72. export { Funnel };
  73. //# sourceMappingURL=index.js.map