"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.toggleSwitchUniDriverFactory = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _unidriver = require("../../utils/test-utils/unidriver");
var _constants = require("./constants");
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var toggleSwitchUniDriverFactory = base => {
  var byDataHook = dataHook => "[data-hook=\"".concat(dataHook, "\"]");
  var knob = base.$(byDataHook(_constants.dataHooks.knob));
  var knobIcon = base.$(byDataHook(_constants.dataHooks.knobIcon));
  var checkbox = base.$(byDataHook(_constants.dataHooks.toggleSwitchInput));
  var track = base.$(byDataHook(_constants.dataHooks.track));
  var isDisabled = /*#__PURE__*/function () {
    var _ref = (0, _asyncToGenerator2.default)(function* () {
      return (yield base.attr('data-disabled')) === 'true';
    });
    return function isDisabled() {
      return _ref.apply(this, arguments);
    };
  }();
  var getKnobIcon = () => knobIcon.getNative();
  return _objectSpread(_objectSpread({}, (0, _unidriver.baseUniDriverFactory)(base)), {}, {
    // @ts-ignore
    click: function () {
      var _click = (0, _asyncToGenerator2.default)(function* () {
        return !(yield isDisabled()) && checkbox.click();
      });
      function click() {
        return _click.apply(this, arguments);
      }
      return click;
    }(),
    isDisabled,
    isChecked: () => checkbox.prop('checked'),
    getKnobIcon,
    hasKnobIcon: function () {
      var _hasKnobIcon = (0, _asyncToGenerator2.default)(function* () {
        return !!(yield getKnobIcon()).innerHTML;
      });
      function hasKnobIcon() {
        return _hasKnobIcon.apply(this, arguments);
      }
      return hasKnobIcon;
    }(),
    getId: () => checkbox.prop('id'),
    getTabIndex: () => checkbox.prop('tabIndex'),
    getRootStyles: () => base.prop('style'),
    getTrackStyles: () => track.prop('style'),
    getKnobStyles: () => knob.prop('style'),
    getKnobIconStyles: () => knobIcon.prop('style'),
    pressEnterKey: () => checkbox.pressKey('Enter')
  });
};
exports.toggleSwitchUniDriverFactory = toggleSwitchUniDriverFactory;
//# sourceMappingURL=ToggleSwitchCore.uni.driver.js.map