@plusscommunities/pluss-core-web 1.4.17 → 1.4.18
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/dist/index.cjs.js +84 -3
- package/dist/index.esm.js +83 -2
- package/dist/index.umd.js +87 -6
- package/package.json +1 -1
- package/src/analytics.js +75 -0
- package/src/components/AnalyticsFilter.js +3 -0
package/dist/index.cjs.js
CHANGED
|
@@ -8,10 +8,10 @@ var _ = require('lodash');
|
|
|
8
8
|
var axios = require('axios');
|
|
9
9
|
var awsAmplify = require('aws-amplify');
|
|
10
10
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
11
|
+
var moment = require('moment');
|
|
11
12
|
var React = require('react');
|
|
12
13
|
var $ = require('jquery');
|
|
13
14
|
var Cookies = require('js-cookie');
|
|
14
|
-
var moment = require('moment');
|
|
15
15
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
16
16
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
17
17
|
var _inherits = require('@babel/runtime/helpers/inherits');
|
|
@@ -40,10 +40,10 @@ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regenerat
|
|
|
40
40
|
var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
|
|
41
41
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
42
42
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
43
|
+
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
43
44
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
44
45
|
var $__default = /*#__PURE__*/_interopDefaultLegacy($);
|
|
45
46
|
var Cookies__default = /*#__PURE__*/_interopDefaultLegacy(Cookies);
|
|
46
|
-
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
47
47
|
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
|
|
48
48
|
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
|
|
49
49
|
var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
|
|
@@ -545,18 +545,95 @@ var getAnalyticsFilterOptions = function getAnalyticsFilterOptions() {
|
|
|
545
545
|
text: 'Last 30 days',
|
|
546
546
|
dayCount: 30,
|
|
547
547
|
prevText: 'previous 30 days'
|
|
548
|
+
}, {
|
|
549
|
+
text: 'Last 90 days',
|
|
550
|
+
dayCount: 90,
|
|
551
|
+
prevText: 'previous 90 days'
|
|
548
552
|
}, {
|
|
549
553
|
text: 'Custom Range',
|
|
550
554
|
dayCount: 0,
|
|
551
555
|
prevText: 'previous * days'
|
|
552
556
|
}];
|
|
553
557
|
};
|
|
558
|
+
var countActivities = function countActivities(data, activityKey, countType) {
|
|
559
|
+
var count = 0;
|
|
560
|
+
var set = new Set();
|
|
561
|
+
data.forEach(function (entry) {
|
|
562
|
+
var stats = entry.Stats;
|
|
563
|
+
|
|
564
|
+
for (var entity in stats) {
|
|
565
|
+
var entityStats = stats[entity];
|
|
566
|
+
|
|
567
|
+
switch (countType) {
|
|
568
|
+
case 'unique':
|
|
569
|
+
if (entityStats[activityKey]) {
|
|
570
|
+
set.add(entity);
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
break;
|
|
574
|
+
|
|
575
|
+
case 'total':
|
|
576
|
+
if (entityStats[activityKey]) {
|
|
577
|
+
count += entityStats[activityKey];
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
break;
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
});
|
|
584
|
+
|
|
585
|
+
switch (countType) {
|
|
586
|
+
case 'unique':
|
|
587
|
+
return set.size;
|
|
588
|
+
|
|
589
|
+
case 'total':
|
|
590
|
+
return count;
|
|
591
|
+
|
|
592
|
+
default:
|
|
593
|
+
return 0;
|
|
594
|
+
}
|
|
595
|
+
};
|
|
596
|
+
var generateDateRangeObjects = function generateDateRangeObjects(startTime, endTime) {
|
|
597
|
+
var startDate = moment__default['default'](startTime);
|
|
598
|
+
var endDate = moment__default['default'](endTime);
|
|
599
|
+
var dates = {};
|
|
600
|
+
|
|
601
|
+
while (startDate.isSameOrBefore(endDate)) {
|
|
602
|
+
var dateString = startDate.format('DD-MM-YYYY');
|
|
603
|
+
dates[dateString] = {
|
|
604
|
+
Date: dateString,
|
|
605
|
+
Timestamp: startDate.valueOf(),
|
|
606
|
+
Stats: {}
|
|
607
|
+
};
|
|
608
|
+
startDate.add(1, 'days');
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
return dates;
|
|
612
|
+
};
|
|
613
|
+
var generateDateActivities = function generateDateActivities(data, activityKey, countType, startTime, endTime) {
|
|
614
|
+
var dates = generateDateRangeObjects(startTime, endTime);
|
|
615
|
+
var result = [];
|
|
616
|
+
Object.keys(dates).forEach(function (d) {
|
|
617
|
+
var dateToUse = ___default['default'].find(data, function (date) {
|
|
618
|
+
return date.Date === d;
|
|
619
|
+
}) || dates[d];
|
|
620
|
+
var compiledValue = {
|
|
621
|
+
date: d,
|
|
622
|
+
value: countActivities([dateToUse], activityKey, countType)
|
|
623
|
+
};
|
|
624
|
+
result.push(compiledValue);
|
|
625
|
+
});
|
|
626
|
+
return result;
|
|
627
|
+
};
|
|
554
628
|
|
|
555
629
|
var analytics = /*#__PURE__*/Object.freeze({
|
|
556
630
|
__proto__: null,
|
|
557
631
|
compileStats: compileStats,
|
|
558
632
|
getInsight: getInsight,
|
|
559
|
-
getAnalyticsFilterOptions: getAnalyticsFilterOptions
|
|
633
|
+
getAnalyticsFilterOptions: getAnalyticsFilterOptions,
|
|
634
|
+
countActivities: countActivities,
|
|
635
|
+
generateDateRangeObjects: generateDateRangeObjects,
|
|
636
|
+
generateDateActivities: generateDateActivities
|
|
560
637
|
});
|
|
561
638
|
|
|
562
639
|
var getUrl = function getUrl(baseAction, action, query) {
|
|
@@ -8535,6 +8612,10 @@ var AnalyticsFilter = /*#__PURE__*/function (_PureComponent) {
|
|
|
8535
8612
|
|
|
8536
8613
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "renderOptions", function () {
|
|
8537
8614
|
return _this.state.filterOptions.map(function (ev) {
|
|
8615
|
+
if (_this.props.hideOptions && ___default['default'].includes(_this.props.hideOptions, ev.dayCount)) {
|
|
8616
|
+
return null;
|
|
8617
|
+
}
|
|
8618
|
+
|
|
8538
8619
|
return /*#__PURE__*/React__default['default'].createElement(reactBootstrap.MenuItem, {
|
|
8539
8620
|
key: ev.dayCount,
|
|
8540
8621
|
eventKey: ev.dayCount,
|
package/dist/index.esm.js
CHANGED
|
@@ -4,10 +4,10 @@ import _ from 'lodash';
|
|
|
4
4
|
import axios from 'axios';
|
|
5
5
|
import { Auth, Storage } from 'aws-amplify';
|
|
6
6
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
7
|
+
import moment from 'moment';
|
|
7
8
|
import React, { Component, PureComponent } from 'react';
|
|
8
9
|
import $ from 'jquery';
|
|
9
10
|
import Cookies from 'js-cookie';
|
|
10
|
-
import moment from 'moment';
|
|
11
11
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
12
12
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
13
13
|
import _inherits from '@babel/runtime/helpers/inherits';
|
|
@@ -515,18 +515,95 @@ var getAnalyticsFilterOptions = function getAnalyticsFilterOptions() {
|
|
|
515
515
|
text: 'Last 30 days',
|
|
516
516
|
dayCount: 30,
|
|
517
517
|
prevText: 'previous 30 days'
|
|
518
|
+
}, {
|
|
519
|
+
text: 'Last 90 days',
|
|
520
|
+
dayCount: 90,
|
|
521
|
+
prevText: 'previous 90 days'
|
|
518
522
|
}, {
|
|
519
523
|
text: 'Custom Range',
|
|
520
524
|
dayCount: 0,
|
|
521
525
|
prevText: 'previous * days'
|
|
522
526
|
}];
|
|
523
527
|
};
|
|
528
|
+
var countActivities = function countActivities(data, activityKey, countType) {
|
|
529
|
+
var count = 0;
|
|
530
|
+
var set = new Set();
|
|
531
|
+
data.forEach(function (entry) {
|
|
532
|
+
var stats = entry.Stats;
|
|
533
|
+
|
|
534
|
+
for (var entity in stats) {
|
|
535
|
+
var entityStats = stats[entity];
|
|
536
|
+
|
|
537
|
+
switch (countType) {
|
|
538
|
+
case 'unique':
|
|
539
|
+
if (entityStats[activityKey]) {
|
|
540
|
+
set.add(entity);
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
break;
|
|
544
|
+
|
|
545
|
+
case 'total':
|
|
546
|
+
if (entityStats[activityKey]) {
|
|
547
|
+
count += entityStats[activityKey];
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
break;
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
});
|
|
554
|
+
|
|
555
|
+
switch (countType) {
|
|
556
|
+
case 'unique':
|
|
557
|
+
return set.size;
|
|
558
|
+
|
|
559
|
+
case 'total':
|
|
560
|
+
return count;
|
|
561
|
+
|
|
562
|
+
default:
|
|
563
|
+
return 0;
|
|
564
|
+
}
|
|
565
|
+
};
|
|
566
|
+
var generateDateRangeObjects = function generateDateRangeObjects(startTime, endTime) {
|
|
567
|
+
var startDate = moment(startTime);
|
|
568
|
+
var endDate = moment(endTime);
|
|
569
|
+
var dates = {};
|
|
570
|
+
|
|
571
|
+
while (startDate.isSameOrBefore(endDate)) {
|
|
572
|
+
var dateString = startDate.format('DD-MM-YYYY');
|
|
573
|
+
dates[dateString] = {
|
|
574
|
+
Date: dateString,
|
|
575
|
+
Timestamp: startDate.valueOf(),
|
|
576
|
+
Stats: {}
|
|
577
|
+
};
|
|
578
|
+
startDate.add(1, 'days');
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
return dates;
|
|
582
|
+
};
|
|
583
|
+
var generateDateActivities = function generateDateActivities(data, activityKey, countType, startTime, endTime) {
|
|
584
|
+
var dates = generateDateRangeObjects(startTime, endTime);
|
|
585
|
+
var result = [];
|
|
586
|
+
Object.keys(dates).forEach(function (d) {
|
|
587
|
+
var dateToUse = _.find(data, function (date) {
|
|
588
|
+
return date.Date === d;
|
|
589
|
+
}) || dates[d];
|
|
590
|
+
var compiledValue = {
|
|
591
|
+
date: d,
|
|
592
|
+
value: countActivities([dateToUse], activityKey, countType)
|
|
593
|
+
};
|
|
594
|
+
result.push(compiledValue);
|
|
595
|
+
});
|
|
596
|
+
return result;
|
|
597
|
+
};
|
|
524
598
|
|
|
525
599
|
var analytics = /*#__PURE__*/Object.freeze({
|
|
526
600
|
__proto__: null,
|
|
527
601
|
compileStats: compileStats,
|
|
528
602
|
getInsight: getInsight,
|
|
529
|
-
getAnalyticsFilterOptions: getAnalyticsFilterOptions
|
|
603
|
+
getAnalyticsFilterOptions: getAnalyticsFilterOptions,
|
|
604
|
+
countActivities: countActivities,
|
|
605
|
+
generateDateRangeObjects: generateDateRangeObjects,
|
|
606
|
+
generateDateActivities: generateDateActivities
|
|
530
607
|
});
|
|
531
608
|
|
|
532
609
|
var getUrl = function getUrl(baseAction, action, query) {
|
|
@@ -8505,6 +8582,10 @@ var AnalyticsFilter = /*#__PURE__*/function (_PureComponent) {
|
|
|
8505
8582
|
|
|
8506
8583
|
_defineProperty(_assertThisInitialized(_this), "renderOptions", function () {
|
|
8507
8584
|
return _this.state.filterOptions.map(function (ev) {
|
|
8585
|
+
if (_this.props.hideOptions && _.includes(_this.props.hideOptions, ev.dayCount)) {
|
|
8586
|
+
return null;
|
|
8587
|
+
}
|
|
8588
|
+
|
|
8508
8589
|
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
8509
8590
|
key: ev.dayCount,
|
|
8510
8591
|
eventKey: ev.dayCount,
|
package/dist/index.umd.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/asyncToGenerator'), require('@babel/runtime/regenerator'), require('lodash'), require('axios'), require('aws-amplify'), require('@babel/runtime/helpers/defineProperty'), require('
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/asyncToGenerator', '@babel/runtime/regenerator', 'lodash', 'axios', 'aws-amplify', '@babel/runtime/helpers/defineProperty', 'react', 'jquery', 'js-cookie', '
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['@plusscommunities/pluss-core-web'] = {}, global._asyncToGenerator, global._regeneratorRuntime, global._, global.axios, global.awsAmplify, global._defineProperty, global.React, global.$, global.Cookies, global.
|
|
5
|
-
}(this, (function (exports, _asyncToGenerator, _regeneratorRuntime, _, axios, awsAmplify, _defineProperty, React, $, Cookies,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/asyncToGenerator'), require('@babel/runtime/regenerator'), require('lodash'), require('axios'), require('aws-amplify'), require('@babel/runtime/helpers/defineProperty'), require('moment'), require('react'), require('jquery'), require('js-cookie'), require('@babel/runtime/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass'), require('@babel/runtime/helpers/inherits'), require('@babel/runtime/helpers/possibleConstructorReturn'), require('@babel/runtime/helpers/getPrototypeOf'), require('react-fontawesome'), require('@babel/runtime/helpers/extends'), require('@babel/runtime/helpers/assertThisInitialized'), require('react-redux'), require('react-textarea-autosize'), require('@babel/runtime/helpers/toConsumableArray'), require('@babel/runtime/helpers/typeof'), require('react-dropzone'), require('react-router'), require('react-bootstrap'), require('@crello/react-lottie'), require('react-csv'), require('@babel/runtime/helpers/objectWithoutProperties'), require('react-color'), require('tinycolor2')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/asyncToGenerator', '@babel/runtime/regenerator', 'lodash', 'axios', 'aws-amplify', '@babel/runtime/helpers/defineProperty', 'moment', 'react', 'jquery', 'js-cookie', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass', '@babel/runtime/helpers/inherits', '@babel/runtime/helpers/possibleConstructorReturn', '@babel/runtime/helpers/getPrototypeOf', 'react-fontawesome', '@babel/runtime/helpers/extends', '@babel/runtime/helpers/assertThisInitialized', 'react-redux', 'react-textarea-autosize', '@babel/runtime/helpers/toConsumableArray', '@babel/runtime/helpers/typeof', 'react-dropzone', 'react-router', 'react-bootstrap', '@crello/react-lottie', 'react-csv', '@babel/runtime/helpers/objectWithoutProperties', 'react-color', 'tinycolor2'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['@plusscommunities/pluss-core-web'] = {}, global._asyncToGenerator, global._regeneratorRuntime, global._, global.axios, global.awsAmplify, global._defineProperty, global.moment, global.React, global.$, global.Cookies, global._classCallCheck, global._createClass, global._inherits, global._possibleConstructorReturn, global._getPrototypeOf, global.FontAwesome, global._extends, global._assertThisInitialized, global.reactRedux, global.Textarea, global._toConsumableArray, global._typeof, global.Dropzone, global.reactRouter, global.reactBootstrap, global.reactLottie, global.reactCsv, global._objectWithoutProperties, global.reactColor, global.tinycolor));
|
|
5
|
+
}(this, (function (exports, _asyncToGenerator, _regeneratorRuntime, _, axios, awsAmplify, _defineProperty, moment, React, $, Cookies, _classCallCheck, _createClass, _inherits, _possibleConstructorReturn, _getPrototypeOf, FontAwesome, _extends, _assertThisInitialized, reactRedux, Textarea, _toConsumableArray, _typeof, Dropzone, reactRouter, reactBootstrap, reactLottie, reactCsv, _objectWithoutProperties, reactColor, tinycolor) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
|
|
12
12
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
13
13
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
14
|
+
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
14
15
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
15
16
|
var $__default = /*#__PURE__*/_interopDefaultLegacy($);
|
|
16
17
|
var Cookies__default = /*#__PURE__*/_interopDefaultLegacy(Cookies);
|
|
17
|
-
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
18
18
|
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
|
|
19
19
|
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
|
|
20
20
|
var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
|
|
@@ -516,18 +516,95 @@
|
|
|
516
516
|
text: 'Last 30 days',
|
|
517
517
|
dayCount: 30,
|
|
518
518
|
prevText: 'previous 30 days'
|
|
519
|
+
}, {
|
|
520
|
+
text: 'Last 90 days',
|
|
521
|
+
dayCount: 90,
|
|
522
|
+
prevText: 'previous 90 days'
|
|
519
523
|
}, {
|
|
520
524
|
text: 'Custom Range',
|
|
521
525
|
dayCount: 0,
|
|
522
526
|
prevText: 'previous * days'
|
|
523
527
|
}];
|
|
524
528
|
};
|
|
529
|
+
var countActivities = function countActivities(data, activityKey, countType) {
|
|
530
|
+
var count = 0;
|
|
531
|
+
var set = new Set();
|
|
532
|
+
data.forEach(function (entry) {
|
|
533
|
+
var stats = entry.Stats;
|
|
534
|
+
|
|
535
|
+
for (var entity in stats) {
|
|
536
|
+
var entityStats = stats[entity];
|
|
537
|
+
|
|
538
|
+
switch (countType) {
|
|
539
|
+
case 'unique':
|
|
540
|
+
if (entityStats[activityKey]) {
|
|
541
|
+
set.add(entity);
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
break;
|
|
545
|
+
|
|
546
|
+
case 'total':
|
|
547
|
+
if (entityStats[activityKey]) {
|
|
548
|
+
count += entityStats[activityKey];
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
break;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
});
|
|
555
|
+
|
|
556
|
+
switch (countType) {
|
|
557
|
+
case 'unique':
|
|
558
|
+
return set.size;
|
|
559
|
+
|
|
560
|
+
case 'total':
|
|
561
|
+
return count;
|
|
562
|
+
|
|
563
|
+
default:
|
|
564
|
+
return 0;
|
|
565
|
+
}
|
|
566
|
+
};
|
|
567
|
+
var generateDateRangeObjects = function generateDateRangeObjects(startTime, endTime) {
|
|
568
|
+
var startDate = moment__default['default'](startTime);
|
|
569
|
+
var endDate = moment__default['default'](endTime);
|
|
570
|
+
var dates = {};
|
|
571
|
+
|
|
572
|
+
while (startDate.isSameOrBefore(endDate)) {
|
|
573
|
+
var dateString = startDate.format('DD-MM-YYYY');
|
|
574
|
+
dates[dateString] = {
|
|
575
|
+
Date: dateString,
|
|
576
|
+
Timestamp: startDate.valueOf(),
|
|
577
|
+
Stats: {}
|
|
578
|
+
};
|
|
579
|
+
startDate.add(1, 'days');
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
return dates;
|
|
583
|
+
};
|
|
584
|
+
var generateDateActivities = function generateDateActivities(data, activityKey, countType, startTime, endTime) {
|
|
585
|
+
var dates = generateDateRangeObjects(startTime, endTime);
|
|
586
|
+
var result = [];
|
|
587
|
+
Object.keys(dates).forEach(function (d) {
|
|
588
|
+
var dateToUse = ___default['default'].find(data, function (date) {
|
|
589
|
+
return date.Date === d;
|
|
590
|
+
}) || dates[d];
|
|
591
|
+
var compiledValue = {
|
|
592
|
+
date: d,
|
|
593
|
+
value: countActivities([dateToUse], activityKey, countType)
|
|
594
|
+
};
|
|
595
|
+
result.push(compiledValue);
|
|
596
|
+
});
|
|
597
|
+
return result;
|
|
598
|
+
};
|
|
525
599
|
|
|
526
600
|
var analytics = /*#__PURE__*/Object.freeze({
|
|
527
601
|
__proto__: null,
|
|
528
602
|
compileStats: compileStats,
|
|
529
603
|
getInsight: getInsight,
|
|
530
|
-
getAnalyticsFilterOptions: getAnalyticsFilterOptions
|
|
604
|
+
getAnalyticsFilterOptions: getAnalyticsFilterOptions,
|
|
605
|
+
countActivities: countActivities,
|
|
606
|
+
generateDateRangeObjects: generateDateRangeObjects,
|
|
607
|
+
generateDateActivities: generateDateActivities
|
|
531
608
|
});
|
|
532
609
|
|
|
533
610
|
var getUrl = function getUrl(baseAction, action, query) {
|
|
@@ -8506,6 +8583,10 @@
|
|
|
8506
8583
|
|
|
8507
8584
|
_defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "renderOptions", function () {
|
|
8508
8585
|
return _this.state.filterOptions.map(function (ev) {
|
|
8586
|
+
if (_this.props.hideOptions && ___default['default'].includes(_this.props.hideOptions, ev.dayCount)) {
|
|
8587
|
+
return null;
|
|
8588
|
+
}
|
|
8589
|
+
|
|
8509
8590
|
return /*#__PURE__*/React__default['default'].createElement(reactBootstrap.MenuItem, {
|
|
8510
8591
|
key: ev.dayCount,
|
|
8511
8592
|
eventKey: ev.dayCount,
|
package/package.json
CHANGED
package/src/analytics.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
|
+
import moment from 'moment';
|
|
2
3
|
|
|
3
4
|
export const compileStats = (stats) => {
|
|
4
5
|
const totalStats = {};
|
|
@@ -64,6 +65,11 @@ export const getAnalyticsFilterOptions = () => {
|
|
|
64
65
|
dayCount: 30,
|
|
65
66
|
prevText: 'previous 30 days',
|
|
66
67
|
},
|
|
68
|
+
{
|
|
69
|
+
text: 'Last 90 days',
|
|
70
|
+
dayCount: 90,
|
|
71
|
+
prevText: 'previous 90 days',
|
|
72
|
+
},
|
|
67
73
|
{
|
|
68
74
|
text: 'Custom Range',
|
|
69
75
|
dayCount: 0,
|
|
@@ -71,3 +77,72 @@ export const getAnalyticsFilterOptions = () => {
|
|
|
71
77
|
},
|
|
72
78
|
];
|
|
73
79
|
};
|
|
80
|
+
|
|
81
|
+
export const countActivities = (data, activityKey, countType) => {
|
|
82
|
+
let count = 0;
|
|
83
|
+
let set = new Set();
|
|
84
|
+
|
|
85
|
+
data.forEach((entry) => {
|
|
86
|
+
const stats = entry.Stats;
|
|
87
|
+
|
|
88
|
+
for (const entity in stats) {
|
|
89
|
+
const entityStats = stats[entity];
|
|
90
|
+
|
|
91
|
+
switch (countType) {
|
|
92
|
+
case 'unique':
|
|
93
|
+
if (entityStats[activityKey]) {
|
|
94
|
+
set.add(entity);
|
|
95
|
+
}
|
|
96
|
+
break;
|
|
97
|
+
case 'total':
|
|
98
|
+
if (entityStats[activityKey]) {
|
|
99
|
+
count += entityStats[activityKey];
|
|
100
|
+
}
|
|
101
|
+
break;
|
|
102
|
+
default:
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
switch (countType) {
|
|
109
|
+
case 'unique':
|
|
110
|
+
return set.size;
|
|
111
|
+
case 'total':
|
|
112
|
+
return count;
|
|
113
|
+
default:
|
|
114
|
+
return 0;
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
export const generateDateRangeObjects = (startTime, endTime) => {
|
|
119
|
+
const startDate = moment(startTime);
|
|
120
|
+
const endDate = moment(endTime);
|
|
121
|
+
const dates = {};
|
|
122
|
+
|
|
123
|
+
while (startDate.isSameOrBefore(endDate)) {
|
|
124
|
+
const dateString = startDate.format('DD-MM-YYYY');
|
|
125
|
+
dates[dateString] = {
|
|
126
|
+
Date: dateString,
|
|
127
|
+
Timestamp: startDate.valueOf(),
|
|
128
|
+
Stats: {},
|
|
129
|
+
};
|
|
130
|
+
startDate.add(1, 'days');
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return dates;
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
export const generateDateActivities = (data, activityKey, countType, startTime, endTime) => {
|
|
137
|
+
const dates = generateDateRangeObjects(startTime, endTime);
|
|
138
|
+
|
|
139
|
+
const result = [];
|
|
140
|
+
|
|
141
|
+
Object.keys(dates).forEach((d) => {
|
|
142
|
+
const dateToUse = _.find(data, (date) => date.Date === d) || dates[d];
|
|
143
|
+
const compiledValue = { date: d, value: countActivities([dateToUse], activityKey, countType) };
|
|
144
|
+
|
|
145
|
+
result.push(compiledValue);
|
|
146
|
+
});
|
|
147
|
+
return result;
|
|
148
|
+
};
|
|
@@ -23,6 +23,9 @@ class AnalyticsFilter extends PureComponent {
|
|
|
23
23
|
|
|
24
24
|
renderOptions = () => {
|
|
25
25
|
return this.state.filterOptions.map((ev) => {
|
|
26
|
+
if (this.props.hideOptions && _.includes(this.props.hideOptions, ev.dayCount)) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
26
29
|
return (
|
|
27
30
|
<MenuItem key={ev.dayCount} eventKey={ev.dayCount} active={this.state.selectedFilter === ev}>
|
|
28
31
|
{ev.text}
|