rollex 1.0.0.pre.rc.1 → 1.0.0.pre.rc.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rollex/rails/version.rb +1 -1
- data/vendor/assets/javascripts/rollex.js +183 -259
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33637c95180b914ae5241f2995cc617d3b22a180
|
4
|
+
data.tar.gz: d4223bc0f521d7112991422122d712866fe4d841
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '099d2622a38c712289b42690e2a5eaafe7412724c307e59a81091f03346ebc355b5a45703ef4ac87cd29ddb6f3880aee9f3d8518c0540503937ff0f9628f654e'
|
7
|
+
data.tar.gz: 3a017b20f6224a319ea4a51aed75684692177320215e1a842fda3555dbcee576c100e2851e00e7690263de2edf4cc2ca51ca5de12a235b9276809b9b68ce5969
|
data/lib/rollex/rails/version.rb
CHANGED
@@ -92,8 +92,8 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_0__;
|
|
92
92
|
Object.defineProperty(exports, "__esModule", {
|
93
93
|
value: true
|
94
94
|
});
|
95
|
-
|
96
|
-
|
95
|
+
exports.digitPropTypes = undefined;
|
96
|
+
exports.decorateDigit = decorateDigit;
|
97
97
|
|
98
98
|
var _react = __webpack_require__(0);
|
99
99
|
|
@@ -101,12 +101,6 @@ var _react2 = _interopRequireDefault(_react);
|
|
101
101
|
|
102
102
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
103
103
|
|
104
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
105
|
-
|
106
|
-
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
107
|
-
|
108
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
109
|
-
|
110
104
|
var _React$PropTypes = _react2.default.PropTypes,
|
111
105
|
objectOf = _React$PropTypes.objectOf,
|
112
106
|
any = _React$PropTypes.any,
|
@@ -115,50 +109,28 @@ var _React$PropTypes = _react2.default.PropTypes,
|
|
115
109
|
func = _React$PropTypes.func;
|
116
110
|
|
117
111
|
/**
|
118
|
-
*
|
112
|
+
* @property {string} digit - digit to display
|
113
|
+
* @property {number} radix
|
114
|
+
* @property {Object} digitMap - a map for transforming particular digits
|
115
|
+
* @property {function(digit: number)} digitWrapper - a function for wrapping mapped digits
|
119
116
|
*/
|
120
117
|
|
121
|
-
var
|
122
|
-
_inherits(AbstractCounterDigit, _React$Component);
|
123
|
-
|
124
|
-
function AbstractCounterDigit() {
|
125
|
-
_classCallCheck(this, AbstractCounterDigit);
|
126
|
-
|
127
|
-
return _possibleConstructorReturn(this, (AbstractCounterDigit.__proto__ || Object.getPrototypeOf(AbstractCounterDigit)).apply(this, arguments));
|
128
|
-
}
|
129
|
-
|
130
|
-
_createClass(AbstractCounterDigit, [{
|
131
|
-
key: 'decorateDigit',
|
132
|
-
|
133
|
-
|
134
|
-
/**
|
135
|
-
* Decorates given digit according to radix, digit map and digit wrapper.
|
136
|
-
* @param {number} digit
|
137
|
-
* @return {string} decoratedDigit
|
138
|
-
*/
|
139
|
-
value: function decorateDigit(digit) {
|
140
|
-
var digitString = digit.toString(this.props.radix);
|
141
|
-
return this.props.digitWrapper(this.props.digitMap[digitString] || digitString);
|
142
|
-
}
|
143
|
-
/**
|
144
|
-
* @property {string} digit - digit to display
|
145
|
-
* @property {number} radix
|
146
|
-
* @property {Object} digitMap - a map for transforming particular digits
|
147
|
-
* @property {function(digit: number)} digitWrapper - a function for wrapping mapped digits
|
148
|
-
*/
|
149
|
-
|
150
|
-
}]);
|
151
|
-
|
152
|
-
return AbstractCounterDigit;
|
153
|
-
}(_react2.default.Component);
|
154
|
-
|
155
|
-
AbstractCounterDigit.propTypes = {
|
118
|
+
var digitPropTypes = exports.digitPropTypes = {
|
156
119
|
digit: string.isRequired,
|
157
120
|
radix: number.isRequired,
|
158
121
|
digitMap: objectOf(any).isRequired,
|
159
122
|
digitWrapper: func.isRequired
|
160
123
|
};
|
161
|
-
|
124
|
+
|
125
|
+
/**
|
126
|
+
* Decorates given digit according to radix, digit map and digit wrapper.
|
127
|
+
* @param {number} digit
|
128
|
+
* @return {string} decoratedDigit
|
129
|
+
*/
|
130
|
+
function decorateDigit(digit, props) {
|
131
|
+
var digitString = digit.toString(props.radix);
|
132
|
+
return props.digitWrapper(props.digitMap[digitString] || digitString);
|
133
|
+
}
|
162
134
|
|
163
135
|
/***/ }),
|
164
136
|
/* 2 */
|
@@ -364,7 +336,7 @@ var Counter = function (_React$Component) {
|
|
364
336
|
*/
|
365
337
|
var _this = _possibleConstructorReturn(this, (Counter.__proto__ || Object.getPrototypeOf(Counter)).call(this, props));
|
366
338
|
|
367
|
-
_this.state = new _counterBuilder2.default(
|
339
|
+
_this.state = new _counterBuilder2.default(props).buildInitialState();
|
368
340
|
|
369
341
|
/**
|
370
342
|
* Creates a function bound to "this"
|
@@ -382,7 +354,7 @@ var Counter = function (_React$Component) {
|
|
382
354
|
}, {
|
383
355
|
key: 'componentWillUnmount',
|
384
356
|
value: function componentWillUnmount() {
|
385
|
-
if (!this.props.frozen && !this.
|
357
|
+
if (!this.props.frozen && !this.stopped) this.stop();
|
386
358
|
}
|
387
359
|
|
388
360
|
/**
|
@@ -409,9 +381,8 @@ var Counter = function (_React$Component) {
|
|
409
381
|
}, {
|
410
382
|
key: 'start',
|
411
383
|
value: function start() {
|
412
|
-
_globalIntervals2.default.
|
413
|
-
|
414
|
-
this.setState({ stopped: false });
|
384
|
+
this.unsubscribe = _globalIntervals2.default.subscribe(this.props.interval, this.boundTick);
|
385
|
+
this.stopped = false;
|
415
386
|
}
|
416
387
|
|
417
388
|
/**
|
@@ -421,9 +392,9 @@ var Counter = function (_React$Component) {
|
|
421
392
|
}, {
|
422
393
|
key: 'stop',
|
423
394
|
value: function stop() {
|
424
|
-
|
425
|
-
|
426
|
-
this.
|
395
|
+
if (!this.unsubscribe) return;
|
396
|
+
this.unsubscribe();
|
397
|
+
this.stopped = true;
|
427
398
|
}
|
428
399
|
|
429
400
|
/**
|
@@ -628,9 +599,7 @@ var _reactDom = __webpack_require__(10);
|
|
628
599
|
|
629
600
|
var _reactDom2 = _interopRequireDefault(_reactDom);
|
630
601
|
|
631
|
-
var
|
632
|
-
|
633
|
-
var _AbstractCounterDigit3 = _interopRequireDefault(_AbstractCounterDigit2);
|
602
|
+
var _counterDigitHelper = __webpack_require__(1);
|
634
603
|
|
635
604
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
636
605
|
|
@@ -669,8 +638,8 @@ function forceReflow(element) {
|
|
669
638
|
* />
|
670
639
|
*/
|
671
640
|
|
672
|
-
var AnimatedCounterDigit = function (
|
673
|
-
_inherits(AnimatedCounterDigit,
|
641
|
+
var AnimatedCounterDigit = function (_React$Component) {
|
642
|
+
_inherits(AnimatedCounterDigit, _React$Component);
|
674
643
|
|
675
644
|
function AnimatedCounterDigit(props) {
|
676
645
|
_classCallCheck(this, AnimatedCounterDigit);
|
@@ -687,11 +656,11 @@ var AnimatedCounterDigit = function (_AbstractCounterDigit) {
|
|
687
656
|
}
|
688
657
|
};
|
689
658
|
|
690
|
-
var singleDigitHeight = 100 / (
|
691
|
-
var upperZeroPosition = -singleDigitHeight * (
|
692
|
-
var lowerZeroPosition = -singleDigitHeight *
|
693
|
-
var initialZeroPosition =
|
694
|
-
var finalZeroPosition =
|
659
|
+
var singleDigitHeight = 100 / (props.maxValue + 2);
|
660
|
+
var upperZeroPosition = -singleDigitHeight * (props.radix - props.maxValue - 1);
|
661
|
+
var lowerZeroPosition = -singleDigitHeight * props.radix;
|
662
|
+
var initialZeroPosition = props.direction === 'down' ? lowerZeroPosition : upperZeroPosition;
|
663
|
+
var finalZeroPosition = props.direction === 'down' ? upperZeroPosition : lowerZeroPosition;
|
695
664
|
|
696
665
|
_this.state = {
|
697
666
|
initialZeroPosition: initialZeroPosition,
|
@@ -702,6 +671,10 @@ var AnimatedCounterDigit = function (_AbstractCounterDigit) {
|
|
702
671
|
return _this;
|
703
672
|
}
|
704
673
|
/**
|
674
|
+
* @property {string} digit - digit to display
|
675
|
+
* @property {number} radix
|
676
|
+
* @property {Object} digitMap - a map for transforming particular digits
|
677
|
+
* @property {function(digit: number)} digitWrapper - a function for wrapping mapped digits
|
705
678
|
* @property {string} direction - counting direction
|
706
679
|
* @property {number} maxValue - maximum value used to build a digit lane
|
707
680
|
* @property {string} easingFunction - easing function for transitions
|
@@ -735,7 +708,7 @@ var AnimatedCounterDigit = function (_AbstractCounterDigit) {
|
|
735
708
|
return _react2.default.createElement(
|
736
709
|
'div',
|
737
710
|
{ key: key || digit, className: 'rollex-digit-lane-label' },
|
738
|
-
|
711
|
+
(0, _counterDigitHelper.decorateDigit)(digit, this.props)
|
739
712
|
);
|
740
713
|
}
|
741
714
|
|
@@ -801,9 +774,9 @@ var AnimatedCounterDigit = function (_AbstractCounterDigit) {
|
|
801
774
|
}]);
|
802
775
|
|
803
776
|
return AnimatedCounterDigit;
|
804
|
-
}(
|
777
|
+
}(_react2.default.Component);
|
805
778
|
|
806
|
-
AnimatedCounterDigit.propTypes = _extends({},
|
779
|
+
AnimatedCounterDigit.propTypes = _extends({}, _counterDigitHelper.digitPropTypes, {
|
807
780
|
direction: string.isRequired,
|
808
781
|
maxValue: number.isRequired,
|
809
782
|
easingFunction: string.isRequired,
|
@@ -821,8 +794,7 @@ exports.default = AnimatedCounterDigit;
|
|
821
794
|
Object.defineProperty(exports, "__esModule", {
|
822
795
|
value: true
|
823
796
|
});
|
824
|
-
|
825
|
-
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
797
|
+
exports.default = CounterSegment;
|
826
798
|
|
827
799
|
var _react = __webpack_require__(0);
|
828
800
|
|
@@ -838,12 +810,6 @@ var _StaticCounterDigit2 = _interopRequireDefault(_StaticCounterDigit);
|
|
838
810
|
|
839
811
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
840
812
|
|
841
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
842
|
-
|
843
|
-
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
844
|
-
|
845
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
846
|
-
|
847
813
|
var _React$PropTypes = _react2.default.PropTypes,
|
848
814
|
arrayOf = _React$PropTypes.arrayOf,
|
849
815
|
object = _React$PropTypes.object,
|
@@ -863,6 +829,29 @@ var PERIOD_LIMITS = {
|
|
863
829
|
'days': 0
|
864
830
|
};
|
865
831
|
|
832
|
+
/**
|
833
|
+
* @property {string[]} digits - digits to display
|
834
|
+
* @property {string} period
|
835
|
+
* @property {number} radix
|
836
|
+
* @property {string} direction - counting direction
|
837
|
+
* @property {string} easingFunction - easing function to use for digit transitions
|
838
|
+
* @property {number} easingDuration - duration of digit transitions
|
839
|
+
* @property {Object} digitMap - a map for transforming particular digits
|
840
|
+
* @property {function(digit: number)} digitWrapper - a function for wrapping mapped digits
|
841
|
+
* @property {string} label
|
842
|
+
*/
|
843
|
+
CounterSegment.propTypes = {
|
844
|
+
digits: arrayOf(string).isRequired,
|
845
|
+
period: string.isRequired,
|
846
|
+
radix: number.isRequired,
|
847
|
+
direction: string.isRequired,
|
848
|
+
easingFunction: string,
|
849
|
+
easingDuration: number.isRequired,
|
850
|
+
digitMap: object.isRequired,
|
851
|
+
digitWrapper: func.isRequired,
|
852
|
+
label: string
|
853
|
+
};
|
854
|
+
|
866
855
|
/**
|
867
856
|
* Counter segment component.
|
868
857
|
* @example
|
@@ -876,125 +865,67 @@ var PERIOD_LIMITS = {
|
|
876
865
|
* digitWrapper={(digit) => digit}
|
877
866
|
* />
|
878
867
|
*/
|
868
|
+
function CounterSegment(props) {
|
869
|
+
/**
|
870
|
+
* Gets maximum value for period's digit with account for radix.
|
871
|
+
* Used for building digit lanes in {@link AnimatedCounterDigit}.
|
872
|
+
* @param {number} index - digit's index in number
|
873
|
+
* @return {number} maxValue
|
874
|
+
*/
|
875
|
+
function getMaxValue(index) {
|
876
|
+
var maxValue = PERIOD_LIMITS[props.period];
|
877
|
+
if (!maxValue) return props.radix - 1;
|
879
878
|
|
880
|
-
var
|
881
|
-
|
882
|
-
|
883
|
-
function CounterSegment() {
|
884
|
-
_classCallCheck(this, CounterSegment);
|
885
|
-
|
886
|
-
return _possibleConstructorReturn(this, (CounterSegment.__proto__ || Object.getPrototypeOf(CounterSegment)).apply(this, arguments));
|
879
|
+
var maxValueString = maxValue.toString(props.radix);
|
880
|
+
var maxDigitPos = maxValueString.length;
|
881
|
+
return index === props.digits.length - maxDigitPos ? parseInt(maxValueString[0]) : props.radix - 1;
|
887
882
|
}
|
888
883
|
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
* @property {string} period
|
919
|
-
* @property {number} radix
|
920
|
-
* @property {string} direction - counting direction
|
921
|
-
* @property {string} easingFunction - easing function to use for digit transitions
|
922
|
-
* @property {number} easingDuration - duration of digit transitions
|
923
|
-
* @property {Object} digitMap - a map for transforming particular digits
|
924
|
-
* @property {function(digit: number)} digitWrapper - a function for wrapping mapped digits
|
925
|
-
* @property {string} label
|
926
|
-
*/
|
927
|
-
|
928
|
-
}, {
|
929
|
-
key: 'buildDigits',
|
930
|
-
value: function buildDigits() {
|
931
|
-
var _this2 = this;
|
932
|
-
|
933
|
-
return this.props.digits.map(function (digit, index) {
|
934
|
-
if (_this2.props.easingFunction) {
|
935
|
-
return _react2.default.createElement(_AnimatedCounterDigit2.default, {
|
936
|
-
key: index,
|
937
|
-
digit: digit,
|
938
|
-
maxValue: _this2.getMaxValue(index),
|
939
|
-
radix: _this2.props.radix,
|
940
|
-
direction: _this2.props.direction,
|
941
|
-
easingFunction: _this2.props.easingFunction,
|
942
|
-
easingDuration: _this2.props.easingDuration,
|
943
|
-
digitMap: _this2.props.digitMap,
|
944
|
-
digitWrapper: _this2.props.digitWrapper
|
945
|
-
});
|
946
|
-
} else {
|
947
|
-
return _react2.default.createElement(_StaticCounterDigit2.default, {
|
948
|
-
key: index,
|
949
|
-
digit: digit,
|
950
|
-
radix: _this2.props.radix,
|
951
|
-
digitMap: _this2.props.digitMap,
|
952
|
-
digitWrapper: _this2.props.digitWrapper
|
953
|
-
});
|
954
|
-
}
|
955
|
-
});
|
956
|
-
}
|
957
|
-
|
958
|
-
/**
|
959
|
-
* Renders the segment.
|
960
|
-
* @return {ReactElement} counter segment
|
961
|
-
*/
|
962
|
-
|
963
|
-
}, {
|
964
|
-
key: 'render',
|
965
|
-
value: function render() {
|
966
|
-
return _react2.default.createElement(
|
967
|
-
'div',
|
968
|
-
{ className: 'rollex-segment' },
|
969
|
-
_react2.default.createElement(
|
970
|
-
'div',
|
971
|
-
{ className: 'rollex-digits', style: { overflow: 'hidden' } },
|
972
|
-
this.buildDigits()
|
973
|
-
),
|
974
|
-
_react2.default.createElement(
|
975
|
-
'div',
|
976
|
-
{ className: 'rollex-label' },
|
977
|
-
this.props.label
|
978
|
-
)
|
979
|
-
);
|
980
|
-
}
|
981
|
-
}]);
|
982
|
-
|
983
|
-
return CounterSegment;
|
984
|
-
}(_react2.default.Component);
|
884
|
+
/**
|
885
|
+
* Maps digits to corresponding components according to easing function.
|
886
|
+
* @return {ReactElement[]}
|
887
|
+
*/
|
888
|
+
function buildDigits() {
|
889
|
+
return props.digits.map(function (digit, index) {
|
890
|
+
if (props.easingFunction) {
|
891
|
+
return _react2.default.createElement(_AnimatedCounterDigit2.default, {
|
892
|
+
key: index,
|
893
|
+
digit: digit,
|
894
|
+
maxValue: getMaxValue(index),
|
895
|
+
radix: props.radix,
|
896
|
+
direction: props.direction,
|
897
|
+
easingFunction: props.easingFunction,
|
898
|
+
easingDuration: props.easingDuration,
|
899
|
+
digitMap: props.digitMap,
|
900
|
+
digitWrapper: props.digitWrapper
|
901
|
+
});
|
902
|
+
} else {
|
903
|
+
return _react2.default.createElement(_StaticCounterDigit2.default, {
|
904
|
+
key: index,
|
905
|
+
digit: digit,
|
906
|
+
radix: props.radix,
|
907
|
+
digitMap: props.digitMap,
|
908
|
+
digitWrapper: props.digitWrapper
|
909
|
+
});
|
910
|
+
}
|
911
|
+
});
|
912
|
+
}
|
985
913
|
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
|
995
|
-
|
996
|
-
}
|
997
|
-
|
914
|
+
return _react2.default.createElement(
|
915
|
+
'div',
|
916
|
+
{ className: 'rollex-segment' },
|
917
|
+
_react2.default.createElement(
|
918
|
+
'div',
|
919
|
+
{ className: 'rollex-digits', style: { overflow: 'hidden' } },
|
920
|
+
buildDigits()
|
921
|
+
),
|
922
|
+
_react2.default.createElement(
|
923
|
+
'div',
|
924
|
+
{ className: 'rollex-label' },
|
925
|
+
props.label
|
926
|
+
)
|
927
|
+
);
|
928
|
+
}
|
998
929
|
|
999
930
|
/***/ }),
|
1000
931
|
/* 6 */
|
@@ -1078,24 +1009,23 @@ exports.default = CounterSegmentSeparator;
|
|
1078
1009
|
Object.defineProperty(exports, "__esModule", {
|
1079
1010
|
value: true
|
1080
1011
|
});
|
1081
|
-
|
1082
|
-
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
1012
|
+
exports.default = StaticCounterDigit;
|
1083
1013
|
|
1084
1014
|
var _react = __webpack_require__(0);
|
1085
1015
|
|
1086
1016
|
var _react2 = _interopRequireDefault(_react);
|
1087
1017
|
|
1088
|
-
var
|
1089
|
-
|
1090
|
-
var _AbstractCounterDigit3 = _interopRequireDefault(_AbstractCounterDigit2);
|
1018
|
+
var _counterDigitHelper = __webpack_require__(1);
|
1091
1019
|
|
1092
1020
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1093
1021
|
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1022
|
+
/**
|
1023
|
+
* @property {string} digit - digit to display
|
1024
|
+
* @property {number} radix
|
1025
|
+
* @property {Object} digitMap - a map for transforming particular digits
|
1026
|
+
* @property {function(digit: number)} digitWrapper - a function for wrapping mapped digits
|
1027
|
+
*/
|
1028
|
+
StaticCounterDigit.propTypes = _counterDigitHelper.digitPropTypes;
|
1099
1029
|
|
1100
1030
|
/**
|
1101
1031
|
* Static digit component.
|
@@ -1108,35 +1038,13 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
|
|
1108
1038
|
* digitWrapper={(digit) => digit}
|
1109
1039
|
* />
|
1110
1040
|
*/
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
}
|
1119
|
-
|
1120
|
-
_createClass(StaticCounterDigit, [{
|
1121
|
-
key: 'render',
|
1122
|
-
|
1123
|
-
/**
|
1124
|
-
* Renders the digit.
|
1125
|
-
* @return {ReactElement} digit
|
1126
|
-
*/
|
1127
|
-
value: function render() {
|
1128
|
-
return _react2.default.createElement(
|
1129
|
-
'div',
|
1130
|
-
{ className: 'rollex-digit' },
|
1131
|
-
this.decorateDigit(this.props.digit)
|
1132
|
-
);
|
1133
|
-
}
|
1134
|
-
}]);
|
1135
|
-
|
1136
|
-
return StaticCounterDigit;
|
1137
|
-
}(_AbstractCounterDigit3.default);
|
1138
|
-
|
1139
|
-
exports.default = StaticCounterDigit;
|
1041
|
+
function StaticCounterDigit(props) {
|
1042
|
+
return _react2.default.createElement(
|
1043
|
+
'div',
|
1044
|
+
{ className: 'rollex-digit' },
|
1045
|
+
(0, _counterDigitHelper.decorateDigit)(props.digit, props)
|
1046
|
+
);
|
1047
|
+
}
|
1140
1048
|
|
1141
1049
|
/***/ }),
|
1142
1050
|
/* 8 */
|
@@ -1220,16 +1128,15 @@ var CounterBuilder = function () {
|
|
1220
1128
|
}
|
1221
1129
|
|
1222
1130
|
/**
|
1223
|
-
* @param {
|
1131
|
+
* @param {object} props
|
1224
1132
|
*/
|
1225
1133
|
|
1226
1134
|
}]);
|
1227
1135
|
|
1228
|
-
function CounterBuilder(
|
1136
|
+
function CounterBuilder(props) {
|
1229
1137
|
_classCallCheck(this, CounterBuilder);
|
1230
1138
|
|
1231
|
-
this.
|
1232
|
-
this.props = counter.props;
|
1139
|
+
this.props = props;
|
1233
1140
|
this.state = {};
|
1234
1141
|
}
|
1235
1142
|
|
@@ -1447,51 +1354,68 @@ Object.defineProperty(exports, "__esModule", {
|
|
1447
1354
|
*/
|
1448
1355
|
var GlobalIntervals = {
|
1449
1356
|
/**
|
1450
|
-
*
|
1357
|
+
* Returns an interval with a given duration. Creates one if it doesn't exist.
|
1451
1358
|
* @param {!number} duration - interval duration in milliseconds
|
1359
|
+
* @return {object}
|
1452
1360
|
*/
|
1453
|
-
|
1454
|
-
if (!
|
1455
|
-
|
1456
|
-
|
1457
|
-
interval: setInterval(function () {
|
1458
|
-
window.dispatchEvent(new CustomEvent("rollex:tick:" + duration));
|
1459
|
-
}, duration, false),
|
1460
|
-
counterCount: 0
|
1361
|
+
getInterval: function getInterval(duration) {
|
1362
|
+
if (!this.intervals[duration]) {
|
1363
|
+
var intervalsObj = this.intervals[duration] = {
|
1364
|
+
callbacks: []
|
1461
1365
|
};
|
1366
|
+
intervalsObj.interval = setInterval(function () {
|
1367
|
+
this.callbacks.forEach(function (cb) {
|
1368
|
+
return cb();
|
1369
|
+
});
|
1370
|
+
}.bind(intervalsObj), duration, false);
|
1462
1371
|
}
|
1372
|
+
return this.intervals[duration];
|
1463
1373
|
},
|
1464
1374
|
|
1465
1375
|
/**
|
1466
|
-
* Cleans up an interval.
|
1467
1376
|
* @param {!number} duration - interval duration in milliseconds
|
1468
1377
|
*/
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1472
|
-
delete window.rollexIntervals[duration];
|
1473
|
-
}
|
1378
|
+
removeIntervalWithDuration: function removeIntervalWithDuration(duration) {
|
1379
|
+
clearInterval(this.intervals[duration].interval);
|
1380
|
+
delete this.intervals[duration];
|
1474
1381
|
},
|
1475
1382
|
|
1476
1383
|
/**
|
1477
|
-
* Adds a
|
1384
|
+
* Adds a listener to an interval.
|
1478
1385
|
* @param {!number} duration - interval duration in milliseconds
|
1479
|
-
* @param {!
|
1386
|
+
* @param {!function} callback - listener
|
1387
|
+
* @return {function} unsubscribe
|
1388
|
+
*/
|
1389
|
+
subscribe: function subscribe(duration, callback) {
|
1390
|
+
var _this = this;
|
1391
|
+
|
1392
|
+
var callbacks = this.getInterval(duration).callbacks;
|
1393
|
+
callbacks.push(callback);
|
1394
|
+
return function () {
|
1395
|
+
return _this.removeListener(duration, callback);
|
1396
|
+
};
|
1397
|
+
},
|
1398
|
+
|
1399
|
+
/**
|
1400
|
+
* Removes a listener from its interval. Stops the interval if it no longer has listeners.
|
1401
|
+
* @param {!number} duration
|
1402
|
+
* @param {!function} cb - listener
|
1480
1403
|
*/
|
1481
|
-
|
1482
|
-
|
1483
|
-
|
1404
|
+
removeListener: function removeListener(duration, cb) {
|
1405
|
+
var interval = this.intervals[duration];
|
1406
|
+
var callbacks = interval.callbacks;
|
1407
|
+
|
1408
|
+
if (callbacks.length > 1) {
|
1409
|
+
callbacks.splice(callbacks.indexOf(cb));
|
1410
|
+
} else {
|
1411
|
+
this.removeIntervalWithDuration(duration);
|
1412
|
+
}
|
1484
1413
|
},
|
1485
1414
|
|
1486
1415
|
/**
|
1487
|
-
*
|
1488
|
-
* @param {!number} duration - interval duration in milliseconds
|
1489
|
-
* @param {!Object|function} subscriber
|
1416
|
+
* Stores global intervals
|
1490
1417
|
*/
|
1491
|
-
|
1492
|
-
window.removeEventListener("rollex:tick:" + duration, subscriber, false);
|
1493
|
-
window.rollexIntervals[duration].counterCount -= 1;
|
1494
|
-
}
|
1418
|
+
intervals: {}
|
1495
1419
|
};
|
1496
1420
|
|
1497
1421
|
exports.default = GlobalIntervals;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rollex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.pre.rc.
|
4
|
+
version: 1.0.0.pre.rc.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Komarov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|