@ndla/ui 34.6.1 → 34.6.3

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 (153) hide show
  1. package/es/Article/Article.js +11 -6
  2. package/es/Aside/Aside.js +5 -2
  3. package/es/CopyParagraphButton/CopyParagraphButtonV2.js +85 -0
  4. package/es/CopyParagraphButton/index.js +2 -1
  5. package/es/Embed/AudioEmbed.js +254 -0
  6. package/es/Embed/BrightcoveEmbed.js +250 -0
  7. package/es/Embed/ConceptEmbed.js +358 -0
  8. package/es/Embed/ConceptListEmbed.js +71 -0
  9. package/es/Embed/ContentLinkEmbed.js +42 -0
  10. package/es/Embed/ExternalEmbed.js +91 -0
  11. package/es/Embed/FootnoteEmbed.js +32 -0
  12. package/es/Embed/H5pEmbed.js +87 -0
  13. package/es/Embed/IframeEmbed.js +83 -0
  14. package/es/Embed/ImageEmbed.js +322 -0
  15. package/es/Embed/RelatedContentEmbed.js +58 -0
  16. package/es/Embed/UnknownEmbed.js +27 -0
  17. package/es/Embed/conceptComponents.js +282 -0
  18. package/es/Embed/index.js +21 -0
  19. package/es/FactBox/FactBoxV2.js +90 -0
  20. package/es/FactBox/index.js +1 -0
  21. package/es/Figure/Figure.js +8 -5
  22. package/es/Figure/FigureLicenseDialogContent.js +72 -0
  23. package/es/FileList/FileListV2.js +47 -0
  24. package/es/FileList/FileV2.js +34 -0
  25. package/es/FileList/PdfFile.js +25 -0
  26. package/es/FileList/index.js +3 -0
  27. package/es/Notion/Notion.js +5 -5
  28. package/es/Notion/NotionVisualElement.js +2 -2
  29. package/es/RelatedArticleList/RelatedArticleV2.js +101 -0
  30. package/es/RelatedArticleList/index.js +2 -1
  31. package/es/Table/Table.js +95 -8
  32. package/es/all.css +1 -1
  33. package/es/index.js +5 -4
  34. package/es/locale/messages-en.js +11 -1
  35. package/es/locale/messages-nb.js +11 -1
  36. package/es/locale/messages-nn.js +11 -1
  37. package/es/locale/messages-se.js +11 -1
  38. package/es/locale/messages-sma.js +11 -1
  39. package/lib/Article/Article.d.ts +2 -1
  40. package/lib/Article/Article.js +11 -6
  41. package/lib/Aside/Aside.d.ts +2 -1
  42. package/lib/Aside/Aside.js +5 -2
  43. package/lib/CopyParagraphButton/CopyParagraphButtonV2.d.ts +14 -0
  44. package/lib/CopyParagraphButton/CopyParagraphButtonV2.js +84 -0
  45. package/lib/CopyParagraphButton/index.d.ts +2 -1
  46. package/lib/CopyParagraphButton/index.js +7 -0
  47. package/lib/Embed/AudioEmbed.d.ts +20 -0
  48. package/lib/Embed/AudioEmbed.js +252 -0
  49. package/lib/Embed/BrightcoveEmbed.d.ts +16 -0
  50. package/lib/Embed/BrightcoveEmbed.js +250 -0
  51. package/lib/Embed/ConceptEmbed.d.ts +19 -0
  52. package/lib/Embed/ConceptEmbed.js +358 -0
  53. package/lib/Embed/ConceptListEmbed.d.ts +13 -0
  54. package/lib/Embed/ConceptListEmbed.js +70 -0
  55. package/lib/Embed/ContentLinkEmbed.d.ts +14 -0
  56. package/lib/Embed/ContentLinkEmbed.js +50 -0
  57. package/lib/Embed/ExternalEmbed.d.ts +14 -0
  58. package/lib/Embed/ExternalEmbed.js +90 -0
  59. package/lib/Embed/FootnoteEmbed.d.ts +13 -0
  60. package/lib/Embed/FootnoteEmbed.js +39 -0
  61. package/lib/Embed/H5pEmbed.d.ts +14 -0
  62. package/lib/Embed/H5pEmbed.js +86 -0
  63. package/lib/Embed/IframeEmbed.d.ts +14 -0
  64. package/lib/Embed/IframeEmbed.js +91 -0
  65. package/lib/Embed/ImageEmbed.d.ts +37 -0
  66. package/lib/Embed/ImageEmbed.js +326 -0
  67. package/lib/Embed/RelatedContentEmbed.d.ts +16 -0
  68. package/lib/Embed/RelatedContentEmbed.js +64 -0
  69. package/lib/Embed/UnknownEmbed.d.ts +13 -0
  70. package/lib/Embed/UnknownEmbed.js +35 -0
  71. package/lib/Embed/conceptComponents.d.ts +32 -0
  72. package/lib/Embed/conceptComponents.js +280 -0
  73. package/lib/Embed/index.d.ts +20 -0
  74. package/lib/Embed/index.js +97 -0
  75. package/lib/FactBox/FactBoxV2.d.ts +13 -0
  76. package/lib/FactBox/FactBoxV2.js +92 -0
  77. package/lib/FactBox/index.d.ts +1 -0
  78. package/lib/FactBox/index.js +7 -0
  79. package/lib/Figure/Figure.d.ts +5 -2
  80. package/lib/Figure/Figure.js +8 -5
  81. package/lib/Figure/FigureLicenseDialogContent.d.ts +22 -0
  82. package/lib/Figure/FigureLicenseDialogContent.js +71 -0
  83. package/lib/FileList/FileListV2.d.ts +13 -0
  84. package/lib/FileList/FileListV2.js +46 -0
  85. package/lib/FileList/FileV2.d.ts +16 -0
  86. package/lib/FileList/FileV2.js +42 -0
  87. package/lib/FileList/PdfFile.d.ts +13 -0
  88. package/lib/FileList/PdfFile.js +31 -0
  89. package/lib/FileList/index.d.ts +3 -0
  90. package/lib/FileList/index.js +21 -0
  91. package/lib/Notion/Notion.js +5 -5
  92. package/lib/Notion/NotionVisualElement.d.ts +1 -1
  93. package/lib/Notion/NotionVisualElement.js +2 -2
  94. package/lib/RelatedArticleList/RelatedArticleV2.d.ts +25 -0
  95. package/lib/RelatedArticleList/RelatedArticleV2.js +101 -0
  96. package/lib/RelatedArticleList/index.d.ts +2 -1
  97. package/lib/RelatedArticleList/index.js +7 -0
  98. package/lib/Table/Table.js +98 -8
  99. package/lib/all.css +1 -1
  100. package/lib/index.d.ts +5 -4
  101. package/lib/index.js +117 -2
  102. package/lib/locale/messages-en.d.ts +10 -0
  103. package/lib/locale/messages-en.js +11 -1
  104. package/lib/locale/messages-nb.d.ts +10 -0
  105. package/lib/locale/messages-nb.js +11 -1
  106. package/lib/locale/messages-nn.d.ts +10 -0
  107. package/lib/locale/messages-nn.js +11 -1
  108. package/lib/locale/messages-se.d.ts +10 -0
  109. package/lib/locale/messages-se.js +11 -1
  110. package/lib/locale/messages-sma.d.ts +10 -0
  111. package/lib/locale/messages-sma.js +11 -1
  112. package/lib/types.d.ts +1 -1
  113. package/package.json +16 -12
  114. package/src/Article/Article.tsx +8 -3
  115. package/src/Aside/Aside.tsx +9 -1
  116. package/src/Aside/component.aside.scss +3 -0
  117. package/src/CopyParagraphButton/CopyParagraphButtonV2.tsx +84 -0
  118. package/src/CopyParagraphButton/index.tsx +2 -1
  119. package/src/Embed/AudioEmbed.tsx +249 -0
  120. package/src/Embed/BrightcoveEmbed.tsx +203 -0
  121. package/src/Embed/ConceptEmbed.tsx +408 -0
  122. package/src/Embed/ConceptListEmbed.tsx +64 -0
  123. package/src/Embed/ContentLinkEmbed.tsx +41 -0
  124. package/src/Embed/ExternalEmbed.tsx +80 -0
  125. package/src/Embed/FootnoteEmbed.tsx +30 -0
  126. package/src/Embed/H5pEmbed.tsx +74 -0
  127. package/src/Embed/IframeEmbed.tsx +84 -0
  128. package/src/Embed/ImageEmbed.tsx +314 -0
  129. package/src/Embed/RelatedContentEmbed.tsx +62 -0
  130. package/src/Embed/UnknownEmbed.tsx +27 -0
  131. package/src/Embed/conceptComponents.tsx +393 -0
  132. package/src/Embed/index.ts +21 -0
  133. package/src/FactBox/FactBoxV2.tsx +56 -0
  134. package/src/FactBox/index.ts +2 -0
  135. package/src/Figure/Figure.tsx +28 -15
  136. package/src/Figure/FigureLicenseDialogContent.tsx +80 -0
  137. package/src/Figure/component.figure.scss +0 -1
  138. package/src/FileList/FileListV2.tsx +58 -0
  139. package/src/FileList/FileV2.tsx +35 -0
  140. package/src/FileList/PdfFile.tsx +25 -0
  141. package/src/FileList/index.ts +3 -0
  142. package/src/Notion/Notion.tsx +0 -1
  143. package/src/Notion/NotionVisualElement.tsx +1 -1
  144. package/src/RelatedArticleList/RelatedArticleV2.tsx +84 -0
  145. package/src/RelatedArticleList/index.ts +2 -1
  146. package/src/Table/Table.tsx +77 -4
  147. package/src/index.ts +19 -4
  148. package/src/locale/messages-en.ts +10 -0
  149. package/src/locale/messages-nb.ts +10 -0
  150. package/src/locale/messages-nn.ts +10 -0
  151. package/src/locale/messages-se.ts +10 -1
  152. package/src/locale/messages-sma.ts +10 -0
  153. package/src/types.ts +1 -1
@@ -0,0 +1,101 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ 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."); }
3
+ 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); }
4
+ 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; }
5
+ 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; }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ 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; }
8
+ 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; }
9
+ 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; }
10
+ /**
11
+ * Copyright (c) 2023-present, NDLA.
12
+ *
13
+ * This source code is licensed under the GPLv3 license found in the
14
+ * LICENSE file in the root directory of this source tree.
15
+ *
16
+ */
17
+
18
+ import { Children, useMemo, useState } from 'react';
19
+ import BEMHelper from 'react-bem-helper';
20
+ import { useTranslation } from 'react-i18next';
21
+ import { ButtonV2 } from '@ndla/button';
22
+ import SafeLink from '@ndla/safelink';
23
+ import SectionHeading from '../SectionHeading';
24
+ import ContentTypeBadge from '../ContentTypeBadge';
25
+ import { contentTypes } from '../model/ContentType';
26
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
27
+ import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
28
+ var classes = new BEMHelper({
29
+ name: 'related-articles',
30
+ prefix: 'c-'
31
+ });
32
+ export var RelatedArticleV2 = function RelatedArticleV2(_ref) {
33
+ var title = _ref.title,
34
+ introduction = _ref.introduction,
35
+ to = _ref.to,
36
+ _ref$linkInfo = _ref.linkInfo,
37
+ linkInfo = _ref$linkInfo === void 0 ? '' : _ref$linkInfo,
38
+ _ref$target = _ref.target,
39
+ target = _ref$target === void 0 ? '' : _ref$target,
40
+ _ref$type = _ref.type,
41
+ type = _ref$type === void 0 ? contentTypes.SUBJECT_MATERIAL : _ref$type;
42
+ return _jsxs("article", _objectSpread(_objectSpread({}, classes('item', type)), {}, {
43
+ children: [_jsxs("h3", _objectSpread(_objectSpread({}, classes('title')), {}, {
44
+ children: [_jsx(ContentTypeBadge, {
45
+ type: type,
46
+ background: true,
47
+ size: "small"
48
+ }), _jsx("span", _objectSpread(_objectSpread({}, classes('link-wrapper')), {}, {
49
+ children: _jsx(SafeLink, _objectSpread(_objectSpread({
50
+ to: to
51
+ }, classes('link')), {}, {
52
+ target: target,
53
+ rel: linkInfo ? 'noopener noreferrer' : undefined,
54
+ children: title
55
+ }))
56
+ }))]
57
+ })), _jsx("p", _objectSpread(_objectSpread({}, classes('description')), {}, {
58
+ dangerouslySetInnerHTML: {
59
+ __html: introduction
60
+ }
61
+ })), linkInfo && _jsx("p", _objectSpread(_objectSpread({}, classes('link-info')), {}, {
62
+ children: linkInfo
63
+ }))]
64
+ }));
65
+ };
66
+ export var RelatedArticleListV2 = function RelatedArticleListV2(_ref2) {
67
+ var _ref2$children = _ref2.children,
68
+ children = _ref2$children === void 0 ? [] : _ref2$children,
69
+ articleCount = _ref2.articleCount,
70
+ _ref2$headingLevel = _ref2.headingLevel,
71
+ headingLevel = _ref2$headingLevel === void 0 ? 'h3' : _ref2$headingLevel;
72
+ var _useState = useState(false),
73
+ _useState2 = _slicedToArray(_useState, 2),
74
+ expanded = _useState2[0],
75
+ setExpanded = _useState2[1];
76
+ var _useTranslation = useTranslation(),
77
+ t = _useTranslation.t;
78
+ var childCount = useMemo(function () {
79
+ return articleCount !== null && articleCount !== void 0 ? articleCount : Children.count(children);
80
+ }, [children, articleCount]);
81
+ var childrenToShow = useMemo(function () {
82
+ return childCount > 2 && !expanded ? children === null || children === void 0 ? void 0 : children.slice(0, 2) : children;
83
+ }, [childCount, children, expanded]);
84
+ return _jsxs("section", _objectSpread(_objectSpread({}, classes('')), {}, {
85
+ children: [_jsx(SectionHeading, {
86
+ headingLevel: headingLevel,
87
+ className: classes('component-title').className,
88
+ children: t('related.title')
89
+ }), _jsx("div", _objectSpread(_objectSpread({}, classes('articles')), {}, {
90
+ children: childrenToShow
91
+ })), childCount > 2 ? _jsx(ButtonV2, {
92
+ onClick: function onClick() {
93
+ return setExpanded(function (p) {
94
+ return !p;
95
+ });
96
+ },
97
+ variant: "outline",
98
+ children: t("related.show".concat(expanded ? 'Less' : 'More'))
99
+ }) : null]
100
+ }));
101
+ };
@@ -7,5 +7,6 @@
7
7
  */
8
8
 
9
9
  import RelatedArticleList, { RelatedArticle } from './RelatedArticleList';
10
- export { RelatedArticle };
10
+ import { RelatedArticleListV2 } from './RelatedArticleV2';
11
+ export { RelatedArticle, RelatedArticleListV2 };
11
12
  export default RelatedArticleList;
package/es/Table/Table.js CHANGED
@@ -1,9 +1,17 @@
1
+ import _styled from "@emotion/styled/base";
1
2
  var _excluded = ["children", "id"];
2
3
  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; }
3
4
  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
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
7
+ 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."); }
8
+ 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); }
9
+ 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; }
10
+ 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; }
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
5
12
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
6
13
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
14
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
7
15
  /*
8
16
  * Copyright (c) 2016-present, NDLA.
9
17
  *
@@ -12,24 +20,103 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
12
20
  *
13
21
  */
14
22
 
15
- import React from 'react';
23
+ import { colors, spacing } from '@ndla/core';
24
+ import throttle from 'lodash/throttle';
25
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
16
26
  import BEMHelper from 'react-bem-helper';
17
27
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
18
28
  import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
19
29
  var classes = BEMHelper('c-table');
20
- var Table = function Table(_ref) {
21
- var children = _ref.children,
22
- id = _ref.id,
23
- rest = _objectWithoutProperties(_ref, _excluded);
30
+ var MARGIN = 5;
31
+ var ScrollBorder = /*#__PURE__*/_styled("div", {
32
+ target: "e69565p2",
33
+ label: "ScrollBorder"
34
+ })("position:absolute;top:0;height:calc(100% - ", spacing.mediumlarge, ");width:3px;background:", colors.background.dark, ";display:", function (_ref) {
35
+ var show = _ref.show;
36
+ return show ? 'block' : 'none';
37
+ }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQzRDIiwiZmlsZSI6IlRhYmxlLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjb2xvcnMsIHNwYWNpbmcgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB0aHJvdHRsZSBmcm9tICdsb2Rhc2gvdGhyb3R0bGUnO1xuaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgVUlFdmVudCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCRU1IZWxwZXIgZnJvbSAncmVhY3QtYmVtLWhlbHBlcic7XG5cbnR5cGUgU2Nyb2xsUG9zaXRpb24gPSAnc3RhcnQnIHwgJ2VuZCcgfCAnY2VudGVyJztcblxuY29uc3QgY2xhc3NlcyA9IEJFTUhlbHBlcignYy10YWJsZScpO1xuXG5jb25zdCBNQVJHSU4gPSA1O1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBpZD86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPzoge1xuICAgIF9faHRtbDogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgU3R5bGVkUHJvcHMge1xuICBzaG93OiBib29sZWFuO1xufVxuXG5jb25zdCBTY3JvbGxCb3JkZXIgPSBzdHlsZWQuZGl2PFN0eWxlZFByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gJHtzcGFjaW5nLm1lZGl1bWxhcmdlfSk7XG4gIHdpZHRoOiAzcHg7XG4gIGJhY2tncm91bmQ6ICR7Y29sb3JzLmJhY2tncm91bmQuZGFya307XG4gIGRpc3BsYXk6ICR7KHsgc2hvdyB9KSA9PiAoc2hvdyA/ICdibG9jaycgOiAnbm9uZScpfTtcbmA7XG5cbmNvbnN0IFJpZ2h0U2Nyb2xsQm9yZGVyID0gc3R5bGVkKFNjcm9sbEJvcmRlcilgXG4gIHJpZ2h0OiAwO1xuYDtcblxuY29uc3QgTGVmdFNjcm9sbEJvcmRlciA9IHN0eWxlZChTY3JvbGxCb3JkZXIpYFxuICBsZWZ0OiAwO1xuYDtcblxuY29uc3QgVGFibGUgPSAoeyBjaGlsZHJlbiwgaWQsIC4uLnJlc3QgfTogUHJvcHMpID0+IHtcbiAgY29uc3QgW3Njcm9sbFBvc2l0aW9uLCBzZXRTY3JvbGxQb3NpdGlvbl0gPSB1c2VTdGF0ZTxTY3JvbGxQb3NpdGlvbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgdGFibGVSZWYgPSB1c2VSZWY8SFRNTFRhYmxlRWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgY2hlY2tTY3JvbGxQb3NpdGlvbiA9IHVzZUNhbGxiYWNrKChlbDogSFRNTFRhYmxlRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgb2Zmc2V0V2lkdGgsIHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCB9ID0gZWw7XG4gICAgY29uc3QgaGFzU2Nyb2xsYmFyID0gc2Nyb2xsV2lkdGggPiBjbGllbnRXaWR0aDtcblxuICAgIGlmICghaGFzU2Nyb2xsYmFyKSB7XG4gICAgICBzZXRTY3JvbGxQb3NpdGlvbih1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzU3RhcnQgPSBzY3JvbGxMZWZ0IDw9IE1BUkdJTjtcbiAgICBjb25zdCBpc0VuZCA9IG9mZnNldFdpZHRoICsgc2Nyb2xsTGVmdCA+PSBzY3JvbGxXaWR0aCAtIE1BUkdJTjtcblxuICAgIGlmIChpc1N0YXJ0KSB7XG4gICAgICBzZXRTY3JvbGxQb3NpdGlvbignc3RhcnQnKTtcbiAgICB9IGVsc2UgaWYgKGlzRW5kKSB7XG4gICAgICBzZXRTY3JvbGxQb3NpdGlvbignZW5kJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFNjcm9sbFBvc2l0aW9uKCdjZW50ZXInKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBvblNjcm9sbCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHRocm90dGxlKChldmVudDogVUlFdmVudDxIVE1MVGFibGVFbGVtZW50PikgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MVGFibGVFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICBjaGVja1Njcm9sbFBvc2l0aW9uKGVsKTtcbiAgICAgICAgfVxuICAgICAgfSwgMTAwKSxcbiAgICBbY2hlY2tTY3JvbGxQb3NpdGlvbl0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbCA9IHRhYmxlUmVmLmN1cnJlbnQ7XG4gICAgaWYgKGVsKSB7XG4gICAgICBjaGVja1Njcm9sbFBvc2l0aW9uKGVsKTtcbiAgICB9XG4gIH0sIFtjaGVja1Njcm9sbFBvc2l0aW9uXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHsuLi5jbGFzc2VzKCd3cmFwcGVyJyl9PlxuICAgICAgPGRpdiB7Li4uY2xhc3NlcygnY29udGVudCcpfT5cbiAgICAgICAgPExlZnRTY3JvbGxCb3JkZXIgc2hvdz17c2Nyb2xsUG9zaXRpb24gPT09ICdlbmQnIHx8IHNjcm9sbFBvc2l0aW9uID09PSAnY2VudGVyJ30gey4uLmNsYXNzZXMoJ2xlZnQtc2hhZG93Jyl9IC8+XG4gICAgICAgIDx0YWJsZSByZWY9e3RhYmxlUmVmfSBpZD17aWR9IG9uU2Nyb2xsPXtvblNjcm9sbH0gey4uLmNsYXNzZXMoeyBleHRyYTogWydvLXRhYmxlJ10gfSl9IHsuLi5yZXN0fT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvdGFibGU+XG4gICAgICAgIDxSaWdodFNjcm9sbEJvcmRlclxuICAgICAgICAgIHNob3c9e3Njcm9sbFBvc2l0aW9uID09PSAnc3RhcnQnIHx8IHNjcm9sbFBvc2l0aW9uID09PSAnY2VudGVyJ31cbiAgICAgICAgICB7Li4uY2xhc3NlcygncmlnaHQtc2hhZG93Jyl9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlO1xuIl19 */"));
38
+ var RightScrollBorder = /*#__PURE__*/_styled(ScrollBorder, {
39
+ target: "e69565p1",
40
+ label: "RightScrollBorder"
41
+ })(process.env.NODE_ENV === "production" ? {
42
+ name: "1wf8jf",
43
+ styles: "right:0"
44
+ } : {
45
+ name: "1wf8jf",
46
+ styles: "right:0",
47
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5QzhDIiwiZmlsZSI6IlRhYmxlLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjb2xvcnMsIHNwYWNpbmcgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB0aHJvdHRsZSBmcm9tICdsb2Rhc2gvdGhyb3R0bGUnO1xuaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgVUlFdmVudCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCRU1IZWxwZXIgZnJvbSAncmVhY3QtYmVtLWhlbHBlcic7XG5cbnR5cGUgU2Nyb2xsUG9zaXRpb24gPSAnc3RhcnQnIHwgJ2VuZCcgfCAnY2VudGVyJztcblxuY29uc3QgY2xhc3NlcyA9IEJFTUhlbHBlcignYy10YWJsZScpO1xuXG5jb25zdCBNQVJHSU4gPSA1O1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBpZD86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPzoge1xuICAgIF9faHRtbDogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgU3R5bGVkUHJvcHMge1xuICBzaG93OiBib29sZWFuO1xufVxuXG5jb25zdCBTY3JvbGxCb3JkZXIgPSBzdHlsZWQuZGl2PFN0eWxlZFByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gJHtzcGFjaW5nLm1lZGl1bWxhcmdlfSk7XG4gIHdpZHRoOiAzcHg7XG4gIGJhY2tncm91bmQ6ICR7Y29sb3JzLmJhY2tncm91bmQuZGFya307XG4gIGRpc3BsYXk6ICR7KHsgc2hvdyB9KSA9PiAoc2hvdyA/ICdibG9jaycgOiAnbm9uZScpfTtcbmA7XG5cbmNvbnN0IFJpZ2h0U2Nyb2xsQm9yZGVyID0gc3R5bGVkKFNjcm9sbEJvcmRlcilgXG4gIHJpZ2h0OiAwO1xuYDtcblxuY29uc3QgTGVmdFNjcm9sbEJvcmRlciA9IHN0eWxlZChTY3JvbGxCb3JkZXIpYFxuICBsZWZ0OiAwO1xuYDtcblxuY29uc3QgVGFibGUgPSAoeyBjaGlsZHJlbiwgaWQsIC4uLnJlc3QgfTogUHJvcHMpID0+IHtcbiAgY29uc3QgW3Njcm9sbFBvc2l0aW9uLCBzZXRTY3JvbGxQb3NpdGlvbl0gPSB1c2VTdGF0ZTxTY3JvbGxQb3NpdGlvbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgdGFibGVSZWYgPSB1c2VSZWY8SFRNTFRhYmxlRWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgY2hlY2tTY3JvbGxQb3NpdGlvbiA9IHVzZUNhbGxiYWNrKChlbDogSFRNTFRhYmxlRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgb2Zmc2V0V2lkdGgsIHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCB9ID0gZWw7XG4gICAgY29uc3QgaGFzU2Nyb2xsYmFyID0gc2Nyb2xsV2lkdGggPiBjbGllbnRXaWR0aDtcblxuICAgIGlmICghaGFzU2Nyb2xsYmFyKSB7XG4gICAgICBzZXRTY3JvbGxQb3NpdGlvbih1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzU3RhcnQgPSBzY3JvbGxMZWZ0IDw9IE1BUkdJTjtcbiAgICBjb25zdCBpc0VuZCA9IG9mZnNldFdpZHRoICsgc2Nyb2xsTGVmdCA+PSBzY3JvbGxXaWR0aCAtIE1BUkdJTjtcblxuICAgIGlmIChpc1N0YXJ0KSB7XG4gICAgICBzZXRTY3JvbGxQb3NpdGlvbignc3RhcnQnKTtcbiAgICB9IGVsc2UgaWYgKGlzRW5kKSB7XG4gICAgICBzZXRTY3JvbGxQb3NpdGlvbignZW5kJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFNjcm9sbFBvc2l0aW9uKCdjZW50ZXInKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBvblNjcm9sbCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHRocm90dGxlKChldmVudDogVUlFdmVudDxIVE1MVGFibGVFbGVtZW50PikgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MVGFibGVFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICBjaGVja1Njcm9sbFBvc2l0aW9uKGVsKTtcbiAgICAgICAgfVxuICAgICAgfSwgMTAwKSxcbiAgICBbY2hlY2tTY3JvbGxQb3NpdGlvbl0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbCA9IHRhYmxlUmVmLmN1cnJlbnQ7XG4gICAgaWYgKGVsKSB7XG4gICAgICBjaGVja1Njcm9sbFBvc2l0aW9uKGVsKTtcbiAgICB9XG4gIH0sIFtjaGVja1Njcm9sbFBvc2l0aW9uXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHsuLi5jbGFzc2VzKCd3cmFwcGVyJyl9PlxuICAgICAgPGRpdiB7Li4uY2xhc3NlcygnY29udGVudCcpfT5cbiAgICAgICAgPExlZnRTY3JvbGxCb3JkZXIgc2hvdz17c2Nyb2xsUG9zaXRpb24gPT09ICdlbmQnIHx8IHNjcm9sbFBvc2l0aW9uID09PSAnY2VudGVyJ30gey4uLmNsYXNzZXMoJ2xlZnQtc2hhZG93Jyl9IC8+XG4gICAgICAgIDx0YWJsZSByZWY9e3RhYmxlUmVmfSBpZD17aWR9IG9uU2Nyb2xsPXtvblNjcm9sbH0gey4uLmNsYXNzZXMoeyBleHRyYTogWydvLXRhYmxlJ10gfSl9IHsuLi5yZXN0fT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvdGFibGU+XG4gICAgICAgIDxSaWdodFNjcm9sbEJvcmRlclxuICAgICAgICAgIHNob3c9e3Njcm9sbFBvc2l0aW9uID09PSAnc3RhcnQnIHx8IHNjcm9sbFBvc2l0aW9uID09PSAnY2VudGVyJ31cbiAgICAgICAgICB7Li4uY2xhc3NlcygncmlnaHQtc2hhZG93Jyl9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlO1xuIl19 */",
48
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
49
+ });
50
+ var LeftScrollBorder = /*#__PURE__*/_styled(ScrollBorder, {
51
+ target: "e69565p0",
52
+ label: "LeftScrollBorder"
53
+ })(process.env.NODE_ENV === "production" ? {
54
+ name: "1ode3cm",
55
+ styles: "left:0"
56
+ } : {
57
+ name: "1ode3cm",
58
+ styles: "left:0",
59
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2QzZDIiwiZmlsZSI6IlRhYmxlLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtcHJlc2VudCwgTkRMQS5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjb2xvcnMsIHNwYWNpbmcgfSBmcm9tICdAbmRsYS9jb3JlJztcbmltcG9ydCB0aHJvdHRsZSBmcm9tICdsb2Rhc2gvdGhyb3R0bGUnO1xuaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgVUlFdmVudCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCRU1IZWxwZXIgZnJvbSAncmVhY3QtYmVtLWhlbHBlcic7XG5cbnR5cGUgU2Nyb2xsUG9zaXRpb24gPSAnc3RhcnQnIHwgJ2VuZCcgfCAnY2VudGVyJztcblxuY29uc3QgY2xhc3NlcyA9IEJFTUhlbHBlcignYy10YWJsZScpO1xuXG5jb25zdCBNQVJHSU4gPSA1O1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBpZD86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPzoge1xuICAgIF9faHRtbDogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgU3R5bGVkUHJvcHMge1xuICBzaG93OiBib29sZWFuO1xufVxuXG5jb25zdCBTY3JvbGxCb3JkZXIgPSBzdHlsZWQuZGl2PFN0eWxlZFByb3BzPmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gJHtzcGFjaW5nLm1lZGl1bWxhcmdlfSk7XG4gIHdpZHRoOiAzcHg7XG4gIGJhY2tncm91bmQ6ICR7Y29sb3JzLmJhY2tncm91bmQuZGFya307XG4gIGRpc3BsYXk6ICR7KHsgc2hvdyB9KSA9PiAoc2hvdyA/ICdibG9jaycgOiAnbm9uZScpfTtcbmA7XG5cbmNvbnN0IFJpZ2h0U2Nyb2xsQm9yZGVyID0gc3R5bGVkKFNjcm9sbEJvcmRlcilgXG4gIHJpZ2h0OiAwO1xuYDtcblxuY29uc3QgTGVmdFNjcm9sbEJvcmRlciA9IHN0eWxlZChTY3JvbGxCb3JkZXIpYFxuICBsZWZ0OiAwO1xuYDtcblxuY29uc3QgVGFibGUgPSAoeyBjaGlsZHJlbiwgaWQsIC4uLnJlc3QgfTogUHJvcHMpID0+IHtcbiAgY29uc3QgW3Njcm9sbFBvc2l0aW9uLCBzZXRTY3JvbGxQb3NpdGlvbl0gPSB1c2VTdGF0ZTxTY3JvbGxQb3NpdGlvbiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgdGFibGVSZWYgPSB1c2VSZWY8SFRNTFRhYmxlRWxlbWVudD4obnVsbCk7XG5cbiAgY29uc3QgY2hlY2tTY3JvbGxQb3NpdGlvbiA9IHVzZUNhbGxiYWNrKChlbDogSFRNTFRhYmxlRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgb2Zmc2V0V2lkdGgsIHNjcm9sbFdpZHRoLCBjbGllbnRXaWR0aCB9ID0gZWw7XG4gICAgY29uc3QgaGFzU2Nyb2xsYmFyID0gc2Nyb2xsV2lkdGggPiBjbGllbnRXaWR0aDtcblxuICAgIGlmICghaGFzU2Nyb2xsYmFyKSB7XG4gICAgICBzZXRTY3JvbGxQb3NpdGlvbih1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzU3RhcnQgPSBzY3JvbGxMZWZ0IDw9IE1BUkdJTjtcbiAgICBjb25zdCBpc0VuZCA9IG9mZnNldFdpZHRoICsgc2Nyb2xsTGVmdCA+PSBzY3JvbGxXaWR0aCAtIE1BUkdJTjtcblxuICAgIGlmIChpc1N0YXJ0KSB7XG4gICAgICBzZXRTY3JvbGxQb3NpdGlvbignc3RhcnQnKTtcbiAgICB9IGVsc2UgaWYgKGlzRW5kKSB7XG4gICAgICBzZXRTY3JvbGxQb3NpdGlvbignZW5kJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFNjcm9sbFBvc2l0aW9uKCdjZW50ZXInKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBvblNjcm9sbCA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHRocm90dGxlKChldmVudDogVUlFdmVudDxIVE1MVGFibGVFbGVtZW50PikgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MVGFibGVFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICBjaGVja1Njcm9sbFBvc2l0aW9uKGVsKTtcbiAgICAgICAgfVxuICAgICAgfSwgMTAwKSxcbiAgICBbY2hlY2tTY3JvbGxQb3NpdGlvbl0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbCA9IHRhYmxlUmVmLmN1cnJlbnQ7XG4gICAgaWYgKGVsKSB7XG4gICAgICBjaGVja1Njcm9sbFBvc2l0aW9uKGVsKTtcbiAgICB9XG4gIH0sIFtjaGVja1Njcm9sbFBvc2l0aW9uXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHsuLi5jbGFzc2VzKCd3cmFwcGVyJyl9PlxuICAgICAgPGRpdiB7Li4uY2xhc3NlcygnY29udGVudCcpfT5cbiAgICAgICAgPExlZnRTY3JvbGxCb3JkZXIgc2hvdz17c2Nyb2xsUG9zaXRpb24gPT09ICdlbmQnIHx8IHNjcm9sbFBvc2l0aW9uID09PSAnY2VudGVyJ30gey4uLmNsYXNzZXMoJ2xlZnQtc2hhZG93Jyl9IC8+XG4gICAgICAgIDx0YWJsZSByZWY9e3RhYmxlUmVmfSBpZD17aWR9IG9uU2Nyb2xsPXtvblNjcm9sbH0gey4uLmNsYXNzZXMoeyBleHRyYTogWydvLXRhYmxlJ10gfSl9IHsuLi5yZXN0fT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvdGFibGU+XG4gICAgICAgIDxSaWdodFNjcm9sbEJvcmRlclxuICAgICAgICAgIHNob3c9e3Njcm9sbFBvc2l0aW9uID09PSAnc3RhcnQnIHx8IHNjcm9sbFBvc2l0aW9uID09PSAnY2VudGVyJ31cbiAgICAgICAgICB7Li4uY2xhc3NlcygncmlnaHQtc2hhZG93Jyl9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlO1xuIl19 */",
60
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
61
+ });
62
+ var Table = function Table(_ref2) {
63
+ var children = _ref2.children,
64
+ id = _ref2.id,
65
+ rest = _objectWithoutProperties(_ref2, _excluded);
66
+ var _useState = useState(undefined),
67
+ _useState2 = _slicedToArray(_useState, 2),
68
+ scrollPosition = _useState2[0],
69
+ setScrollPosition = _useState2[1];
70
+ var tableRef = useRef(null);
71
+ var checkScrollPosition = useCallback(function (el) {
72
+ var scrollLeft = el.scrollLeft,
73
+ offsetWidth = el.offsetWidth,
74
+ scrollWidth = el.scrollWidth,
75
+ clientWidth = el.clientWidth;
76
+ var hasScrollbar = scrollWidth > clientWidth;
77
+ if (!hasScrollbar) {
78
+ setScrollPosition(undefined);
79
+ return;
80
+ }
81
+ var isStart = scrollLeft <= MARGIN;
82
+ var isEnd = offsetWidth + scrollLeft >= scrollWidth - MARGIN;
83
+ if (isStart) {
84
+ setScrollPosition('start');
85
+ } else if (isEnd) {
86
+ setScrollPosition('end');
87
+ } else {
88
+ setScrollPosition('center');
89
+ }
90
+ }, []);
91
+ var onScroll = useMemo(function () {
92
+ return throttle(function (event) {
93
+ var el = event.target;
94
+ if (el) {
95
+ checkScrollPosition(el);
96
+ }
97
+ }, 100);
98
+ }, [checkScrollPosition]);
99
+ useEffect(function () {
100
+ var el = tableRef.current;
101
+ if (el) {
102
+ checkScrollPosition(el);
103
+ }
104
+ }, [checkScrollPosition]);
24
105
  return _jsx("div", _objectSpread(_objectSpread({}, classes('wrapper')), {}, {
25
106
  children: _jsxs("div", _objectSpread(_objectSpread({}, classes('content')), {}, {
26
- children: [_jsx("div", _objectSpread({}, classes('left-shadow'))), _jsx("table", _objectSpread(_objectSpread(_objectSpread({
27
- id: id
107
+ children: [_jsx(LeftScrollBorder, _objectSpread({
108
+ show: scrollPosition === 'end' || scrollPosition === 'center'
109
+ }, classes('left-shadow'))), _jsx("table", _objectSpread(_objectSpread(_objectSpread({
110
+ ref: tableRef,
111
+ id: id,
112
+ onScroll: onScroll
28
113
  }, classes({
29
114
  extra: ['o-table']
30
115
  })), rest), {}, {
31
116
  children: children
32
- })), _jsx("div", _objectSpread({}, classes('right-shadow')))]
117
+ })), _jsx(RightScrollBorder, _objectSpread({
118
+ show: scrollPosition === 'start' || scrollPosition === 'center'
119
+ }, classes('right-shadow')))]
33
120
  }))
34
121
  }));
35
122
  };