UNPKG

wix-style-react

Version:
134 lines (104 loc) 5.26 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 _DataTable = _interopRequireDefault(require("./DataTable/DataTable.driver")); var _Checkbox = _interopRequireDefault(require("../Checkbox/Checkbox.driver")); 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 tableDriverFactory = function tableDriverFactory(_ref) { var element = _ref.element, eventTrigger = _ref.eventTrigger; var dataTableDriver = (0, _DataTable["default"])({ element: element }); var getTitlebar = function getTitlebar() { return element.querySelector('[data-hook="table-title-bar"]'); }; var getRowCheckbox = function getRowCheckbox(index) { return dataTableDriver.getCell(index, 0).querySelector('[data-hook="row-select"]'); }; var getRowCheckboxDriver = function getRowCheckboxDriver(index) { return (0, _Checkbox["default"])({ element: getRowCheckbox(index), eventTrigger: eventTrigger }); }; var getBulkSelectionCheckboxDriver = function getBulkSelectionCheckboxDriver() { return (0, _Checkbox["default"])({ element: dataTableDriver.getHeaderCell(0).querySelector('[data-hook="table-select"]'), eventTrigger: eventTrigger }); }; var isBulkSelectionChecked = function isBulkSelectionChecked() { var checkboxDriver = getBulkSelectionCheckboxDriver(); return checkboxDriver.isChecked() && !checkboxDriver.isIndeterminate(); }; var isBulkSelectionIndeterminate = function isBulkSelectionIndeterminate() { var checkboxDriver = getBulkSelectionCheckboxDriver(); return !checkboxDriver.isChecked() && checkboxDriver.isIndeterminate(); }; var isBulkSelectionUnchecked = function isBulkSelectionUnchecked() { var checkboxDriver = getBulkSelectionCheckboxDriver(); return !checkboxDriver.isChecked() && !checkboxDriver.isIndeterminate(); }; var isBulkSelectionDisabled = function isBulkSelectionDisabled() { var checkboxDriver = getBulkSelectionCheckboxDriver(); return checkboxDriver.isDisabled(); }; var isRowSelectionDisabled = function isRowSelectionDisabled(index) { var checkboxDriver = getRowCheckboxDriver(index); return checkboxDriver.isDisabled(); }; return _objectSpread(_objectSpread({}, dataTableDriver), {}, { element: element, /** Get driver of row selection checkbox by row index */ getRowCheckboxDriver: getRowCheckboxDriver, /** Get driver of row bulk-selection checkbox */ getBulkSelectionCheckboxDriver: getBulkSelectionCheckboxDriver, /** Whether bulk selection checkbox is disabled */ isBulkSelectionDisabled: isBulkSelectionDisabled, /** Whether specific row selection checkbox is disabled */ isRowSelectionDisabled: isRowSelectionDisabled, /** Click the row selection checkbox */ clickRowCheckbox: function clickRowCheckbox(index) { return eventTrigger.click(getRowCheckbox(index)); }, /** Click the bulk-selection checkbox */ clickBulkSelectionCheckbox: function clickBulkSelectionCheckbox() { return getBulkSelectionCheckboxDriver().click(); }, /** Is row selected by index */ isRowSelected: function isRowSelected(index) { return getRowCheckboxDriver(index).isChecked(); }, /** Get bulk selection state. Possible value 'ALL', 'SOME', 'NONE. */ getBulkSelectionState: function getBulkSelectionState() { if (isBulkSelectionChecked()) { return 'ALL'; } if (isBulkSelectionIndeterminate()) { return 'SOME'; } if (isBulkSelectionUnchecked()) { return 'NONE'; } }, /** Get title-bar (column titles) */ getTitlebar: getTitlebar, getCellTextValue: function getCellTextValue(rowIndex, cellIndex) { return dataTableDriver.getCell(rowIndex, cellIndex).textContent; }, isSelectionTooltipEnabled: function isSelectionTooltipEnabled(index) { return getRowCheckboxDriver(index).isTooltipEnabled(); }, getSelectionTooltipContent: function getSelectionTooltipContent(index) { return getRowCheckboxDriver(index).getTooltipContent(); } }); }; var _default = tableDriverFactory; exports["default"] = _default;