UNPKG

@wix/design-system

Version:

@wix/design-system

247 lines (246 loc) 8.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.popoverNextUniDriverFactory = 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"); 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 popoverNextUniDriverFactory = (base, body) => { var byHook = hook => base.$("[data-hook=\"".concat(hook, "\"]")); var getRoot = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2.default)(function* () { var isBaseRoot = !!(yield base.attr('data-popover-root')); return isBaseRoot ? base : base.$('[data-popover-root]'); }); return function getRoot() { return _ref.apply(this, arguments); }; }(); var getRootDataHook = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2.default)(function* () { var _yield$yield$getRoot$; return (_yield$yield$getRoot$ = yield (yield getRoot()).attr('data-hook')) !== null && _yield$yield$getRoot$ !== void 0 ? _yield$yield$getRoot$ : undefined; }); return function getRootDataHook() { return _ref2.apply(this, arguments); }; }(); var getTrigger = /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2.default)(function* () { var dataHook = yield getRootDataHook(); return (0, _unidriver.getByHook)(body, "".concat(dataHook, "-trigger")); }); return function getTrigger() { return _ref3.apply(this, arguments); }; }(); var getContent = /*#__PURE__*/function () { var _ref4 = (0, _asyncToGenerator2.default)(function* () { var dataHook = yield getRootDataHook(); var content; try { content = yield (0, _unidriver.getByHook)(body, "".concat(dataHook, "-content")); } catch (e) {} return content; }); return function getContent() { return _ref4.apply(this, arguments); }; }(); var getTriggerElement = /*#__PURE__*/function () { var _ref5 = (0, _asyncToGenerator2.default)(function* () { return (yield getTrigger()).getNative(); }); return function getTriggerElement() { return _ref5.apply(this, arguments); }; }(); var triggerExists = /*#__PURE__*/function () { var _ref6 = (0, _asyncToGenerator2.default)(function* () { try { var trigger = yield getTrigger(); return trigger.exists(); } catch (_unused) { return false; } }); return function triggerExists() { return _ref6.apply(this, arguments); }; }(); var getContentElement = /*#__PURE__*/function () { var _ref7 = (0, _asyncToGenerator2.default)(function* () { var _yield$getContent; return (_yield$getContent = yield getContent()) == null ? void 0 : _yield$getContent.getNative(); }); return function getContentElement() { return _ref7.apply(this, arguments); }; }(); return _objectSpread(_objectSpread({}, (0, _unidriver.baseUniDriverFactory)(base)), {}, { /** * Clicks the trigger element * @returns {Promise<void>} */ click: function () { var _click = (0, _asyncToGenerator2.default)(function* () { try { var trigger = yield getTrigger(); return trigger.click(); } catch (_unused2) {} }); function click() { return _click.apply(this, arguments); } return click; }(), /** * Gets the trigger element * @returns {Promise<any>} */ getTriggerElement, /** * Gets the target element * @deprecated use getTriggerElement * @returns {Promise<any>} */ getTargetElement: getTriggerElement, /** * Checks whether the trigger element exists * @returns {Promise<boolean>} */ triggerExists, /** * Checks whether target element exists * @deprecated use triggerExists * @returns {Promise<boolean>} */ isTargetElementExists: triggerExists, /** * Gets the portal element * @deprecated * @returns {Promise<any>} */ getPortalElement: function () { var _getPortalElement = (0, _asyncToGenerator2.default)(function* () { return byHook('popover-portal').getNative(); }); function getPortalElement() { return _getPortalElement.apply(this, arguments); } return getPortalElement; }(), /** * Gets the content element * @returns {Promise<any>} */ getContentElement, /** * Checks whether content element exists * @returns {Promise<boolean>} */ isContentElementExists: function () { var _isContentElementExists = (0, _asyncToGenerator2.default)(function* () { var _yield$getContent$exi, _yield$getContent2; return (_yield$getContent$exi = (_yield$getContent2 = yield getContent()) == null ? void 0 : _yield$getContent2.exists()) !== null && _yield$getContent$exi !== void 0 ? _yield$getContent$exi : false; }); function isContentElementExists() { return _isContentElementExists.apply(this, arguments); } return isContentElementExists; }(), /** * Triggers a mouseEnter event * @returns {Promise<void>} */ mouseEnter: function () { var _mouseEnter = (0, _asyncToGenerator2.default)(function* () { var root = yield getRoot(); return root.hover(); }); function mouseEnter() { return _mouseEnter.apply(this, arguments); } return mouseEnter; }(), /** * Triggers a mouseLeave event * @returns {Promise<void>} */ mouseLeave: function () { var _mouseLeave = (0, _asyncToGenerator2.default)(function* () { var root = yield getRoot(); return root.mouse.leave(); }); function mouseLeave() { return _mouseLeave.apply(this, arguments); } return mouseLeave; }(), /** * Clicks outside the target element * @returns {Promise<void>} */ clickOutside: function () { var _clickOutside = (0, _asyncToGenerator2.default)(function* () { return body.click(); }); function clickOutside() { return _clickOutside.apply(this, arguments); } return clickOutside; }(), /** * Gets the arrow offset * @returns {Promise<any>} */ getArrowOffset: function () { var _getArrowOffset = (0, _asyncToGenerator2.default)(function* () { var _yield$byHook$getNati; return (_yield$byHook$getNati = yield byHook('popover-arrow').getNative()) == null ? void 0 : _yield$byHook$getNati.style; }); function getArrowOffset() { return _getArrowOffset.apply(this, arguments); } return getArrowOffset; }(), /** * Gets content as unidriver element * @deprecated * @internal * Use `getContent` instead. * This is left out for feature parity. */ getContentElementUniDriver: function () { var _getContentElementUniDriver = (0, _asyncToGenerator2.default)(function* () { return getContent(); }); function getContentElementUniDriver() { return _getContentElementUniDriver.apply(this, arguments); } return getContentElementUniDriver; }(), /** * Checks whether the content is visible * @returns {Promise<boolean>} */ isContentVisible: function () { var _isContentVisible = (0, _asyncToGenerator2.default)(function* () { try { var content = yield getContent(); return (yield content == null ? void 0 : content.exists()) === true; } catch (_unused3) { return false; } }); function isContentVisible() { return _isContentVisible.apply(this, arguments); } return isContentVisible; }() }); }; exports.popoverNextUniDriverFactory = popoverNextUniDriverFactory; //# sourceMappingURL=PopoverNext.uni.driver.js.map