12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- "use strict";
- exports.__esModule = true;
- exports["default"] = important;
- var _errors = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("../internalHelpers/_errors"));
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
- /**
- * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.
- *
- * @example
- * // Styles as object usage
- * const styles = {
- * ...important(cover())
- * }
- *
- * // styled-components usage
- * const div = styled.div`
- * ${important(cover())}
- * `
- *
- * // CSS as JS Output
- *
- * div: {
- * 'position': 'absolute !important',
- * 'top': '0 !important',
- * 'right: '0 !important',
- * 'bottom': '0 !important',
- * 'left: '0 !important'
- * }
- */
- function important(styleBlock, rules) {
- if (typeof styleBlock !== 'object' || styleBlock === null) {
- throw new _errors["default"](75, typeof styleBlock);
- }
- var newStyleBlock = {};
- Object.keys(styleBlock).forEach(function (key) {
- if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {
- newStyleBlock[key] = important(styleBlock[key], rules);
- } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {
- newStyleBlock[key] = styleBlock[key] + " !important";
- } else {
- newStyleBlock[key] = styleBlock[key];
- }
- });
- return newStyleBlock;
- }
- module.exports = exports.default;
|