UNPKG

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
"use strict"; 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;