"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.EditorPageObject = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inProductTesting = require("@atlaskit/in-product-testing");
var _Renderer = require("./Renderer");
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
var EditorPageObject = exports.EditorPageObject = /*#__PURE__*/function (_InProductTestPageObj) {
  (0, _inherits2.default)(EditorPageObject, _InProductTestPageObj);
  var _super = _createSuper(EditorPageObject);
  function EditorPageObject() {
    (0, _classCallCheck2.default)(this, EditorPageObject);
    return _super.apply(this, arguments);
  }
  (0, _createClass2.default)(EditorPageObject, [{
    key: "getEditorArea",
    value: function getEditorArea() {
      return this.cy.get('div.ProseMirror', {
        timeout: 30000
      });
    }
  }, {
    key: "getTitleArea",
    value: function getTitleArea() {
      return this.cy.get('[data-test-id="editor-title"]');
    }
  }, {
    key: "publish",
    value: function publish(opts) {
      if (opts !== null && opts !== void 0 && opts.publishButton) {
        this.cy.get(opts.publishButton).click();
        return new _Renderer.RendererPageObject(this.cy);
      }
      throw Error('No publish button selector supplied!');
    }
  }]);
  return EditorPageObject;
}(_inProductTesting.InProductTestPageObject);