creevey 0.9.0-beta.13 → 0.9.0-beta.14

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.
Files changed (216) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/.yarnrc.yml +1 -0
  3. package/lib/cjs/cli.js +1 -0
  4. package/lib/cjs/client/addon/Manager.js +151 -223
  5. package/lib/cjs/client/addon/components/Addon.js +2 -9
  6. package/lib/cjs/client/addon/components/Icons.js +1 -7
  7. package/lib/cjs/client/addon/components/Panel.js +5 -18
  8. package/lib/cjs/client/addon/components/TestSelect.js +12 -25
  9. package/lib/cjs/client/addon/components/Tools.js +17 -28
  10. package/lib/cjs/client/addon/decorator.js +1 -4
  11. package/lib/cjs/client/addon/index.js +0 -4
  12. package/lib/cjs/client/addon/preset.js +3 -12
  13. package/lib/cjs/client/addon/preview.js +1 -4
  14. package/lib/cjs/client/addon/readyForCapture.js +1 -4
  15. package/lib/cjs/client/addon/register.js +11 -26
  16. package/lib/cjs/client/addon/utils.js +1 -9
  17. package/lib/cjs/client/addon/withCreevey.js +55 -134
  18. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +5 -17
  19. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +8 -24
  20. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +7 -23
  21. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +7 -22
  22. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +5 -17
  23. package/lib/cjs/client/shared/components/ImagesView/index.js +0 -5
  24. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +1 -8
  25. package/lib/cjs/client/shared/components/PageFooter/Paging.js +2 -19
  26. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +21 -17
  27. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +5 -24
  28. package/lib/cjs/client/shared/components/ResultsPage.js +9 -37
  29. package/lib/cjs/client/shared/creeveyClientApi.js +3 -13
  30. package/lib/cjs/client/shared/helpers.js +21 -75
  31. package/lib/cjs/client/shared/viewMode.js +2 -6
  32. package/lib/cjs/client/web/192.js +1 -0
  33. package/lib/cjs/client/web/632.js +43 -0
  34. package/lib/cjs/client/web/794.js +1 -0
  35. package/lib/cjs/client/web/main.js +78 -1
  36. package/lib/cjs/client/web/main.js.LICENSE.txt +0 -15
  37. package/lib/cjs/creevey.js +5 -21
  38. package/lib/cjs/index.js +0 -15
  39. package/lib/cjs/server/config.js +13 -33
  40. package/lib/cjs/server/docker.js +5 -27
  41. package/lib/cjs/server/index.js +8 -33
  42. package/lib/cjs/server/logger.js +5 -19
  43. package/lib/cjs/server/master/api.js +1 -14
  44. package/lib/cjs/server/master/index.js +15 -46
  45. package/lib/cjs/server/master/master.js +6 -21
  46. package/lib/cjs/server/master/pool.js +2 -37
  47. package/lib/cjs/server/master/runner.js +15 -42
  48. package/lib/cjs/server/master/server.js +5 -27
  49. package/lib/cjs/server/messages.js +7 -53
  50. package/lib/cjs/server/selenium/browser.js +51 -136
  51. package/lib/cjs/server/selenium/index.js +0 -4
  52. package/lib/cjs/server/selenium/selenoid.js +7 -33
  53. package/lib/cjs/server/stories.js +25 -30
  54. package/lib/cjs/server/storybook/providers/browser.js +5 -18
  55. package/lib/cjs/server/storybook/providers/hybrid.js +9 -29
  56. package/lib/cjs/server/testsFiles/parser.js +3 -19
  57. package/lib/cjs/server/testsFiles/register.js +7 -9
  58. package/lib/cjs/server/update.js +3 -20
  59. package/lib/cjs/server/utils.js +9 -41
  60. package/lib/cjs/server/worker/chai-image.js +1 -27
  61. package/lib/cjs/server/worker/helpers.js +2 -12
  62. package/lib/cjs/server/worker/index.js +1 -3
  63. package/lib/cjs/server/worker/reporter.js +8 -24
  64. package/lib/cjs/server/worker/worker.js +5 -49
  65. package/lib/cjs/shared/index.js +22 -36
  66. package/lib/cjs/shared/serializeRegExp.js +0 -8
  67. package/lib/cjs/types.js +4 -14
  68. package/lib/esm/cli.js +1 -1
  69. package/lib/esm/client/addon/Manager.js +151 -214
  70. package/lib/esm/client/addon/components/Panel.js +4 -6
  71. package/lib/esm/client/addon/components/TestSelect.js +11 -17
  72. package/lib/esm/client/addon/components/Tools.js +15 -14
  73. package/lib/esm/client/addon/preset.js +2 -8
  74. package/lib/esm/client/addon/readyForCapture.js +1 -3
  75. package/lib/esm/client/addon/register.js +6 -8
  76. package/lib/esm/client/addon/utils.js +0 -5
  77. package/lib/esm/client/addon/withCreevey.js +54 -116
  78. package/lib/esm/client/shared/components/ImagesView/BlendView.js +1 -1
  79. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +6 -8
  80. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +3 -4
  81. package/lib/esm/client/shared/components/ImagesView/SlideView.js +3 -3
  82. package/lib/esm/client/shared/components/ImagesView/SwapView.js +1 -1
  83. package/lib/esm/client/shared/components/PageFooter/Paging.js +1 -11
  84. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +18 -7
  85. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +3 -8
  86. package/lib/esm/client/shared/components/ResultsPage.js +6 -15
  87. package/lib/esm/client/shared/creeveyClientApi.js +3 -10
  88. package/lib/esm/client/shared/helpers.js +21 -47
  89. package/lib/esm/client/web/192.js +1 -0
  90. package/lib/esm/client/web/632.js +43 -0
  91. package/lib/esm/client/web/794.js +1 -0
  92. package/lib/esm/client/web/index.html +19 -0
  93. package/lib/esm/client/web/main.js +79 -0
  94. package/lib/esm/client/web/main.js.LICENSE.txt +34 -0
  95. package/lib/esm/creevey.js +4 -8
  96. package/lib/esm/index.js +0 -1
  97. package/lib/esm/server/config.js +7 -14
  98. package/lib/esm/server/docker.js +4 -12
  99. package/lib/esm/server/index.js +7 -21
  100. package/lib/esm/server/logger.js +0 -1
  101. package/lib/esm/server/master/api.js +0 -9
  102. package/lib/esm/server/master/index.js +15 -32
  103. package/lib/esm/server/master/master.js +2 -7
  104. package/lib/esm/server/master/pool.js +0 -23
  105. package/lib/esm/server/master/runner.js +14 -27
  106. package/lib/esm/server/master/server.js +4 -9
  107. package/lib/esm/server/messages.js +6 -38
  108. package/lib/esm/server/selenium/browser.js +50 -114
  109. package/lib/esm/server/selenium/selenoid.js +6 -17
  110. package/lib/esm/server/stories.js +24 -20
  111. package/lib/esm/server/storybook/providers/browser.js +4 -8
  112. package/lib/esm/server/storybook/providers/hybrid.js +6 -14
  113. package/lib/esm/server/testsFiles/parser.js +0 -6
  114. package/lib/esm/server/testsFiles/register.js +5 -2
  115. package/lib/esm/server/update.js +0 -8
  116. package/lib/esm/server/utils.js +3 -11
  117. package/lib/esm/server/worker/chai-image.js +0 -21
  118. package/lib/esm/server/worker/helpers.js +2 -9
  119. package/lib/esm/server/worker/reporter.js +7 -10
  120. package/lib/esm/server/worker/worker.js +4 -25
  121. package/lib/esm/shared/index.js +24 -25
  122. package/lib/esm/types.js +4 -1
  123. package/lib/types/client/addon/Manager.d.ts +1 -1
  124. package/lib/types/client/addon/components/Addon.d.ts +1 -0
  125. package/lib/types/client/addon/components/Icons.d.ts +1 -0
  126. package/lib/types/client/addon/components/Panel.d.ts +1 -0
  127. package/lib/types/client/addon/components/TestSelect.d.ts +1 -0
  128. package/lib/types/client/addon/components/Tools.d.ts +1 -0
  129. package/lib/types/client/addon/decorator.d.ts +1 -1
  130. package/lib/types/client/addon/preset.d.ts +2 -2
  131. package/lib/types/client/addon/preview.d.ts +1 -1
  132. package/lib/types/client/addon/withCreevey.d.ts +3 -2
  133. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -1
  134. package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +1 -0
  135. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -1
  136. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -1
  137. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -1
  138. package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +1 -0
  139. package/lib/types/client/shared/components/PageFooter/Paging.d.ts +1 -0
  140. package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +3 -1
  141. package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +1 -0
  142. package/lib/types/client/shared/components/ResultsPage.d.ts +3 -1
  143. package/lib/types/client/web/CreeveyApp.d.ts +1 -0
  144. package/lib/types/client/web/CreeveyLoader.d.ts +2 -1
  145. package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +4 -1
  146. package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +1 -0
  147. package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +1 -0
  148. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +19 -14
  149. package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +1 -0
  150. package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +3 -1
  151. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +3 -1
  152. package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +1 -0
  153. package/lib/types/shared/index.d.ts +1 -1
  154. package/lib/types/types.d.ts +7 -28
  155. package/package.json +60 -78
  156. package/lib/cjs/client/addon/preset.ie11.js +0 -74
  157. package/lib/cjs/client/addon/preset.sb7.js +0 -19
  158. package/lib/cjs/client/web/142.js +0 -2
  159. package/lib/cjs/client/web/142.js.LICENSE.txt +0 -12
  160. package/lib/cjs/client/web/32.js +0 -1
  161. package/lib/cjs/client/web/551.js +0 -1
  162. package/lib/cjs/client/web/566.js +0 -2
  163. package/lib/cjs/client/web/566.js.LICENSE.txt +0 -31
  164. package/lib/cjs/client/web/691.js +0 -2
  165. package/lib/cjs/client/web/691.js.LICENSE.txt +0 -8
  166. package/lib/cjs/client/web/725.js +0 -1
  167. package/lib/cjs/server/extract.js +0 -46
  168. package/lib/cjs/server/loaders/babel/creevey-plugin.js +0 -86
  169. package/lib/cjs/server/loaders/babel/helpers.js +0 -469
  170. package/lib/cjs/server/loaders/babel/register.js +0 -124
  171. package/lib/cjs/server/loaders/hooks/mdx.js +0 -30
  172. package/lib/cjs/server/loaders/hooks/svelte.js +0 -65
  173. package/lib/cjs/server/loaders/webpack/compile.js +0 -269
  174. package/lib/cjs/server/loaders/webpack/creevey-loader.js +0 -172
  175. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +0 -39
  176. package/lib/cjs/server/loaders/webpack/mdx-loader.js +0 -72
  177. package/lib/cjs/server/loaders/webpack/start.js +0 -41
  178. package/lib/cjs/server/storybook/entry.js +0 -53
  179. package/lib/cjs/server/storybook/helpers.js +0 -158
  180. package/lib/cjs/server/storybook/providers/nodejs.js +0 -239
  181. package/lib/esm/client/addon/preset.ie11.js +0 -59
  182. package/lib/esm/client/addon/preset.sb7.js +0 -8
  183. package/lib/esm/server/extract.js +0 -32
  184. package/lib/esm/server/loaders/babel/creevey-plugin.js +0 -72
  185. package/lib/esm/server/loaders/babel/helpers.js +0 -452
  186. package/lib/esm/server/loaders/babel/register.js +0 -103
  187. package/lib/esm/server/loaders/hooks/mdx.js +0 -15
  188. package/lib/esm/server/loaders/hooks/svelte.js +0 -49
  189. package/lib/esm/server/loaders/webpack/compile.js +0 -246
  190. package/lib/esm/server/loaders/webpack/creevey-loader.js +0 -152
  191. package/lib/esm/server/loaders/webpack/dummy-hmr.js +0 -32
  192. package/lib/esm/server/loaders/webpack/mdx-loader.js +0 -58
  193. package/lib/esm/server/loaders/webpack/start.js +0 -27
  194. package/lib/esm/server/storybook/entry.js +0 -27
  195. package/lib/esm/server/storybook/helpers.js +0 -97
  196. package/lib/esm/server/storybook/providers/nodejs.js +0 -216
  197. package/lib/types/client/addon/preset.ie11.d.ts +0 -10
  198. package/lib/types/client/addon/preset.sb7.d.ts +0 -2
  199. package/lib/types/server/extract.d.ts +0 -2
  200. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +0 -1
  201. package/lib/types/server/loaders/babel/helpers.d.ts +0 -19
  202. package/lib/types/server/loaders/babel/register.d.ts +0 -5
  203. package/lib/types/server/loaders/hooks/mdx.d.ts +0 -1
  204. package/lib/types/server/loaders/hooks/svelte.d.ts +0 -1
  205. package/lib/types/server/loaders/webpack/compile.d.ts +0 -2
  206. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +0 -4
  207. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +0 -10
  208. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +0 -6
  209. package/lib/types/server/loaders/webpack/start.d.ts +0 -1
  210. package/lib/types/server/storybook/entry.d.ts +0 -17
  211. package/lib/types/server/storybook/helpers.d.ts +0 -24
  212. package/lib/types/server/storybook/providers/nodejs.d.ts +0 -9
  213. package/preset/ie11.js +0 -5
  214. package/preset/index.js +0 -9
  215. package/preset/sb7.js +0 -5
  216. package/types/mdx.d.ts +0 -7
@@ -4,27 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.PageHeader = PageHeader;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _helpers = require("../../helpers");
11
-
12
9
  var _components = require("@storybook/components");
13
-
14
10
  var _theming = require("@storybook/theming");
15
-
16
11
  var _ImagePreview = require("./ImagePreview");
17
-
18
12
  var _viewMode = require("../../viewMode");
19
-
20
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
-
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
-
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
15
  const Container = _theming.styled.div({
25
16
  margin: '24px 44px 0'
26
17
  });
27
-
28
18
  const ErrorContainer = (0, _theming.withTheme)(_theming.styled.div(_ref => {
29
19
  let {
30
20
  theme
@@ -49,12 +39,10 @@ const ErrorContainer = (0, _theming.withTheme)(_theming.styled.div(_ref => {
49
39
  }
50
40
  };
51
41
  }));
52
-
53
42
  const H1 = _theming.styled.h1({
54
43
  margin: 0,
55
44
  marginBottom: '8px'
56
45
  });
57
-
58
46
  const HeaderDivider = (0, _theming.withTheme)(_theming.styled.span(_ref2 => {
59
47
  let {
60
48
  theme
@@ -64,15 +52,11 @@ const HeaderDivider = (0, _theming.withTheme)(_theming.styled.span(_ref2 => {
64
52
  color: theme.color.mediumdark
65
53
  };
66
54
  }));
67
-
68
55
  const ImagesEntriesContainer = _theming.styled.div({
69
56
  display: 'flex',
70
57
  margin: '16px 0 8px'
71
58
  });
72
-
73
59
  function PageHeader(_ref3) {
74
- var _, _imageEntires$, _images$imageName;
75
-
76
60
  let {
77
61
  title,
78
62
  images = {},
@@ -85,13 +69,10 @@ function PageHeader(_ref3) {
85
69
  onViewModeChange
86
70
  } = _ref3;
87
71
  const imageEntires = Object.entries(images);
88
- const [imageName, setImageName] = (0, _react.useState)((_ = ((_imageEntires$ = imageEntires[0]) !== null && _imageEntires$ !== void 0 ? _imageEntires$ : [])[0]) !== null && _ !== void 0 ? _ : '');
89
-
72
+ const [imageName, setImageName] = (0, _react.useState)((imageEntires[0] ?? [])[0] ?? '');
90
73
  const handleImageChange = name => (setImageName(name), onImageChange(name));
91
-
92
74
  const handleViewModeChange = mode => onViewModeChange(mode);
93
-
94
- const error = errorMessage || imagesWithError.includes(imageName) ? ((_images$imageName = images[imageName]) === null || _images$imageName === void 0 ? void 0 : _images$imageName.error) || errorMessage : null;
75
+ const error = errorMessage || imagesWithError.includes(imageName) ? images[imageName]?.error || errorMessage : null;
95
76
  return showTitle || error || imageEntires.length > 1 || showViewModes ? /*#__PURE__*/_react.default.createElement(Container, null, showTitle && /*#__PURE__*/_react.default.createElement(H1, null, title.flatMap(token => [token, /*#__PURE__*/_react.default.createElement(HeaderDivider, {
96
77
  key: token
97
78
  }, "/")]).slice(0, -1)), error && /*#__PURE__*/_react.default.createElement(ErrorContainer, null, /*#__PURE__*/_react.default.createElement(_components.Icons, {
@@ -101,7 +82,7 @@ function PageHeader(_ref3) {
101
82
  return /*#__PURE__*/_react.default.createElement(_ImagePreview.ImagePreview, {
102
83
  key: name,
103
84
  imageName: name,
104
- url: "".concat((0, _helpers.getImageUrl)(title, name), "/").concat(image.actual),
85
+ url: `${(0, _helpers.getImageUrl)(title, name)}/${image.actual}`,
105
86
  isActive: name === imageName,
106
87
  onClick: handleImageChange,
107
88
  error: imagesWithError.includes(name)
@@ -5,27 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.ResultsPage = void 0;
7
7
  exports.ResultsPageInternal = ResultsPageInternal;
8
-
9
8
  var _react = _interopRequireWildcard(require("react"));
10
-
11
9
  var _ImagesView = require("./ImagesView/ImagesView");
12
-
13
10
  var _PageHeader = require("./PageHeader/PageHeader");
14
-
15
11
  var _PageFooter = require("./PageFooter/PageFooter");
16
-
17
12
  var _helpers = require("../helpers");
18
-
19
13
  var _theming = require("@storybook/theming");
20
-
21
14
  var _components = require("@storybook/components");
22
-
23
15
  var _viewMode = require("../viewMode");
24
-
25
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
-
27
- 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; }
28
-
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
29
18
  const Wrapper = _theming.styled.div({
30
19
  width: '100%',
31
20
  height: '100%',
@@ -33,7 +22,6 @@ const Wrapper = _theming.styled.div({
33
22
  display: 'flex',
34
23
  flexDirection: 'column'
35
24
  });
36
-
37
25
  const ImagesViewContainer = _theming.styled.div(_ref => {
38
26
  let {
39
27
  theme
@@ -44,23 +32,19 @@ const ImagesViewContainer = _theming.styled.div(_ref => {
44
32
  padding: '20px 0'
45
33
  };
46
34
  });
47
-
48
35
  const HeaderContainer = _theming.styled.div({
49
36
  position: 'sticky',
50
37
  top: 0,
51
38
  zIndex: 1
52
39
  });
53
-
54
40
  const BodyContainer = _theming.styled.div({
55
41
  flexGrow: 1
56
42
  });
57
-
58
43
  const FooterContainer = _theming.styled.div({
59
44
  position: 'sticky',
60
45
  bottom: 0,
61
46
  zIndex: 1
62
47
  });
63
-
64
48
  const Container = _theming.styled.div(_ref2 => {
65
49
  let {
66
50
  height = '100vh'
@@ -73,10 +57,7 @@ const Container = _theming.styled.div(_ref2 => {
73
57
  flexDirection: 'column'
74
58
  };
75
59
  });
76
-
77
60
  function ResultsPageInternal(_ref3) {
78
- var _results, _Object$keys$, _result$images, _result$images2;
79
-
80
61
  let {
81
62
  id,
82
63
  path,
@@ -88,27 +69,20 @@ function ResultsPageInternal(_ref3) {
88
69
  height
89
70
  } = _ref3;
90
71
  const [retry, setRetry] = (0, _react.useState)(results.length);
91
- const result = (_results = results[retry - 1]) !== null && _results !== void 0 ? _results : {};
92
- const [imageName, setImageName] = (0, _react.useState)((_Object$keys$ = Object.keys((_result$images = result.images) !== null && _result$images !== void 0 ? _result$images : {})[0]) !== null && _Object$keys$ !== void 0 ? _Object$keys$ : '');
72
+ const result = results[retry - 1] ?? {};
73
+ const [imageName, setImageName] = (0, _react.useState)(Object.keys(result.images ?? {})[0] ?? '');
93
74
  const [viewMode, setViewMode] = (0, _react.useState)((0, _viewMode.getViewMode)());
94
75
  (0, _react.useEffect)(() => setRetry(results.length), [results.length]);
95
76
  const url = (0, _helpers.getImageUrl)(path, imageName);
96
- const image = (_result$images2 = result.images) === null || _result$images2 === void 0 ? void 0 : _result$images2[imageName];
77
+ const image = result.images?.[imageName];
97
78
  const canApprove = Boolean(image && approved[imageName] != retry - 1 && result.status != 'success');
98
- const hasDiffAndExpect = canApprove && Boolean((image === null || image === void 0 ? void 0 : image.diff) && image.expect);
99
- const imagesWithError = result.images ? Object.keys(result.images).filter(imageName => {
100
- var _imageName;
101
-
102
- return result.status != 'success' && approved[imageName] != retry - 1 && ((_imageName = (result.images || {})[imageName]) === null || _imageName === void 0 ? void 0 : _imageName.error) != null;
103
- }) : [];
104
-
79
+ const hasDiffAndExpect = canApprove && Boolean(image?.diff && image.expect);
80
+ const imagesWithError = result.images ? Object.keys(result.images).filter(imageName => result.status != 'success' && approved[imageName] != retry - 1 && (result.images || {})[imageName]?.error != null) : [];
105
81
  const handleApprove = () => onImageApprove(id, retry - 1, imageName);
106
-
107
82
  const handleChangeViewMode = mode => {
108
83
  localStorage.setItem(_viewMode.VIEW_MODE_KEY, mode);
109
84
  setViewMode(mode);
110
85
  };
111
-
112
86
  return /*#__PURE__*/_react.default.createElement(Container, {
113
87
  height: height
114
88
  }, /*#__PURE__*/_react.default.createElement(HeaderContainer, null, /*#__PURE__*/_react.default.createElement(_PageHeader.PageHeader, {
@@ -130,7 +104,7 @@ function ResultsPageInternal(_ref3) {
130
104
  image: image,
131
105
  canApprove: canApprove,
132
106
  mode: viewMode
133
- }) : /*#__PURE__*/_react.default.createElement(_components.Placeholder, null, "Image ".concat(imageName, " not found")))))), results.length ? /*#__PURE__*/_react.default.createElement(FooterContainer, null, /*#__PURE__*/_react.default.createElement(_PageFooter.PageFooter, {
107
+ }) : /*#__PURE__*/_react.default.createElement(_components.Placeholder, null, `Image ${imageName} not found`))))), results.length ? /*#__PURE__*/_react.default.createElement(FooterContainer, null, /*#__PURE__*/_react.default.createElement(_PageFooter.PageFooter, {
134
108
  canApprove: canApprove,
135
109
  retry: retry,
136
110
  retriesCount: results.length,
@@ -138,6 +112,4 @@ function ResultsPageInternal(_ref3) {
138
112
  onApprove: handleApprove
139
113
  })) : null);
140
114
  }
141
-
142
- const ResultsPage = (0, _theming.withTheme)(ResultsPageInternal);
143
- exports.ResultsPage = ResultsPage;
115
+ const ResultsPage = exports.ResultsPage = (0, _theming.withTheme)(ResultsPageInternal);
@@ -4,22 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.initCreeveyClientApi = initCreeveyClientApi;
7
-
8
7
  var _types = require("../../types");
9
-
10
8
  var _helpers = require("./helpers");
11
-
12
9
  async function initCreeveyClientApi() {
13
10
  let clientApiResolver = _types.noop;
14
11
  const updateListeners = new Set();
15
12
  let statusRequest = null;
16
13
  let statusResolver = _types.noop;
17
- const ws = new WebSocket("ws://".concat((0, _helpers.getConnectionUrl)()));
18
-
14
+ const ws = new WebSocket(`ws://${(0, _helpers.getConnectionUrl)()}`);
19
15
  function send(request) {
20
16
  ws.send(JSON.stringify(request));
21
17
  }
22
-
23
18
  ws.addEventListener('open', () => {
24
19
  clientApiResolver({
25
20
  start(ids) {
@@ -28,13 +23,11 @@ async function initCreeveyClientApi() {
28
23
  payload: ids
29
24
  });
30
25
  },
31
-
32
26
  stop() {
33
27
  send({
34
28
  type: 'stop'
35
29
  });
36
30
  },
37
-
38
31
  approve(id, retry, image) {
39
32
  send({
40
33
  type: 'approve',
@@ -45,12 +38,10 @@ async function initCreeveyClientApi() {
45
38
  }
46
39
  });
47
40
  },
48
-
49
41
  onUpdate(fn) {
50
42
  updateListeners.add(fn);
51
43
  return () => updateListeners.delete(fn);
52
44
  },
53
-
54
45
  get status() {
55
46
  if (statusRequest) return statusRequest;
56
47
  send({
@@ -58,19 +49,18 @@ async function initCreeveyClientApi() {
58
49
  });
59
50
  return statusRequest = new Promise(resolve => statusResolver = resolve);
60
51
  }
61
-
62
52
  });
63
53
  });
64
54
  ws.addEventListener('message', message => {
65
55
  const data = JSON.parse(message.data);
66
56
  if (data.type == 'update') updateListeners.forEach(fn => fn(data.payload));
67
-
68
57
  if (data.type == 'status') {
69
58
  statusResolver(data.payload);
70
59
  statusResolver = _types.noop;
71
60
  statusRequest = null;
72
61
  }
73
- }); // TODO Reconnect
62
+ });
63
+ // TODO Reconnect
74
64
 
75
65
  return new Promise(resolve => clientApiResolver = resolve);
76
66
  }
@@ -28,17 +28,11 @@ exports.useForceUpdate = useForceUpdate;
28
28
  exports.useLoadImages = useLoadImages;
29
29
  exports.useResizeObserver = useResizeObserver;
30
30
  exports.useTheme = useTheme;
31
-
32
31
  var _theming = require("@storybook/theming");
33
-
34
32
  var _qs = require("qs");
35
-
36
33
  var _react = require("react");
37
-
38
34
  var _types = require("../../types");
39
-
40
35
  const statusUpdatesMap = new Map([[undefined, /(unknown|success|failed|pending|running)/], ['unknown', /(success|failed|pending|running)/], ['success', /(failed|pending|running)/], ['failed', /(pending|running)/], ['pending', /running/]]);
41
-
42
36
  function makeEmptySuiteNode() {
43
37
  let path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
44
38
  return {
@@ -50,13 +44,9 @@ function makeEmptySuiteNode() {
50
44
  children: {}
51
45
  };
52
46
  }
53
-
54
47
  function calcStatus(oldStatus, newStatus) {
55
- var _statusUpdatesMap$get;
56
-
57
- return newStatus && (_statusUpdatesMap$get = statusUpdatesMap.get(oldStatus)) !== null && _statusUpdatesMap$get !== void 0 && _statusUpdatesMap$get.test(newStatus) ? newStatus : oldStatus;
48
+ return newStatus && statusUpdatesMap.get(oldStatus)?.test(newStatus) ? newStatus : oldStatus;
58
49
  }
59
-
60
50
  function getTestPath(test) {
61
51
  const {
62
52
  browser,
@@ -65,34 +55,26 @@ function getTestPath(test) {
65
55
  } = test;
66
56
  return [...storyPath, testName, browser].filter(_types.isDefined);
67
57
  }
68
-
69
58
  function getSuiteByPath(suite, path) {
70
- return path.reduce((suiteOrTest, pathToken) => (0, _types.isTest)(suiteOrTest) ? suiteOrTest : suiteOrTest === null || suiteOrTest === void 0 ? void 0 : suiteOrTest.children[pathToken], suite);
59
+ return path.reduce((suiteOrTest, pathToken) => (0, _types.isTest)(suiteOrTest) ? suiteOrTest : suiteOrTest?.children[pathToken], suite);
71
60
  }
72
-
73
61
  function getTestByPath(suite, path) {
74
- var _getSuiteByPath;
75
-
76
- const test = (_getSuiteByPath = getSuiteByPath(suite, path)) !== null && _getSuiteByPath !== void 0 ? _getSuiteByPath : suite;
62
+ const test = getSuiteByPath(suite, path) ?? suite;
77
63
  return (0, _types.isTest)(test) ? test : null;
78
64
  }
79
-
80
65
  function getTestsByStoryId(suite, storyId) {
81
66
  return Object.values(suite.children).filter(_types.isDefined).flatMap(suiteOrTest => {
82
67
  if ((0, _types.isTest)(suiteOrTest)) return suiteOrTest.storyId === storyId ? suiteOrTest : [];
83
68
  return getTestsByStoryId(suiteOrTest, storyId);
84
69
  }).filter(_types.isDefined);
85
70
  }
86
-
87
71
  function checkTests(suiteOrTest, checked) {
88
72
  suiteOrTest.checked = checked;
89
-
90
73
  if (!(0, _types.isTest)(suiteOrTest)) {
91
74
  suiteOrTest.indeterminate = false;
92
75
  Object.values(suiteOrTest.children).filter(_types.isDefined).forEach(child => checkTests(child, checked));
93
76
  }
94
77
  }
95
-
96
78
  function updateChecked(suite) {
97
79
  const children = Object.values(suite.children).filter(_types.isDefined).filter(child => !child.skip);
98
80
  const checkedEvery = children.every(test => test.checked);
@@ -102,7 +84,6 @@ function updateChecked(suite) {
102
84
  suite.checked = checked;
103
85
  suite.indeterminate = indeterminate;
104
86
  }
105
-
106
87
  function checkSuite(suite, path, checked) {
107
88
  const subSuite = getSuiteByPath(suite, path);
108
89
  if (subSuite) checkTests(subSuite, checked);
@@ -113,7 +94,6 @@ function checkSuite(suite, path, checked) {
113
94
  });
114
95
  updateChecked(suite);
115
96
  }
116
-
117
97
  function treeifyTests(testsById) {
118
98
  const rootSuite = makeEmptySuiteNode();
119
99
  rootSuite.opened = true;
@@ -127,20 +107,18 @@ function treeifyTests(testsById) {
127
107
  if (!subSuite.skip) suite.skip = false;
128
108
  suite.children[token] = subSuite;
129
109
  suite.status = calcStatus(suite.status, subSuite.status);
130
-
131
110
  if ((0, _types.isTest)(subSuite)) {
132
- throw new Error("Suite and Test should not have same path '".concat(JSON.stringify(getTestPath(subSuite)), "'"));
111
+ throw new Error(`Suite and Test should not have same path '${JSON.stringify(getTestPath(subSuite))}'`);
133
112
  }
134
-
135
113
  return subSuite;
136
114
  }, rootSuite);
137
- lastSuite.children[browser] = { ...test,
115
+ lastSuite.children[browser] = {
116
+ ...test,
138
117
  checked: true
139
118
  };
140
119
  });
141
120
  return rootSuite;
142
121
  }
143
-
144
122
  function getCheckedTests(suite) {
145
123
  return Object.values(suite.children).filter(_types.isDefined).flatMap(suiteOrTest => {
146
124
  if ((0, _types.isTest)(suiteOrTest)) return suiteOrTest.checked ? suiteOrTest : [];
@@ -148,16 +126,13 @@ function getCheckedTests(suite) {
148
126
  return getCheckedTests(suiteOrTest);
149
127
  });
150
128
  }
151
-
152
129
  function updateTestStatus(suite, path, update) {
153
- var _suite$children$title;
154
-
155
130
  const title = path.shift();
156
131
  if (!title) return;
157
- const suiteOrTest = (_suite$children$title = suite.children[title]) !== null && _suite$children$title !== void 0 ? _suite$children$title : suite.children[title] = { ...(path.length == 0 ? update : makeEmptySuiteNode([...suite.path, title])),
132
+ const suiteOrTest = suite.children[title] ?? (suite.children[title] = {
133
+ ...(path.length == 0 ? update : makeEmptySuiteNode([...suite.path, title])),
158
134
  checked: suite.checked
159
- };
160
-
135
+ });
161
136
  if ((0, _types.isTest)(suiteOrTest)) {
162
137
  const test = suiteOrTest;
163
138
  const {
@@ -177,7 +152,6 @@ function updateTestStatus(suite, path, update) {
177
152
  const subSuite = suiteOrTest;
178
153
  updateTestStatus(subSuite, path, update);
179
154
  }
180
-
181
155
  suite.skip = Object.values(suite.children).filter(_types.isDefined).map(_ref2 => {
182
156
  let {
183
157
  skip
@@ -191,15 +165,12 @@ function updateTestStatus(suite, path, update) {
191
165
  return status;
192
166
  }).reduce(calcStatus);
193
167
  }
194
-
195
168
  function removeTests(suite, path) {
196
- var _suiteOrTest$children;
197
-
198
169
  const title = path.shift();
199
170
  if (!title) return;
200
171
  const suiteOrTest = suite.children[title];
201
172
  if (suiteOrTest && !(0, _types.isTest)(suiteOrTest)) removeTests(suiteOrTest, path);
202
- if ((0, _types.isTest)(suiteOrTest) || Object.keys((_suiteOrTest$children = suiteOrTest === null || suiteOrTest === void 0 ? void 0 : suiteOrTest.children) !== null && _suiteOrTest$children !== void 0 ? _suiteOrTest$children : {}).length == 0) delete suite.children[title];
173
+ if ((0, _types.isTest)(suiteOrTest) || Object.keys(suiteOrTest?.children ?? {}).length == 0) delete suite.children[title];
203
174
  if (Object.keys(suite.children).length == 0) return;
204
175
  updateChecked(suite);
205
176
  suite.skip = Object.values(suite.children).filter(_types.isDefined).map(_ref4 => {
@@ -215,20 +186,19 @@ function removeTests(suite, path) {
215
186
  return status;
216
187
  }).reduce(calcStatus);
217
188
  }
218
-
219
189
  function filterTests(suite, filter) {
220
190
  const {
221
191
  status,
222
192
  subStrings
223
193
  } = filter;
224
194
  if (!status && !subStrings.length) return suite;
225
- const filteredSuite = { ...suite,
195
+ const filteredSuite = {
196
+ ...suite,
226
197
  children: {}
227
198
  };
228
199
  Object.entries(suite.children).forEach(_ref6 => {
229
200
  let [title, suiteOrTest] = _ref6;
230
201
  if (!suiteOrTest || suiteOrTest.skip) return;
231
-
232
202
  if (!status && subStrings.some(subString => title.toLowerCase().includes(subString))) {
233
203
  filteredSuite.children[title] = suiteOrTest;
234
204
  } else if ((0, _types.isTest)(suiteOrTest)) {
@@ -241,7 +211,6 @@ function filterTests(suite, filter) {
241
211
  });
242
212
  return filteredSuite;
243
213
  }
244
-
245
214
  function openSuite(suite, path, opened) {
246
215
  const subSuite = path.reduce((suiteOrTest, pathToken) => {
247
216
  if (suiteOrTest && !(0, _types.isTest)(suiteOrTest)) {
@@ -251,7 +220,6 @@ function openSuite(suite, path, opened) {
251
220
  }, suite);
252
221
  if (subSuite && !(0, _types.isTest)(subSuite)) subSuite.opened = opened;
253
222
  }
254
-
255
223
  function flattenSuite(suite) {
256
224
  if (!suite.opened) return [];
257
225
  return Object.entries(suite.children).flatMap(_ref7 => {
@@ -262,7 +230,6 @@ function flattenSuite(suite) {
262
230
  }, ...((0, _types.isTest)(subSuite) ? [] : flattenSuite(subSuite))] : [];
263
231
  });
264
232
  }
265
-
266
233
  function countTestsStatus(suite) {
267
234
  let successCount = 0;
268
235
  let failedCount = 0;
@@ -270,7 +237,6 @@ function countTestsStatus(suite) {
270
237
  let pendingCount = 0;
271
238
  const cases = Object.values(suite.children).filter(_types.isDefined);
272
239
  let suiteOrTest;
273
-
274
240
  while (suiteOrTest = cases.pop()) {
275
241
  if ((0, _types.isTest)(suiteOrTest)) {
276
242
  if (suiteOrTest.skip) skippedCount++;
@@ -281,7 +247,6 @@ function countTestsStatus(suite) {
281
247
  cases.push(...Object.values(suiteOrTest.children).filter(_types.isDefined));
282
248
  }
283
249
  }
284
-
285
250
  return {
286
251
  successCount,
287
252
  failedCount,
@@ -289,24 +254,20 @@ function countTestsStatus(suite) {
289
254
  pendingCount
290
255
  };
291
256
  }
292
-
293
257
  function getConnectionUrl() {
294
258
  return [typeof __CREEVEY_SERVER_HOST__ == 'undefined' ? window.location.hostname : __CREEVEY_SERVER_HOST__, typeof __CREEVEY_SERVER_PORT__ == 'undefined' ? window.location.port : __CREEVEY_SERVER_PORT__].filter(Boolean).join(':');
295
259
  }
296
-
297
260
  function getImageUrl(path, imageName) {
298
261
  // path => [kind, story, test, browser]
299
262
  const browser = path.slice(-1)[0];
300
- const imagesUrl = window.location.host ? "".concat(window.location.protocol, "//").concat(getConnectionUrl()).concat(window.location.pathname == '/' ? '/report' : window.location.pathname.split('/').slice(0, -1).join('/'), "/").concat(encodeURI(path.slice(0, -1).join('/'))) : encodeURI(path.slice(0, -1).join('/'));
301
- return imageName == browser ? imagesUrl : "".concat(imagesUrl, "/").concat(encodeURI(browser));
263
+ const imagesUrl = window.location.host ? `${window.location.protocol}//${getConnectionUrl()}${window.location.pathname == '/' ? '/report' : window.location.pathname.split('/').slice(0, -1).join('/')}/${encodeURI(path.slice(0, -1).join('/'))}` : encodeURI(path.slice(0, -1).join('/'));
264
+ return imageName == browser ? imagesUrl : `${imagesUrl}/${encodeURI(browser)}`;
302
265
  }
303
-
304
266
  function getBorderSize(element) {
305
267
  // NOTE Firefox returns empty string for `borderWidth` prop
306
268
  const borderSize = parseFloat(getComputedStyle(element).borderTopWidth);
307
269
  return Number.isNaN(borderSize) ? 0 : borderSize;
308
270
  }
309
-
310
271
  function useLoadImages(s1, s2, s3) {
311
272
  const [loaded, setLoaded] = (0, _react.useState)(false);
312
273
  (0, _react.useEffect)(() => {
@@ -320,13 +281,12 @@ function useLoadImages(s1, s2, s3) {
320
281
  }, [s1, s2, s3]);
321
282
  return loaded;
322
283
  }
284
+
323
285
  /**
324
286
  * Uses the ResizeObserver API to observe changes within the given HTML Element DOM Rect.
325
287
  *
326
288
  * @returns dimensions of element's content box (which means without paddings and border width)
327
289
  */
328
-
329
-
330
290
  function useResizeObserver(elementRef, onResize) {
331
291
  let debounceTimeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 16;
332
292
  const observerRef = (0, _react.useRef)(null);
@@ -334,23 +294,17 @@ function useResizeObserver(elementRef, onResize) {
334
294
  if (!elementRef.current) return;
335
295
  observerRef.current = new ResizeObserver(onResize);
336
296
  observerRef.current.observe(elementRef.current);
337
- return () => {
338
- var _observerRef$current;
339
-
340
- return (_observerRef$current = observerRef.current) === null || _observerRef$current === void 0 ? void 0 : _observerRef$current.disconnect();
341
- };
297
+ return () => observerRef.current?.disconnect();
342
298
  }, [debounceTimeout, elementRef, onResize]);
343
299
  }
344
-
345
300
  function useApplyScale(imageRef, scale, dependency) {
346
301
  (0, _react.useLayoutEffect)(() => {
347
302
  if (!imageRef.current) return;
348
303
  const image = imageRef.current;
349
304
  const borderSize = getBorderSize(image);
350
- image.style.height = "".concat(image.naturalHeight * scale + borderSize * 2, "px");
305
+ image.style.height = `${image.naturalHeight * scale + borderSize * 2}px`;
351
306
  }, [imageRef, scale, dependency]);
352
307
  }
353
-
354
308
  function useCalcScale(diffImageRef, loaded) {
355
309
  const [scale, setScale] = (0, _react.useState)(1);
356
310
  const calcScale = (0, _react.useCallback)(() => {
@@ -364,18 +318,14 @@ function useCalcScale(diffImageRef, loaded) {
364
318
  (0, _react.useLayoutEffect)(calcScale, [calcScale]);
365
319
  return scale;
366
320
  }
367
-
368
321
  const CREEVEY_THEME = 'Creevey_theme';
369
-
370
322
  function isTheme(theme) {
371
323
  return (0, _types.isDefined)(theme) && Object.prototype.hasOwnProperty.call(_theming.themes, theme);
372
324
  }
373
-
374
325
  function initialTheme() {
375
326
  const theme = localStorage.getItem(CREEVEY_THEME);
376
327
  return isTheme(theme) ? theme : 'light';
377
328
  }
378
-
379
329
  function useTheme() {
380
330
  const [theme, setTheme] = (0, _react.useState)(initialTheme());
381
331
  (0, _react.useEffect)(() => {
@@ -383,28 +333,24 @@ function useTheme() {
383
333
  }, [theme]);
384
334
  return [theme, setTheme];
385
335
  }
386
-
387
336
  function setSearchParams(testPath) {
388
- const pageUrl = "?".concat((0, _qs.stringify)({
337
+ const pageUrl = `?${(0, _qs.stringify)({
389
338
  testPath
390
- }));
339
+ })}`;
391
340
  window.history.pushState({
392
341
  testPath
393
342
  }, '', pageUrl);
394
343
  }
395
-
396
344
  function getTestPathFromSearch() {
397
345
  const {
398
346
  testPath
399
- } = (0, _qs.parse)(window.location.search.slice(1)); //@ts-expect-error: This expression is not callable.
400
-
347
+ } = (0, _qs.parse)(window.location.search.slice(1));
348
+ //@ts-expect-error: This expression is not callable.
401
349
  if (Array.isArray(testPath) && testPath.every(token => typeof token == 'string')) {
402
350
  return testPath;
403
351
  }
404
-
405
352
  return [];
406
353
  }
407
-
408
354
  function useForceUpdate() {
409
355
  const [, update] = (0, _react.useState)({});
410
356
  return (0, _react.useCallback)(() => update({}), []);
@@ -4,14 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.viewModes = exports.getViewMode = exports.VIEW_MODE_KEY = void 0;
7
- const VIEW_MODE_KEY = 'Creevey_view_mode';
8
- exports.VIEW_MODE_KEY = VIEW_MODE_KEY;
9
- const viewModes = ['side-by-side', 'swap', 'slide', 'blend'];
10
- exports.viewModes = viewModes;
11
-
7
+ const VIEW_MODE_KEY = exports.VIEW_MODE_KEY = 'Creevey_view_mode';
8
+ const viewModes = exports.viewModes = ['side-by-side', 'swap', 'slide', 'blend'];
12
9
  const getViewMode = () => {
13
10
  const item = localStorage.getItem(VIEW_MODE_KEY);
14
11
  return item && viewModes.includes(item) ? item : 'side-by-side';
15
12
  };
16
-
17
13
  exports.getViewMode = getViewMode;
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkcreevey=self.webpackChunkcreevey||[]).push([[192],{8192:(e,r,a)=>{a.r(r),a.d(r,{SyntaxHighlighter:()=>c.d3,createCopyToClipboardFunction:()=>c.xV,default:()=>c.qG});var c=a(23809)}}]);