wix-style-react
Version:
134 lines (104 loc) • 5.26 kB
JavaScript
;
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;