react-slidy
Advanced tools
Comparing version
108
lib/index.js
@@ -14,4 +14,45 @@ import React, { useEffect, useRef, useState } from 'react'; | ||
var ReactSlidy = function ReactSlidy(props) { | ||
var _useState = useState(!props.lazyLoadSlider), | ||
var ReactSlidy = function ReactSlidy(_ref) { | ||
var children = _ref.children, | ||
_ref$classNameBase = _ref.classNameBase, | ||
classNameBase = _ref$classNameBase === void 0 ? 'react-Slidy' : _ref$classNameBase, | ||
_ref$doAfterDestroy = _ref.doAfterDestroy, | ||
doAfterDestroy = _ref$doAfterDestroy === void 0 ? noop : _ref$doAfterDestroy, | ||
_ref$doAfterInit = _ref.doAfterInit, | ||
doAfterInit = _ref$doAfterInit === void 0 ? noop : _ref$doAfterInit, | ||
_ref$doAfterSlide = _ref.doAfterSlide, | ||
doAfterSlide = _ref$doAfterSlide === void 0 ? noop : _ref$doAfterSlide, | ||
_ref$doBeforeSlide = _ref.doBeforeSlide, | ||
doBeforeSlide = _ref$doBeforeSlide === void 0 ? noop : _ref$doBeforeSlide, | ||
imageObjectFit = _ref.imageObjectFit, | ||
_ref$itemsToPreload = _ref.itemsToPreload, | ||
itemsToPreload = _ref$itemsToPreload === void 0 ? 1 : _ref$itemsToPreload, | ||
_ref$initialSlide = _ref.initialSlide, | ||
initialSlide = _ref$initialSlide === void 0 ? 0 : _ref$initialSlide, | ||
_ref$ease = _ref.ease, | ||
ease = _ref$ease === void 0 ? 'ease' : _ref$ease, | ||
_ref$lazyLoadSlider = _ref.lazyLoadSlider, | ||
lazyLoadSlider = _ref$lazyLoadSlider === void 0 ? true : _ref$lazyLoadSlider, | ||
_ref$lazyLoadConfig = _ref.lazyLoadConfig, | ||
lazyLoadConfig = _ref$lazyLoadConfig === void 0 ? { | ||
offset: 150 | ||
} : _ref$lazyLoadConfig, | ||
_ref$keyboardNavigati = _ref.keyboardNavigation, | ||
keyboardNavigation = _ref$keyboardNavigati === void 0 ? false : _ref$keyboardNavigati, | ||
_ref$numOfSlides = _ref.numOfSlides, | ||
numOfSlides = _ref$numOfSlides === void 0 ? 1 : _ref$numOfSlides, | ||
_ref$sanitize = _ref.sanitize, | ||
sanitize = _ref$sanitize === void 0 ? true : _ref$sanitize, | ||
_ref$slide = _ref.slide, | ||
slide = _ref$slide === void 0 ? 0 : _ref$slide, | ||
_ref$slideSpeed = _ref.slideSpeed, | ||
slideSpeed = _ref$slideSpeed === void 0 ? 500 : _ref$slideSpeed, | ||
_ref$showArrows = _ref.showArrows, | ||
showArrows = _ref$showArrows === void 0 ? true : _ref$showArrows, | ||
_ref$useFullHeight = _ref.useFullHeight, | ||
useFullHeight = _ref$useFullHeight === void 0 ? false : _ref$useFullHeight, | ||
_ref$useFullWidth = _ref.useFullWidth, | ||
useFullWidth = _ref$useFullWidth === void 0 ? true : _ref$useFullWidth; | ||
var _useState = useState(!lazyLoadSlider), | ||
showSlider = _useState[0], | ||
@@ -24,7 +65,7 @@ setShowSlider = _useState[1]; | ||
if (props.lazyLoadSlider) { | ||
if (lazyLoadSlider) { | ||
var initLazyLoadSlider = function initLazyLoadSlider() { | ||
// if we support IntersectionObserver, let's use it | ||
var _props$lazyLoadConfig = props.lazyLoadConfig.offset, | ||
offset = _props$lazyLoadConfig === void 0 ? 0 : _props$lazyLoadConfig; | ||
var _lazyLoadConfig$offse = lazyLoadConfig.offset, | ||
offset = _lazyLoadConfig$offse === void 0 ? 0 : _lazyLoadConfig$offse; | ||
observer = new window.IntersectionObserver(handleIntersection, { | ||
@@ -49,4 +90,4 @@ rootMargin: offset + "px 0px 0px" | ||
var handleIntersection = function handleIntersection(_ref, observer) { | ||
var entry = _ref[0]; | ||
var handleIntersection = function handleIntersection(_ref2, observer) { | ||
var entry = _ref2[0]; | ||
@@ -59,43 +100,28 @@ if (entry.isIntersecting || entry.intersectionRatio > 0) { | ||
var children = props.children, | ||
classNameBase = props.classNameBase, | ||
imageObjectFit = props.imageObjectFit, | ||
numOfSlides = props.numOfSlides, | ||
sanitize = props.sanitize, | ||
useFullHeight = props.useFullHeight, | ||
useFullWidth = props.useFullWidth; | ||
var numOfSlidesSanitzed = Math.min(numOfSlides, React.Children.count(children)); | ||
var rootClassName = [classNameBase, useFullHeight && CLASSNAMES.fullHeight, useFullWidth && CLASSNAMES.fullWidth, imageObjectFit && CLASSNAMES[imageObjectFit]].filter(Boolean).join(' '); | ||
return React.createElement("div", { | ||
var reactSlidySliderProps = { | ||
children: children, | ||
classNameBase: classNameBase, | ||
doAfterDestroy: doAfterDestroy, | ||
doAfterInit: doAfterInit, | ||
doAfterSlide: doAfterSlide, | ||
doBeforeSlide: doBeforeSlide, | ||
ease: ease, | ||
initialSlide: initialSlide, | ||
itemsToPreload: itemsToPreload, | ||
keyboardNavigation: keyboardNavigation, | ||
numOfSlides: numOfSlides, | ||
slide: slide, | ||
showArrows: showArrows, | ||
slideSpeed: slideSpeed | ||
}; | ||
return /*#__PURE__*/React.createElement("div", { | ||
className: rootClassName, | ||
ref: nodeEl | ||
}, showSlider && React.createElement(ReactSlidySlider, Object.assign({ | ||
parentRef: nodeEl | ||
}, props, { | ||
}, showSlider && /*#__PURE__*/React.createElement(ReactSlidySlider, Object.assign({}, reactSlidySliderProps, { | ||
numOfSlides: sanitize ? numOfSlidesSanitzed : numOfSlides | ||
}), props.children)); | ||
}), children)); | ||
}; | ||
ReactSlidy.defaultProps = { | ||
classNameBase: 'react-Slidy', | ||
doAfterDestroy: noop, | ||
doAfterInit: noop, | ||
doAfterSlide: noop, | ||
doBeforeSlide: noop, | ||
itemsToPreload: 1, | ||
initialSlide: 0, | ||
ease: 'ease', | ||
lazyLoadSlider: true, | ||
lazyLoadConfig: { | ||
offset: 150 | ||
}, | ||
navigateByKeyboard: false, | ||
numOfSlides: 1, | ||
sanitize: true, | ||
slide: 0, | ||
slideSpeed: 500, | ||
showArrows: true, | ||
useFullHeight: false, | ||
useFullWidth: true | ||
}; | ||
export default ReactSlidy; |
@@ -37,3 +37,3 @@ /* eslint-disable react/prop-types */ | ||
} : {}; | ||
return React.createElement("li", { | ||
return /*#__PURE__*/React.createElement("li", { | ||
key: index, | ||
@@ -145,15 +145,19 @@ style: inlineStyle | ||
return React.createElement(React.Fragment, null, showArrows && React.createElement(React.Fragment, null, React.createElement("span", { | ||
return /*#__PURE__*/React.createElement(React.Fragment, null, showArrows && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", { | ||
"arial-label": "Previous", | ||
className: classNameBase + "-prev", | ||
role: "button", | ||
disabled: index === 0, | ||
onClick: handlePrev | ||
}), React.createElement("span", { | ||
}), /*#__PURE__*/React.createElement("span", { | ||
"arial-label": "Next", | ||
className: classNameBase + "-next", | ||
disabled: items.length <= numOfSlides || index === items.length - 1, | ||
role: "button", | ||
onClick: handleNext | ||
})), React.createElement("div", { | ||
})), /*#__PURE__*/React.createElement("div", { | ||
ref: sliderContainerDOMEl | ||
}, React.createElement("ul", { | ||
}, /*#__PURE__*/React.createElement("ul", { | ||
ref: slidesDOMEl | ||
}, itemsToRender.map(renderItem(numOfSlides))))); | ||
} |
{ | ||
"version": 2, | ||
"alias": ["react-slidy.midu.dev"], | ||
"alias": ["react-slidy.now.sh", "react-slidy.midu.dev"], | ||
"name": "react-slidy" | ||
} |
{ | ||
"name": "react-slidy", | ||
"version": "4.0.22", | ||
"version": "4.0.23", | ||
"main": "lib/", | ||
@@ -29,3 +29,4 @@ "keywords": [ | ||
"release": "np", | ||
"prepublish": "npm run lib" | ||
"prepublish": "npm run lib", | ||
"test": "size-limit" | ||
}, | ||
@@ -44,10 +45,11 @@ "license": "MIT", | ||
"@babel/cli": "7", | ||
"@mdx-js/loader": "1.5.3", | ||
"@next/mdx": "9.1.7", | ||
"@mdx-js/loader": "1.5.8", | ||
"@next/mdx": "9.3.4", | ||
"@s-ui/lint": "3", | ||
"@size-limit/preset-small-lib": "4.4.5", | ||
"@zeit/next-sass": "1.0.1", | ||
"babel-preset-sui": "3", | ||
"copyfiles": "2.1.1", | ||
"next": "9.1.7", | ||
"node-sass": "4.13.0", | ||
"next": "9.3.4", | ||
"node-sass": "4.13.1", | ||
"np": "5.2.1", | ||
@@ -59,4 +61,3 @@ "prism-react-renderer": "1.0.2", | ||
"rimraf": "3.0.0", | ||
"sass-loader": "8.0.2", | ||
"webpack": "4.41.5" | ||
"size-limit": "4.4.5" | ||
}, | ||
@@ -77,3 +78,9 @@ "dependencies": { | ||
"extends": "./node_modules/@s-ui/lint/stylelint.config.js" | ||
} | ||
}, | ||
"size-limit": [ | ||
{ | ||
"limit": "2.85 KB", | ||
"path": "lib/*.js" | ||
} | ||
] | ||
} |
27682
9.25%593
5.14%