storybook-addon-pseudo-states 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc.js +12 -1
- package/CHANGELOG.md +19 -0
- package/dist/{PseudoStateTool.js → cjs/PseudoStateTool.js} +12 -12
- package/dist/{constants.js → cjs/constants.js} +1 -1
- package/dist/{preset → cjs/preset}/manager.js +0 -0
- package/dist/{preset → cjs/preset}/preview.js +0 -0
- package/dist/{withPseudoState.js → cjs/withPseudoState.js} +34 -8
- package/dist/esm/PseudoStateTool.js +89 -0
- package/dist/esm/constants.js +15 -0
- package/dist/esm/preset/manager.js +14 -0
- package/dist/esm/preset/preview.js +2 -0
- package/dist/esm/withPseudoState.js +224 -0
- package/package.json +10 -9
- package/preset.js +9 -1
- package/dist/preset/index.js +0 -29
package/.babelrc.js
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
const modules = process.env.BABEL_ESM === 'true' ? false : 'auto';
|
|
2
|
+
|
|
1
3
|
module.exports = {
|
|
2
|
-
|
|
4
|
+
presets: [
|
|
5
|
+
[
|
|
6
|
+
"@babel/preset-env",
|
|
7
|
+
{
|
|
8
|
+
targets: 'defaults',
|
|
9
|
+
modules
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"@babel/preset-react"
|
|
13
|
+
],
|
|
3
14
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# v1.0.0 (Fri Mar 11 2022)
|
|
2
|
+
|
|
3
|
+
#### 🐛 Bug Fix
|
|
4
|
+
|
|
5
|
+
- Add support for custom elements using `:host(:hover)` like styling. [#17](https://github.com/chromaui/storybook-addon-pseudo-states/pull/17) (jeroen.zwartepoorte@iddinkgroup.com [@ghengeveld](https://github.com/ghengeveld))
|
|
6
|
+
- Setup auto [#7](https://github.com/chromaui/storybook-addon-pseudo-states/pull/7) ([@ghengeveld](https://github.com/ghengeveld))
|
|
7
|
+
|
|
8
|
+
#### ⚠️ Pushed to `main`
|
|
9
|
+
|
|
10
|
+
- Upgrade Storybook ([@ghengeveld](https://github.com/ghengeveld))
|
|
11
|
+
- Ignore .env file ([@ghengeveld](https://github.com/ghengeveld))
|
|
12
|
+
|
|
13
|
+
#### Authors: 2
|
|
14
|
+
|
|
15
|
+
- Gert Hengeveld ([@ghengeveld](https://github.com/ghengeveld))
|
|
16
|
+
- Jeroen Zwartepoorte ([@jpzwarte](https://github.com/jpzwarte))
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
1
20
|
# v1.0.0 (Sat Feb 27 2021)
|
|
2
21
|
|
|
3
22
|
#### 🐛 Bug Fix
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof";
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
4
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
@@ -17,13 +17,13 @@ var _theming = require("@storybook/theming");
|
|
|
17
17
|
|
|
18
18
|
var _constants = require("./constants");
|
|
19
19
|
|
|
20
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
21
|
|
|
22
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return {
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
23
|
|
|
24
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
24
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
25
25
|
|
|
26
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
26
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
27
27
|
|
|
28
28
|
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; }
|
|
29
29
|
|
|
@@ -35,7 +35,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
35
35
|
|
|
36
36
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
37
37
|
|
|
38
|
-
function _iterableToArrayLimit(arr, i) {
|
|
38
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
39
39
|
|
|
40
40
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
41
41
|
|
|
@@ -76,18 +76,18 @@ var PseudoStateTool = function PseudoStateTool() {
|
|
|
76
76
|
});
|
|
77
77
|
};
|
|
78
78
|
}, [pseudo, getValue]);
|
|
79
|
-
return /*#__PURE__*/_react
|
|
79
|
+
return /*#__PURE__*/_react.default.createElement(_components.WithTooltip, {
|
|
80
80
|
placement: "top",
|
|
81
81
|
trigger: "click",
|
|
82
82
|
tooltip: function tooltip() {
|
|
83
|
-
return /*#__PURE__*/_react
|
|
83
|
+
return /*#__PURE__*/_react.default.createElement(_components.TooltipLinkList, {
|
|
84
84
|
links: options.map(function (option) {
|
|
85
85
|
return {
|
|
86
86
|
id: option,
|
|
87
|
-
title: /*#__PURE__*/_react
|
|
87
|
+
title: /*#__PURE__*/_react.default.createElement(LinkTitle, {
|
|
88
88
|
active: getValue(option)
|
|
89
89
|
}, ":", _constants.PSEUDO_STATES[option]),
|
|
90
|
-
right: /*#__PURE__*/_react
|
|
90
|
+
right: /*#__PURE__*/_react.default.createElement(LinkIcon, {
|
|
91
91
|
icon: "check",
|
|
92
92
|
width: 12,
|
|
93
93
|
height: 12,
|
|
@@ -99,11 +99,11 @@ var PseudoStateTool = function PseudoStateTool() {
|
|
|
99
99
|
})
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
|
-
}, /*#__PURE__*/_react
|
|
102
|
+
}, /*#__PURE__*/_react.default.createElement(_components.IconButton, {
|
|
103
103
|
key: "pseudo-state",
|
|
104
104
|
title: "Select CSS pseudo states",
|
|
105
105
|
active: hasSelection
|
|
106
|
-
}, /*#__PURE__*/_react
|
|
106
|
+
}, /*#__PURE__*/_react.default.createElement(_components.Icons, {
|
|
107
107
|
icon: "button"
|
|
108
108
|
})));
|
|
109
109
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.TOOL_ID = exports.PSEUDO_STATES = exports.ADDON_ID = void 0;
|
|
7
7
|
var ADDON_ID = "storybook/pseudo-states";
|
|
8
8
|
exports.ADDON_ID = ADDON_ID;
|
|
9
9
|
var TOOL_ID = "".concat(ADDON_ID, "/tool"); // Dynamic pseudo-classes
|
|
File without changes
|
|
File without changes
|
|
@@ -11,19 +11,19 @@ var _coreEvents = require("@storybook/core-events");
|
|
|
11
11
|
|
|
12
12
|
var _constants = require("./constants");
|
|
13
13
|
|
|
14
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
15
|
|
|
16
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
16
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
17
|
|
|
18
18
|
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; }
|
|
19
19
|
|
|
20
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it
|
|
20
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
21
21
|
|
|
22
22
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
23
23
|
|
|
24
24
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
25
|
|
|
26
|
-
function _iterableToArrayLimit(arr, i) {
|
|
26
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
27
27
|
|
|
28
28
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
29
29
|
|
|
@@ -33,7 +33,7 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread n
|
|
|
33
33
|
|
|
34
34
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
35
35
|
|
|
36
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator
|
|
36
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
37
37
|
|
|
38
38
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
39
39
|
|
|
@@ -123,13 +123,24 @@ var warnOnce = function warnOnce(message) {
|
|
|
123
123
|
|
|
124
124
|
|
|
125
125
|
function rewriteStyleSheets(shadowRoot) {
|
|
126
|
-
var
|
|
126
|
+
var _shadowRoot$adoptedSt;
|
|
127
|
+
|
|
128
|
+
var styleSheets = shadowRoot ? shadowRoot.styleSheets : document.styleSheets;
|
|
129
|
+
if (shadowRoot !== null && shadowRoot !== void 0 && (_shadowRoot$adoptedSt = shadowRoot.adoptedStyleSheets) !== null && _shadowRoot$adoptedSt !== void 0 && _shadowRoot$adoptedSt.length) styleSheets = shadowRoot.adoptedStyleSheets;
|
|
130
|
+
|
|
131
|
+
var _iterator = _createForOfIteratorHelper(styleSheets),
|
|
127
132
|
_step;
|
|
128
133
|
|
|
129
134
|
try {
|
|
130
135
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
131
136
|
var sheet = _step.value;
|
|
132
137
|
|
|
138
|
+
if (sheet._pseudoStatesRewritten) {
|
|
139
|
+
continue;
|
|
140
|
+
} else {
|
|
141
|
+
sheet._pseudoStatesRewritten = true;
|
|
142
|
+
}
|
|
143
|
+
|
|
133
144
|
try {
|
|
134
145
|
var index = 0;
|
|
135
146
|
|
|
@@ -147,10 +158,25 @@ function rewriteStyleSheets(shadowRoot) {
|
|
|
147
158
|
if (selector.includes(".pseudo-")) return [];
|
|
148
159
|
var states = [];
|
|
149
160
|
var plainSelector = selector.replace(matchAll, function (_, state) {
|
|
150
|
-
states.push(
|
|
161
|
+
states.push(state);
|
|
151
162
|
return "";
|
|
152
163
|
});
|
|
153
|
-
var stateSelector
|
|
164
|
+
var stateSelector;
|
|
165
|
+
|
|
166
|
+
if (selector.startsWith(":host(")) {
|
|
167
|
+
stateSelector = states.reduce(function (acc, state) {
|
|
168
|
+
return acc.replaceAll(":".concat(state), ".pseudo-".concat(state));
|
|
169
|
+
}, selector);
|
|
170
|
+
} else if (shadowRoot) {
|
|
171
|
+
stateSelector = ":host(".concat(states.map(function (s) {
|
|
172
|
+
return ".pseudo-".concat(s);
|
|
173
|
+
}).join(""), ") ").concat(plainSelector);
|
|
174
|
+
} else {
|
|
175
|
+
stateSelector = "".concat(states.map(function (s) {
|
|
176
|
+
return ".pseudo-".concat(s);
|
|
177
|
+
}).join(""), " ").concat(plainSelector);
|
|
178
|
+
}
|
|
179
|
+
|
|
154
180
|
return [selector, stateSelector];
|
|
155
181
|
}).join(", "));
|
|
156
182
|
sheet.deleteRule(index);
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
|
|
5
|
+
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; }
|
|
6
|
+
|
|
7
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
+
|
|
9
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
+
|
|
11
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
12
|
+
|
|
13
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
14
|
+
|
|
15
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
16
|
+
|
|
17
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
+
|
|
19
|
+
import React, { useCallback, useMemo } from "react";
|
|
20
|
+
import { useGlobals } from "@storybook/api";
|
|
21
|
+
import { Icons, IconButton, WithTooltip, TooltipLinkList } from "@storybook/components";
|
|
22
|
+
import { styled, color } from "@storybook/theming";
|
|
23
|
+
import { PSEUDO_STATES } from "./constants";
|
|
24
|
+
var LinkTitle = styled.span(function (_ref) {
|
|
25
|
+
var active = _ref.active;
|
|
26
|
+
return {
|
|
27
|
+
color: active ? color.secondary : "inherit"
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
var LinkIcon = styled(Icons)(function (_ref2) {
|
|
31
|
+
var active = _ref2.active;
|
|
32
|
+
return {
|
|
33
|
+
opacity: active ? 1 : 0,
|
|
34
|
+
path: {
|
|
35
|
+
fill: active ? color.secondary : "inherit"
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
var options = Object.keys(PSEUDO_STATES).sort();
|
|
40
|
+
export var PseudoStateTool = function PseudoStateTool() {
|
|
41
|
+
var _useGlobals = useGlobals(),
|
|
42
|
+
_useGlobals2 = _slicedToArray(_useGlobals, 2),
|
|
43
|
+
pseudo = _useGlobals2[0].pseudo,
|
|
44
|
+
updateGlobals = _useGlobals2[1];
|
|
45
|
+
|
|
46
|
+
var hasSelection = useMemo(function () {
|
|
47
|
+
return !!pseudo && Object.values(pseudo).includes(true);
|
|
48
|
+
}, [pseudo]);
|
|
49
|
+
var getValue = useCallback(function (option) {
|
|
50
|
+
return pseudo ? pseudo[option] : false;
|
|
51
|
+
}, [pseudo]);
|
|
52
|
+
var toggleOption = useCallback(function (option) {
|
|
53
|
+
return function () {
|
|
54
|
+
return updateGlobals({
|
|
55
|
+
pseudo: _objectSpread(_objectSpread({}, pseudo), {}, _defineProperty({}, option, !getValue(option)))
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
}, [pseudo, getValue]);
|
|
59
|
+
return /*#__PURE__*/React.createElement(WithTooltip, {
|
|
60
|
+
placement: "top",
|
|
61
|
+
trigger: "click",
|
|
62
|
+
tooltip: function tooltip() {
|
|
63
|
+
return /*#__PURE__*/React.createElement(TooltipLinkList, {
|
|
64
|
+
links: options.map(function (option) {
|
|
65
|
+
return {
|
|
66
|
+
id: option,
|
|
67
|
+
title: /*#__PURE__*/React.createElement(LinkTitle, {
|
|
68
|
+
active: getValue(option)
|
|
69
|
+
}, ":", PSEUDO_STATES[option]),
|
|
70
|
+
right: /*#__PURE__*/React.createElement(LinkIcon, {
|
|
71
|
+
icon: "check",
|
|
72
|
+
width: 12,
|
|
73
|
+
height: 12,
|
|
74
|
+
active: getValue(option)
|
|
75
|
+
}),
|
|
76
|
+
onClick: toggleOption(option),
|
|
77
|
+
active: getValue(option)
|
|
78
|
+
};
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
83
|
+
key: "pseudo-state",
|
|
84
|
+
title: "Select CSS pseudo states",
|
|
85
|
+
active: hasSelection
|
|
86
|
+
}, /*#__PURE__*/React.createElement(Icons, {
|
|
87
|
+
icon: "button"
|
|
88
|
+
})));
|
|
89
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export var ADDON_ID = "storybook/pseudo-states";
|
|
2
|
+
export var TOOL_ID = "".concat(ADDON_ID, "/tool"); // Dynamic pseudo-classes
|
|
3
|
+
// @see https://www.w3.org/TR/2018/REC-selectors-3-20181106/#dynamic-pseudos
|
|
4
|
+
|
|
5
|
+
export var PSEUDO_STATES = {
|
|
6
|
+
hover: "hover",
|
|
7
|
+
active: "active",
|
|
8
|
+
focusVisible: "focus-visible",
|
|
9
|
+
focusWithin: "focus-within",
|
|
10
|
+
focus: "focus",
|
|
11
|
+
// must come after its alternatives
|
|
12
|
+
visited: "visited",
|
|
13
|
+
link: "link",
|
|
14
|
+
target: "target"
|
|
15
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { addons, types } from "@storybook/addons";
|
|
2
|
+
import { ADDON_ID, TOOL_ID } from "../constants";
|
|
3
|
+
import { PseudoStateTool } from "../PseudoStateTool";
|
|
4
|
+
addons.register(ADDON_ID, function () {
|
|
5
|
+
addons.add(TOOL_ID, {
|
|
6
|
+
type: types.TOOL,
|
|
7
|
+
title: "CSS pseudo states",
|
|
8
|
+
match: function match(_ref) {
|
|
9
|
+
var viewMode = _ref.viewMode;
|
|
10
|
+
return viewMode === "story";
|
|
11
|
+
},
|
|
12
|
+
render: PseudoStateTool
|
|
13
|
+
});
|
|
14
|
+
});
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
|
|
5
|
+
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; }
|
|
6
|
+
|
|
7
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
8
|
+
|
|
9
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
10
|
+
|
|
11
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
12
|
+
|
|
13
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
14
|
+
|
|
15
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
+
|
|
17
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
18
|
+
|
|
19
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
20
|
+
|
|
21
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
22
|
+
|
|
23
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
24
|
+
|
|
25
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
26
|
+
|
|
27
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
28
|
+
|
|
29
|
+
/* eslint-env browser */
|
|
30
|
+
import { addons, useEffect, useGlobals, useParameter } from "@storybook/addons";
|
|
31
|
+
import { STORY_CHANGED, STORY_RENDERED } from "@storybook/core-events";
|
|
32
|
+
import { PSEUDO_STATES } from "./constants";
|
|
33
|
+
var pseudoStates = Object.values(PSEUDO_STATES);
|
|
34
|
+
var matchOne = new RegExp(":(".concat(pseudoStates.join("|"), ")"));
|
|
35
|
+
var matchAll = new RegExp(":(".concat(pseudoStates.join("|"), ")"), "g"); // Drops any existing pseudo state classnames that carried over from a previously viewed story
|
|
36
|
+
// before adding the new classnames. We do this the old-fashioned way, for IE compatibility.
|
|
37
|
+
|
|
38
|
+
var applyClasses = function applyClasses(element, classnames) {
|
|
39
|
+
var _element$className$sp;
|
|
40
|
+
|
|
41
|
+
element.className = (_element$className$sp = element.className.split(" ").filter(function (classname) {
|
|
42
|
+
return classname && classname.indexOf("pseudo-") !== 0;
|
|
43
|
+
})).concat.apply(_element$className$sp, _toConsumableArray(classnames)).join(" ");
|
|
44
|
+
}; // Traverses ancestry to collect relevant pseudo classnames, and applies them to the shadow host.
|
|
45
|
+
// Shadow DOM can only access classes on its host. Traversing is needed to mimic the CSS cascade.
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
var updateShadowHost = function updateShadowHost(shadowHost) {
|
|
49
|
+
var classnames = new Set();
|
|
50
|
+
|
|
51
|
+
for (var element = shadowHost.parentElement; element; element = element.parentElement) {
|
|
52
|
+
if (!element.className) continue;
|
|
53
|
+
element.className.split(" ").filter(function (classname) {
|
|
54
|
+
return classname.indexOf("pseudo-") === 0;
|
|
55
|
+
}).forEach(function (classname) {
|
|
56
|
+
return classnames.add(classname);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
applyClasses(shadowHost, classnames);
|
|
61
|
+
}; // Keep track of attached shadow host elements for the current story
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
var shadowHosts = new Set();
|
|
65
|
+
addons.getChannel().on(STORY_CHANGED, function () {
|
|
66
|
+
return shadowHosts.clear();
|
|
67
|
+
}); // Global decorator that rewrites stylesheets and applies classnames to render pseudo styles
|
|
68
|
+
|
|
69
|
+
export var withPseudoState = function withPseudoState(StoryFn) {
|
|
70
|
+
var parameter = useParameter("pseudo");
|
|
71
|
+
|
|
72
|
+
var _useGlobals = useGlobals(),
|
|
73
|
+
_useGlobals2 = _slicedToArray(_useGlobals, 2),
|
|
74
|
+
globals = _useGlobals2[0].pseudo,
|
|
75
|
+
updateGlobals = _useGlobals2[1]; // Sync parameter to globals, used by the toolbar
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
useEffect(function () {
|
|
79
|
+
if (parameter !== globals) updateGlobals({
|
|
80
|
+
pseudo: parameter
|
|
81
|
+
});
|
|
82
|
+
}, [parameter]); // Convert selected states to classnames and apply them to the story root element.
|
|
83
|
+
// Then update each shadow host to redetermine its own pseudo classnames.
|
|
84
|
+
|
|
85
|
+
useEffect(function () {
|
|
86
|
+
applyClasses(document.getElementById("root"), Object.entries(globals || {}).filter(function (_ref) {
|
|
87
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
88
|
+
_ = _ref2[0],
|
|
89
|
+
value = _ref2[1];
|
|
90
|
+
|
|
91
|
+
return value;
|
|
92
|
+
}).map(function (_ref3) {
|
|
93
|
+
var _ref4 = _slicedToArray(_ref3, 1),
|
|
94
|
+
key = _ref4[0];
|
|
95
|
+
|
|
96
|
+
return "pseudo-".concat(PSEUDO_STATES[key]);
|
|
97
|
+
}));
|
|
98
|
+
shadowHosts.forEach(updateShadowHost);
|
|
99
|
+
}, [globals]);
|
|
100
|
+
return StoryFn();
|
|
101
|
+
};
|
|
102
|
+
var warnings = new Set();
|
|
103
|
+
|
|
104
|
+
var warnOnce = function warnOnce(message) {
|
|
105
|
+
if (warnings.has(message)) return; // eslint-disable-next-line no-console
|
|
106
|
+
|
|
107
|
+
console.warn(message);
|
|
108
|
+
warnings.add(message);
|
|
109
|
+
}; // Rewrite CSS rules for pseudo-states on all stylesheets to add an alternative selector
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
function rewriteStyleSheets(shadowRoot) {
|
|
113
|
+
var _shadowRoot$adoptedSt;
|
|
114
|
+
|
|
115
|
+
var styleSheets = shadowRoot ? shadowRoot.styleSheets : document.styleSheets;
|
|
116
|
+
if (shadowRoot !== null && shadowRoot !== void 0 && (_shadowRoot$adoptedSt = shadowRoot.adoptedStyleSheets) !== null && _shadowRoot$adoptedSt !== void 0 && _shadowRoot$adoptedSt.length) styleSheets = shadowRoot.adoptedStyleSheets;
|
|
117
|
+
|
|
118
|
+
var _iterator = _createForOfIteratorHelper(styleSheets),
|
|
119
|
+
_step;
|
|
120
|
+
|
|
121
|
+
try {
|
|
122
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
123
|
+
var sheet = _step.value;
|
|
124
|
+
|
|
125
|
+
if (sheet._pseudoStatesRewritten) {
|
|
126
|
+
continue;
|
|
127
|
+
} else {
|
|
128
|
+
sheet._pseudoStatesRewritten = true;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
try {
|
|
132
|
+
var index = 0;
|
|
133
|
+
|
|
134
|
+
var _iterator2 = _createForOfIteratorHelper(sheet.cssRules),
|
|
135
|
+
_step2;
|
|
136
|
+
|
|
137
|
+
try {
|
|
138
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
139
|
+
var _step2$value = _step2.value,
|
|
140
|
+
cssText = _step2$value.cssText,
|
|
141
|
+
selectorText = _step2$value.selectorText;
|
|
142
|
+
|
|
143
|
+
if (matchOne.test(selectorText)) {
|
|
144
|
+
var newRule = cssText.replace(selectorText, selectorText.split(", ").flatMap(function (selector) {
|
|
145
|
+
if (selector.includes(".pseudo-")) return [];
|
|
146
|
+
var states = [];
|
|
147
|
+
var plainSelector = selector.replace(matchAll, function (_, state) {
|
|
148
|
+
states.push(state);
|
|
149
|
+
return "";
|
|
150
|
+
});
|
|
151
|
+
var stateSelector;
|
|
152
|
+
|
|
153
|
+
if (selector.startsWith(":host(")) {
|
|
154
|
+
stateSelector = states.reduce(function (acc, state) {
|
|
155
|
+
return acc.replaceAll(":".concat(state), ".pseudo-".concat(state));
|
|
156
|
+
}, selector);
|
|
157
|
+
} else if (shadowRoot) {
|
|
158
|
+
stateSelector = ":host(".concat(states.map(function (s) {
|
|
159
|
+
return ".pseudo-".concat(s);
|
|
160
|
+
}).join(""), ") ").concat(plainSelector);
|
|
161
|
+
} else {
|
|
162
|
+
stateSelector = "".concat(states.map(function (s) {
|
|
163
|
+
return ".pseudo-".concat(s);
|
|
164
|
+
}).join(""), " ").concat(plainSelector);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
return [selector, stateSelector];
|
|
168
|
+
}).join(", "));
|
|
169
|
+
sheet.deleteRule(index);
|
|
170
|
+
sheet.insertRule(newRule, index);
|
|
171
|
+
if (shadowRoot) shadowHosts.add(shadowRoot.host);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
index++;
|
|
175
|
+
|
|
176
|
+
if (index > 1000) {
|
|
177
|
+
warnOnce("Reached maximum of 1000 pseudo selectors per sheet, skipping the rest.");
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
} catch (err) {
|
|
182
|
+
_iterator2.e(err);
|
|
183
|
+
} finally {
|
|
184
|
+
_iterator2.f();
|
|
185
|
+
}
|
|
186
|
+
} catch (e) {
|
|
187
|
+
if (e.toString().includes("cssRules")) {
|
|
188
|
+
warnOnce("Can't access cssRules, likely due to CORS restrictions: ".concat(sheet.href));
|
|
189
|
+
} else {
|
|
190
|
+
// eslint-disable-next-line no-console
|
|
191
|
+
console.error(e, sheet.href);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
} catch (err) {
|
|
196
|
+
_iterator.e(err);
|
|
197
|
+
} finally {
|
|
198
|
+
_iterator.f();
|
|
199
|
+
}
|
|
200
|
+
} // Reinitialize CSS enhancements every time the story changes
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
addons.getChannel().on(STORY_RENDERED, function () {
|
|
204
|
+
return rewriteStyleSheets();
|
|
205
|
+
}); // IE doesn't support shadow DOM
|
|
206
|
+
|
|
207
|
+
if (Element.prototype.attachShadow) {
|
|
208
|
+
// Monkeypatch the attachShadow method so we can handle pseudo styles inside shadow DOM
|
|
209
|
+
Element.prototype._attachShadow = Element.prototype.attachShadow;
|
|
210
|
+
|
|
211
|
+
Element.prototype.attachShadow = function attachShadow(init) {
|
|
212
|
+
// Force "open" mode, so we can access the shadowRoot
|
|
213
|
+
var shadowRoot = this._attachShadow(_objectSpread(_objectSpread({}, init), {}, {
|
|
214
|
+
mode: "open"
|
|
215
|
+
})); // Wait for it to render and apply its styles before rewriting them
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
requestAnimationFrame(function () {
|
|
219
|
+
rewriteStyleSheets(shadowRoot);
|
|
220
|
+
updateShadowHost(shadowRoot.host);
|
|
221
|
+
});
|
|
222
|
+
return shadowRoot;
|
|
223
|
+
};
|
|
224
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "storybook-addon-pseudo-states",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "CSS pseudo states for Storybook",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook-addons",
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
},
|
|
15
15
|
"author": "ghengeveld",
|
|
16
16
|
"license": "MIT",
|
|
17
|
-
"main": "dist/preset.js",
|
|
17
|
+
"main": "dist/cjs/preset.js",
|
|
18
|
+
"module": "dist/esm/preset.js",
|
|
18
19
|
"files": [
|
|
19
20
|
"dist/**/*",
|
|
20
21
|
"README.md",
|
|
@@ -25,7 +26,7 @@
|
|
|
25
26
|
"start": "concurrently \"yarn storybook --no-manager-cache --quiet\" \"yarn build:dist --watch\"",
|
|
26
27
|
"storybook": "start-storybook -p 6006",
|
|
27
28
|
"chromatic": "chromatic",
|
|
28
|
-
"build:dist": "babel ./src --out-dir ./dist",
|
|
29
|
+
"build:dist": "babel ./src --out-dir ./dist/cjs && BABEL_ESM=\"true\" babel ./src --out-dir ./dist/esm",
|
|
29
30
|
"build:storybook": "build-storybook",
|
|
30
31
|
"prepublish": "yarn clean && yarn build:dist",
|
|
31
32
|
"release": "auto shipit --base-branch=main"
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
"@babel/core": "^7.12.3",
|
|
37
38
|
"@babel/preset-env": "^7.12.1",
|
|
38
39
|
"@babel/preset-react": "^7.12.5",
|
|
39
|
-
"@storybook/react": "^6.
|
|
40
|
+
"@storybook/react": "^6.4.19",
|
|
40
41
|
"auto": "^10.16.8",
|
|
41
42
|
"babel-loader": "^8.1.0",
|
|
42
43
|
"chromatic": "^5.6.0",
|
|
@@ -46,11 +47,11 @@
|
|
|
46
47
|
"rimraf": "^3.0.2"
|
|
47
48
|
},
|
|
48
49
|
"peerDependencies": {
|
|
49
|
-
"@storybook/addons": "^6.
|
|
50
|
-
"@storybook/api": "^6.
|
|
51
|
-
"@storybook/components": "^6.
|
|
52
|
-
"@storybook/core-events": "^6.
|
|
53
|
-
"@storybook/theming": "^6.
|
|
50
|
+
"@storybook/addons": "^6.4.19",
|
|
51
|
+
"@storybook/api": "^6.4.19",
|
|
52
|
+
"@storybook/components": "^6.4.19",
|
|
53
|
+
"@storybook/core-events": "^6.4.19",
|
|
54
|
+
"@storybook/theming": "^6.4.19",
|
|
54
55
|
"react": "^16.8.0 || ^17.0.0",
|
|
55
56
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
56
57
|
},
|
package/preset.js
CHANGED
|
@@ -1 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
function managerEntries(entry = []) {
|
|
2
|
+
return [...entry, require.resolve("./dist/esm/preset/manager")]
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
function config(entry = []) {
|
|
6
|
+
return [...entry, require.resolve("./dist/esm/preset/preview")]
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
module.exports = { managerEntries, config };
|
package/dist/preset/index.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.config = config;
|
|
7
|
-
exports.managerEntries = managerEntries;
|
|
8
|
-
|
|
9
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
10
|
-
|
|
11
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
12
|
-
|
|
13
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
14
|
-
|
|
15
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
16
|
-
|
|
17
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
18
|
-
|
|
19
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
20
|
-
|
|
21
|
-
function config() {
|
|
22
|
-
var entry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
23
|
-
return [].concat(_toConsumableArray(entry), [require.resolve("./preview")]);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function managerEntries() {
|
|
27
|
-
var entry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
28
|
-
return [].concat(_toConsumableArray(entry), [require.resolve("./manager")]);
|
|
29
|
-
}
|