@itcase/ui 1.1.19 → 1.1.20

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 (156) hide show
  1. package/dist/{Accordion-uWRXripc.js → Accordion-DCk1_IOx.js} +1 -1
  2. package/dist/{Avatar-APOOlMd3.js → Avatar-EsnSFf8y.js} +1 -1
  3. package/dist/{Breadcrumbs-rRMuYnWJ.js → Breadcrumbs-lq8teNHv.js} +2 -2
  4. package/dist/{Button-DxZUKQ8I.js → Button-Dslt7OS2.js} +2 -2
  5. package/dist/{Cell-BJThS4YS.js → Cell-DtK-UEKE.js} +2 -2
  6. package/dist/{Choice-DVU4k0tu.js → Choice-CeVJI4H9.js} +1 -1
  7. package/dist/{ContextMenuItem-xssbnviQ.js → ContextMenuItem-BuJBuKmW.js} +1 -1
  8. package/dist/{CookiesWarning-Dcon4SS4.js → CookiesWarning-BQZ8f2hX.js} +2 -2
  9. package/dist/{DatePicker-D9UgOcue.js → DatePicker-DxTgMHIo.js} +3 -3
  10. package/dist/{DropdownItem-DB5nPIdl.js → DropdownItem-DftDKP1Y.js} +1 -1
  11. package/dist/{GridRow-CvYQDJ2W.js → GridRow-DRjyNWBh.js} +10 -19
  12. package/dist/{Group-DuHn_z2p.js → Group-BWwH31L7.js} +16 -4
  13. package/dist/{Icon-C0gtkmdU.js → Icon-DobrgUul.js} +2 -2
  14. package/dist/{InputPassword-D6OLQrVC.js → InputPassword-FuVE3fYp.js} +1 -1
  15. package/dist/{Label-0lMH0-AK.js → Label-Ch6YjDF4.js} +1 -1
  16. package/dist/{LanguageSelector-uOmIj9mJ.js → LanguageSelector-DrFlau3K.js} +1 -1
  17. package/dist/Link-CnzdHbwf.js +1864 -0
  18. package/dist/{ListItem-DMS6_Rtr.js → ListItem-CmWuDHgt.js} +1 -1
  19. package/dist/Logo-Dc9ImVCn.js +37 -0
  20. package/dist/{Menu-9u6BoWRL.js → Menu-D-C4q1An.js} +1 -1
  21. package/dist/{MenuItem-CXxL099U.js → MenuItem-Cs0KLPXi.js} +1 -1
  22. package/dist/{NotificationList-B48jz206.js → NotificationList-CaAYxwHB.js} +1 -1
  23. package/dist/{Pagination-Ch75clod.js → Pagination-z2n_5l-u.js} +2 -2
  24. package/dist/{Response-CgE3B1JS.js → Response-BXQPmdQr.js} +3 -3
  25. package/dist/{SearchResult-vA2t-ZGx.js → SearchResult-BsXiKcpx.js} +1 -1
  26. package/dist/{SiteMenuButton-CFPtqh_i.js → SiteMenuButton-DNMOi-I3.js} +1 -1
  27. package/dist/{Swiper-CP2ph4S3.js → Swiper-CXjE6qZR.js} +5 -5
  28. package/dist/{SwitchField-Cj0B7JdE.js → SwitchField-Djrsk1Th.js} +1 -1
  29. package/dist/{TabGroup-C4CbZgr7.js → TabGroup-c-myALzO.js} +1 -1
  30. package/dist/{Tile-B2HwgBDH.js → Tile-m0Q0UUPl.js} +1 -1
  31. package/dist/{Title-BAdU2oW_.js → Title-zpOK2AxL.js} +1 -1
  32. package/dist/{Tooltip-D46EmkZq.js → Tooltip-BYw26YRd.js} +1 -1
  33. package/dist/cjs/{Accordion-OI5oLjJY.js → Accordion-CGdZmC7z.js} +1 -1
  34. package/dist/cjs/{Avatar-BBAt1cKM.js → Avatar-CXkFUZni.js} +1 -1
  35. package/dist/cjs/{Breadcrumbs-DLTpOh1T.js → Breadcrumbs-GGwX18rz.js} +2 -2
  36. package/dist/cjs/{Button-C-K_KVjd.js → Button-DplZg-6U.js} +2 -2
  37. package/dist/cjs/{Cell-DpzvSs16.js → Cell-fldKcEHr.js} +2 -2
  38. package/dist/cjs/{Choice-nMRlWkpF.js → Choice-DwYPQwyf.js} +1 -1
  39. package/dist/cjs/{ContextMenuItem-D2wjhhzg.js → ContextMenuItem-D-wYq1Of.js} +1 -1
  40. package/dist/cjs/{CookiesWarning--Edz7Gcv.js → CookiesWarning-Cny73RI8.js} +2 -2
  41. package/dist/cjs/{DatePicker-vgeb1SWe.js → DatePicker-BvGVwQWT.js} +3 -3
  42. package/dist/cjs/{DropdownItem-CCuDjUjH.js → DropdownItem-BazQTndn.js} +1 -1
  43. package/dist/cjs/{GridRow-OxLsh_2P.js → GridRow-CAqZZGge.js} +10 -19
  44. package/dist/cjs/{Group-CtseVj34.js → Group-B3axMtEa.js} +16 -4
  45. package/dist/cjs/{Icon-BUwWk_dS.js → Icon-1nE_a40k.js} +2 -2
  46. package/dist/cjs/{InputPassword-BqbSnWDE.js → InputPassword-u30j02Bh.js} +1 -1
  47. package/dist/cjs/{Label-Bc4u2NRI.js → Label-Cgxxx2Ar.js} +1 -1
  48. package/dist/cjs/{LanguageSelector-BswZL8dZ.js → LanguageSelector-lyV39rdI.js} +1 -1
  49. package/dist/cjs/Link-D30saU5d.js +1877 -0
  50. package/dist/cjs/{ListItem-C3tWa-2I.js → ListItem-DBqD3_kT.js} +1 -1
  51. package/dist/cjs/{Logo-BjDQjs3w.js → Logo-CLwB8jrJ.js} +3 -3
  52. package/dist/cjs/{Menu-Bn0hqLr-.js → Menu-D4NCuPTA.js} +1 -1
  53. package/dist/cjs/{MenuItem-C-0vQBaj.js → MenuItem-D7TzAdrA.js} +1 -1
  54. package/dist/cjs/{NotificationList-D7rD4PAW.js → NotificationList-DuwcxJAs.js} +1 -1
  55. package/dist/cjs/{Pagination-XAVYtca1.js → Pagination-BaUSH8Q1.js} +2 -2
  56. package/dist/cjs/{Response-BmR09awR.js → Response-g-ogAxvP.js} +3 -3
  57. package/dist/cjs/{SearchResult-gHEwq0ay.js → SearchResult-CbJZk7jp.js} +1 -1
  58. package/dist/cjs/{SiteMenuButton-B6QISdea.js → SiteMenuButton-CbRuV0ju.js} +1 -1
  59. package/dist/cjs/{Swiper--idB5Ci6.js → Swiper-Zh5xaPu3.js} +5 -5
  60. package/dist/cjs/{SwitchField-CCHC2ZHS.js → SwitchField-C3TrW6fZ.js} +1 -1
  61. package/dist/cjs/{TabGroup-CYaefMap.js → TabGroup-C6d1YI0e.js} +1 -1
  62. package/dist/cjs/{Tile-By9iqne7.js → Tile-CatxYX82.js} +1 -1
  63. package/dist/cjs/{Title-BzopkHQY.js → Title-Ckp30YSI.js} +1 -1
  64. package/dist/cjs/{Tooltip-VrKQ8W1G.js → Tooltip-CYJGThOv.js} +1 -1
  65. package/dist/cjs/components/Accordion.js +7 -5
  66. package/dist/cjs/components/Avatar.js +7 -5
  67. package/dist/cjs/components/Breadcrumbs.js +7 -5
  68. package/dist/cjs/components/Button.js +7 -5
  69. package/dist/cjs/components/Cell.js +8 -6
  70. package/dist/cjs/components/Choice.js +7 -5
  71. package/dist/cjs/components/ContextMenu.js +7 -5
  72. package/dist/cjs/components/CookiesWarning.js +9 -7
  73. package/dist/cjs/components/DatePicker.js +8 -7
  74. package/dist/cjs/components/Dropdown.js +4 -2
  75. package/dist/cjs/components/FormField.js +7 -6
  76. package/dist/cjs/components/Grid/Grid.interface.d.ts +23 -31
  77. package/dist/cjs/components/Grid.js +1 -1
  78. package/dist/cjs/components/Group/Group.interface.d.ts +13 -12
  79. package/dist/cjs/components/Group.js +1 -1
  80. package/dist/cjs/components/Icon.js +6 -4
  81. package/dist/cjs/components/InputPassword.js +7 -5
  82. package/dist/cjs/components/Label.js +3 -3
  83. package/dist/cjs/components/LanguageSelector.js +7 -5
  84. package/dist/cjs/components/Link/Link.d.ts +2 -1
  85. package/dist/cjs/components/Link/index.d.ts +1 -1
  86. package/dist/cjs/components/Link.js +5 -2
  87. package/dist/cjs/components/List.js +4 -2
  88. package/dist/cjs/components/Logo/Logo.interface.d.ts +6 -1
  89. package/dist/cjs/components/Logo.js +4 -2
  90. package/dist/cjs/components/Menu.js +5 -3
  91. package/dist/cjs/components/MenuItem.js +4 -2
  92. package/dist/cjs/components/Notification.js +2 -2
  93. package/dist/cjs/components/Pagination.js +8 -6
  94. package/dist/cjs/components/Panel.js +1 -1
  95. package/dist/cjs/components/Response.js +9 -7
  96. package/dist/cjs/components/Search.js +7 -5
  97. package/dist/cjs/components/Select.js +6 -5
  98. package/dist/cjs/components/SiteMenu.js +7 -5
  99. package/dist/cjs/components/Swiper.js +2 -2
  100. package/dist/cjs/components/Tab.js +4 -2
  101. package/dist/cjs/components/Tile.js +2 -2
  102. package/dist/cjs/components/Title.js +1 -1
  103. package/dist/cjs/components/Tooltip.js +2 -2
  104. package/dist/cjs/components.js +33 -32
  105. package/dist/components/Accordion.js +7 -5
  106. package/dist/components/Avatar.js +7 -5
  107. package/dist/components/Breadcrumbs.js +7 -5
  108. package/dist/components/Button.js +7 -5
  109. package/dist/components/Cell.js +8 -6
  110. package/dist/components/Choice.js +7 -5
  111. package/dist/components/ContextMenu.js +7 -5
  112. package/dist/components/CookiesWarning.js +9 -7
  113. package/dist/components/DatePicker.js +8 -7
  114. package/dist/components/Dropdown.js +4 -2
  115. package/dist/components/FormField.js +7 -6
  116. package/dist/components/Grid/Grid.interface.d.ts +23 -31
  117. package/dist/components/Grid.js +1 -1
  118. package/dist/components/Group/Group.interface.d.ts +13 -12
  119. package/dist/components/Group.js +1 -1
  120. package/dist/components/Icon.js +6 -4
  121. package/dist/components/InputPassword.js +7 -5
  122. package/dist/components/Label.js +3 -3
  123. package/dist/components/LanguageSelector.js +7 -5
  124. package/dist/components/Link/Link.d.ts +2 -1
  125. package/dist/components/Link/index.d.ts +1 -1
  126. package/dist/components/Link.js +4 -2
  127. package/dist/components/List.js +4 -2
  128. package/dist/components/Logo/Logo.interface.d.ts +6 -1
  129. package/dist/components/Logo.js +4 -2
  130. package/dist/components/Menu.js +5 -3
  131. package/dist/components/MenuItem.js +4 -2
  132. package/dist/components/Notification.js +2 -2
  133. package/dist/components/Pagination.js +8 -6
  134. package/dist/components/Panel.js +1 -1
  135. package/dist/components/Response.js +9 -7
  136. package/dist/components/Search.js +7 -5
  137. package/dist/components/Select.js +6 -5
  138. package/dist/components/SiteMenu.js +7 -5
  139. package/dist/components/Swiper.js +2 -2
  140. package/dist/components/Tab.js +4 -2
  141. package/dist/components/Tile.js +2 -2
  142. package/dist/components/Title.js +1 -1
  143. package/dist/components/Tooltip.js +2 -2
  144. package/dist/components.js +33 -32
  145. package/dist/css/components/DadataHintField/DadataHintField.css +4 -1
  146. package/dist/css/components/Grid/Grid.css +12 -3
  147. package/dist/css/components/Group/Group.css +35 -0
  148. package/dist/css/components/Input/Input.css +2 -2
  149. package/dist/css/components/Swiper/Swiper.css +2 -2
  150. package/dist/css/styles/text-color/text-color.css +11 -7
  151. package/dist/css/styles/text-color/text-color_active.css +12 -10
  152. package/dist/css/styles/text-color/text-color_hover.css +16 -13
  153. package/package.json +13 -11
  154. package/dist/Link-Co6uspFK.js +0 -90
  155. package/dist/Logo-dRWwDqj-.js +0 -37
  156. package/dist/cjs/Link-B6Xq7PWn.js +0 -99
@@ -0,0 +1,1877 @@
1
+ 'use strict';
2
+
3
+ var _tslib = require('./_tslib-CKiUdo7p.js');
4
+ var jsxRuntime = require('./jsx-runtime-BBxmckJR.js');
5
+ var React$1 = require('react');
6
+ var clsx = require('clsx');
7
+ var require$$0 = require('lodash.throttle');
8
+ var PropTypes$1 = require('prop-types');
9
+ var ReactDOM = require('react-dom');
10
+ var useDeviceTargetClass = require('./hooks/useDeviceTargetClass.js');
11
+ var useStyles = require('./hooks/useStyles.js');
12
+
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ var React__default = /*#__PURE__*/_interopDefault(React$1);
16
+ var clsx__default = /*#__PURE__*/_interopDefault(clsx);
17
+ var require$$0__default = /*#__PURE__*/_interopDefault(require$$0);
18
+ var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes$1);
19
+ var ReactDOM__default = /*#__PURE__*/_interopDefault(ReactDOM);
20
+
21
+ var modules = {};
22
+
23
+ var Link$1 = {};
24
+
25
+ var scrollLink = {};
26
+
27
+ var scrollSpy$2 = {};
28
+
29
+ var passiveEventListeners = {};
30
+
31
+ Object.defineProperty(passiveEventListeners, "__esModule", {
32
+ value: true
33
+ });
34
+ /*
35
+ * Tell the browser that the event listener won't prevent a scroll.
36
+ * Allowing the browser to continue scrolling without having to
37
+ * to wait for the listener to return.
38
+ */
39
+ passiveEventListeners.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {
40
+ var listenerName = listener.name;
41
+ if (!listenerName) {
42
+ listenerName = eventName;
43
+ console.warn('Listener must be a named function.');
44
+ }
45
+
46
+ if (!attachedListeners.has(eventName)) attachedListeners.set(eventName, new Set());
47
+ var listeners = attachedListeners.get(eventName);
48
+ if (listeners.has(listenerName)) return;
49
+
50
+ var supportsPassiveOption = function () {
51
+ var supportsPassiveOption = false;
52
+ try {
53
+ var opts = Object.defineProperty({}, 'passive', {
54
+ get: function get() {
55
+ supportsPassiveOption = true;
56
+ }
57
+ });
58
+ window.addEventListener('test', null, opts);
59
+ } catch (e) {}
60
+ return supportsPassiveOption;
61
+ }();
62
+ target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);
63
+ listeners.add(listenerName);
64
+ };
65
+
66
+ passiveEventListeners.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {
67
+ target.removeEventListener(eventName, listener);
68
+ attachedListeners.get(eventName).delete(listener.name || eventName);
69
+ };
70
+
71
+ var attachedListeners = new Map();
72
+
73
+ Object.defineProperty(scrollSpy$2, "__esModule", {
74
+ value: true
75
+ });
76
+
77
+ var _lodash = require$$0__default.default;
78
+
79
+ var _lodash2 = _interopRequireDefault$9(_lodash);
80
+
81
+ var _passiveEventListeners$1 = passiveEventListeners;
82
+
83
+ function _interopRequireDefault$9(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
84
+
85
+ // The eventHandler will execute at a rate of 15fps by default
86
+ var eventThrottler = function eventThrottler(eventHandler) {
87
+ var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;
88
+ return (0, _lodash2.default)(eventHandler, throttleAmount);
89
+ };
90
+
91
+ var scrollSpy$1 = {
92
+
93
+ spyCallbacks: [],
94
+ spySetState: [],
95
+ scrollSpyContainers: [],
96
+
97
+ mount: function mount(scrollSpyContainer, throttle) {
98
+ if (scrollSpyContainer) {
99
+ var eventHandler = eventThrottler(function (event) {
100
+ scrollSpy$1.scrollHandler(scrollSpyContainer);
101
+ }, throttle);
102
+ scrollSpy$1.scrollSpyContainers.push(scrollSpyContainer);
103
+ (0, _passiveEventListeners$1.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);
104
+ }
105
+ },
106
+ isMounted: function isMounted(scrollSpyContainer) {
107
+ return scrollSpy$1.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;
108
+ },
109
+ currentPositionX: function currentPositionX(scrollSpyContainer) {
110
+ if (scrollSpyContainer === document) {
111
+ var supportPageOffset = window.pageYOffset !== undefined;
112
+ var isCSS1Compat = (document.compatMode || "") === "CSS1Compat";
113
+ return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;
114
+ } else {
115
+ return scrollSpyContainer.scrollLeft;
116
+ }
117
+ },
118
+ currentPositionY: function currentPositionY(scrollSpyContainer) {
119
+ if (scrollSpyContainer === document) {
120
+ var supportPageOffset = window.pageXOffset !== undefined;
121
+ var isCSS1Compat = (document.compatMode || "") === "CSS1Compat";
122
+ return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;
123
+ } else {
124
+ return scrollSpyContainer.scrollTop;
125
+ }
126
+ },
127
+ scrollHandler: function scrollHandler(scrollSpyContainer) {
128
+ var callbacks = scrollSpy$1.scrollSpyContainers[scrollSpy$1.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];
129
+ callbacks.forEach(function (c) {
130
+ return c(scrollSpy$1.currentPositionX(scrollSpyContainer), scrollSpy$1.currentPositionY(scrollSpyContainer));
131
+ });
132
+ },
133
+ addStateHandler: function addStateHandler(handler) {
134
+ scrollSpy$1.spySetState.push(handler);
135
+ },
136
+ addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {
137
+ var container = scrollSpy$1.scrollSpyContainers[scrollSpy$1.scrollSpyContainers.indexOf(scrollSpyContainer)];
138
+
139
+ if (!container.spyCallbacks) {
140
+ container.spyCallbacks = [];
141
+ }
142
+
143
+ container.spyCallbacks.push(handler);
144
+
145
+ handler(scrollSpy$1.currentPositionX(scrollSpyContainer), scrollSpy$1.currentPositionY(scrollSpyContainer));
146
+ },
147
+ updateStates: function updateStates() {
148
+ scrollSpy$1.spySetState.forEach(function (s) {
149
+ return s();
150
+ });
151
+ },
152
+ unmount: function unmount(stateHandler, spyHandler) {
153
+ scrollSpy$1.scrollSpyContainers.forEach(function (c) {
154
+ return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.indexOf(spyHandler) > -1 && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);
155
+ });
156
+
157
+ if (scrollSpy$1.spySetState && scrollSpy$1.spySetState.length && scrollSpy$1.spySetState.indexOf(stateHandler) > -1) {
158
+ scrollSpy$1.spySetState.splice(scrollSpy$1.spySetState.indexOf(stateHandler), 1);
159
+ }
160
+
161
+ document.removeEventListener('scroll', scrollSpy$1.scrollHandler);
162
+ },
163
+
164
+
165
+ update: function update() {
166
+ return scrollSpy$1.scrollSpyContainers.forEach(function (c) {
167
+ return scrollSpy$1.scrollHandler(c);
168
+ });
169
+ }
170
+ };
171
+
172
+ scrollSpy$2.default = scrollSpy$1;
173
+
174
+ var scroller = {};
175
+
176
+ var utils = {};
177
+
178
+ Object.defineProperty(utils, "__esModule", {
179
+ value: true
180
+ });
181
+ var updateHash = function updateHash(hash, historyUpdate) {
182
+ var hashVal = hash.indexOf("#") === 0 ? hash.substring(1) : hash;
183
+ var hashToUpdate = hashVal ? "#" + hashVal : "";
184
+ var curLoc = window && window.location;
185
+ var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;
186
+ historyUpdate ? history.pushState(history.state, "", urlToPush) : history.replaceState(history.state, "", urlToPush);
187
+ };
188
+
189
+ var getHash = function getHash() {
190
+ return window.location.hash.replace(/^#/, "");
191
+ };
192
+
193
+ var filterElementInContainer = function filterElementInContainer(container) {
194
+ return function (element) {
195
+ return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);
196
+ };
197
+ };
198
+
199
+ var isPositioned = function isPositioned(element) {
200
+ return getComputedStyle(element).position !== "static";
201
+ };
202
+
203
+ var getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {
204
+ var offsetTop = element.offsetTop;
205
+ var currentOffsetParent = element.offsetParent;
206
+
207
+ while (currentOffsetParent && !predicate(currentOffsetParent)) {
208
+ offsetTop += currentOffsetParent.offsetTop;
209
+ currentOffsetParent = currentOffsetParent.offsetParent;
210
+ }
211
+
212
+ return { offsetTop: offsetTop, offsetParent: currentOffsetParent };
213
+ };
214
+
215
+ var scrollOffset = function scrollOffset(c, t, horizontal) {
216
+ if (horizontal) {
217
+ return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== "static" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;
218
+ } else {
219
+ if (c === document) {
220
+ return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);
221
+ }
222
+
223
+ // The offsetParent of an element, according to MDN, is its nearest positioned
224
+ // (an element whose position is anything other than static) ancestor. The offsetTop
225
+ // of an element is taken with respect to its offsetParent which may not neccessarily
226
+ // be its parentElement except the parent itself is positioned.
227
+
228
+ // So if containerElement is positioned, then it must be an offsetParent somewhere
229
+ // If it happens that targetElement is a descendant of the containerElement, and there
230
+ // is not intermediate positioned element between the two of them, i.e.
231
+ // targetElement"s offsetParent is the same as the containerElement, then the
232
+ // distance between the two will be the offsetTop of the targetElement.
233
+ // If, on the other hand, there are intermediate positioned elements between the
234
+ // two entities, the distance between the targetElement and the containerElement
235
+ // will be the accumulation of the offsetTop of the element and that of its
236
+ // subsequent offsetParent until the containerElement is reached, since it
237
+ // will also be an offsetParent at some point due to the fact that it is positioned.
238
+
239
+ // If the containerElement is not positioned, then it can"t be an offsetParent,
240
+ // which means that the offsetTop of the targetElement would not be with respect to it.
241
+ // However, if the two of them happen to have the same offsetParent, then
242
+ // the distance between them will be the difference between their offsetTop
243
+ // since they are both taken with respect to the same entity.
244
+ // The last resort would be to accumulate their offsetTop until a common
245
+ // offsetParent is reached (usually the document) and taking the difference
246
+ // between the accumulated offsetTops
247
+
248
+ if (isPositioned(c)) {
249
+ if (t.offsetParent !== c) {
250
+ var isContainerElementOrDocument = function isContainerElementOrDocument(e) {
251
+ return e === c || e === document;
252
+ };
253
+
254
+ var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),
255
+ offsetTop = _getElementOffsetInfo.offsetTop,
256
+ offsetParent = _getElementOffsetInfo.offsetParent;
257
+
258
+ if (offsetParent !== c) {
259
+ throw new Error("Seems containerElement is not an ancestor of the Element");
260
+ }
261
+
262
+ return offsetTop;
263
+ }
264
+
265
+ return t.offsetTop;
266
+ }
267
+
268
+ if (t.offsetParent === c.offsetParent) {
269
+ return t.offsetTop - c.offsetTop;
270
+ }
271
+
272
+ var isDocument = function isDocument(e) {
273
+ return e === document;
274
+ };
275
+ return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;
276
+ }
277
+ };
278
+
279
+ utils.default = {
280
+ updateHash: updateHash,
281
+ getHash: getHash,
282
+ filterElementInContainer: filterElementInContainer,
283
+ scrollOffset: scrollOffset
284
+ };
285
+
286
+ var animateScroll$1 = {};
287
+
288
+ var smooth = {};
289
+
290
+ Object.defineProperty(smooth, "__esModule", {
291
+ value: true
292
+ });
293
+ smooth.default = {
294
+ /*
295
+ * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)
296
+ */
297
+ defaultEasing: function defaultEasing(x) {
298
+ if (x < 0.5) {
299
+ return Math.pow(x * 2, 2) / 2;
300
+ }
301
+ return 1 - Math.pow((1 - x) * 2, 2) / 2;
302
+ },
303
+ /*
304
+ * https://gist.github.com/gre/1650294
305
+ */
306
+ // no easing, no acceleration
307
+ linear: function linear(x) {
308
+ return x;
309
+ },
310
+ // accelerating from zero velocity
311
+ easeInQuad: function easeInQuad(x) {
312
+ return x * x;
313
+ },
314
+ // decelerating to zero velocity
315
+ easeOutQuad: function easeOutQuad(x) {
316
+ return x * (2 - x);
317
+ },
318
+ // acceleration until halfway, then deceleration
319
+ easeInOutQuad: function easeInOutQuad(x) {
320
+ return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;
321
+ },
322
+ // accelerating from zero velocity
323
+ easeInCubic: function easeInCubic(x) {
324
+ return x * x * x;
325
+ },
326
+ // decelerating to zero velocity π
327
+ easeOutCubic: function easeOutCubic(x) {
328
+ return --x * x * x + 1;
329
+ },
330
+ // acceleration until halfway, then deceleration
331
+ easeInOutCubic: function easeInOutCubic(x) {
332
+ return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;
333
+ },
334
+ // accelerating from zero velocity
335
+ easeInQuart: function easeInQuart(x) {
336
+ return x * x * x * x;
337
+ },
338
+ // decelerating to zero velocity
339
+ easeOutQuart: function easeOutQuart(x) {
340
+ return 1 - --x * x * x * x;
341
+ },
342
+ // acceleration until halfway, then deceleration
343
+ easeInOutQuart: function easeInOutQuart(x) {
344
+ return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;
345
+ },
346
+ // accelerating from zero velocity
347
+ easeInQuint: function easeInQuint(x) {
348
+ return x * x * x * x * x;
349
+ },
350
+ // decelerating to zero velocity
351
+ easeOutQuint: function easeOutQuint(x) {
352
+ return 1 + --x * x * x * x * x;
353
+ },
354
+ // acceleration until halfway, then deceleration
355
+ easeInOutQuint: function easeInOutQuint(x) {
356
+ return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;
357
+ }
358
+ };
359
+
360
+ var cancelEvents = {};
361
+
362
+ Object.defineProperty(cancelEvents, "__esModule", {
363
+ value: true
364
+ });
365
+
366
+ var _passiveEventListeners = passiveEventListeners;
367
+
368
+ var events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];
369
+
370
+ cancelEvents.default = {
371
+ subscribe: function subscribe(cancelEvent) {
372
+ return typeof document !== 'undefined' && events.forEach(function (event) {
373
+ return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);
374
+ });
375
+ }
376
+ };
377
+
378
+ var scrollEvents = {};
379
+
380
+ Object.defineProperty(scrollEvents, "__esModule", {
381
+ value: true
382
+ });
383
+
384
+ var Events = {
385
+ registered: {},
386
+ scrollEvent: {
387
+ register: function register(evtName, callback) {
388
+ Events.registered[evtName] = callback;
389
+ },
390
+ remove: function remove(evtName) {
391
+ Events.registered[evtName] = null;
392
+ }
393
+ }
394
+ };
395
+
396
+ scrollEvents.default = Events;
397
+
398
+ Object.defineProperty(animateScroll$1, "__esModule", {
399
+ value: true
400
+ });
401
+
402
+ var _extends$5 = Object.assign || 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; };
403
+
404
+ var _utils$2 = utils;
405
+
406
+ _interopRequireDefault$8(_utils$2);
407
+
408
+ var _smooth = smooth;
409
+
410
+ var _smooth2 = _interopRequireDefault$8(_smooth);
411
+
412
+ var _cancelEvents = cancelEvents;
413
+
414
+ var _cancelEvents2 = _interopRequireDefault$8(_cancelEvents);
415
+
416
+ var _scrollEvents$2 = scrollEvents;
417
+
418
+ var _scrollEvents2$2 = _interopRequireDefault$8(_scrollEvents$2);
419
+
420
+ function _interopRequireDefault$8(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
421
+
422
+ /*
423
+ * Gets the easing type from the smooth prop within options.
424
+ */
425
+ var getAnimationType = function getAnimationType(options) {
426
+ return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;
427
+ };
428
+ /*
429
+ * Function helper
430
+ */
431
+ var functionWrapper = function functionWrapper(value) {
432
+ return typeof value === 'function' ? value : function () {
433
+ return value;
434
+ };
435
+ };
436
+ /*
437
+ * Wraps window properties to allow server side rendering
438
+ */
439
+ var currentWindowProperties = function currentWindowProperties() {
440
+ if (typeof window !== 'undefined') {
441
+ return window.requestAnimationFrame || window.webkitRequestAnimationFrame;
442
+ }
443
+ };
444
+
445
+ /*
446
+ * Helper function to never extend 60fps on the webpage.
447
+ */
448
+ var requestAnimationFrameHelper = function () {
449
+ return currentWindowProperties() || function (callback, element, delay) {
450
+ window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());
451
+ };
452
+ }();
453
+
454
+ var makeData = function makeData() {
455
+ return {
456
+ currentPosition: 0,
457
+ startPosition: 0,
458
+ targetPosition: 0,
459
+ progress: 0,
460
+ duration: 0,
461
+ cancel: false,
462
+
463
+ target: null,
464
+ containerElement: null,
465
+ to: null,
466
+ start: null,
467
+ delta: null,
468
+ percent: null,
469
+ delayTimeout: null
470
+ };
471
+ };
472
+
473
+ var currentPositionX = function currentPositionX(options) {
474
+ var containerElement = options.data.containerElement;
475
+ if (containerElement && containerElement !== document && containerElement !== document.body) {
476
+ return containerElement.scrollLeft;
477
+ } else {
478
+ var supportPageOffset = window.pageXOffset !== undefined;
479
+ var isCSS1Compat = (document.compatMode || "") === "CSS1Compat";
480
+ return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;
481
+ }
482
+ };
483
+
484
+ var currentPositionY = function currentPositionY(options) {
485
+ var containerElement = options.data.containerElement;
486
+ if (containerElement && containerElement !== document && containerElement !== document.body) {
487
+ return containerElement.scrollTop;
488
+ } else {
489
+ var supportPageOffset = window.pageXOffset !== undefined;
490
+ var isCSS1Compat = (document.compatMode || "") === "CSS1Compat";
491
+ return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;
492
+ }
493
+ };
494
+
495
+ var scrollContainerWidth = function scrollContainerWidth(options) {
496
+ var containerElement = options.data.containerElement;
497
+ if (containerElement && containerElement !== document && containerElement !== document.body) {
498
+ return containerElement.scrollWidth - containerElement.offsetWidth;
499
+ } else {
500
+ var body = document.body;
501
+ var html = document.documentElement;
502
+
503
+ return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);
504
+ }
505
+ };
506
+
507
+ var scrollContainerHeight = function scrollContainerHeight(options) {
508
+ var containerElement = options.data.containerElement;
509
+ if (containerElement && containerElement !== document && containerElement !== document.body) {
510
+ return containerElement.scrollHeight - containerElement.offsetHeight;
511
+ } else {
512
+ var body = document.body;
513
+ var html = document.documentElement;
514
+
515
+ return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);
516
+ }
517
+ };
518
+
519
+ var animateScroll = function animateScroll(easing, options, timestamp) {
520
+ var data = options.data;
521
+
522
+ // Cancel on specific events
523
+ if (!options.ignoreCancelEvents && data.cancel) {
524
+ if (_scrollEvents2$2.default.registered['end']) {
525
+ _scrollEvents2$2.default.registered['end'](data.to, data.target, data.currentPositionY);
526
+ }
527
+ return;
528
+ }
529
+ data.delta = Math.round(data.targetPosition - data.startPosition);
530
+
531
+ if (data.start === null) {
532
+ data.start = timestamp;
533
+ }
534
+
535
+ data.progress = timestamp - data.start;
536
+
537
+ data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);
538
+
539
+ data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);
540
+
541
+ if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {
542
+ if (options.horizontal) {
543
+ data.containerElement.scrollLeft = data.currentPosition;
544
+ } else {
545
+ data.containerElement.scrollTop = data.currentPosition;
546
+ }
547
+ } else {
548
+ if (options.horizontal) {
549
+ window.scrollTo(data.currentPosition, 0);
550
+ } else {
551
+ window.scrollTo(0, data.currentPosition);
552
+ }
553
+ }
554
+
555
+ if (data.percent < 1) {
556
+ var easedAnimate = animateScroll.bind(null, easing, options);
557
+ requestAnimationFrameHelper.call(window, easedAnimate);
558
+ return;
559
+ }
560
+
561
+ if (_scrollEvents2$2.default.registered['end']) {
562
+ _scrollEvents2$2.default.registered['end'](data.to, data.target, data.currentPosition);
563
+ }
564
+ };
565
+
566
+ var setContainer = function setContainer(options) {
567
+ options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;
568
+ };
569
+
570
+ var animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {
571
+ options.data = options.data || makeData();
572
+
573
+ window.clearTimeout(options.data.delayTimeout);
574
+
575
+ var setCancel = function setCancel() {
576
+ options.data.cancel = true;
577
+ };
578
+ _cancelEvents2.default.subscribe(setCancel);
579
+
580
+ setContainer(options);
581
+
582
+ options.data.start = null;
583
+ options.data.cancel = false;
584
+ options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);
585
+ options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;
586
+
587
+ if (options.data.startPosition === options.data.targetPosition) {
588
+ if (_scrollEvents2$2.default.registered['end']) {
589
+ _scrollEvents2$2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);
590
+ }
591
+ return;
592
+ }
593
+
594
+ options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);
595
+
596
+ options.data.duration = functionWrapper(options.duration)(options.data.delta);
597
+ options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);
598
+ options.data.to = to;
599
+ options.data.target = target;
600
+
601
+ var easing = getAnimationType(options);
602
+ var easedAnimate = animateScroll.bind(null, easing, options);
603
+
604
+ if (options && options.delay > 0) {
605
+ options.data.delayTimeout = window.setTimeout(function () {
606
+ if (_scrollEvents2$2.default.registered['begin']) {
607
+ _scrollEvents2$2.default.registered['begin'](options.data.to, options.data.target);
608
+ }
609
+ requestAnimationFrameHelper.call(window, easedAnimate);
610
+ }, options.delay);
611
+ return;
612
+ }
613
+
614
+ if (_scrollEvents2$2.default.registered['begin']) {
615
+ _scrollEvents2$2.default.registered['begin'](options.data.to, options.data.target);
616
+ }
617
+ requestAnimationFrameHelper.call(window, easedAnimate);
618
+ };
619
+
620
+ var proceedOptions = function proceedOptions(options) {
621
+ options = _extends$5({}, options);
622
+ options.data = options.data || makeData();
623
+ options.absolute = true;
624
+ return options;
625
+ };
626
+
627
+ var scrollToTop = function scrollToTop(options) {
628
+ animateTopScroll(0, proceedOptions(options));
629
+ };
630
+
631
+ var scrollTo = function scrollTo(toPosition, options) {
632
+ animateTopScroll(toPosition, proceedOptions(options));
633
+ };
634
+
635
+ var scrollToBottom = function scrollToBottom(options) {
636
+ options = proceedOptions(options);
637
+ setContainer(options);
638
+ animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);
639
+ };
640
+
641
+ var scrollMore = function scrollMore(toPosition, options) {
642
+ options = proceedOptions(options);
643
+ setContainer(options);
644
+ var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);
645
+ animateTopScroll(toPosition + currentPosition, options);
646
+ };
647
+
648
+ animateScroll$1.default = {
649
+ animateTopScroll: animateTopScroll,
650
+ getAnimationType: getAnimationType,
651
+ scrollToTop: scrollToTop,
652
+ scrollToBottom: scrollToBottom,
653
+ scrollTo: scrollTo,
654
+ scrollMore: scrollMore
655
+ };
656
+
657
+ Object.defineProperty(scroller, "__esModule", {
658
+ value: true
659
+ });
660
+
661
+ var _extends$4 = Object.assign || 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; };
662
+
663
+ var _utils$1 = utils;
664
+
665
+ var _utils2$1 = _interopRequireDefault$7(_utils$1);
666
+
667
+ var _animateScroll$1 = animateScroll$1;
668
+
669
+ var _animateScroll2$1 = _interopRequireDefault$7(_animateScroll$1);
670
+
671
+ var _scrollEvents$1 = scrollEvents;
672
+
673
+ var _scrollEvents2$1 = _interopRequireDefault$7(_scrollEvents$1);
674
+
675
+ function _interopRequireDefault$7(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
676
+
677
+ var __mapped = {};
678
+ var __activeLink = void 0;
679
+
680
+ scroller.default = {
681
+
682
+ unmount: function unmount() {
683
+ __mapped = {};
684
+ },
685
+
686
+ register: function register(name, element) {
687
+ __mapped[name] = element;
688
+ },
689
+
690
+ unregister: function unregister(name) {
691
+ delete __mapped[name];
692
+ },
693
+
694
+ get: function get(name) {
695
+ return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];
696
+ },
697
+
698
+ setActiveLink: function setActiveLink(link) {
699
+ return __activeLink = link;
700
+ },
701
+
702
+ getActiveLink: function getActiveLink() {
703
+ return __activeLink;
704
+ },
705
+
706
+ scrollTo: function scrollTo(to, props) {
707
+
708
+ var target = this.get(to);
709
+
710
+ if (!target) {
711
+ console.warn("target Element not found");
712
+ return;
713
+ }
714
+
715
+ props = _extends$4({}, props, { absolute: false });
716
+
717
+ var containerId = props.containerId;
718
+ var container = props.container;
719
+
720
+ var containerElement = void 0;
721
+ if (containerId) {
722
+ containerElement = document.getElementById(containerId);
723
+ } else if (container && container.nodeType) {
724
+ containerElement = container;
725
+ } else {
726
+ containerElement = document;
727
+ }
728
+
729
+ props.absolute = true;
730
+
731
+ var horizontal = props.horizontal;
732
+ var scrollOffset = _utils2$1.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);
733
+
734
+ /*
735
+ * if animate is not provided just scroll into the view
736
+ */
737
+ if (!props.smooth) {
738
+ if (_scrollEvents2$1.default.registered['begin']) {
739
+ _scrollEvents2$1.default.registered['begin'](to, target);
740
+ }
741
+
742
+ if (containerElement === document) {
743
+ if (props.horizontal) {
744
+ window.scrollTo(scrollOffset, 0);
745
+ } else {
746
+ window.scrollTo(0, scrollOffset);
747
+ }
748
+ } else {
749
+ containerElement.scrollTop = scrollOffset;
750
+ }
751
+
752
+ if (_scrollEvents2$1.default.registered['end']) {
753
+ _scrollEvents2$1.default.registered['end'](to, target);
754
+ }
755
+
756
+ return;
757
+ }
758
+
759
+ /*
760
+ * Animate scrolling
761
+ */
762
+
763
+ _animateScroll2$1.default.animateTopScroll(scrollOffset, props, to, target);
764
+ }
765
+ };
766
+
767
+ var scrollHash$2 = {};
768
+
769
+ Object.defineProperty(scrollHash$2, "__esModule", {
770
+ value: true
771
+ });
772
+
773
+ var _utils = utils;
774
+
775
+ var _utils2 = _interopRequireDefault$6(_utils);
776
+
777
+ function _interopRequireDefault$6(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
778
+
779
+ var scrollHash$1 = {
780
+ mountFlag: false,
781
+ initialized: false,
782
+ scroller: null,
783
+ containers: {},
784
+
785
+ mount: function mount(scroller) {
786
+ this.scroller = scroller;
787
+
788
+ this.handleHashChange = this.handleHashChange.bind(this);
789
+ window.addEventListener('hashchange', this.handleHashChange);
790
+
791
+ this.initStateFromHash();
792
+ this.mountFlag = true;
793
+ },
794
+ mapContainer: function mapContainer(to, container) {
795
+ this.containers[to] = container;
796
+ },
797
+ isMounted: function isMounted() {
798
+ return this.mountFlag;
799
+ },
800
+ isInitialized: function isInitialized() {
801
+ return this.initialized;
802
+ },
803
+ initStateFromHash: function initStateFromHash() {
804
+ var _this = this;
805
+
806
+ var hash = this.getHash();
807
+ if (hash) {
808
+ window.setTimeout(function () {
809
+ _this.scrollTo(hash, true);
810
+ _this.initialized = true;
811
+ }, 10);
812
+ } else {
813
+ this.initialized = true;
814
+ }
815
+ },
816
+ scrollTo: function scrollTo(to, isInit) {
817
+ var scroller = this.scroller;
818
+ var element = scroller.get(to);
819
+ if (element && (isInit || to !== scroller.getActiveLink())) {
820
+ var container = this.containers[to] || document;
821
+ scroller.scrollTo(to, { container: container });
822
+ }
823
+ },
824
+ getHash: function getHash() {
825
+ return _utils2.default.getHash();
826
+ },
827
+ changeHash: function changeHash(to, saveHashHistory) {
828
+ if (this.isInitialized() && _utils2.default.getHash() !== to) {
829
+ _utils2.default.updateHash(to, saveHashHistory);
830
+ }
831
+ },
832
+ handleHashChange: function handleHashChange() {
833
+ this.scrollTo(this.getHash());
834
+ },
835
+ unmount: function unmount() {
836
+ this.scroller = null;
837
+ this.containers = null;
838
+ window.removeEventListener('hashchange', this.handleHashChange);
839
+ }
840
+ };
841
+
842
+ scrollHash$2.default = scrollHash$1;
843
+
844
+ Object.defineProperty(scrollLink, "__esModule", {
845
+ value: true
846
+ });
847
+
848
+ var _extends$3 = Object.assign || 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; };
849
+
850
+ var _createClass$4 = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
851
+
852
+ var _react$4 = React__default.default;
853
+
854
+ var _react2$4 = _interopRequireDefault$5(_react$4);
855
+
856
+ var _scrollSpy$1 = scrollSpy$2;
857
+
858
+ var _scrollSpy2$1 = _interopRequireDefault$5(_scrollSpy$1);
859
+
860
+ var _scroller$2 = scroller;
861
+
862
+ var _scroller2$2 = _interopRequireDefault$5(_scroller$2);
863
+
864
+ var _propTypes$2 = PropTypes__default.default;
865
+
866
+ var _propTypes2$2 = _interopRequireDefault$5(_propTypes$2);
867
+
868
+ var _scrollHash = scrollHash$2;
869
+
870
+ var _scrollHash2 = _interopRequireDefault$5(_scrollHash);
871
+
872
+ function _interopRequireDefault$5(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
873
+
874
+ function _classCallCheck$5(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
875
+
876
+ function _possibleConstructorReturn$5(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
877
+
878
+ function _inherits$5(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
879
+
880
+ var protoTypes$1 = {
881
+ to: _propTypes2$2.default.string.isRequired,
882
+ containerId: _propTypes2$2.default.string,
883
+ container: _propTypes2$2.default.object,
884
+ activeClass: _propTypes2$2.default.string,
885
+ activeStyle: _propTypes2$2.default.object,
886
+ spy: _propTypes2$2.default.bool,
887
+ horizontal: _propTypes2$2.default.bool,
888
+ smooth: _propTypes2$2.default.oneOfType([_propTypes2$2.default.bool, _propTypes2$2.default.string]),
889
+ offset: _propTypes2$2.default.number,
890
+ delay: _propTypes2$2.default.number,
891
+ isDynamic: _propTypes2$2.default.bool,
892
+ onClick: _propTypes2$2.default.func,
893
+ duration: _propTypes2$2.default.oneOfType([_propTypes2$2.default.number, _propTypes2$2.default.func]),
894
+ absolute: _propTypes2$2.default.bool,
895
+ onSetActive: _propTypes2$2.default.func,
896
+ onSetInactive: _propTypes2$2.default.func,
897
+ ignoreCancelEvents: _propTypes2$2.default.bool,
898
+ hashSpy: _propTypes2$2.default.bool,
899
+ saveHashHistory: _propTypes2$2.default.bool,
900
+ spyThrottle: _propTypes2$2.default.number
901
+ };
902
+
903
+ scrollLink.default = function (Component, customScroller) {
904
+
905
+ var scroller = customScroller || _scroller2$2.default;
906
+
907
+ var Link = function (_React$PureComponent) {
908
+ _inherits$5(Link, _React$PureComponent);
909
+
910
+ function Link(props) {
911
+ _classCallCheck$5(this, Link);
912
+
913
+ var _this = _possibleConstructorReturn$5(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));
914
+
915
+ _initialiseProps.call(_this);
916
+
917
+ _this.state = {
918
+ active: false
919
+ };
920
+ return _this;
921
+ }
922
+
923
+ _createClass$4(Link, [{
924
+ key: 'getScrollSpyContainer',
925
+ value: function getScrollSpyContainer() {
926
+ var containerId = this.props.containerId;
927
+ var container = this.props.container;
928
+
929
+ if (containerId && !container) {
930
+ return document.getElementById(containerId);
931
+ }
932
+
933
+ if (container && container.nodeType) {
934
+ return container;
935
+ }
936
+
937
+ return document;
938
+ }
939
+ }, {
940
+ key: 'componentDidMount',
941
+ value: function componentDidMount() {
942
+ if (this.props.spy || this.props.hashSpy) {
943
+ var scrollSpyContainer = this.getScrollSpyContainer();
944
+
945
+ if (!_scrollSpy2$1.default.isMounted(scrollSpyContainer)) {
946
+ _scrollSpy2$1.default.mount(scrollSpyContainer, this.props.spyThrottle);
947
+ }
948
+
949
+ if (this.props.hashSpy) {
950
+ if (!_scrollHash2.default.isMounted()) {
951
+ _scrollHash2.default.mount(scroller);
952
+ }
953
+ _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);
954
+ }
955
+
956
+ _scrollSpy2$1.default.addSpyHandler(this.spyHandler, scrollSpyContainer);
957
+
958
+ this.setState({
959
+ container: scrollSpyContainer
960
+ });
961
+ }
962
+ }
963
+ }, {
964
+ key: 'componentWillUnmount',
965
+ value: function componentWillUnmount() {
966
+ _scrollSpy2$1.default.unmount(this.stateHandler, this.spyHandler);
967
+ }
968
+ }, {
969
+ key: 'render',
970
+ value: function render() {
971
+ var className = "";
972
+
973
+ if (this.state && this.state.active) {
974
+ className = ((this.props.className || "") + " " + (this.props.activeClass || "active")).trim();
975
+ } else {
976
+ className = this.props.className;
977
+ }
978
+
979
+ var style = {};
980
+
981
+ if (this.state && this.state.active) {
982
+ style = _extends$3({}, this.props.style, this.props.activeStyle);
983
+ } else {
984
+ style = _extends$3({}, this.props.style);
985
+ }
986
+
987
+ var props = _extends$3({}, this.props);
988
+
989
+ for (var prop in protoTypes$1) {
990
+ if (props.hasOwnProperty(prop)) {
991
+ delete props[prop];
992
+ }
993
+ }
994
+
995
+ props.className = className;
996
+ props.style = style;
997
+ props.onClick = this.handleClick;
998
+
999
+ return _react2$4.default.createElement(Component, props);
1000
+ }
1001
+ }]);
1002
+
1003
+ return Link;
1004
+ }(_react2$4.default.PureComponent);
1005
+
1006
+ var _initialiseProps = function _initialiseProps() {
1007
+ var _this2 = this;
1008
+
1009
+ this.scrollTo = function (to, props) {
1010
+ scroller.scrollTo(to, _extends$3({}, _this2.state, props));
1011
+ };
1012
+
1013
+ this.handleClick = function (event) {
1014
+
1015
+ /*
1016
+ * give the posibility to override onClick
1017
+ */
1018
+
1019
+ if (_this2.props.onClick) {
1020
+ _this2.props.onClick(event);
1021
+ }
1022
+
1023
+ /*
1024
+ * dont bubble the navigation
1025
+ */
1026
+
1027
+ if (event.stopPropagation) event.stopPropagation();
1028
+ if (event.preventDefault) event.preventDefault();
1029
+
1030
+ /*
1031
+ * do the magic!
1032
+ */
1033
+ _this2.scrollTo(_this2.props.to, _this2.props);
1034
+ };
1035
+
1036
+ this.spyHandler = function (x, y) {
1037
+ var scrollSpyContainer = _this2.getScrollSpyContainer();
1038
+
1039
+ if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {
1040
+ return;
1041
+ }
1042
+
1043
+ var horizontal = _this2.props.horizontal;
1044
+
1045
+ var to = _this2.props.to;
1046
+ var element = null;
1047
+ var isInside = void 0;
1048
+ var isOutside = void 0;
1049
+
1050
+ if (horizontal) {
1051
+ var elemLeftBound = 0;
1052
+ var elemRightBound = 0;
1053
+ var containerLeft = 0;
1054
+
1055
+ if (scrollSpyContainer.getBoundingClientRect) {
1056
+ var containerCords = scrollSpyContainer.getBoundingClientRect();
1057
+ containerLeft = containerCords.left;
1058
+ }
1059
+
1060
+ if (!element || _this2.props.isDynamic) {
1061
+ element = scroller.get(to);
1062
+ if (!element) {
1063
+ return;
1064
+ }
1065
+
1066
+ var cords = element.getBoundingClientRect();
1067
+ elemLeftBound = cords.left - containerLeft + x;
1068
+ elemRightBound = elemLeftBound + cords.width;
1069
+ }
1070
+
1071
+ var offsetX = x - _this2.props.offset;
1072
+ isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);
1073
+ isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);
1074
+ } else {
1075
+ var elemTopBound = 0;
1076
+ var elemBottomBound = 0;
1077
+ var containerTop = 0;
1078
+
1079
+ if (scrollSpyContainer.getBoundingClientRect) {
1080
+ var _containerCords = scrollSpyContainer.getBoundingClientRect();
1081
+ containerTop = _containerCords.top;
1082
+ }
1083
+
1084
+ if (!element || _this2.props.isDynamic) {
1085
+ element = scroller.get(to);
1086
+ if (!element) {
1087
+ return;
1088
+ }
1089
+
1090
+ var _cords = element.getBoundingClientRect();
1091
+ elemTopBound = _cords.top - containerTop + y;
1092
+ elemBottomBound = elemTopBound + _cords.height;
1093
+ }
1094
+
1095
+ var offsetY = y - _this2.props.offset;
1096
+ isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);
1097
+ isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);
1098
+ }
1099
+
1100
+ var activeLink = scroller.getActiveLink();
1101
+
1102
+ if (isOutside) {
1103
+ if (to === activeLink) {
1104
+ scroller.setActiveLink(void 0);
1105
+ }
1106
+
1107
+ if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {
1108
+ var _props$saveHashHistor = _this2.props.saveHashHistory,
1109
+ saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;
1110
+
1111
+ _scrollHash2.default.changeHash("", saveHashHistory);
1112
+ }
1113
+
1114
+ if (_this2.props.spy && _this2.state.active) {
1115
+ _this2.setState({ active: false });
1116
+ _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);
1117
+ }
1118
+ }
1119
+
1120
+ if (isInside && (activeLink !== to || _this2.state.active === false)) {
1121
+ scroller.setActiveLink(to);
1122
+
1123
+ var _props$saveHashHistor2 = _this2.props.saveHashHistory,
1124
+ _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;
1125
+
1126
+ _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);
1127
+
1128
+ if (_this2.props.spy) {
1129
+ _this2.setState({ active: true });
1130
+ _this2.props.onSetActive && _this2.props.onSetActive(to, element);
1131
+ }
1132
+ }
1133
+ };
1134
+ };
1135
+
1136
+ Link.propTypes = protoTypes$1;
1137
+
1138
+ Link.defaultProps = { offset: 0 };
1139
+
1140
+ return Link;
1141
+ };
1142
+
1143
+ Object.defineProperty(Link$1, "__esModule", {
1144
+ value: true
1145
+ });
1146
+
1147
+ var _react$3 = React__default.default;
1148
+
1149
+ var _react2$3 = _interopRequireDefault$4(_react$3);
1150
+
1151
+ var _scrollLink$2 = scrollLink;
1152
+
1153
+ var _scrollLink2$2 = _interopRequireDefault$4(_scrollLink$2);
1154
+
1155
+ function _interopRequireDefault$4(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1156
+
1157
+ function _classCallCheck$4(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1158
+
1159
+ function _possibleConstructorReturn$4(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
1160
+
1161
+ function _inherits$4(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
1162
+
1163
+ var LinkElement = function (_React$Component) {
1164
+ _inherits$4(LinkElement, _React$Component);
1165
+
1166
+ function LinkElement() {
1167
+ var _ref;
1168
+
1169
+ var _temp, _this, _ret;
1170
+
1171
+ _classCallCheck$4(this, LinkElement);
1172
+
1173
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
1174
+ args[_key] = arguments[_key];
1175
+ }
1176
+
1177
+ return _ret = (_temp = (_this = _possibleConstructorReturn$4(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {
1178
+ return _react2$3.default.createElement(
1179
+ 'a',
1180
+ _this.props,
1181
+ _this.props.children
1182
+ );
1183
+ }, _temp), _possibleConstructorReturn$4(_this, _ret);
1184
+ }
1185
+
1186
+ return LinkElement;
1187
+ }(_react2$3.default.Component);
1188
+
1189
+ Link$1.default = (0, _scrollLink2$2.default)(LinkElement);
1190
+
1191
+ var Button = {};
1192
+
1193
+ Object.defineProperty(Button, "__esModule", {
1194
+ value: true
1195
+ });
1196
+
1197
+ var _createClass$3 = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
1198
+
1199
+ var _react$2 = React__default.default;
1200
+
1201
+ var _react2$2 = _interopRequireDefault$3(_react$2);
1202
+
1203
+ var _scrollLink$1 = scrollLink;
1204
+
1205
+ var _scrollLink2$1 = _interopRequireDefault$3(_scrollLink$1);
1206
+
1207
+ function _interopRequireDefault$3(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1208
+
1209
+ function _classCallCheck$3(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1210
+
1211
+ function _possibleConstructorReturn$3(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
1212
+
1213
+ function _inherits$3(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
1214
+
1215
+ var ButtonElement = function (_React$Component) {
1216
+ _inherits$3(ButtonElement, _React$Component);
1217
+
1218
+ function ButtonElement() {
1219
+ _classCallCheck$3(this, ButtonElement);
1220
+
1221
+ return _possibleConstructorReturn$3(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));
1222
+ }
1223
+
1224
+ _createClass$3(ButtonElement, [{
1225
+ key: 'render',
1226
+ value: function render() {
1227
+ return _react2$2.default.createElement(
1228
+ 'button',
1229
+ this.props,
1230
+ this.props.children
1231
+ );
1232
+ }
1233
+ }]);
1234
+
1235
+ return ButtonElement;
1236
+ }(_react2$2.default.Component);
1237
+
1238
+ Button.default = (0, _scrollLink2$1.default)(ButtonElement);
1239
+
1240
+ var Element = {};
1241
+
1242
+ var scrollElement = {};
1243
+
1244
+ Object.defineProperty(scrollElement, "__esModule", {
1245
+ value: true
1246
+ });
1247
+
1248
+ var _extends$2 = Object.assign || 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; };
1249
+
1250
+ var _createClass$2 = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
1251
+
1252
+ var _react$1 = React__default.default;
1253
+
1254
+ var _react2$1 = _interopRequireDefault$2(_react$1);
1255
+
1256
+ var _reactDom = ReactDOM__default.default;
1257
+
1258
+ _interopRequireDefault$2(_reactDom);
1259
+
1260
+ var _scroller$1 = scroller;
1261
+
1262
+ var _scroller2$1 = _interopRequireDefault$2(_scroller$1);
1263
+
1264
+ var _propTypes$1 = PropTypes__default.default;
1265
+
1266
+ var _propTypes2$1 = _interopRequireDefault$2(_propTypes$1);
1267
+
1268
+ function _interopRequireDefault$2(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1269
+
1270
+ function _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1271
+
1272
+ function _possibleConstructorReturn$2(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
1273
+
1274
+ function _inherits$2(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
1275
+
1276
+ scrollElement.default = function (Component) {
1277
+ var Element = function (_React$Component) {
1278
+ _inherits$2(Element, _React$Component);
1279
+
1280
+ function Element(props) {
1281
+ _classCallCheck$2(this, Element);
1282
+
1283
+ var _this = _possibleConstructorReturn$2(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));
1284
+
1285
+ _this.childBindings = {
1286
+ domNode: null
1287
+ };
1288
+ return _this;
1289
+ }
1290
+
1291
+ _createClass$2(Element, [{
1292
+ key: 'componentDidMount',
1293
+ value: function componentDidMount() {
1294
+ if (typeof window === 'undefined') {
1295
+ return false;
1296
+ }
1297
+ this.registerElems(this.props.name);
1298
+ }
1299
+ }, {
1300
+ key: 'componentDidUpdate',
1301
+ value: function componentDidUpdate(prevProps) {
1302
+ if (this.props.name !== prevProps.name) {
1303
+ this.registerElems(this.props.name);
1304
+ }
1305
+ }
1306
+ }, {
1307
+ key: 'componentWillUnmount',
1308
+ value: function componentWillUnmount() {
1309
+ if (typeof window === 'undefined') {
1310
+ return false;
1311
+ }
1312
+ _scroller2$1.default.unregister(this.props.name);
1313
+ }
1314
+ }, {
1315
+ key: 'registerElems',
1316
+ value: function registerElems(name) {
1317
+ _scroller2$1.default.register(name, this.childBindings.domNode);
1318
+ }
1319
+ }, {
1320
+ key: 'render',
1321
+ value: function render() {
1322
+ return _react2$1.default.createElement(Component, _extends$2({}, this.props, { parentBindings: this.childBindings }));
1323
+ }
1324
+ }]);
1325
+
1326
+ return Element;
1327
+ }(_react2$1.default.Component);
1328
+
1329
+ Element.propTypes = {
1330
+ name: _propTypes2$1.default.string,
1331
+ id: _propTypes2$1.default.string
1332
+ };
1333
+
1334
+ return Element;
1335
+ };
1336
+
1337
+ Object.defineProperty(Element, "__esModule", {
1338
+ value: true
1339
+ });
1340
+
1341
+ var _extends$1 = Object.assign || 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; };
1342
+
1343
+ var _createClass$1 = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
1344
+
1345
+ var _react = React__default.default;
1346
+
1347
+ var _react2 = _interopRequireDefault$1(_react);
1348
+
1349
+ var _scrollElement$1 = scrollElement;
1350
+
1351
+ var _scrollElement2$1 = _interopRequireDefault$1(_scrollElement$1);
1352
+
1353
+ var _propTypes = PropTypes__default.default;
1354
+
1355
+ var _propTypes2 = _interopRequireDefault$1(_propTypes);
1356
+
1357
+ function _interopRequireDefault$1(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1358
+
1359
+ function _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1360
+
1361
+ function _possibleConstructorReturn$1(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
1362
+
1363
+ function _inherits$1(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
1364
+
1365
+ var ElementWrapper = function (_React$Component) {
1366
+ _inherits$1(ElementWrapper, _React$Component);
1367
+
1368
+ function ElementWrapper() {
1369
+ _classCallCheck$1(this, ElementWrapper);
1370
+
1371
+ return _possibleConstructorReturn$1(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));
1372
+ }
1373
+
1374
+ _createClass$1(ElementWrapper, [{
1375
+ key: 'render',
1376
+ value: function render() {
1377
+ var _this2 = this;
1378
+
1379
+ // Remove `parentBindings` and `name` from props
1380
+ var newProps = _extends$1({}, this.props);
1381
+ delete newProps.name;
1382
+ if (newProps.parentBindings) {
1383
+ delete newProps.parentBindings;
1384
+ }
1385
+
1386
+ return _react2.default.createElement(
1387
+ 'div',
1388
+ _extends$1({}, newProps, { ref: function ref(el) {
1389
+ _this2.props.parentBindings.domNode = el;
1390
+ } }),
1391
+ this.props.children
1392
+ );
1393
+ }
1394
+ }]);
1395
+
1396
+ return ElementWrapper;
1397
+ }(_react2.default.Component);
1398
+
1399
+ ElementWrapper.propTypes = {
1400
+ name: _propTypes2.default.string,
1401
+ id: _propTypes2.default.string
1402
+ };
1403
+
1404
+ Element.default = (0, _scrollElement2$1.default)(ElementWrapper);
1405
+
1406
+ /* DEPRECATED */
1407
+
1408
+ var _extends = Object.assign || 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; };
1409
+
1410
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
1411
+
1412
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1413
+
1414
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
1415
+
1416
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
1417
+
1418
+ var React = React__default.default;
1419
+ var scrollSpy = scrollSpy$2;
1420
+ var defaultScroller = scroller;
1421
+ var PropTypes = PropTypes__default.default;
1422
+ var scrollHash = scrollHash$2;
1423
+
1424
+ var protoTypes = {
1425
+ to: PropTypes.string.isRequired,
1426
+ containerId: PropTypes.string,
1427
+ container: PropTypes.object,
1428
+ activeClass: PropTypes.string,
1429
+ spy: PropTypes.bool,
1430
+ smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
1431
+ offset: PropTypes.number,
1432
+ delay: PropTypes.number,
1433
+ isDynamic: PropTypes.bool,
1434
+ onClick: PropTypes.func,
1435
+ duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),
1436
+ absolute: PropTypes.bool,
1437
+ onSetActive: PropTypes.func,
1438
+ onSetInactive: PropTypes.func,
1439
+ ignoreCancelEvents: PropTypes.bool,
1440
+ hashSpy: PropTypes.bool,
1441
+ spyThrottle: PropTypes.number
1442
+ };
1443
+
1444
+ var Helpers = {
1445
+ Scroll: function Scroll(Component, customScroller) {
1446
+
1447
+ console.warn("Helpers.Scroll is deprecated since v1.7.0");
1448
+
1449
+ var scroller = customScroller || defaultScroller;
1450
+
1451
+ var Scroll = function (_React$Component) {
1452
+ _inherits(Scroll, _React$Component);
1453
+
1454
+ function Scroll(props) {
1455
+ _classCallCheck(this, Scroll);
1456
+
1457
+ var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));
1458
+
1459
+ _initialiseProps.call(_this);
1460
+
1461
+ _this.state = {
1462
+ active: false
1463
+ };
1464
+ return _this;
1465
+ }
1466
+
1467
+ _createClass(Scroll, [{
1468
+ key: 'getScrollSpyContainer',
1469
+ value: function getScrollSpyContainer() {
1470
+ var containerId = this.props.containerId;
1471
+ var container = this.props.container;
1472
+
1473
+ if (containerId) {
1474
+ return document.getElementById(containerId);
1475
+ }
1476
+
1477
+ if (container && container.nodeType) {
1478
+ return container;
1479
+ }
1480
+
1481
+ return document;
1482
+ }
1483
+ }, {
1484
+ key: 'componentDidMount',
1485
+ value: function componentDidMount() {
1486
+ if (this.props.spy || this.props.hashSpy) {
1487
+ var scrollSpyContainer = this.getScrollSpyContainer();
1488
+
1489
+ if (!scrollSpy.isMounted(scrollSpyContainer)) {
1490
+ scrollSpy.mount(scrollSpyContainer, this.props.spyThrottle);
1491
+ }
1492
+
1493
+ if (this.props.hashSpy) {
1494
+ if (!scrollHash.isMounted()) {
1495
+ scrollHash.mount(scroller);
1496
+ }
1497
+ scrollHash.mapContainer(this.props.to, scrollSpyContainer);
1498
+ }
1499
+
1500
+ if (this.props.spy) {
1501
+ scrollSpy.addStateHandler(this.stateHandler);
1502
+ }
1503
+
1504
+ scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);
1505
+
1506
+ this.setState({
1507
+ container: scrollSpyContainer
1508
+ });
1509
+ }
1510
+ }
1511
+ }, {
1512
+ key: 'componentWillUnmount',
1513
+ value: function componentWillUnmount() {
1514
+ scrollSpy.unmount(this.stateHandler, this.spyHandler);
1515
+ }
1516
+ }, {
1517
+ key: 'render',
1518
+ value: function render() {
1519
+ var className = "";
1520
+
1521
+ if (this.state && this.state.active) {
1522
+ className = ((this.props.className || "") + " " + (this.props.activeClass || "active")).trim();
1523
+ } else {
1524
+ className = this.props.className;
1525
+ }
1526
+
1527
+ var props = _extends({}, this.props);
1528
+
1529
+ for (var prop in protoTypes) {
1530
+ if (props.hasOwnProperty(prop)) {
1531
+ delete props[prop];
1532
+ }
1533
+ }
1534
+
1535
+ props.className = className;
1536
+ props.onClick = this.handleClick;
1537
+
1538
+ return React.createElement(Component, props);
1539
+ }
1540
+ }]);
1541
+
1542
+ return Scroll;
1543
+ }(React.Component);
1544
+
1545
+ var _initialiseProps = function _initialiseProps() {
1546
+ var _this2 = this;
1547
+
1548
+ this.scrollTo = function (to, props) {
1549
+ scroller.scrollTo(to, _extends({}, _this2.state, props));
1550
+ };
1551
+
1552
+ this.handleClick = function (event) {
1553
+
1554
+ /*
1555
+ * give the posibility to override onClick
1556
+ */
1557
+
1558
+ if (_this2.props.onClick) {
1559
+ _this2.props.onClick(event);
1560
+ }
1561
+
1562
+ /*
1563
+ * dont bubble the navigation
1564
+ */
1565
+
1566
+ if (event.stopPropagation) event.stopPropagation();
1567
+ if (event.preventDefault) event.preventDefault();
1568
+
1569
+ /*
1570
+ * do the magic!
1571
+ */
1572
+ _this2.scrollTo(_this2.props.to, _this2.props);
1573
+ };
1574
+
1575
+ this.stateHandler = function () {
1576
+ if (scroller.getActiveLink() !== _this2.props.to) {
1577
+ if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {
1578
+ _this2.props.onSetInactive();
1579
+ }
1580
+ _this2.setState({ active: false });
1581
+ }
1582
+ };
1583
+
1584
+ this.spyHandler = function (y) {
1585
+
1586
+ var scrollSpyContainer = _this2.getScrollSpyContainer();
1587
+
1588
+ if (scrollHash.isMounted() && !scrollHash.isInitialized()) {
1589
+ return;
1590
+ }
1591
+
1592
+ var to = _this2.props.to;
1593
+ var element = null;
1594
+ var elemTopBound = 0;
1595
+ var elemBottomBound = 0;
1596
+ var containerTop = 0;
1597
+
1598
+ if (scrollSpyContainer.getBoundingClientRect) {
1599
+ var containerCords = scrollSpyContainer.getBoundingClientRect();
1600
+ containerTop = containerCords.top;
1601
+ }
1602
+
1603
+ if (!element || _this2.props.isDynamic) {
1604
+ element = scroller.get(to);
1605
+ if (!element) {
1606
+ return;
1607
+ }
1608
+
1609
+ var cords = element.getBoundingClientRect();
1610
+ elemTopBound = cords.top - containerTop + y;
1611
+ elemBottomBound = elemTopBound + cords.height;
1612
+ }
1613
+
1614
+ var offsetY = y - _this2.props.offset;
1615
+ var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);
1616
+ var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);
1617
+ var activeLink = scroller.getActiveLink();
1618
+
1619
+ if (isOutside) {
1620
+ if (to === activeLink) {
1621
+ scroller.setActiveLink(void 0);
1622
+ }
1623
+
1624
+ if (_this2.props.hashSpy && scrollHash.getHash() === to) {
1625
+ scrollHash.changeHash();
1626
+ }
1627
+
1628
+ if (_this2.props.spy && _this2.state.active) {
1629
+ _this2.setState({ active: false });
1630
+ _this2.props.onSetInactive && _this2.props.onSetInactive();
1631
+ }
1632
+
1633
+ return scrollSpy.updateStates();
1634
+ }
1635
+
1636
+ if (isInside && activeLink !== to) {
1637
+ scroller.setActiveLink(to);
1638
+
1639
+ _this2.props.hashSpy && scrollHash.changeHash(to);
1640
+
1641
+ if (_this2.props.spy) {
1642
+ _this2.setState({ active: true });
1643
+ _this2.props.onSetActive && _this2.props.onSetActive(to);
1644
+ }
1645
+ return scrollSpy.updateStates();
1646
+ }
1647
+ };
1648
+ };
1649
+
1650
+ Scroll.propTypes = protoTypes;
1651
+
1652
+ Scroll.defaultProps = { offset: 0 };
1653
+
1654
+ return Scroll;
1655
+ },
1656
+ Element: function Element(Component) {
1657
+
1658
+ console.warn("Helpers.Element is deprecated since v1.7.0");
1659
+
1660
+ var Element = function (_React$Component2) {
1661
+ _inherits(Element, _React$Component2);
1662
+
1663
+ function Element(props) {
1664
+ _classCallCheck(this, Element);
1665
+
1666
+ var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));
1667
+
1668
+ _this3.childBindings = {
1669
+ domNode: null
1670
+ };
1671
+ return _this3;
1672
+ }
1673
+
1674
+ _createClass(Element, [{
1675
+ key: 'componentDidMount',
1676
+ value: function componentDidMount() {
1677
+ if (typeof window === 'undefined') {
1678
+ return false;
1679
+ }
1680
+ this.registerElems(this.props.name);
1681
+ }
1682
+ }, {
1683
+ key: 'componentDidUpdate',
1684
+ value: function componentDidUpdate(prevProps) {
1685
+ if (this.props.name !== prevProps.name) {
1686
+ this.registerElems(this.props.name);
1687
+ }
1688
+ }
1689
+ }, {
1690
+ key: 'componentWillUnmount',
1691
+ value: function componentWillUnmount() {
1692
+ if (typeof window === 'undefined') {
1693
+ return false;
1694
+ }
1695
+ defaultScroller.unregister(this.props.name);
1696
+ }
1697
+ }, {
1698
+ key: 'registerElems',
1699
+ value: function registerElems(name) {
1700
+ defaultScroller.register(name, this.childBindings.domNode);
1701
+ }
1702
+ }, {
1703
+ key: 'render',
1704
+ value: function render() {
1705
+ return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));
1706
+ }
1707
+ }]);
1708
+
1709
+ return Element;
1710
+ }(React.Component);
1711
+
1712
+ Element.propTypes = {
1713
+ name: PropTypes.string,
1714
+ id: PropTypes.string
1715
+ };
1716
+
1717
+ return Element;
1718
+ }
1719
+ };
1720
+
1721
+ var Helpers_1 = Helpers;
1722
+
1723
+ Object.defineProperty(modules, "__esModule", {
1724
+ value: true
1725
+ });
1726
+ modules.Helpers = modules.ScrollElement = ScrollLink = modules.ScrollLink = modules.animateScroll = modules.scrollSpy = modules.Events = modules.scroller = modules.Element = modules.Button = modules.Link = undefined;
1727
+
1728
+ var _Link = Link$1;
1729
+
1730
+ var _Link2 = _interopRequireDefault(_Link);
1731
+
1732
+ var _Button = Button;
1733
+
1734
+ var _Button2 = _interopRequireDefault(_Button);
1735
+
1736
+ var _Element = Element;
1737
+
1738
+ var _Element2 = _interopRequireDefault(_Element);
1739
+
1740
+ var _scroller = scroller;
1741
+
1742
+ var _scroller2 = _interopRequireDefault(_scroller);
1743
+
1744
+ var _scrollEvents = scrollEvents;
1745
+
1746
+ var _scrollEvents2 = _interopRequireDefault(_scrollEvents);
1747
+
1748
+ var _scrollSpy = scrollSpy$2;
1749
+
1750
+ var _scrollSpy2 = _interopRequireDefault(_scrollSpy);
1751
+
1752
+ var _animateScroll = animateScroll$1;
1753
+
1754
+ var _animateScroll2 = _interopRequireDefault(_animateScroll);
1755
+
1756
+ var _scrollLink = scrollLink;
1757
+
1758
+ var _scrollLink2 = _interopRequireDefault(_scrollLink);
1759
+
1760
+ var _scrollElement = scrollElement;
1761
+
1762
+ var _scrollElement2 = _interopRequireDefault(_scrollElement);
1763
+
1764
+ var _Helpers = Helpers_1;
1765
+
1766
+ var _Helpers2 = _interopRequireDefault(_Helpers);
1767
+
1768
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1769
+
1770
+ modules.Link = _Link2.default;
1771
+ modules.Button = _Button2.default;
1772
+ modules.Element = _Element2.default;
1773
+ modules.scroller = _scroller2.default;
1774
+ modules.Events = _scrollEvents2.default;
1775
+ modules.scrollSpy = _scrollSpy2.default;
1776
+ modules.animateScroll = _animateScroll2.default;
1777
+ var ScrollLink = modules.ScrollLink = _scrollLink2.default;
1778
+ modules.ScrollElement = _scrollElement2.default;
1779
+ modules.Helpers = _Helpers2.default;
1780
+ modules.default = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };
1781
+
1782
+ var linkConfig = {
1783
+ LinkComponent: 'a',
1784
+ setLinkComponent: function (newComponent) {
1785
+ linkConfig.LinkComponent = newComponent;
1786
+ },
1787
+ };
1788
+ function Link(props) {
1789
+ var after = props.after, before = props.before, children = props.children, className = props.className, LinkComponent = props.LinkComponent, href = props.href, link = props.link, target = props.target, rel = props.rel, text = props.text, _a = props.underline, underline = _a === void 0 ? 'underline' : _a, onClick = props.onClick, onMouseDown = props.onMouseDown;
1790
+ var directionClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1791
+ prefix: 'link_direction_',
1792
+ propsKey: 'direction',
1793
+ });
1794
+ var sizeClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1795
+ prefix: 'text_size_',
1796
+ propsKey: 'size',
1797
+ });
1798
+ var textColorClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1799
+ prefix: 'text-color_',
1800
+ propsKey: 'textColor',
1801
+ });
1802
+ var fillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1803
+ prefix: 'fill_',
1804
+ propsKey: 'fill',
1805
+ });
1806
+ var svgFillClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1807
+ prefix: 'svg_fill_',
1808
+ propsKey: 'svgFill',
1809
+ });
1810
+ var svgFillHoverClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1811
+ prefix: 'svg_fill_hover_',
1812
+ propsKey: 'svgFillHover',
1813
+ });
1814
+ var weightClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1815
+ prefix: 'text-weight_',
1816
+ propsKey: 'textWeight',
1817
+ });
1818
+ var textColorHoverClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1819
+ prefix: 'text-color_hover_',
1820
+ propsKey: 'textColorHover',
1821
+ });
1822
+ var textStyleClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1823
+ prefix: 'text-style_',
1824
+ propsKey: 'textColorHover',
1825
+ });
1826
+ var textGradientClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1827
+ prefix: 'text-gradient_',
1828
+ propsKey: 'textGradient',
1829
+ });
1830
+ var widthClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1831
+ prefix: 'width_',
1832
+ propsKey: 'width',
1833
+ });
1834
+ var heightClass = useDeviceTargetClass.useDeviceTargetClass(props, {
1835
+ prefix: 'height_',
1836
+ propsKey: 'height',
1837
+ });
1838
+ // @ts-expect-error
1839
+ var styles = useStyles.useStyles(props).styles;
1840
+ return (jsxRuntime.jsxRuntimeExports.jsxs(LinkWrapper, { className: clsx__default.default(className, 'link', widthClass, heightClass, directionClass, sizeClass, svgFillClass, svgFillHoverClass, underline && "link_underline_".concat(underline), 'text', (textColorClass ||
1841
+ textColorHoverClass ||
1842
+ textGradientClass ||
1843
+ textStyleClass ||
1844
+ weightClass) &&
1845
+ 'text', textColorClass, textColorHoverClass, textGradientClass, textStyleClass, weightClass, fillClass), Component: LinkComponent, href: href || link, rel: rel, style: styles, target: target, onClick: onClick, onMouseDown: onMouseDown, children: [before, children || text, after] }));
1846
+ }
1847
+ Link.defaultProps = {
1848
+ underline: 'underline',
1849
+ };
1850
+ // Wrapper with "Link" by condition
1851
+ function LinkWrapper(props) {
1852
+ var children = props.children, Component = props.Component, DefaultComponent = props.DefaultComponent, href = props.href, target = props.target, rel = props.rel, otherProps = _tslib.__rest(props, ["children", "Component", "DefaultComponent", "href", "target", "rel"]);
1853
+ if (href) {
1854
+ // If href passed, make link-wrapper
1855
+ var LinkComponent = Component || linkConfig.LinkComponent;
1856
+ if (LinkComponent) {
1857
+ return (jsxRuntime.jsxRuntimeExports.jsx(LinkComponent, _tslib.__assign({ href: href, rel: rel, target: target }, otherProps, { children: children })));
1858
+ }
1859
+ }
1860
+ else if (DefaultComponent) {
1861
+ // If has default "Component" - render it
1862
+ return jsxRuntime.jsxRuntimeExports.jsx(DefaultComponent, _tslib.__assign({}, otherProps, { children: children }));
1863
+ }
1864
+ // Return children and pass current props to
1865
+ return React__default.default.Children.toArray(children)
1866
+ .filter(Boolean)
1867
+ .map(function (child) {
1868
+ return React__default.default.isValidElement(child) ? React__default.default.cloneElement(child, otherProps) : child;
1869
+ });
1870
+ }
1871
+ // @ts-expect-error
1872
+ var LinkScrollable = ScrollLink(Link);
1873
+
1874
+ exports.Link = Link;
1875
+ exports.LinkScrollable = LinkScrollable;
1876
+ exports.LinkWrapper = LinkWrapper;
1877
+ exports.linkConfig = linkConfig;