UNPKG

wix-style-react

Version:
89 lines (71 loc) 3.44 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _Input = _interopRequireDefault(require("../Input/Input.driver")); var _Calendar = _interopRequireDefault(require("../Calendar/Calendar.driver")); var _Popover = _interopRequireDefault(require("../Popover/Popover.driver")); var _constants = require("./constants"); 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 datePickerDriverFactory = function datePickerDriverFactory(_ref) { var element = _ref.element; var popoverElement = element.querySelector("[data-hook=".concat(_constants.dataHooks.datePickerPopover, "]")); var popoverContent = function popoverContent() { return (0, _Popover["default"])({ element: popoverElement }).getContentElement(); }; var calendarTestkit = function calendarTestkit() { return (0, _Calendar["default"])({ element: popoverContent() }); }; var calendarDriver = _objectSpread({}, Object.keys((0, _Calendar["default"])({ element: element })).reduce(function (prev, current) { return _objectSpread(_objectSpread({}, prev), {}, (0, _defineProperty2["default"])({}, current, function (args) { if (current === 'isVisible') { return (0, _Popover["default"])({ element: popoverElement }).isContentElementExists(); } if (current === 'mouseClickOutside') { return (0, _Popover["default"])({ element: popoverElement }).clickOutside(); } return calendarTestkit()[current](args); })); }, {})); // here we have a dirty hack for getting input element directly // this is not the best wayt to do it, but knowing that we exposed // input datahook - we cannot change this for now. var inputElement = (0, _Popover["default"])({ element: popoverElement }).getTargetElement().querySelector('[data-size]'); var inputDriver = (0, _Input["default"])({ element: inputElement }); var driver = { exists: function exists() { return !!element; }, open: function open() { return inputDriver.focus(); }, getWidth: function getWidth() { return element.style.width; } }; return { exists: driver.exists, driver: driver, inputDriver: inputDriver, calendarDriver: calendarDriver }; }; var _default = datePickerDriverFactory; exports["default"] = _default;