"use strict";
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const tslib_es6 = require("../../../node_modules/tslib/tslib.es6.js");
const states = require("../../util/states.js");
const Polyline$2 = require("../../../../../../zrender@5.4.4/node_modules/zrender/lib/graphic/shape/Polyline.js");
const basicTransition = require("../../animation/basicTransition.js");
const Group = require("../../../../../../zrender@5.4.4/node_modules/zrender/lib/graphic/Group.js");
var Polyline = (
  /** @class */
  function(_super) {
    tslib_es6.__extends(Polyline2, _super);
    function Polyline2(lineData, idx, seriesScope) {
      var _this = _super.call(this) || this;
      _this._createPolyline(lineData, idx, seriesScope);
      return _this;
    }
    Polyline2.prototype._createPolyline = function(lineData, idx, seriesScope) {
      var points = lineData.getItemLayout(idx);
      var line = new Polyline$2.default({
        shape: {
          points
        }
      });
      this.add(line);
      this._updateCommonStl(lineData, idx, seriesScope);
    };
    Polyline2.prototype.updateData = function(lineData, idx, seriesScope) {
      var seriesModel = lineData.hostModel;
      var line = this.childAt(0);
      var target = {
        shape: {
          points: lineData.getItemLayout(idx)
        }
      };
      basicTransition.updateProps(line, target, seriesModel, idx);
      this._updateCommonStl(lineData, idx, seriesScope);
    };
    Polyline2.prototype._updateCommonStl = function(lineData, idx, seriesScope) {
      var line = this.childAt(0);
      var itemModel = lineData.getItemModel(idx);
      var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;
      var focus = seriesScope && seriesScope.focus;
      var blurScope = seriesScope && seriesScope.blurScope;
      var emphasisDisabled = seriesScope && seriesScope.emphasisDisabled;
      if (!seriesScope || lineData.hasItemOption) {
        var emphasisModel = itemModel.getModel("emphasis");
        emphasisLineStyle = emphasisModel.getModel("lineStyle").getLineStyle();
        emphasisDisabled = emphasisModel.get("disabled");
        focus = emphasisModel.get("focus");
        blurScope = emphasisModel.get("blurScope");
      }
      line.useStyle(lineData.getItemVisual(idx, "style"));
      line.style.fill = null;
      line.style.strokeNoScale = true;
      var lineEmphasisState = line.ensureState("emphasis");
      lineEmphasisState.style = emphasisLineStyle;
      states.toggleHoverEmphasis(this, focus, blurScope, emphasisDisabled);
    };
    Polyline2.prototype.updateLayout = function(lineData, idx) {
      var polyline = this.childAt(0);
      polyline.setShape("points", lineData.getItemLayout(idx));
    };
    return Polyline2;
  }(Group.default)
);
const Polyline$1 = Polyline;
exports.default = Polyline$1;
