@integreat-app/react-sticky-headroom 3.0.0 → 3.0.2
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/index.cjs +3 -5
- package/index.cjs.map +1 -1
- package/index.d.ts.map +1 -1
- package/index.js +4 -6
- package/index.js.map +1 -0
- package/index.tsx +4 -6
- package/package.json +34 -40
package/index.cjs
CHANGED
|
@@ -38,12 +38,10 @@ const TRANSITION_NONE = 'none';
|
|
|
38
38
|
const TRANSITION_NORMAL = 'normal';
|
|
39
39
|
const TRANSITION_PINNED_TO_STATIC = 'pinned-to-static';
|
|
40
40
|
const HeaderWrapper = (0, /*#__PURE__*/ _styled.default)("div", {
|
|
41
|
-
target: "
|
|
41
|
+
target: "e1o9mv740",
|
|
42
42
|
label: "HeaderWrapper"
|
|
43
|
-
})("position:", (props)=>props.$positionStickyDisabled ? 'static' : 'sticky', ";top:", (props)=>props.$top, "px;z-index:", (props)=>props.$zIndex, ";transform:translateY(", (props)=>props.$translateY, "px);animation-duration:0.2s;animation-timing-function:ease-out;", (props)=>props.$transition === TRANSITION_NORMAL && !props.$static ? 'transition: transform 0.2s ease-out;' : '', "
|
|
44
|
-
|
|
45
|
-
` : '', " ", (props)=>props.$static ? 'transition: none;' : '', "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlcyI6WyJpbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuXG5jb25zdCBESVJFQ1RJT05fVVAgPSAndXAnXG5jb25zdCBESVJFQ1RJT05fRE9XTiA9ICdkb3duJ1xuXG5jb25zdCBNT0RFX1VOUElOTkVEID0gJ3VucGlubmVkJ1xuY29uc3QgTU9ERV9QSU5ORUQgPSAncGlubmVkJ1xuY29uc3QgTU9ERV9TVEFUSUMgPSAnc3RhdGljJ1xuXG5jb25zdCBUUkFOU0lUSU9OX05PTkUgPSAnbm9uZSdcbmNvbnN0IFRSQU5TSVRJT05fTk9STUFMID0gJ25vcm1hbCdcbmNvbnN0IFRSQU5TSVRJT05fUElOTkVEX1RPX1NUQVRJQyA9ICdwaW5uZWQtdG8tc3RhdGljJ1xuXG50eXBlIE1vZGVUeXBlID0gdHlwZW9mIE1PREVfUElOTkVEIHwgdHlwZW9mIE1PREVfVU5QSU5ORUQgfCB0eXBlb2YgTU9ERV9TVEFUSUNcbnR5cGUgRGlyZWN0aW9uVHlwZSA9IHR5cGVvZiBESVJFQ1RJT05fVVAgfCB0eXBlb2YgRElSRUNUSU9OX0RPV05cbnR5cGUgVHJhbnNpdGlvblR5cGUgPSB0eXBlb2YgVFJBTlNJVElPTl9OT05FIHwgdHlwZW9mIFRSQU5TSVRJT05fTk9STUFMIHwgdHlwZW9mIFRSQU5TSVRJT05fUElOTkVEX1RPX1NUQVRJQ1xuXG50eXBlIFByb3BzVHlwZSA9IHtcbiAgLyoqIFRoZSBjaGlsZCBub2RlIHRvIGJlIGRpc3BsYXllZCBhcyBhIGhlYWRlciAqL1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIC8qKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgcHggdGhlIGhlYWRlciBzaG91bGQgbW92ZSB1cCB3aGVuIHNjcm9sbGluZyAqL1xuICBzY3JvbGxIZWlnaHQ6IG51bWJlclxuICAvKiogVGhlIG1pbmltdW0gc2Nyb2xsVG9wIHBvc2l0aW9uIHdoZXJlIHRoZSB0cmFuc2Zvcm0gc2hvdWxkIHN0YXJ0ICovXG4gIHBpblN0YXJ0OiBudW1iZXJcbiAgLyoqIFVzZWQgZm9yIGNhbGN1bGF0aW5nIHRoZSBzdGlja3lUb3AgcG9zaXRpb24gb2YgYW4gYW5jZXN0b3IgKi9cbiAgaGVpZ2h0PzogbnVtYmVyXG4gIC8qKiBGaXJlZCwgd2hlbiBIZWFkcm9vbSBjaGFuZ2VzIGl0cyBzdGF0ZS4gUGFzc2VzIHN0aWNreVRvcCBvZiB0aGUgYW5jZXN0b3IuICovXG4gIG9uU3RpY2t5VG9wQ2hhbmdlZD86IChzdGlja3lUb3A6IG51bWJlcikgPT4gdm9pZFxuICAvKiogVHJ1ZSwgaWYgc3RpY2t5IHBvc2l0aW9uIHNob3VsZCBiZSBkaXNhYmxlZCAoZS5nLiBmb3IgZWRnZSAxNiBzdXBwb3J0KSAqL1xuICBwb3NpdGlvblN0aWNreURpc2FibGVkPzogYm9vbGVhblxuICAvKiogVGhlIHBhcmVudCBlbGVtZW50IGZpcmluZyB0aGUgc2Nyb2xsIGV2ZW50LiBEZWZhdWx0cyB0byBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgKi9cbiAgcGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsXG4gIC8qKiBUaGUgei1pbmRleCB1c2VkIGJ5IHRoZSB3cmFwcGVyLiBEZWZhdWx0cyB0byAxLiAqL1xuICB6SW5kZXg/OiBudW1iZXJcbiAgLyoqIEEgY2xhc3NuYW1lIGZvciBhcHBseWluZyBjdXN0b20gc3R5bGVzIHRvIHRoZSB3cmFwcGVyLiBVc2UgYXQgeW91ciBvd24gcmlzay4gKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbnR5cGUgU3RhdGVUeXBlID0ge1xuICBtb2RlOiBNb2RlVHlwZVxuICB0cmFuc2l0aW9uOiBUcmFuc2l0aW9uVHlwZVxuICBhbmltYXRlVXBGcm9tOiBudW1iZXIgfCBudWxsXG59XG5cbmNvbnN0IEhlYWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2PHtcbiAgJHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQ6IGJvb2xlYW5cbiAgJHRyYW5zbGF0ZVk6IG51bWJlclxuICAkdHJhbnNpdGlvbjogVHJhbnNpdGlvblR5cGVcbiAgJGFuaW1hdGVVcEZyb206IG51bWJlciB8IG51bGxcbiAgJHpJbmRleD86IG51bWJlclxuICAkdG9wOiBudW1iZXJcbiAgJHN0YXRpYzogYm9vbGVhblxufT5gXG4gIHBvc2l0aW9uOiAke3Byb3BzID0+IChwcm9wcy4kcG9zaXRpb25TdGlja3lEaXNhYmxlZCA/ICdzdGF0aWMnIDogJ3N0aWNreScpfTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLiR0b3B9cHg7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMuJHpJbmRleH07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgke3Byb3BzID0+IHByb3BzLiR0cmFuc2xhdGVZfXB4KTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgJHtwcm9wcyA9PiAocHJvcHMuJHRyYW5zaXRpb24gPT09IFRSQU5TSVRJT05fTk9STUFMICYmICFwcm9wcy4kc3RhdGljID8gJ3RyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2Utb3V0OycgOiAnJyl9XG4gICR7cHJvcHMgPT5cbiAgICBwcm9wcy4kdHJhbnNpdGlvbiA9PT0gVFJBTlNJVElPTl9QSU5ORURfVE9fU1RBVElDICYmIHByb3BzLiRhbmltYXRlVXBGcm9tICE9PSBudWxsXG4gICAgICA/IGNzc2BcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogJHtrZXlmcmFtZXNNb3ZlVXBGcm9tKHByb3BzLiRhbmltYXRlVXBGcm9tKX07XG4gICAgICAgIGBcbiAgICAgIDogJyd9XG4gICR7cHJvcHMgPT4gKHByb3BzLiRzdGF0aWMgPyAndHJhbnNpdGlvbjogbm9uZTsnIDogJycpfVxuYFxuXG5jb25zdCBrZXlmcmFtZXNNb3ZlVXBGcm9tID0gKGZyb206IG51bWJlcikgPT4ga2V5ZnJhbWVzYFxuICAgIGZyb20ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR7TWF0aC5tYXgoZnJvbSwgMCl9cHgpXG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApXG4gICAgfVxuYFxuXG5jbGFzcyBIZWFkcm9vbSBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8UHJvcHNUeXBlLCBTdGF0ZVR5cGU+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wczogeyBwaW5TdGFydDogbnVtYmVyOyB6SW5kZXg6IG51bWJlcjsgcGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgfSA9IHtcbiAgICBwaW5TdGFydDogMCxcbiAgICB6SW5kZXg6IDEsXG4gICAgcGFyZW50OiB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFxuICB9XG5cbiAgc3RhdGU6IFN0YXRlVHlwZSA9IHtcbiAgICBtb2RlOiBNT0RFX1NUQVRJQyxcbiAgICB0cmFuc2l0aW9uOiBUUkFOU0lUSU9OX05PTkUsXG4gICAgYW5pbWF0ZVVwRnJvbTogbnVsbCxcbiAgfVxuXG4gIC8qKiB0aGUgdmVyeSBsYXN0IHNjcm9sbFRvcCB3aGljaCB3ZSBrbm93IGFib3V0ICh0byBkZXRlcm1pbmUgZGlyZWN0aW9uIGNoYW5nZXMpICovXG4gIGxhc3RLbm93blNjcm9sbFRvcDogbnVtYmVyID0gMFxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSB0aGUgY3VycmVudCBzY3JvbGxUb3AgcG9zaXRpb24gb2YgdGhlIHdpbmRvd1xuICAgKi9cbiAgZ2V0U2Nyb2xsVG9wKCk6IG51bWJlciB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5wcm9wcy5wYXJlbnRcbiAgICBpZiAocGFyZW50ICYmIHBhcmVudC5zY3JvbGxUb3AgIT09IHVuZGVmaW5lZCAmJiBwYXJlbnQgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHBhcmVudC5zY3JvbGxUb3BcbiAgICB9XG4gICAgaWYgKHBhcmVudCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBkZXRlcm1pbmUgc2Nyb2xsVG9wIGZyb20gcGFyZW50IGZvciBTdGlja3lIZWFkcm9vbS4gRGVmYXVsdGluZyB0byB3aW5kb3cucGFnZVlPZmZzZXQuJylcbiAgICB9XG4gICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCd3aW5kb3cucGFnZVlPZmZzZXQgaXMgdW5kZWZpbmVkLiBEZWZhdWx0aW5nIHRvIDAuJylcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICAgIHJldHVybiB3aW5kb3cucGFnZVlPZmZzZXRcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuYWRkU2Nyb2xsTGlzdGVuZXIodGhpcy5wcm9wcy5wYXJlbnQpXG4gIH1cblxuICBhZGRTY3JvbGxMaXN0ZW5lcihwYXJlbnQ/OiBIVE1MRWxlbWVudCB8IG51bGwpIHtcbiAgICBpZiAocGFyZW50ID09PSB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVFdmVudClcbiAgICB9IGVsc2UgaWYgKHBhcmVudCkge1xuICAgICAgcGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlRXZlbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoXCIncGFyZW50JyBwcm9wIG9mIEhlYWRyb29tIGlzIG51bGwuIEFzc3VtaW5nLCBpdCB3aWxsIGJlIHNldCBzb29uLi4uXCIpXG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlU2Nyb2xsTGlzdGVuZXIocGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgaWYgKHBhcmVudCA9PT0gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlRXZlbnQpXG4gICAgfSBlbHNlIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZUV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHM6IFByb3BzVHlwZSkge1xuICAgIGlmIChwcmV2UHJvcHMucGFyZW50ICE9PSB0aGlzLnByb3BzLnBhcmVudCkge1xuICAgICAgdGhpcy5yZW1vdmVTY3JvbGxMaXN0ZW5lcihwcmV2UHJvcHMucGFyZW50KVxuICAgICAgdGhpcy5hZGRTY3JvbGxMaXN0ZW5lcih0aGlzLnByb3BzLnBhcmVudClcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVyKHRoaXMucHJvcHMucGFyZW50KVxuICB9XG5cbiAgLyoqXG4gICAqIElmIHdlJ3JlIGFscmVhZHkgc3RhdGljIGFuZCBwaW5TdGFydCArIHNjcm9sbEhlaWdodCA+PSBzY3JvbGxUb3AsIHRoZW4gd2Ugc2hvdWxkIHN0YXkgc3RhdGljLlxuICAgKiBJZiB3ZSdyZSBub3QgYWxyZWFkeSBzdGF0aWMsIHRoZW4gd2Ugc2hvdWxkIHNldCB0aGUgaGVhZGVyIHN0YXRpYywgb25seSB3aGVuIHBpblN0YXJ0ID49IHNjcm9sbFRvcCAocmVnYXJkbGVzcyBvZlxuICAgKiBzY3JvbGxIZWlnaHQsIHNvIHRoZSBoZWFkZXIgZG9lc24ndCBqdW1wIHVwLCB3aGVuIHNjcm9sbGluZyB1cHdhcmRzIHRvIHRoZSB0cmlnZ2VyKS5cbiAgICogRWxzZSB3ZSBzaG91bGRuJ3Qgc2V0IGl0IHN0YXRpYy5cbiAgICogQHBhcmFtIHNjcm9sbFRvcCB0aGUgY3VycmVudFNjcm9sbFRvcCBwb3NpdGlvblxuICAgKiBAcGFyYW0gZGlyZWN0aW9uIHRoZSBjdXJyZW50IGRpcmVjdGlvblxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gaWYgd2Ugc2hvdWxkIHNldCB0aGUgaGVhZGVyIHN0YXRpY1xuICAgKi9cbiAgc2hvdWxkU2V0U3RhdGljKHNjcm9sbFRvcDogbnVtYmVyLCBkaXJlY3Rpb246IERpcmVjdGlvblR5cGUpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RlID09PSBNT0RFX1NUQVRJQyB8fCAodGhpcy5zdGF0ZS5tb2RlID09PSBNT0RFX1BJTk5FRCAmJiBkaXJlY3Rpb24gPT09IERJUkVDVElPTl9ET1dOKSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMucGluU3RhcnQgKyB0aGlzLnByb3BzLnNjcm9sbEhlaWdodCA+PSBzY3JvbGxUb3BcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMucGluU3RhcnQgPj0gc2Nyb2xsVG9wXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIG1vZGUgZGVwZW5kaW5nIG9uIHRoZSBzY3JvbGxUb3AgcG9zaXRpb24gYW5kIHRoZSBjdXJyZW50IGRpcmVjdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gc2Nyb2xsVG9wXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3Rpb25cbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIG5leHQgbW9kZSBvZiBIZWFkcm9vbVxuICAgKi9cbiAgZGV0ZXJtaW5lTW9kZShzY3JvbGxUb3A6IG51bWJlciwgZGlyZWN0aW9uOiBEaXJlY3Rpb25UeXBlKTogTW9kZVR5cGUge1xuICAgIGlmICh0aGlzLnNob3VsZFNldFN0YXRpYyhzY3JvbGxUb3AsIGRpcmVjdGlvbikpIHtcbiAgICAgIHJldHVybiBNT0RFX1NUQVRJQ1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGlyZWN0aW9uID09PSBESVJFQ1RJT05fVVAgPyBNT0RFX1BJTk5FRCA6IE1PREVfVU5QSU5ORURcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1RyYW5zaXRpb25UeXBlfSBkZXRlcm1pbmVzIHRoZSBraW5kIG9mIHRyYW5zaXRpb25cbiAgICovXG4gIGRldGVybWluZVRyYW5zaXRpb24obW9kZTogTW9kZVR5cGUsIGRpcmVjdGlvbjogRGlyZWN0aW9uVHlwZSk6IFRyYW5zaXRpb25UeXBlIHtcbiAgICAvLyBIYW5kbGUgc3BlY2lhbCBjYXNlOiBJZiB3ZSdyZSBwaW5uZWQgYW5kIGdvaW5nIHRvIHN0YXRpYywgd2UgbmVlZCBhIHNwZWNpYWwgdHJhbnNpdGlvbiB1c2luZyBjc3MgYW5pbWF0aW9uXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kZSA9PT0gTU9ERV9QSU5ORUQgJiYgbW9kZSA9PT0gTU9ERV9TVEFUSUMpIHtcbiAgICAgIHJldHVybiBUUkFOU0lUSU9OX1BJTk5FRF9UT19TVEFUSUNcbiAgICB9XG4gICAgLy8gSWYgbW9kZSBpcyBzdGF0aWMsIHRoZW4gbm8gdHJhbnNpdGlvbiwgYmVjYXVzZSB3ZSdyZSBhbHJlYWR5IGluIHRoZSByaWdodCBzcG90XG4gICAgLy8gKGFuZCB3YW50IHRvIGNoYW5nZSB0cmFuc2Zvcm0gYW5kIHRvcCBwcm9wZXJ0aWVzIHNlYW1sZXNzbHkpXG4gICAgaWYgKG1vZGUgPT09IE1PREVfU1RBVElDKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZS50cmFuc2l0aW9uID09PSBUUkFOU0lUSU9OX05PTkUgPyBUUkFOU0lUSU9OX05PTkUgOiBUUkFOU0lUSU9OX1BJTk5FRF9UT19TVEFUSUNcbiAgICB9XG4gICAgLy8gbW9kZSBpcyBub3Qgc3RhdGljLCB0cmFuc2l0aW9uIHdoZW4gbW92aW5nIHVwd2FyZHMgb3Igd2hlbiB3ZSd2ZSBsYXN0bHkgZGlkIHRoZSB0cmFuc2l0aW9uXG4gICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gRElSRUNUSU9OX1VQIHx8IHRoaXMuc3RhdGUudHJhbnNpdGlvbiA9PT0gVFJBTlNJVElPTl9OT1JNQUxcbiAgICAgID8gVFJBTlNJVElPTl9OT1JNQUxcbiAgICAgIDogVFJBTlNJVElPTl9OT05FXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBjdXJyZW50IHNjcm9sbFRvcCBwb3NpdGlvbiBhbmQgdXBkYXRlcyB0aGUgc3RhdGUgYWNjb3JkaW5nbHlcbiAgICovXG4gIHVwZGF0ZTogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsVG9wID0gdGhpcy5nZXRTY3JvbGxUb3AoKVxuICAgIGNvbnN0IG5ld1N0YXRlOiBQYXJ0aWFsPFN0YXRlVHlwZT4gPSB7fVxuICAgIGlmIChjdXJyZW50U2Nyb2xsVG9wID09PSB0aGlzLmxhc3RLbm93blNjcm9sbFRvcCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMubGFzdEtub3duU2Nyb2xsVG9wIDwgY3VycmVudFNjcm9sbFRvcCA/IERJUkVDVElPTl9ET1dOIDogRElSRUNUSU9OX1VQXG4gICAgbmV3U3RhdGUubW9kZSA9IHRoaXMuZGV0ZXJtaW5lTW9kZShjdXJyZW50U2Nyb2xsVG9wLCBkaXJlY3Rpb24pXG4gICAgbmV3U3RhdGUudHJhbnNpdGlvbiA9IHRoaXMuZGV0ZXJtaW5lVHJhbnNpdGlvbihuZXdTdGF0ZS5tb2RlLCBkaXJlY3Rpb24pXG5cbiAgICBjb25zdCB7IG9uU3RpY2t5VG9wQ2hhbmdlZCwgaGVpZ2h0LCBzY3JvbGxIZWlnaHQsIHBpblN0YXJ0IH0gPSB0aGlzLnByb3BzXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kZSA9PT0gTU9ERV9QSU5ORUQgJiYgbmV3U3RhdGUubW9kZSA9PT0gTU9ERV9TVEFUSUMpIHtcbiAgICAgIC8vIGFuaW1hdGlvbiBpbiB0aGUgc3BlY2lhbCBjYXNlIGZyb20gcGlubmVkIHRvIHN0YXRpY1xuICAgICAgbmV3U3RhdGUuYW5pbWF0ZVVwRnJvbSA9IGN1cnJlbnRTY3JvbGxUb3AgLSBwaW5TdGFydFxuICAgIH1cbiAgICBpZiAob25TdGlja3lUb3BDaGFuZ2VkICYmIG5ld1N0YXRlLm1vZGUgIT09IHRoaXMuc3RhdGUubW9kZSAmJiBoZWlnaHQpIHtcbiAgICAgIG9uU3RpY2t5VG9wQ2hhbmdlZChIZWFkcm9vbS5jYWxjU3RpY2t5VG9wKG5ld1N0YXRlLm1vZGUsIGhlaWdodCwgc2Nyb2xsSGVpZ2h0KSlcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZShuZXdTdGF0ZSBhcyBTdGF0ZVR5cGUpXG4gICAgdGhpcy5sYXN0S25vd25TY3JvbGxUb3AgPSBjdXJyZW50U2Nyb2xsVG9wXG4gIH1cblxuICBoYW5kbGVFdmVudDogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudXBkYXRlKVxuICB9XG5cbiAgc3RhdGljIGNhbGNTdGlja3lUb3AobW9kZTogTW9kZVR5cGUsIGhlaWdodDogbnVtYmVyLCBzY3JvbGxIZWlnaHQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vZGUgPT09IE1PREVfUElOTkVEID8gaGVpZ2h0IDogaGVpZ2h0IC0gc2Nyb2xsSGVpZ2h0XG4gIH1cblxuICByZW5kZXIoKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBzY3JvbGxIZWlnaHQsIHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQsIHpJbmRleCwgY2xhc3NOYW1lIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgeyBtb2RlLCB0cmFuc2l0aW9uLCBhbmltYXRlVXBGcm9tIH0gPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgdHJhbnNmb3JtID0gbW9kZSA9PT0gTU9ERV9VTlBJTk5FRCA/IC1zY3JvbGxIZWlnaHQgOiAwXG4gICAgY29uc3Qgb3duU3RpY2t5VG9wID0gbW9kZSA9PT0gTU9ERV9TVEFUSUMgPyAtc2Nyb2xsSGVpZ2h0IDogMFxuICAgIHJldHVybiAoXG4gICAgICA8SGVhZGVyV3JhcHBlclxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgJHRyYW5zbGF0ZVk9e3RyYW5zZm9ybX1cbiAgICAgICAgJHRvcD17b3duU3RpY2t5VG9wfVxuICAgICAgICAkdHJhbnNpdGlvbj17dHJhbnNpdGlvbn1cbiAgICAgICAgJHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQ9eyEhcG9zaXRpb25TdGlja3lEaXNhYmxlZH1cbiAgICAgICAgJHN0YXRpYz17bW9kZSA9PT0gTU9ERV9TVEFUSUN9XG4gICAgICAgICRhbmltYXRlVXBGcm9tPXthbmltYXRlVXBGcm9tfVxuICAgICAgICAkekluZGV4PXt6SW5kZXh9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0hlYWRlcldyYXBwZXI+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRyb29tXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOENzQiJ9 */");
|
|
46
|
-
const keyframesMoveUpFrom = (from)=>(0, /*#__PURE__*/ _react1.keyframes)("from{transform:translateY(", Math.max(from, 0), "px)}to{transform:translateY(0)}", "keyframesMoveUpFrom", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlcyI6WyJpbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuXG5jb25zdCBESVJFQ1RJT05fVVAgPSAndXAnXG5jb25zdCBESVJFQ1RJT05fRE9XTiA9ICdkb3duJ1xuXG5jb25zdCBNT0RFX1VOUElOTkVEID0gJ3VucGlubmVkJ1xuY29uc3QgTU9ERV9QSU5ORUQgPSAncGlubmVkJ1xuY29uc3QgTU9ERV9TVEFUSUMgPSAnc3RhdGljJ1xuXG5jb25zdCBUUkFOU0lUSU9OX05PTkUgPSAnbm9uZSdcbmNvbnN0IFRSQU5TSVRJT05fTk9STUFMID0gJ25vcm1hbCdcbmNvbnN0IFRSQU5TSVRJT05fUElOTkVEX1RPX1NUQVRJQyA9ICdwaW5uZWQtdG8tc3RhdGljJ1xuXG50eXBlIE1vZGVUeXBlID0gdHlwZW9mIE1PREVfUElOTkVEIHwgdHlwZW9mIE1PREVfVU5QSU5ORUQgfCB0eXBlb2YgTU9ERV9TVEFUSUNcbnR5cGUgRGlyZWN0aW9uVHlwZSA9IHR5cGVvZiBESVJFQ1RJT05fVVAgfCB0eXBlb2YgRElSRUNUSU9OX0RPV05cbnR5cGUgVHJhbnNpdGlvblR5cGUgPSB0eXBlb2YgVFJBTlNJVElPTl9OT05FIHwgdHlwZW9mIFRSQU5TSVRJT05fTk9STUFMIHwgdHlwZW9mIFRSQU5TSVRJT05fUElOTkVEX1RPX1NUQVRJQ1xuXG50eXBlIFByb3BzVHlwZSA9IHtcbiAgLyoqIFRoZSBjaGlsZCBub2RlIHRvIGJlIGRpc3BsYXllZCBhcyBhIGhlYWRlciAqL1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIC8qKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgcHggdGhlIGhlYWRlciBzaG91bGQgbW92ZSB1cCB3aGVuIHNjcm9sbGluZyAqL1xuICBzY3JvbGxIZWlnaHQ6IG51bWJlclxuICAvKiogVGhlIG1pbmltdW0gc2Nyb2xsVG9wIHBvc2l0aW9uIHdoZXJlIHRoZSB0cmFuc2Zvcm0gc2hvdWxkIHN0YXJ0ICovXG4gIHBpblN0YXJ0OiBudW1iZXJcbiAgLyoqIFVzZWQgZm9yIGNhbGN1bGF0aW5nIHRoZSBzdGlja3lUb3AgcG9zaXRpb24gb2YgYW4gYW5jZXN0b3IgKi9cbiAgaGVpZ2h0PzogbnVtYmVyXG4gIC8qKiBGaXJlZCwgd2hlbiBIZWFkcm9vbSBjaGFuZ2VzIGl0cyBzdGF0ZS4gUGFzc2VzIHN0aWNreVRvcCBvZiB0aGUgYW5jZXN0b3IuICovXG4gIG9uU3RpY2t5VG9wQ2hhbmdlZD86IChzdGlja3lUb3A6IG51bWJlcikgPT4gdm9pZFxuICAvKiogVHJ1ZSwgaWYgc3RpY2t5IHBvc2l0aW9uIHNob3VsZCBiZSBkaXNhYmxlZCAoZS5nLiBmb3IgZWRnZSAxNiBzdXBwb3J0KSAqL1xuICBwb3NpdGlvblN0aWNreURpc2FibGVkPzogYm9vbGVhblxuICAvKiogVGhlIHBhcmVudCBlbGVtZW50IGZpcmluZyB0aGUgc2Nyb2xsIGV2ZW50LiBEZWZhdWx0cyB0byBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgKi9cbiAgcGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsXG4gIC8qKiBUaGUgei1pbmRleCB1c2VkIGJ5IHRoZSB3cmFwcGVyLiBEZWZhdWx0cyB0byAxLiAqL1xuICB6SW5kZXg/OiBudW1iZXJcbiAgLyoqIEEgY2xhc3NuYW1lIGZvciBhcHBseWluZyBjdXN0b20gc3R5bGVzIHRvIHRoZSB3cmFwcGVyLiBVc2UgYXQgeW91ciBvd24gcmlzay4gKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbnR5cGUgU3RhdGVUeXBlID0ge1xuICBtb2RlOiBNb2RlVHlwZVxuICB0cmFuc2l0aW9uOiBUcmFuc2l0aW9uVHlwZVxuICBhbmltYXRlVXBGcm9tOiBudW1iZXIgfCBudWxsXG59XG5cbmNvbnN0IEhlYWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2PHtcbiAgJHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQ6IGJvb2xlYW5cbiAgJHRyYW5zbGF0ZVk6IG51bWJlclxuICAkdHJhbnNpdGlvbjogVHJhbnNpdGlvblR5cGVcbiAgJGFuaW1hdGVVcEZyb206IG51bWJlciB8IG51bGxcbiAgJHpJbmRleD86IG51bWJlclxuICAkdG9wOiBudW1iZXJcbiAgJHN0YXRpYzogYm9vbGVhblxufT5gXG4gIHBvc2l0aW9uOiAke3Byb3BzID0+IChwcm9wcy4kcG9zaXRpb25TdGlja3lEaXNhYmxlZCA/ICdzdGF0aWMnIDogJ3N0aWNreScpfTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLiR0b3B9cHg7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMuJHpJbmRleH07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgke3Byb3BzID0+IHByb3BzLiR0cmFuc2xhdGVZfXB4KTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgJHtwcm9wcyA9PiAocHJvcHMuJHRyYW5zaXRpb24gPT09IFRSQU5TSVRJT05fTk9STUFMICYmICFwcm9wcy4kc3RhdGljID8gJ3RyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2Utb3V0OycgOiAnJyl9XG4gICR7cHJvcHMgPT5cbiAgICBwcm9wcy4kdHJhbnNpdGlvbiA9PT0gVFJBTlNJVElPTl9QSU5ORURfVE9fU1RBVElDICYmIHByb3BzLiRhbmltYXRlVXBGcm9tICE9PSBudWxsXG4gICAgICA/IGNzc2BcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogJHtrZXlmcmFtZXNNb3ZlVXBGcm9tKHByb3BzLiRhbmltYXRlVXBGcm9tKX07XG4gICAgICAgIGBcbiAgICAgIDogJyd9XG4gICR7cHJvcHMgPT4gKHByb3BzLiRzdGF0aWMgPyAndHJhbnNpdGlvbjogbm9uZTsnIDogJycpfVxuYFxuXG5jb25zdCBrZXlmcmFtZXNNb3ZlVXBGcm9tID0gKGZyb206IG51bWJlcikgPT4ga2V5ZnJhbWVzYFxuICAgIGZyb20ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR7TWF0aC5tYXgoZnJvbSwgMCl9cHgpXG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApXG4gICAgfVxuYFxuXG5jbGFzcyBIZWFkcm9vbSBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8UHJvcHNUeXBlLCBTdGF0ZVR5cGU+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wczogeyBwaW5TdGFydDogbnVtYmVyOyB6SW5kZXg6IG51bWJlcjsgcGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgfSA9IHtcbiAgICBwaW5TdGFydDogMCxcbiAgICB6SW5kZXg6IDEsXG4gICAgcGFyZW50OiB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFxuICB9XG5cbiAgc3RhdGU6IFN0YXRlVHlwZSA9IHtcbiAgICBtb2RlOiBNT0RFX1NUQVRJQyxcbiAgICB0cmFuc2l0aW9uOiBUUkFOU0lUSU9OX05PTkUsXG4gICAgYW5pbWF0ZVVwRnJvbTogbnVsbCxcbiAgfVxuXG4gIC8qKiB0aGUgdmVyeSBsYXN0IHNjcm9sbFRvcCB3aGljaCB3ZSBrbm93IGFib3V0ICh0byBkZXRlcm1pbmUgZGlyZWN0aW9uIGNoYW5nZXMpICovXG4gIGxhc3RLbm93blNjcm9sbFRvcDogbnVtYmVyID0gMFxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSB0aGUgY3VycmVudCBzY3JvbGxUb3AgcG9zaXRpb24gb2YgdGhlIHdpbmRvd1xuICAgKi9cbiAgZ2V0U2Nyb2xsVG9wKCk6IG51bWJlciB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5wcm9wcy5wYXJlbnRcbiAgICBpZiAocGFyZW50ICYmIHBhcmVudC5zY3JvbGxUb3AgIT09IHVuZGVmaW5lZCAmJiBwYXJlbnQgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHBhcmVudC5zY3JvbGxUb3BcbiAgICB9XG4gICAgaWYgKHBhcmVudCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBkZXRlcm1pbmUgc2Nyb2xsVG9wIGZyb20gcGFyZW50IGZvciBTdGlja3lIZWFkcm9vbS4gRGVmYXVsdGluZyB0byB3aW5kb3cucGFnZVlPZmZzZXQuJylcbiAgICB9XG4gICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCd3aW5kb3cucGFnZVlPZmZzZXQgaXMgdW5kZWZpbmVkLiBEZWZhdWx0aW5nIHRvIDAuJylcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICAgIHJldHVybiB3aW5kb3cucGFnZVlPZmZzZXRcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuYWRkU2Nyb2xsTGlzdGVuZXIodGhpcy5wcm9wcy5wYXJlbnQpXG4gIH1cblxuICBhZGRTY3JvbGxMaXN0ZW5lcihwYXJlbnQ/OiBIVE1MRWxlbWVudCB8IG51bGwpIHtcbiAgICBpZiAocGFyZW50ID09PSB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVFdmVudClcbiAgICB9IGVsc2UgaWYgKHBhcmVudCkge1xuICAgICAgcGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlRXZlbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoXCIncGFyZW50JyBwcm9wIG9mIEhlYWRyb29tIGlzIG51bGwuIEFzc3VtaW5nLCBpdCB3aWxsIGJlIHNldCBzb29uLi4uXCIpXG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlU2Nyb2xsTGlzdGVuZXIocGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgaWYgKHBhcmVudCA9PT0gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlRXZlbnQpXG4gICAgfSBlbHNlIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZUV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHM6IFByb3BzVHlwZSkge1xuICAgIGlmIChwcmV2UHJvcHMucGFyZW50ICE9PSB0aGlzLnByb3BzLnBhcmVudCkge1xuICAgICAgdGhpcy5yZW1vdmVTY3JvbGxMaXN0ZW5lcihwcmV2UHJvcHMucGFyZW50KVxuICAgICAgdGhpcy5hZGRTY3JvbGxMaXN0ZW5lcih0aGlzLnByb3BzLnBhcmVudClcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVyKHRoaXMucHJvcHMucGFyZW50KVxuICB9XG5cbiAgLyoqXG4gICAqIElmIHdlJ3JlIGFscmVhZHkgc3RhdGljIGFuZCBwaW5TdGFydCArIHNjcm9sbEhlaWdodCA+PSBzY3JvbGxUb3AsIHRoZW4gd2Ugc2hvdWxkIHN0YXkgc3RhdGljLlxuICAgKiBJZiB3ZSdyZSBub3QgYWxyZWFkeSBzdGF0aWMsIHRoZW4gd2Ugc2hvdWxkIHNldCB0aGUgaGVhZGVyIHN0YXRpYywgb25seSB3aGVuIHBpblN0YXJ0ID49IHNjcm9sbFRvcCAocmVnYXJkbGVzcyBvZlxuICAgKiBzY3JvbGxIZWlnaHQsIHNvIHRoZSBoZWFkZXIgZG9lc24ndCBqdW1wIHVwLCB3aGVuIHNjcm9sbGluZyB1cHdhcmRzIHRvIHRoZSB0cmlnZ2VyKS5cbiAgICogRWxzZSB3ZSBzaG91bGRuJ3Qgc2V0IGl0IHN0YXRpYy5cbiAgICogQHBhcmFtIHNjcm9sbFRvcCB0aGUgY3VycmVudFNjcm9sbFRvcCBwb3NpdGlvblxuICAgKiBAcGFyYW0gZGlyZWN0aW9uIHRoZSBjdXJyZW50IGRpcmVjdGlvblxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gaWYgd2Ugc2hvdWxkIHNldCB0aGUgaGVhZGVyIHN0YXRpY1xuICAgKi9cbiAgc2hvdWxkU2V0U3RhdGljKHNjcm9sbFRvcDogbnVtYmVyLCBkaXJlY3Rpb246IERpcmVjdGlvblR5cGUpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RlID09PSBNT0RFX1NUQVRJQyB8fCAodGhpcy5zdGF0ZS5tb2RlID09PSBNT0RFX1BJTk5FRCAmJiBkaXJlY3Rpb24gPT09IERJUkVDVElPTl9ET1dOKSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMucGluU3RhcnQgKyB0aGlzLnByb3BzLnNjcm9sbEhlaWdodCA+PSBzY3JvbGxUb3BcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMucGluU3RhcnQgPj0gc2Nyb2xsVG9wXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIG1vZGUgZGVwZW5kaW5nIG9uIHRoZSBzY3JvbGxUb3AgcG9zaXRpb24gYW5kIHRoZSBjdXJyZW50IGRpcmVjdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gc2Nyb2xsVG9wXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3Rpb25cbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIG5leHQgbW9kZSBvZiBIZWFkcm9vbVxuICAgKi9cbiAgZGV0ZXJtaW5lTW9kZShzY3JvbGxUb3A6IG51bWJlciwgZGlyZWN0aW9uOiBEaXJlY3Rpb25UeXBlKTogTW9kZVR5cGUge1xuICAgIGlmICh0aGlzLnNob3VsZFNldFN0YXRpYyhzY3JvbGxUb3AsIGRpcmVjdGlvbikpIHtcbiAgICAgIHJldHVybiBNT0RFX1NUQVRJQ1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGlyZWN0aW9uID09PSBESVJFQ1RJT05fVVAgPyBNT0RFX1BJTk5FRCA6IE1PREVfVU5QSU5ORURcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1RyYW5zaXRpb25UeXBlfSBkZXRlcm1pbmVzIHRoZSBraW5kIG9mIHRyYW5zaXRpb25cbiAgICovXG4gIGRldGVybWluZVRyYW5zaXRpb24obW9kZTogTW9kZVR5cGUsIGRpcmVjdGlvbjogRGlyZWN0aW9uVHlwZSk6IFRyYW5zaXRpb25UeXBlIHtcbiAgICAvLyBIYW5kbGUgc3BlY2lhbCBjYXNlOiBJZiB3ZSdyZSBwaW5uZWQgYW5kIGdvaW5nIHRvIHN0YXRpYywgd2UgbmVlZCBhIHNwZWNpYWwgdHJhbnNpdGlvbiB1c2luZyBjc3MgYW5pbWF0aW9uXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kZSA9PT0gTU9ERV9QSU5ORUQgJiYgbW9kZSA9PT0gTU9ERV9TVEFUSUMpIHtcbiAgICAgIHJldHVybiBUUkFOU0lUSU9OX1BJTk5FRF9UT19TVEFUSUNcbiAgICB9XG4gICAgLy8gSWYgbW9kZSBpcyBzdGF0aWMsIHRoZW4gbm8gdHJhbnNpdGlvbiwgYmVjYXVzZSB3ZSdyZSBhbHJlYWR5IGluIHRoZSByaWdodCBzcG90XG4gICAgLy8gKGFuZCB3YW50IHRvIGNoYW5nZSB0cmFuc2Zvcm0gYW5kIHRvcCBwcm9wZXJ0aWVzIHNlYW1sZXNzbHkpXG4gICAgaWYgKG1vZGUgPT09IE1PREVfU1RBVElDKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZS50cmFuc2l0aW9uID09PSBUUkFOU0lUSU9OX05PTkUgPyBUUkFOU0lUSU9OX05PTkUgOiBUUkFOU0lUSU9OX1BJTk5FRF9UT19TVEFUSUNcbiAgICB9XG4gICAgLy8gbW9kZSBpcyBub3Qgc3RhdGljLCB0cmFuc2l0aW9uIHdoZW4gbW92aW5nIHVwd2FyZHMgb3Igd2hlbiB3ZSd2ZSBsYXN0bHkgZGlkIHRoZSB0cmFuc2l0aW9uXG4gICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gRElSRUNUSU9OX1VQIHx8IHRoaXMuc3RhdGUudHJhbnNpdGlvbiA9PT0gVFJBTlNJVElPTl9OT1JNQUxcbiAgICAgID8gVFJBTlNJVElPTl9OT1JNQUxcbiAgICAgIDogVFJBTlNJVElPTl9OT05FXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBjdXJyZW50IHNjcm9sbFRvcCBwb3NpdGlvbiBhbmQgdXBkYXRlcyB0aGUgc3RhdGUgYWNjb3JkaW5nbHlcbiAgICovXG4gIHVwZGF0ZTogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsVG9wID0gdGhpcy5nZXRTY3JvbGxUb3AoKVxuICAgIGNvbnN0IG5ld1N0YXRlOiBQYXJ0aWFsPFN0YXRlVHlwZT4gPSB7fVxuICAgIGlmIChjdXJyZW50U2Nyb2xsVG9wID09PSB0aGlzLmxhc3RLbm93blNjcm9sbFRvcCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMubGFzdEtub3duU2Nyb2xsVG9wIDwgY3VycmVudFNjcm9sbFRvcCA/IERJUkVDVElPTl9ET1dOIDogRElSRUNUSU9OX1VQXG4gICAgbmV3U3RhdGUubW9kZSA9IHRoaXMuZGV0ZXJtaW5lTW9kZShjdXJyZW50U2Nyb2xsVG9wLCBkaXJlY3Rpb24pXG4gICAgbmV3U3RhdGUudHJhbnNpdGlvbiA9IHRoaXMuZGV0ZXJtaW5lVHJhbnNpdGlvbihuZXdTdGF0ZS5tb2RlLCBkaXJlY3Rpb24pXG5cbiAgICBjb25zdCB7IG9uU3RpY2t5VG9wQ2hhbmdlZCwgaGVpZ2h0LCBzY3JvbGxIZWlnaHQsIHBpblN0YXJ0IH0gPSB0aGlzLnByb3BzXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kZSA9PT0gTU9ERV9QSU5ORUQgJiYgbmV3U3RhdGUubW9kZSA9PT0gTU9ERV9TVEFUSUMpIHtcbiAgICAgIC8vIGFuaW1hdGlvbiBpbiB0aGUgc3BlY2lhbCBjYXNlIGZyb20gcGlubmVkIHRvIHN0YXRpY1xuICAgICAgbmV3U3RhdGUuYW5pbWF0ZVVwRnJvbSA9IGN1cnJlbnRTY3JvbGxUb3AgLSBwaW5TdGFydFxuICAgIH1cbiAgICBpZiAob25TdGlja3lUb3BDaGFuZ2VkICYmIG5ld1N0YXRlLm1vZGUgIT09IHRoaXMuc3RhdGUubW9kZSAmJiBoZWlnaHQpIHtcbiAgICAgIG9uU3RpY2t5VG9wQ2hhbmdlZChIZWFkcm9vbS5jYWxjU3RpY2t5VG9wKG5ld1N0YXRlLm1vZGUsIGhlaWdodCwgc2Nyb2xsSGVpZ2h0KSlcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZShuZXdTdGF0ZSBhcyBTdGF0ZVR5cGUpXG4gICAgdGhpcy5sYXN0S25vd25TY3JvbGxUb3AgPSBjdXJyZW50U2Nyb2xsVG9wXG4gIH1cblxuICBoYW5kbGVFdmVudDogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudXBkYXRlKVxuICB9XG5cbiAgc3RhdGljIGNhbGNTdGlja3lUb3AobW9kZTogTW9kZVR5cGUsIGhlaWdodDogbnVtYmVyLCBzY3JvbGxIZWlnaHQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vZGUgPT09IE1PREVfUElOTkVEID8gaGVpZ2h0IDogaGVpZ2h0IC0gc2Nyb2xsSGVpZ2h0XG4gIH1cblxuICByZW5kZXIoKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBzY3JvbGxIZWlnaHQsIHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQsIHpJbmRleCwgY2xhc3NOYW1lIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgeyBtb2RlLCB0cmFuc2l0aW9uLCBhbmltYXRlVXBGcm9tIH0gPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgdHJhbnNmb3JtID0gbW9kZSA9PT0gTU9ERV9VTlBJTk5FRCA/IC1zY3JvbGxIZWlnaHQgOiAwXG4gICAgY29uc3Qgb3duU3RpY2t5VG9wID0gbW9kZSA9PT0gTU9ERV9TVEFUSUMgPyAtc2Nyb2xsSGVpZ2h0IDogMFxuICAgIHJldHVybiAoXG4gICAgICA8SGVhZGVyV3JhcHBlclxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgJHRyYW5zbGF0ZVk9e3RyYW5zZm9ybX1cbiAgICAgICAgJHRvcD17b3duU3RpY2t5VG9wfVxuICAgICAgICAkdHJhbnNpdGlvbj17dHJhbnNpdGlvbn1cbiAgICAgICAgJHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQ9eyEhcG9zaXRpb25TdGlja3lEaXNhYmxlZH1cbiAgICAgICAgJHN0YXRpYz17bW9kZSA9PT0gTU9ERV9TVEFUSUN9XG4gICAgICAgICRhbmltYXRlVXBGcm9tPXthbmltYXRlVXBGcm9tfVxuICAgICAgICAkekluZGV4PXt6SW5kZXh9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0hlYWRlcldyYXBwZXI+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRyb29tXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUU4QyJ9 */");
|
|
43
|
+
})("position:", (props)=>props.$positionStickyDisabled ? 'static' : 'sticky', ";top:", (props)=>props.$top, "px;z-index:", (props)=>props.$zIndex, ";transform:translateY(", (props)=>props.$translateY, "px);animation-duration:0.2s;animation-timing-function:ease-out;", (props)=>props.$transition === TRANSITION_NORMAL && !props.$static ? 'transition: transform 0.2s ease-out;' : '', " animation-name:", (props)=>props.$transition === TRANSITION_PINNED_TO_STATIC && props.$animateUpFrom !== null ? keyframesMoveUpFrom(props.$animateUpFrom) : 'none', ";", (props)=>props.$static ? 'transition: none;' : '');
|
|
44
|
+
const keyframesMoveUpFrom = (from)=>(0, /*#__PURE__*/ _react1.keyframes)("from{transform:translateY(", Math.max(from, 0), "px)}to{transform:translateY(0)}", "keyframesMoveUpFrom");
|
|
47
45
|
var _React_PureComponent;
|
|
48
46
|
class Headroom extends (_React_PureComponent = _react.default.PureComponent) {
|
|
49
47
|
/**
|
package/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"sourcesContent":["import React from 'react'\nimport styled from '@emotion/styled'\nimport { css, keyframes } from '@emotion/react'\n\nconst DIRECTION_UP = 'up'\nconst DIRECTION_DOWN = 'down'\n\nconst MODE_UNPINNED = 'unpinned'\nconst MODE_PINNED = 'pinned'\nconst MODE_STATIC = 'static'\n\nconst TRANSITION_NONE = 'none'\nconst TRANSITION_NORMAL = 'normal'\nconst TRANSITION_PINNED_TO_STATIC = 'pinned-to-static'\n\ntype ModeType = typeof MODE_PINNED | typeof MODE_UNPINNED | typeof MODE_STATIC\ntype DirectionType = typeof DIRECTION_UP | typeof DIRECTION_DOWN\ntype TransitionType = typeof TRANSITION_NONE | typeof TRANSITION_NORMAL | typeof TRANSITION_PINNED_TO_STATIC\n\ntype PropsType = {\n /** The child node to be displayed as a header */\n children: React.ReactNode\n /** The maximum amount of px the header should move up when scrolling */\n scrollHeight: number\n /** The minimum scrollTop position where the transform should start */\n pinStart: number\n /** Used for calculating the stickyTop position of an ancestor */\n height?: number\n /** Fired, when Headroom changes its state. Passes stickyTop of the ancestor. */\n onStickyTopChanged?: (stickyTop: number) => void\n /** True, if sticky position should be disabled (e.g. for edge 16 support) */\n positionStickyDisabled?: boolean\n /** The parent element firing the scroll event. Defaults to document.documentElement */\n parent?: HTMLElement | null\n /** The z-index used by the wrapper. Defaults to 1. */\n zIndex?: number\n /** A classname for applying custom styles to the wrapper. Use at your own risk. */\n className?: string\n}\n\ntype StateType = {\n mode: ModeType\n transition: TransitionType\n animateUpFrom: number | null\n}\n\nconst HeaderWrapper = styled.div<{\n $positionStickyDisabled: boolean\n $translateY: number\n $transition: TransitionType\n $animateUpFrom: number | null\n $zIndex?: number\n $top: number\n $static: boolean\n}>`\n position: ${props => (props.$positionStickyDisabled ? 'static' : 'sticky')};\n top: ${props => props.$top}px;\n z-index: ${props => props.$zIndex};\n transform: translateY(${props => props.$translateY}px);\n animation-duration: 0.2s;\n animation-timing-function: ease-out;\n ${props => (props.$transition === TRANSITION_NORMAL && !props.$static ? 'transition: transform 0.2s ease-out;' : '')}\n ${props =>\n props.$transition === TRANSITION_PINNED_TO_STATIC && props.$animateUpFrom !== null\n ? css`\n animation-name: ${keyframesMoveUpFrom(props.$animateUpFrom)};\n `\n : ''}\n ${props => (props.$static ? 'transition: none;' : '')}\n`\n\nconst keyframesMoveUpFrom = (from: number) => keyframes`\n from {\n transform: translateY(${Math.max(from, 0)}px)\n }\n\n to {\n transform: translateY(0)\n }\n`\n\nclass Headroom extends React.PureComponent<PropsType, StateType> {\n static defaultProps: { pinStart: number; zIndex: number; parent: HTMLElement | null } = {\n pinStart: 0,\n zIndex: 1,\n parent: window.document.documentElement,\n }\n\n state: StateType = {\n mode: MODE_STATIC,\n transition: TRANSITION_NONE,\n animateUpFrom: null,\n }\n\n /** the very last scrollTop which we know about (to determine direction changes) */\n lastKnownScrollTop: number = 0\n\n /**\n * @returns {number} the current scrollTop position of the window\n */\n getScrollTop(): number {\n const parent = this.props.parent\n if (parent && parent.scrollTop !== undefined && parent !== document.documentElement) {\n return parent.scrollTop\n }\n if (parent !== document.documentElement) {\n console.warn('Could not determine scrollTop from parent for StickyHeadroom. Defaulting to window.pageYOffset.')\n }\n if (window.pageYOffset === undefined) {\n console.error('window.pageYOffset is undefined. Defaulting to 0.')\n return 0\n }\n return window.pageYOffset\n }\n\n componentDidMount() {\n this.addScrollListener(this.props.parent)\n }\n\n addScrollListener(parent?: HTMLElement | null) {\n if (parent === window.document.documentElement) {\n window.addEventListener('scroll', this.handleEvent)\n } else if (parent) {\n parent.addEventListener('scroll', this.handleEvent)\n } else {\n console.debug(\"'parent' prop of Headroom is null. Assuming, it will be set soon...\")\n }\n }\n\n removeScrollListener(parent?: HTMLElement | null) {\n if (parent === window.document.documentElement) {\n window.removeEventListener('scroll', this.handleEvent)\n } else if (parent) {\n parent.removeEventListener('scroll', this.handleEvent)\n }\n }\n\n componentDidUpdate(prevProps: PropsType) {\n if (prevProps.parent !== this.props.parent) {\n this.removeScrollListener(prevProps.parent)\n this.addScrollListener(this.props.parent)\n }\n }\n\n componentWillUnmount() {\n this.removeScrollListener(this.props.parent)\n }\n\n /**\n * If we're already static and pinStart + scrollHeight >= scrollTop, then we should stay static.\n * If we're not already static, then we should set the header static, only when pinStart >= scrollTop (regardless of\n * scrollHeight, so the header doesn't jump up, when scrolling upwards to the trigger).\n * Else we shouldn't set it static.\n * @param scrollTop the currentScrollTop position\n * @param direction the current direction\n * @returns {boolean} if we should set the header static\n */\n shouldSetStatic(scrollTop: number, direction: DirectionType): boolean {\n if (this.state.mode === MODE_STATIC || (this.state.mode === MODE_PINNED && direction === DIRECTION_DOWN)) {\n return this.props.pinStart + this.props.scrollHeight >= scrollTop\n } else {\n return this.props.pinStart >= scrollTop\n }\n }\n\n /**\n * Determines the mode depending on the scrollTop position and the current direction\n * @param {number} scrollTop\n * @param {string} direction\n * @returns {string} the next mode of Headroom\n */\n determineMode(scrollTop: number, direction: DirectionType): ModeType {\n if (this.shouldSetStatic(scrollTop, direction)) {\n return MODE_STATIC\n } else {\n return direction === DIRECTION_UP ? MODE_PINNED : MODE_UNPINNED\n }\n }\n\n /**\n * @returns {TransitionType} determines the kind of transition\n */\n determineTransition(mode: ModeType, direction: DirectionType): TransitionType {\n // Handle special case: If we're pinned and going to static, we need a special transition using css animation\n if (this.state.mode === MODE_PINNED && mode === MODE_STATIC) {\n return TRANSITION_PINNED_TO_STATIC\n }\n // If mode is static, then no transition, because we're already in the right spot\n // (and want to change transform and top properties seamlessly)\n if (mode === MODE_STATIC) {\n return this.state.transition === TRANSITION_NONE ? TRANSITION_NONE : TRANSITION_PINNED_TO_STATIC\n }\n // mode is not static, transition when moving upwards or when we've lastly did the transition\n return direction === DIRECTION_UP || this.state.transition === TRANSITION_NORMAL\n ? TRANSITION_NORMAL\n : TRANSITION_NONE\n }\n\n /**\n * Checks the current scrollTop position and updates the state accordingly\n */\n update: () => void = () => {\n const currentScrollTop = this.getScrollTop()\n const newState: Partial<StateType> = {}\n if (currentScrollTop === this.lastKnownScrollTop) {\n return\n }\n const direction = this.lastKnownScrollTop < currentScrollTop ? DIRECTION_DOWN : DIRECTION_UP\n newState.mode = this.determineMode(currentScrollTop, direction)\n newState.transition = this.determineTransition(newState.mode, direction)\n\n const { onStickyTopChanged, height, scrollHeight, pinStart } = this.props\n if (this.state.mode === MODE_PINNED && newState.mode === MODE_STATIC) {\n // animation in the special case from pinned to static\n newState.animateUpFrom = currentScrollTop - pinStart\n }\n if (onStickyTopChanged && newState.mode !== this.state.mode && height) {\n onStickyTopChanged(Headroom.calcStickyTop(newState.mode, height, scrollHeight))\n }\n this.setState(newState as StateType)\n this.lastKnownScrollTop = currentScrollTop\n }\n\n handleEvent: () => void = () => {\n window.requestAnimationFrame(this.update)\n }\n\n static calcStickyTop(mode: ModeType, height: number, scrollHeight: number): number {\n return mode === MODE_PINNED ? height : height - scrollHeight\n }\n\n render(): React.ReactElement {\n const { children, scrollHeight, positionStickyDisabled, zIndex, className } = this.props\n const { mode, transition, animateUpFrom } = this.state\n const transform = mode === MODE_UNPINNED ? -scrollHeight : 0\n const ownStickyTop = mode === MODE_STATIC ? -scrollHeight : 0\n return (\n <HeaderWrapper\n className={className}\n $translateY={transform}\n $top={ownStickyTop}\n $transition={transition}\n $positionStickyDisabled={!!positionStickyDisabled}\n $static={mode === MODE_STATIC}\n $animateUpFrom={animateUpFrom}\n $zIndex={zIndex}>\n {children}\n </HeaderWrapper>\n )\n }\n}\n\nexport default Headroom\n"],"names":["DIRECTION_UP","DIRECTION_DOWN","MODE_UNPINNED","MODE_PINNED","MODE_STATIC","TRANSITION_NONE","TRANSITION_NORMAL","TRANSITION_PINNED_TO_STATIC","HeaderWrapper","styled","props","$positionStickyDisabled","$top","$zIndex","$translateY","$transition","$static","$animateUpFrom","css","keyframesMoveUpFrom","from","keyframes","Math","max","React","Headroom","PureComponent","getScrollTop","parent","scrollTop","undefined","document","documentElement","console","warn","window","pageYOffset","error","componentDidMount","addScrollListener","addEventListener","handleEvent","debug","removeScrollListener","removeEventListener","componentDidUpdate","prevProps","componentWillUnmount","shouldSetStatic","direction","state","mode","pinStart","scrollHeight","determineMode","determineTransition","transition","calcStickyTop","height","render","children","positionStickyDisabled","zIndex","className","animateUpFrom","transform","ownStickyTop","lastKnownScrollTop","update","currentScrollTop","newState","onStickyTopChanged","setState","requestAnimationFrame","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"sourcesContent":["import React from 'react'\nimport styled from '@emotion/styled'\nimport { keyframes } from '@emotion/react'\n\nconst DIRECTION_UP = 'up'\nconst DIRECTION_DOWN = 'down'\n\nconst MODE_UNPINNED = 'unpinned'\nconst MODE_PINNED = 'pinned'\nconst MODE_STATIC = 'static'\n\nconst TRANSITION_NONE = 'none'\nconst TRANSITION_NORMAL = 'normal'\nconst TRANSITION_PINNED_TO_STATIC = 'pinned-to-static'\n\ntype ModeType = typeof MODE_PINNED | typeof MODE_UNPINNED | typeof MODE_STATIC\ntype DirectionType = typeof DIRECTION_UP | typeof DIRECTION_DOWN\ntype TransitionType = typeof TRANSITION_NONE | typeof TRANSITION_NORMAL | typeof TRANSITION_PINNED_TO_STATIC\n\ntype PropsType = {\n /** The child node to be displayed as a header */\n children: React.ReactNode\n /** The maximum amount of px the header should move up when scrolling */\n scrollHeight: number\n /** The minimum scrollTop position where the transform should start */\n pinStart: number\n /** Used for calculating the stickyTop position of an ancestor */\n height?: number\n /** Fired, when Headroom changes its state. Passes stickyTop of the ancestor. */\n onStickyTopChanged?: (stickyTop: number) => void\n /** True, if sticky position should be disabled (e.g. for edge 16 support) */\n positionStickyDisabled?: boolean\n /** The parent element firing the scroll event. Defaults to document.documentElement */\n parent?: HTMLElement | null\n /** The z-index used by the wrapper. Defaults to 1. */\n zIndex?: number\n /** A classname for applying custom styles to the wrapper. Use at your own risk. */\n className?: string\n}\n\ntype StateType = {\n mode: ModeType\n transition: TransitionType\n animateUpFrom: number | null\n}\n\nconst HeaderWrapper = styled.div<{\n $positionStickyDisabled: boolean\n $translateY: number\n $transition: TransitionType\n $animateUpFrom: number | null\n $zIndex?: number\n $top: number\n $static: boolean\n}>`\n position: ${props => (props.$positionStickyDisabled ? 'static' : 'sticky')};\n top: ${props => props.$top}px;\n z-index: ${props => props.$zIndex};\n transform: translateY(${props => props.$translateY}px);\n animation-duration: 0.2s;\n animation-timing-function: ease-out;\n ${props => (props.$transition === TRANSITION_NORMAL && !props.$static ? 'transition: transform 0.2s ease-out;' : '')}\n animation-name: ${props =>\n props.$transition === TRANSITION_PINNED_TO_STATIC && props.$animateUpFrom !== null\n ? keyframesMoveUpFrom(props.$animateUpFrom)\n : 'none'};\n ${props => (props.$static ? 'transition: none;' : '')}\n`\n\nconst keyframesMoveUpFrom = (from: number) => keyframes`\n from {\n transform: translateY(${Math.max(from, 0)}px)\n }\n\n to {\n transform: translateY(0)\n }\n`\n\nclass Headroom extends React.PureComponent<PropsType, StateType> {\n static defaultProps: { pinStart: number; zIndex: number; parent: HTMLElement | null } = {\n pinStart: 0,\n zIndex: 1,\n parent: window.document.documentElement,\n }\n\n state: StateType = {\n mode: MODE_STATIC,\n transition: TRANSITION_NONE,\n animateUpFrom: null,\n }\n\n /** the very last scrollTop which we know about (to determine direction changes) */\n lastKnownScrollTop: number = 0\n\n /**\n * @returns {number} the current scrollTop position of the window\n */\n getScrollTop(): number {\n const parent = this.props.parent\n if (parent && parent.scrollTop !== undefined && parent !== document.documentElement) {\n return parent.scrollTop\n }\n if (parent !== document.documentElement) {\n console.warn('Could not determine scrollTop from parent for StickyHeadroom. Defaulting to window.pageYOffset.')\n }\n if (window.pageYOffset === undefined) {\n console.error('window.pageYOffset is undefined. Defaulting to 0.')\n return 0\n }\n return window.pageYOffset\n }\n\n componentDidMount() {\n this.addScrollListener(this.props.parent)\n }\n\n addScrollListener(parent?: HTMLElement | null) {\n if (parent === window.document.documentElement) {\n window.addEventListener('scroll', this.handleEvent)\n } else if (parent) {\n parent.addEventListener('scroll', this.handleEvent)\n } else {\n console.debug(\"'parent' prop of Headroom is null. Assuming, it will be set soon...\")\n }\n }\n\n removeScrollListener(parent?: HTMLElement | null) {\n if (parent === window.document.documentElement) {\n window.removeEventListener('scroll', this.handleEvent)\n } else if (parent) {\n parent.removeEventListener('scroll', this.handleEvent)\n }\n }\n\n componentDidUpdate(prevProps: PropsType) {\n if (prevProps.parent !== this.props.parent) {\n this.removeScrollListener(prevProps.parent)\n this.addScrollListener(this.props.parent)\n }\n }\n\n componentWillUnmount() {\n this.removeScrollListener(this.props.parent)\n }\n\n /**\n * If we're already static and pinStart + scrollHeight >= scrollTop, then we should stay static.\n * If we're not already static, then we should set the header static, only when pinStart >= scrollTop (regardless of\n * scrollHeight, so the header doesn't jump up, when scrolling upwards to the trigger).\n * Else we shouldn't set it static.\n * @param scrollTop the currentScrollTop position\n * @param direction the current direction\n * @returns {boolean} if we should set the header static\n */\n shouldSetStatic(scrollTop: number, direction: DirectionType): boolean {\n if (this.state.mode === MODE_STATIC || (this.state.mode === MODE_PINNED && direction === DIRECTION_DOWN)) {\n return this.props.pinStart + this.props.scrollHeight >= scrollTop\n } else {\n return this.props.pinStart >= scrollTop\n }\n }\n\n /**\n * Determines the mode depending on the scrollTop position and the current direction\n * @param {number} scrollTop\n * @param {string} direction\n * @returns {string} the next mode of Headroom\n */\n determineMode(scrollTop: number, direction: DirectionType): ModeType {\n if (this.shouldSetStatic(scrollTop, direction)) {\n return MODE_STATIC\n } else {\n return direction === DIRECTION_UP ? MODE_PINNED : MODE_UNPINNED\n }\n }\n\n /**\n * @returns {TransitionType} determines the kind of transition\n */\n determineTransition(mode: ModeType, direction: DirectionType): TransitionType {\n // Handle special case: If we're pinned and going to static, we need a special transition using css animation\n if (this.state.mode === MODE_PINNED && mode === MODE_STATIC) {\n return TRANSITION_PINNED_TO_STATIC\n }\n // If mode is static, then no transition, because we're already in the right spot\n // (and want to change transform and top properties seamlessly)\n if (mode === MODE_STATIC) {\n return this.state.transition === TRANSITION_NONE ? TRANSITION_NONE : TRANSITION_PINNED_TO_STATIC\n }\n // mode is not static, transition when moving upwards or when we've lastly did the transition\n return direction === DIRECTION_UP || this.state.transition === TRANSITION_NORMAL\n ? TRANSITION_NORMAL\n : TRANSITION_NONE\n }\n\n /**\n * Checks the current scrollTop position and updates the state accordingly\n */\n update: () => void = () => {\n const currentScrollTop = this.getScrollTop()\n const newState: Partial<StateType> = {}\n if (currentScrollTop === this.lastKnownScrollTop) {\n return\n }\n const direction = this.lastKnownScrollTop < currentScrollTop ? DIRECTION_DOWN : DIRECTION_UP\n newState.mode = this.determineMode(currentScrollTop, direction)\n newState.transition = this.determineTransition(newState.mode, direction)\n\n const { onStickyTopChanged, height, scrollHeight, pinStart } = this.props\n if (this.state.mode === MODE_PINNED && newState.mode === MODE_STATIC) {\n // animation in the special case from pinned to static\n newState.animateUpFrom = currentScrollTop - pinStart\n }\n if (onStickyTopChanged && newState.mode !== this.state.mode && height) {\n onStickyTopChanged(Headroom.calcStickyTop(newState.mode, height, scrollHeight))\n }\n this.setState(newState as StateType)\n this.lastKnownScrollTop = currentScrollTop\n }\n\n handleEvent: () => void = () => {\n window.requestAnimationFrame(this.update)\n }\n\n static calcStickyTop(mode: ModeType, height: number, scrollHeight: number): number {\n return mode === MODE_PINNED ? height : height - scrollHeight\n }\n\n render(): React.ReactElement {\n const { children, scrollHeight, positionStickyDisabled, zIndex, className } = this.props\n const { mode, transition, animateUpFrom } = this.state\n const transform = mode === MODE_UNPINNED ? -scrollHeight : 0\n const ownStickyTop = mode === MODE_STATIC ? -scrollHeight : 0\n return (\n <HeaderWrapper\n className={className}\n $translateY={transform}\n $top={ownStickyTop}\n $transition={transition}\n $positionStickyDisabled={!!positionStickyDisabled}\n $static={mode === MODE_STATIC}\n $animateUpFrom={animateUpFrom}\n $zIndex={zIndex}>\n {children}\n </HeaderWrapper>\n )\n }\n}\n\nexport default Headroom\n"],"names":["DIRECTION_UP","DIRECTION_DOWN","MODE_UNPINNED","MODE_PINNED","MODE_STATIC","TRANSITION_NONE","TRANSITION_NORMAL","TRANSITION_PINNED_TO_STATIC","HeaderWrapper","styled","props","$positionStickyDisabled","$top","$zIndex","$translateY","$transition","$static","$animateUpFrom","keyframesMoveUpFrom","from","keyframes","Math","max","React","Headroom","PureComponent","getScrollTop","parent","scrollTop","undefined","document","documentElement","console","warn","window","pageYOffset","error","componentDidMount","addScrollListener","addEventListener","handleEvent","debug","removeScrollListener","removeEventListener","componentDidUpdate","prevProps","componentWillUnmount","shouldSetStatic","direction","state","mode","pinStart","scrollHeight","determineMode","determineTransition","transition","calcStickyTop","height","render","children","positionStickyDisabled","zIndex","className","animateUpFrom","transform","ownStickyTop","lastKnownScrollTop","update","currentScrollTop","newState","onStickyTopChanged","setState","requestAnimationFrame","defaultProps"],"mappings":"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"}
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,QAAA,MAAM,YAAY,OAAO,CAAA;AACzB,QAAA,MAAM,cAAc,SAAS,CAAA;AAE7B,QAAA,MAAM,aAAa,aAAa,CAAA;AAChC,QAAA,MAAM,WAAW,WAAW,CAAA;AAC5B,QAAA,MAAM,WAAW,WAAW,CAAA;AAE5B,QAAA,MAAM,eAAe,SAAS,CAAA;AAC9B,QAAA,MAAM,iBAAiB,WAAW,CAAA;AAClC,QAAA,MAAM,2BAA2B,qBAAqB,CAAA;AAEtD,KAAK,QAAQ,GAAG,OAAO,WAAW,GAAG,OAAO,aAAa,GAAG,OAAO,WAAW,CAAA;AAC9E,KAAK,aAAa,GAAG,OAAO,YAAY,GAAG,OAAO,cAAc,CAAA;AAChE,KAAK,cAAc,GAAG,OAAO,eAAe,GAAG,OAAO,iBAAiB,GAAG,OAAO,2BAA2B,CAAA;AAE5G,KAAK,SAAS,GAAG;IACf,iDAAiD;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAA;IAChB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,uFAAuF;IACvF,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,EAAE,cAAc,CAAA;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,QAAA,MAAM,YAAY,OAAO,CAAA;AACzB,QAAA,MAAM,cAAc,SAAS,CAAA;AAE7B,QAAA,MAAM,aAAa,aAAa,CAAA;AAChC,QAAA,MAAM,WAAW,WAAW,CAAA;AAC5B,QAAA,MAAM,WAAW,WAAW,CAAA;AAE5B,QAAA,MAAM,eAAe,SAAS,CAAA;AAC9B,QAAA,MAAM,iBAAiB,WAAW,CAAA;AAClC,QAAA,MAAM,2BAA2B,qBAAqB,CAAA;AAEtD,KAAK,QAAQ,GAAG,OAAO,WAAW,GAAG,OAAO,aAAa,GAAG,OAAO,WAAW,CAAA;AAC9E,KAAK,aAAa,GAAG,OAAO,YAAY,GAAG,OAAO,cAAc,CAAA;AAChE,KAAK,cAAc,GAAG,OAAO,eAAe,GAAG,OAAO,iBAAiB,GAAG,OAAO,2BAA2B,CAAA;AAE5G,KAAK,SAAS,GAAG;IACf,iDAAiD;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAA;IAChB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,uFAAuF;IACvF,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,QAAQ,CAAA;IACd,UAAU,EAAE,cAAc,CAAA;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B,CAAA;AAmCD,cAAM,QAAS,SAAQ,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9D,MAAM,CAAC,YAAY,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;KAAE,CAIpF;IAED,KAAK,EAAE,SAAS,CAIf;IAED,mFAAmF;IACnF,kBAAkB,EAAE,MAAM,CAAI;IAE9B;;OAEG;IACH,YAAY,IAAI,MAAM;IAetB,iBAAiB;IAIjB,iBAAiB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI;IAU7C,oBAAoB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI;IAQhD,kBAAkB,CAAC,SAAS,EAAE,SAAS;IAOvC,oBAAoB;IAIpB;;;;;;;;OAQG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO;IAQrE;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,QAAQ;IAQpE;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,GAAG,cAAc;IAgB7E;;OAEG;IACH,MAAM,EAAE,MAAM,IAAI,CAoBjB;IAED,WAAW,EAAE,MAAM,IAAI,CAEtB;IAED,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAIlF,MAAM,IAAI,KAAK,CAAC,YAAY;CAmB7B;AAED,eAAe,QAAQ,CAAA"}
|
package/index.js
CHANGED
|
@@ -13,7 +13,7 @@ function _define_property(obj, key, value) {
|
|
|
13
13
|
}
|
|
14
14
|
import React from 'react';
|
|
15
15
|
import styled from '@emotion/styled';
|
|
16
|
-
import {
|
|
16
|
+
import { keyframes } from '@emotion/react';
|
|
17
17
|
const DIRECTION_UP = 'up';
|
|
18
18
|
const DIRECTION_DOWN = 'down';
|
|
19
19
|
const MODE_UNPINNED = 'unpinned';
|
|
@@ -23,12 +23,10 @@ const TRANSITION_NONE = 'none';
|
|
|
23
23
|
const TRANSITION_NORMAL = 'normal';
|
|
24
24
|
const TRANSITION_PINNED_TO_STATIC = 'pinned-to-static';
|
|
25
25
|
const HeaderWrapper = /*#__PURE__*/ styled("div", {
|
|
26
|
-
target: "
|
|
26
|
+
target: "e1o9mv740",
|
|
27
27
|
label: "HeaderWrapper"
|
|
28
|
-
})("position:", (props)=>props.$positionStickyDisabled ? 'static' : 'sticky', ";top:", (props)=>props.$top, "px;z-index:", (props)=>props.$zIndex, ";transform:translateY(", (props)=>props.$translateY, "px);animation-duration:0.2s;animation-timing-function:ease-out;", (props)=>props.$transition === TRANSITION_NORMAL && !props.$static ? 'transition: transform 0.2s ease-out;' : '', "
|
|
29
|
-
|
|
30
|
-
` : '', " ", (props)=>props.$static ? 'transition: none;' : '', "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlcyI6WyJpbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuXG5jb25zdCBESVJFQ1RJT05fVVAgPSAndXAnXG5jb25zdCBESVJFQ1RJT05fRE9XTiA9ICdkb3duJ1xuXG5jb25zdCBNT0RFX1VOUElOTkVEID0gJ3VucGlubmVkJ1xuY29uc3QgTU9ERV9QSU5ORUQgPSAncGlubmVkJ1xuY29uc3QgTU9ERV9TVEFUSUMgPSAnc3RhdGljJ1xuXG5jb25zdCBUUkFOU0lUSU9OX05PTkUgPSAnbm9uZSdcbmNvbnN0IFRSQU5TSVRJT05fTk9STUFMID0gJ25vcm1hbCdcbmNvbnN0IFRSQU5TSVRJT05fUElOTkVEX1RPX1NUQVRJQyA9ICdwaW5uZWQtdG8tc3RhdGljJ1xuXG50eXBlIE1vZGVUeXBlID0gdHlwZW9mIE1PREVfUElOTkVEIHwgdHlwZW9mIE1PREVfVU5QSU5ORUQgfCB0eXBlb2YgTU9ERV9TVEFUSUNcbnR5cGUgRGlyZWN0aW9uVHlwZSA9IHR5cGVvZiBESVJFQ1RJT05fVVAgfCB0eXBlb2YgRElSRUNUSU9OX0RPV05cbnR5cGUgVHJhbnNpdGlvblR5cGUgPSB0eXBlb2YgVFJBTlNJVElPTl9OT05FIHwgdHlwZW9mIFRSQU5TSVRJT05fTk9STUFMIHwgdHlwZW9mIFRSQU5TSVRJT05fUElOTkVEX1RPX1NUQVRJQ1xuXG50eXBlIFByb3BzVHlwZSA9IHtcbiAgLyoqIFRoZSBjaGlsZCBub2RlIHRvIGJlIGRpc3BsYXllZCBhcyBhIGhlYWRlciAqL1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIC8qKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgcHggdGhlIGhlYWRlciBzaG91bGQgbW92ZSB1cCB3aGVuIHNjcm9sbGluZyAqL1xuICBzY3JvbGxIZWlnaHQ6IG51bWJlclxuICAvKiogVGhlIG1pbmltdW0gc2Nyb2xsVG9wIHBvc2l0aW9uIHdoZXJlIHRoZSB0cmFuc2Zvcm0gc2hvdWxkIHN0YXJ0ICovXG4gIHBpblN0YXJ0OiBudW1iZXJcbiAgLyoqIFVzZWQgZm9yIGNhbGN1bGF0aW5nIHRoZSBzdGlja3lUb3AgcG9zaXRpb24gb2YgYW4gYW5jZXN0b3IgKi9cbiAgaGVpZ2h0PzogbnVtYmVyXG4gIC8qKiBGaXJlZCwgd2hlbiBIZWFkcm9vbSBjaGFuZ2VzIGl0cyBzdGF0ZS4gUGFzc2VzIHN0aWNreVRvcCBvZiB0aGUgYW5jZXN0b3IuICovXG4gIG9uU3RpY2t5VG9wQ2hhbmdlZD86IChzdGlja3lUb3A6IG51bWJlcikgPT4gdm9pZFxuICAvKiogVHJ1ZSwgaWYgc3RpY2t5IHBvc2l0aW9uIHNob3VsZCBiZSBkaXNhYmxlZCAoZS5nLiBmb3IgZWRnZSAxNiBzdXBwb3J0KSAqL1xuICBwb3NpdGlvblN0aWNreURpc2FibGVkPzogYm9vbGVhblxuICAvKiogVGhlIHBhcmVudCBlbGVtZW50IGZpcmluZyB0aGUgc2Nyb2xsIGV2ZW50LiBEZWZhdWx0cyB0byBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgKi9cbiAgcGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsXG4gIC8qKiBUaGUgei1pbmRleCB1c2VkIGJ5IHRoZSB3cmFwcGVyLiBEZWZhdWx0cyB0byAxLiAqL1xuICB6SW5kZXg/OiBudW1iZXJcbiAgLyoqIEEgY2xhc3NuYW1lIGZvciBhcHBseWluZyBjdXN0b20gc3R5bGVzIHRvIHRoZSB3cmFwcGVyLiBVc2UgYXQgeW91ciBvd24gcmlzay4gKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbnR5cGUgU3RhdGVUeXBlID0ge1xuICBtb2RlOiBNb2RlVHlwZVxuICB0cmFuc2l0aW9uOiBUcmFuc2l0aW9uVHlwZVxuICBhbmltYXRlVXBGcm9tOiBudW1iZXIgfCBudWxsXG59XG5cbmNvbnN0IEhlYWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2PHtcbiAgJHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQ6IGJvb2xlYW5cbiAgJHRyYW5zbGF0ZVk6IG51bWJlclxuICAkdHJhbnNpdGlvbjogVHJhbnNpdGlvblR5cGVcbiAgJGFuaW1hdGVVcEZyb206IG51bWJlciB8IG51bGxcbiAgJHpJbmRleD86IG51bWJlclxuICAkdG9wOiBudW1iZXJcbiAgJHN0YXRpYzogYm9vbGVhblxufT5gXG4gIHBvc2l0aW9uOiAke3Byb3BzID0+IChwcm9wcy4kcG9zaXRpb25TdGlja3lEaXNhYmxlZCA/ICdzdGF0aWMnIDogJ3N0aWNreScpfTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLiR0b3B9cHg7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMuJHpJbmRleH07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgke3Byb3BzID0+IHByb3BzLiR0cmFuc2xhdGVZfXB4KTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgJHtwcm9wcyA9PiAocHJvcHMuJHRyYW5zaXRpb24gPT09IFRSQU5TSVRJT05fTk9STUFMICYmICFwcm9wcy4kc3RhdGljID8gJ3RyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2Utb3V0OycgOiAnJyl9XG4gICR7cHJvcHMgPT5cbiAgICBwcm9wcy4kdHJhbnNpdGlvbiA9PT0gVFJBTlNJVElPTl9QSU5ORURfVE9fU1RBVElDICYmIHByb3BzLiRhbmltYXRlVXBGcm9tICE9PSBudWxsXG4gICAgICA/IGNzc2BcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogJHtrZXlmcmFtZXNNb3ZlVXBGcm9tKHByb3BzLiRhbmltYXRlVXBGcm9tKX07XG4gICAgICAgIGBcbiAgICAgIDogJyd9XG4gICR7cHJvcHMgPT4gKHByb3BzLiRzdGF0aWMgPyAndHJhbnNpdGlvbjogbm9uZTsnIDogJycpfVxuYFxuXG5jb25zdCBrZXlmcmFtZXNNb3ZlVXBGcm9tID0gKGZyb206IG51bWJlcikgPT4ga2V5ZnJhbWVzYFxuICAgIGZyb20ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR7TWF0aC5tYXgoZnJvbSwgMCl9cHgpXG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApXG4gICAgfVxuYFxuXG5jbGFzcyBIZWFkcm9vbSBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8UHJvcHNUeXBlLCBTdGF0ZVR5cGU+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wczogeyBwaW5TdGFydDogbnVtYmVyOyB6SW5kZXg6IG51bWJlcjsgcGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgfSA9IHtcbiAgICBwaW5TdGFydDogMCxcbiAgICB6SW5kZXg6IDEsXG4gICAgcGFyZW50OiB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFxuICB9XG5cbiAgc3RhdGU6IFN0YXRlVHlwZSA9IHtcbiAgICBtb2RlOiBNT0RFX1NUQVRJQyxcbiAgICB0cmFuc2l0aW9uOiBUUkFOU0lUSU9OX05PTkUsXG4gICAgYW5pbWF0ZVVwRnJvbTogbnVsbCxcbiAgfVxuXG4gIC8qKiB0aGUgdmVyeSBsYXN0IHNjcm9sbFRvcCB3aGljaCB3ZSBrbm93IGFib3V0ICh0byBkZXRlcm1pbmUgZGlyZWN0aW9uIGNoYW5nZXMpICovXG4gIGxhc3RLbm93blNjcm9sbFRvcDogbnVtYmVyID0gMFxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSB0aGUgY3VycmVudCBzY3JvbGxUb3AgcG9zaXRpb24gb2YgdGhlIHdpbmRvd1xuICAgKi9cbiAgZ2V0U2Nyb2xsVG9wKCk6IG51bWJlciB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5wcm9wcy5wYXJlbnRcbiAgICBpZiAocGFyZW50ICYmIHBhcmVudC5zY3JvbGxUb3AgIT09IHVuZGVmaW5lZCAmJiBwYXJlbnQgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHBhcmVudC5zY3JvbGxUb3BcbiAgICB9XG4gICAgaWYgKHBhcmVudCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBkZXRlcm1pbmUgc2Nyb2xsVG9wIGZyb20gcGFyZW50IGZvciBTdGlja3lIZWFkcm9vbS4gRGVmYXVsdGluZyB0byB3aW5kb3cucGFnZVlPZmZzZXQuJylcbiAgICB9XG4gICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCd3aW5kb3cucGFnZVlPZmZzZXQgaXMgdW5kZWZpbmVkLiBEZWZhdWx0aW5nIHRvIDAuJylcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICAgIHJldHVybiB3aW5kb3cucGFnZVlPZmZzZXRcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuYWRkU2Nyb2xsTGlzdGVuZXIodGhpcy5wcm9wcy5wYXJlbnQpXG4gIH1cblxuICBhZGRTY3JvbGxMaXN0ZW5lcihwYXJlbnQ/OiBIVE1MRWxlbWVudCB8IG51bGwpIHtcbiAgICBpZiAocGFyZW50ID09PSB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVFdmVudClcbiAgICB9IGVsc2UgaWYgKHBhcmVudCkge1xuICAgICAgcGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlRXZlbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoXCIncGFyZW50JyBwcm9wIG9mIEhlYWRyb29tIGlzIG51bGwuIEFzc3VtaW5nLCBpdCB3aWxsIGJlIHNldCBzb29uLi4uXCIpXG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlU2Nyb2xsTGlzdGVuZXIocGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgaWYgKHBhcmVudCA9PT0gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlRXZlbnQpXG4gICAgfSBlbHNlIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZUV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHM6IFByb3BzVHlwZSkge1xuICAgIGlmIChwcmV2UHJvcHMucGFyZW50ICE9PSB0aGlzLnByb3BzLnBhcmVudCkge1xuICAgICAgdGhpcy5yZW1vdmVTY3JvbGxMaXN0ZW5lcihwcmV2UHJvcHMucGFyZW50KVxuICAgICAgdGhpcy5hZGRTY3JvbGxMaXN0ZW5lcih0aGlzLnByb3BzLnBhcmVudClcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVyKHRoaXMucHJvcHMucGFyZW50KVxuICB9XG5cbiAgLyoqXG4gICAqIElmIHdlJ3JlIGFscmVhZHkgc3RhdGljIGFuZCBwaW5TdGFydCArIHNjcm9sbEhlaWdodCA+PSBzY3JvbGxUb3AsIHRoZW4gd2Ugc2hvdWxkIHN0YXkgc3RhdGljLlxuICAgKiBJZiB3ZSdyZSBub3QgYWxyZWFkeSBzdGF0aWMsIHRoZW4gd2Ugc2hvdWxkIHNldCB0aGUgaGVhZGVyIHN0YXRpYywgb25seSB3aGVuIHBpblN0YXJ0ID49IHNjcm9sbFRvcCAocmVnYXJkbGVzcyBvZlxuICAgKiBzY3JvbGxIZWlnaHQsIHNvIHRoZSBoZWFkZXIgZG9lc24ndCBqdW1wIHVwLCB3aGVuIHNjcm9sbGluZyB1cHdhcmRzIHRvIHRoZSB0cmlnZ2VyKS5cbiAgICogRWxzZSB3ZSBzaG91bGRuJ3Qgc2V0IGl0IHN0YXRpYy5cbiAgICogQHBhcmFtIHNjcm9sbFRvcCB0aGUgY3VycmVudFNjcm9sbFRvcCBwb3NpdGlvblxuICAgKiBAcGFyYW0gZGlyZWN0aW9uIHRoZSBjdXJyZW50IGRpcmVjdGlvblxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gaWYgd2Ugc2hvdWxkIHNldCB0aGUgaGVhZGVyIHN0YXRpY1xuICAgKi9cbiAgc2hvdWxkU2V0U3RhdGljKHNjcm9sbFRvcDogbnVtYmVyLCBkaXJlY3Rpb246IERpcmVjdGlvblR5cGUpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RlID09PSBNT0RFX1NUQVRJQyB8fCAodGhpcy5zdGF0ZS5tb2RlID09PSBNT0RFX1BJTk5FRCAmJiBkaXJlY3Rpb24gPT09IERJUkVDVElPTl9ET1dOKSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMucGluU3RhcnQgKyB0aGlzLnByb3BzLnNjcm9sbEhlaWdodCA+PSBzY3JvbGxUb3BcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMucGluU3RhcnQgPj0gc2Nyb2xsVG9wXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIG1vZGUgZGVwZW5kaW5nIG9uIHRoZSBzY3JvbGxUb3AgcG9zaXRpb24gYW5kIHRoZSBjdXJyZW50IGRpcmVjdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gc2Nyb2xsVG9wXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3Rpb25cbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIG5leHQgbW9kZSBvZiBIZWFkcm9vbVxuICAgKi9cbiAgZGV0ZXJtaW5lTW9kZShzY3JvbGxUb3A6IG51bWJlciwgZGlyZWN0aW9uOiBEaXJlY3Rpb25UeXBlKTogTW9kZVR5cGUge1xuICAgIGlmICh0aGlzLnNob3VsZFNldFN0YXRpYyhzY3JvbGxUb3AsIGRpcmVjdGlvbikpIHtcbiAgICAgIHJldHVybiBNT0RFX1NUQVRJQ1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGlyZWN0aW9uID09PSBESVJFQ1RJT05fVVAgPyBNT0RFX1BJTk5FRCA6IE1PREVfVU5QSU5ORURcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1RyYW5zaXRpb25UeXBlfSBkZXRlcm1pbmVzIHRoZSBraW5kIG9mIHRyYW5zaXRpb25cbiAgICovXG4gIGRldGVybWluZVRyYW5zaXRpb24obW9kZTogTW9kZVR5cGUsIGRpcmVjdGlvbjogRGlyZWN0aW9uVHlwZSk6IFRyYW5zaXRpb25UeXBlIHtcbiAgICAvLyBIYW5kbGUgc3BlY2lhbCBjYXNlOiBJZiB3ZSdyZSBwaW5uZWQgYW5kIGdvaW5nIHRvIHN0YXRpYywgd2UgbmVlZCBhIHNwZWNpYWwgdHJhbnNpdGlvbiB1c2luZyBjc3MgYW5pbWF0aW9uXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kZSA9PT0gTU9ERV9QSU5ORUQgJiYgbW9kZSA9PT0gTU9ERV9TVEFUSUMpIHtcbiAgICAgIHJldHVybiBUUkFOU0lUSU9OX1BJTk5FRF9UT19TVEFUSUNcbiAgICB9XG4gICAgLy8gSWYgbW9kZSBpcyBzdGF0aWMsIHRoZW4gbm8gdHJhbnNpdGlvbiwgYmVjYXVzZSB3ZSdyZSBhbHJlYWR5IGluIHRoZSByaWdodCBzcG90XG4gICAgLy8gKGFuZCB3YW50IHRvIGNoYW5nZSB0cmFuc2Zvcm0gYW5kIHRvcCBwcm9wZXJ0aWVzIHNlYW1sZXNzbHkpXG4gICAgaWYgKG1vZGUgPT09IE1PREVfU1RBVElDKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZS50cmFuc2l0aW9uID09PSBUUkFOU0lUSU9OX05PTkUgPyBUUkFOU0lUSU9OX05PTkUgOiBUUkFOU0lUSU9OX1BJTk5FRF9UT19TVEFUSUNcbiAgICB9XG4gICAgLy8gbW9kZSBpcyBub3Qgc3RhdGljLCB0cmFuc2l0aW9uIHdoZW4gbW92aW5nIHVwd2FyZHMgb3Igd2hlbiB3ZSd2ZSBsYXN0bHkgZGlkIHRoZSB0cmFuc2l0aW9uXG4gICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gRElSRUNUSU9OX1VQIHx8IHRoaXMuc3RhdGUudHJhbnNpdGlvbiA9PT0gVFJBTlNJVElPTl9OT1JNQUxcbiAgICAgID8gVFJBTlNJVElPTl9OT1JNQUxcbiAgICAgIDogVFJBTlNJVElPTl9OT05FXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBjdXJyZW50IHNjcm9sbFRvcCBwb3NpdGlvbiBhbmQgdXBkYXRlcyB0aGUgc3RhdGUgYWNjb3JkaW5nbHlcbiAgICovXG4gIHVwZGF0ZTogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsVG9wID0gdGhpcy5nZXRTY3JvbGxUb3AoKVxuICAgIGNvbnN0IG5ld1N0YXRlOiBQYXJ0aWFsPFN0YXRlVHlwZT4gPSB7fVxuICAgIGlmIChjdXJyZW50U2Nyb2xsVG9wID09PSB0aGlzLmxhc3RLbm93blNjcm9sbFRvcCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMubGFzdEtub3duU2Nyb2xsVG9wIDwgY3VycmVudFNjcm9sbFRvcCA/IERJUkVDVElPTl9ET1dOIDogRElSRUNUSU9OX1VQXG4gICAgbmV3U3RhdGUubW9kZSA9IHRoaXMuZGV0ZXJtaW5lTW9kZShjdXJyZW50U2Nyb2xsVG9wLCBkaXJlY3Rpb24pXG4gICAgbmV3U3RhdGUudHJhbnNpdGlvbiA9IHRoaXMuZGV0ZXJtaW5lVHJhbnNpdGlvbihuZXdTdGF0ZS5tb2RlLCBkaXJlY3Rpb24pXG5cbiAgICBjb25zdCB7IG9uU3RpY2t5VG9wQ2hhbmdlZCwgaGVpZ2h0LCBzY3JvbGxIZWlnaHQsIHBpblN0YXJ0IH0gPSB0aGlzLnByb3BzXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kZSA9PT0gTU9ERV9QSU5ORUQgJiYgbmV3U3RhdGUubW9kZSA9PT0gTU9ERV9TVEFUSUMpIHtcbiAgICAgIC8vIGFuaW1hdGlvbiBpbiB0aGUgc3BlY2lhbCBjYXNlIGZyb20gcGlubmVkIHRvIHN0YXRpY1xuICAgICAgbmV3U3RhdGUuYW5pbWF0ZVVwRnJvbSA9IGN1cnJlbnRTY3JvbGxUb3AgLSBwaW5TdGFydFxuICAgIH1cbiAgICBpZiAob25TdGlja3lUb3BDaGFuZ2VkICYmIG5ld1N0YXRlLm1vZGUgIT09IHRoaXMuc3RhdGUubW9kZSAmJiBoZWlnaHQpIHtcbiAgICAgIG9uU3RpY2t5VG9wQ2hhbmdlZChIZWFkcm9vbS5jYWxjU3RpY2t5VG9wKG5ld1N0YXRlLm1vZGUsIGhlaWdodCwgc2Nyb2xsSGVpZ2h0KSlcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZShuZXdTdGF0ZSBhcyBTdGF0ZVR5cGUpXG4gICAgdGhpcy5sYXN0S25vd25TY3JvbGxUb3AgPSBjdXJyZW50U2Nyb2xsVG9wXG4gIH1cblxuICBoYW5kbGVFdmVudDogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudXBkYXRlKVxuICB9XG5cbiAgc3RhdGljIGNhbGNTdGlja3lUb3AobW9kZTogTW9kZVR5cGUsIGhlaWdodDogbnVtYmVyLCBzY3JvbGxIZWlnaHQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vZGUgPT09IE1PREVfUElOTkVEID8gaGVpZ2h0IDogaGVpZ2h0IC0gc2Nyb2xsSGVpZ2h0XG4gIH1cblxuICByZW5kZXIoKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBzY3JvbGxIZWlnaHQsIHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQsIHpJbmRleCwgY2xhc3NOYW1lIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgeyBtb2RlLCB0cmFuc2l0aW9uLCBhbmltYXRlVXBGcm9tIH0gPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgdHJhbnNmb3JtID0gbW9kZSA9PT0gTU9ERV9VTlBJTk5FRCA/IC1zY3JvbGxIZWlnaHQgOiAwXG4gICAgY29uc3Qgb3duU3RpY2t5VG9wID0gbW9kZSA9PT0gTU9ERV9TVEFUSUMgPyAtc2Nyb2xsSGVpZ2h0IDogMFxuICAgIHJldHVybiAoXG4gICAgICA8SGVhZGVyV3JhcHBlclxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgJHRyYW5zbGF0ZVk9e3RyYW5zZm9ybX1cbiAgICAgICAgJHRvcD17b3duU3RpY2t5VG9wfVxuICAgICAgICAkdHJhbnNpdGlvbj17dHJhbnNpdGlvbn1cbiAgICAgICAgJHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQ9eyEhcG9zaXRpb25TdGlja3lEaXNhYmxlZH1cbiAgICAgICAgJHN0YXRpYz17bW9kZSA9PT0gTU9ERV9TVEFUSUN9XG4gICAgICAgICRhbmltYXRlVXBGcm9tPXthbmltYXRlVXBGcm9tfVxuICAgICAgICAkekluZGV4PXt6SW5kZXh9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0hlYWRlcldyYXBwZXI+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRyb29tXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOENzQiJ9 */");
|
|
31
|
-
const keyframesMoveUpFrom = (from)=>/*#__PURE__*/ keyframes("from{transform:translateY(", Math.max(from, 0), "px)}to{transform:translateY(0)}", "keyframesMoveUpFrom", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudHN4Iiwic291cmNlcyI6WyJpbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnXG5pbXBvcnQgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0J1xuXG5jb25zdCBESVJFQ1RJT05fVVAgPSAndXAnXG5jb25zdCBESVJFQ1RJT05fRE9XTiA9ICdkb3duJ1xuXG5jb25zdCBNT0RFX1VOUElOTkVEID0gJ3VucGlubmVkJ1xuY29uc3QgTU9ERV9QSU5ORUQgPSAncGlubmVkJ1xuY29uc3QgTU9ERV9TVEFUSUMgPSAnc3RhdGljJ1xuXG5jb25zdCBUUkFOU0lUSU9OX05PTkUgPSAnbm9uZSdcbmNvbnN0IFRSQU5TSVRJT05fTk9STUFMID0gJ25vcm1hbCdcbmNvbnN0IFRSQU5TSVRJT05fUElOTkVEX1RPX1NUQVRJQyA9ICdwaW5uZWQtdG8tc3RhdGljJ1xuXG50eXBlIE1vZGVUeXBlID0gdHlwZW9mIE1PREVfUElOTkVEIHwgdHlwZW9mIE1PREVfVU5QSU5ORUQgfCB0eXBlb2YgTU9ERV9TVEFUSUNcbnR5cGUgRGlyZWN0aW9uVHlwZSA9IHR5cGVvZiBESVJFQ1RJT05fVVAgfCB0eXBlb2YgRElSRUNUSU9OX0RPV05cbnR5cGUgVHJhbnNpdGlvblR5cGUgPSB0eXBlb2YgVFJBTlNJVElPTl9OT05FIHwgdHlwZW9mIFRSQU5TSVRJT05fTk9STUFMIHwgdHlwZW9mIFRSQU5TSVRJT05fUElOTkVEX1RPX1NUQVRJQ1xuXG50eXBlIFByb3BzVHlwZSA9IHtcbiAgLyoqIFRoZSBjaGlsZCBub2RlIHRvIGJlIGRpc3BsYXllZCBhcyBhIGhlYWRlciAqL1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIC8qKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgcHggdGhlIGhlYWRlciBzaG91bGQgbW92ZSB1cCB3aGVuIHNjcm9sbGluZyAqL1xuICBzY3JvbGxIZWlnaHQ6IG51bWJlclxuICAvKiogVGhlIG1pbmltdW0gc2Nyb2xsVG9wIHBvc2l0aW9uIHdoZXJlIHRoZSB0cmFuc2Zvcm0gc2hvdWxkIHN0YXJ0ICovXG4gIHBpblN0YXJ0OiBudW1iZXJcbiAgLyoqIFVzZWQgZm9yIGNhbGN1bGF0aW5nIHRoZSBzdGlja3lUb3AgcG9zaXRpb24gb2YgYW4gYW5jZXN0b3IgKi9cbiAgaGVpZ2h0PzogbnVtYmVyXG4gIC8qKiBGaXJlZCwgd2hlbiBIZWFkcm9vbSBjaGFuZ2VzIGl0cyBzdGF0ZS4gUGFzc2VzIHN0aWNreVRvcCBvZiB0aGUgYW5jZXN0b3IuICovXG4gIG9uU3RpY2t5VG9wQ2hhbmdlZD86IChzdGlja3lUb3A6IG51bWJlcikgPT4gdm9pZFxuICAvKiogVHJ1ZSwgaWYgc3RpY2t5IHBvc2l0aW9uIHNob3VsZCBiZSBkaXNhYmxlZCAoZS5nLiBmb3IgZWRnZSAxNiBzdXBwb3J0KSAqL1xuICBwb3NpdGlvblN0aWNreURpc2FibGVkPzogYm9vbGVhblxuICAvKiogVGhlIHBhcmVudCBlbGVtZW50IGZpcmluZyB0aGUgc2Nyb2xsIGV2ZW50LiBEZWZhdWx0cyB0byBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgKi9cbiAgcGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsXG4gIC8qKiBUaGUgei1pbmRleCB1c2VkIGJ5IHRoZSB3cmFwcGVyLiBEZWZhdWx0cyB0byAxLiAqL1xuICB6SW5kZXg/OiBudW1iZXJcbiAgLyoqIEEgY2xhc3NuYW1lIGZvciBhcHBseWluZyBjdXN0b20gc3R5bGVzIHRvIHRoZSB3cmFwcGVyLiBVc2UgYXQgeW91ciBvd24gcmlzay4gKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbnR5cGUgU3RhdGVUeXBlID0ge1xuICBtb2RlOiBNb2RlVHlwZVxuICB0cmFuc2l0aW9uOiBUcmFuc2l0aW9uVHlwZVxuICBhbmltYXRlVXBGcm9tOiBudW1iZXIgfCBudWxsXG59XG5cbmNvbnN0IEhlYWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2PHtcbiAgJHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQ6IGJvb2xlYW5cbiAgJHRyYW5zbGF0ZVk6IG51bWJlclxuICAkdHJhbnNpdGlvbjogVHJhbnNpdGlvblR5cGVcbiAgJGFuaW1hdGVVcEZyb206IG51bWJlciB8IG51bGxcbiAgJHpJbmRleD86IG51bWJlclxuICAkdG9wOiBudW1iZXJcbiAgJHN0YXRpYzogYm9vbGVhblxufT5gXG4gIHBvc2l0aW9uOiAke3Byb3BzID0+IChwcm9wcy4kcG9zaXRpb25TdGlja3lEaXNhYmxlZCA/ICdzdGF0aWMnIDogJ3N0aWNreScpfTtcbiAgdG9wOiAke3Byb3BzID0+IHByb3BzLiR0b3B9cHg7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMuJHpJbmRleH07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgke3Byb3BzID0+IHByb3BzLiR0cmFuc2xhdGVZfXB4KTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgJHtwcm9wcyA9PiAocHJvcHMuJHRyYW5zaXRpb24gPT09IFRSQU5TSVRJT05fTk9STUFMICYmICFwcm9wcy4kc3RhdGljID8gJ3RyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2Utb3V0OycgOiAnJyl9XG4gICR7cHJvcHMgPT5cbiAgICBwcm9wcy4kdHJhbnNpdGlvbiA9PT0gVFJBTlNJVElPTl9QSU5ORURfVE9fU1RBVElDICYmIHByb3BzLiRhbmltYXRlVXBGcm9tICE9PSBudWxsXG4gICAgICA/IGNzc2BcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogJHtrZXlmcmFtZXNNb3ZlVXBGcm9tKHByb3BzLiRhbmltYXRlVXBGcm9tKX07XG4gICAgICAgIGBcbiAgICAgIDogJyd9XG4gICR7cHJvcHMgPT4gKHByb3BzLiRzdGF0aWMgPyAndHJhbnNpdGlvbjogbm9uZTsnIDogJycpfVxuYFxuXG5jb25zdCBrZXlmcmFtZXNNb3ZlVXBGcm9tID0gKGZyb206IG51bWJlcikgPT4ga2V5ZnJhbWVzYFxuICAgIGZyb20ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCR7TWF0aC5tYXgoZnJvbSwgMCl9cHgpXG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApXG4gICAgfVxuYFxuXG5jbGFzcyBIZWFkcm9vbSBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8UHJvcHNUeXBlLCBTdGF0ZVR5cGU+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wczogeyBwaW5TdGFydDogbnVtYmVyOyB6SW5kZXg6IG51bWJlcjsgcGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgfSA9IHtcbiAgICBwaW5TdGFydDogMCxcbiAgICB6SW5kZXg6IDEsXG4gICAgcGFyZW50OiB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFxuICB9XG5cbiAgc3RhdGU6IFN0YXRlVHlwZSA9IHtcbiAgICBtb2RlOiBNT0RFX1NUQVRJQyxcbiAgICB0cmFuc2l0aW9uOiBUUkFOU0lUSU9OX05PTkUsXG4gICAgYW5pbWF0ZVVwRnJvbTogbnVsbCxcbiAgfVxuXG4gIC8qKiB0aGUgdmVyeSBsYXN0IHNjcm9sbFRvcCB3aGljaCB3ZSBrbm93IGFib3V0ICh0byBkZXRlcm1pbmUgZGlyZWN0aW9uIGNoYW5nZXMpICovXG4gIGxhc3RLbm93blNjcm9sbFRvcDogbnVtYmVyID0gMFxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSB0aGUgY3VycmVudCBzY3JvbGxUb3AgcG9zaXRpb24gb2YgdGhlIHdpbmRvd1xuICAgKi9cbiAgZ2V0U2Nyb2xsVG9wKCk6IG51bWJlciB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5wcm9wcy5wYXJlbnRcbiAgICBpZiAocGFyZW50ICYmIHBhcmVudC5zY3JvbGxUb3AgIT09IHVuZGVmaW5lZCAmJiBwYXJlbnQgIT09IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHBhcmVudC5zY3JvbGxUb3BcbiAgICB9XG4gICAgaWYgKHBhcmVudCAhPT0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBkZXRlcm1pbmUgc2Nyb2xsVG9wIGZyb20gcGFyZW50IGZvciBTdGlja3lIZWFkcm9vbS4gRGVmYXVsdGluZyB0byB3aW5kb3cucGFnZVlPZmZzZXQuJylcbiAgICB9XG4gICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCd3aW5kb3cucGFnZVlPZmZzZXQgaXMgdW5kZWZpbmVkLiBEZWZhdWx0aW5nIHRvIDAuJylcbiAgICAgIHJldHVybiAwXG4gICAgfVxuICAgIHJldHVybiB3aW5kb3cucGFnZVlPZmZzZXRcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuYWRkU2Nyb2xsTGlzdGVuZXIodGhpcy5wcm9wcy5wYXJlbnQpXG4gIH1cblxuICBhZGRTY3JvbGxMaXN0ZW5lcihwYXJlbnQ/OiBIVE1MRWxlbWVudCB8IG51bGwpIHtcbiAgICBpZiAocGFyZW50ID09PSB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVFdmVudClcbiAgICB9IGVsc2UgaWYgKHBhcmVudCkge1xuICAgICAgcGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlRXZlbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoXCIncGFyZW50JyBwcm9wIG9mIEhlYWRyb29tIGlzIG51bGwuIEFzc3VtaW5nLCBpdCB3aWxsIGJlIHNldCBzb29uLi4uXCIpXG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlU2Nyb2xsTGlzdGVuZXIocGFyZW50PzogSFRNTEVsZW1lbnQgfCBudWxsKSB7XG4gICAgaWYgKHBhcmVudCA9PT0gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlRXZlbnQpXG4gICAgfSBlbHNlIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZUV2ZW50KVxuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHM6IFByb3BzVHlwZSkge1xuICAgIGlmIChwcmV2UHJvcHMucGFyZW50ICE9PSB0aGlzLnByb3BzLnBhcmVudCkge1xuICAgICAgdGhpcy5yZW1vdmVTY3JvbGxMaXN0ZW5lcihwcmV2UHJvcHMucGFyZW50KVxuICAgICAgdGhpcy5hZGRTY3JvbGxMaXN0ZW5lcih0aGlzLnByb3BzLnBhcmVudClcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVyKHRoaXMucHJvcHMucGFyZW50KVxuICB9XG5cbiAgLyoqXG4gICAqIElmIHdlJ3JlIGFscmVhZHkgc3RhdGljIGFuZCBwaW5TdGFydCArIHNjcm9sbEhlaWdodCA+PSBzY3JvbGxUb3AsIHRoZW4gd2Ugc2hvdWxkIHN0YXkgc3RhdGljLlxuICAgKiBJZiB3ZSdyZSBub3QgYWxyZWFkeSBzdGF0aWMsIHRoZW4gd2Ugc2hvdWxkIHNldCB0aGUgaGVhZGVyIHN0YXRpYywgb25seSB3aGVuIHBpblN0YXJ0ID49IHNjcm9sbFRvcCAocmVnYXJkbGVzcyBvZlxuICAgKiBzY3JvbGxIZWlnaHQsIHNvIHRoZSBoZWFkZXIgZG9lc24ndCBqdW1wIHVwLCB3aGVuIHNjcm9sbGluZyB1cHdhcmRzIHRvIHRoZSB0cmlnZ2VyKS5cbiAgICogRWxzZSB3ZSBzaG91bGRuJ3Qgc2V0IGl0IHN0YXRpYy5cbiAgICogQHBhcmFtIHNjcm9sbFRvcCB0aGUgY3VycmVudFNjcm9sbFRvcCBwb3NpdGlvblxuICAgKiBAcGFyYW0gZGlyZWN0aW9uIHRoZSBjdXJyZW50IGRpcmVjdGlvblxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gaWYgd2Ugc2hvdWxkIHNldCB0aGUgaGVhZGVyIHN0YXRpY1xuICAgKi9cbiAgc2hvdWxkU2V0U3RhdGljKHNjcm9sbFRvcDogbnVtYmVyLCBkaXJlY3Rpb246IERpcmVjdGlvblR5cGUpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RlID09PSBNT0RFX1NUQVRJQyB8fCAodGhpcy5zdGF0ZS5tb2RlID09PSBNT0RFX1BJTk5FRCAmJiBkaXJlY3Rpb24gPT09IERJUkVDVElPTl9ET1dOKSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMucGluU3RhcnQgKyB0aGlzLnByb3BzLnNjcm9sbEhlaWdodCA+PSBzY3JvbGxUb3BcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMucGluU3RhcnQgPj0gc2Nyb2xsVG9wXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIG1vZGUgZGVwZW5kaW5nIG9uIHRoZSBzY3JvbGxUb3AgcG9zaXRpb24gYW5kIHRoZSBjdXJyZW50IGRpcmVjdGlvblxuICAgKiBAcGFyYW0ge251bWJlcn0gc2Nyb2xsVG9wXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3Rpb25cbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIG5leHQgbW9kZSBvZiBIZWFkcm9vbVxuICAgKi9cbiAgZGV0ZXJtaW5lTW9kZShzY3JvbGxUb3A6IG51bWJlciwgZGlyZWN0aW9uOiBEaXJlY3Rpb25UeXBlKTogTW9kZVR5cGUge1xuICAgIGlmICh0aGlzLnNob3VsZFNldFN0YXRpYyhzY3JvbGxUb3AsIGRpcmVjdGlvbikpIHtcbiAgICAgIHJldHVybiBNT0RFX1NUQVRJQ1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGlyZWN0aW9uID09PSBESVJFQ1RJT05fVVAgPyBNT0RFX1BJTk5FRCA6IE1PREVfVU5QSU5ORURcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1RyYW5zaXRpb25UeXBlfSBkZXRlcm1pbmVzIHRoZSBraW5kIG9mIHRyYW5zaXRpb25cbiAgICovXG4gIGRldGVybWluZVRyYW5zaXRpb24obW9kZTogTW9kZVR5cGUsIGRpcmVjdGlvbjogRGlyZWN0aW9uVHlwZSk6IFRyYW5zaXRpb25UeXBlIHtcbiAgICAvLyBIYW5kbGUgc3BlY2lhbCBjYXNlOiBJZiB3ZSdyZSBwaW5uZWQgYW5kIGdvaW5nIHRvIHN0YXRpYywgd2UgbmVlZCBhIHNwZWNpYWwgdHJhbnNpdGlvbiB1c2luZyBjc3MgYW5pbWF0aW9uXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kZSA9PT0gTU9ERV9QSU5ORUQgJiYgbW9kZSA9PT0gTU9ERV9TVEFUSUMpIHtcbiAgICAgIHJldHVybiBUUkFOU0lUSU9OX1BJTk5FRF9UT19TVEFUSUNcbiAgICB9XG4gICAgLy8gSWYgbW9kZSBpcyBzdGF0aWMsIHRoZW4gbm8gdHJhbnNpdGlvbiwgYmVjYXVzZSB3ZSdyZSBhbHJlYWR5IGluIHRoZSByaWdodCBzcG90XG4gICAgLy8gKGFuZCB3YW50IHRvIGNoYW5nZSB0cmFuc2Zvcm0gYW5kIHRvcCBwcm9wZXJ0aWVzIHNlYW1sZXNzbHkpXG4gICAgaWYgKG1vZGUgPT09IE1PREVfU1RBVElDKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZS50cmFuc2l0aW9uID09PSBUUkFOU0lUSU9OX05PTkUgPyBUUkFOU0lUSU9OX05PTkUgOiBUUkFOU0lUSU9OX1BJTk5FRF9UT19TVEFUSUNcbiAgICB9XG4gICAgLy8gbW9kZSBpcyBub3Qgc3RhdGljLCB0cmFuc2l0aW9uIHdoZW4gbW92aW5nIHVwd2FyZHMgb3Igd2hlbiB3ZSd2ZSBsYXN0bHkgZGlkIHRoZSB0cmFuc2l0aW9uXG4gICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gRElSRUNUSU9OX1VQIHx8IHRoaXMuc3RhdGUudHJhbnNpdGlvbiA9PT0gVFJBTlNJVElPTl9OT1JNQUxcbiAgICAgID8gVFJBTlNJVElPTl9OT1JNQUxcbiAgICAgIDogVFJBTlNJVElPTl9OT05FXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRoZSBjdXJyZW50IHNjcm9sbFRvcCBwb3NpdGlvbiBhbmQgdXBkYXRlcyB0aGUgc3RhdGUgYWNjb3JkaW5nbHlcbiAgICovXG4gIHVwZGF0ZTogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsVG9wID0gdGhpcy5nZXRTY3JvbGxUb3AoKVxuICAgIGNvbnN0IG5ld1N0YXRlOiBQYXJ0aWFsPFN0YXRlVHlwZT4gPSB7fVxuICAgIGlmIChjdXJyZW50U2Nyb2xsVG9wID09PSB0aGlzLmxhc3RLbm93blNjcm9sbFRvcCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMubGFzdEtub3duU2Nyb2xsVG9wIDwgY3VycmVudFNjcm9sbFRvcCA/IERJUkVDVElPTl9ET1dOIDogRElSRUNUSU9OX1VQXG4gICAgbmV3U3RhdGUubW9kZSA9IHRoaXMuZGV0ZXJtaW5lTW9kZShjdXJyZW50U2Nyb2xsVG9wLCBkaXJlY3Rpb24pXG4gICAgbmV3U3RhdGUudHJhbnNpdGlvbiA9IHRoaXMuZGV0ZXJtaW5lVHJhbnNpdGlvbihuZXdTdGF0ZS5tb2RlLCBkaXJlY3Rpb24pXG5cbiAgICBjb25zdCB7IG9uU3RpY2t5VG9wQ2hhbmdlZCwgaGVpZ2h0LCBzY3JvbGxIZWlnaHQsIHBpblN0YXJ0IH0gPSB0aGlzLnByb3BzXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kZSA9PT0gTU9ERV9QSU5ORUQgJiYgbmV3U3RhdGUubW9kZSA9PT0gTU9ERV9TVEFUSUMpIHtcbiAgICAgIC8vIGFuaW1hdGlvbiBpbiB0aGUgc3BlY2lhbCBjYXNlIGZyb20gcGlubmVkIHRvIHN0YXRpY1xuICAgICAgbmV3U3RhdGUuYW5pbWF0ZVVwRnJvbSA9IGN1cnJlbnRTY3JvbGxUb3AgLSBwaW5TdGFydFxuICAgIH1cbiAgICBpZiAob25TdGlja3lUb3BDaGFuZ2VkICYmIG5ld1N0YXRlLm1vZGUgIT09IHRoaXMuc3RhdGUubW9kZSAmJiBoZWlnaHQpIHtcbiAgICAgIG9uU3RpY2t5VG9wQ2hhbmdlZChIZWFkcm9vbS5jYWxjU3RpY2t5VG9wKG5ld1N0YXRlLm1vZGUsIGhlaWdodCwgc2Nyb2xsSGVpZ2h0KSlcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZShuZXdTdGF0ZSBhcyBTdGF0ZVR5cGUpXG4gICAgdGhpcy5sYXN0S25vd25TY3JvbGxUb3AgPSBjdXJyZW50U2Nyb2xsVG9wXG4gIH1cblxuICBoYW5kbGVFdmVudDogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudXBkYXRlKVxuICB9XG5cbiAgc3RhdGljIGNhbGNTdGlja3lUb3AobW9kZTogTW9kZVR5cGUsIGhlaWdodDogbnVtYmVyLCBzY3JvbGxIZWlnaHQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vZGUgPT09IE1PREVfUElOTkVEID8gaGVpZ2h0IDogaGVpZ2h0IC0gc2Nyb2xsSGVpZ2h0XG4gIH1cblxuICByZW5kZXIoKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBzY3JvbGxIZWlnaHQsIHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQsIHpJbmRleCwgY2xhc3NOYW1lIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgeyBtb2RlLCB0cmFuc2l0aW9uLCBhbmltYXRlVXBGcm9tIH0gPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgdHJhbnNmb3JtID0gbW9kZSA9PT0gTU9ERV9VTlBJTk5FRCA/IC1zY3JvbGxIZWlnaHQgOiAwXG4gICAgY29uc3Qgb3duU3RpY2t5VG9wID0gbW9kZSA9PT0gTU9ERV9TVEFUSUMgPyAtc2Nyb2xsSGVpZ2h0IDogMFxuICAgIHJldHVybiAoXG4gICAgICA8SGVhZGVyV3JhcHBlclxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgJHRyYW5zbGF0ZVk9e3RyYW5zZm9ybX1cbiAgICAgICAgJHRvcD17b3duU3RpY2t5VG9wfVxuICAgICAgICAkdHJhbnNpdGlvbj17dHJhbnNpdGlvbn1cbiAgICAgICAgJHBvc2l0aW9uU3RpY2t5RGlzYWJsZWQ9eyEhcG9zaXRpb25TdGlja3lEaXNhYmxlZH1cbiAgICAgICAgJHN0YXRpYz17bW9kZSA9PT0gTU9ERV9TVEFUSUN9XG4gICAgICAgICRhbmltYXRlVXBGcm9tPXthbmltYXRlVXBGcm9tfVxuICAgICAgICAkekluZGV4PXt6SW5kZXh9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0hlYWRlcldyYXBwZXI+XG4gICAgKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRyb29tXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUU4QyJ9 */");
|
|
28
|
+
})("position:", (props)=>props.$positionStickyDisabled ? 'static' : 'sticky', ";top:", (props)=>props.$top, "px;z-index:", (props)=>props.$zIndex, ";transform:translateY(", (props)=>props.$translateY, "px);animation-duration:0.2s;animation-timing-function:ease-out;", (props)=>props.$transition === TRANSITION_NORMAL && !props.$static ? 'transition: transform 0.2s ease-out;' : '', " animation-name:", (props)=>props.$transition === TRANSITION_PINNED_TO_STATIC && props.$animateUpFrom !== null ? keyframesMoveUpFrom(props.$animateUpFrom) : 'none', ";", (props)=>props.$static ? 'transition: none;' : '');
|
|
29
|
+
const keyframesMoveUpFrom = (from)=>/*#__PURE__*/ keyframes("from{transform:translateY(", Math.max(from, 0), "px)}to{transform:translateY(0)}", "keyframesMoveUpFrom");
|
|
32
30
|
var _React_PureComponent;
|
|
33
31
|
class Headroom extends (_React_PureComponent = React.PureComponent) {
|
|
34
32
|
/**
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"sourcesContent":["import React from 'react'\nimport styled from '@emotion/styled'\nimport { keyframes } from '@emotion/react'\n\nconst DIRECTION_UP = 'up'\nconst DIRECTION_DOWN = 'down'\n\nconst MODE_UNPINNED = 'unpinned'\nconst MODE_PINNED = 'pinned'\nconst MODE_STATIC = 'static'\n\nconst TRANSITION_NONE = 'none'\nconst TRANSITION_NORMAL = 'normal'\nconst TRANSITION_PINNED_TO_STATIC = 'pinned-to-static'\n\ntype ModeType = typeof MODE_PINNED | typeof MODE_UNPINNED | typeof MODE_STATIC\ntype DirectionType = typeof DIRECTION_UP | typeof DIRECTION_DOWN\ntype TransitionType = typeof TRANSITION_NONE | typeof TRANSITION_NORMAL | typeof TRANSITION_PINNED_TO_STATIC\n\ntype PropsType = {\n /** The child node to be displayed as a header */\n children: React.ReactNode\n /** The maximum amount of px the header should move up when scrolling */\n scrollHeight: number\n /** The minimum scrollTop position where the transform should start */\n pinStart: number\n /** Used for calculating the stickyTop position of an ancestor */\n height?: number\n /** Fired, when Headroom changes its state. Passes stickyTop of the ancestor. */\n onStickyTopChanged?: (stickyTop: number) => void\n /** True, if sticky position should be disabled (e.g. for edge 16 support) */\n positionStickyDisabled?: boolean\n /** The parent element firing the scroll event. Defaults to document.documentElement */\n parent?: HTMLElement | null\n /** The z-index used by the wrapper. Defaults to 1. */\n zIndex?: number\n /** A classname for applying custom styles to the wrapper. Use at your own risk. */\n className?: string\n}\n\ntype StateType = {\n mode: ModeType\n transition: TransitionType\n animateUpFrom: number | null\n}\n\nconst HeaderWrapper = styled.div<{\n $positionStickyDisabled: boolean\n $translateY: number\n $transition: TransitionType\n $animateUpFrom: number | null\n $zIndex?: number\n $top: number\n $static: boolean\n}>`\n position: ${props => (props.$positionStickyDisabled ? 'static' : 'sticky')};\n top: ${props => props.$top}px;\n z-index: ${props => props.$zIndex};\n transform: translateY(${props => props.$translateY}px);\n animation-duration: 0.2s;\n animation-timing-function: ease-out;\n ${props => (props.$transition === TRANSITION_NORMAL && !props.$static ? 'transition: transform 0.2s ease-out;' : '')}\n animation-name: ${props =>\n props.$transition === TRANSITION_PINNED_TO_STATIC && props.$animateUpFrom !== null\n ? keyframesMoveUpFrom(props.$animateUpFrom)\n : 'none'};\n ${props => (props.$static ? 'transition: none;' : '')}\n`\n\nconst keyframesMoveUpFrom = (from: number) => keyframes`\n from {\n transform: translateY(${Math.max(from, 0)}px)\n }\n\n to {\n transform: translateY(0)\n }\n`\n\nclass Headroom extends React.PureComponent<PropsType, StateType> {\n static defaultProps: { pinStart: number; zIndex: number; parent: HTMLElement | null } = {\n pinStart: 0,\n zIndex: 1,\n parent: window.document.documentElement,\n }\n\n state: StateType = {\n mode: MODE_STATIC,\n transition: TRANSITION_NONE,\n animateUpFrom: null,\n }\n\n /** the very last scrollTop which we know about (to determine direction changes) */\n lastKnownScrollTop: number = 0\n\n /**\n * @returns {number} the current scrollTop position of the window\n */\n getScrollTop(): number {\n const parent = this.props.parent\n if (parent && parent.scrollTop !== undefined && parent !== document.documentElement) {\n return parent.scrollTop\n }\n if (parent !== document.documentElement) {\n console.warn('Could not determine scrollTop from parent for StickyHeadroom. Defaulting to window.pageYOffset.')\n }\n if (window.pageYOffset === undefined) {\n console.error('window.pageYOffset is undefined. Defaulting to 0.')\n return 0\n }\n return window.pageYOffset\n }\n\n componentDidMount() {\n this.addScrollListener(this.props.parent)\n }\n\n addScrollListener(parent?: HTMLElement | null) {\n if (parent === window.document.documentElement) {\n window.addEventListener('scroll', this.handleEvent)\n } else if (parent) {\n parent.addEventListener('scroll', this.handleEvent)\n } else {\n console.debug(\"'parent' prop of Headroom is null. Assuming, it will be set soon...\")\n }\n }\n\n removeScrollListener(parent?: HTMLElement | null) {\n if (parent === window.document.documentElement) {\n window.removeEventListener('scroll', this.handleEvent)\n } else if (parent) {\n parent.removeEventListener('scroll', this.handleEvent)\n }\n }\n\n componentDidUpdate(prevProps: PropsType) {\n if (prevProps.parent !== this.props.parent) {\n this.removeScrollListener(prevProps.parent)\n this.addScrollListener(this.props.parent)\n }\n }\n\n componentWillUnmount() {\n this.removeScrollListener(this.props.parent)\n }\n\n /**\n * If we're already static and pinStart + scrollHeight >= scrollTop, then we should stay static.\n * If we're not already static, then we should set the header static, only when pinStart >= scrollTop (regardless of\n * scrollHeight, so the header doesn't jump up, when scrolling upwards to the trigger).\n * Else we shouldn't set it static.\n * @param scrollTop the currentScrollTop position\n * @param direction the current direction\n * @returns {boolean} if we should set the header static\n */\n shouldSetStatic(scrollTop: number, direction: DirectionType): boolean {\n if (this.state.mode === MODE_STATIC || (this.state.mode === MODE_PINNED && direction === DIRECTION_DOWN)) {\n return this.props.pinStart + this.props.scrollHeight >= scrollTop\n } else {\n return this.props.pinStart >= scrollTop\n }\n }\n\n /**\n * Determines the mode depending on the scrollTop position and the current direction\n * @param {number} scrollTop\n * @param {string} direction\n * @returns {string} the next mode of Headroom\n */\n determineMode(scrollTop: number, direction: DirectionType): ModeType {\n if (this.shouldSetStatic(scrollTop, direction)) {\n return MODE_STATIC\n } else {\n return direction === DIRECTION_UP ? MODE_PINNED : MODE_UNPINNED\n }\n }\n\n /**\n * @returns {TransitionType} determines the kind of transition\n */\n determineTransition(mode: ModeType, direction: DirectionType): TransitionType {\n // Handle special case: If we're pinned and going to static, we need a special transition using css animation\n if (this.state.mode === MODE_PINNED && mode === MODE_STATIC) {\n return TRANSITION_PINNED_TO_STATIC\n }\n // If mode is static, then no transition, because we're already in the right spot\n // (and want to change transform and top properties seamlessly)\n if (mode === MODE_STATIC) {\n return this.state.transition === TRANSITION_NONE ? TRANSITION_NONE : TRANSITION_PINNED_TO_STATIC\n }\n // mode is not static, transition when moving upwards or when we've lastly did the transition\n return direction === DIRECTION_UP || this.state.transition === TRANSITION_NORMAL\n ? TRANSITION_NORMAL\n : TRANSITION_NONE\n }\n\n /**\n * Checks the current scrollTop position and updates the state accordingly\n */\n update: () => void = () => {\n const currentScrollTop = this.getScrollTop()\n const newState: Partial<StateType> = {}\n if (currentScrollTop === this.lastKnownScrollTop) {\n return\n }\n const direction = this.lastKnownScrollTop < currentScrollTop ? DIRECTION_DOWN : DIRECTION_UP\n newState.mode = this.determineMode(currentScrollTop, direction)\n newState.transition = this.determineTransition(newState.mode, direction)\n\n const { onStickyTopChanged, height, scrollHeight, pinStart } = this.props\n if (this.state.mode === MODE_PINNED && newState.mode === MODE_STATIC) {\n // animation in the special case from pinned to static\n newState.animateUpFrom = currentScrollTop - pinStart\n }\n if (onStickyTopChanged && newState.mode !== this.state.mode && height) {\n onStickyTopChanged(Headroom.calcStickyTop(newState.mode, height, scrollHeight))\n }\n this.setState(newState as StateType)\n this.lastKnownScrollTop = currentScrollTop\n }\n\n handleEvent: () => void = () => {\n window.requestAnimationFrame(this.update)\n }\n\n static calcStickyTop(mode: ModeType, height: number, scrollHeight: number): number {\n return mode === MODE_PINNED ? height : height - scrollHeight\n }\n\n render(): React.ReactElement {\n const { children, scrollHeight, positionStickyDisabled, zIndex, className } = this.props\n const { mode, transition, animateUpFrom } = this.state\n const transform = mode === MODE_UNPINNED ? -scrollHeight : 0\n const ownStickyTop = mode === MODE_STATIC ? -scrollHeight : 0\n return (\n <HeaderWrapper\n className={className}\n $translateY={transform}\n $top={ownStickyTop}\n $transition={transition}\n $positionStickyDisabled={!!positionStickyDisabled}\n $static={mode === MODE_STATIC}\n $animateUpFrom={animateUpFrom}\n $zIndex={zIndex}>\n {children}\n </HeaderWrapper>\n )\n }\n}\n\nexport default Headroom\n"],"names":["React","styled","keyframes","DIRECTION_UP","DIRECTION_DOWN","MODE_UNPINNED","MODE_PINNED","MODE_STATIC","TRANSITION_NONE","TRANSITION_NORMAL","TRANSITION_PINNED_TO_STATIC","HeaderWrapper","props","$positionStickyDisabled","$top","$zIndex","$translateY","$transition","$static","$animateUpFrom","keyframesMoveUpFrom","from","Math","max","Headroom","PureComponent","getScrollTop","parent","scrollTop","undefined","document","documentElement","console","warn","window","pageYOffset","error","componentDidMount","addScrollListener","addEventListener","handleEvent","debug","removeScrollListener","removeEventListener","componentDidUpdate","prevProps","componentWillUnmount","shouldSetStatic","direction","state","mode","pinStart","scrollHeight","determineMode","determineTransition","transition","calcStickyTop","height","render","children","positionStickyDisabled","zIndex","className","animateUpFrom","transform","ownStickyTop","lastKnownScrollTop","update","currentScrollTop","newState","onStickyTopChanged","setState","requestAnimationFrame","defaultProps"],"mappings":"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"}
|
package/index.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import styled from '@emotion/styled'
|
|
3
|
-
import {
|
|
3
|
+
import { keyframes } from '@emotion/react'
|
|
4
4
|
|
|
5
5
|
const DIRECTION_UP = 'up'
|
|
6
6
|
const DIRECTION_DOWN = 'down'
|
|
@@ -60,12 +60,10 @@ const HeaderWrapper = styled.div<{
|
|
|
60
60
|
animation-duration: 0.2s;
|
|
61
61
|
animation-timing-function: ease-out;
|
|
62
62
|
${props => (props.$transition === TRANSITION_NORMAL && !props.$static ? 'transition: transform 0.2s ease-out;' : '')}
|
|
63
|
-
${props =>
|
|
63
|
+
animation-name: ${props =>
|
|
64
64
|
props.$transition === TRANSITION_PINNED_TO_STATIC && props.$animateUpFrom !== null
|
|
65
|
-
?
|
|
66
|
-
|
|
67
|
-
`
|
|
68
|
-
: ''}
|
|
65
|
+
? keyframesMoveUpFrom(props.$animateUpFrom)
|
|
66
|
+
: 'none'};
|
|
69
67
|
${props => (props.$static ? 'transition: none;' : '')}
|
|
70
68
|
`
|
|
71
69
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@integreat-app/react-sticky-headroom",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=18",
|
|
6
6
|
"npm": ">=10"
|
|
@@ -22,10 +22,14 @@
|
|
|
22
22
|
"index.tsx"
|
|
23
23
|
],
|
|
24
24
|
"sideEffects": false,
|
|
25
|
+
"type": "module",
|
|
25
26
|
"exports": {
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
".": {
|
|
28
|
+
"import": "./index.js",
|
|
29
|
+
"require": "./index.cjs",
|
|
30
|
+
"types": "./index.d.ts"
|
|
31
|
+
},
|
|
32
|
+
"./package.json": "./package.json"
|
|
29
33
|
},
|
|
30
34
|
"publishConfig": {
|
|
31
35
|
"access": "public"
|
|
@@ -39,20 +43,17 @@
|
|
|
39
43
|
"emotion",
|
|
40
44
|
"typescript"
|
|
41
45
|
],
|
|
42
|
-
"module": "./index.js",
|
|
43
46
|
"scripts": {
|
|
44
|
-
"build": "
|
|
45
|
-
"build:demo": "webpack --config tools/demo.webpack.config.
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"test:watch": "jest --config jest.config.json --watchAll",
|
|
49
|
-
"test:update": "jest --config jest.config.json -u",
|
|
47
|
+
"build": "tsx tools/build.ts",
|
|
48
|
+
"build:demo": "webpack --config tools/demo.webpack.config.js",
|
|
49
|
+
"format": "npx prettier . --write",
|
|
50
|
+
"format:check": "npx prettier . --check",
|
|
50
51
|
"lint": "npm run eslint && npm run stylelint",
|
|
51
52
|
"lint:fix": "eslint . --fix && npm run stylelint",
|
|
52
53
|
"eslint": "eslint .",
|
|
53
54
|
"stylelint": "stylelint './src/**/*.{ts,tsx}'",
|
|
54
55
|
"ts:check": "tsc",
|
|
55
|
-
"prepublishOnly": "npm run build && npm run build:demo && npm run
|
|
56
|
+
"prepublishOnly": "npm run build && npm run build:demo && npm run lint && npm run format:check && npm run ts:check"
|
|
56
57
|
},
|
|
57
58
|
"//": "browserslist only affects the build of the demo app, not the library itself.",
|
|
58
59
|
"browserslist": [
|
|
@@ -69,39 +70,32 @@
|
|
|
69
70
|
},
|
|
70
71
|
"devDependencies": {
|
|
71
72
|
"@emotion/react": "^11.14.0",
|
|
72
|
-
"@emotion/styled": "^11.14.
|
|
73
|
-
"@swc/core": "^1.
|
|
74
|
-
"@swc/
|
|
75
|
-
"@
|
|
76
|
-
"@types/
|
|
77
|
-
"@
|
|
78
|
-
"@
|
|
79
|
-
"
|
|
80
|
-
"@typescript-eslint/parser": "^8.32.1",
|
|
81
|
-
"browserslist": "^4.24.5",
|
|
73
|
+
"@emotion/styled": "^11.14.1",
|
|
74
|
+
"@swc/core": "^1.15.41",
|
|
75
|
+
"@swc/plugin-emotion": "^14.12.0",
|
|
76
|
+
"@types/node": "^22.16.5",
|
|
77
|
+
"@types/react-dom": "^19.2.3",
|
|
78
|
+
"@typescript-eslint/eslint-plugin": "^8.38.0",
|
|
79
|
+
"@typescript-eslint/parser": "^8.38.0",
|
|
80
|
+
"browserslist": "^4.28.2",
|
|
82
81
|
"eslint": "^8.57.1",
|
|
83
|
-
"eslint-config-prettier": "^10.1.
|
|
82
|
+
"eslint-config-prettier": "^10.1.8",
|
|
84
83
|
"eslint-config-standard": "^17.1.0",
|
|
85
|
-
"eslint-plugin-import": "^2.
|
|
86
|
-
"eslint-plugin-jest": "^28.11.0",
|
|
84
|
+
"eslint-plugin-import": "^2.32.0",
|
|
87
85
|
"eslint-plugin-node": "^11.1.0",
|
|
88
86
|
"eslint-plugin-promise": "^6.6.0",
|
|
89
87
|
"eslint-plugin-react": "^7.37.5",
|
|
90
|
-
"
|
|
91
|
-
"jest-environment-jsdom": "^29.7.0",
|
|
92
|
-
"jest-junit": "^16.0.0",
|
|
93
|
-
"postcss": "^8.5.3",
|
|
88
|
+
"postcss": "^8.5.15",
|
|
94
89
|
"postcss-styled-syntax": "^0.7.1",
|
|
95
|
-
"prettier": "^3.
|
|
96
|
-
"
|
|
97
|
-
"react": "^19.
|
|
98
|
-
"
|
|
99
|
-
"stylelint": "^
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"webpack": "^
|
|
105
|
-
"webpack-cli": "^6.0.1"
|
|
90
|
+
"prettier": "^3.8.4",
|
|
91
|
+
"react": "^19.2.7",
|
|
92
|
+
"react-dom": "^19.2.7",
|
|
93
|
+
"stylelint": "^17.13.0",
|
|
94
|
+
"stylelint-config-recommended": "^18.0.0",
|
|
95
|
+
"swc-loader": "^0.2.7",
|
|
96
|
+
"tsx": "^4.22.4",
|
|
97
|
+
"typescript": "^6.0.3",
|
|
98
|
+
"webpack": "^5.107.2",
|
|
99
|
+
"webpack-cli": "^7.0.3"
|
|
106
100
|
}
|
|
107
101
|
}
|