11"use strict" ;
22
3- function _typeof ( obj ) { "@babel/helpers - typeof" ; if ( typeof Symbol === "function" && typeof Symbol . iterator === "symbol" ) { _typeof = function _typeof ( obj ) { return typeof obj ; } ; } else { _typeof = function _typeof ( obj ) { return obj && typeof Symbol === "function" && obj . constructor === Symbol && obj !== Symbol . prototype ? "symbol" : typeof obj ; } ; } return _typeof ( obj ) ; }
3+ function _typeof ( obj ) { "@babel/helpers - typeof" ; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol . iterator ? function ( obj ) { return typeof obj ; } : function ( obj ) { return obj && "function" == typeof Symbol && obj . constructor === Symbol && obj !== Symbol . prototype ? "symbol" : typeof obj ; } , _typeof ( obj ) ; }
44
55Object . defineProperty ( exports , "__esModule" , {
66 value : true
@@ -15,42 +15,55 @@ var _shuffleArray = _interopRequireDefault(require("shuffle-array"));
1515
1616var _randomcolor = _interopRequireDefault ( require ( "randomcolor" ) ) ;
1717
18+ var _seedrandom = _interopRequireDefault ( require ( "seedrandom" ) ) ;
19+
1820var _defaultRenderer = require ( "./defaultRenderer" ) ;
1921
2022var _helpers = require ( "./helpers" ) ;
2123
22- function _getRequireWildcardCache ( ) { if ( typeof WeakMap !== "function" ) return null ; var cache = new WeakMap ( ) ; _getRequireWildcardCache = function _getRequireWildcardCache ( ) { return cache ; } ; return cache ; }
24+ function _getRequireWildcardCache ( nodeInterop ) { if ( typeof WeakMap !== "function" ) return null ; var cacheBabelInterop = new WeakMap ( ) ; var cacheNodeInterop = new WeakMap ( ) ; return ( _getRequireWildcardCache = function _getRequireWildcardCache ( nodeInterop ) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop ; } ) ( nodeInterop ) ; }
2325
24- function _interopRequireWildcard ( obj ) { if ( obj && obj . __esModule ) { return obj ; } if ( obj === null || _typeof ( obj ) !== "object" && typeof obj !== "function" ) { return { "default" : obj } ; } var cache = _getRequireWildcardCache ( ) ; if ( cache && cache . has ( obj ) ) { return cache . get ( obj ) ; } var newObj = { } ; var hasPropertyDescriptor = Object . defineProperty && Object . getOwnPropertyDescriptor ; for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) { var desc = hasPropertyDescriptor ? Object . getOwnPropertyDescriptor ( obj , key ) : null ; if ( desc && ( desc . get || desc . set ) ) { Object . defineProperty ( newObj , key , desc ) ; } else { newObj [ key ] = obj [ key ] ; } } } newObj [ "default" ] = obj ; if ( cache ) { cache . set ( obj , newObj ) ; } return newObj ; }
26+ function _interopRequireWildcard ( obj , nodeInterop ) { if ( ! nodeInterop && obj && obj . __esModule ) { return obj ; } if ( obj === null || _typeof ( obj ) !== "object" && typeof obj !== "function" ) { return { "default" : obj } ; } var cache = _getRequireWildcardCache ( nodeInterop ) ; if ( cache && cache . has ( obj ) ) { return cache . get ( obj ) ; } var newObj = { } ; var hasPropertyDescriptor = Object . defineProperty && Object . getOwnPropertyDescriptor ; for ( var key in obj ) { if ( key !== "default" && Object . prototype . hasOwnProperty . call ( obj , key ) ) { var desc = hasPropertyDescriptor ? Object . getOwnPropertyDescriptor ( obj , key ) : null ; if ( desc && ( desc . get || desc . set ) ) { Object . defineProperty ( newObj , key , desc ) ; } else { newObj [ key ] = obj [ key ] ; } } } newObj [ "default" ] = obj ; if ( cache ) { cache . set ( obj , newObj ) ; } return newObj ; }
2527
2628function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { "default" : obj } ; }
2729
2830function _slicedToArray ( arr , i ) { return _arrayWithHoles ( arr ) || _iterableToArrayLimit ( arr , i ) || _unsupportedIterableToArray ( arr , i ) || _nonIterableRest ( ) ; }
2931
3032function _nonIterableRest ( ) { throw new TypeError ( "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ; }
3133
32- function _iterableToArrayLimit ( arr , i ) { if ( typeof Symbol === "undefined" || ! ( Symbol . iterator in Object ( arr ) ) ) return ; var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] != null ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; }
34+ function _iterableToArrayLimit ( arr , i ) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr [ Symbol . iterator ] || arr [ "@@iterator" ] ; if ( _i == null ) return ; var _arr = [ ] ; var _n = true ; var _d = false ; var _s , _e ; try { for ( _i = _i . call ( arr ) ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] != null ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; }
3335
3436function _arrayWithHoles ( arr ) { if ( Array . isArray ( arr ) ) return arr ; }
3537
3638function _toConsumableArray ( arr ) { return _arrayWithoutHoles ( arr ) || _iterableToArray ( arr ) || _unsupportedIterableToArray ( arr ) || _nonIterableSpread ( ) ; }
3739
3840function _nonIterableSpread ( ) { throw new TypeError ( "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ; }
3941
40- function _unsupportedIterableToArray ( o , minLen ) { if ( ! o ) return ; if ( typeof o === "string" ) return _arrayLikeToArray ( o , minLen ) ; var n = Object . prototype . toString . call ( o ) . slice ( 8 , - 1 ) ; if ( n === "Object" && o . constructor ) n = o . constructor . name ; if ( n === "Map" || n === "Set" ) return Array . from ( n ) ; if ( n === "Arguments" || / ^ (?: U i | I ) n t (?: 8 | 1 6 | 3 2 ) (?: C l a m p e d ) ? A r r a y $ / . test ( n ) ) return _arrayLikeToArray ( o , minLen ) ; }
42+ function _unsupportedIterableToArray ( o , minLen ) { if ( ! o ) return ; if ( typeof o === "string" ) return _arrayLikeToArray ( o , minLen ) ; var n = Object . prototype . toString . call ( o ) . slice ( 8 , - 1 ) ; if ( n === "Object" && o . constructor ) n = o . constructor . name ; if ( n === "Map" || n === "Set" ) return Array . from ( o ) ; if ( n === "Arguments" || / ^ (?: U i | I ) n t (?: 8 | 1 6 | 3 2 ) (?: C l a m p e d ) ? A r r a y $ / . test ( n ) ) return _arrayLikeToArray ( o , minLen ) ; }
4143
42- function _iterableToArray ( iter ) { if ( typeof Symbol !== "undefined" && Symbol . iterator in Object ( iter ) ) return Array . from ( iter ) ; }
44+ function _iterableToArray ( iter ) { if ( typeof Symbol !== "undefined" && iter [ Symbol . iterator ] != null || iter [ "@@iterator" ] != null ) return Array . from ( iter ) ; }
4345
4446function _arrayWithoutHoles ( arr ) { if ( Array . isArray ( arr ) ) return _arrayLikeToArray ( arr ) ; }
4547
4648function _arrayLikeToArray ( arr , len ) { if ( len == null || len > arr . length ) len = arr . length ; for ( var i = 0 , arr2 = new Array ( len ) ; i < len ; i ++ ) { arr2 [ i ] = arr [ i ] ; } return arr2 ; }
4749
50+ function ownKeys ( object , enumerableOnly ) { var keys = Object . keys ( object ) ; if ( Object . getOwnPropertySymbols ) { var symbols = Object . getOwnPropertySymbols ( object ) ; enumerableOnly && ( symbols = symbols . filter ( function ( sym ) { return Object . getOwnPropertyDescriptor ( object , sym ) . enumerable ; } ) ) , keys . push . apply ( keys , symbols ) ; } return keys ; }
51+
52+ function _objectSpread ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = null != arguments [ i ] ? arguments [ i ] : { } ; i % 2 ? ownKeys ( Object ( source ) , ! 0 ) . forEach ( function ( key ) { _defineProperty ( target , key , source [ key ] ) ; } ) : Object . getOwnPropertyDescriptors ? Object . defineProperties ( target , Object . getOwnPropertyDescriptors ( source ) ) : ownKeys ( Object ( source ) ) . forEach ( function ( key ) { Object . defineProperty ( target , key , Object . getOwnPropertyDescriptor ( source , key ) ) ; } ) ; } return target ; }
53+
54+ function _defineProperty ( obj , key , value ) { if ( key in obj ) { Object . defineProperty ( obj , key , { value : value , enumerable : true , configurable : true , writable : true } ) ; } else { obj [ key ] = value ; } return obj ; }
55+
4856var handlersPropNames = [ 'onClick' , 'onDoubleClick' , 'onMouseMove' , 'onMouseOver' , 'onMouseOut' ] ;
49- var cloudPropNames = [ 'tags' , 'shuffle' , 'renderer' , 'maxSize' , 'minSize' , 'colorOptions' , 'disableRandomColor' , 'randomNumberGenerator' ] ;
57+ var cloudPropNames = [ 'tags' , 'shuffle' , 'renderer' , 'maxSize' , 'minSize' , 'colorOptions' , 'disableRandomColor' , 'randomSeed' , 'randomNumberGenerator' ] ;
58+
59+ function getTagHashCode ( tag ) {
60+ return tag . key + tag . value + tag . count ;
61+ }
5062
5163function generateColor ( tag , _ref ) {
5264 var disableRandomColor = _ref . disableRandomColor ,
53- colorOptions = _ref . colorOptions ;
65+ colorOptions = _ref . colorOptions ,
66+ randomSeed = _ref . randomSeed ;
5467
5568 if ( tag . color ) {
5669 return tag . color ;
@@ -60,7 +73,9 @@ function generateColor(tag, _ref) {
6073 return undefined ;
6174 }
6275
63- return ( 0 , _randomcolor [ "default" ] ) ( colorOptions ) ;
76+ return ( 0 , _randomcolor [ "default" ] ) ( _objectSpread ( {
77+ seed : randomSeed && "" . concat ( randomSeed , ":" ) . concat ( getTagHashCode ( tag ) )
78+ } , colorOptions ) ) ;
6479}
6580
6681function withTagCloudHandlers ( elem , tag , cloudHandlers ) {
@@ -73,7 +88,7 @@ function withTagCloudHandlers(elem, tag, cloudHandlers) {
7388
7489 return acc ;
7590 } , { } ) ;
76- return _react [ "default" ] . cloneElement ( elem , props ) ;
91+ return /*#__PURE__*/ _react [ "default" ] . cloneElement ( elem , props ) ;
7792}
7893
7994function renderTags ( props , data ) {
@@ -98,16 +113,19 @@ function renderTags(props, data) {
98113function randomize ( props ) {
99114 var tags = props . tags ,
100115 shuffle = props . shuffle ,
116+ randomSeed = props . randomSeed ,
101117 randomNumberGenerator = props . randomNumberGenerator ;
102- var data = tags . map ( function ( tag ) {
118+ var rng = randomSeed ? ( 0 , _seedrandom [ "default" ] ) ( randomSeed ) : randomNumberGenerator ;
119+ var copy = tags . slice ( ) ;
120+ var data = shuffle ? ( 0 , _shuffleArray [ "default" ] ) ( copy , {
121+ rng : rng
122+ } ) : copy ;
123+ return data . map ( function ( tag ) {
103124 return {
104125 tag : tag ,
105126 color : generateColor ( tag , props )
106127 } ;
107128 } ) ;
108- return shuffle ? ( 0 , _shuffleArray [ "default" ] ) ( data , {
109- rng : randomNumberGenerator
110- } ) : data ;
111129}
112130
113131function TagCloud ( props ) {
@@ -116,13 +134,11 @@ function TagCloud(props) {
116134 data = _useState2 [ 0 ] ,
117135 setData = _useState2 [ 1 ] ;
118136
119- var tagsComparison = props . tags . map ( function ( t ) {
120- return t . key || t . value ;
121- } ) . join ( ':' ) ; // randomize (color, shuffle) when tags or certain props change
137+ var tagsComparison = props . tags . map ( getTagHashCode ) . join ( ':' ) ; // randomize (color, shuffle) when tags or certain props change
122138
123139 ( 0 , _react . useEffect ) ( function ( ) {
124140 setData ( randomize ( props ) ) ;
125- } , [ props . colorOptions , props . shuffle , props . disableRandomColor , tagsComparison ] ) ;
141+ } , [ props . colorOptions , props . randomSeed , props . shuffle , props . disableRandomColor , tagsComparison ] ) ;
126142 var other = ( 0 , _helpers . omit ) ( props , [ ] . concat ( cloudPropNames , handlersPropNames ) ) ;
127143 return /*#__PURE__*/ _react [ "default" ] . createElement ( "div" , other , renderTags ( props , data ) ) ;
128144}
@@ -136,6 +152,7 @@ TagCloud.propTypes = {
136152 disableRandomColor : _propTypes [ "default" ] . bool ,
137153 renderer : _propTypes [ "default" ] . func ,
138154 className : _propTypes [ "default" ] . string ,
155+ randomSeed : _propTypes [ "default" ] . any ,
139156 randomNumberGenerator : _propTypes [ "default" ] . func
140157} ;
141158TagCloud . defaultProps = {
0 commit comments