creevey 0.9.0-beta.1 → 0.9.0-non-webpack.0

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 (267) hide show
  1. package/AUTHORS +15 -15
  2. package/CHANGELOG.md +1275 -1275
  3. package/LICENSE +21 -21
  4. package/README.md +7 -0
  5. package/addon/README.md +3 -0
  6. package/addon/package.json +4 -0
  7. package/docs/config.md +212 -212
  8. package/docs/grid.md +10 -10
  9. package/docs/tests.md +63 -63
  10. package/jest.config.js +6 -0
  11. package/lib/cjs/cli.js +5 -0
  12. package/lib/cjs/client/addon/Manager.js +418 -0
  13. package/lib/cjs/client/addon/components/Addon.js +76 -0
  14. package/lib/cjs/client/addon/components/Icons.js +42 -0
  15. package/lib/cjs/client/addon/components/Panel.js +68 -0
  16. package/lib/cjs/client/addon/components/TestSelect.js +63 -0
  17. package/lib/cjs/client/addon/components/Tools.js +114 -0
  18. package/lib/cjs/client/addon/decorator.js +11 -0
  19. package/lib/cjs/client/addon/index.js +31 -0
  20. package/lib/cjs/client/addon/preset.js +81 -0
  21. package/lib/cjs/client/addon/readyForCapture.js +12 -0
  22. package/lib/cjs/client/addon/register.js +100 -0
  23. package/lib/cjs/client/addon/utils.js +38 -0
  24. package/lib/cjs/client/addon/withCreevey.js +558 -0
  25. package/lib/cjs/client/shared/components/ImagesView/BlendView.js +85 -0
  26. package/lib/cjs/client/shared/components/ImagesView/ImagesView.js +88 -0
  27. package/lib/cjs/client/shared/components/ImagesView/SideBySideView.js +176 -0
  28. package/lib/cjs/client/shared/components/ImagesView/SlideView.js +179 -0
  29. package/lib/cjs/client/shared/components/ImagesView/SwapView.js +110 -0
  30. package/lib/cjs/client/shared/components/ImagesView/index.js +45 -0
  31. package/lib/cjs/client/shared/components/PageFooter/PageFooter.js +46 -0
  32. package/lib/cjs/client/shared/components/PageFooter/Paging.js +98 -0
  33. package/lib/cjs/client/shared/components/PageHeader/ImagePreview.js +78 -0
  34. package/lib/cjs/client/shared/components/PageHeader/PageHeader.js +144 -0
  35. package/lib/cjs/client/shared/components/ResultsPage.js +173 -0
  36. package/lib/cjs/client/shared/creeveyClientApi.js +107 -0
  37. package/lib/cjs/client/shared/helpers.js +482 -0
  38. package/lib/cjs/client/shared/viewMode.js +17 -0
  39. package/lib/cjs/client/web/142.js +2 -0
  40. package/lib/cjs/client/web/142.js.LICENSE.txt +12 -0
  41. package/lib/cjs/client/web/32.js +1 -0
  42. package/lib/cjs/client/web/551.js +1 -0
  43. package/lib/cjs/client/web/566.js +2 -0
  44. package/lib/cjs/client/web/566.js.LICENSE.txt +31 -0
  45. package/lib/cjs/client/web/691.js +2 -0
  46. package/lib/cjs/client/web/691.js.LICENSE.txt +8 -0
  47. package/lib/cjs/client/web/725.js +1 -0
  48. package/lib/cjs/client/web/index.html +19 -0
  49. package/lib/cjs/client/web/main.js +2 -38
  50. package/lib/cjs/client/web/main.js.LICENSE.txt +49 -0
  51. package/lib/cjs/creevey.js +69 -0
  52. package/lib/cjs/index.js +62 -0
  53. package/lib/cjs/server/config.js +96 -0
  54. package/lib/cjs/server/docker.js +146 -0
  55. package/lib/cjs/server/extract.js +50 -0
  56. package/lib/cjs/server/index.js +83 -0
  57. package/lib/cjs/server/loaders/babel/creevey-plugin.js +86 -0
  58. package/lib/cjs/server/loaders/babel/helpers.js +469 -0
  59. package/lib/cjs/server/loaders/babel/register.js +124 -0
  60. package/lib/cjs/server/loaders/hooks/mdx.js +30 -0
  61. package/lib/cjs/server/loaders/hooks/svelte.js +65 -0
  62. package/lib/cjs/server/loaders/webpack/compile.js +293 -0
  63. package/lib/cjs/server/loaders/webpack/creevey-loader.js +179 -0
  64. package/lib/cjs/server/loaders/webpack/dummy-hmr.js +39 -0
  65. package/lib/cjs/server/loaders/webpack/mdx-loader.js +72 -0
  66. package/lib/cjs/server/loaders/webpack/start.js +41 -0
  67. package/lib/cjs/server/logger.js +48 -0
  68. package/lib/cjs/server/master/api.js +71 -0
  69. package/lib/cjs/server/master/index.js +146 -0
  70. package/lib/cjs/server/master/master.js +57 -0
  71. package/lib/cjs/server/master/pool.js +197 -0
  72. package/lib/cjs/server/master/runner.js +281 -0
  73. package/lib/cjs/server/master/server.js +129 -0
  74. package/lib/cjs/server/messages.js +264 -0
  75. package/lib/cjs/server/selenium/browser.js +672 -0
  76. package/lib/cjs/server/selenium/index.js +31 -0
  77. package/lib/cjs/server/selenium/selenoid.js +172 -0
  78. package/lib/cjs/server/stories.js +159 -0
  79. package/lib/cjs/server/storybook/entry.js +70 -0
  80. package/lib/cjs/server/storybook/helpers.js +159 -0
  81. package/lib/cjs/server/storybook/providers/browser.js +74 -0
  82. package/lib/cjs/server/storybook/providers/hybrid.js +84 -0
  83. package/lib/cjs/server/storybook/providers/nodejs.js +239 -0
  84. package/lib/cjs/server/testsFiles/parser.js +72 -0
  85. package/lib/cjs/server/testsFiles/register.js +48 -0
  86. package/lib/cjs/server/update.js +79 -0
  87. package/lib/cjs/server/utils.js +183 -0
  88. package/lib/cjs/server/worker/chai-image.js +142 -0
  89. package/lib/cjs/server/worker/helpers.js +69 -0
  90. package/lib/cjs/server/worker/index.js +15 -0
  91. package/lib/cjs/server/worker/reporter.js +108 -0
  92. package/lib/cjs/server/worker/worker.js +268 -0
  93. package/lib/cjs/shared/index.js +89 -0
  94. package/lib/cjs/shared/serializeRegExp.js +41 -0
  95. package/lib/cjs/types.js +74 -0
  96. package/lib/esm/cli.js +4 -0
  97. package/lib/esm/client/addon/Manager.js +402 -0
  98. package/lib/esm/client/addon/components/Addon.js +58 -0
  99. package/lib/esm/client/addon/components/Icons.js +27 -0
  100. package/lib/esm/client/addon/components/Panel.js +49 -0
  101. package/lib/esm/client/addon/components/TestSelect.js +49 -0
  102. package/lib/esm/client/addon/components/Tools.js +91 -0
  103. package/lib/esm/client/addon/decorator.js +2 -0
  104. package/lib/esm/client/addon/index.js +2 -0
  105. package/lib/esm/client/addon/preset.js +56 -0
  106. package/lib/esm/client/addon/readyForCapture.js +5 -0
  107. package/lib/esm/client/addon/register.js +79 -0
  108. package/lib/esm/client/addon/utils.js +31 -0
  109. package/lib/esm/client/addon/withCreevey.js +534 -0
  110. package/lib/esm/client/shared/components/ImagesView/BlendView.js +63 -0
  111. package/lib/esm/client/shared/components/ImagesView/ImagesView.js +65 -0
  112. package/lib/esm/client/shared/components/ImagesView/SideBySideView.js +151 -0
  113. package/lib/esm/client/shared/components/ImagesView/SlideView.js +154 -0
  114. package/lib/esm/client/shared/components/ImagesView/SwapView.js +88 -0
  115. package/lib/esm/client/shared/components/ImagesView/index.js +5 -0
  116. package/lib/esm/client/shared/components/PageFooter/PageFooter.js +32 -0
  117. package/lib/esm/client/shared/components/PageFooter/Paging.js +84 -0
  118. package/lib/esm/client/shared/components/PageHeader/ImagePreview.js +64 -0
  119. package/lib/esm/client/shared/components/PageHeader/PageHeader.js +120 -0
  120. package/lib/esm/client/shared/components/ResultsPage.js +143 -0
  121. package/lib/esm/client/shared/creeveyClientApi.js +98 -0
  122. package/lib/esm/client/shared/helpers.js +424 -0
  123. package/lib/esm/client/shared/viewMode.js +6 -0
  124. package/lib/esm/creevey.js +54 -0
  125. package/lib/esm/index.js +5 -0
  126. package/lib/esm/server/config.js +73 -0
  127. package/lib/esm/server/docker.js +123 -0
  128. package/lib/esm/server/extract.js +34 -0
  129. package/lib/esm/server/index.js +64 -0
  130. package/lib/esm/server/loaders/babel/creevey-plugin.js +72 -0
  131. package/lib/esm/server/loaders/babel/helpers.js +452 -0
  132. package/lib/esm/server/loaders/babel/register.js +103 -0
  133. package/lib/esm/server/loaders/hooks/mdx.js +15 -0
  134. package/lib/esm/server/loaders/hooks/svelte.js +49 -0
  135. package/lib/esm/server/loaders/webpack/compile.js +270 -0
  136. package/lib/esm/server/loaders/webpack/creevey-loader.js +158 -0
  137. package/lib/esm/server/loaders/webpack/dummy-hmr.js +32 -0
  138. package/lib/esm/server/loaders/webpack/mdx-loader.js +58 -0
  139. package/lib/esm/server/loaders/webpack/start.js +27 -0
  140. package/lib/esm/server/logger.js +20 -0
  141. package/lib/esm/server/master/api.js +60 -0
  142. package/lib/esm/server/master/index.js +125 -0
  143. package/lib/esm/server/master/master.js +38 -0
  144. package/lib/esm/server/master/pool.js +176 -0
  145. package/lib/esm/server/master/runner.js +259 -0
  146. package/lib/esm/server/master/server.js +105 -0
  147. package/lib/esm/server/messages.js +232 -0
  148. package/lib/esm/server/selenium/browser.js +639 -0
  149. package/lib/esm/server/selenium/index.js +2 -0
  150. package/lib/esm/server/selenium/selenoid.js +149 -0
  151. package/lib/esm/server/stories.js +140 -0
  152. package/lib/esm/server/storybook/entry.js +46 -0
  153. package/lib/esm/server/storybook/helpers.js +98 -0
  154. package/lib/esm/server/storybook/providers/browser.js +60 -0
  155. package/lib/esm/server/storybook/providers/hybrid.js +64 -0
  156. package/lib/esm/server/storybook/providers/nodejs.js +217 -0
  157. package/lib/esm/server/testsFiles/parser.js +50 -0
  158. package/lib/esm/server/testsFiles/register.js +35 -0
  159. package/lib/esm/server/update.js +61 -0
  160. package/lib/esm/server/utils.js +142 -0
  161. package/lib/esm/server/worker/chai-image.js +130 -0
  162. package/lib/esm/server/worker/helpers.js +60 -0
  163. package/lib/esm/server/worker/index.js +1 -0
  164. package/lib/esm/server/worker/reporter.js +86 -0
  165. package/lib/esm/server/worker/worker.js +238 -0
  166. package/lib/esm/shared/index.js +66 -0
  167. package/lib/esm/shared/serializeRegExp.js +23 -0
  168. package/lib/esm/types.js +43 -0
  169. package/lib/types/cli.d.ts +1 -1
  170. package/lib/types/client/addon/Manager.d.ts +37 -37
  171. package/lib/types/client/addon/components/Addon.d.ts +8 -8
  172. package/lib/types/client/addon/components/Icons.d.ts +7 -7
  173. package/lib/types/client/addon/components/Panel.d.ts +9 -9
  174. package/lib/types/client/addon/components/TestSelect.d.ts +8 -9
  175. package/lib/types/client/addon/components/Tools.d.ts +6 -6
  176. package/lib/types/client/addon/decorator.d.ts +1 -1
  177. package/lib/types/client/addon/index.d.ts +2 -0
  178. package/lib/types/client/addon/preset.d.ts +23 -24
  179. package/lib/types/client/addon/readyForCapture.d.ts +6 -6
  180. package/lib/types/client/addon/register.d.ts +3 -3
  181. package/lib/types/client/addon/utils.d.ts +2 -2
  182. package/lib/types/client/addon/withCreevey.d.ts +24 -24
  183. package/lib/types/client/shared/components/ImagesView/BlendView.d.ts +3 -3
  184. package/lib/types/client/shared/components/ImagesView/ImagesView.d.ts +24 -25
  185. package/lib/types/client/shared/components/ImagesView/SideBySideView.d.ts +3 -3
  186. package/lib/types/client/shared/components/ImagesView/SlideView.d.ts +3 -3
  187. package/lib/types/client/shared/components/ImagesView/SwapView.d.ts +3 -3
  188. package/lib/types/client/shared/components/ImagesView/index.d.ts +5 -5
  189. package/lib/types/client/shared/components/PageFooter/PageFooter.d.ts +8 -9
  190. package/lib/types/client/shared/components/PageFooter/Paging.d.ts +7 -8
  191. package/lib/types/client/shared/components/PageHeader/ImagePreview.d.ts +12 -12
  192. package/lib/types/client/shared/components/PageHeader/PageHeader.d.ts +16 -17
  193. package/lib/types/client/shared/components/ResultsPage.d.ts +18 -18
  194. package/lib/types/client/shared/creeveyClientApi.d.ts +9 -9
  195. package/lib/types/client/shared/helpers.d.ts +46 -46
  196. package/lib/types/client/shared/viewMode.d.ts +4 -4
  197. package/lib/types/client/web/CreeveyApp.d.ts +11 -12
  198. package/lib/types/client/web/CreeveyContext.d.ts +11 -11
  199. package/lib/types/client/web/CreeveyLoader.d.ts +2 -3
  200. package/lib/types/client/web/CreeveyView/SideBar/Checkbox.d.ts +19 -19
  201. package/lib/types/client/web/CreeveyView/SideBar/Search.d.ts +6 -6
  202. package/lib/types/client/web/CreeveyView/SideBar/SideBar.d.ts +14 -14
  203. package/lib/types/client/web/CreeveyView/SideBar/SideBarHeader.d.ts +12 -13
  204. package/lib/types/client/web/CreeveyView/SideBar/SuiteLink.d.ts +33 -33
  205. package/lib/types/client/web/CreeveyView/SideBar/TestLink.d.ts +7 -8
  206. package/lib/types/client/web/CreeveyView/SideBar/TestStatusIcon.d.ts +10 -10
  207. package/lib/types/client/web/CreeveyView/SideBar/TestsStatus.d.ts +9 -9
  208. package/lib/types/client/web/CreeveyView/SideBar/Toggle.d.ts +6 -6
  209. package/lib/types/client/web/CreeveyView/SideBar/index.d.ts +1 -1
  210. package/lib/types/client/web/KeyboardEventsContext.d.ts +13 -13
  211. package/lib/types/client/web/index.d.ts +4 -4
  212. package/lib/types/creevey.d.ts +1 -1
  213. package/lib/types/index.d.ts +1 -4
  214. package/lib/types/server/config.d.ts +4 -4
  215. package/lib/types/server/docker.d.ts +7 -7
  216. package/lib/types/server/extract.d.ts +2 -2
  217. package/lib/types/server/index.d.ts +2 -2
  218. package/lib/types/server/loaders/babel/creevey-plugin.d.ts +1 -1
  219. package/lib/types/server/loaders/babel/helpers.d.ts +19 -19
  220. package/lib/types/server/loaders/babel/register.d.ts +5 -5
  221. package/lib/types/server/loaders/hooks/mdx.d.ts +1 -1
  222. package/lib/types/server/loaders/hooks/svelte.d.ts +1 -1
  223. package/lib/types/server/loaders/webpack/compile.d.ts +2 -2
  224. package/lib/types/server/loaders/webpack/creevey-loader.d.ts +4 -2
  225. package/lib/types/server/loaders/webpack/dummy-hmr.d.ts +10 -10
  226. package/lib/types/server/loaders/webpack/mdx-loader.d.ts +6 -6
  227. package/lib/types/server/loaders/webpack/start.d.ts +1 -1
  228. package/lib/types/server/logger.d.ts +10 -6
  229. package/lib/types/server/master/api.d.ts +7 -7
  230. package/lib/types/server/master/index.d.ts +3 -3
  231. package/lib/types/server/master/master.d.ts +7 -7
  232. package/lib/types/server/master/pool.d.ts +31 -31
  233. package/lib/types/server/master/runner.d.ts +26 -26
  234. package/lib/types/server/master/server.d.ts +2 -2
  235. package/lib/types/server/messages.d.ts +27 -27
  236. package/lib/types/server/selenium/browser.d.ts +17 -17
  237. package/lib/types/server/selenium/index.d.ts +2 -2
  238. package/lib/types/server/selenium/selenoid.d.ts +3 -3
  239. package/lib/types/server/stories.d.ts +8 -8
  240. package/lib/types/server/storybook/entry.d.ts +18 -18
  241. package/lib/types/server/storybook/helpers.d.ts +24 -24
  242. package/lib/types/server/storybook/providers/browser.d.ts +4 -4
  243. package/lib/types/server/storybook/providers/hybrid.d.ts +4 -4
  244. package/lib/types/server/storybook/providers/nodejs.d.ts +9 -9
  245. package/lib/types/server/testsFiles/parser.d.ts +12 -12
  246. package/lib/types/server/testsFiles/register.d.ts +2 -2
  247. package/lib/types/server/update.d.ts +2 -2
  248. package/lib/types/server/utils.d.ts +20 -20
  249. package/lib/types/server/worker/chai-image.d.ts +6 -6
  250. package/lib/types/server/worker/helpers.d.ts +8 -8
  251. package/lib/types/server/worker/index.d.ts +1 -1
  252. package/lib/types/server/worker/reporter.d.ts +8 -8
  253. package/lib/types/server/worker/worker.d.ts +4 -4
  254. package/lib/types/{shared.d.ts → shared/index.d.ts} +7 -16
  255. package/lib/types/shared/serializeRegExp.d.ts +9 -0
  256. package/lib/types/types.d.ts +490 -489
  257. package/package.json +115 -102
  258. package/preset.js +9 -9
  259. package/types/babel__register.d.ts +1 -1
  260. package/types/chai.d.ts +12 -12
  261. package/types/event-source-polyfill.d.ts +6 -6
  262. package/types/mdx.d.ts +3 -2
  263. package/types/mocha.d.ts +20 -20
  264. package/types/png.d.ts +4 -4
  265. package/lib/cjs/client/web/1.js +0 -13
  266. package/lib/cjs/client/web/2.js +0 -1
  267. package/storybook-static/stories.json +0 -21
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ImagesView = ImagesView;
7
+ exports.getBorderColor = getBorderColor;
8
+ exports.themeBorderColors = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _SideBySideView = require("./SideBySideView");
13
+
14
+ var _SwapView = require("./SwapView");
15
+
16
+ var _SlideView = require("./SlideView");
17
+
18
+ var _BlendView = require("./BlendView");
19
+
20
+ var _theming = require("@storybook/theming");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ var themeBorderColors = {
25
+ actual: 'negative',
26
+ expect: 'positive',
27
+ diff: 'secondary'
28
+ };
29
+ exports.themeBorderColors = themeBorderColors;
30
+
31
+ var isColor = function isColor(theme, color) {
32
+ return color in theme.color;
33
+ };
34
+
35
+ function getBorderColor(theme, color) {
36
+ return isColor(theme, color) ? theme.color[color] : color;
37
+ }
38
+
39
+ var views = {
40
+ 'side-by-side': _SideBySideView.SideBySideView,
41
+ swap: _SwapView.SwapView,
42
+ slide: _SlideView.SlideView,
43
+ blend: _BlendView.BlendView
44
+ };
45
+
46
+ var Container = _theming.styled.div({
47
+ height: '100%',
48
+ display: 'flex',
49
+ textAlign: 'center',
50
+ alignItems: 'center',
51
+ justifyContent: 'center',
52
+ padding: '0 20px'
53
+ });
54
+
55
+ var ImageLink = _theming.styled.a({
56
+ lineHeight: 0
57
+ });
58
+
59
+ var ActualImage = (0, _theming.withTheme)(_theming.styled.img(function (_ref) {
60
+ var theme = _ref.theme;
61
+ return {
62
+ border: "1px solid ".concat(getBorderColor(theme, themeBorderColors.expect)),
63
+ maxWidth: '100%'
64
+ };
65
+ }));
66
+
67
+ function ImagesView(_ref2) {
68
+ var url = _ref2.url,
69
+ image = _ref2.image,
70
+ canApprove = _ref2.canApprove,
71
+ mode = _ref2.mode;
72
+ var ViewComponent = views[mode];
73
+ var actual = image.actual,
74
+ diff = image.diff,
75
+ expect = image.expect;
76
+ return /*#__PURE__*/_react.default.createElement(Container, null, canApprove && diff && expect ? /*#__PURE__*/_react.default.createElement(ViewComponent, {
77
+ actual: "".concat(url, "/").concat(actual),
78
+ diff: "".concat(url, "/").concat(diff),
79
+ expect: "".concat(url, "/").concat(expect)
80
+ }) : /*#__PURE__*/_react.default.createElement(ImageLink, {
81
+ href: "".concat(url, "/").concat(actual),
82
+ target: "_blank",
83
+ rel: "noopener noreferrer"
84
+ }, /*#__PURE__*/_react.default.createElement(ActualImage, {
85
+ alt: "actual",
86
+ src: "".concat(url, "/").concat(actual)
87
+ })));
88
+ }
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+
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
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SideBySideView = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _ImagesView = require("./ImagesView");
13
+
14
+ var _theming = require("@storybook/theming");
15
+
16
+ var _helpers = require("../../helpers");
17
+
18
+ var _components = require("@storybook/components");
19
+
20
+ var _readyForCapture = require("../../../addon/readyForCapture");
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
27
+
28
+ 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."); }
29
+
30
+ 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); }
31
+
32
+ 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; }
33
+
34
+ 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; }
35
+
36
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
37
+
38
+ var Container = _theming.styled.div({
39
+ display: 'flex',
40
+ flexWrap: 'nowrap',
41
+ alignItems: 'center',
42
+ justifyContent: 'center',
43
+ height: '100%',
44
+ width: '100%'
45
+ });
46
+
47
+ var ImagesLayout = _theming.styled.div(function (_ref) {
48
+ var layout = _ref.layout;
49
+ return {
50
+ display: 'flex',
51
+ alignItems: 'flex-start',
52
+ justifyContent: 'flex-start',
53
+ flexDirection: layout == 'horizontal' ? 'row' : 'column',
54
+ '& > :not(:first-of-type)': {
55
+ marginLeft: layout == 'horizontal' ? '20px' : 0,
56
+ marginTop: layout == 'horizontal' ? 0 : '20px'
57
+ }
58
+ };
59
+ });
60
+
61
+ var ImageLink = _theming.styled.a({
62
+ lineHeight: 0,
63
+ flexShrink: 0
64
+ });
65
+
66
+ var ImageDiffLink = _theming.styled.a({
67
+ lineHeight: 0
68
+ });
69
+
70
+ var Image = _theming.styled.img(function (_ref2) {
71
+ var borderColor = _ref2.borderColor;
72
+ return {
73
+ boxSizing: 'border-box',
74
+ border: "1px solid ".concat(borderColor),
75
+ maxWidth: '100%',
76
+ flexShrink: 0
77
+ };
78
+ });
79
+
80
+ var DiffImage = (0, _theming.styled)(Image)({
81
+ flexShrink: 1
82
+ });
83
+ var SideBySideView = (0, _theming.withTheme)(function (_ref3) {
84
+ var actual = _ref3.actual,
85
+ diff = _ref3.diff,
86
+ expect = _ref3.expect,
87
+ theme = _ref3.theme;
88
+
89
+ var _useState = (0, _react.useState)('horizontal'),
90
+ _useState2 = _slicedToArray(_useState, 2),
91
+ layout = _useState2[0],
92
+ setLayout = _useState2[1];
93
+
94
+ var _useState3 = (0, _react.useState)(1),
95
+ _useState4 = _slicedToArray(_useState3, 2),
96
+ scale = _useState4[0],
97
+ setScale = _useState4[1];
98
+
99
+ var containerRef = (0, _react.useRef)(null);
100
+ var expectImageRef = (0, _react.useRef)(null);
101
+ var diffImageRef = (0, _react.useRef)(null);
102
+ var actualImageRef = (0, _react.useRef)(null);
103
+ var loaded = (0, _helpers.useLoadImages)(expect, diff, actual);
104
+ var calcScale = (0, _react.useCallback)(function () {
105
+ var containerElement = containerRef.current;
106
+ var expectImage = expectImageRef.current;
107
+ var diffImage = diffImageRef.current;
108
+ var actualImage = actualImageRef.current;
109
+ if (!containerElement || !expectImage || !actualImage || !diffImage || !loaded) return setScale(1);
110
+ var borderSize = (0, _helpers.getBorderSize)(diffImage);
111
+
112
+ if (layout == 'vertical') {
113
+ var ratio = (diffImage.getBoundingClientRect().width - borderSize * 2) / diffImage.naturalWidth;
114
+ setScale(Math.min(1, ratio));
115
+ }
116
+
117
+ if (layout == 'horizontal') {
118
+ var _ratio = // NOTE: 40px because we have two margins by 20px and 6px for borders
119
+ (containerElement.getBoundingClientRect().width - 40 - borderSize * 6) / [expectImage, diffImage, actualImage].map(function (image) {
120
+ return image.naturalWidth;
121
+ }).reduce(function (a, b) {
122
+ return a + b;
123
+ }, 0);
124
+
125
+ setScale(Math.min(1, _ratio));
126
+ }
127
+ }, [loaded, layout]);
128
+ (0, _helpers.useResizeObserver)(containerRef, calcScale);
129
+ (0, _react.useLayoutEffect)(calcScale, [calcScale]);
130
+ (0, _react.useLayoutEffect)(function () {
131
+ var diffImage = diffImageRef.current;
132
+ if (!diffImage || !loaded) return;
133
+ var ratio = diffImage.naturalWidth / diffImage.naturalHeight;
134
+ setLayout(ratio >= 2 ? 'vertical' : 'horizontal');
135
+ }, [loaded]);
136
+ (0, _helpers.useApplyScale)(expectImageRef, scale);
137
+ (0, _helpers.useApplyScale)(actualImageRef, scale);
138
+ (0, _react.useEffect)(function () {
139
+ if (loaded) (0, _readyForCapture.readyForCapture)();
140
+ }, [loaded]);
141
+ return /*#__PURE__*/_react.default.createElement(Container, {
142
+ ref: containerRef
143
+ }, loaded ? /*#__PURE__*/_react.default.createElement(ImagesLayout, {
144
+ layout: layout
145
+ }, /*#__PURE__*/_react.default.createElement(ImageLink, {
146
+ href: expect,
147
+ target: "_blank",
148
+ rel: "noopener noreferrer"
149
+ }, /*#__PURE__*/_react.default.createElement(Image, {
150
+ ref: expectImageRef,
151
+ borderColor: (0, _ImagesView.getBorderColor)(theme, _ImagesView.themeBorderColors.expect),
152
+ alt: "expect",
153
+ src: expect
154
+ })), /*#__PURE__*/_react.default.createElement(ImageDiffLink, {
155
+ href: diff,
156
+ target: "_blank",
157
+ rel: "noopener noreferrer"
158
+ }, /*#__PURE__*/_react.default.createElement(DiffImage, {
159
+ ref: diffImageRef,
160
+ borderColor: (0, _ImagesView.getBorderColor)(theme, _ImagesView.themeBorderColors.diff),
161
+ alt: "diff",
162
+ src: diff
163
+ })), /*#__PURE__*/_react.default.createElement(ImageLink, {
164
+ href: actual,
165
+ target: "_blank",
166
+ rel: "noopener noreferrer"
167
+ }, /*#__PURE__*/_react.default.createElement(Image, {
168
+ ref: actualImageRef,
169
+ borderColor: (0, _ImagesView.getBorderColor)(theme, _ImagesView.themeBorderColors.actual),
170
+ alt: "actual",
171
+ src: actual
172
+ }))) : /*#__PURE__*/_react.default.createElement(_components.Loader, {
173
+ size: 64
174
+ }));
175
+ });
176
+ exports.SideBySideView = SideBySideView;
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
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
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SlideView = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _theming = require("@storybook/theming");
13
+
14
+ var _ImagesView = require("./ImagesView");
15
+
16
+ var _helpers = require("../../helpers");
17
+
18
+ var _components = require("@storybook/components");
19
+
20
+ var _readyForCapture = require("../../../addon/readyForCapture");
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
27
+
28
+ 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."); }
29
+
30
+ 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); }
31
+
32
+ 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; }
33
+
34
+ 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; }
35
+
36
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
37
+
38
+ var Container = _theming.styled.div({
39
+ position: 'relative',
40
+ display: 'flex'
41
+ });
42
+
43
+ var Input = _theming.styled.input({
44
+ position: 'absolute',
45
+ cursor: 'ew-resize',
46
+ appearance: 'none',
47
+ background: 'none',
48
+ boxShadow: 'none',
49
+ outline: 'none',
50
+ height: '100%',
51
+ width: '100%',
52
+ margin: '0',
53
+ zIndex: 1,
54
+ '&::-webkit-slider-runnable-track': {
55
+ height: '100%'
56
+ },
57
+ '&::-webkit-slider-thumb': {
58
+ boxShadow: '0 0 0 0.5px #888',
59
+ height: '100%',
60
+ width: '0px',
61
+ appearance: 'none'
62
+ },
63
+ '&::-moz-focus-outer': {
64
+ border: '0'
65
+ },
66
+ '&::-moz-range-track': {
67
+ height: '0'
68
+ },
69
+ '&::-moz-range-thumb': {
70
+ border: 'none',
71
+ boxShadow: '0 0 0 0.5px #888',
72
+ height: '100%',
73
+ width: '0px'
74
+ }
75
+ });
76
+
77
+ var ImageContainer = _theming.styled.div({
78
+ position: 'absolute',
79
+ width: '100%',
80
+ height: '100%',
81
+ overflow: 'hidden'
82
+ });
83
+
84
+ var ImageWrapper = (0, _theming.withTheme)(_theming.styled.div(function (_ref) {
85
+ var theme = _ref.theme;
86
+ return {
87
+ background: theme.base == 'light' ? theme.color.mediumlight : theme.color.darker,
88
+ position: 'relative',
89
+ width: '100%',
90
+ height: '100%',
91
+ display: 'flex'
92
+ };
93
+ }));
94
+
95
+ var BaseImage = _theming.styled.img(function (_ref2) {
96
+ var borderColor = _ref2.borderColor;
97
+ return {
98
+ boxSizing: 'border-box',
99
+ border: "1px solid ".concat(borderColor),
100
+ maxWidth: '100%'
101
+ };
102
+ });
103
+
104
+ var Image = (0, _theming.styled)(BaseImage)({
105
+ position: 'absolute'
106
+ });
107
+ var DiffImage = (0, _theming.styled)(BaseImage)({
108
+ opacity: '0'
109
+ });
110
+ var SlideView = (0, _theming.withTheme)(function (_ref3) {
111
+ var actual = _ref3.actual,
112
+ diff = _ref3.diff,
113
+ expect = _ref3.expect,
114
+ theme = _ref3.theme;
115
+
116
+ var _useState = (0, _react.useState)(0),
117
+ _useState2 = _slicedToArray(_useState, 2),
118
+ step = _useState2[0],
119
+ setStep = _useState2[1];
120
+
121
+ var expectedImageContainerRef = (0, _react.useRef)(null);
122
+ var expectedImageWrapperRef = (0, _react.useRef)(null);
123
+ var expectImageRef = (0, _react.useRef)(null);
124
+ var diffImageRef = (0, _react.useRef)(null);
125
+ var actualImageRef = (0, _react.useRef)(null);
126
+ var loaded = (0, _helpers.useLoadImages)(expect, diff, actual);
127
+ var scale = (0, _helpers.useCalcScale)(diffImageRef, loaded);
128
+ (0, _helpers.useApplyScale)(expectImageRef, scale);
129
+ (0, _helpers.useApplyScale)(actualImageRef, scale);
130
+ var handleSlide = (0, _react.useCallback)(function (event) {
131
+ if (!expectedImageContainerRef.current || !expectedImageWrapperRef.current) return;
132
+ var offset = Number(event.target.value);
133
+ expectedImageContainerRef.current.style.right = "".concat(100 - offset, "%");
134
+ expectedImageWrapperRef.current.style.left = "".concat(100 - offset, "%");
135
+ }, []);
136
+ (0, _react.useLayoutEffect)(function () {
137
+ if (loaded && diffImageRef.current) setStep(100 / diffImageRef.current.getBoundingClientRect().width);
138
+ }, [loaded, scale]);
139
+ (0, _react.useLayoutEffect)(function () {
140
+ if (loaded && expectedImageContainerRef.current && expectedImageWrapperRef.current) {
141
+ expectedImageContainerRef.current.style.right = '100%';
142
+ expectedImageWrapperRef.current.style.left = '100%';
143
+ }
144
+ }, [loaded]);
145
+ (0, _react.useEffect)(function () {
146
+ if (loaded) (0, _readyForCapture.readyForCapture)();
147
+ }, [loaded]);
148
+ return loaded ? /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(Input, {
149
+ "data-testid": "slider",
150
+ type: "range",
151
+ min: 0,
152
+ max: 100,
153
+ defaultValue: 0,
154
+ step: step,
155
+ onChange: handleSlide
156
+ }), /*#__PURE__*/_react.default.createElement(ImageContainer, null, /*#__PURE__*/_react.default.createElement(ImageWrapper, null, /*#__PURE__*/_react.default.createElement(Image, {
157
+ ref: actualImageRef,
158
+ borderColor: (0, _ImagesView.getBorderColor)(theme, _ImagesView.themeBorderColors.actual),
159
+ alt: "actual",
160
+ src: actual
161
+ }))), /*#__PURE__*/_react.default.createElement(ImageContainer, {
162
+ ref: expectedImageContainerRef
163
+ }, /*#__PURE__*/_react.default.createElement(ImageWrapper, {
164
+ ref: expectedImageWrapperRef
165
+ }, /*#__PURE__*/_react.default.createElement(Image, {
166
+ ref: expectImageRef,
167
+ borderColor: (0, _ImagesView.getBorderColor)(theme, _ImagesView.themeBorderColors.expect),
168
+ alt: "expect",
169
+ src: expect
170
+ }))), /*#__PURE__*/_react.default.createElement(DiffImage, {
171
+ ref: diffImageRef,
172
+ borderColor: 'transparent',
173
+ alt: "diff",
174
+ src: diff
175
+ })) : /*#__PURE__*/_react.default.createElement(_components.Loader, {
176
+ size: 64
177
+ });
178
+ });
179
+ exports.SlideView = SlideView;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
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
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SwapView = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _ImagesView = require("./ImagesView");
13
+
14
+ var _theming = require("@storybook/theming");
15
+
16
+ var _helpers = require("../../helpers");
17
+
18
+ var _components = require("@storybook/components");
19
+
20
+ var _readyForCapture = require("../../../addon/readyForCapture");
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
27
+
28
+ 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."); }
29
+
30
+ 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); }
31
+
32
+ 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; }
33
+
34
+ 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; }
35
+
36
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
37
+
38
+ var Container = _theming.styled.div({
39
+ position: 'relative',
40
+ display: 'flex'
41
+ });
42
+
43
+ var BaseImage = _theming.styled.img(function (_ref) {
44
+ var borderColor = _ref.borderColor;
45
+ return {
46
+ boxSizing: 'border-box',
47
+ border: "1px solid ".concat(borderColor),
48
+ maxWidth: '100%'
49
+ };
50
+ });
51
+
52
+ var Image = (0, _theming.styled)(BaseImage)({
53
+ position: 'absolute'
54
+ });
55
+ var DiffImage = (0, _theming.styled)(BaseImage)({
56
+ cursor: 'pointer',
57
+ outline: 'none',
58
+ opacity: 0,
59
+ zIndex: 1
60
+ });
61
+ var SwapView = (0, _theming.withTheme)(function (_ref2) {
62
+ var theme = _ref2.theme,
63
+ expect = _ref2.expect,
64
+ actual = _ref2.actual,
65
+ diff = _ref2.diff;
66
+
67
+ var _useState = (0, _react.useState)('actual'),
68
+ _useState2 = _slicedToArray(_useState, 2),
69
+ image = _useState2[0],
70
+ setImage = _useState2[1];
71
+
72
+ var expectImageRef = (0, _react.useRef)(null);
73
+ var diffImageRef = (0, _react.useRef)(null);
74
+ var actualImageRef = (0, _react.useRef)(null);
75
+ var loaded = (0, _helpers.useLoadImages)(expect, diff, actual);
76
+ var scale = (0, _helpers.useCalcScale)(diffImageRef, loaded);
77
+ (0, _helpers.useApplyScale)(expectImageRef, scale, image);
78
+ (0, _helpers.useApplyScale)(actualImageRef, scale, image);
79
+ var handleChangeView = (0, _react.useCallback)(function () {
80
+ return setImage(function (prevImage) {
81
+ return prevImage == 'actual' ? 'expect' : 'actual';
82
+ });
83
+ }, []);
84
+ (0, _react.useEffect)(function () {
85
+ if (loaded) (0, _readyForCapture.readyForCapture)();
86
+ }, [loaded]);
87
+ return loaded ? /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(Image, {
88
+ ref: expectImageRef,
89
+ borderColor: (0, _ImagesView.getBorderColor)(theme, _ImagesView.themeBorderColors.expect),
90
+ alt: 'expect',
91
+ src: expect,
92
+ hidden: image != 'expect'
93
+ }), /*#__PURE__*/_react.default.createElement(DiffImage, {
94
+ ref: diffImageRef,
95
+ borderColor: 'transparent',
96
+ tabIndex: 0,
97
+ alt: "diff",
98
+ src: diff,
99
+ onClick: handleChangeView
100
+ }), /*#__PURE__*/_react.default.createElement(Image, {
101
+ ref: actualImageRef,
102
+ borderColor: (0, _ImagesView.getBorderColor)(theme, _ImagesView.themeBorderColors.actual),
103
+ alt: 'actual',
104
+ src: actual,
105
+ hidden: image != 'actual'
106
+ })) : /*#__PURE__*/_react.default.createElement(_components.Loader, {
107
+ size: 64
108
+ });
109
+ });
110
+ exports.SwapView = SwapView;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "BlendView", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _BlendView.BlendView;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ImagesView", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _ImagesView.ImagesView;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "SideBySideView", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _SideBySideView.SideBySideView;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "SlideView", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _SlideView.SlideView;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "SwapView", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _SwapView.SwapView;
34
+ }
35
+ });
36
+
37
+ var _ImagesView = require("./ImagesView");
38
+
39
+ var _BlendView = require("./BlendView");
40
+
41
+ var _SideBySideView = require("./SideBySideView");
42
+
43
+ var _SlideView = require("./SlideView");
44
+
45
+ var _SwapView = require("./SwapView");
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PageFooter = PageFooter;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _Paging = require("./Paging");
11
+
12
+ var _theming = require("@storybook/theming");
13
+
14
+ var _components = require("@storybook/components");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ var Container = (0, _theming.withTheme)(_theming.styled.div(function (_ref) {
19
+ var theme = _ref.theme;
20
+ return {
21
+ display: 'flex',
22
+ padding: '20px',
23
+ justifyContent: 'space-between',
24
+ background: theme.background.content
25
+ };
26
+ }));
27
+ var StyledButton = (0, _theming.styled)(_components.Button)({
28
+ transform: 'none'
29
+ });
30
+
31
+ function PageFooter(_ref2) {
32
+ var canApprove = _ref2.canApprove,
33
+ retriesCount = _ref2.retriesCount,
34
+ retry = _ref2.retry,
35
+ onRetryChange = _ref2.onRetryChange,
36
+ onApprove = _ref2.onApprove;
37
+ return /*#__PURE__*/_react.default.createElement(Container, null, /*#__PURE__*/_react.default.createElement(_Paging.Paging, {
38
+ activePage: retry,
39
+ onPageChange: onRetryChange,
40
+ pagesCount: retriesCount
41
+ }), canApprove ? /*#__PURE__*/_react.default.createElement(StyledButton, {
42
+ secondary: true,
43
+ outline: true,
44
+ onClick: onApprove
45
+ }, 'Approve') : null);
46
+ }