UNPKG

@bianic-ui/utils

Version:

Common utilties and types for Bianic UI

86 lines (67 loc) 1.81 kB
"use strict"; exports.__esModule = true; exports.mapResponsive = mapResponsive; exports.objectToArrayNotation = objectToArrayNotation; exports.arrayToObjectNotation = arrayToObjectNotation; exports.isResponsiveObjectLike = isResponsiveObjectLike; exports.breakpoints = void 0; var _assertion = require("./assertion"); var _object = require("./object"); var _array = require("./array"); var breakpoints = Object.freeze(["base", "sm", "md", "lg", "xl"]); exports.breakpoints = breakpoints; function mapResponsive(prop, mapper) { if ((0, _assertion.isArray)(prop)) { return prop.map(function (item) { if (item === null) { return null; } return mapper(item); }); } if ((0, _assertion.isObject)(prop)) { return (0, _object.objectKeys)(prop).reduce(function (result, key) { result[key] = mapper(prop[key]); return result; }, {}); } if (prop != null) { return mapper(prop); } return null; } function objectToArrayNotation(obj, bps) { if (bps === void 0) { bps = breakpoints; } var result = bps.map(function (br) { var _obj$br; return (_obj$br = obj[br]) != null ? _obj$br : null; }); while ((0, _array.getLastItem)(result) === null) { result.pop(); } return result; } function arrayToObjectNotation(values, bps) { if (bps === void 0) { bps = breakpoints; } var result = {}; values.forEach(function (value, index) { var key = bps[index]; if (value == null) return; result[key] = value; }); return result; } function isResponsiveObjectLike(obj, bps) { if (bps === void 0) { bps = breakpoints; } var keys = Object.keys(obj); return keys.length > 0 && keys.every(function (key) { return bps.includes(key); }); } //# sourceMappingURL=responsive.js.map