react-customscroll
Advanced tools
Comparing version 1.0.6 to 2.0.0
@@ -9,2 +9,2 @@ /*! | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.CustomScroll=t(require("react")):e.CustomScroll=t(e.React)}(this,function(e){return function(e){function t(n){if(o[n])return o[n].exports;var r=o[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var o={};return t.m=e,t.c=o,t.p="",t(0)}([function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(){function e(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}();o(1);var c=o(5),a=n(c),u=o(6),f=o(7),h=n(f),d=o(8),p=n(d),m=o(9),v=n(m),g=o(10),y=(n(g),20),b=500,w=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),S=function(e){function t(e){r(this,t);var o=l(this,Object.getPrototypeOf(t).call(this,e));o.nextWrapperHeight=0,o.nextHolderHeight=0;var n=(0,h.default)(),i=o;return o.reset=function(){i.removeListeners(),i.blockSelection(!0)},o.restScrollAfterResize=function(){i.nextWrapperHeight=0,i.nextHolderHeight=0},(0,u.on)(document,["mouseWithoutWindow"],o.reset),(0,u.on)(window,["resize"],o.restScrollAfterResize),o.timer={},o.interval=setInterval(o.reinit.bind(o),b),o.state={width:w?"100%":"calc(100% + "+n+"px)",selection:!0,scrollAreaShow:!1,animate:e.animate||!0},o}return i(t,e),s(t,[{key:"componentDidMount",value:function(){this.scrollBlock=this.refs.customScrollHolder,this.customScroll=this.refs.customScroll,this.customScrollHolder=this.refs.customScrollFrame}},{key:"componentWillUnmount",value:function(){clearInterval(this.interval),this.removeListeners(),clearTimeout(this.timer)}},{key:"getParams",value:function(){var e=this.customScroll.offsetHeight,t=this.customScrollHolder.offsetHeight,o=e/t,n=e*o;return{wrapperHeight:e,holderHeight:t,percentDiff:o,height:n}}},{key:"blockSelection",value:function(e){e||(0,p.default)(),this.setState({selection:!!e})}},{key:"onMouseDown",value:function(e){e.stopPropagation(),e.preventDefault();var t=this.scrollBlock,o=e.touches?e.touches[0].pageY:e.pageY,n=t.scrollTop;this.blockSelection(!1);var r=this;this.scrollRun=function(e){e.stopPropagation(),e.preventDefault();var l=r.getParams(),i=l.holderHeight,s=l.wrapperHeight,c=i/s,a=e.touches?e.touches[0].pageY:e.pageY;(0,v.default)(t,(a-o)*c+n)},this.endScroll=function(){r.removeListeners(),r.blockSelection(!0)},(0,u.on)(document,["mouseup","touchend"],this.endScroll),(0,u.on)(document,["mousemove","touchmove"],this.scrollRun)}},{key:"removeListeners",value:function(){(0,u.off)(document,["mouseWithoutWindow"],this.reset),(0,u.off)(window,["resize"],this.restScrollAfterResize),(0,u.off)(document,["mouseup","touchend"],this.endScroll),(0,u.off)(document,["mousemove","touchmove"],this.scrollRun)}},{key:"reinit",value:function(){var e=this.getParams(),t=e.wrapperHeight,o=e.holderHeight;t===this.nextWrapperHeight&&o===this.nextHolderHeight||this.setState({scrollAreaShow:o>t}),this.nextWrapperHeight=t,this.nextHolderHeight=o}},{key:"jump",value:function(e){var t=e.touches?e.touches[0].pageY:e.pageY,o=this.refs.scrollBar,n=this.scrollBlock.scrollTop,r=this.getParams(),l=r.wrapperHeight,i=this.scrollBlock.getBoundingClientRect().top;if(t<i+o.offsetTop||t>i+o.offsetTop+o.offsetHeight){var s=i+o.offsetTop<=t?1:-1,c=n+l*s;(0,v.default)(this.scrollBlock,c)}}},{key:"getScrollArea",value:function(){return a.default.createElement("div",{ref:"scroll-area",className:"ctm-scroll-area",onClick:this.jump.bind(this)},a.default.createElement("div",{ref:"scroll-area-holder",className:"ctm-scroll-area-frame"},a.default.createElement("div",{ref:"scrollBar",className:"ctm-scroll-bar",style:this.getScrollBarStyles.call(this),onMouseDown:this.onMouseDown.bind(this),onTouchStart:this.onMouseDown.bind(this)})))}},{key:"scroll",value:function(){this.setState({scrollTop:this.scrollBlock.scrollTop})}},{key:"getScrollBarStyles",value:function(){var e=this.getParams(),t=e.holderHeight,o=e.percentDiff,n=e.height,r=this.state.scrollTop||this.scrollBlock.scrollTop,l=n<y?o-(y-n)/t:o,i=n<y?y:n;return{top:r*l,height:i}}},{key:"componentWillReceiveProps",value:function(e){var t=parseInt(e.scrollTo);"undefined"==typeof t||isNaN(t)||v.default.call(this,this.scrollBlock,t,this.state.animate)}},{key:"setY",value:function(e){v.default.call(this,this.scrollBlock,e,this.state.animate)}},{key:"render",value:function(){return a.default.createElement("div",{ref:"customScroll",className:(this.state.scrollAreaShow?"ctm-scroll-bar-active ":"")+(this.state.selection?"ctm-scroll":"ctm-scroll noselect")+(w?" ctm-scroll-mobile":"")},a.default.createElement("div",{ref:"customScrollHolder",className:"ctm-scroll-holder",style:{width:this.state.width},onScroll:this.scroll.bind(this)},a.default.createElement("div",{ref:"customScrollFrame",className:"ctm-scroll-frame"},this.props.children),this.state.scrollAreaShow?this.getScrollArea.call(this):null))}}]),t}(c.Component);e.exports=S},function(e,t){},,,,function(t,o){t.exports=e},function(e,t){"use strict";function o(e,t,o){t.forEach(function(t){e.addEventListener(t,o)})}function n(e,t,o){t.forEach(function(t){e.removeEventListener(t,o)})}Object.defineProperty(t,"__esModule",{value:!0}),t.on=o,t.off=n},function(e,t){"use strict";function o(){var e=document.createElement("p");e.style.width="100%",e.style.height="200px";var t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="200px",t.style.height="150px",t.style.overflow="hidden",t.appendChild(e),document.body.appendChild(t);var o=e.offsetWidth;t.style.overflow="scroll";var n=e.offsetWidth;return o===n&&(n=t.clientWidth),document.body.removeChild(t),o-n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o},function(e,t){"use strict";function o(){document.selection?document.selection.empty():window.getSelection&&window.getSelection().removeAllRanges()}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o},function(e,t){"use strict";function o(e,t,n){if(n<=0)return!1;var r=t-e.scrollTop,l=r/n*10;setTimeout(function(){e.scrollTop=e.scrollTop+l,e.scrollTop!==t&&o.call(this,e,t,n-10)}.bind(this),10)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){n?o.call(this,e,t,500):e.scrollTop=t}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(){function e(){var e=document.createEvent("Event");e.initEvent("mouseWithoutWindow",!0,!0),document.dispatchEvent(e)}document.addEventListener("mouseup",function(t){var o=window,n=document,r=n.documentElement,l=n.getElementsByTagName("body")[0],i=o.innerWidth||r.clientWidth||l.clientWidth,s=o.innerHeight||r.clientHeight||l.clientHeight;(t.clientX>=i||t.clientX<0||t.clientY>=s||t.clientY<0)&&e()}),window.addEventListener("blur",function(){e()})}var t;return{getInstance:function(){return t||(t=e()),t}}}(),n=o.getInstance();t.default=n}])}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.CustomScroll=t(require("react")):e.CustomScroll=t(e.React)}(this,function(e){return function(e){function t(r){if(o[r])return o[r].exports;var l=o[r]={exports:{},id:r,loaded:!1};return e[r].call(l.exports,l,l.exports,t),l.loaded=!0,l.exports}var o={};return t.m=e,t.c=o,t.p="",t(0)}([function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},c=function(){function e(e,t){for(var o=0;o<t.length;o++){var r=t[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,o,r){return o&&e(t.prototype,o),r&&e(t,r),t}}(),a=o(1),u=r(a),h=o(2),d=o(3),f=r(d),p=o(4),m=r(p),v=o(5),y=r(v),g=o(6),S=(r(g),o(7)),b=r(S),w=20,k=500,H=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),x=function(e){function t(e){l(this,t);var o=n(this,Object.getPrototypeOf(t).call(this,e));o.nextWrapperHeight=0,o.nextHolderHeight=0;var r=(0,f.default)(),i=o;return o.reset=function(){i.removeListeners(),i.blockSelection(!0)},o.styles=(0,b.default)({scrollWidth:"undefined"!=typeof e.scrollWidth?e.scrollWidth:"6px",scrollAreaColor:"undefined"!=typeof e.scrollAreaColor?e.scrollAreaColor:"#494949",scrollBarRadius:"undefined"!=typeof e.scrollBarRadius?e.scrollBarRadius:"6px",scrollBarColor:"undefined"!=typeof e.scrollBarColor?e.scrollBarColor:"#aeaeae"}),o.restScrollAfterResize=function(){i.nextWrapperHeight=0,i.nextHolderHeight=0},(0,h.on)(document,["mouseWithoutWindow"],o.reset),(0,h.on)(window,["resize"],o.restScrollAfterResize),o.timer={},o.interval=setInterval(o.reinit.bind(o),k),o.state={width:H?"100%":"calc(100% + "+r+"px)",selection:!0,scrollAreaShow:!1,animate:e.animate||!0},o}return i(t,e),c(t,[{key:"componentDidMount",value:function(){this.scrollBlock=this.refs.customScrollHolder,this.customScroll=this.refs.customScroll,this.customScrollHolder=this.refs.customScrollFrame}},{key:"componentWillUnmount",value:function(){clearInterval(this.interval),this.removeListeners(),clearTimeout(this.timer)}},{key:"getParams",value:function(){var e=this.customScroll.offsetHeight,t=this.customScrollHolder.offsetHeight,o=e/t,r=e*o;return{wrapperHeight:e,holderHeight:t,percentDiff:o,height:r}}},{key:"blockSelection",value:function(e){e||(0,m.default)(),this.setState({selection:!!e})}},{key:"onMouseDown",value:function(e){e.stopPropagation(),e.preventDefault();var t=this.scrollBlock,o=e.touches?e.touches[0].pageY:e.pageY,r=t.scrollTop;this.blockSelection(!1);var l=this;this.scrollRun=function(e){e.stopPropagation(),e.preventDefault();var n=l.getParams(),i=n.holderHeight,s=n.wrapperHeight,c=i/s,a=e.touches?e.touches[0].pageY:e.pageY;(0,y.default)(t,(a-o)*c+r)},this.endScroll=function(){l.removeListeners(),l.blockSelection(!0)},(0,h.on)(document,["mouseup","touchend"],this.endScroll),(0,h.on)(document,["mousemove","touchmove"],this.scrollRun)}},{key:"removeListeners",value:function(){(0,h.off)(document,["mouseWithoutWindow"],this.reset),(0,h.off)(window,["resize"],this.restScrollAfterResize),(0,h.off)(document,["mouseup","touchend"],this.endScroll),(0,h.off)(document,["mousemove","touchmove"],this.scrollRun)}},{key:"reinit",value:function(){var e=this.getParams(),t=e.wrapperHeight,o=e.holderHeight;t===this.nextWrapperHeight&&o===this.nextHolderHeight||this.setState({scrollAreaShow:o>t}),this.nextWrapperHeight=t,this.nextHolderHeight=o}},{key:"jump",value:function(e){var t=e.touches?e.touches[0].pageY:e.pageY,o=this.refs.scrollBar,r=this.scrollBlock.scrollTop,l=this.getParams(),n=l.wrapperHeight,i=this.scrollBlock.getBoundingClientRect().top;if(t<i+o.offsetTop||t>i+o.offsetTop+o.offsetHeight){var s=i+o.offsetTop<=t?1:-1,c=r+n*s;(0,y.default)(this.scrollBlock,c)}}},{key:"getScrollArea",value:function(){return u.default.createElement("div",{ref:"scroll-area",style:this.styles.scrollArea,onClick:this.jump.bind(this)},u.default.createElement("div",{ref:"scroll-area-holder",style:this.styles.scrollAreaFrame},u.default.createElement("div",{ref:"scrollBar",style:s({},this.styles.scrollBar,this.getScrollBarStyles.call(this)),onMouseDown:this.onMouseDown.bind(this),onTouchStart:this.onMouseDown.bind(this)})))}},{key:"scroll",value:function(){this.setState({scrollTop:this.scrollBlock.scrollTop})}},{key:"getScrollBarStyles",value:function(){var e=this.getParams(),t=e.holderHeight,o=e.percentDiff,r=e.height,l=this.state.scrollTop||this.scrollBlock.scrollTop,n=r<w?o-(w-r)/t:o,i=r<w?w:r;return{top:l*n,height:i}}},{key:"componentWillReceiveProps",value:function(e){var t=parseInt(e.scrollTo);"undefined"==typeof t||isNaN(t)||y.default.call(this,this.scrollBlock,t,this.state.animate)}},{key:"setY",value:function(e){y.default.call(this,this.scrollBlock,e,this.state.animate)}},{key:"render",value:function(){var e=this.styles.ctmScroll,t=this.styles.ctmScrollFrame;return this.state.scrollAreaShow&&(t=s({},t,this.styles.ctmScrollActive)),this.state.selection&&(e=s({},e,this.styles.noselect)),u.default.createElement("div",{ref:"customScroll",style:e},u.default.createElement("div",{ref:"customScrollHolder",style:s({},{width:this.state.width},this.styles.ctmScrollHolder),onScroll:this.scroll.bind(this)},u.default.createElement("div",{ref:"customScrollFrame",style:t},this.props.children),this.state.scrollAreaShow?this.getScrollArea.call(this):null))}}]),t}(a.Component);e.exports=x},function(t,o){t.exports=e},function(e,t){"use strict";function o(e,t,o){t.forEach(function(t){e.addEventListener(t,o)})}function r(e,t,o){t.forEach(function(t){e.removeEventListener(t,o)})}Object.defineProperty(t,"__esModule",{value:!0}),t.on=o,t.off=r},function(e,t){"use strict";function o(){var e=document.createElement("p");e.style.width="100%",e.style.height="200px";var t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="200px",t.style.height="150px",t.style.overflow="hidden",t.appendChild(e),document.body.appendChild(t);var o=e.offsetWidth;t.style.overflow="scroll";var r=e.offsetWidth;return o===r&&(r=t.clientWidth),document.body.removeChild(t),o-r}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o},function(e,t){"use strict";function o(){document.selection?document.selection.empty():window.getSelection&&window.getSelection().removeAllRanges()}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o},function(e,t){"use strict";function o(e,t,r){if(r<=0)return!1;var l=t-e.scrollTop,n=l/r*10;setTimeout(function(){e.scrollTop=e.scrollTop+n,e.scrollTop!==t&&o.call(this,e,t,r-10)}.bind(this),10)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){r?o.call(this,e,t,500):e.scrollTop=t}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(){function e(){var e=document.createEvent("Event");e.initEvent("mouseWithoutWindow",!0,!0),document.dispatchEvent(e)}document.addEventListener("mouseup",function(t){var o=window,r=document,l=r.documentElement,n=r.getElementsByTagName("body")[0],i=o.innerWidth||l.clientWidth||n.clientWidth,s=o.innerHeight||l.clientHeight||n.clientHeight;(t.clientX>=i||t.clientX<0||t.clientY>=s||t.clientY<0)&&e()}),window.addEventListener("blur",function(){e()})}var t;return{getInstance:function(){return t||(t=e()),t}}}(),r=o.getInstance();t.default=r},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return{scrollArea:{background:e.scrollAreaColor,width:e.scrollWidth,padding:"1px",zIndex:"10",top:"0",right:"0",position:"absolute",height:"100%"},scrollAreaFrame:{height:"100%",position:"relative"},scrollBar:{borderRadius:e.scrollBarRadius,position:"absolute",top:"0",width:"100%",background:e.scrollBarColor,cursor:"pointer"},ctmScroll:{overflow:"hidden",height:"100%",position:"relative"},ctmScrollActive:{paddingRight:e.scrollWidth},ctmScrollFrame:{overflow:"hidden"},noselect:{WebkitTouchCallout:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",userSelect:"none"},ctmScrollHolder:{overflowY:"scroll",height:"100%"}}}}])}); |
{ | ||
"name": "react-customscroll", | ||
"version": "1.0.6", | ||
"version": "2.0.0", | ||
"description": "This is little component for custom scroll in React", | ||
@@ -5,0 +5,0 @@ "main": "dist/customscroll.js", |
@@ -1,4 +0,4 @@ | ||
# React Custom Scroll | ||
# React Custom Scroll v2 | ||
This is little component for custom scroll in React. It is very customizable and flexible component. | ||
This is little component for custom scroll in React. It is very customizable and flexible component. In version 2 you can customization scrollbar | ||
@@ -10,3 +10,3 @@ [Demo](http://natrube.net/custom-scroll/index.html) | ||
- Very simple and flexible | ||
- Very small size (8kb for JS / 1kb - CSS) | ||
- Very small size (9kb for JS) | ||
- Easy customization, easy api | ||
@@ -18,4 +18,4 @@ - Keyboard bind | ||
- min-height and max-height compatibility | ||
- simple customizations | ||
## How usage | ||
@@ -32,3 +32,2 @@ | ||
```jsx | ||
import 'react-customscroll/dist/styles.css'; | ||
import CustomScroll from 'react-customscroll'; | ||
@@ -35,0 +34,0 @@ ``` |
@@ -1,3 +0,1 @@ | ||
import './styles/customscroll.scss'; | ||
import React, {Component} from 'react'; | ||
@@ -20,2 +18,4 @@ import {on, off} from './utils/events'; | ||
import stylesFactory from './styles'; | ||
class CustomScroll extends Component { | ||
@@ -36,2 +36,9 @@ constructor(props) { | ||
this.styles = stylesFactory({ | ||
scrollWidth: typeof props.scrollWidth !== 'undefined' ? props.scrollWidth : '6px', | ||
scrollAreaColor: typeof props.scrollAreaColor !== 'undefined' ? props.scrollAreaColor : '#494949', | ||
scrollBarRadius: typeof props.scrollBarRadius !== 'undefined' ? props.scrollBarRadius : '6px', | ||
scrollBarColor: typeof props.scrollBarColor !== 'undefined' ? props.scrollBarColor : '#aeaeae' | ||
}); | ||
this.restScrollAfterResize = function() { | ||
@@ -163,5 +170,5 @@ _this.nextWrapperHeight = 0; | ||
getScrollArea() { | ||
return <div ref="scroll-area" className={"ctm-scroll-area"} onClick={this.jump.bind(this)}> | ||
<div ref="scroll-area-holder" className="ctm-scroll-area-frame"> | ||
<div ref="scrollBar" className="ctm-scroll-bar" style={this.getScrollBarStyles.call(this)} onMouseDown={this.onMouseDown.bind(this)} onTouchStart={this.onMouseDown.bind(this)}/> | ||
return <div ref="scroll-area" style={this.styles.scrollArea} onClick={this.jump.bind(this)}> | ||
<div ref="scroll-area-holder" style={this.styles.scrollAreaFrame}> | ||
<div ref="scrollBar" style={Object.assign({}, this.styles.scrollBar, this.getScrollBarStyles.call(this))} onMouseDown={this.onMouseDown.bind(this)} onTouchStart={this.onMouseDown.bind(this)}/> | ||
</div> | ||
@@ -206,9 +213,14 @@ </div>; | ||
render() { | ||
var ctmScroll = this.styles.ctmScroll; | ||
var ctmScrollFrame = this.styles.ctmScrollFrame; | ||
if (this.state.scrollAreaShow) { | ||
ctmScrollFrame = Object.assign({}, ctmScrollFrame, this.styles.ctmScrollActive); | ||
} | ||
if (this.state.selection) { | ||
ctmScroll = Object.assign({}, ctmScroll, this.styles.noselect); | ||
} | ||
return ( | ||
<div ref="customScroll" className={ | ||
(this.state.scrollAreaShow ? 'ctm-scroll-bar-active ' : '') + | ||
(this.state.selection ? 'ctm-scroll' : 'ctm-scroll noselect') + | ||
(isMobile ? ' ctm-scroll-mobile' : '')}> | ||
<div ref="customScrollHolder" className="ctm-scroll-holder" style={{width: this.state.width}} onScroll={this.scroll.bind(this)}> | ||
<div ref="customScrollFrame" className="ctm-scroll-frame"> | ||
<div ref="customScroll" style={ctmScroll}> | ||
<div ref="customScrollHolder" style={Object.assign({}, {width: this.state.width}, this.styles.ctmScrollHolder)} onScroll={this.scroll.bind(this)}> | ||
<div ref="customScrollFrame" style={ctmScrollFrame}> | ||
{this.props.children} | ||
@@ -215,0 +227,0 @@ </div> |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
58723
2418733
28
47