bootstrap-styled
Version:
Bootstrap Styled is a front-end ecosystem for React made with Bootstrap 4 philosophy, using the power of css-in-js thanks to styled-components.
162 lines (126 loc) • 6.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.allowFalseValue = allowFalseValue;
exports.assertAscending = assertAscending;
exports.assertStartAtZero = assertStartAtZero;
exports.comparable = comparable;
exports.negativifyMap = negativifyMap;
exports.default = void 0;
var _unitUtils = _interopRequireDefault(require("@bootstrap-styled/utils/lib/unitUtils"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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) { _defineProperty(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; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var detectUnit = _unitUtils.default.detectUnit,
rmUnit = _unitUtils.default.rmUnit;
/**
* Helper used to keep false values provided by userTheme
* @param userValue
* @param defaultValue
* @returns {*}
*/
function allowFalseValue(userValue, defaultValue) {
return userValue === false ? userValue : userValue || defaultValue;
}
function assertAscending(map, mapName) {
var prevKey;
var prevNum;
var asserted = true;
Object.keys(map).forEach(function (key) {
var num = map[key];
if (prevNum == null) {// do nothing
} else if (!comparable(rmUnit(prevNum), rmUnit(num))) {
/* istanbul ignore if */
if (process.env.NODE !== 'test') {
console.warn("Potentially invalid value for ".concat(mapName, ": This map must be in ascending order, but key '").concat(key, "' has value ").concat(num, " whose unit makes it incomparable to ").concat(prevNum, ", the value of the previous key '").concat(prevKey, "' !")); // eslint-disable-line no-console
}
asserted = false;
} else if (rmUnit(prevNum) >= rmUnit(num)) {
/* istanbul ignore if */
if (process.env.NODE !== 'test') {
console.warn("Invalid value for ".concat(mapName, ": This map must be in ascending order, but key '").concat(key, "' has value ").concat(num, " which isn't greater than ").concat(prevNum, ", the value of the previous key '").concat(prevKey, "' !")); // eslint-disable-line no-console
}
asserted = false;
}
prevKey = key;
prevNum = num;
});
return asserted;
}
function assertStartAtZero(map) {
var values = Object.keys(map).map(function (key) {
return map[key];
});
var firstValue = rmUnit(values[0]);
var asserted = true;
if (firstValue !== 0) {
if (process.env.NODE !== 'test') {
console.warn("First breakpoint in $grid-breakpoints must start at 0, but starts at ".concat(firstValue, ".")); // eslint-disable-line no-console
}
asserted = false;
}
return asserted;
}
function comparable(a, b) {
return !isNaN(a + b); // eslint-disable-line no-restricted-globals
}
function negativifyMap(map) {
if (map instanceof Map) {
var _result = new Map(); // eslint-disable-next-line no-restricted-syntax
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = map[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var _step$value = _slicedToArray(_step.value, 2),
key = _step$value[0],
value = _step$value[1];
if (key !== 0 && key !== '0') {
var detectedUnit = detectUnit(value);
var newValue = rmUnit(value) * -1 + detectedUnit;
_result = new Map([].concat(_toConsumableArray(_result), _toConsumableArray(new Map([["n".concat(key), newValue]]))));
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return _result;
}
var result = {};
Object.keys(map).forEach(function (key) {
if (key !== 0 && key !== '0') {
var _detectedUnit = detectUnit(map[key]);
var _newValue = rmUnit(map[key]) * -1 + _detectedUnit;
result = _objectSpread({}, result, {}, _defineProperty({}, "n".concat(key), _newValue));
}
});
return result;
}
var _default = {
assertAscending: assertAscending,
assertStartAtZero: assertStartAtZero,
comparable: comparable,
negativifyMap: negativifyMap
};
exports.default = _default;