@onepercentio/one-ui 0.21.3 → 0.21.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.d.ts +15 -0
- package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.js +37 -0
- package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.js.map +1 -0
- package/ai/hooks/ui/useAlternating.ai.d.ts +9 -0
- package/ai/hooks/ui/useAlternating.ai.js +17 -0
- package/ai/hooks/ui/useAlternating.ai.js.map +1 -0
- package/ai/hooks/useHero.ai.d.ts +9 -0
- package/ai/hooks/useHero.ai.js +21 -0
- package/ai/hooks/useHero.ai.js.map +1 -0
- package/ai/types.d.ts +9 -0
- package/ai/types.js +3 -0
- package/ai/types.js.map +1 -0
- package/dist/assets/styles/variables.scss +0 -5
- package/dist/components/AdaptiveButton/AdaptiveButton.d.ts +2 -2
- package/dist/components/AdaptiveContainer/AdaptiveContainer.d.ts +2 -2
- package/dist/components/AdaptiveDialog/AdaptiveDialog.d.ts +4 -3
- package/dist/components/AdaptiveDialog/AdaptiveDialog.js +6 -3
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.d.ts +3 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js +7 -6
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.d.ts +2 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js +13 -0
- package/dist/components/AnchoredTooltip/AnchoredTooltip.d.ts +3 -0
- package/dist/components/AnchoredTooltip/AnchoredTooltip.js +5 -5
- package/dist/components/AnimatedEntrance/AnimatedEntrance.d.ts +3 -3
- package/dist/components/AsyncWrapper/AsyncWrapper.d.ts +2 -2
- package/dist/components/Avatar/Avatar.d.ts +2 -1
- package/dist/components/BucketFill/BucketFill.d.ts +3 -3
- package/dist/components/Button/Button.d.ts +2 -2
- package/dist/components/Button/Button.js +5 -4
- package/dist/components/Button/Button.module.scss +5 -2
- package/dist/components/Card/Card.d.ts +2 -2
- package/dist/components/Chart/Chart.logic.d.ts +3 -1
- package/dist/components/Chart/Chart.logic.js +2 -1
- package/dist/components/Chart/Chart.view.d.ts +2 -1
- package/dist/components/CheckBox/CheckBox.d.ts +1 -1
- package/dist/components/CodeInput/CodeInput.d.ts +9 -0
- package/dist/components/CodeInput/CodeInput.js +85 -0
- package/dist/components/CodeInput/CodeInput.module.scss +5 -0
- package/dist/components/CodeInput/index.d.ts +1 -0
- package/dist/components/CodeInput/index.js +14 -0
- package/dist/components/Collapsable/Collapsable.d.ts +5 -2
- package/dist/components/Collapsable/Collapsable.js +22 -7
- package/dist/components/Countdown/Countdown.d.ts +2 -1
- package/dist/components/Divider/Divider.d.ts +2 -1
- package/dist/components/EmailInput/EmailInput.d.ts +3 -0
- package/dist/components/EmailInput/EmailInput.js +5 -5
- package/dist/components/FadeIn/FadeIn.d.ts +3 -0
- package/dist/components/FadeIn/FadeIn.js +5 -4
- package/dist/components/FileInput/FileInput.d.ts +1 -1
- package/dist/components/FileInput/View/BigFactory/BigFactory.d.ts +2 -2
- package/dist/components/FileInput/View/Compact/Compact.d.ts +2 -1
- package/dist/components/FlowController/FlowController.d.ts +2 -2
- package/dist/components/Form/v2/Form.d.ts +18 -0
- package/dist/components/Form/v2/Form.hook.d.ts +21 -0
- package/dist/components/Form/v2/Form.hook.js +214 -0
- package/dist/components/Form/v2/Form.js +69 -0
- package/dist/components/Form/v2/Form.module.scss +0 -0
- package/dist/components/Form/v2/Form.types.d.ts +97 -0
- package/dist/components/Form/v2/Form.types.js +45 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.d.ts +12 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.js +74 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.module.scss +0 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/index.d.ts +1 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/index.js +14 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.d.ts +10 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.js +92 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.module.scss +0 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.d.ts +1 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.js +14 -0
- package/dist/components/Form/v2/FormField/FormField.d.ts +6 -0
- package/dist/components/Form/v2/FormField/FormField.js +309 -0
- package/dist/components/Form/v2/FormField/FormField.module.scss +0 -0
- package/dist/components/Form/v2/FormField/FormField.types.d.ts +83 -0
- package/dist/components/Form/v2/FormField/FormField.types.js +13 -0
- package/dist/components/Form/v2/FormField/index.d.ts +1 -0
- package/dist/components/Form/v2/FormField/index.js +14 -0
- package/dist/components/Form/v2/index.d.ts +1 -0
- package/dist/components/Form/v2/index.js +14 -0
- package/dist/components/HSForms/HSForms.d.ts +2 -1
- package/dist/components/Header/Header.d.ts +2 -2
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.d.ts +2 -1
- package/dist/components/InfinityScroll/InfinityScroll.d.ts +3 -0
- package/dist/components/InfinityScroll/InfinityScroll.js +5 -5
- package/dist/components/Input/Input.d.ts +3 -0
- package/dist/components/Input/Input.js +4 -4
- package/dist/components/InstantCounter/InstantCounter.d.ts +3 -0
- package/dist/components/InstantCounter/InstantCounter.js +5 -4
- package/dist/components/LavaLamp/LavaLamp.d.ts +2 -2
- package/dist/components/LavaLamp/LavaLamp.js +1 -1
- package/dist/components/LavaLamp/v2/LavaLamp.d.ts +2 -2
- package/dist/components/LinkToId/LinkToId.d.ts +2 -2
- package/dist/components/Loader/Loader.d.ts +1 -1
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.d.ts +5 -2
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.js +9 -3
- package/dist/components/LoopableVideo/LoopableVideo.d.ts +2 -2
- package/dist/components/MainGrid/MainGrid.d.ts +3 -0
- package/dist/components/MainGrid/MainGrid.js +5 -4
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.d.ts +1 -1
- package/dist/components/NodesNavigator/NodesNavigator.d.ts +17 -0
- package/dist/components/NodesNavigator/NodesNavigator.js +108 -0
- package/dist/components/NodesNavigator/NodesNavigator.module.scss +19 -0
- package/dist/components/NodesNavigator/index.d.ts +1 -0
- package/dist/components/NodesNavigator/index.js +14 -0
- package/dist/components/Notification/Notification.d.ts +2 -2
- package/dist/components/OrderableList/OrderableList.d.ts +1 -1
- package/dist/components/PaginationIndicator/PaginationIndicator.d.ts +9 -6
- package/dist/components/PaginationIndicator/PaginationIndicator.js +49 -11
- package/dist/components/Parallax/Parallax.d.ts +3 -0
- package/dist/components/Parallax/Parallax.js +5 -4
- package/dist/components/PasswordInput/PasswordInput.d.ts +3 -0
- package/dist/components/PasswordInput/PasswordInput.js +5 -5
- package/dist/components/PingPongText/PingPongText.d.ts +2 -2
- package/dist/components/PixelatedScan/PixelatedScan.d.ts +2 -1
- package/dist/components/Portal/Portal.d.ts +1 -1
- package/dist/components/ProgressBar/ProgressBar.d.ts +3 -3
- package/dist/components/ProgressTexts/ProgressTexts.d.ts +1 -1
- package/dist/components/Radio/Radio.d.ts +1 -1
- package/dist/components/SectionContainer/SectionContainer.d.ts +3 -0
- package/dist/components/SectionContainer/SectionContainer.js +5 -4
- package/dist/components/Select/Select.d.ts +3 -3
- package/dist/components/Select/Select.js +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts +2 -1
- package/dist/components/Spacing/Spacing.d.ts +2 -1
- package/dist/components/StaticScroller/StaticScroller.d.ts +3 -0
- package/dist/components/StaticScroller/StaticScroller.js +5 -4
- package/dist/components/Switch/Switch.d.ts +2 -2
- package/dist/components/Table/Table.d.ts +2 -1
- package/dist/components/Tabs/Tabs.d.ts +2 -2
- package/dist/components/Text/Text.d.ts +7 -5
- package/dist/components/Text/Text.js +5 -4
- package/dist/components/Text/Text.module.scss +4 -0
- package/dist/components/Transition/Transition.d.ts +8 -5
- package/dist/components/Transition/Transition.js +18 -16
- package/dist/components/Transition/Transition.module.scss +1 -1
- package/dist/components/UncontrolledTransition/UncontrolledTransition.d.ts +3 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.js +25 -13
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.d.ts +2 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js +44 -0
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.d.ts +6 -3
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js +14 -7
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.d.ts +2 -2
- package/dist/context/AsyncProcess.d.ts +2 -1
- package/dist/context/ContextAsyncControl.d.ts +24 -0
- package/dist/context/ContextAsyncControl.js +101 -0
- package/dist/context/CustomBrowserRouter.d.ts +2 -2
- package/dist/context/OneUIProvider.d.ts +29 -1
- package/dist/context/OneUIProvider.js +1 -1
- package/dist/hooks/persistence/useLocalStorage.d.ts +1 -1
- package/dist/hooks/persistence/useLocalStorage.js +5 -1
- package/dist/hooks/ui/useAlternating.d.ts +4 -0
- package/dist/hooks/ui/useAlternating.js +34 -0
- package/dist/hooks/ui/usePaginationControls.d.ts +2 -2
- package/dist/hooks/useAsyncControl.d.ts +15 -3
- package/dist/hooks/useAsyncControl.js +24 -20
- package/dist/hooks/useHero.d.ts +4 -2
- package/dist/hooks/useHero.js +39 -15
- package/dist/hooks/useHero.module.scss +1 -1
- package/dist/hooks/useShortIntl.d.ts +1 -1
- package/dist/hooks/useShortIntl.js +1 -1
- package/dist/models/GenericContract.d.ts +3 -3
- package/dist/models/GenericContract.js +5 -3
- package/dist/storybookUtils/index.d.ts +2 -2
- package/dist/type-utils.d.ts +5 -0
- package/dist/type-utils.js +1 -1
- package/dist/utility.d.js +1 -1
- package/package.json +19 -4
- package/src_ai/components/UncontrolledTransition/UncontrolledTransition.ai.ts +35 -0
- package/src_ai/hooks/ui/useAlternating.ai.ts +15 -0
- package/src_ai/hooks/useHero.ai.ts +18 -0
- package/src_ai/types.ts +10 -0
- package/tsconfig-ai.json +9 -0
- package/tsconfig.vite.json +109 -0
|
@@ -0,0 +1,108 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.calculateTargetIndex = calculateTargetIndex;
|
|
8
|
+
exports.default = NodesNavigator;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _NodesNavigatorModule = _interopRequireDefault(require("./NodesNavigator.module.scss"));
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
15
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
16
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
17
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
18
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
19
|
+
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."); }
|
|
20
|
+
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); }
|
|
21
|
+
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; }
|
|
22
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
23
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
24
|
+
function calculateTargetIndex(nodesPosition, center, clickedAt) {
|
|
25
|
+
const counterClickedAt = [center[1] - clickedAt[1], center[0] - clickedAt[0]];
|
|
26
|
+
const slope = (counterClickedAt[1] - center[1]) / (counterClickedAt[0] - center[0]);
|
|
27
|
+
const inverseTan = Math.atan(slope);
|
|
28
|
+
return [Math.sin(inverseTan), Math.cos(inverseTan)];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Distributes circles representing the nodes and allows the user to navigate to said nodes through clicking
|
|
33
|
+
**/
|
|
34
|
+
function NodesNavigator(_ref) {
|
|
35
|
+
let nodes = _ref.nodes,
|
|
36
|
+
currentNode = _ref.currentNode,
|
|
37
|
+
onClickNode = _ref.onClickNode;
|
|
38
|
+
const rootRef = (0, _react.useRef)(null);
|
|
39
|
+
(0, _react.useEffect)(function () {
|
|
40
|
+
if (!currentNode) return;
|
|
41
|
+
const currentNodeEl = rootRef.current.children[nodes.indexOf(currentNode)];
|
|
42
|
+
const style = currentNodeEl.style;
|
|
43
|
+
style.transform = "translateX(0em) translateY(0em)";
|
|
44
|
+
}, [currentNode]);
|
|
45
|
+
const _useState = (0, _react.useState)(function () {
|
|
46
|
+
return nodes.filter(function (n) {
|
|
47
|
+
return n !== currentNode;
|
|
48
|
+
});
|
|
49
|
+
}),
|
|
50
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
51
|
+
otherNodes = _useState2[0],
|
|
52
|
+
setOtherNodes = _useState2[1];
|
|
53
|
+
const _useState3 = (0, _react.useState)([]),
|
|
54
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
55
|
+
nodesPosition = _useState4[0],
|
|
56
|
+
setNodesPosition = _useState4[1];
|
|
57
|
+
(0, _react.useEffect)(function () {
|
|
58
|
+
setNodesPosition(otherNodes.map(function (n, index) {
|
|
59
|
+
var angle = index * Math.PI / 3;
|
|
60
|
+
return [Math.sin(angle), Math.cos(angle)];
|
|
61
|
+
}));
|
|
62
|
+
}, [otherNodes]);
|
|
63
|
+
(0, _react.useEffect)(function () {
|
|
64
|
+
if (otherNodes.length !== nodesPosition.length) return;
|
|
65
|
+
const elements = rootRef.current.children;
|
|
66
|
+
for (let node of otherNodes) {
|
|
67
|
+
const idx = otherNodes.indexOf(node);
|
|
68
|
+
const pos = nodesPosition[idx];
|
|
69
|
+
const el = elements[idx];
|
|
70
|
+
el.style.transform = "translateX(".concat(pos[0] + "em", ") translateY(").concat(pos[1] + "em", ")");
|
|
71
|
+
}
|
|
72
|
+
}, [nodesPosition]);
|
|
73
|
+
console.log(nodesPosition);
|
|
74
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
75
|
+
className: _NodesNavigatorModule.default.root,
|
|
76
|
+
ref: rootRef
|
|
77
|
+
}, otherNodes.map(function (n) {
|
|
78
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
79
|
+
key: nodes.indexOf(n),
|
|
80
|
+
className: _NodesNavigatorModule.default.node,
|
|
81
|
+
onClick: function onClick(_ref2) {
|
|
82
|
+
let clientX = _ref2.clientX,
|
|
83
|
+
clientY = _ref2.clientY;
|
|
84
|
+
const root = rootRef.current.getBoundingClientRect();
|
|
85
|
+
const center = [root.left + root.width / 2, root.top + root.height / 2];
|
|
86
|
+
const click = [clientX, clientY];
|
|
87
|
+
const angle = 3 + Math.atan2(click[1] - center[1], click[0] - center[0]);
|
|
88
|
+
const futureIndex = Math.round(angle / Math.PI * 3 - 1);
|
|
89
|
+
console.log(futureIndex);
|
|
90
|
+
setOtherNodes(function (prev) {
|
|
91
|
+
prev.splice(futureIndex + 1, 0, currentNode);
|
|
92
|
+
return _toConsumableArray(prev.filter(function (a) {
|
|
93
|
+
return a !== n;
|
|
94
|
+
}));
|
|
95
|
+
});
|
|
96
|
+
// console.log(angle);
|
|
97
|
+
onClickNode === null || onClickNode === void 0 ? void 0 : onClickNode(n);
|
|
98
|
+
}
|
|
99
|
+
}, otherNodes.indexOf(n));
|
|
100
|
+
}), currentNode && /*#__PURE__*/_react.default.createElement("div", {
|
|
101
|
+
key: nodes.indexOf(currentNode),
|
|
102
|
+
className: _NodesNavigatorModule.default.node,
|
|
103
|
+
onClick: function onClick() {
|
|
104
|
+
onClickNode === null || onClickNode === void 0 ? void 0 : onClickNode(currentNode);
|
|
105
|
+
}
|
|
106
|
+
}, "C"));
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfTm9kZXNOYXZpZ2F0b3JNb2R1bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJfdHlwZW9mIiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiaXRlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3NsaWNlZFRvQXJyYXkiLCJpIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX25vbkl0ZXJhYmxlUmVzdCIsIm8iLCJtaW5MZW4iLCJuIiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJsZW4iLCJsZW5ndGgiLCJhcnIyIiwiX2kiLCJfcyIsIl9lIiwiX3giLCJfciIsIl9hcnIiLCJfbiIsIl9kIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJlcnIiLCJyZXR1cm4iLCJjYWxjdWxhdGVUYXJnZXRJbmRleCIsIm5vZGVzUG9zaXRpb24iLCJjZW50ZXIiLCJjbGlja2VkQXQiLCJjb3VudGVyQ2xpY2tlZEF0Iiwic2xvcGUiLCJpbnZlcnNlVGFuIiwiTWF0aCIsImF0YW4iLCJzaW4iLCJjb3MiLCJOb2Rlc05hdmlnYXRvciIsIl9yZWYiLCJub2RlcyIsImN1cnJlbnROb2RlIiwib25DbGlja05vZGUiLCJyb290UmVmIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudE5vZGVFbCIsImN1cnJlbnQiLCJjaGlsZHJlbiIsImluZGV4T2YiLCJzdHlsZSIsInRyYW5zZm9ybSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiZmlsdGVyIiwiX3VzZVN0YXRlMiIsIm90aGVyTm9kZXMiLCJzZXRPdGhlck5vZGVzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZXROb2Rlc1Bvc2l0aW9uIiwibWFwIiwiaW5kZXgiLCJhbmdsZSIsIlBJIiwiZWxlbWVudHMiLCJub2RlIiwiaWR4IiwicG9zIiwiZWwiLCJjb25jYXQiLCJjb25zb2xlIiwibG9nIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIlN0eWxlcyIsInJvb3QiLCJyZWYiLCJvbkNsaWNrIiwiX3JlZjIiLCJjbGllbnRYIiwiY2xpZW50WSIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImxlZnQiLCJ3aWR0aCIsInRvcCIsImhlaWdodCIsImNsaWNrIiwiYXRhbjIiLCJmdXR1cmVJbmRleCIsInJvdW5kIiwicHJldiIsInNwbGljZSIsImEiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Ob2Rlc05hdmlnYXRvci9Ob2Rlc05hdmlnYXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIFJlYWN0RWxlbWVudCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBTdHlsZXMgZnJvbSBcIi4vTm9kZXNOYXZpZ2F0b3IubW9kdWxlLnNjc3NcIjtcblxudHlwZSBOb2RlID0ge1xuICAvKiogSW5kaWNhdGVzIGhvdyBtdWNoIHRoYXQgbm9kZSBzaG91bGQgaW5jcmVhc2UgaW4gcmVsYXRpb24gdG8gb3RoZXIgbm9kZXMgKi9cbiAgZ3JhbmRlb3VyOiBudW1iZXI7XG5cbiAgLyoqIFdoYXQgdG8gc2hvdyBvbiB0aGF0IG5vZGUgKi9cbiAgY292ZXI6IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVUYXJnZXRJbmRleChcbiAgbm9kZXNQb3NpdGlvbjogW3g6IG51bWJlciwgeTogbnVtYmVyXVtdLFxuICBjZW50ZXI6IFt4OiBudW1iZXIsIHk6IG51bWJlcl0sXG4gIGNsaWNrZWRBdDogW3g6IG51bWJlciwgeTogbnVtYmVyXVxuKSB7XG4gIGNvbnN0IGNvdW50ZXJDbGlja2VkQXQgPSBbY2VudGVyWzFdIC0gY2xpY2tlZEF0WzFdLCBjZW50ZXJbMF0gLSBjbGlja2VkQXRbMF1dO1xuICBjb25zdCBzbG9wZSA9XG4gICAgKGNvdW50ZXJDbGlja2VkQXRbMV0gLSBjZW50ZXJbMV0pIC8gKGNvdW50ZXJDbGlja2VkQXRbMF0gLSBjZW50ZXJbMF0pO1xuXG4gIGNvbnN0IGludmVyc2VUYW4gPSBNYXRoLmF0YW4oc2xvcGUpO1xuICByZXR1cm4gW01hdGguc2luKGludmVyc2VUYW4pLCBNYXRoLmNvcyhpbnZlcnNlVGFuKV07XG59XG5cbi8qKlxuICogRGlzdHJpYnV0ZXMgY2lyY2xlcyByZXByZXNlbnRpbmcgdGhlIG5vZGVzIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gbmF2aWdhdGUgdG8gc2FpZCBub2RlcyB0aHJvdWdoIGNsaWNraW5nXG4gKiovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBOb2Rlc05hdmlnYXRvcih7XG4gIG5vZGVzLFxuICBjdXJyZW50Tm9kZSxcbiAgb25DbGlja05vZGUsXG59OiB7XG4gIG5vZGVzOiBOb2RlW107XG4gIGN1cnJlbnROb2RlOiBOb2RlIHwgbnVsbDtcbiAgb25DbGlja05vZGU/OiAobjogTm9kZSkgPT4gdm9pZDtcbn0pIHtcbiAgY29uc3Qgcm9vdFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWN1cnJlbnROb2RlKSByZXR1cm47XG4gICAgY29uc3QgY3VycmVudE5vZGVFbCA9IHJvb3RSZWYuY3VycmVudCEuY2hpbGRyZW5bXG4gICAgICBub2Rlcy5pbmRleE9mKGN1cnJlbnROb2RlKVxuICAgIF0gYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgY29uc3Qgc3R5bGUgPSBjdXJyZW50Tm9kZUVsLnN0eWxlO1xuXG4gICAgc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoMGVtKSB0cmFuc2xhdGVZKDBlbSlgO1xuICB9LCBbY3VycmVudE5vZGVdKTtcblxuICBjb25zdCBbb3RoZXJOb2Rlcywgc2V0T3RoZXJOb2Rlc10gPSB1c2VTdGF0ZSgoKSA9PiB7XG4gICAgcmV0dXJuIG5vZGVzLmZpbHRlcigobikgPT4gbiAhPT0gY3VycmVudE5vZGUpO1xuICB9KTtcbiAgY29uc3QgW25vZGVzUG9zaXRpb24sIHNldE5vZGVzUG9zaXRpb25dID0gdXNlU3RhdGU8XG4gICAgW3RYOiBudW1iZXIsIHRZOiBudW1iZXJdW11cbiAgPihbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXROb2Rlc1Bvc2l0aW9uKFxuICAgICAgb3RoZXJOb2Rlcy5tYXAoKG4sIGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBhbmdsZSA9IChpbmRleCAqIE1hdGguUEkpIC8gMztcbiAgICAgICAgcmV0dXJuIFtNYXRoLnNpbihhbmdsZSksIE1hdGguY29zKGFuZ2xlKV07XG4gICAgICB9KVxuICAgICk7XG4gIH0sIFtvdGhlck5vZGVzXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAob3RoZXJOb2Rlcy5sZW5ndGggIT09IG5vZGVzUG9zaXRpb24ubGVuZ3RoKSByZXR1cm47XG4gICAgY29uc3QgZWxlbWVudHMgPSByb290UmVmLmN1cnJlbnQhLmNoaWxkcmVuO1xuICAgIGZvciAobGV0IG5vZGUgb2Ygb3RoZXJOb2Rlcykge1xuICAgICAgY29uc3QgaWR4ID0gb3RoZXJOb2Rlcy5pbmRleE9mKG5vZGUpO1xuICAgICAgY29uc3QgcG9zID0gbm9kZXNQb3NpdGlvbltpZHhdO1xuICAgICAgY29uc3QgZWwgPSBlbGVtZW50c1tpZHhdIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgZWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHtwb3NbMF0gKyBcImVtXCJ9KSB0cmFuc2xhdGVZKCR7XG4gICAgICAgIHBvc1sxXSArIFwiZW1cIlxuICAgICAgfSlgO1xuICAgIH1cbiAgfSwgW25vZGVzUG9zaXRpb25dKTtcblxuICBjb25zb2xlLmxvZyhub2Rlc1Bvc2l0aW9uKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e1N0eWxlcy5yb290fSByZWY9e3Jvb3RSZWZ9PlxuICAgICAge290aGVyTm9kZXMubWFwKChuKSA9PiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBrZXk9e25vZGVzLmluZGV4T2Yobil9XG4gICAgICAgICAgY2xhc3NOYW1lPXtTdHlsZXMubm9kZX1cbiAgICAgICAgICBvbkNsaWNrPXsoeyBjbGllbnRYLCBjbGllbnRZIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSByb290UmVmLmN1cnJlbnQhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgY2VudGVyID0gW1xuICAgICAgICAgICAgICByb290LmxlZnQgKyByb290LndpZHRoIC8gMixcbiAgICAgICAgICAgICAgcm9vdC50b3AgKyByb290LmhlaWdodCAvIDIsXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgY29uc3QgY2xpY2sgPSBbY2xpZW50WCwgY2xpZW50WV07XG4gICAgICAgICAgICBjb25zdCBhbmdsZSA9XG4gICAgICAgICAgICAgIDMgKyBNYXRoLmF0YW4yKGNsaWNrWzFdIC0gY2VudGVyWzFdLCBjbGlja1swXSAtIGNlbnRlclswXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGZ1dHVyZUluZGV4ID0gTWF0aC5yb3VuZCgoYW5nbGUgLyBNYXRoLlBJKSAqIDMgLSAxKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGZ1dHVyZUluZGV4KTtcbiAgICAgICAgICAgIHNldE90aGVyTm9kZXMoKHByZXYpID0+IHtcbiAgICAgICAgICAgICAgcHJldi5zcGxpY2UoZnV0dXJlSW5kZXggKyAxLCAwLCBjdXJyZW50Tm9kZSEpO1xuICAgICAgICAgICAgICByZXR1cm4gWy4uLnByZXYuZmlsdGVyKChhKSA9PiBhICE9PSBuKV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGFuZ2xlKTtcbiAgICAgICAgICAgIG9uQ2xpY2tOb2RlPy4obik7XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHsvKiB7bi5jb3Zlcn0gKi99XG4gICAgICAgICAge290aGVyTm9kZXMuaW5kZXhPZihuKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cbiAgICAgIHtjdXJyZW50Tm9kZSAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBrZXk9e25vZGVzLmluZGV4T2YoY3VycmVudE5vZGUpfVxuICAgICAgICAgIGNsYXNzTmFtZT17U3R5bGVzLm5vZGV9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgb25DbGlja05vZGU/LihjdXJyZW50Tm9kZSEpO1xuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7Lyoge24uY292ZXJ9ICovfUNcbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQU9BLElBQUFDLHFCQUFBLEdBQUFDLHNC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
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
background-color: red;
|
|
3
|
+
width: 100%;
|
|
4
|
+
height: 100%;
|
|
5
|
+
position: relative;
|
|
6
|
+
font-size: 72px;
|
|
7
|
+
display: flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
justify-content: center;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.node {
|
|
13
|
+
height: 1em;
|
|
14
|
+
width: 1em;
|
|
15
|
+
border-radius: 0.5em;
|
|
16
|
+
overflow: hidden;
|
|
17
|
+
position: absolute;
|
|
18
|
+
transition: transform linear 2s;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './NodesNavigator';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _NodesNavigator.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _NodesNavigator = _interopRequireDefault(require("./NodesNavigator"));
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfTm9kZXNOYXZpZ2F0b3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvTm9kZXNOYXZpZ2F0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuL05vZGVzTmF2aWdhdG9yJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxlQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBMkMsU0FBQUQsdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUEifQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { PropsWithChildren } from "react";
|
|
1
|
+
import React, { PropsWithChildren } from "react";
|
|
2
2
|
/**
|
|
3
3
|
* A layout for the notification card
|
|
4
4
|
**/
|
|
5
5
|
export default function Notification({ type, children }: PropsWithChildren<{
|
|
6
6
|
type: "success";
|
|
7
|
-
}>): JSX.Element;
|
|
7
|
+
}>): React.JSX.Element;
|
|
@@ -28,7 +28,7 @@ export default function OrderableList({ children, className, mode, shrinkToOnOrd
|
|
|
28
28
|
onChangeKeyOrder: (newOrder: string[]) => void;
|
|
29
29
|
} | {
|
|
30
30
|
currentOrder?: string[];
|
|
31
|
-
}) & DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>): JSX.Element;
|
|
31
|
+
}) & DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>): React.JSX.Element;
|
|
32
32
|
export declare function useOrderableListAnchor(): {
|
|
33
33
|
anchorRef: React.MutableRefObject<HTMLDivElement> | undefined;
|
|
34
34
|
};
|
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
import React, { RefObject } from "react";
|
|
1
|
+
import React, { ComponentProps, RefObject } from "react";
|
|
2
2
|
export declare enum PaginationIndicatorMode {
|
|
3
3
|
/** This will make the guide ball be kept on center */
|
|
4
4
|
CENTERED = 0,
|
|
5
5
|
/** This will make the guide ball move, while the indicator balls keep in place */
|
|
6
6
|
START = 1
|
|
7
7
|
}
|
|
8
|
-
/**
|
|
9
|
-
* A cool component to indicate how many pages are
|
|
10
|
-
**/
|
|
11
8
|
export declare function PaginationIndicatorView({ size, page: currentPage, pages: decimalPages, className, onClickPage, mode, }: {
|
|
12
9
|
size: number;
|
|
13
10
|
page: number;
|
|
14
11
|
pages: number;
|
|
15
|
-
className
|
|
12
|
+
className?: string;
|
|
16
13
|
onClickPage?: (page: number) => void;
|
|
17
14
|
mode?: PaginationIndicatorMode;
|
|
18
|
-
}): JSX.Element;
|
|
15
|
+
}): React.JSX.Element;
|
|
16
|
+
export declare function AnimatedPaginationIndicator(props: ComponentProps<typeof PaginationIndicatorView> & {
|
|
17
|
+
duration: number;
|
|
18
|
+
}): React.JSX.Element;
|
|
19
|
+
/**
|
|
20
|
+
* A cool component to indicate how many pages are
|
|
21
|
+
**/
|
|
19
22
|
declare const PaginationIndicator: React.ForwardRefExoticComponent<{
|
|
20
23
|
scrollableRef: RefObject<HTMLDivElement>;
|
|
21
24
|
estimatedWidth?: number | undefined;
|
|
@@ -4,12 +4,14 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
+
exports.AnimatedPaginationIndicator = AnimatedPaginationIndicator;
|
|
7
8
|
exports.PaginationIndicatorMode = void 0;
|
|
8
9
|
exports.PaginationIndicatorView = PaginationIndicatorView;
|
|
9
10
|
exports.default = void 0;
|
|
10
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
12
|
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); }
|
|
12
13
|
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; }
|
|
14
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
13
15
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
14
16
|
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
15
17
|
function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
|
|
@@ -26,9 +28,6 @@ let PaginationIndicatorMode = /*#__PURE__*/function (PaginationIndicatorMode) {
|
|
|
26
28
|
PaginationIndicatorMode[PaginationIndicatorMode["START"] = 1] = "START";
|
|
27
29
|
return PaginationIndicatorMode;
|
|
28
30
|
}({});
|
|
29
|
-
/**
|
|
30
|
-
* A cool component to indicate how many pages are
|
|
31
|
-
**/
|
|
32
31
|
exports.PaginationIndicatorMode = PaginationIndicatorMode;
|
|
33
32
|
function PaginationIndicatorView(_ref) {
|
|
34
33
|
let size = _ref.size,
|
|
@@ -171,6 +170,41 @@ function PaginationIndicatorView(_ref) {
|
|
|
171
170
|
}
|
|
172
171
|
}, pageBalls));
|
|
173
172
|
}
|
|
173
|
+
function AnimatedPaginationIndicator(props) {
|
|
174
|
+
const prevPage = (0, _react.useRef)(props.page);
|
|
175
|
+
const _useState = (0, _react.useState)(props.page),
|
|
176
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
177
|
+
pageProgress = _useState2[0],
|
|
178
|
+
setPageProgress = _useState2[1];
|
|
179
|
+
(0, _react.useEffect)(function () {
|
|
180
|
+
const diff = props.page - prevPage.current;
|
|
181
|
+
const diffPerStep = diff / 60;
|
|
182
|
+
const interval = setInterval(function () {
|
|
183
|
+
setPageProgress(function (prev) {
|
|
184
|
+
const next = prev + diffPerStep;
|
|
185
|
+
if (diff < 0) {
|
|
186
|
+
if (next <= props.page) {
|
|
187
|
+
clearInterval(interval);
|
|
188
|
+
return props.page;
|
|
189
|
+
}
|
|
190
|
+
} else {
|
|
191
|
+
if (next >= props.page) {
|
|
192
|
+
clearInterval(interval);
|
|
193
|
+
return props.page;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return Number(next.toFixed(2));
|
|
197
|
+
});
|
|
198
|
+
}, props.duration / 60);
|
|
199
|
+
return function () {
|
|
200
|
+
prevPage.current = props.page;
|
|
201
|
+
clearInterval(interval);
|
|
202
|
+
};
|
|
203
|
+
}, [props.page]);
|
|
204
|
+
return /*#__PURE__*/_react.default.createElement(PaginationIndicatorView, _extends({}, props, {
|
|
205
|
+
page: pageProgress
|
|
206
|
+
}));
|
|
207
|
+
}
|
|
174
208
|
function _PaginationIndicator(_ref3, ref) {
|
|
175
209
|
let scrollableRef = _ref3.scrollableRef,
|
|
176
210
|
estimatedWidth = _ref3.estimatedWidth,
|
|
@@ -178,14 +212,14 @@ function _PaginationIndicator(_ref3, ref) {
|
|
|
178
212
|
_ref3$className = _ref3.className,
|
|
179
213
|
className = _ref3$className === void 0 ? "" : _ref3$className,
|
|
180
214
|
onClickPage = _ref3.onClickPage;
|
|
181
|
-
const
|
|
182
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
183
|
-
currentPage = _useState2[0],
|
|
184
|
-
setCurrentPage = _useState2[1];
|
|
185
|
-
const _useState3 = (0, _react.useState)(),
|
|
215
|
+
const _useState3 = (0, _react.useState)(1),
|
|
186
216
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
187
|
-
|
|
188
|
-
|
|
217
|
+
currentPage = _useState4[0],
|
|
218
|
+
setCurrentPage = _useState4[1];
|
|
219
|
+
const _useState5 = (0, _react.useState)(),
|
|
220
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
221
|
+
defs = _useState6[0],
|
|
222
|
+
setDefs = _useState6[1];
|
|
189
223
|
const refreshPages = (0, _react.useCallback)(function () {
|
|
190
224
|
if (!scrollableRef.current) return;
|
|
191
225
|
const maxWidth = estimatedWidth === undefined ? scrollableRef.current.scrollWidth : estimatedWidth;
|
|
@@ -237,7 +271,11 @@ function _PaginationIndicator(_ref3, ref) {
|
|
|
237
271
|
onClickPage: onClickPage
|
|
238
272
|
});
|
|
239
273
|
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* A cool component to indicate how many pages are
|
|
277
|
+
**/
|
|
240
278
|
const PaginationIndicator = /*#__PURE__*/(0, _react.forwardRef)(_PaginationIndicator);
|
|
241
279
|
var _default = PaginationIndicator;
|
|
242
280
|
exports.default = _default;
|
|
243
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIl9zbGljZWRUb0FycmF5IiwiYXJyIiwiaSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJfaSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiX3MiLCJfZSIsIl94IiwiX3IiLCJfYXJyIiwiX24iLCJfZCIsIm5leHQiLCJkb25lIiwicHVzaCIsInZhbHVlIiwibGVuZ3RoIiwiZXJyIiwicmV0dXJuIiwiX3RvQXJyYXkiLCJfaXRlcmFibGVUb0FycmF5IiwiVHlwZUVycm9yIiwibyIsIm1pbkxlbiIsIl9hcnJheUxpa2VUb0FycmF5IiwibiIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIml0ZXIiLCJpc0FycmF5IiwiTUFYX0JBTExTIiwiZWFjaEJhbGxXaWR0aEVtIiwiQ0VOVEVSX0dVSURFX0JBTEwiLCJQYWdpbmF0aW9uSW5kaWNhdG9yTW9kZSIsImV4cG9ydHMiLCJQYWdpbmF0aW9uSW5kaWNhdG9yVmlldyIsIl9yZWYiLCJzaXplIiwiY3VycmVudFBhZ2UiLCJwYWdlIiwiZGVjaW1hbFBhZ2VzIiwicGFnZXMiLCJjbGFzc05hbWUiLCJvbkNsaWNrUGFnZSIsIl9yZWYkbW9kZSIsIm1vZGUiLCJDRU5URVJFRCIsInVzZU1lbW8iLCJmbG9vciIsIk1hdGgiLCJtb2R1bHVzIiwiY3VycmVudEZsb29yTW9kdWx1cyIsImVxdWl2YWxlbnQiLCJyYW5kIiwicmFuZG9tIiwicGFnZUluZGV4IiwiY2VpbCIsIm51bUJhbGxzIiwiaW5kZXhGb3JUaGVCYWxsc0NlbnRlciIsImJhbGxzIiwiaW5kZXhGb3JMYXN0UGFnZXMiLCJpc0NlbnRlclBhZ2UiLCJyZXNldFBhZ2VJbmRleCIsImxlZnQiLCJfcmVmMiIsInB1c2hCYWxsc1RvUmlnaHRCeSIsIm1pbiIsInB1c2hCYWxsc1RvTGVmdEJ5IiwicHVzaEd1aWRlVG9SaWdodEJ5IiwicHVzaFRvTGVmdCIsImZpbGwiLCJ1bmRlZmluZWQiLCJtYXAiLCJfIiwiaXNMYXN0QmFsbCIsImlzRmlyc3RCYWxsIiwiZGlhbWV0ZXIiLCJwYWRkaW5nIiwiY3JlYXRlRWxlbWVudCIsIndpZHRoIiwiY29uY2F0IiwiaGVpZ2h0IiwieCIsInkiLCJyeCIsImJhbGxTaXplIiwiU1RBUlQiLCJvbkNsaWNrIiwicGFnZUNsaWNrZWQiLCJyb3VuZCIsIl9iYWxscyRyZXZlcnNlIiwicmV2ZXJzZSIsIl9iYWxscyRyZXZlcnNlMiIsImd1aWRlQmFsbCIsInBhZ2VCYWxscyIsInZlcnNpb24iLCJ4bWxucyIsInN0eWxlIiwibWluV2lkdGgiLCJmb250U2l6ZSIsImlkIiwiaW4iLCJyZXN1bHQiLCJzdGREZXZpYXRpb24iLCJ2YWx1ZXMiLCJpbjIiLCJmaWx0ZXIiLCJtYXNrIiwib3BhY2l0eSIsImN1cnNvciIsIl9QYWdpbmF0aW9uSW5kaWNhdG9yIiwiX3JlZjMiLCJyZWYiLCJzY3JvbGxhYmxlUmVmIiwiZXN0aW1hdGVkV2lkdGgiLCJfcmVmMyRjbGFzc05hbWUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJzZXRDdXJyZW50UGFnZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZGVmcyIsInNldERlZnMiLCJyZWZyZXNoUGFnZXMiLCJ1c2VDYWxsYmFjayIsImN1cnJlbnQiLCJtYXhXaWR0aCIsInNjcm9sbFdpZHRoIiwiY2xpZW50V2lkdGgiLCJ1c2VFZmZlY3QiLCJ1cGRhdGVQYWdlSW5kaWNhdG9ycyIsInRhcmdldCIsImVhY2hQYWdlV2lkdGgiLCJzY3JvbGxMZWZ0IiwibGFzdFBhZ2VQcm9ncmVzcyIsIm1heGltdW1Qcm9ncmVzcyIsImRpZmZUb01heCIsImN1cnJlbnRQcm9ncmVzc09uRGlmZiIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJlbCIsIm9uU2Nyb2xsIiwiZSIsImN1cnJlbnRUYXJnZXQiLCJhZGRFdmVudExpc3RlbmVyIiwicGFzc2l2ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJQYWdpbmF0aW9uSW5kaWNhdG9yIiwiZm9yd2FyZFJlZiIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvUGFnaW5hdGlvbkluZGljYXRvci9QYWdpbmF0aW9uSW5kaWNhdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgRm9yd2FyZGVkUmVmLFxuICBmb3J3YXJkUmVmLFxuICBSZWZPYmplY3QsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcblxuY29uc3QgTUFYX0JBTExTID0gNztcbmNvbnN0IGVhY2hCYWxsV2lkdGhFbSA9IDEuMjtcblxuY29uc3QgQ0VOVEVSX0dVSURFX0JBTEwgPSAxO1xuXG5leHBvcnQgZW51bSBQYWdpbmF0aW9uSW5kaWNhdG9yTW9kZSB7XG4gIC8qKiBUaGlzIHdpbGwgbWFrZSB0aGUgZ3VpZGUgYmFsbCBiZSBrZXB0IG9uIGNlbnRlciAgKi9cbiAgQ0VOVEVSRUQsXG5cbiAgLyoqIFRoaXMgd2lsbCBtYWtlIHRoZSBndWlkZSBiYWxsIG1vdmUsIHdoaWxlIHRoZSBpbmRpY2F0b3IgYmFsbHMga2VlcCBpbiBwbGFjZSAqL1xuICBTVEFSVCxcbn1cblxuLyoqXG4gKiBBIGNvb2wgY29tcG9uZW50IHRvIGluZGljYXRlIGhvdyBtYW55IHBhZ2VzIGFyZVxuICoqL1xuZXhwb3J0IGZ1bmN0aW9uIFBhZ2luYXRpb25JbmRpY2F0b3JWaWV3KHtcbiAgc2l6ZSxcbiAgcGFnZTogY3VycmVudFBhZ2UsXG4gIHBhZ2VzOiBkZWNpbWFsUGFnZXMsXG4gIGNsYXNzTmFtZSxcbiAgb25DbGlja1BhZ2UsXG4gIG1vZGUgPSBQYWdpbmF0aW9uSW5kaWNhdG9yTW9kZS5DRU5URVJFRCxcbn06IHtcbiAgc2l6ZTogbnVtYmVyO1xuICBwYWdlOiBudW1iZXI7XG4gIHBhZ2VzOiBudW1iZXI7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICBvbkNsaWNrUGFnZT86IChwYWdlOiBudW1iZXIpID0+IHZvaWQ7XG4gIG1vZGU/OiBQYWdpbmF0aW9uSW5kaWNhdG9yTW9kZTtcbn0pIHtcbiAgY29uc3QgcGFnZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGZsb29yID0gTWF0aC5mbG9vcihkZWNpbWFsUGFnZXMpO1xuICAgIGNvbnN0IG1vZHVsdXMgPSBkZWNpbWFsUGFnZXMgJSBmbG9vcjtcblxuICAgIGlmIChjdXJyZW50UGFnZSA+IGZsb29yKSB7XG4gICAgICBjb25zdCBjdXJyZW50Rmxvb3JNb2R1bHVzID0gY3VycmVudFBhZ2UgJSBmbG9vcjtcbiAgICAgIGNvbnN0IGVxdWl2YWxlbnQgPSAoY3VycmVudEZsb29yTW9kdWx1cyAqIDEwMCkgLyBtb2R1bHVzO1xuXG4gICAgICByZXR1cm4gZmxvb3IgKyBlcXVpdmFsZW50IC8gMTAwO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY3VycmVudFBhZ2U7XG4gICAgfVxuICB9LCBbY3VycmVudFBhZ2UsIGRlY2ltYWxQYWdlc10pO1xuICBjb25zdCByYW5kID0gdXNlTWVtbygoKSA9PiBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCksIFtdKTtcbiAgY29uc3QgcGFnZUluZGV4ID0gcGFnZSAtIDE7XG4gIGNvbnN0IHBhZ2VzID0gdXNlTWVtbygoKSA9PiBNYXRoLmNlaWwoZGVjaW1hbFBhZ2VzKSwgW2RlY2ltYWxQYWdlc10pO1xuICBjb25zdCBudW1CYWxscyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG51bUJhbGxzID0gcGFnZXMgPj0gTUFYX0JBTExTID8gTUFYX0JBTExTIDogTWF0aC5jZWlsKHBhZ2VzKTtcblxuICAgIHJldHVybiBudW1CYWxscztcbiAgfSwgW3BhZ2VzXSk7XG5cbiAgY29uc3QgaW5kZXhGb3JUaGVCYWxsc0NlbnRlciA9IHVzZU1lbW8oKCkgPT4gKG51bUJhbGxzIC0gMSkgLyAyLCBbbnVtQmFsbHNdKTtcbiAgY29uc3QgYmFsbHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBpbmRleEZvckxhc3RQYWdlcyA9IHBhZ2VzICsgMSAtIGluZGV4Rm9yVGhlQmFsbHNDZW50ZXI7XG4gICAgLyoqXG4gICAgICogSXMgdGhlIHBhZ2UgaW5kZXggKHBvc2l0aW9uIG9mIHRoZSBjZW50ZXIpXG4gICAgICogYWZ0ZXIgdGhlIGZpcnN0IHBhZ2VzIGFuZFxuICAgICAqIGJlZm9yZSB0aGUgbGFzdCBwYWdlcyAqL1xuICAgIGNvbnN0IGlzQ2VudGVyUGFnZSA9XG4gICAgICBudW1CYWxscyA+PSBNQVhfQkFMTFMgJiZcbiAgICAgIHBhZ2VJbmRleCA+IGluZGV4Rm9yVGhlQmFsbHNDZW50ZXIgJiZcbiAgICAgIHBhZ2VJbmRleCA8IGluZGV4Rm9yTGFzdFBhZ2VzIC0gMTtcbiAgICBsZXQgbW9kdWx1cyA9XG4gICAgICBwYWdlSW5kZXggJVxuICAgICAgKDEgKyAoaW5kZXhGb3JUaGVCYWxsc0NlbnRlciAtIE1hdGguZmxvb3IoaW5kZXhGb3JUaGVCYWxsc0NlbnRlcikpKTtcbiAgICBjb25zdCByZXNldFBhZ2VJbmRleCA9IGlzQ2VudGVyUGFnZVxuICAgICAgPyBpbmRleEZvclRoZUJhbGxzQ2VudGVyICsgbW9kdWx1c1xuICAgICAgOiBwYWdlcyA8IE1BWF9CQUxMU1xuICAgICAgPyBwYWdlSW5kZXhcbiAgICAgIDogcGFnZUluZGV4ID49IGluZGV4Rm9yTGFzdFBhZ2VzIC0gMVxuICAgICAgPyBudW1CYWxscyAtIChwYWdlcyAtIHBhZ2VJbmRleClcbiAgICAgIDogcGFnZUluZGV4O1xuICAgIGNvbnN0IGxlZnQgPSBlYWNoQmFsbFdpZHRoRW0gKiByZXNldFBhZ2VJbmRleDtcbiAgICBjb25zdCB7IHB1c2hCYWxsc1RvUmlnaHRCeSwgcHVzaEJhbGxzVG9MZWZ0QnksIHB1c2hHdWlkZVRvUmlnaHRCeSB9ID1cbiAgICAgIG1vZGUgPT09IFBhZ2luYXRpb25JbmRpY2F0b3JNb2RlLkNFTlRFUkVEXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcHVzaEJhbGxzVG9SaWdodEJ5OiBNYXRoLm1pbihwYWdlcywgTUFYX0JBTExTKSAqIGVhY2hCYWxsV2lkdGhFbSxcbiAgICAgICAgICAgIHB1c2hCYWxsc1RvTGVmdEJ5OiBsZWZ0LFxuICAgICAgICAgICAgcHVzaEd1aWRlVG9SaWdodEJ5OiAwLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7XG4gICAgICAgICAgICBwdXNoQmFsbHNUb1JpZ2h0Qnk6IChlYWNoQmFsbFdpZHRoRW0gLSAwLjUpIC8gMixcbiAgICAgICAgICAgIHB1c2hCYWxsc1RvTGVmdEJ5OiAwLFxuICAgICAgICAgICAgcHVzaEd1aWRlVG9SaWdodEJ5OiBsZWZ0LFxuICAgICAgICAgIH07XG4gICAgbGV0IHB1c2hUb0xlZnQ6IG51bWJlciA9IDA7XG4gICAgcmV0dXJuIG5ldyBBcnJheShDRU5URVJfR1VJREVfQkFMTCArIG51bUJhbGxzKVxuICAgICAgLmZpbGwodW5kZWZpbmVkKVxuICAgICAgLm1hcCgoXywgaSkgPT4ge1xuICAgICAgICBjb25zdCBpc0xhc3RCYWxsID0gaSA9PT0gbnVtQmFsbHMgLSAxO1xuICAgICAgICBjb25zdCBpc0ZpcnN0QmFsbCA9IGkgPT09IDA7XG5cbiAgICAgICAgaWYgKGkgPT09IG51bUJhbGxzKSB7XG4gICAgICAgICAgY29uc3QgZGlhbWV0ZXIgPSAwLjQ1ICogMjtcbiAgICAgICAgICBjb25zdCBwYWRkaW5nID0gKGVhY2hCYWxsV2lkdGhFbSAtIGRpYW1ldGVyKSAvIDI7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICAgIGZpbGw9XCIjZmZmXCJcbiAgICAgICAgICAgICAgd2lkdGg9e2Ake2RpYW1ldGVyfWVtYH1cbiAgICAgICAgICAgICAgaGVpZ2h0PXtgJHtkaWFtZXRlcn1lbWB9XG4gICAgICAgICAgICAgIHg9e2Ake1xuICAgICAgICAgICAgICAgIHB1c2hCYWxsc1RvUmlnaHRCeSAtIHBhZGRpbmcgKyBwdXNoR3VpZGVUb1JpZ2h0QnkgLSBwdXNoVG9MZWZ0XG4gICAgICAgICAgICAgIH1lbWB9XG4gICAgICAgICAgICAgIHk9e2Ake3BhZGRpbmd9ZW1gfVxuICAgICAgICAgICAgICByeD17YCR7ZGlhbWV0ZXIgLyAyfWVtYH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJhbGxTaXplID1cbiAgICAgICAgICBudW1CYWxscyA8IE1BWF9CQUxMU1xuICAgICAgICAgICAgPyAwLjVcbiAgICAgICAgICAgIDogcGFnZSA8PSBpbmRleEZvclRoZUJhbGxzQ2VudGVyICsgMSAmJiBpc0xhc3RCYWxsXG4gICAgICAgICAgICA/IDBcbiAgICAgICAgICAgIDogcGFnZUluZGV4ID49IGluZGV4Rm9yTGFzdFBhZ2VzIC0gMSAmJiBpc0ZpcnN0QmFsbFxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IGlzQ2VudGVyUGFnZVxuICAgICAgICAgICAgPyBpc0ZpcnN0QmFsbFxuICAgICAgICAgICAgICA/IDAuNSAtIG1vZHVsdXMgKiAwLjVcbiAgICAgICAgICAgICAgOiBpc0xhc3RCYWxsXG4gICAgICAgICAgICAgID8gbW9kdWx1cyAqIDAuNVxuICAgICAgICAgICAgICA6IDAuNVxuICAgICAgICAgICAgOiAwLjU7XG5cbiAgICAgICAgaWYgKGkgPT09IDAgJiYgbW9kZSA9PT0gUGFnaW5hdGlvbkluZGljYXRvck1vZGUuU1RBUlQpXG4gICAgICAgICAgcHVzaFRvTGVmdCA9ICgwLjUgLSBiYWxsU2l6ZSkgKiAyLjQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8cmVjdFxuICAgICAgICAgICAga2V5PXtgZ3VpZGUtJHtpfWB9XG4gICAgICAgICAgICB3aWR0aD17YCR7YmFsbFNpemUgKiAxLjJ9ZW1gfVxuICAgICAgICAgICAgaGVpZ2h0PXtgJHtiYWxsU2l6ZSAqIDEuMn1lbWB9XG4gICAgICAgICAgICB4PXtgJHtcbiAgICAgICAgICAgICAgcHVzaEJhbGxzVG9SaWdodEJ5ICtcbiAgICAgICAgICAgICAgaSAqIGVhY2hCYWxsV2lkdGhFbSAtXG4gICAgICAgICAgICAgIHB1c2hCYWxsc1RvTGVmdEJ5IC1cbiAgICAgICAgICAgICAgcHVzaFRvTGVmdFxuICAgICAgICAgICAgfWVtYH1cbiAgICAgICAgICAgIHk9e2AkeyhlYWNoQmFsbFdpZHRoRW0gLSBiYWxsU2l6ZSAqIDEuMikgLyAyfWVtYH1cbiAgICAgICAgICAgIHJ4PXtgJHsoYmFsbFNpemUgKiAxLjIpIC8gMn1lbWB9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChvbkNsaWNrUGFnZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VDbGlja2VkID1cbiAgICAgICAgICAgICAgICAgICghaXNDZW50ZXJQYWdlXG4gICAgICAgICAgICAgICAgICAgID8gcGFnZUluZGV4ID49IGluZGV4Rm9yTGFzdFBhZ2VzIC0gMVxuICAgICAgICAgICAgICAgICAgICAgID8gTWF0aC5mbG9vcihwYWdlKSAtIHJlc2V0UGFnZUluZGV4IC0gMVxuICAgICAgICAgICAgICAgICAgICAgIDogMFxuICAgICAgICAgICAgICAgICAgICA6IE1hdGguZmxvb3IocGFnZSkgLSAoaW5kZXhGb3JUaGVCYWxsc0NlbnRlciArIDEpKSArXG4gICAgICAgICAgICAgICAgICAxICtcbiAgICAgICAgICAgICAgICAgIGk7XG4gICAgICAgICAgICAgICAgb25DbGlja1BhZ2UoTWF0aC5yb3VuZChwYWdlQ2xpY2tlZCkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfSwgW2luZGV4Rm9yVGhlQmFsbHNDZW50ZXIsIHBhZ2VJbmRleCwgcGFnZXNdKTtcbiAgY29uc3QgW2d1aWRlQmFsbCwgLi4ucGFnZUJhbGxzXSA9IGJhbGxzLnJldmVyc2UoKTtcbiAgbGV0IHdpZHRoID0gZWFjaEJhbGxXaWR0aEVtICogTWF0aC5taW4ocGFnZXMsIE1BWF9CQUxMUykgKiAyO1xuICBpZiAobW9kZSA9PT0gUGFnaW5hdGlvbkluZGljYXRvck1vZGUuU1RBUlQpIHdpZHRoIC89IDI7XG5cbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICBzdHlsZT17e1xuICAgICAgICB3aWR0aDogYCR7d2lkdGh9ZW1gLFxuICAgICAgICBtaW5XaWR0aDogYCR7d2lkdGh9ZW1gLFxuICAgICAgICBoZWlnaHQ6IFwiMS4yZW1cIixcbiAgICAgICAgZm9udFNpemU6IGAke3NpemV9cHhgLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8ZmlsdGVyIGlkPXtgZ29vLSR7cmFuZH1gfT5cbiAgICAgICAgPGZlR2F1c3NpYW5CbHVyIGluPVwiU291cmNlR3JhcGhpY1wiIHJlc3VsdD1cImJsdXJcIiBzdGREZXZpYXRpb249XCI1XCIgLz5cbiAgICAgICAgPGZlQ29sb3JNYXRyaXhcbiAgICAgICAgICBpbj1cImJsdXJcIlxuICAgICAgICAgIG1vZGU9XCJtYXRyaXhcIlxuICAgICAgICAgIHZhbHVlcz1cIjEgMCAwIDAgMCAgMCAxIDAgMCAwICAwIDAgMSAwIDAgIDAgMCAwIDE4IC03XCJcbiAgICAgICAgICByZXN1bHQ9XCJnb29cIlxuICAgICAgICAvPlxuICAgICAgICA8ZmVCbGVuZCBpbjI9XCJnb29cIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiByZXN1bHQ9XCJtaXhcIiAvPlxuICAgICAgPC9maWx0ZXI+XG4gICAgICA8bWFzayBpZD17YG1hc2stJHtyYW5kfWB9PlxuICAgICAgICA8ZyBmaWx0ZXI9e2B1cmwoIyR7YGdvby0ke3JhbmR9YH0pYH0gZmlsbD1cIiNmZmZcIj5cbiAgICAgICAgICB7W3BhZ2VCYWxsc119XG4gICAgICAgICAge2d1aWRlQmFsbH1cbiAgICAgICAgPC9nPlxuICAgICAgPC9tYXNrPlxuICAgICAgPHJlY3RcbiAgICAgICAgeD1cIjBcIlxuICAgICAgICB5PVwiMFwiXG4gICAgICAgIG1hc2s9e2B1cmwoIyR7YG1hc2stJHtyYW5kfWB9KWB9XG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICBzdHlsZT17eyBmaWxsOiBcInZhcigtLWRpZ2l0YWwtYmx1ZSlcIiB9fVxuICAgICAgPjwvcmVjdD5cbiAgICAgIHtvbkNsaWNrUGFnZSAmJiAoXG4gICAgICAgIDxnIG9wYWNpdHk9ezB9IHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX0+XG4gICAgICAgICAge3BhZ2VCYWxsc31cbiAgICAgICAgPC9nPlxuICAgICAgKX1cbiAgICA8L3N2Zz5cbiAgKTtcbn1cblxuZnVuY3Rpb24gX1BhZ2luYXRpb25JbmRpY2F0b3IoXG4gIHtcbiAgICBzY3JvbGxhYmxlUmVmLFxuICAgIGVzdGltYXRlZFdpZHRoLFxuICAgIHNpemUsXG4gICAgY2xhc3NOYW1lID0gXCJcIixcbiAgICBvbkNsaWNrUGFnZSxcbiAgfToge1xuICAgIHNjcm9sbGFibGVSZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gICAgZXN0aW1hdGVkV2lkdGg/OiBudW1iZXI7XG4gICAgc2l6ZTogbnVtYmVyO1xuICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICBvbkNsaWNrUGFnZT86IChwYWdlOiBudW1iZXIpID0+IHZvaWQ7XG4gIH0sXG4gIHJlZjogRm9yd2FyZGVkUmVmPHtcbiAgICByZWZyZXNoUGFnZXM6ICgpID0+IHZvaWQ7XG4gIH0+XG4pIHtcbiAgY29uc3QgW2N1cnJlbnRQYWdlLCBzZXRDdXJyZW50UGFnZV0gPSB1c2VTdGF0ZSgxKTtcblxuICBjb25zdCBbZGVmcywgc2V0RGVmc10gPVxuICAgIHVzZVN0YXRlPHtcbiAgICAgIHBhZ2VzOiBudW1iZXI7XG4gICAgfT4oKTtcblxuICBjb25zdCByZWZyZXNoUGFnZXMgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCFzY3JvbGxhYmxlUmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBjb25zdCBtYXhXaWR0aCA9XG4gICAgICBlc3RpbWF0ZWRXaWR0aCA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gc2Nyb2xsYWJsZVJlZi5jdXJyZW50IS5zY3JvbGxXaWR0aFxuICAgICAgICA6IGVzdGltYXRlZFdpZHRoO1xuXG4gICAgY29uc3QgcGFnZXMgPSBtYXhXaWR0aCAvIHNjcm9sbGFibGVSZWYuY3VycmVudCEuY2xpZW50V2lkdGg7XG4gICAgaWYgKHBhZ2VzID4gMSlcbiAgICAgIHNldERlZnMoe1xuICAgICAgICBwYWdlcyxcbiAgICAgIH0pO1xuICB9LCBbZXN0aW1hdGVkV2lkdGhdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4gcmVmcmVzaFBhZ2VzKCksIFtyZWZyZXNoUGFnZXNdKTtcblxuICBjb25zdCB1cGRhdGVQYWdlSW5kaWNhdG9ycyA9IHVzZUNhbGxiYWNrKFxuICAgICh0YXJnZXQ6IEhUTUxEaXZFbGVtZW50LCBwYWdlczogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoIXNjcm9sbGFibGVSZWYuY3VycmVudCkgcmV0dXJuO1xuICAgICAgY29uc3QgZWFjaFBhZ2VXaWR0aCA9IHNjcm9sbGFibGVSZWYuY3VycmVudCEuY2xpZW50V2lkdGg7XG4gICAgICBjb25zdCBwYWdlID0gMSArIHRhcmdldC5zY3JvbGxMZWZ0IC8gZWFjaFBhZ2VXaWR0aDtcbiAgICAgIGNvbnN0IGxhc3RQYWdlUHJvZ3Jlc3MgPSBNYXRoLmZsb29yKHBhZ2VzKSArIDE7XG4gICAgICBjb25zdCBtYXhpbXVtUHJvZ3Jlc3MgPSBwYWdlcyArIDE7XG5cbiAgICAgIGNvbnN0IGRpZmZUb01heCA9IG1heGltdW1Qcm9ncmVzcyAtIGxhc3RQYWdlUHJvZ3Jlc3M7XG4gICAgICBjb25zdCBjdXJyZW50UHJvZ3Jlc3NPbkRpZmYgPSBwYWdlIC0gbGFzdFBhZ2VQcm9ncmVzcztcblxuICAgICAgaWYgKHBhZ2UgPiBsYXN0UGFnZVByb2dyZXNzKVxuICAgICAgICBzZXRDdXJyZW50UGFnZShsYXN0UGFnZVByb2dyZXNzICsgY3VycmVudFByb2dyZXNzT25EaWZmIC8gZGlmZlRvTWF4KTtcbiAgICAgIGVsc2Ugc2V0Q3VycmVudFBhZ2UocGFnZSk7XG4gICAgfSxcbiAgICBbXVxuICApO1xuXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgcmVmLFxuICAgICgpID0+ICh7XG4gICAgICByZWZyZXNoUGFnZXMsXG4gICAgfSksXG4gICAgW11cbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZGVmcykgcmV0dXJuO1xuICAgIGNvbnN0IGVsID0gc2Nyb2xsYWJsZVJlZi5jdXJyZW50ITtcbiAgICBjb25zdCBvblNjcm9sbCA9IChlOiBFdmVudCkgPT5cbiAgICAgIHVwZGF0ZVBhZ2VJbmRpY2F0b3JzKGUuY3VycmVudFRhcmdldCBhcyBIVE1MRGl2RWxlbWVudCwgZGVmcy5wYWdlcyk7XG4gICAgdXBkYXRlUGFnZUluZGljYXRvcnMoZWwsIGRlZnMucGFnZXMpO1xuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgb25TY3JvbGwsIHtcbiAgICAgIHBhc3NpdmU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBvblNjcm9sbCk7XG4gICAgfTtcbiAgfSwgW2RlZnNdKTtcblxuICBjb25zdCBwYWdlcyA9IHVzZU1lbW8oKCkgPT4gKGRlZnMgPyBkZWZzLnBhZ2VzIDogdW5kZWZpbmVkKSwgW2RlZnNdKTtcblxuICByZXR1cm4gIXBhZ2VzID8gbnVsbCA6IChcbiAgICA8UGFnaW5hdGlvbkluZGljYXRvclZpZXdcbiAgICAgIHBhZ2VzPXtwYWdlc31cbiAgICAgIHBhZ2U9e2N1cnJlbnRQYWdlfVxuICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgb25DbGlja1BhZ2U9e29uQ2xpY2tQYWdlfVxuICAgIC8+XG4gICk7XG59XG5cbmNvbnN0IFBhZ2luYXRpb25JbmRpY2F0b3IgPSBmb3J3YXJkUmVmKF9QYWdpbmF0aW9uSW5kaWNhdG9yKTtcbmV4cG9ydCBkZWZhdWx0IFBhZ2luYXRpb25JbmRpY2F0b3I7XG5cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBU2UsU0FBQUMseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFILHdCQUFBTyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFaLEdBQUEsUUFBQVksR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixHQUFBLEVBQUFZLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFYLEdBQUEsRUFBQVksR0FBQSxjQUFBSSxJQUFBLEtBQUFBLElBQUEsQ0FBQVYsR0FBQSxJQUFBVSxJQUFBLENBQUFDLEdBQUEsS0FBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFILE1BQUEsRUFBQUssR0FBQSxFQUFBSSxJQUFBLFlBQUFULE1BQUEsQ0FBQUssR0FBQSxJQUFBWixHQUFBLENBQUFZLEdBQUEsU0FBQUwsTUFBQSxDQUFBSixPQUFBLEdBQUFILEdBQUEsTUFBQUksS0FBQSxJQUFBQSxLQUFBLENBQUFhLEdBQUEsQ0FBQWpCLEdBQUEsRUFBQU8sTUFBQSxZQUFBQSxNQUFBO0FBQUEsU0FBQVcsZUFBQUMsR0FBQSxFQUFBQyxDQUFBLFdBQUFDLGVBQUEsQ0FBQUYsR0FBQSxLQUFBRyxxQkFBQSxDQUFBSCxHQUFBLEVBQUFDLENBQUEsS0FBQUcsMkJBQUEsQ0FBQUosR0FBQSxFQUFBQyxDQUFBLEtBQUFJLGdCQUFBO0FBQUEsU0FBQUYsc0JBQUFILEdBQUEsRUFBQUMsQ0FBQSxRQUFBSyxFQUFBLFdBQUFOLEdBQUEsZ0NBQUFPLE1BQUEsSUFBQVAsR0FBQSxDQUFBTyxNQUFBLENBQUFDLFFBQUEsS0FBQVIsR0FBQSw0QkFBQU0sRUFBQSxRQUFBRyxFQUFBLEVBQUFDLEVBQUEsRUFBQUMsRUFBQSxFQUFBQyxFQUFBLEVBQUFDLElBQUEsT0FBQUMsRUFBQSxPQUFBQyxFQUFBLGlCQUFBSixFQUFBLElBQUFMLEVBQUEsR0FBQUEsRUFBQSxDQUFBVixJQUFBLENBQUFJLEdBQUEsR0FBQWdCLElBQUEsUUFBQWYsQ0FBQSxRQUFBWCxNQUFBLENBQUFnQixFQUFBLE1BQUFBLEVBQUEsVUFBQVEsRUFBQSx1QkFBQUEsRUFBQSxJQUFBTCxFQUFBLEdBQUFFLEVBQUEsQ0FBQWYsSUFBQSxDQUFBVSxFQUFBLEdBQUFXLElBQUEsTUFBQUosSUFBQSxDQUFBSyxJQUFBLENBQUFULEVBQUEsQ0FBQVUsS0FBQSxHQUFBTixJQUFBLENBQUFPLE1BQUEsS0FBQW5CLENBQUEsR0FBQWEsRUFBQSxpQkFBQU8sR0FBQSxJQUFBTixFQUFBLE9BQUFMLEVBQUEsR0FBQVcsR0FBQSx5QkFBQVAsRUFBQSxZQUFBUixFQUFBLENBQUFnQixNQUFBLEtBQUFWLEVBQUEsR0FBQU4sRUFBQSxDQUFBZ0IsTUFBQSxJQUFBaEMsTUFBQSxDQUFBc0IsRUFBQSxNQUFBQSxFQUFBLDJCQUFBRyxFQUFBLFFBQUFMLEVBQUEsYUFBQUcsSUFBQTtBQUFBLFNBQUFVLFNBQUF2QixHQUFBLFdBQUFFLGVBQUEsQ0FBQUYsR0FBQSxLQUFBd0IsZ0JBQUEsQ0FBQXhCLEdBQUEsS0FBQUksMkJBQUEsQ0FBQUosR0FBQSxLQUFBSyxnQkFBQTtBQUFBLFNBQUFBLGlCQUFBLGNBQUFvQixTQUFBO0FBQUEsU0FBQXJCLDRCQUFBc0IsQ0FBQSxFQUFBQyxNQUFBLFNBQUFELENBQUEscUJBQUFBLENBQUEsc0JBQUFFLGlCQUFBLENBQUFGLENBQUEsRUFBQUMsTUFBQSxPQUFBRSxDQUFBLEdBQUF2QyxNQUFBLENBQUFJLFNBQUEsQ0FBQW9DLFFBQUEsQ0FBQWxDLElBQUEsQ0FBQThCLENBQUEsRUFBQUssS0FBQSxhQUFBRixDQUFBLGlCQUFBSCxDQUFBLENBQUFNLFdBQUEsRUFBQUgsQ0FBQSxHQUFBSCxDQUFBLENBQUFNLFdBQUEsQ0FBQUMsSUFBQSxNQUFBSixDQUFBLGNBQUFBLENBQUEsbUJBQUFLLEtBQUEsQ0FBQUMsSUFBQSxDQUFBVCxDQUFBLE9BQUFHLENBQUEsK0RBQUFPLElBQUEsQ0FBQVAsQ0FBQSxVQUFBRCxpQkFBQSxDQUFBRixDQUFBLEVBQUFDLE1BQUE7QUFBQSxTQUFBQyxrQkFBQTVCLEdBQUEsRUFBQXFDLEdBQUEsUUFBQUEsR0FBQSxZQUFBQSxHQUFBLEdBQUFyQyxHQUFBLENBQUFvQixNQUFBLEVBQUFpQixHQUFBLEdBQUFyQyxHQUFBLENBQUFvQixNQUFBLFdBQUFuQixDQUFBLE1BQUFxQyxJQUFBLE9BQUFKLEtBQUEsQ0FBQUcsR0FBQSxHQUFBcEMsQ0FBQSxHQUFBb0MsR0FBQSxFQUFBcEMsQ0FBQSxJQUFBcUMsSUFBQSxDQUFBckMsQ0FBQSxJQUFBRCxHQUFBLENBQUFDLENBQUEsVUFBQXFDLElBQUE7QUFBQSxTQUFBZCxpQkFBQWUsSUFBQSxlQUFBaEMsTUFBQSxvQkFBQWdDLElBQUEsQ0FBQWhDLE1BQUEsQ0FBQUMsUUFBQSxhQUFBK0IsSUFBQSwrQkFBQUwsS0FBQSxDQUFBQyxJQUFBLENBQUFJLElBQUE7QUFBQSxTQUFBckMsZ0JBQUFGLEdBQUEsUUFBQWtDLEtBQUEsQ0FBQU0sT0FBQSxDQUFBeEMsR0FBQSxVQUFBQSxHQUFBO0FBRWYsTUFBTXlDLFNBQVMsR0FBRyxDQUFDO0FBQ25CLE1BQU1DLGVBQWUsR0FBRyxHQUFHO0FBRTNCLE1BQU1DLGlCQUFpQixHQUFHLENBQUM7QUFBQyxJQUVoQkMsdUJBQXVCLDBCQUF2QkEsdUJBQXVCO0VBQXZCQSx1QkFBdUIsQ0FBdkJBLHVCQUF1QjtFQUF2QkEsdUJBQXVCLENBQXZCQSx1QkFBdUI7RUFBQSxPQUF2QkEsdUJBQXVCO0FBQUE7QUFRbkM7QUFDQTtBQUNBO0FBRkFDLE9BQUEsQ0FBQUQsdUJBQUEsR0FBQUEsdUJBQUE7QUFHTyxTQUFTRSx1QkFBdUJBLENBQUFDLElBQUEsRUFjcEM7RUFBQSxJQWJEQyxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtJQUNFQyxXQUFXLEdBQUFGLElBQUEsQ0FBakJHLElBQUk7SUFDR0MsWUFBWSxHQUFBSixJQUFBLENBQW5CSyxLQUFLO0lBQ0xDLFNBQVMsR0FBQU4sSUFBQSxDQUFUTSxTQUFTO0lBQ1RDLFdBQVcsR0FBQVAsSUFBQSxDQUFYTyxXQUFXO0lBQUFDLFNBQUEsR0FBQVIsSUFBQSxDQUNYUyxJQUFJO0lBQUpBLElBQUksR0FBQUQsU0FBQSxjQUFHWCx1QkFBdUIsQ0FBQ2EsUUFBUSxHQUFBRixTQUFBO0VBU3ZDLE1BQU1MLElBQUksR0FBRyxJQUFBUSxjQUFPLEVBQUMsWUFBTTtJQUN6QixNQUFNQyxLQUFLLEdBQUdDLElBQUksQ0FBQ0QsS0FBSyxDQUFDUixZQUFZLENBQUM7SUFDdEMsTUFBTVUsT0FBTyxHQUFHVixZQUFZLEdBQUdRLEtBQUs7SUFFcEMsSUFBSVYsV0FBVyxHQUFHVSxLQUFLLEVBQUU7TUFDdkIsTUFBTUcsbUJBQW1CLEdBQUdiLFdBQVcsR0FBR1UsS0FBSztNQUMvQyxNQUFNSSxVQUFVLEdBQUlELG1CQUFtQixHQUFHLEdBQUcsR0FBSUQsT0FBTztNQUV4RCxPQUFPRixLQUFLLEdBQUdJLFVBQVUsR0FBRyxHQUFHO0lBQ2pDLENBQUMsTUFBTTtNQUNMLE9BQU9kLFdBQVc7SUFDcEI7RUFDRixDQUFDLEVBQUUsQ0FBQ0EsV0FBVyxFQUFFRSxZQUFZLENBQUMsQ0FBQztFQUMvQixNQUFNYSxJQUFJLEdBQUcsSUFBQU4sY0FBTyxFQUFDO0lBQUEsT0FBTUUsSUFBSSxDQUFDSyxNQUFNLENBQUMsQ0FBQyxDQUFDbkMsUUFBUSxDQUFDLENBQUM7RUFBQSxHQUFFLEVBQUUsQ0FBQztFQUN4RCxNQUFNb0MsU0FBUyxHQUFHaEIsSUFBSSxHQUFHLENBQUM7RUFDMUIsTUFBTUUsS0FBSyxHQUFHLElBQUFNLGNBQU8sRUFBQztJQUFBLE9BQU1FLElBQUksQ0FBQ08sSUFBSSxDQUFDaEIsWUFBWSxDQUFDO0VBQUEsR0FBRSxDQUFDQSxZQUFZLENBQUMsQ0FBQztFQUNwRSxNQUFNaUIsUUFBUSxHQUFHLElBQUFWLGNBQU8sRUFBQyxZQUFNO0lBQzdCLE1BQU1VLFFBQVEsR0FBR2hCLEtBQUssSUFBSVgsU0FBUyxHQUFHQSxTQUFTLEdBQUdtQixJQUFJLENBQUNPLElBQUksQ0FBQ2YsS0FBSyxDQUFDO0lBRWxFLE9BQU9nQixRQUFRO0VBQ2pCLENBQUMsRUFBRSxDQUFDaEIsS0FBSyxDQUFDLENBQUM7RUFFWCxNQUFNaUIsc0JBQXNCLEdBQUcsSUFBQVgsY0FBTyxFQUFDO0lBQUEsT0FBTSxDQUFDVSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUM7RUFBQSxHQUFFLENBQUNBLFFBQVEsQ0FBQyxDQUFDO0VBQzVFLE1BQU1FLEtBQUssR0FBRyxJQUFBWixjQUFPLEVBQUMsWUFBTTtJQUMxQixNQUFNYSxpQkFBaUIsR0FBR25CLEtBQUssR0FBRyxDQUFDLEdBQUdpQixzQkFBc0I7SUFDNUQ7QUFDSjtBQUNBO0FBQ0E7SUFDSSxNQUFNRyxZQUFZLEdBQ2hCSixRQUFRLElBQUkzQixTQUFTLElBQ3JCeUIsU0FBUyxHQUFHRyxzQkFBc0IsSUFDbENILFNBQVMsR0FBR0ssaUJBQWlCLEdBQUcsQ0FBQztJQUNuQyxJQUFJVixPQUFPLEdBQ1RLLFNBQVMsSUFDUixDQUFDLElBQUlHLHNCQUFzQixHQUFHVCxJQUFJLENBQUNELEtBQUssQ0FBQ1Usc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLE1BQU1JLGNBQWMsR0FBR0QsWUFBWSxHQUMvQkgsc0JBQXNCLEdBQUdSLE9BQU8sR0FDaENULEtBQUssR0FBR1gsU0FBUyxHQUNqQnlCLFNBQVMsR0FDVEEsU0FBUyxJQUFJSyxpQkFBaUIsR0FBRyxDQUFDLEdBQ2xDSCxRQUFRLElBQUloQixLQUFLLEdBQUdjLFNBQVMsQ0FBQyxHQUM5QkEsU0FBUztJQUNiLE1BQU1RLElBQUksR0FBR2hDLGVBQWUsR0FBRytCLGNBQWM7SUFDN0MsTUFBQUUsS0FBQSxHQUNFbkIsSUFBSSxLQUFLWix1QkFBdUIsQ0FBQ2EsUUFBUSxHQUNyQztRQUNFbUIsa0JBQWtCLEVBQUVoQixJQUFJLENBQUNpQixHQUFHLENBQUN6QixLQUFLLEVBQUVYLFNBQVMsQ0FBQyxHQUFHQyxlQUFlO1FBQ2hFb0MsaUJBQWlCLEVBQUVKLElBQUk7UUFDdkJLLGtCQUFrQixFQUFFO01BQ3RCLENBQUMsR0FDRDtRQUNFSCxrQkFBa0IsRUFBRSxDQUFDbEMsZUFBZSxHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQy9Db0MsaUJBQWlCLEVBQUUsQ0FBQztRQUNwQkMsa0JBQWtCLEVBQUVMO01BQ3RCLENBQUM7TUFYQ0Usa0JBQWtCLEdBQUFELEtBQUEsQ0FBbEJDLGtCQUFrQjtNQUFFRSxpQkFBaUIsR0FBQUgsS0FBQSxDQUFqQkcsaUJBQWlCO01BQUVDLGtCQUFrQixHQUFBSixLQUFBLENBQWxCSSxrQkFBa0I7SUFZakUsSUFBSUMsVUFBa0IsR0FBRyxDQUFDO0lBQzFCLE9BQU8sSUFBSTlDLEtBQUssQ0FBQ1MsaUJBQWlCLEdBQUd5QixRQUFRLENBQUMsQ0FDM0NhLElBQUksQ0FBQ0MsU0FBUyxDQUFDLENBQ2ZDLEdBQUcsQ0FBQyxVQUFDQyxDQUFDLEVBQUVuRixDQUFDLEVBQUs7TUFDYixNQUFNb0YsVUFBVSxHQUFHcEYsQ0FBQyxLQUFLbUUsUUFBUSxHQUFHLENBQUM7TUFDckMsTUFBTWtCLFdBQVcsR0FBR3JGLENBQUMsS0FBSyxDQUFDO01BRTNCLElBQUlBLENBQUMsS0FBS21FLFFBQVEsRUFBRTtRQUNsQixNQUFNbUIsUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDO1FBQ3pCLE1BQU1DLE9BQU8sR0FBRyxDQUFDOUMsZUFBZSxHQUFHNkMsUUFBUSxJQUFJLENBQUM7UUFDaEQsb0JBQ0VsSCxNQUFBLENBQUFXLE9BQUEsQ0FBQXlHLGFBQUE7VUFDRVIsSUFBSSxFQUFDLE1BQU07VUFDWFMsS0FBSyxLQUFBQyxNQUFBLENBQUtKLFFBQVEsT0FBSztVQUN2QkssTUFBTSxLQUFBRCxNQUFBLENBQUtKLFFBQVEsT0FBSztVQUN4Qk0sQ0FBQyxLQUFBRixNQUFBLENBQ0NmLGtCQUFrQixHQUFHWSxPQUFPLEdBQUdULGtCQUFrQixHQUFHQyxVQUFVLE9BQzNEO1VBQ0xjLENBQUMsS0FBQUgsTUFBQSxDQUFLSCxPQUFPLE9BQUs7VUFDbEJPLEVBQUUsS0FBQUosTUFBQSxDQUFLSixRQUFRLEdBQUcsQ0FBQztRQUFLLENBQ3pCLENBQUM7TUFFTjtNQUVBLE1BQU1TLFFBQVEsR0FDWjVCLFFBQVEsR0FBRzNCLFNBQVMsR0FDaEIsR0FBRyxHQUNIUyxJQUFJLElBQUltQixzQkFBc0IsR0FBRyxDQUFDLElBQUlnQixVQUFVLEdBQ2hELENBQUMsR0FDRG5CLFNBQVMsSUFBSUssaUJBQWlCLEdBQUcsQ0FBQyxJQUFJZSxXQUFXLEdBQ2pELENBQUMsR0FDRGQsWUFBWSxHQUNaYyxXQUFXLEdBQ1QsR0FBRyxHQUFHekIsT0FBTyxHQUFHLEdBQUcsR0FDbkJ3QixVQUFVLEdBQ1Z4QixPQUFPLEdBQUcsR0FBRyxHQUNiLEdBQUcsR0FDTCxHQUFHO01BRVQsSUFBSTVELENBQUMsS0FBSyxDQUFDLElBQUl1RCxJQUFJLEtBQUtaLHVCQUF1QixDQUFDcUQsS0FBSyxFQUNuRGpCLFVBQVUsR0FBRyxDQUFDLEdBQUcsR0FBR2dCLFFBQVEsSUFBSSxHQUFHO01BRXJDLG9CQUNFM0gsTUFBQSxDQUFBVyxPQUFBLENBQUF5RyxhQUFBO1FBQ0VoRyxHQUFHLFdBQUFrRyxNQUFBLENBQVcxRixDQUFDLENBQUc7UUFDbEJ5RixLQUFLLEtBQUFDLE1BQUEsQ0FBS0ssUUFBUSxHQUFHLEdBQUcsT0FBSztRQUM3QkosTUFBTSxLQUFBRCxNQUFBLENBQUtLLFFBQVEsR0FBRyxHQUFHLE9BQUs7UUFDOUJILENBQUMsS0FBQUYsTUFBQSxDQUNDZixrQkFBa0IsR0FDbEIzRSxDQUFDLEdBQUd5QyxlQUFlLEdBQ25Cb0MsaUJBQWlCLEdBQ2pCRSxVQUFVLE9BQ1A7UUFDTGMsQ0FBQyxLQUFBSCxNQUFBLENBQUssQ0FBQ2pELGVBQWUsR0FBR3NELFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFLO1FBQ2pERCxFQUFFLEtBQUFKLE1BQUEsQ0FBTUssUUFBUSxHQUFHLEdBQUcsR0FBSSxDQUFDLE9BQUs7UUFDaENFLE9BQU8sRUFBRSxTQUFBQSxRQUFBLEVBQU07VUFDYixJQUFJNUMsV0FBVyxFQUFFO1lBQ2YsTUFBTTZDLFdBQVcsR0FDZixDQUFDLENBQUMzQixZQUFZLEdBQ1ZOLFNBQVMsSUFBSUssaUJBQWlCLEdBQUcsQ0FBQyxHQUNoQ1gsSUFBSSxDQUFDRCxLQUFLLENBQUNULElBQUksQ0FBQyxHQUFHdUIsY0FBYyxHQUFHLENBQUMsR0FDckMsQ0FBQyxHQUNIYixJQUFJLENBQUNELEtBQUssQ0FBQ1QsSUFBSSxDQUFDLElBQUltQixzQkFBc0IsR0FBRyxDQUFDLENBQUMsSUFDbkQsQ0FBQyxHQUNEcEUsQ0FBQztZQUNIcUQsV0FBVyxDQUFDTSxJQUFJLENBQUN3QyxLQUFLLENBQUNELFdBQVcsQ0FBQyxDQUFDO1VBQ3RDO1FBQ0Y7TUFBRSxDQUNILENBQUM7SUFFTixDQUFDLENBQUM7RUFDTixDQUFDLEVBQUUsQ0FBQzlCLHNCQUFzQixFQUFFSCxTQUFTLEVBQUVkLEtBQUssQ0FBQyxDQUFDO0VBQzlDLE1BQUFpRCxjQUFBLEdBQWtDL0IsS0FBSyxDQUFDZ0MsT0FBTyxDQUFDLENBQUM7SUFBQUMsZUFBQSxHQUFBaEYsUUFBQSxDQUFBOEUsY0FBQTtJQUExQ0csU0FBUyxHQUFBRCxlQUFBO0lBQUtFLFNBQVMsR0FBQUYsZUFBQSxDQUFBeEUsS0FBQTtFQUM5QixJQUFJMkQsS0FBSyxHQUFHaEQsZUFBZSxHQUFHa0IsSUFBSSxDQUFDaUIsR0FBRyxDQUFDekIsS0FBSyxFQUFFWCxTQUFTLENBQUMsR0FBRyxDQUFDO0VBQzVELElBQUllLElBQUksS0FBS1osdUJBQXVCLENBQUNxRCxLQUFLLEVBQUVQLEtBQUssSUFBSSxDQUFDO0VBRXRELG9CQUNFckgsTUFBQSxDQUFBVyxPQUFBLENBQUF5RyxhQUFBO0lBQ0VpQixPQUFPLEVBQUMsS0FBSztJQUNiQyxLQUFLLEVBQUMsNEJBQTRCO0lBQ2xDdEQsU0FBUyxFQUFFQSxTQUFVO0lBQ3JCdUQsS0FBSyxFQUFFO01BQ0xsQixLQUFLLEtBQUFDLE1BQUEsQ0FBS0QsS0FBSyxPQUFJO01BQ25CbUIsUUFBUSxLQUFBbEIsTUFBQSxDQUFLRCxLQUFLLE9BQUk7TUFDdEJFLE1BQU0sRUFBRSxPQUFPO01BQ2ZrQixRQUFRLEtBQUFuQixNQUFBLENBQUszQyxJQUFJO0lBQ25CO0VBQUUsZ0JBRUYzRSxNQUFBLENBQUFXLE9BQUEsQ0FBQXlHLGFBQUE7SUFBUXNCLEVBQUUsU0FBQXBCLE1BQUEsQ0FBUzNCLElBQUk7RUFBRyxnQkFDeEIzRixNQUFBLENBQUFXLE9BQUEsQ0FBQXlHLGFBQUE7SUFBZ0J1QixFQUFFLEVBQUMsZUFBZTtJQUFDQyxNQUFNLEVBQUMsTUFBTTtJQUFDQyxZQUFZLEVBQUM7RUFBRyxDQUFFLENBQUMsZUFDcEU3SSxNQUFBLENBQUFXLE9BQUEsQ0FBQXlHLGFBQUE7SUFDRXVCLEVBQUUsRUFBQyxNQUFNO0lBQ1R4RCxJQUFJLEVBQUMsUUFBUTtJQUNiMkQsTUFBTSxFQUFDLDhDQUE4QztJQUNyREYsTUFBTSxFQUFDO0VBQUssQ0FDYixDQUFDLGVBQ0Y1SSxNQUFBLENBQUFXLE9BQUEsQ0FBQXlHLGFBQUE7SUFBUzJCLEdBQUcsRUFBQyxLQUFLO0lBQUNKLEVBQUUsRUFBQyxlQUFlO0lBQUNDLE1BQU0sRUFBQztFQUFLLENBQUUsQ0FDOUMsQ0FBQyxlQUNUNUksTUFBQSxDQUFBVyxPQUFBLENBQUF5RyxhQUFBO0lBQU1zQixFQUFFLFVBQUFwQixNQUFBLENBQVUzQixJQUFJO0VBQUcsZ0JBQ3ZCM0YsTUFBQSxDQUFBVyxPQUFBLENBQUF5RyxhQUFBO0lBQUc0QixNQUFNLFVBQUExQixNQUFBLFFBQUFBLE1BQUEsQ0FBaUIzQixJQUFJLE9BQU07SUFBQ2lCLElBQUksRUFBQztFQUFNLEdBQzdDLENBQUN3QixTQUFTLENBQUMsRUFDWEQsU0FDQSxDQUNDLENBQUMsZUFDUG5JLE1BQUEsQ0FBQVcsT0FBQSxDQUFBeUcsYUFBQTtJQUNFSSxDQUFDLEVBQUMsR0FBRztJQUNMQyxDQUFDLEVBQUMsR0FBRztJQUNMd0IsSUFBSSxVQUFBM0IsTUFBQSxTQUFBQSxNQUFBLENBQWtCM0IsSUFBSSxPQUFNO0lBQ2hDMEIsS0FBSyxFQUFDLE1BQU07SUFDWkUsTUFBTSxFQUFDLE1BQU07SUFDYmdCLEtBQUssRUFBRTtNQUFFM0IsSUFBSSxFQUFFO0lBQXNCO0VBQUUsQ0FDbEMsQ0FBQyxFQUNQM0IsV0FBVyxpQkFDVmpGLE1BQUEsQ0FBQVcsT0FBQSxDQUFBeUcsYUFBQTtJQUFHOEIsT0FBTyxFQUFFLENBQUU7SUFBQ1gsS0FBSyxFQUFFO01BQUVZLE1BQU0sRUFBRTtJQUFVO0VBQUUsR0FDekNmLFNBQ0EsQ0FFRixDQUFDO0FBRVY7QUFFQSxTQUFTZ0Isb0JBQW9CQSxDQUFBQyxLQUFBLEVBYzNCQyxHQUVFLEVBQ0Y7RUFBQSxJQWZFQyxhQUFhLEdBQUFGLEtBQUEsQ0FBYkUsYUFBYTtJQUNiQyxjQUFjLEdBQUFILEtBQUEsQ0FBZEcsY0FBYztJQUNkN0UsSUFBSSxHQUFBMEUsS0FBQSxDQUFKMUUsSUFBSTtJQUFBOEUsZUFBQSxHQUFBSixLQUFBLENBQ0pyRSxTQUFTO0lBQVRBLFNBQVMsR0FBQXlFLGVBQUEsY0FBRyxFQUFFLEdBQUFBLGVBQUE7SUFDZHhFLFdBQVcsR0FBQW9FLEtBQUEsQ0FBWHBFLFdBQVc7RUFZYixNQUFBeUUsU0FBQSxHQUFzQyxJQUFBQyxlQUFRLEVBQUMsQ0FBQyxDQUFDO0lBQUFDLFVBQUEsR0FBQWxJLGNBQUEsQ0FBQWdJLFNBQUE7SUFBMUM5RSxXQUFXLEdBQUFnRixVQUFBO0lBQUVDLGNBQWMsR0FBQUQsVUFBQTtFQUVsQyxNQUFBRSxVQUFBLEdBQ0UsSUFBQUgsZUFBUSxFQUVMLENBQUM7SUFBQUksVUFBQSxHQUFBckksY0FBQSxDQUFBb0ksVUFBQTtJQUhDRSxJQUFJLEdBQUFELFVBQUE7SUFBRUUsT0FBTyxHQUFBRixVQUFBO0VBS3BCLE1BQU1HLFlBQVksR0FBRyxJQUFBQyxrQkFBVyxFQUFDLFlBQU07SUFDckMsSUFBSSxDQUFDWixhQUFhLENBQUNhLE9BQU8sRUFBRTtJQUM1QixNQUFNQyxRQUFRLEdBQ1piLGNBQWMsS0FBSzNDLFNBQVMsR0FDeEIwQyxhQUFhLENBQUNhLE9BQU8sQ0FBRUUsV0FBVyxHQUNsQ2QsY0FBYztJQUVwQixNQUFNekUsS0FBSyxHQUFHc0YsUUFBUSxHQUFHZCxhQUFhLENBQUNhLE9BQU8sQ0FBRUcsV0FBVztJQUMzRCxJQUFJeEYsS0FBSyxHQUFHLENBQUMsRUFDWGtGLE9BQU8sQ0FBQztNQUNObEYsS0FBSyxFQUFMQTtJQUNGLENBQUMsQ0FBQztFQUNOLENBQUMsRUFBRSxDQUFDeUUsY0FBYyxDQUFDLENBQUM7RUFFcEIsSUFBQWdCLGdCQUFTLEVBQUM7SUFBQSxPQUFNTixZQUFZLENBQUMsQ0FBQztFQUFBLEdBQUUsQ0FBQ0EsWUFBWSxDQUFDLENBQUM7RUFFL0MsTUFBTU8sb0JBQW9CLEdBQUcsSUFBQU4sa0JBQVcsRUFDdEMsVUFBQ08sTUFBc0IsRUFBRTNGLEtBQWEsRUFBSztJQUN6QyxJQUFJLENBQUN3RSxhQUFhLENBQUNhLE9BQU8sRUFBRTtJQUM1QixNQUFNTyxhQUFhLEdBQUdwQixhQUFhLENBQUNhLE9BQU8sQ0FBRUcsV0FBVztJQUN4RCxNQUFNMUYsSUFBSSxHQUFHLENBQUMsR0FBRzZGLE1BQU0sQ0FBQ0UsVUFBVSxHQUFHRCxhQUFhO0lBQ2xELE1BQU1FLGdCQUFnQixHQUFHdEYsSUFBSSxDQUFDRCxLQUFLLENBQUNQLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDOUMsTUFBTStGLGVBQWUsR0FBRy9GLEtBQUssR0FBRyxDQUFDO0lBRWpDLE1BQU1nRyxTQUFTLEdBQUdELGVBQWUsR0FBR0QsZ0JBQWdCO0lBQ3BELE1BQU1HLHFCQUFxQixHQUFHbkcsSUFBSSxHQUFHZ0csZ0JBQWdCO0lBRXJELElBQUloRyxJQUFJLEdBQUdnRyxnQkFBZ0IsRUFDekJoQixjQUFjLENBQUNnQixnQkFBZ0IsR0FBR0cscUJBQXFCLEdBQUdELFNBQVMsQ0FBQyxDQUFDLEtBQ2xFbEIsY0FBYyxDQUFDaEYsSUFBSSxDQUFDO0VBQzNCLENBQUMsRUFDRCxFQUNGLENBQUM7RUFFRCxJQUFBb0csMEJBQW1CLEVBQ2pCM0IsR0FBRyxFQUNIO0lBQUEsT0FBTztNQUNMWSxZQUFZLEVBQVpBO0lBQ0YsQ0FBQztFQUFBLENBQUMsRUFDRixFQUNGLENBQUM7RUFFRCxJQUFBTSxnQkFBUyxFQUFDLFlBQU07SUFDZCxJQUFJLENBQUNSLElBQUksRUFBRTtJQUNYLE1BQU1rQixFQUFFLEdBQUczQixhQUFhLENBQUNhLE9BQVE7SUFDakMsTUFBTWUsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLENBQVE7TUFBQSxPQUN4Qlgsb0JBQW9CLENBQUNXLENBQUMsQ0FBQ0MsYUFBYSxFQUFvQnJCLElBQUksQ0FBQ2pGLEtBQUssQ0FBQztJQUFBO0lBQ3JFMEYsb0JBQW9CLENBQUNTLEVBQUUsRUFBRWxCLElBQUksQ0FBQ2pGLEtBQUssQ0FBQztJQUNwQ21HLEVBQUUsQ0FBQ0ksZ0JBQWdCLENBQUMsUUFBUSxFQUFFSCxRQUFRLEVBQUU7TUFDdENJLE9BQU8sRUFBRTtJQUNYLENBQUMsQ0FBQztJQUNGLE9BQU8sWUFBTTtNQUNYTCxFQUFFLENBQUNNLG1CQUFtQixDQUFDLFFBQVEsRUFBRUwsUUFBUSxDQUFDO0lBQzVDLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ25CLElBQUksQ0FBQyxDQUFDO0VBRVYsTUFBTWpGLEtBQUssR0FBRyxJQUFBTSxjQUFPLEVBQUM7SUFBQSxPQUFPMkUsSUFBSSxHQUFHQSxJQUFJLENBQUNqRixLQUFLLEdBQUc4QixTQUFTO0VBQUEsQ0FBQyxFQUFFLENBQUNtRCxJQUFJLENBQUMsQ0FBQztFQUVwRSxPQUFPLENBQUNqRixLQUFLLEdBQUcsSUFBSSxnQkFDbEIvRSxNQUFBLENBQUFXLE9BQUEsQ0FBQXlHLGFBQUEsQ0FBQzNDLHVCQUF1QjtJQUN0Qk0sS0FBSyxFQUFFQSxLQUFNO0lBQ2JGLElBQUksRUFBRUQsV0FBWTtJQUNsQkQsSUFBSSxFQUFFQSxJQUFLO0lBQ1hLLFNBQVMsRUFBRUEsU0FBVTtJQUNyQkMsV0FBVyxFQUFFQTtFQUFZLENBQzFCLENBQ0Y7QUFDSDtBQUVBLE1BQU13RyxtQkFBbUIsZ0JBQUcsSUFBQUMsaUJBQVUsRUFBQ3RDLG9CQUFvQixDQUFDO0FBQUMsSUFBQXVDLFFBQUEsR0FDOUNGLG1CQUFtQjtBQUFBakgsT0FBQSxDQUFBN0QsT0FBQSxHQUFBZ0wsUUFBQSJ9
|
|
281
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJhcHBseSIsIl9zbGljZWRUb0FycmF5IiwiYXJyIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIl9pIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJfcyIsIl9lIiwiX3giLCJfciIsIl9hcnIiLCJfbiIsIl9kIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJlcnIiLCJyZXR1cm4iLCJfdG9BcnJheSIsIl9pdGVyYWJsZVRvQXJyYXkiLCJUeXBlRXJyb3IiLCJvIiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJuIiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW4iLCJhcnIyIiwiaXRlciIsImlzQXJyYXkiLCJNQVhfQkFMTFMiLCJlYWNoQmFsbFdpZHRoRW0iLCJDRU5URVJfR1VJREVfQkFMTCIsIlBhZ2luYXRpb25JbmRpY2F0b3JNb2RlIiwiZXhwb3J0cyIsIlBhZ2luYXRpb25JbmRpY2F0b3JWaWV3IiwiX3JlZiIsInNpemUiLCJjdXJyZW50UGFnZSIsInBhZ2UiLCJkZWNpbWFsUGFnZXMiLCJwYWdlcyIsImNsYXNzTmFtZSIsIm9uQ2xpY2tQYWdlIiwiX3JlZiRtb2RlIiwibW9kZSIsIkNFTlRFUkVEIiwidXNlTWVtbyIsImZsb29yIiwiTWF0aCIsIm1vZHVsdXMiLCJjdXJyZW50Rmxvb3JNb2R1bHVzIiwiZXF1aXZhbGVudCIsInJhbmQiLCJyYW5kb20iLCJwYWdlSW5kZXgiLCJjZWlsIiwibnVtQmFsbHMiLCJpbmRleEZvclRoZUJhbGxzQ2VudGVyIiwiYmFsbHMiLCJpbmRleEZvckxhc3RQYWdlcyIsImlzQ2VudGVyUGFnZSIsInJlc2V0UGFnZUluZGV4IiwibGVmdCIsIl9yZWYyIiwicHVzaEJhbGxzVG9SaWdodEJ5IiwibWluIiwicHVzaEJhbGxzVG9MZWZ0QnkiLCJwdXNoR3VpZGVUb1JpZ2h0QnkiLCJwdXNoVG9MZWZ0IiwiZmlsbCIsInVuZGVmaW5lZCIsIm1hcCIsIl8iLCJpc0xhc3RCYWxsIiwiaXNGaXJzdEJhbGwiLCJkaWFtZXRlciIsInBhZGRpbmciLCJjcmVhdGVFbGVtZW50Iiwid2lkdGgiLCJjb25jYXQiLCJoZWlnaHQiLCJ4IiwieSIsInJ4IiwiYmFsbFNpemUiLCJTVEFSVCIsIm9uQ2xpY2siLCJwYWdlQ2xpY2tlZCIsInJvdW5kIiwiX2JhbGxzJHJldmVyc2UiLCJyZXZlcnNlIiwiX2JhbGxzJHJldmVyc2UyIiwiZ3VpZGVCYWxsIiwicGFnZUJhbGxzIiwidmVyc2lvbiIsInhtbG5zIiwic3R5bGUiLCJtaW5XaWR0aCIsImZvbnRTaXplIiwiaWQiLCJpbiIsInJlc3VsdCIsInN0ZERldmlhdGlvbiIsInZhbHVlcyIsImluMiIsImZpbHRlciIsIm1hc2siLCJvcGFjaXR5IiwiY3Vyc29yIiwiQW5pbWF0ZWRQYWdpbmF0aW9uSW5kaWNhdG9yIiwicHJvcHMiLCJwcmV2UGFnZSIsInVzZVJlZiIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsInBhZ2VQcm9ncmVzcyIsInNldFBhZ2VQcm9ncmVzcyIsInVzZUVmZmVjdCIsImRpZmYiLCJjdXJyZW50IiwiZGlmZlBlclN0ZXAiLCJpbnRlcnZhbCIsInNldEludGVydmFsIiwicHJldiIsImNsZWFySW50ZXJ2YWwiLCJOdW1iZXIiLCJ0b0ZpeGVkIiwiZHVyYXRpb24iLCJfUGFnaW5hdGlvbkluZGljYXRvciIsIl9yZWYzIiwicmVmIiwic2Nyb2xsYWJsZVJlZiIsImVzdGltYXRlZFdpZHRoIiwiX3JlZjMkY2xhc3NOYW1lIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZXRDdXJyZW50UGFnZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiZGVmcyIsInNldERlZnMiLCJyZWZyZXNoUGFnZXMiLCJ1c2VDYWxsYmFjayIsIm1heFdpZHRoIiwic2Nyb2xsV2lkdGgiLCJjbGllbnRXaWR0aCIsInVwZGF0ZVBhZ2VJbmRpY2F0b3JzIiwiZWFjaFBhZ2VXaWR0aCIsInNjcm9sbExlZnQiLCJsYXN0UGFnZVByb2dyZXNzIiwibWF4aW11bVByb2dyZXNzIiwiZGlmZlRvTWF4IiwiY3VycmVudFByb2dyZXNzT25EaWZmIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsImVsIiwib25TY3JvbGwiLCJlIiwiY3VycmVudFRhcmdldCIsImFkZEV2ZW50TGlzdGVuZXIiLCJwYXNzaXZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIlBhZ2luYXRpb25JbmRpY2F0b3IiLCJmb3J3YXJkUmVmIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9QYWdpbmF0aW9uSW5kaWNhdG9yL1BhZ2luYXRpb25JbmRpY2F0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBDb21wb25lbnRQcm9wcyxcbiAgRm9yd2FyZGVkUmVmLFxuICBmb3J3YXJkUmVmLFxuICBSZWZPYmplY3QsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuXG5jb25zdCBNQVhfQkFMTFMgPSA3O1xuY29uc3QgZWFjaEJhbGxXaWR0aEVtID0gMS4yO1xuXG5jb25zdCBDRU5URVJfR1VJREVfQkFMTCA9IDE7XG5cbmV4cG9ydCBlbnVtIFBhZ2luYXRpb25JbmRpY2F0b3JNb2RlIHtcbiAgLyoqIFRoaXMgd2lsbCBtYWtlIHRoZSBndWlkZSBiYWxsIGJlIGtlcHQgb24gY2VudGVyICAqL1xuICBDRU5URVJFRCxcblxuICAvKiogVGhpcyB3aWxsIG1ha2UgdGhlIGd1aWRlIGJhbGwgbW92ZSwgd2hpbGUgdGhlIGluZGljYXRvciBiYWxscyBrZWVwIGluIHBsYWNlICovXG4gIFNUQVJULFxufVxuZXhwb3J0IGZ1bmN0aW9uIFBhZ2luYXRpb25JbmRpY2F0b3JWaWV3KHtcbiAgc2l6ZSxcbiAgcGFnZTogY3VycmVudFBhZ2UsXG4gIHBhZ2VzOiBkZWNpbWFsUGFnZXMsXG4gIGNsYXNzTmFtZSxcbiAgb25DbGlja1BhZ2UsXG4gIG1vZGUgPSBQYWdpbmF0aW9uSW5kaWNhdG9yTW9kZS5DRU5URVJFRCxcbn06IHtcbiAgc2l6ZTogbnVtYmVyO1xuICBwYWdlOiBudW1iZXI7XG4gIHBhZ2VzOiBudW1iZXI7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgb25DbGlja1BhZ2U/OiAocGFnZTogbnVtYmVyKSA9PiB2b2lkO1xuICBtb2RlPzogUGFnaW5hdGlvbkluZGljYXRvck1vZGU7XG59KSB7XG4gIGNvbnN0IHBhZ2UgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBmbG9vciA9IE1hdGguZmxvb3IoZGVjaW1hbFBhZ2VzKTtcbiAgICBjb25zdCBtb2R1bHVzID0gZGVjaW1hbFBhZ2VzICUgZmxvb3I7XG5cbiAgICBpZiAoY3VycmVudFBhZ2UgPiBmbG9vcikge1xuICAgICAgY29uc3QgY3VycmVudEZsb29yTW9kdWx1cyA9IGN1cnJlbnRQYWdlICUgZmxvb3I7XG4gICAgICBjb25zdCBlcXVpdmFsZW50ID0gKGN1cnJlbnRGbG9vck1vZHVsdXMgKiAxMDApIC8gbW9kdWx1cztcblxuICAgICAgcmV0dXJuIGZsb29yICsgZXF1aXZhbGVudCAvIDEwMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGN1cnJlbnRQYWdlO1xuICAgIH1cbiAgfSwgW2N1cnJlbnRQYWdlLCBkZWNpbWFsUGFnZXNdKTtcbiAgY29uc3QgcmFuZCA9IHVzZU1lbW8oKCkgPT4gTWF0aC5yYW5kb20oKS50b1N0cmluZygpLCBbXSk7XG4gIGNvbnN0IHBhZ2VJbmRleCA9IHBhZ2UgLSAxO1xuICBjb25zdCBwYWdlcyA9IHVzZU1lbW8oKCkgPT4gTWF0aC5jZWlsKGRlY2ltYWxQYWdlcyksIFtkZWNpbWFsUGFnZXNdKTtcbiAgY29uc3QgbnVtQmFsbHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBudW1CYWxscyA9IHBhZ2VzID49IE1BWF9CQUxMUyA/IE1BWF9CQUxMUyA6IE1hdGguY2VpbChwYWdlcyk7XG5cbiAgICByZXR1cm4gbnVtQmFsbHM7XG4gIH0sIFtwYWdlc10pO1xuXG4gIGNvbnN0IGluZGV4Rm9yVGhlQmFsbHNDZW50ZXIgPSB1c2VNZW1vKCgpID0+IChudW1CYWxscyAtIDEpIC8gMiwgW251bUJhbGxzXSk7XG4gIGNvbnN0IGJhbGxzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgaW5kZXhGb3JMYXN0UGFnZXMgPSBwYWdlcyArIDEgLSBpbmRleEZvclRoZUJhbGxzQ2VudGVyO1xuICAgIC8qKlxuICAgICAqIElzIHRoZSBwYWdlIGluZGV4IChwb3NpdGlvbiBvZiB0aGUgY2VudGVyKVxuICAgICAqIGFmdGVyIHRoZSBmaXJzdCBwYWdlcyBhbmRcbiAgICAgKiBiZWZvcmUgdGhlIGxhc3QgcGFnZXMgKi9cbiAgICBjb25zdCBpc0NlbnRlclBhZ2UgPVxuICAgICAgbnVtQmFsbHMgPj0gTUFYX0JBTExTICYmXG4gICAgICBwYWdlSW5kZXggPiBpbmRleEZvclRoZUJhbGxzQ2VudGVyICYmXG4gICAgICBwYWdlSW5kZXggPCBpbmRleEZvckxhc3RQYWdlcyAtIDE7XG4gICAgbGV0IG1vZHVsdXMgPVxuICAgICAgcGFnZUluZGV4ICVcbiAgICAgICgxICsgKGluZGV4Rm9yVGhlQmFsbHNDZW50ZXIgLSBNYXRoLmZsb29yKGluZGV4Rm9yVGhlQmFsbHNDZW50ZXIpKSk7XG4gICAgY29uc3QgcmVzZXRQYWdlSW5kZXggPSBpc0NlbnRlclBhZ2VcbiAgICAgID8gaW5kZXhGb3JUaGVCYWxsc0NlbnRlciArIG1vZHVsdXNcbiAgICAgIDogcGFnZXMgPCBNQVhfQkFMTFNcbiAgICAgID8gcGFnZUluZGV4XG4gICAgICA6IHBhZ2VJbmRleCA+PSBpbmRleEZvckxhc3RQYWdlcyAtIDFcbiAgICAgID8gbnVtQmFsbHMgLSAocGFnZXMgLSBwYWdlSW5kZXgpXG4gICAgICA6IHBhZ2VJbmRleDtcbiAgICBjb25zdCBsZWZ0ID0gZWFjaEJhbGxXaWR0aEVtICogcmVzZXRQYWdlSW5kZXg7XG4gICAgY29uc3QgeyBwdXNoQmFsbHNUb1JpZ2h0QnksIHB1c2hCYWxsc1RvTGVmdEJ5LCBwdXNoR3VpZGVUb1JpZ2h0QnkgfSA9XG4gICAgICBtb2RlID09PSBQYWdpbmF0aW9uSW5kaWNhdG9yTW9kZS5DRU5URVJFRFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHB1c2hCYWxsc1RvUmlnaHRCeTogTWF0aC5taW4ocGFnZXMsIE1BWF9CQUxMUykgKiBlYWNoQmFsbFdpZHRoRW0sXG4gICAgICAgICAgICBwdXNoQmFsbHNUb0xlZnRCeTogbGVmdCxcbiAgICAgICAgICAgIHB1c2hHdWlkZVRvUmlnaHRCeTogMCxcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgcHVzaEJhbGxzVG9SaWdodEJ5OiAoZWFjaEJhbGxXaWR0aEVtIC0gMC41KSAvIDIsXG4gICAgICAgICAgICBwdXNoQmFsbHNUb0xlZnRCeTogMCxcbiAgICAgICAgICAgIHB1c2hHdWlkZVRvUmlnaHRCeTogbGVmdCxcbiAgICAgICAgICB9O1xuICAgIGxldCBwdXNoVG9MZWZ0OiBudW1iZXIgPSAwO1xuICAgIHJldHVybiBuZXcgQXJyYXkoQ0VOVEVSX0dVSURFX0JBTEwgKyBudW1CYWxscylcbiAgICAgIC5maWxsKHVuZGVmaW5lZClcbiAgICAgIC5tYXAoKF8sIGkpID0+IHtcbiAgICAgICAgY29uc3QgaXNMYXN0QmFsbCA9IGkgPT09IG51bUJhbGxzIC0gMTtcbiAgICAgICAgY29uc3QgaXNGaXJzdEJhbGwgPSBpID09PSAwO1xuXG4gICAgICAgIGlmIChpID09PSBudW1CYWxscykge1xuICAgICAgICAgIGNvbnN0IGRpYW1ldGVyID0gMC40NSAqIDI7XG4gICAgICAgICAgY29uc3QgcGFkZGluZyA9IChlYWNoQmFsbFdpZHRoRW0gLSBkaWFtZXRlcikgLyAyO1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8cmVjdFxuICAgICAgICAgICAgICBmaWxsPVwiI2ZmZlwiXG4gICAgICAgICAgICAgIHdpZHRoPXtgJHtkaWFtZXRlcn1lbWB9XG4gICAgICAgICAgICAgIGhlaWdodD17YCR7ZGlhbWV0ZXJ9ZW1gfVxuICAgICAgICAgICAgICB4PXtgJHtcbiAgICAgICAgICAgICAgICBwdXNoQmFsbHNUb1JpZ2h0QnkgLSBwYWRkaW5nICsgcHVzaEd1aWRlVG9SaWdodEJ5IC0gcHVzaFRvTGVmdFxuICAgICAgICAgICAgICB9ZW1gfVxuICAgICAgICAgICAgICB5PXtgJHtwYWRkaW5nfWVtYH1cbiAgICAgICAgICAgICAgcng9e2Ake2RpYW1ldGVyIC8gMn1lbWB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBiYWxsU2l6ZSA9XG4gICAgICAgICAgbnVtQmFsbHMgPCBNQVhfQkFMTFNcbiAgICAgICAgICAgID8gMC41XG4gICAgICAgICAgICA6IHBhZ2UgPD0gaW5kZXhGb3JUaGVCYWxsc0NlbnRlciArIDEgJiYgaXNMYXN0QmFsbFxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IHBhZ2VJbmRleCA+PSBpbmRleEZvckxhc3RQYWdlcyAtIDEgJiYgaXNGaXJzdEJhbGxcbiAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgOiBpc0NlbnRlclBhZ2VcbiAgICAgICAgICAgID8gaXNGaXJzdEJhbGxcbiAgICAgICAgICAgICAgPyAwLjUgLSBtb2R1bHVzICogMC41XG4gICAgICAgICAgICAgIDogaXNMYXN0QmFsbFxuICAgICAgICAgICAgICA/IG1vZHVsdXMgKiAwLjVcbiAgICAgICAgICAgICAgOiAwLjVcbiAgICAgICAgICAgIDogMC41O1xuXG4gICAgICAgIGlmIChpID09PSAwICYmIG1vZGUgPT09IFBhZ2luYXRpb25JbmRpY2F0b3JNb2RlLlNUQVJUKVxuICAgICAgICAgIHB1c2hUb0xlZnQgPSAoMC41IC0gYmFsbFNpemUpICogMi40O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgIGtleT17YGd1aWRlLSR7aX1gfVxuICAgICAgICAgICAgd2lkdGg9e2Ake2JhbGxTaXplICogMS4yfWVtYH1cbiAgICAgICAgICAgIGhlaWdodD17YCR7YmFsbFNpemUgKiAxLjJ9ZW1gfVxuICAgICAgICAgICAgeD17YCR7XG4gICAgICAgICAgICAgIHB1c2hCYWxsc1RvUmlnaHRCeSArXG4gICAgICAgICAgICAgIGkgKiBlYWNoQmFsbFdpZHRoRW0gLVxuICAgICAgICAgICAgICBwdXNoQmFsbHNUb0xlZnRCeSAtXG4gICAgICAgICAgICAgIHB1c2hUb0xlZnRcbiAgICAgICAgICAgIH1lbWB9XG4gICAgICAgICAgICB5PXtgJHsoZWFjaEJhbGxXaWR0aEVtIC0gYmFsbFNpemUgKiAxLjIpIC8gMn1lbWB9XG4gICAgICAgICAgICByeD17YCR7KGJhbGxTaXplICogMS4yKSAvIDJ9ZW1gfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBpZiAob25DbGlja1BhZ2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYWdlQ2xpY2tlZCA9XG4gICAgICAgICAgICAgICAgICAoIWlzQ2VudGVyUGFnZVxuICAgICAgICAgICAgICAgICAgICA/IHBhZ2VJbmRleCA+PSBpbmRleEZvckxhc3RQYWdlcyAtIDFcbiAgICAgICAgICAgICAgICAgICAgICA/IE1hdGguZmxvb3IocGFnZSkgLSByZXNldFBhZ2VJbmRleCAtIDFcbiAgICAgICAgICAgICAgICAgICAgICA6IDBcbiAgICAgICAgICAgICAgICAgICAgOiBNYXRoLmZsb29yKHBhZ2UpIC0gKGluZGV4Rm9yVGhlQmFsbHNDZW50ZXIgKyAxKSkgK1xuICAgICAgICAgICAgICAgICAgMSArXG4gICAgICAgICAgICAgICAgICBpO1xuICAgICAgICAgICAgICAgIG9uQ2xpY2tQYWdlKE1hdGgucm91bmQocGFnZUNsaWNrZWQpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfSk7XG4gIH0sIFtpbmRleEZvclRoZUJhbGxzQ2VudGVyLCBwYWdlSW5kZXgsIHBhZ2VzXSk7XG4gIGNvbnN0IFtndWlkZUJhbGwsIC4uLnBhZ2VCYWxsc10gPSBiYWxscy5yZXZlcnNlKCk7XG4gIGxldCB3aWR0aCA9IGVhY2hCYWxsV2lkdGhFbSAqIE1hdGgubWluKHBhZ2VzLCBNQVhfQkFMTFMpICogMjtcbiAgaWYgKG1vZGUgPT09IFBhZ2luYXRpb25JbmRpY2F0b3JNb2RlLlNUQVJUKSB3aWR0aCAvPSAyO1xuXG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgd2lkdGg6IGAke3dpZHRofWVtYCxcbiAgICAgICAgbWluV2lkdGg6IGAke3dpZHRofWVtYCxcbiAgICAgICAgaGVpZ2h0OiBcIjEuMmVtXCIsXG4gICAgICAgIGZvbnRTaXplOiBgJHtzaXplfXB4YCxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGZpbHRlciBpZD17YGdvby0ke3JhbmR9YH0+XG4gICAgICAgIDxmZUdhdXNzaWFuQmx1ciBpbj1cIlNvdXJjZUdyYXBoaWNcIiByZXN1bHQ9XCJibHVyXCIgc3RkRGV2aWF0aW9uPVwiNVwiIC8+XG4gICAgICAgIDxmZUNvbG9yTWF0cml4XG4gICAgICAgICAgaW49XCJibHVyXCJcbiAgICAgICAgICBtb2RlPVwibWF0cml4XCJcbiAgICAgICAgICB2YWx1ZXM9XCIxIDAgMCAwIDAgIDAgMSAwIDAgMCAgMCAwIDEgMCAwICAwIDAgMCAxOCAtN1wiXG4gICAgICAgICAgcmVzdWx0PVwiZ29vXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGZlQmxlbmQgaW4yPVwiZ29vXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgcmVzdWx0PVwibWl4XCIgLz5cbiAgICAgIDwvZmlsdGVyPlxuICAgICAgPG1hc2sgaWQ9e2BtYXNrLSR7cmFuZH1gfT5cbiAgICAgICAgPGcgZmlsdGVyPXtgdXJsKCMke2Bnb28tJHtyYW5kfWB9KWB9IGZpbGw9XCIjZmZmXCI+XG4gICAgICAgICAge1twYWdlQmFsbHNdfVxuICAgICAgICAgIHtndWlkZUJhbGx9XG4gICAgICAgIDwvZz5cbiAgICAgIDwvbWFzaz5cbiAgICAgIDxyZWN0XG4gICAgICAgIHg9XCIwXCJcbiAgICAgICAgeT1cIjBcIlxuICAgICAgICBtYXNrPXtgdXJsKCMke2BtYXNrLSR7cmFuZH1gfSlgfVxuICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICBoZWlnaHQ9XCIxMDAlXCJcbiAgICAgICAgc3R5bGU9e3sgZmlsbDogXCJ2YXIoLS1kaWdpdGFsLWJsdWUpXCIgfX1cbiAgICAgID48L3JlY3Q+XG4gICAgICB7b25DbGlja1BhZ2UgJiYgKFxuICAgICAgICA8ZyBvcGFjaXR5PXswfSBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19PlxuICAgICAgICAgIHtwYWdlQmFsbHN9XG4gICAgICAgIDwvZz5cbiAgICAgICl9XG4gICAgPC9zdmc+XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBbmltYXRlZFBhZ2luYXRpb25JbmRpY2F0b3IoXG4gIHByb3BzOiBDb21wb25lbnRQcm9wczx0eXBlb2YgUGFnaW5hdGlvbkluZGljYXRvclZpZXc+ICYge1xuICAgIGR1cmF0aW9uOiBudW1iZXI7XG4gIH1cbikge1xuICBjb25zdCBwcmV2UGFnZSA9IHVzZVJlZihwcm9wcy5wYWdlKTtcbiAgY29uc3QgW3BhZ2VQcm9ncmVzcywgc2V0UGFnZVByb2dyZXNzXSA9IHVzZVN0YXRlKHByb3BzLnBhZ2UpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGRpZmYgPSBwcm9wcy5wYWdlIC0gcHJldlBhZ2UuY3VycmVudDtcbiAgICBjb25zdCBkaWZmUGVyU3RlcCA9IGRpZmYgLyA2MDtcblxuICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgc2V0UGFnZVByb2dyZXNzKChwcmV2KSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHQgPSBwcmV2ICsgZGlmZlBlclN0ZXA7XG4gICAgICAgIGlmIChkaWZmIDwgMCkge1xuICAgICAgICAgIGlmIChuZXh0IDw9IHByb3BzLnBhZ2UpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnBhZ2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChuZXh0ID49IHByb3BzLnBhZ2UpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgICAgICAgcmV0dXJuIHByb3BzLnBhZ2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBOdW1iZXIobmV4dC50b0ZpeGVkKDIpKTtcbiAgICAgIH0pO1xuICAgIH0sIHByb3BzLmR1cmF0aW9uIC8gNjApO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHByZXZQYWdlLmN1cnJlbnQgPSBwcm9wcy5wYWdlO1xuICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbClcbiAgICB9O1xuICB9LCBbcHJvcHMucGFnZV0pO1xuXG4gIHJldHVybiA8UGFnaW5hdGlvbkluZGljYXRvclZpZXcgey4uLnByb3BzfSBwYWdlPXtwYWdlUHJvZ3Jlc3N9IC8+O1xufVxuXG5mdW5jdGlvbiBfUGFnaW5hdGlvbkluZGljYXRvcihcbiAge1xuICAgIHNjcm9sbGFibGVSZWYsXG4gICAgZXN0aW1hdGVkV2lkdGgsXG4gICAgc2l6ZSxcbiAgICBjbGFzc05hbWUgPSBcIlwiLFxuICAgIG9uQ2xpY2tQYWdlLFxuICB9OiB7XG4gICAgc2Nyb2xsYWJsZVJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgICBlc3RpbWF0ZWRXaWR0aD86IG51bWJlcjtcbiAgICBzaXplOiBudW1iZXI7XG4gICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgIG9uQ2xpY2tQYWdlPzogKHBhZ2U6IG51bWJlcikgPT4gdm9pZDtcbiAgfSxcbiAgcmVmOiBGb3J3YXJkZWRSZWY8e1xuICAgIHJlZnJlc2hQYWdlczogKCkgPT4gdm9pZDtcbiAgfT5cbikge1xuICBjb25zdCBbY3VycmVudFBhZ2UsIHNldEN1cnJlbnRQYWdlXSA9IHVzZVN0YXRlKDEpO1xuXG4gIGNvbnN0IFtkZWZzLCBzZXREZWZzXSA9XG4gICAgdXNlU3RhdGU8e1xuICAgICAgcGFnZXM6IG51bWJlcjtcbiAgICB9PigpO1xuXG4gIGNvbnN0IHJlZnJlc2hQYWdlcyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIXNjcm9sbGFibGVSZWYuY3VycmVudCkgcmV0dXJuO1xuICAgIGNvbnN0IG1heFdpZHRoID1cbiAgICAgIGVzdGltYXRlZFdpZHRoID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBzY3JvbGxhYmxlUmVmLmN1cnJlbnQhLnNjcm9sbFdpZHRoXG4gICAgICAgIDogZXN0aW1hdGVkV2lkdGg7XG5cbiAgICBjb25zdCBwYWdlcyA9IG1heFdpZHRoIC8gc2Nyb2xsYWJsZVJlZi5jdXJyZW50IS5jbGllbnRXaWR0aDtcbiAgICBpZiAocGFnZXMgPiAxKVxuICAgICAgc2V0RGVmcyh7XG4gICAgICAgIHBhZ2VzLFxuICAgICAgfSk7XG4gIH0sIFtlc3RpbWF0ZWRXaWR0aF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiByZWZyZXNoUGFnZXMoKSwgW3JlZnJlc2hQYWdlc10pO1xuXG4gIGNvbnN0IHVwZGF0ZVBhZ2VJbmRpY2F0b3JzID0gdXNlQ2FsbGJhY2soXG4gICAgKHRhcmdldDogSFRNTERpdkVsZW1lbnQsIHBhZ2VzOiBudW1iZXIpID0+IHtcbiAgICAgIGlmICghc2Nyb2xsYWJsZVJlZi5jdXJyZW50KSByZXR1cm47XG4gICAgICBjb25zdCBlYWNoUGFnZVdpZHRoID0gc2Nyb2xsYWJsZVJlZi5jdXJyZW50IS5jbGllbnRXaWR0aDtcbiAgICAgIGNvbnN0IHBhZ2UgPSAxICsgdGFyZ2V0LnNjcm9sbExlZnQgLyBlYWNoUGFnZVdpZHRoO1xuICAgICAgY29uc3QgbGFzdFBhZ2VQcm9ncmVzcyA9IE1hdGguZmxvb3IocGFnZXMpICsgMTtcbiAgICAgIGNvbnN0IG1heGltdW1Qcm9ncmVzcyA9IHBhZ2VzICsgMTtcblxuICAgICAgY29uc3QgZGlmZlRvTWF4ID0gbWF4aW11bVByb2dyZXNzIC0gbGFzdFBhZ2VQcm9ncmVzcztcbiAgICAgIGNvbnN0IGN1cnJlbnRQcm9ncmVzc09uRGlmZiA9IHBhZ2UgLSBsYXN0UGFnZVByb2dyZXNzO1xuXG4gICAgICBpZiAocGFnZSA+IGxhc3RQYWdlUHJvZ3Jlc3MpXG4gICAgICAgIHNldEN1cnJlbnRQYWdlKGxhc3RQYWdlUHJvZ3Jlc3MgKyBjdXJyZW50UHJvZ3Jlc3NPbkRpZmYgLyBkaWZmVG9NYXgpO1xuICAgICAgZWxzZSBzZXRDdXJyZW50UGFnZShwYWdlKTtcbiAgICB9LFxuICAgIFtdXG4gICk7XG5cbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZShcbiAgICByZWYsXG4gICAgKCkgPT4gKHtcbiAgICAgIHJlZnJlc2hQYWdlcyxcbiAgICB9KSxcbiAgICBbXVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkZWZzKSByZXR1cm47XG4gICAgY29uc3QgZWwgPSBzY3JvbGxhYmxlUmVmLmN1cnJlbnQhO1xuICAgIGNvbnN0IG9uU2Nyb2xsID0gKGU6IEV2ZW50KSA9PlxuICAgICAgdXBkYXRlUGFnZUluZGljYXRvcnMoZS5jdXJyZW50VGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50LCBkZWZzLnBhZ2VzKTtcbiAgICB1cGRhdGVQYWdlSW5kaWNhdG9ycyhlbCwgZGVmcy5wYWdlcyk7XG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBvblNjcm9sbCwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICB9KTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBvblNjcm9sbCk7XG4gICAgfTtcbiAgfSwgW2RlZnNdKTtcblxuICBjb25zdCBwYWdlcyA9IHVzZU1lbW8oKCkgPT4gKGRlZnMgPyBkZWZzLnBhZ2VzIDogdW5kZWZpbmVkKSwgW2RlZnNdKTtcblxuICByZXR1cm4gIXBhZ2VzID8gbnVsbCA6IChcbiAgICA8UGFnaW5hdGlvbkluZGljYXRvclZpZXdcbiAgICAgIHBhZ2VzPXtwYWdlc31cbiAgICAgIHBhZ2U9e2N1cnJlbnRQYWdlfVxuICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgb25DbGlja1BhZ2U9e29uQ2xpY2tQYWdlfVxuICAgIC8+XG4gICk7XG59XG5cbi8qKlxuICogQSBjb29sIGNvbXBvbmVudCB0byBpbmRpY2F0ZSBob3cgbWFueSBwYWdlcyBhcmVcbiAqKi9cbmNvbnN0IFBhZ2luYXRpb25JbmRpY2F0b3IgPSBmb3J3YXJkUmVmKF9QYWdpbmF0aW9uSW5kaWNhdG9yKTtcbmV4cG9ydCBkZWZhdWx0IFBhZ2luYXRpb25JbmRpY2F0b3I7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFXZSxTQUFBQyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQUgsd0JBQUFPLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEsQ0FBQU4sR0FBQSxTQUFBTyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVosR0FBQSxRQUFBWSxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFmLEdBQUEsRUFBQVksR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVgsR0FBQSxFQUFBWSxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FB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
|
|
@@ -11,5 +11,8 @@ declare type Props = PropsWithChildren<{
|
|
|
11
11
|
y: number;
|
|
12
12
|
};
|
|
13
13
|
}> & DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
|
|
14
|
+
/**
|
|
15
|
+
* It holds a children and animates a tilt effect relative to mouse position
|
|
16
|
+
**/
|
|
14
17
|
declare const Parallax: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
15
18
|
export default Parallax;
|