@plusscommunities/pluss-circles-web 1.0.17 → 1.0.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.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/defineProperty'), require('@babel/runtime/helpers/asyncToGenerator'), require('@babel/runtime/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass'), require('@babel/runtime/helpers/assertThisInitialized'), require('@babel/runtime/helpers/inherits'), require('@babel/runtime/helpers/possibleConstructorReturn'), require('@babel/runtime/helpers/getPrototypeOf'), require('@babel/runtime/regenerator'), require('react'), require('react-redux'), require('lodash'), require('moment'), require('react-router-dom'), require('@plusscommunities/pluss-core-web'), require('react-bootstrap'), require('react-fontawesome'), require('@babel/runtime/helpers/toConsumableArray'), require('react-router')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/defineProperty', '@babel/runtime/helpers/asyncToGenerator', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass', '@babel/runtime/helpers/assertThisInitialized', '@babel/runtime/helpers/inherits', '@babel/runtime/helpers/possibleConstructorReturn', '@babel/runtime/helpers/getPrototypeOf', '@babel/runtime/regenerator', 'react', 'react-redux', 'lodash', 'moment', 'react-router-dom', '@plusscommunities/pluss-core-web', 'react-bootstrap', 'react-fontawesome', '@babel/runtime/helpers/toConsumableArray', 'react-router'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['@plusscommunities/pluss-circles-web'] = {}, global._defineProperty, global._asyncToGenerator, global._classCallCheck, global._createClass, global._assertThisInitialized, global._inherits, global._possibleConstructorReturn, global._getPrototypeOf, global._regeneratorRuntime, global.React, global.reactRedux, global._, global.moment, global.reactRouterDom, global.PlussCore, global.reactBootstrap, global.FontAwesome, global._toConsumableArray, global.reactRouter));
5
- }(this, (function (exports, _defineProperty, _asyncToGenerator, _classCallCheck, _createClass, _assertThisInitialized, _inherits, _possibleConstructorReturn, _getPrototypeOf, _regeneratorRuntime, React, reactRedux, _, moment, reactRouterDom, PlussCore, reactBootstrap, FontAwesome, _toConsumableArray, reactRouter) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@babel/runtime/helpers/defineProperty'), require('@babel/runtime/helpers/asyncToGenerator'), require('@babel/runtime/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass'), require('@babel/runtime/helpers/assertThisInitialized'), require('@babel/runtime/helpers/inherits'), require('@babel/runtime/helpers/possibleConstructorReturn'), require('@babel/runtime/helpers/getPrototypeOf'), require('@babel/runtime/regenerator'), require('react'), require('react-redux'), require('lodash'), require('moment'), require('react-router-dom'), require('@plusscommunities/pluss-core-web'), require('react-bootstrap'), require('react-fontawesome'), require('@babel/runtime/helpers/toConsumableArray'), require('react-router'), require('@babel/runtime/helpers/slicedToArray'), require('@fortawesome/free-solid-svg-icons')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', '@babel/runtime/helpers/defineProperty', '@babel/runtime/helpers/asyncToGenerator', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass', '@babel/runtime/helpers/assertThisInitialized', '@babel/runtime/helpers/inherits', '@babel/runtime/helpers/possibleConstructorReturn', '@babel/runtime/helpers/getPrototypeOf', '@babel/runtime/regenerator', 'react', 'react-redux', 'lodash', 'moment', 'react-router-dom', '@plusscommunities/pluss-core-web', 'react-bootstrap', 'react-fontawesome', '@babel/runtime/helpers/toConsumableArray', 'react-router', '@babel/runtime/helpers/slicedToArray', '@fortawesome/free-solid-svg-icons'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['@plusscommunities/pluss-circles-web'] = {}, global._defineProperty, global._asyncToGenerator, global._classCallCheck, global._createClass, global._assertThisInitialized, global._inherits, global._possibleConstructorReturn, global._getPrototypeOf, global._regeneratorRuntime, global.React, global.reactRedux, global._, global.moment, global.reactRouterDom, global.PlussCore, global.reactBootstrap, global.FontAwesome, global._toConsumableArray, global.reactRouter, global._slicedToArray, global.freeSolidSvgIcons));
5
+ }(this, (function (exports, _defineProperty, _asyncToGenerator, _classCallCheck, _createClass, _assertThisInitialized, _inherits, _possibleConstructorReturn, _getPrototypeOf, _regeneratorRuntime, React, reactRedux, _, moment, reactRouterDom, PlussCore, reactBootstrap, FontAwesome, _toConsumableArray, reactRouter, _slicedToArray, freeSolidSvgIcons) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -41,6 +41,7 @@
41
41
  var PlussCore__namespace = /*#__PURE__*/_interopNamespace(PlussCore);
42
42
  var FontAwesome__default = /*#__PURE__*/_interopDefaultLegacy(FontAwesome);
43
43
  var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
44
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
44
45
 
45
46
  var values = {
46
47
  featureKey: 'circles',
@@ -175,10 +176,10 @@
175
176
  };
176
177
 
177
178
  var Helper$3 = PlussCore__namespace.Helper,
178
- Session$3 = PlussCore__namespace.Session;
179
+ Session$4 = PlussCore__namespace.Session;
179
180
  var circleActions = {
180
181
  getAll: function getAll(site) {
181
- return Session$3.authedFunction({
182
+ return Session$4.authedFunction({
182
183
  method: 'GET',
183
184
  url: Helper$3.getUrl(values.serviceKey, 'get/all', {
184
185
  site: site
@@ -186,7 +187,7 @@
186
187
  });
187
188
  },
188
189
  getFiles: function getFiles(circleId) {
189
- return Session$3.authedFunction({
190
+ return Session$4.authedFunction({
190
191
  method: 'GET',
191
192
  url: Helper$3.getUrl(values.serviceKey, 'get/files', {
192
193
  circleId: circleId
@@ -194,7 +195,7 @@
194
195
  });
195
196
  },
196
197
  getImages: function getImages(circleId) {
197
- return Session$3.authedFunction({
198
+ return Session$4.authedFunction({
198
199
  method: 'GET',
199
200
  url: Helper$3.getUrl(values.serviceKey, 'get/images', {
200
201
  circleId: circleId
@@ -202,7 +203,7 @@
202
203
  });
203
204
  },
204
205
  add: function add(site, title, image, audience, isPublic) {
205
- return Session$3.authedFunction({
206
+ return Session$4.authedFunction({
206
207
  method: 'POST',
207
208
  url: Helper$3.getUrl(values.serviceKey, 'update/add'),
208
209
  data: {
@@ -215,7 +216,7 @@
215
216
  });
216
217
  },
217
218
  edit: function edit(circleId, title, image, audience, isPublic) {
218
- return Session$3.authedFunction({
219
+ return Session$4.authedFunction({
219
220
  method: 'POST',
220
221
  url: Helper$3.getUrl(values.serviceKey, 'update/edit'),
221
222
  data: {
@@ -228,7 +229,7 @@
228
229
  });
229
230
  },
230
231
  delete: function _delete(circleId) {
231
- return Session$3.authedFunction({
232
+ return Session$4.authedFunction({
232
233
  method: 'POST',
233
234
  url: Helper$3.getUrl(values.serviceKey, 'update/delete'),
234
235
  data: {
@@ -237,7 +238,7 @@
237
238
  });
238
239
  },
239
240
  addAdmin: function addAdmin(circleId, userId) {
240
- return Session$3.authedFunction({
241
+ return Session$4.authedFunction({
241
242
  method: 'POST',
242
243
  url: Helper$3.getUrl(values.serviceKey, 'update/addadmin'),
243
244
  data: {
@@ -247,7 +248,7 @@
247
248
  });
248
249
  },
249
250
  removeAdmin: function removeAdmin(circleId, userId) {
250
- return Session$3.authedFunction({
251
+ return Session$4.authedFunction({
251
252
  method: 'POST',
252
253
  url: Helper$3.getUrl(values.serviceKey, 'update/removeadmin'),
253
254
  data: {
@@ -279,7 +280,7 @@
279
280
  query.limit = limit;
280
281
  }
281
282
 
282
- return _context.abrupt("return", Session$3.authedFunction({
283
+ return _context.abrupt("return", Session$4.authedFunction({
283
284
  method: 'GET',
284
285
  url: Helper$3.getUrl(values.serviceKey, 'getMessages', query)
285
286
  }));
@@ -304,7 +305,7 @@
304
305
  while (1) {
305
306
  switch (_context2.prev = _context2.next) {
306
307
  case 0:
307
- return _context2.abrupt("return", Session$3.authedFunction({
308
+ return _context2.abrupt("return", Session$4.authedFunction({
308
309
  method: 'post',
309
310
  url: Helper$3.getUrl(values.serviceKey, 'sendMessage'),
310
311
  data: {
@@ -329,11 +330,14 @@
329
330
  }()
330
331
  };
331
332
 
333
+ var Apis$1 = PlussCore__namespace.Apis;
334
+ var analyticsActions = Apis$1.analyticsActions;
335
+
332
336
  function _createSuper$7(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$7(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }
333
337
 
334
338
  function _isNativeReflectConstruct$7() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
335
- var Components$3 = PlussCore__namespace.Components,
336
- Session$2 = PlussCore__namespace.Session,
339
+ var Components$4 = PlussCore__namespace.Components,
340
+ Session$3 = PlussCore__namespace.Session,
337
341
  Helper$2 = PlussCore__namespace.Helper;
338
342
 
339
343
  var Circles = /*#__PURE__*/function (_Component) {
@@ -396,13 +400,13 @@
396
400
 
397
401
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "canAddNew", function () {
398
402
  var auth = _this.props.auth;
399
- return Session$2.validateAccess(auth.site, values.permission, auth);
403
+ return Session$3.validateAccess(auth.site, values.permission, auth);
400
404
  });
401
405
 
402
406
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onAddNew", function () {
403
407
  var auth = _this.props.auth;
404
408
 
405
- if (Session$2.validateAccess(auth.site, values.permission, auth)) {
409
+ if (Session$3.validateAccess(auth.site, values.permission, auth)) {
406
410
  _this.props.history.push("/".concat(values.featureKey, "/add"));
407
411
  }
408
412
  });
@@ -559,7 +563,7 @@
559
563
  value: function validateCircleAdmin(circle, onlyCreator) {
560
564
  var _this4 = this;
561
565
 
562
- if (Session$2.validateAccess(this.props.auth.site, values.permission, this.props.auth)) {
566
+ if (Session$3.validateAccess(this.props.auth.site, values.permission, this.props.auth)) {
563
567
  return true;
564
568
  }
565
569
 
@@ -583,7 +587,7 @@
583
587
  }, /*#__PURE__*/React__default['default'].createElement(reactRouterDom.Link, {
584
588
  to: "/".concat(values.featureKey, "/").concat(values.entityKey, "/").concat(circle.Id)
585
589
  }, this.getTitle(circle))), /*#__PURE__*/React__default['default'].createElement("td", null, moment__default['default'](circle.Changed).local().format('D MMM YYYY')), /*#__PURE__*/React__default['default'].createElement("td", null, circle.Audience.map(function (user) {
586
- return /*#__PURE__*/React__default['default'].createElement(Components$3.ProfilePic, {
590
+ return /*#__PURE__*/React__default['default'].createElement(Components$4.ProfilePic, {
587
591
  size: 30,
588
592
  image: user.profilePic,
589
593
  hoverText: user.displayName,
@@ -623,24 +627,24 @@
623
627
  }, {
624
628
  key: "renderFilters",
625
629
  value: function renderFilters() {
626
- var userFilter = /*#__PURE__*/React__default['default'].createElement(Components$3.Tag, {
630
+ var userFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
627
631
  className: "marginRight-10",
628
632
  onClick: this.openUserFilter,
629
633
  text: "User"
630
634
  });
631
- var typeFilter = /*#__PURE__*/React__default['default'].createElement(Components$3.Tag, {
635
+ var typeFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
632
636
  className: "marginRight-10",
633
637
  onClick: this.openTypeFilter,
634
638
  text: "Type"
635
639
  });
636
640
 
637
641
  if (this.state.selectedUserFilter) {
638
- userFilter = /*#__PURE__*/React__default['default'].createElement(Components$3.Tag, {
642
+ userFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
639
643
  className: "marginRight-10",
640
644
  onClick: this.openUserFilter,
641
645
  rightIcon: "close",
642
646
  rightClick: this.removeUserFilter
643
- }, /*#__PURE__*/React__default['default'].createElement(Components$3.UserListing, {
647
+ }, /*#__PURE__*/React__default['default'].createElement(Components$4.UserListing, {
644
648
  size: 15,
645
649
  user: this.state.selectedUserFilter,
646
650
  textClass: "tag_text"
@@ -648,7 +652,7 @@
648
652
  }
649
653
 
650
654
  if (this.state.selectedTypeFilter) {
651
- typeFilter = /*#__PURE__*/React__default['default'].createElement(Components$3.Tag, {
655
+ typeFilter = /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
652
656
  className: "marginRight-10",
653
657
  onClick: this.openTypeFilter,
654
658
  rightIcon: "close",
@@ -659,7 +663,7 @@
659
663
 
660
664
  return /*#__PURE__*/React__default['default'].createElement("div", {
661
665
  className: "flex flex-center marginTop-20"
662
- }, /*#__PURE__*/React__default['default'].createElement(Components$3.Text, {
666
+ }, /*#__PURE__*/React__default['default'].createElement(Components$4.Text, {
663
667
  type: "h5",
664
668
  className: "marginRight-20"
665
669
  }, "Filter by"), userFilter, typeFilter);
@@ -673,14 +677,14 @@
673
677
  return null;
674
678
  }
675
679
 
676
- return /*#__PURE__*/React__default['default'].createElement(Components$3.Popup, {
680
+ return /*#__PURE__*/React__default['default'].createElement(Components$4.Popup, {
677
681
  title: "Select User",
678
682
  maxWidth: 600,
679
683
  minWidth: 400,
680
684
  minHeight: 400,
681
685
  hasPadding: true,
682
686
  onClose: this.closeUserFilter
683
- }, /*#__PURE__*/React__default['default'].createElement(Components$3.GenericInput, {
687
+ }, /*#__PURE__*/React__default['default'].createElement(Components$4.GenericInput, {
684
688
  id: "userSearch",
685
689
  type: "text",
686
690
  label: "Search",
@@ -691,7 +695,7 @@
691
695
  },
692
696
  alwaysShowLabel: true
693
697
  }), this.getUsers().map(function (user) {
694
- return /*#__PURE__*/React__default['default'].createElement(Components$3.UserListing, {
698
+ return /*#__PURE__*/React__default['default'].createElement(Components$4.UserListing, {
695
699
  key: user.userId,
696
700
  user: user,
697
701
  onClick: function onClick() {
@@ -709,19 +713,19 @@
709
713
  return null;
710
714
  }
711
715
 
712
- return /*#__PURE__*/React__default['default'].createElement(Components$3.Popup, {
716
+ return /*#__PURE__*/React__default['default'].createElement(Components$4.Popup, {
713
717
  title: "Select Type",
714
718
  maxWidth: 600,
715
719
  minWidth: 400,
716
720
  hasPadding: true,
717
721
  onClose: this.closeTypeFilter
718
- }, /*#__PURE__*/React__default['default'].createElement(Components$3.Tag, {
722
+ }, /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
719
723
  onClick: function onClick() {
720
724
  _this7.selectTypeFilter('circle');
721
725
  },
722
726
  text: ___default['default'].capitalize(values.entityName),
723
727
  className: "marginRight-10"
724
- }), /*#__PURE__*/React__default['default'].createElement(Components$3.Tag, {
728
+ }), /*#__PURE__*/React__default['default'].createElement(Components$4.Tag, {
725
729
  onClick: function onClick() {
726
730
  _this7.selectTypeFilter('private');
727
731
  },
@@ -733,12 +737,12 @@
733
737
  value: function render() {
734
738
  var _this8 = this;
735
739
 
736
- return /*#__PURE__*/React__default['default'].createElement("div", null, this.renderTypeFilterPopup(), this.renderUserFilterPopup(), /*#__PURE__*/React__default['default'].createElement(Components$3.Header, null, this.canAddNew() && /*#__PURE__*/React__default['default'].createElement(Components$3.AddButton, {
740
+ return /*#__PURE__*/React__default['default'].createElement("div", null, this.renderTypeFilterPopup(), this.renderUserFilterPopup(), /*#__PURE__*/React__default['default'].createElement(Components$4.Header, null, this.canAddNew() && /*#__PURE__*/React__default['default'].createElement(Components$4.AddButton, {
737
741
  onClick: this.onAddNew,
738
742
  text: "NEW ".concat(___default['default'].upperCase(values.entityName))
739
743
  })), /*#__PURE__*/React__default['default'].createElement("div", {
740
744
  className: "pageContainer paddingVertical-20 paddingHorizontal-40"
741
- }, /*#__PURE__*/React__default['default'].createElement(Components$3.Text, {
745
+ }, /*#__PURE__*/React__default['default'].createElement(Components$4.Text, {
742
746
  type: "h1",
743
747
  className: ""
744
748
  }, values.textFeatureTitle), this.renderFilters(), /*#__PURE__*/React__default['default'].createElement(reactBootstrap.Table, {
@@ -765,7 +769,7 @@
765
769
  return Circles;
766
770
  }(React.Component);
767
771
 
768
- var mapStateToProps$2 = function mapStateToProps(state) {
772
+ var mapStateToProps$3 = function mapStateToProps(state) {
769
773
  var circles = state[values.reducerKey].circles;
770
774
  var auth = state.auth;
771
775
  return {
@@ -775,7 +779,7 @@
775
779
  };
776
780
  };
777
781
 
778
- var Circles$1 = reactRedux.connect(mapStateToProps$2, {
782
+ var Circles$1 = reactRedux.connect(mapStateToProps$3, {
779
783
  circlesLoaded: circlesLoaded,
780
784
  circleRemoved: circleRemoved
781
785
  })(Circles);
@@ -784,8 +788,8 @@
784
788
 
785
789
  function _isNativeReflectConstruct$6() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
786
790
  var Actions$1 = PlussCore__namespace.Actions,
787
- Components$2 = PlussCore__namespace.Components,
788
- Session$1 = PlussCore__namespace.Session,
791
+ Components$3 = PlussCore__namespace.Components,
792
+ Session$2 = PlussCore__namespace.Session,
789
793
  Apis = PlussCore__namespace.Apis,
790
794
  Colours$2 = PlussCore__namespace.Colours,
791
795
  Helper$1 = PlussCore__namespace.Helper;
@@ -1061,7 +1065,7 @@
1061
1065
  _createClass__default['default'](AddCircle, [{
1062
1066
  key: "componentDidMount",
1063
1067
  value: function componentDidMount() {
1064
- Session$1.checkLoggedIn(this, this.props.auth);
1068
+ Session$2.checkLoggedIn(this, this.props.auth);
1065
1069
  this.props.addRecentlyCreated(values.entityKey);
1066
1070
  this.getUsers();
1067
1071
  this.checkGetCircle();
@@ -1107,7 +1111,7 @@
1107
1111
  key: "renderSuccess",
1108
1112
  value: function renderSuccess() {
1109
1113
  if (!this.state.success) return null;
1110
- return /*#__PURE__*/React__default['default'].createElement(Components$2.SuccessPopup, {
1114
+ return /*#__PURE__*/React__default['default'].createElement(Components$3.SuccessPopup, {
1111
1115
  text: "".concat(___default['default'].capitalize(values.entityName), " has been ").concat(this.state.circleId == null ? 'added' : 'edited'),
1112
1116
  buttons: [{
1113
1117
  type: 'outlined',
@@ -1124,12 +1128,12 @@
1124
1128
  var _this4 = this;
1125
1129
 
1126
1130
  if (this.state.updating) {
1127
- return /*#__PURE__*/React__default['default'].createElement(Components$2.Button, {
1131
+ return /*#__PURE__*/React__default['default'].createElement(Components$3.Button, {
1128
1132
  buttonType: "secondary"
1129
1133
  }, "Saving...");
1130
1134
  }
1131
1135
 
1132
- return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components$2.Button, {
1136
+ return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components$3.Button, {
1133
1137
  inline: true,
1134
1138
  buttonType: "tertiary",
1135
1139
  onClick: function onClick() {
@@ -1139,7 +1143,7 @@
1139
1143
  style: {
1140
1144
  marginRight: 16
1141
1145
  }
1142
- }, "Cancel"), /*#__PURE__*/React__default['default'].createElement(Components$2.Button, {
1146
+ }, "Cancel"), /*#__PURE__*/React__default['default'].createElement(Components$3.Button, {
1143
1147
  inline: true,
1144
1148
  buttonType: "primary",
1145
1149
  onClick: this.onSave,
@@ -1153,7 +1157,7 @@
1153
1157
 
1154
1158
  return /*#__PURE__*/React__default['default'].createElement("div", {
1155
1159
  className: "optionsContent_bottom"
1156
- }, /*#__PURE__*/React__default['default'].createElement(Components$2.RadioButton, {
1160
+ }, /*#__PURE__*/React__default['default'].createElement(Components$3.RadioButton, {
1157
1161
  label: "Do you want to make this ".concat(values.entityName, " a public ").concat(values.entityName, "?"),
1158
1162
  isActive: this.state.isPublic,
1159
1163
  options: [{
@@ -1208,7 +1212,7 @@
1208
1212
  return null;
1209
1213
  }
1210
1214
 
1211
- return /*#__PURE__*/React__default['default'].createElement(Components$2.OptionsSection, {
1215
+ return /*#__PURE__*/React__default['default'].createElement(Components$3.OptionsSection, {
1212
1216
  options: options,
1213
1217
  selected: this.state.selectedOption,
1214
1218
  selectOption: this.selectOption
@@ -1221,12 +1225,12 @@
1221
1225
 
1222
1226
  return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("div", {
1223
1227
  className: "padding-60 paddingVertical-40 bottomDivideBorder"
1224
- }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1228
+ }, /*#__PURE__*/React__default['default'].createElement(Components$3.Text, {
1225
1229
  type: "formTitleLarge",
1226
1230
  className: "marginBottom-24"
1227
1231
  }, this.state.circleId == null ? 'New' : 'Edit', " ", ___default['default'].capitalize(values.entityName)), /*#__PURE__*/React__default['default'].createElement("div", {
1228
1232
  className: "flex flex-reverse"
1229
- }, /*#__PURE__*/React__default['default'].createElement(Components$2.ImageInput, {
1233
+ }, /*#__PURE__*/React__default['default'].createElement(Components$3.ImageInput, {
1230
1234
  ref: function ref(_ref2) {
1231
1235
  _this6.imageInput = _ref2;
1232
1236
  },
@@ -1238,7 +1242,7 @@
1238
1242
  }
1239
1243
  }), /*#__PURE__*/React__default['default'].createElement("div", {
1240
1244
  className: "flex-1"
1241
- }, /*#__PURE__*/React__default['default'].createElement(Components$2.GenericInput, {
1245
+ }, /*#__PURE__*/React__default['default'].createElement(Components$3.GenericInput, {
1242
1246
  id: "title",
1243
1247
  type: "text",
1244
1248
  label: "Title",
@@ -1257,16 +1261,16 @@
1257
1261
  }
1258
1262
  })))), /*#__PURE__*/React__default['default'].createElement("div", {
1259
1263
  className: "padding-60 paddingVertical-40 bottomDivideBorder"
1260
- }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1264
+ }, /*#__PURE__*/React__default['default'].createElement(Components$3.Text, {
1261
1265
  type: "formTitleMedium"
1262
1266
  }, "Members"), /*#__PURE__*/React__default['default'].createElement("div", {
1263
1267
  className: "flex marginTop-20"
1264
1268
  }, /*#__PURE__*/React__default['default'].createElement("div", {
1265
1269
  className: "flex-1"
1266
- }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1270
+ }, /*#__PURE__*/React__default['default'].createElement(Components$3.Text, {
1267
1271
  type: "formTitleSmall",
1268
1272
  className: "marginBottom-10"
1269
- }, "Select Users"), /*#__PURE__*/React__default['default'].createElement(Components$2.GenericInput, {
1273
+ }, "Select Users"), /*#__PURE__*/React__default['default'].createElement(Components$3.GenericInput, {
1270
1274
  id: "userSearch",
1271
1275
  type: "text",
1272
1276
  label: "Search",
@@ -1277,7 +1281,7 @@
1277
1281
  },
1278
1282
  alwaysShowLabel: true
1279
1283
  }), this.getShownUsers().map(function (user) {
1280
- return /*#__PURE__*/React__default['default'].createElement(Components$2.UserListing, {
1284
+ return /*#__PURE__*/React__default['default'].createElement(Components$3.UserListing, {
1281
1285
  key: user.userId,
1282
1286
  user: user,
1283
1287
  onClick: function onClick() {
@@ -1286,23 +1290,23 @@
1286
1290
  });
1287
1291
  })), /*#__PURE__*/React__default['default'].createElement("div", {
1288
1292
  className: "flex-1"
1289
- }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1293
+ }, /*#__PURE__*/React__default['default'].createElement(Components$3.Text, {
1290
1294
  type: "formTitleSmall",
1291
1295
  className: "marginBottom-10"
1292
1296
  }, "Selected"), this.state.selectedUsers.map(function (user) {
1293
- return /*#__PURE__*/React__default['default'].createElement(Components$2.UserListing, {
1297
+ return /*#__PURE__*/React__default['default'].createElement(Components$3.UserListing, {
1294
1298
  key: user.userId,
1295
1299
  user: user,
1296
1300
  rightContent: /*#__PURE__*/React__default['default'].createElement("div", {
1297
1301
  className: "flex flex-reverse flex-center"
1298
- }, /*#__PURE__*/React__default['default'].createElement(Components$2.SVGIcon, {
1302
+ }, /*#__PURE__*/React__default['default'].createElement(Components$3.SVGIcon, {
1299
1303
  className: "removeIcon marginLeft-8",
1300
1304
  icon: "close",
1301
1305
  colour: Colours$2.COLOUR_DUSK,
1302
1306
  onClick: function onClick() {
1303
1307
  _this6.onSelectUser(user);
1304
1308
  }
1305
- }), /*#__PURE__*/React__default['default'].createElement(Components$2.StatusButton, {
1309
+ }), /*#__PURE__*/React__default['default'].createElement(Components$3.StatusButton, {
1306
1310
  isActive: user.isAdmin,
1307
1311
  activate: function activate() {
1308
1312
  _this6.addAdmin(user);
@@ -1322,18 +1326,18 @@
1322
1326
  key: "render",
1323
1327
  value: function render() {
1324
1328
  var success = this.state.success;
1325
- return /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPage, null, /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPageContents, {
1329
+ return /*#__PURE__*/React__default['default'].createElement(Components$3.OverlayPage, null, /*#__PURE__*/React__default['default'].createElement(Components$3.OverlayPageContents, {
1326
1330
  noBottomButtons: success
1327
- }, /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPageSection, {
1331
+ }, /*#__PURE__*/React__default['default'].createElement(Components$3.OverlayPageSection, {
1328
1332
  className: "pageSectionWrapper--newPopup"
1329
- }, /*#__PURE__*/React__default['default'].createElement("div", null, this.renderSuccess(), !success && this.renderMain()))), /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPageBottomButtons, null, this.renderSubmit()));
1333
+ }, /*#__PURE__*/React__default['default'].createElement("div", null, this.renderSuccess(), !success && this.renderMain()))), /*#__PURE__*/React__default['default'].createElement(Components$3.OverlayPageBottomButtons, null, this.renderSubmit()));
1330
1334
  }
1331
1335
  }]);
1332
1336
 
1333
1337
  return AddCircle;
1334
1338
  }(React.Component);
1335
1339
 
1336
- var mapStateToProps$1 = function mapStateToProps(state) {
1340
+ var mapStateToProps$2 = function mapStateToProps(state) {
1337
1341
  var circles = state[values.reducerKey].circles;
1338
1342
  var auth = state.auth;
1339
1343
  return {
@@ -1343,7 +1347,7 @@
1343
1347
  };
1344
1348
  };
1345
1349
 
1346
- var AddCircle$1 = reactRedux.connect(mapStateToProps$1, {
1350
+ var AddCircle$1 = reactRedux.connect(mapStateToProps$2, {
1347
1351
  circlesLoaded: circlesLoaded,
1348
1352
  circleUpdated: circleUpdated,
1349
1353
  addRecentlyCreated: Actions$1.addRecentlyCreated
@@ -1352,10 +1356,10 @@
1352
1356
  function _createSuper$5(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$5(); return function _createSuperInternal() { var Super = _getPrototypeOf__default['default'](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default['default'](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default['default'](this, result); }; }
1353
1357
 
1354
1358
  function _isNativeReflectConstruct$5() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
1355
- var Components$1 = PlussCore__namespace.Components,
1359
+ var Components$2 = PlussCore__namespace.Components,
1356
1360
  Helper = PlussCore__namespace.Helper,
1357
1361
  Actions = PlussCore__namespace.Actions,
1358
- Session = PlussCore__namespace.Session,
1362
+ Session$1 = PlussCore__namespace.Session,
1359
1363
  Colours$1 = PlussCore__namespace.Colours;
1360
1364
 
1361
1365
  var Circle = /*#__PURE__*/function (_Component) {
@@ -1776,7 +1780,7 @@
1776
1780
  value: function validateCircleAdmin() {
1777
1781
  var _this4 = this;
1778
1782
 
1779
- if (Session.validateAccess(this.props.auth.site, values.permission, this.props.auth)) {
1783
+ if (Session$1.validateAccess(this.props.auth.site, values.permission, this.props.auth)) {
1780
1784
  return true;
1781
1785
  }
1782
1786
 
@@ -1790,7 +1794,7 @@
1790
1794
  var _this5 = this;
1791
1795
 
1792
1796
  if (!this.isMember()) {
1793
- return /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
1797
+ return /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1794
1798
  type: "highlightedHelp",
1795
1799
  className: "chat_noMessage"
1796
1800
  }, "You can't send a message to this ", ___default['default'].capitalize(values.entityName), " as you are not a member.");
@@ -1804,7 +1808,7 @@
1804
1808
  onClick: this.sendMessage
1805
1809
  }), /*#__PURE__*/React__default['default'].createElement("div", {
1806
1810
  className: "chat_inputContainer"
1807
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
1811
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.GenericInput, {
1808
1812
  id: "messageInput",
1809
1813
  type: "textarea",
1810
1814
  className: "chat_input",
@@ -1831,7 +1835,7 @@
1831
1835
  style: {
1832
1836
  display: this.state.imageInputShowing ? 'block' : 'none'
1833
1837
  }
1834
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.ImageInput, {
1838
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.ImageInput, {
1835
1839
  ref: function ref(_ref4) {
1836
1840
  _this5.imageInput = _ref4;
1837
1841
  },
@@ -1846,7 +1850,7 @@
1846
1850
  style: {
1847
1851
  display: this.state.fileInputShowing ? 'block' : 'none'
1848
1852
  }
1849
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.FileInput, {
1853
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.FileInput, {
1850
1854
  ref: function ref(_ref5) {
1851
1855
  _this5.fileInput = _ref5;
1852
1856
  },
@@ -1867,7 +1871,7 @@
1867
1871
  return /*#__PURE__*/React__default['default'].createElement("div", {
1868
1872
  key: m._id,
1869
1873
  className: "message"
1870
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
1874
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1871
1875
  type: "h5",
1872
1876
  className: "message_system"
1873
1877
  }, m.text));
@@ -1877,28 +1881,28 @@
1877
1881
  return /*#__PURE__*/React__default['default'].createElement("div", {
1878
1882
  key: m._id,
1879
1883
  className: "message".concat(isSelf ? ' message-self' : '').concat(m.uploading ? ' message-uploading' : '')
1880
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
1884
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1881
1885
  type: "h5-noUpper",
1882
1886
  className: "message_time"
1883
1887
  }, moment__default['default'].utc(m.createdAt).local().format('D MMM YYYY • h:mma')), /*#__PURE__*/React__default['default'].createElement("div", {
1884
1888
  className: "message_inner"
1885
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.ProfilePic, {
1889
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.ProfilePic, {
1886
1890
  size: 40,
1887
1891
  image: m.user.avatar,
1888
1892
  className: "message_profilePic"
1889
1893
  }), /*#__PURE__*/React__default['default'].createElement("div", {
1890
1894
  className: "message_bubbleContainer"
1891
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
1895
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1892
1896
  type: "body",
1893
1897
  className: "message_name"
1894
1898
  }, m.user.name, m.replyingTo ? " replied to ".concat(m.replyingTo.user.name) : ''), m.replyingTo && /*#__PURE__*/React__default['default'].createElement("div", {
1895
1899
  className: "message_replyBubble"
1896
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
1900
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1897
1901
  type: "body",
1898
1902
  className: "message_text"
1899
1903
  }, Helper.toParagraphed((m.replyingTo.text || '').substr(0, 100)))), /*#__PURE__*/React__default['default'].createElement("div", {
1900
1904
  className: "message_bubble"
1901
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
1905
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1902
1906
  type: "body",
1903
1907
  className: "message_text"
1904
1908
  }, Helper.toParagraphed(m.text)), /*#__PURE__*/React__default['default'].createElement("div", null, (m.image || []).map(function (url, i) {
@@ -1912,14 +1916,14 @@
1912
1916
  alt: Helper.getFileName(url)
1913
1917
  }));
1914
1918
  })), /*#__PURE__*/React__default['default'].createElement("div", null, (m.attachments || []).map(function (url, i) {
1915
- return /*#__PURE__*/React__default['default'].createElement(Components$1.Attachment, {
1919
+ return /*#__PURE__*/React__default['default'].createElement(Components$2.Attachment, {
1916
1920
  source: url,
1917
1921
  key: i,
1918
1922
  white: isSelf
1919
1923
  });
1920
1924
  }))), /*#__PURE__*/React__default['default'].createElement("div", {
1921
1925
  className: "message_reply"
1922
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
1926
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1923
1927
  type: "button",
1924
1928
  onClick: function onClick() {
1925
1929
  _this6.onReply(m);
@@ -1968,12 +1972,12 @@
1968
1972
  onClick: this.toggleMembers
1969
1973
  }), /*#__PURE__*/React__default['default'].createElement("div", {
1970
1974
  className: "flex-1"
1971
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
1975
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1972
1976
  type: "formTitleMedium"
1973
1977
  }, "Member", Helper.getPluralS(members.length), " (", members.length, ")"))), this.state.membersExpanded && /*#__PURE__*/React__default['default'].createElement("div", {
1974
1978
  className: "paddingTop-8"
1975
1979
  }, members.map(function (user) {
1976
- return /*#__PURE__*/React__default['default'].createElement(Components$1.UserListing, {
1980
+ return /*#__PURE__*/React__default['default'].createElement(Components$2.UserListing, {
1977
1981
  user: user
1978
1982
  });
1979
1983
  }))), /*#__PURE__*/React__default['default'].createElement("div", {
@@ -1986,7 +1990,7 @@
1986
1990
  onClick: this.toggleImages
1987
1991
  }), /*#__PURE__*/React__default['default'].createElement("div", {
1988
1992
  className: "flex-1"
1989
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
1993
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
1990
1994
  type: "formTitleMedium"
1991
1995
  }, "Image", Helper.getPluralS(this.state.images.length), " (", this.state.images.length, ")"))), this.state.imagesExpanded && /*#__PURE__*/React__default['default'].createElement("div", {
1992
1996
  className: "paddingTop-8"
@@ -2009,12 +2013,12 @@
2009
2013
  onClick: this.toggleFiles
2010
2014
  }), /*#__PURE__*/React__default['default'].createElement("div", {
2011
2015
  className: "flex-1"
2012
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
2016
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2013
2017
  type: "formTitleMedium"
2014
2018
  }, "File", Helper.getPluralS(this.state.files.length), " (", this.state.files.length, ")"))), this.state.filesExpanded && /*#__PURE__*/React__default['default'].createElement("div", {
2015
2019
  className: "paddingTop-8"
2016
2020
  }, this.state.files.map(function (file, i) {
2017
- return /*#__PURE__*/React__default['default'].createElement(Components$1.Attachment, {
2021
+ return /*#__PURE__*/React__default['default'].createElement(Components$2.Attachment, {
2018
2022
  source: file.Url,
2019
2023
  key: i
2020
2024
  });
@@ -2034,13 +2038,13 @@
2034
2038
  className: "chat_replyTo"
2035
2039
  }, /*#__PURE__*/React__default['default'].createElement("div", {
2036
2040
  className: "chat_replyTo_container"
2037
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
2041
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2038
2042
  type: "h5"
2039
- }, "Replying to ", m && m.user && !___default['default'].isEmpty(m.user.displayName) ? m.user.displayName : ''), m && !___default['default'].isEmpty(m.text) && /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
2043
+ }, "Replying to ", m && m.user && !___default['default'].isEmpty(m.user.displayName) ? m.user.displayName : ''), m && !___default['default'].isEmpty(m.text) && /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2040
2044
  type: "body"
2041
2045
  }, m.text.substr(0, 50))), /*#__PURE__*/React__default['default'].createElement("div", {
2042
2046
  className: "chat_replyTo_remove"
2043
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.SVGIcon, {
2047
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.SVGIcon, {
2044
2048
  className: "removeIcon",
2045
2049
  icon: "close",
2046
2050
  onClick: function onClick() {
@@ -2054,13 +2058,13 @@
2054
2058
  value: function render() {
2055
2059
  var _this8 = this;
2056
2060
 
2057
- return /*#__PURE__*/React__default['default'].createElement(Components$1.OverlayPage, {
2061
+ return /*#__PURE__*/React__default['default'].createElement(Components$2.OverlayPage, {
2058
2062
  fullPage: true,
2059
2063
  fullPageStyle: {
2060
2064
  display: 'flex',
2061
2065
  flexDirection: 'column'
2062
2066
  }
2063
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Header, {
2067
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Header, {
2064
2068
  rightContent: this.renderHeaderRight()
2065
2069
  }, /*#__PURE__*/React__default['default'].createElement(FontAwesome__default['default'], {
2066
2070
  className: "header_back",
@@ -2068,21 +2072,21 @@
2068
2072
  onClick: function onClick() {
2069
2073
  window.history.back();
2070
2074
  }
2071
- }), /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
2075
+ }), /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2072
2076
  type: "formTitleLarge",
2073
2077
  className: "header_title"
2074
2078
  }, this.getTitle())), /*#__PURE__*/React__default['default'].createElement("div", {
2075
2079
  className: "flex flex-1 flex-reverse overflow-hidden"
2076
2080
  }, this.renderSideBar(), /*#__PURE__*/React__default['default'].createElement("div", {
2077
2081
  className: "flex-1 flex flex-column overflow-hidden"
2078
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Header, {
2082
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Header, {
2079
2083
  onlyContainer: true
2080
2084
  }, /*#__PURE__*/React__default['default'].createElement("div", {
2081
2085
  className: "flex flex-center flex-1 paddingHorizontal-16"
2082
- }, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
2086
+ }, /*#__PURE__*/React__default['default'].createElement(Components$2.Text, {
2083
2087
  type: "h5",
2084
2088
  className: "marginRight-20"
2085
- }, "Filter by"), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components$1.GenericInput, {
2089
+ }, "Filter by"), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components$2.GenericInput, {
2086
2090
  id: "messageDate",
2087
2091
  label: "Date",
2088
2092
  alwaysShowLabel: true,
@@ -2093,13 +2097,13 @@
2093
2097
  showMessageDate: !_this8.state.showMessageDate
2094
2098
  });
2095
2099
  },
2096
- rightContent: !___default['default'].isEmpty(this.state.messageDate) && /*#__PURE__*/React__default['default'].createElement(Components$1.SVGIcon, {
2100
+ rightContent: !___default['default'].isEmpty(this.state.messageDate) && /*#__PURE__*/React__default['default'].createElement(Components$2.SVGIcon, {
2097
2101
  colour: Colours$1.COLOUR_DUSK_LIGHT,
2098
2102
  icon: "close",
2099
2103
  className: "timepicker_clear",
2100
2104
  onClick: this.onClearDate
2101
2105
  })
2102
- }), this.state.showMessageDate && /*#__PURE__*/React__default['default'].createElement(Components$1.DatePicker, {
2106
+ }), this.state.showMessageDate && /*#__PURE__*/React__default['default'].createElement(Components$2.DatePicker, {
2103
2107
  hideTop: true,
2104
2108
  selectedDate: this.state.messageDate,
2105
2109
  selectDate: this.handleMessageDateChange
@@ -2121,7 +2125,7 @@
2121
2125
  return Circle;
2122
2126
  }(React.Component);
2123
2127
 
2124
- var mapStateToProps = function mapStateToProps(state) {
2128
+ var mapStateToProps$1 = function mapStateToProps(state) {
2125
2129
  var circles = state[values.reducerKey].circles;
2126
2130
  var auth = state.auth;
2127
2131
  return {
@@ -2131,11 +2135,259 @@
2131
2135
  };
2132
2136
  };
2133
2137
 
2134
- var Circle$1 = reactRedux.connect(mapStateToProps, {
2138
+ var Circle$1 = reactRedux.connect(mapStateToProps$1, {
2135
2139
  circlesLoaded: circlesLoaded,
2136
2140
  setNavData: Actions.setNavData
2137
2141
  })(Circle);
2138
2142
 
2143
+ var Analytics$1 = PlussCore__namespace.Analytics,
2144
+ Session = PlussCore__namespace.Session,
2145
+ Components$1 = PlussCore__namespace.Components;
2146
+
2147
+ var getInitialState = function getInitialState() {
2148
+ return {
2149
+ isLoading: true,
2150
+ messages: 0,
2151
+ prevMessages: 0,
2152
+ staffMessages: 0,
2153
+ prevStaffMessages: 0,
2154
+ residentMessages: 0,
2155
+ prevResidentMessages: 0,
2156
+ groupMessages: 0,
2157
+ prevGroupMessages: 0,
2158
+ privateMessages: 0,
2159
+ prevPrivateMessages: 0,
2160
+ activeGroups: 0,
2161
+ prevActiveGroups: 0
2162
+ };
2163
+ }; // AnalyticsHub Component
2164
+
2165
+
2166
+ var AnalyticsHub = function AnalyticsHub(_ref) {
2167
+ var startTime = _ref.startTime,
2168
+ endTime = _ref.endTime,
2169
+ auth = _ref.auth,
2170
+ prevText = _ref.prevText,
2171
+ dayCount = _ref.dayCount,
2172
+ strings = _ref.strings;
2173
+
2174
+ var _useState = React.useState(getInitialState()),
2175
+ _useState2 = _slicedToArray__default['default'](_useState, 2),
2176
+ analyticsData = _useState2[0],
2177
+ setAnalyticsData = _useState2[1];
2178
+
2179
+ var _useState3 = React.useState(false),
2180
+ _useState4 = _slicedToArray__default['default'](_useState3, 2),
2181
+ isExportOpen = _useState4[0],
2182
+ setIsExportOpen = _useState4[1];
2183
+
2184
+ var hasAccess = Session.validateAccess(auth.site, values.permissionNewsletter, auth);
2185
+
2186
+ if (!hasAccess) {
2187
+ return null;
2188
+ }
2189
+
2190
+ var featureTitle = function (key) {
2191
+ if (!strings || !strings.sideNav || !strings.sideNav[key]) {
2192
+ return values.textFeatureTitle;
2193
+ }
2194
+
2195
+ return strings.sideNav[key];
2196
+ }();
2197
+
2198
+ var exportColumns = [{
2199
+ label: 'Select All',
2200
+ key: ''
2201
+ }, {
2202
+ label: 'Start Date',
2203
+ key: 'startDate'
2204
+ }, {
2205
+ label: 'End Date',
2206
+ key: 'endDate'
2207
+ }, {
2208
+ label: 'Messages',
2209
+ key: 'messages'
2210
+ }, {
2211
+ label: 'Messages by Staff',
2212
+ key: 'staffMessages'
2213
+ }, {
2214
+ label: 'Messages by Primary Users',
2215
+ key: 'residentMessages'
2216
+ }, {
2217
+ label: 'Group Messages',
2218
+ key: 'groupMessages'
2219
+ }, {
2220
+ label: 'Private Messages',
2221
+ key: 'privateMessages'
2222
+ }, {
2223
+ label: 'Groups with Messages',
2224
+ key: 'activeGroups'
2225
+ }];
2226
+ React.useEffect(function () {
2227
+ getData();
2228
+ }, [startTime, endTime]);
2229
+
2230
+ var getData = /*#__PURE__*/function () {
2231
+ var _ref2 = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
2232
+ var timeDifference, _yield$Promise$all, _yield$Promise$all2, currentStatsResponse, prevStatsResponse, data;
2233
+
2234
+ return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
2235
+ while (1) {
2236
+ switch (_context.prev = _context.next) {
2237
+ case 0:
2238
+ setAnalyticsData(getInitialState()); // Load analytics data here using startTime and endTime
2239
+
2240
+ timeDifference = endTime - startTime;
2241
+ _context.next = 4;
2242
+ return Promise.all([analyticsActions.getAggregateEntityStats(auth.site, values.entityKey, startTime, endTime, true), analyticsActions.getAggregateEntityStats(auth.site, values.entityKey, startTime - timeDifference, startTime, true)]);
2243
+
2244
+ case 4:
2245
+ _yield$Promise$all = _context.sent;
2246
+ _yield$Promise$all2 = _slicedToArray__default['default'](_yield$Promise$all, 2);
2247
+ currentStatsResponse = _yield$Promise$all2[0];
2248
+ prevStatsResponse = _yield$Promise$all2[1];
2249
+ data = {
2250
+ messages: Analytics$1.countActivities(currentStatsResponse.data, 'Message', 'total'),
2251
+ prevMessages: Analytics$1.countActivities(prevStatsResponse.data, 'Message', 'total'),
2252
+ staffMessages: Analytics$1.countActivities(currentStatsResponse.data, 'StaffMessage', 'total'),
2253
+ prevStaffMessages: Analytics$1.countActivities(prevStatsResponse.data, 'StaffMessage', 'total'),
2254
+ residentMessages: Analytics$1.countActivities(currentStatsResponse.data, 'ResidentMessage', 'total'),
2255
+ prevResidentMessages: Analytics$1.countActivities(prevStatsResponse.data, 'ResidentMessage', 'total'),
2256
+ groupMessages: Analytics$1.countActivities(currentStatsResponse.data, 'GroupMessage', 'total'),
2257
+ prevGroupMessages: Analytics$1.countActivities(prevStatsResponse.data, 'GroupMessage', 'total'),
2258
+ privateMessages: Analytics$1.countActivities(currentStatsResponse.data, 'PrivateMessage', 'total'),
2259
+ prevPrivateMessages: Analytics$1.countActivities(prevStatsResponse.data, 'PrivateMessage', 'total'),
2260
+ activeGroups: Analytics$1.countActivities(currentStatsResponse.data, 'GroupMessage', 'unique'),
2261
+ prevActiveGroups: Analytics$1.countActivities(prevStatsResponse.data, 'GroupMessage', 'unique'),
2262
+ // uniquePageView: Analytics.countActivities(currentStatsResponse.data, 'UniquePageView', 'uniquearray'),
2263
+ // prevUniquePageView: Analytics.countActivities(prevStatsResponse.data, 'UniquePageView', 'uniquearray'),
2264
+ isLoading: false
2265
+ };
2266
+ setAnalyticsData(data);
2267
+
2268
+ case 10:
2269
+ case "end":
2270
+ return _context.stop();
2271
+ }
2272
+ }
2273
+ }, _callee);
2274
+ }));
2275
+
2276
+ return function getData() {
2277
+ return _ref2.apply(this, arguments);
2278
+ };
2279
+ }();
2280
+
2281
+ var isReadyToOpenCSV = function isReadyToOpenCSV() {
2282
+ return !analyticsData.isLoading;
2283
+ };
2284
+
2285
+ var getExportSource = function getExportSource() {
2286
+ return [{
2287
+ startDate: moment__default['default'](startTime + 1).format('D-MM-YYYY'),
2288
+ endDate: moment__default['default'](endTime).format('D-MM-YYYY'),
2289
+ messages: analyticsData.messages,
2290
+ staffMessages: analyticsData.staffMessages,
2291
+ residentMessages: analyticsData.residentMessages,
2292
+ groupMessages: analyticsData.groupMessages,
2293
+ privateMessages: analyticsData.privateMessages,
2294
+ activeGroups: analyticsData.activeGroups
2295
+ }];
2296
+ };
2297
+
2298
+ var csvPopup = function csvPopup() {
2299
+ if (!isExportOpen) {
2300
+ return null;
2301
+ }
2302
+
2303
+ var source = getExportSource();
2304
+ return /*#__PURE__*/React__default['default'].createElement(Components$1.ExportCsvPopup, {
2305
+ onClose: function onClose() {
2306
+ setIsExportOpen(false);
2307
+ },
2308
+ columns: exportColumns,
2309
+ source: source,
2310
+ filename: "".concat(values.analyticsKey, "analytics_").concat(source[0].startDate, "_").concat(source[0].endDate, ".csv")
2311
+ });
2312
+ };
2313
+
2314
+ return /*#__PURE__*/React__default['default'].createElement("div", {
2315
+ className: "dashboardSection"
2316
+ }, csvPopup(), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Components$1.Text, {
2317
+ type: "h4",
2318
+ className: "inlineBlock marginRight-40"
2319
+ }, featureTitle), /*#__PURE__*/React__default['default'].createElement(Components$1.Button, {
2320
+ inline: true,
2321
+ buttonType: "primaryAction",
2322
+ onClick: function onClick() {
2323
+ if (!isReadyToOpenCSV()) return;
2324
+ setIsExportOpen(true);
2325
+ },
2326
+ isActive: isReadyToOpenCSV(),
2327
+ leftIcon: "file-code-o"
2328
+ }, "Export CSV")), /*#__PURE__*/React__default['default'].createElement("div", {
2329
+ className: "analyticsSection dashboardSection_content"
2330
+ }, /*#__PURE__*/React__default['default'].createElement(Components$1.StatBox, {
2331
+ title: "Groups with Messages",
2332
+ icon: freeSolidSvgIcons.faUserGroup,
2333
+ value: analyticsData.activeGroups,
2334
+ previousValue: analyticsData.prevActiveGroups,
2335
+ prevText: prevText,
2336
+ viewGraphLink: "/chart?entity=".concat(values.entityKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=GroupMessage&countType=unique&dayCount=").concat(dayCount),
2337
+ isLoading: analyticsData.isLoading
2338
+ }), /*#__PURE__*/React__default['default'].createElement(Components$1.StatBox, {
2339
+ title: "Messages",
2340
+ icon: freeSolidSvgIcons.faMessage,
2341
+ value: analyticsData.messages,
2342
+ previousValue: analyticsData.prevMessages,
2343
+ prevText: prevText,
2344
+ viewGraphLink: "/chart?entity=".concat(values.entityKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=Message&countType=total&dayCount=").concat(dayCount),
2345
+ isLoading: analyticsData.isLoading
2346
+ }), /*#__PURE__*/React__default['default'].createElement(Components$1.StatBox, {
2347
+ title: "Messages by Staff",
2348
+ icon: freeSolidSvgIcons.faUserTie,
2349
+ value: analyticsData.staffMessages,
2350
+ previousValue: analyticsData.prevStaffMessages,
2351
+ prevText: prevText,
2352
+ viewGraphLink: "/chart?entity=".concat(values.entityKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=StaffMessage&countType=total&dayCount=").concat(dayCount),
2353
+ isLoading: analyticsData.isLoading
2354
+ }), /*#__PURE__*/React__default['default'].createElement(Components$1.StatBox, {
2355
+ title: "Messages by Primary Users",
2356
+ icon: freeSolidSvgIcons.faUsers,
2357
+ value: analyticsData.residentMessages,
2358
+ previousValue: analyticsData.prevResidentMessages,
2359
+ prevText: prevText,
2360
+ viewGraphLink: "/chart?entity=".concat(values.entityKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=ResidentMessage&countType=total&dayCount=").concat(dayCount),
2361
+ isLoading: analyticsData.isLoading
2362
+ }), /*#__PURE__*/React__default['default'].createElement(Components$1.StatBox, {
2363
+ title: "Group Messages",
2364
+ icon: freeSolidSvgIcons.faUsersRectangle,
2365
+ value: analyticsData.groupMessages,
2366
+ previousValue: analyticsData.prevGroupMessages,
2367
+ prevText: prevText,
2368
+ viewGraphLink: "/chart?entity=".concat(values.entityKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=GroupMessage&countType=total&dayCount=").concat(dayCount),
2369
+ isLoading: analyticsData.isLoading
2370
+ }), /*#__PURE__*/React__default['default'].createElement(Components$1.StatBox, {
2371
+ title: "Private Messages",
2372
+ icon: freeSolidSvgIcons.faPeopleArrows,
2373
+ value: analyticsData.privateMessages,
2374
+ previousValue: analyticsData.prevPrivateMessages,
2375
+ prevText: prevText,
2376
+ viewGraphLink: "/chart?entity=".concat(values.entityKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=PrivateMessage&countType=total&dayCount=").concat(dayCount),
2377
+ isLoading: analyticsData.isLoading
2378
+ })));
2379
+ };
2380
+
2381
+ var mapStateToProps = function mapStateToProps(state) {
2382
+ var auth = state.auth;
2383
+ return {
2384
+ auth: auth,
2385
+ strings: state.strings && state.strings.config || {}
2386
+ };
2387
+ };
2388
+
2389
+ var toExport = reactRedux.connect(mapStateToProps, {})(AnalyticsHub);
2390
+
2139
2391
  function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
2140
2392
 
2141
2393
  function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -2440,7 +2692,9 @@
2440
2692
  var _Screens;
2441
2693
  var Reducers = _defineProperty__default['default']({}, values.reducerKey, CircleReducer);
2442
2694
  var Screens = (_Screens = {}, _defineProperty__default['default'](_Screens, values.componentCircles, Circles$1), _defineProperty__default['default'](_Screens, values.componentAddCircle, AddCircle$1), _defineProperty__default['default'](_Screens, values.componentCircle, Circle$1), _Screens);
2695
+ var Analytics = [toExport];
2443
2696
 
2697
+ exports.Analytics = Analytics;
2444
2698
  exports.Config = FeatureConfig;
2445
2699
  exports.FeaturePickerContent = FeaturePickerContent;
2446
2700
  exports.PreviewFull = PreviewFull;