wix-style-react
Version:
51 lines (43 loc) • 1.74 kB
JavaScript
import _toArray from "@babel/runtime/helpers/toArray";
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import { dataHooks } from './constants';
var selector = function selector(element) {
return function (hook) {
return element.querySelectorAll("[data-hook=\"".concat(hook, "\"]"));
};
};
export default (function (_ref) {
var element = _ref.element;
var byHook = selector(element);
return {
exists: function exists() {
return !!element;
},
/** return number of lines rendered */
getNumLines: function getNumLines() {
return byHook(dataHooks.line).length;
},
/** return boolean representing whether given spacing is rendered */
hasSpacing: function hasSpacing(spacing) {
return element.getAttribute('data-spacing') === spacing;
},
/** return boolean representing whether given list of sizes is rendered */
hasSizes: function hasSizes(sizes) {
var _Array$from$reduce = Array.from(byHook(dataHooks.chunk)).reduce(function (_ref2, chunkElement) {
var _ref3 = _slicedToArray(_ref2, 2),
result = _ref3[0],
_ref3$ = _toArray(_ref3[1]),
expectedSize = _ref3$[0],
restSizes = _ref3$.slice(1);
return [result.concat(chunkElement.getAttribute('data-size') === expectedSize), restSizes];
}, [[], sizes]),
_Array$from$reduce2 = _slicedToArray(_Array$from$reduce, 1),
assertions = _Array$from$reduce2[0];
return assertions.every(Boolean);
},
/** return boolean representing whether given alignment is rendered */
hasAlignment: function hasAlignment(alignment) {
return element.getAttribute('data-alignment') === alignment;
}
};
});