wix-style-react
Version:
384 lines (312 loc) • 12.9 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.checkboxUniDriverFactory = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _unidriver = require("../../test/utils/unidriver");
var _testUtils = require("react-dom/test-utils");
var _TextUni = require("../Text/Text.uni.driver");
var _TooltipUni = require("../Tooltip/Tooltip.uni.driver");
var _constants = require("./constants");
var DATA_ATTR = _interopRequireWildcard(require("./DataAttr"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var getDataCheckType = function getDataCheckType(base) {
return base.attr(DATA_ATTR.DATA_CHECK_TYPE);
};
var checkboxUniDriverFactory = function checkboxUniDriverFactory(base, body) {
var reactBase = (0, _unidriver.ReactBase)(base);
var labelTextDriver = (0, _TextUni.textUniDriverFactory)(base.$("[data-hook=\"".concat(_constants.dataHooks.children, "\"]")));
var input = function input() {
return base.$('input');
};
var isChecked = /*#__PURE__*/function () {
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return getDataCheckType(base);
case 2:
_context.t0 = _context.sent;
_context.t1 = DATA_ATTR.CHECK_TYPES.CHECKED;
return _context.abrupt("return", _context.t0 === _context.t1);
case 5:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function isChecked() {
return _ref.apply(this, arguments);
};
}();
var getTooltipDriver = /*#__PURE__*/function () {
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
return _context2.abrupt("return", (0, _TooltipUni.tooltipDriverFactory)(base.$("[data-hook=\"".concat(_constants.dataHooks.boxTooltip, "\"]")), body));
case 1:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return function getTooltipDriver() {
return _ref2.apply(this, arguments);
};
}();
var getTooltipMessage = /*#__PURE__*/function () {
var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
var tooltipDriver;
return _regenerator["default"].wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.prev = 0;
_context3.next = 3;
return getTooltipDriver();
case 3:
tooltipDriver = _context3.sent;
return _context3.abrupt("return", tooltipDriver.getTooltipText());
case 7:
_context3.prev = 7;
_context3.t0 = _context3["catch"](0);
throw new Error('Failed getting checkbox error message');
case 10:
case "end":
return _context3.stop();
}
}
}, _callee3, null, [[0, 7]]);
}));
return function getTooltipMessage() {
return _ref3.apply(this, arguments);
};
}();
var isTooltipEnabled = /*#__PURE__*/function () {
var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
var tooltipDriver;
return _regenerator["default"].wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return getTooltipDriver();
case 2:
tooltipDriver = _context4.sent;
_context4.next = 5;
return tooltipDriver.mouseEnter();
case 5:
_context4.next = 7;
return tooltipDriver.tooltipExists();
case 7:
return _context4.abrupt("return", _context4.sent);
case 8:
case "end":
return _context4.stop();
}
}
}, _callee4);
}));
return function isTooltipEnabled() {
return _ref4.apply(this, arguments);
};
}();
return _objectSpread(_objectSpread({}, (0, _unidriver.baseUniDriverFactory)(base)), {}, {
/**
* Click on the component root element.
* @returns {Promise<void>}
*/
click: function () {
var _click = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
return _regenerator["default"].wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
if (!(base.type === 'react')) {
_context5.next = 13;
break;
}
_context5.t0 = _testUtils.Simulate;
_context5.next = 4;
return input().getNative();
case 4:
_context5.t1 = _context5.sent;
_context5.next = 7;
return isChecked();
case 7:
_context5.t2 = !_context5.sent;
_context5.t3 = {
checked: _context5.t2
};
_context5.t4 = {
target: _context5.t3
};
_context5.t0.change.call(_context5.t0, _context5.t1, _context5.t4);
_context5.next = 14;
break;
case 13:
return _context5.abrupt("return", base.click());
case 14:
case "end":
return _context5.stop();
}
}
}, _callee5);
}));
function click() {
return _click.apply(this, arguments);
}
return click;
}(),
/**
* focuses the component.
* @returns {Void}
*/
focus: function focus() {
return reactBase.focus();
},
/**
* Checks whether the checkbox is focused
* @returns {Promise<boolean>}
*/
isFocused: function isFocused() {
return reactBase.isFocus();
},
/**
* blurs off the element.
* @returns {Void}
*/
blur: function blur() {
return reactBase.blur();
},
/**
* Checks whether the checkbox is checked.
* @returns {Promise<boolean>}
*/
isChecked: isChecked,
/**
* Checks whether the checkbox is disabled.
* @returns {Promise<boolean>}
*/
isDisabled: function () {
var _isDisabled = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
return _regenerator["default"].wrap(function _callee6$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
_context6.next = 2;
return base.attr(DATA_ATTR.DATA_DISABLED);
case 2:
_context6.t0 = _context6.sent;
return _context6.abrupt("return", _context6.t0 === 'true');
case 4:
case "end":
return _context6.stop();
}
}
}, _callee6);
}));
function isDisabled() {
return _isDisabled.apply(this, arguments);
}
return isDisabled;
}(),
/**
* Checks whether the checkbox's value is indeterminate.
* @returns {Promise<boolean>}
*/
isIndeterminate: function () {
var _isIndeterminate = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
return _regenerator["default"].wrap(function _callee7$(_context7) {
while (1) {
switch (_context7.prev = _context7.next) {
case 0:
_context7.next = 2;
return getDataCheckType(base);
case 2:
_context7.t0 = _context7.sent;
_context7.t1 = DATA_ATTR.CHECK_TYPES.INDETERMINATE;
return _context7.abrupt("return", _context7.t0 === _context7.t1);
case 5:
case "end":
return _context7.stop();
}
}
}, _callee7);
}));
function isIndeterminate() {
return _isIndeterminate.apply(this, arguments);
}
return isIndeterminate;
}(),
/**
* Checks whether the checkbox's tooltip is enabled.
* @returns {Promise<boolean>}
*/
isTooltipEnabled: isTooltipEnabled,
/**
* Checks whether the checkbox hasError prop is true.
* @returns {Promise<boolean>}
*/
hasError: function () {
var _hasError = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
return _regenerator["default"].wrap(function _callee8$(_context8) {
while (1) {
switch (_context8.prev = _context8.next) {
case 0:
_context8.next = 2;
return base.attr(DATA_ATTR.DATA_HAS_ERROR);
case 2:
_context8.t0 = _context8.sent;
return _context8.abrupt("return", _context8.t0 === 'true');
case 4:
case "end":
return _context8.stop();
}
}
}, _callee8);
}));
function hasError() {
return _hasError.apply(this, arguments);
}
return hasError;
}(),
/**
* Gets the tooltip message.
* @returns {Promise<string>}
* @deprecated
*/
getTooltipContent: getTooltipMessage,
/**
* Gets the error message.
* @returns {Promise<string>}
* @deprecated
*/
getErrorMessage: getTooltipMessage,
/**
* Gets checkbox's label.
* @returns {Promise<string>}
*/
getLabel: labelTextDriver.getText,
/**
* Gets the label's size.
* @returns {Promise<'tiny' | 'small' | 'medium'>}
*/
getLabelSize: labelTextDriver.getSize
});
};
exports.checkboxUniDriverFactory = checkboxUniDriverFactory;