UNPKG

4.35 kBJavaScriptView Raw
1"use strict";
2
3require("core-js/modules/es.array.concat");
4
5require("core-js/modules/es.array.join");
6
7require("core-js/modules/es.array.slice");
8
9require("core-js/modules/es.object.define-properties");
10
11require("core-js/modules/es.object.freeze");
12
13Object.defineProperty(exports, "__esModule", {
14 value: true
15});
16exports.withGrid = void 0;
17
18var _tsDedent = _interopRequireDefault(require("ts-dedent"));
19
20var _utilDeprecate = _interopRequireDefault(require("util-deprecate"));
21
22var _addons = require("@storybook/addons");
23
24var _helpers = require("../helpers");
25
26var _constants = require("../constants");
27
28function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
29
30function _templateObject() {
31 var data = _taggedTemplateLiteral(["\n Backgrounds Addon: The cell size parameter has been changed.\n\n - parameters.grid.cellSize should now be parameters.backgrounds.grid.cellSize\n See https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#deprecated-grid-parameter\n "]);
32
33 _templateObject = function _templateObject() {
34 return data;
35 };
36
37 return data;
38}
39
40function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
41
42var deprecatedCellSizeWarning = (0, _utilDeprecate["default"])(function () {}, (0, _tsDedent["default"])(_templateObject()));
43
44var withGrid = function withGrid(StoryFn, context) {
45 var _globals$BACKGROUNDS_, _parameters$grid;
46
47 var globals = context.globals,
48 parameters = context.parameters;
49 var gridParameters = parameters[_constants.PARAM_KEY].grid;
50 var isActive = ((_globals$BACKGROUNDS_ = globals[_constants.PARAM_KEY]) === null || _globals$BACKGROUNDS_ === void 0 ? void 0 : _globals$BACKGROUNDS_.grid) === true && gridParameters.disable !== true;
51 var cellAmount = gridParameters.cellAmount,
52 cellSize = gridParameters.cellSize,
53 opacity = gridParameters.opacity;
54 var isInDocs = context.viewMode === 'docs';
55 var gridSize;
56
57 if ((_parameters$grid = parameters.grid) === null || _parameters$grid === void 0 ? void 0 : _parameters$grid.cellSize) {
58 gridSize = parameters.grid.cellSize;
59 deprecatedCellSizeWarning();
60 } else {
61 gridSize = cellSize;
62 }
63
64 var isLayoutPadded = parameters.layout === undefined || parameters.layout === 'padded'; // 16px offset in the grid to account for padded layout
65
66 var defaultOffset = isLayoutPadded ? 16 : 0;
67 var offsetX = gridParameters.offsetX || isInDocs ? 20 : defaultOffset;
68 var offsetY = gridParameters.offsetY || isInDocs ? 20 : defaultOffset;
69 var gridStyles = (0, _addons.useMemo)(function () {
70 var selector = context.viewMode === 'docs' ? "#anchor--".concat(context.id, " .docs-story") : '.sb-show-main';
71 var backgroundSize = ["".concat(gridSize * cellAmount, "px ").concat(gridSize * cellAmount, "px"), "".concat(gridSize * cellAmount, "px ").concat(gridSize * cellAmount, "px"), "".concat(gridSize, "px ").concat(gridSize, "px"), "".concat(gridSize, "px ").concat(gridSize, "px")].join(', ');
72 return "\n ".concat(selector, " {\n background-size: ").concat(backgroundSize, " !important;\n background-position: ").concat(offsetX, "px ").concat(offsetY, "px, ").concat(offsetX, "px ").concat(offsetY, "px, ").concat(offsetX, "px ").concat(offsetY, "px, ").concat(offsetX, "px ").concat(offsetY, "px !important;\n background-blend-mode: difference !important;\n background-image: linear-gradient(rgba(130, 130, 130, ").concat(opacity, ") 1px, transparent 1px),\n linear-gradient(90deg, rgba(130, 130, 130, ").concat(opacity, ") 1px, transparent 1px),\n linear-gradient(rgba(130, 130, 130, ").concat(opacity / 2, ") 1px, transparent 1px),\n linear-gradient(90deg, rgba(130, 130, 130, ").concat(opacity / 2, ") 1px, transparent 1px) !important;\n }\n ");
73 }, [gridSize]);
74 (0, _addons.useEffect)(function () {
75 var selectorId = context.viewMode === 'docs' ? "addon-backgrounds-grid-docs-".concat(context.id) : "addon-backgrounds-grid";
76
77 if (!isActive) {
78 (0, _helpers.clearStyles)(selectorId);
79 return;
80 }
81
82 (0, _helpers.addGridStyle)(selectorId, gridStyles);
83 }, [isActive, gridStyles, context]);
84 return StoryFn();
85};
86
87exports.withGrid = withGrid;
\No newline at end of file