@plusscommunities/pluss-core-web 1.2.5 → 1.2.9

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 CHANGED
@@ -8853,42 +8853,22 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
8853
8853
 
8854
8854
  var _super = _createSuper$4(AudienceSelector);
8855
8855
 
8856
- function AudienceSelector() {
8856
+ function AudienceSelector(props) {
8857
8857
  var _this;
8858
8858
 
8859
8859
  _classCallCheck__default['default'](this, AudienceSelector);
8860
8860
 
8861
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
8862
- args[_key] = arguments[_key];
8863
- }
8861
+ _this = _super.call(this, props);
8864
8862
 
8865
- _this = _super.call.apply(_super, [this].concat(args));
8863
+ _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onChangeSelection", function () {
8864
+ var _this$props = _this.props,
8865
+ updateValidation = _this$props.updateValidation,
8866
+ onChange = _this$props.onChange;
8866
8867
 
8867
- _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "state", {
8868
- categories: [{
8869
- Title: 'All Primary Users',
8870
- Key: 'resident',
8871
- ShortName: 'Primary'
8872
- }, {
8873
- Title: 'All Staff Users',
8874
- Key: 'staff',
8875
- ShortName: 'Staff'
8876
- }, {
8877
- Title: 'All Linked Users',
8878
- Key: 'family',
8879
- ShortName: 'Linked'
8880
- }],
8881
- types: [],
8882
- AudienceType: 'All',
8883
- showInclude: false,
8884
- includeList: [],
8885
- showExclude: false,
8886
- excludeList: [],
8887
- Type: '',
8888
- Category: '',
8889
- userList: [],
8890
- tagList: [],
8891
- AudienceTagList: []
8868
+ var isValid = _this.validateAudienceSelection();
8869
+
8870
+ if (updateValidation) updateValidation(isValid);
8871
+ if (onChange) onChange(_this.getAudienceType(), _this.getAudienceTypeSelection(), isValid);
8892
8872
  });
8893
8873
 
8894
8874
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "selectTag", function (key) {
@@ -8898,9 +8878,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
8898
8878
  excludeList: []
8899
8879
  });
8900
8880
 
8901
- setTimeout(function () {
8902
- _this.props.updateValidation(_this.validateAudienceSelection());
8903
- }, 50);
8881
+ setTimeout(_this.onChangeSelection, 50);
8904
8882
  });
8905
8883
 
8906
8884
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "validateCustom", function () {
@@ -8908,6 +8886,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
8908
8886
  });
8909
8887
 
8910
8888
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getAvailableAudienceTags", function () {
8889
+ var includeSelected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
8911
8890
  var _this$state = _this.state,
8912
8891
  categories = _this$state.categories,
8913
8892
  types = _this$state.types,
@@ -8937,7 +8916,8 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
8937
8916
  Title: "User Tag: ".concat(t.Title)
8938
8917
  };
8939
8918
  });
8940
- return [].concat(_toConsumableArray__default['default'](categoryTags), _toConsumableArray__default['default'](userTypeTags), _toConsumableArray__default['default'](userTagTags)).filter(function (t) {
8919
+ var result = [].concat(_toConsumableArray__default['default'](categoryTags), _toConsumableArray__default['default'](userTypeTags), _toConsumableArray__default['default'](userTagTags));
8920
+ return includeSelected ? result : result.filter(function (t) {
8941
8921
  return !___default['default'].some(AudienceTagList, function (at) {
8942
8922
  return at.Id === t.Id;
8943
8923
  });
@@ -8949,9 +8929,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
8949
8929
 
8950
8930
  _this.setState({
8951
8931
  AudienceTagList: AudienceTagList
8952
- }, function () {
8953
- return _this.props.updateValidation(_this.validateAudienceSelection());
8954
- });
8932
+ }, _this.onChangeSelection);
8955
8933
  });
8956
8934
 
8957
8935
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onDetachAudienceTag", function (tag) {
@@ -8961,26 +8939,58 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
8961
8939
 
8962
8940
  _this.setState({
8963
8941
  AudienceTagList: AudienceTagList
8964
- }, function () {
8965
- return _this.props.updateValidation(_this.validateAudienceSelection());
8966
- });
8942
+ }, _this.onChangeSelection);
8967
8943
  });
8968
8944
 
8945
+ _this.state = {
8946
+ categories: [{
8947
+ Title: 'All Primary Users',
8948
+ Key: 'resident',
8949
+ ShortName: 'Primary'
8950
+ }, {
8951
+ Title: 'All Staff Users',
8952
+ Key: 'staff',
8953
+ ShortName: 'Staff'
8954
+ }, {
8955
+ Title: 'All Linked Users',
8956
+ Key: 'family',
8957
+ ShortName: 'Linked'
8958
+ }],
8959
+ types: [],
8960
+ AudienceType: props.audienceType || 'All',
8961
+ showInclude: false,
8962
+ includeList: [],
8963
+ showExclude: false,
8964
+ excludeList: [],
8965
+ Type: '',
8966
+ Category: '',
8967
+ userList: [],
8968
+ tagList: [],
8969
+ AudienceTagList: props.audienceTypeSelection || []
8970
+ };
8969
8971
  return _this;
8970
8972
  }
8971
8973
 
8972
8974
  _createClass__default['default'](AudienceSelector, [{
8973
8975
  key: "componentDidMount",
8974
8976
  value: function componentDidMount() {
8975
- var _this$props = this.props,
8976
- disallowUserType = _this$props.disallowUserType,
8977
- custom = _this$props.custom,
8978
- disallowSingleUsers = _this$props.disallowSingleUsers,
8979
- allowTags = _this$props.allowTags;
8977
+ var _this$props2 = this.props,
8978
+ disallowUserType = _this$props2.disallowUserType,
8979
+ custom = _this$props2.custom,
8980
+ disallowSingleUsers = _this$props2.disallowSingleUsers,
8981
+ allowTags = _this$props2.allowTags;
8980
8982
  if (!disallowUserType || custom) this.getUserTypes();
8981
8983
  if (!disallowSingleUsers) this.getUsers();
8982
8984
  if (allowTags || custom) this.getUserTags();
8983
8985
  }
8986
+ }, {
8987
+ key: "componentDidUpdate",
8988
+ value: function componentDidUpdate(prevProps) {
8989
+ var newState = {};
8990
+ if (prevProps.audienceType !== this.props.audienceType) newState.AudienceType = this.props.audienceType;
8991
+ if (!___default['default'].isEqual(prevProps.audienceTypeSelection, this.props.audienceTypeSelection)) newState.AudienceTagList = this.props.audienceTypeSelection;
8992
+ if (!___default['default'].isEmpty(newState)) this.setState(newState);
8993
+ }
8984
8994
  }, {
8985
8995
  key: "onSubmit",
8986
8996
  value: function onSubmit() {
@@ -9004,12 +9014,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9004
9014
  Category = _this$state2.Category,
9005
9015
  Tag = _this$state2.Tag,
9006
9016
  Type = _this$state2.Type;
9007
- if (AudienceType === 'Custom') return AudienceTagList.map(function (at) {
9008
- return {
9009
- AudienceType: at.AudienceType,
9010
- AudienceTypeSelection: at.AudienceTypeSelection
9011
- };
9012
- });
9017
+ if (AudienceType === 'Custom') return AudienceTagList || [];
9013
9018
  if (AudienceType === 'Category') return Category;
9014
9019
  if (AudienceType === 'UserTags') return Tag;
9015
9020
  return Type;
@@ -9064,29 +9069,26 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9064
9069
  }, {
9065
9070
  key: "onChangeOption",
9066
9071
  value: function onChangeOption(type) {
9067
- var _this4 = this;
9068
-
9069
9072
  this.setState({
9070
9073
  AudienceType: type,
9071
9074
  Type: '',
9072
9075
  Category: '',
9073
9076
  includeList: [],
9074
- excludeList: []
9077
+ excludeList: [],
9078
+ AudienceTagList: []
9075
9079
  });
9076
- setTimeout(function () {
9077
- _this4.props.updateValidation(_this4.validateAudienceSelection());
9078
- }, 50);
9080
+ setTimeout(this.onChangeSelection, 50);
9079
9081
  }
9080
9082
  }, {
9081
9083
  key: "getOptions",
9082
9084
  value: function getOptions() {
9083
- var _this5 = this;
9085
+ var _this4 = this;
9084
9086
 
9085
9087
  var options = [{
9086
9088
  Label: 'All users',
9087
9089
  Value: 'All',
9088
9090
  onChange: function onChange() {
9089
- return _this5.onChangeOption('All');
9091
+ return _this4.onChangeOption('All');
9090
9092
  }
9091
9093
  }];
9092
9094
 
@@ -9095,7 +9097,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9095
9097
  Label: 'Custom',
9096
9098
  Value: 'Custom',
9097
9099
  onChange: function onChange() {
9098
- return _this5.onChangeOption('Custom');
9100
+ return _this4.onChangeOption('Custom');
9099
9101
  }
9100
9102
  });
9101
9103
  } else {
@@ -9103,7 +9105,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9103
9105
  Label: 'By user category',
9104
9106
  Value: 'Category',
9105
9107
  onChange: function onChange() {
9106
- return _this5.onChangeOption('Category');
9108
+ return _this4.onChangeOption('Category');
9107
9109
  }
9108
9110
  });
9109
9111
  }
@@ -9113,7 +9115,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9113
9115
  Label: 'By user type',
9114
9116
  Value: 'UserType',
9115
9117
  onChange: function onChange() {
9116
- return _this5.onChangeOption('UserType');
9118
+ return _this4.onChangeOption('UserType');
9117
9119
  }
9118
9120
  });
9119
9121
  }
@@ -9123,7 +9125,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9123
9125
  Label: 'By user tag',
9124
9126
  Value: 'UserTags',
9125
9127
  onChange: function onChange() {
9126
- return _this5.onChangeOption('UserTags');
9128
+ return _this4.onChangeOption('UserTags');
9127
9129
  }
9128
9130
  });
9129
9131
  }
@@ -9133,7 +9135,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9133
9135
  Label: 'To single users',
9134
9136
  Value: 'User',
9135
9137
  onChange: function onChange() {
9136
- return _this5.onChangeOption('User');
9138
+ return _this4.onChangeOption('User');
9137
9139
  }
9138
9140
  });
9139
9141
  }
@@ -9156,24 +9158,20 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9156
9158
  }, {
9157
9159
  key: "selectType",
9158
9160
  value: function selectType(key) {
9159
- var _this6 = this;
9160
-
9161
9161
  this.setState({
9162
9162
  Type: key,
9163
9163
  includeList: [],
9164
9164
  excludeList: []
9165
9165
  });
9166
- setTimeout(function () {
9167
- _this6.props.updateValidation(_this6.validateAudienceSelection());
9168
- }, 50);
9166
+ setTimeout(this.onChangeSelection, 50);
9169
9167
  }
9170
9168
  }, {
9171
9169
  key: "getTypeTitle",
9172
9170
  value: function getTypeTitle() {
9173
- var _this7 = this;
9171
+ var _this5 = this;
9174
9172
 
9175
9173
  var typeObject = ___default['default'].find(this.state.types, function (t) {
9176
- return t.typeName === _this7.state.Type;
9174
+ return t.typeName === _this5.state.Type;
9177
9175
  });
9178
9176
 
9179
9177
  if (typeObject) {
@@ -9185,10 +9183,10 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9185
9183
  }, {
9186
9184
  key: "getTagTitle",
9187
9185
  value: function getTagTitle() {
9188
- var _this8 = this;
9186
+ var _this6 = this;
9189
9187
 
9190
9188
  var tag = ___default['default'].find(this.state.tagList, function (t) {
9191
- return t.Id === _this8.state.Tag;
9189
+ return t.Id === _this6.state.Tag;
9192
9190
  });
9193
9191
 
9194
9192
  if (tag) {
@@ -9200,10 +9198,10 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9200
9198
  }, {
9201
9199
  key: "getUserTypes",
9202
9200
  value: function getUserTypes() {
9203
- var _this9 = this;
9201
+ var _this7 = this;
9204
9202
 
9205
9203
  typeActions.getUserTypes(this.props.auth.site).then(function (res) {
9206
- _this9.props.setAuth({
9204
+ _this7.props.setAuth({
9207
9205
  userTypes: ___default['default'].cloneDeep(res.data)
9208
9206
  });
9209
9207
 
@@ -9212,7 +9210,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9212
9210
  e.Key = e.typeName;
9213
9211
 
9214
9212
  if (e.category) {
9215
- var category = ___default['default'].find(_this9.state.categories, function (c) {
9213
+ var category = ___default['default'].find(_this7.state.categories, function (c) {
9216
9214
  return c.Key === e.category;
9217
9215
  });
9218
9216
 
@@ -9221,7 +9219,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9221
9219
  }
9222
9220
  });
9223
9221
 
9224
- _this9.setState({
9222
+ _this7.setState({
9225
9223
  types: res.data
9226
9224
  });
9227
9225
  }).catch(function (error) {});
@@ -9229,12 +9227,12 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9229
9227
  }, {
9230
9228
  key: "getUserList",
9231
9229
  value: function getUserList() {
9232
- var _this10 = this;
9230
+ var _this8 = this;
9233
9231
 
9234
9232
  if (this.state.AudienceType === 'UserType' && !___default['default'].isEmpty(this.state.Type)) {
9235
9233
  var users = [];
9236
9234
  this.state.userList.forEach(function (element) {
9237
- if (element.type !== _this10.state.Type) users.push(element);
9235
+ if (element.type !== _this8.state.Type) users.push(element);
9238
9236
  });
9239
9237
  return ___default['default'].sortBy(users, 'displayName');
9240
9238
  }
@@ -9243,7 +9241,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9243
9241
  var _users = [];
9244
9242
 
9245
9243
  var types = ___default['default'].filter(this.state.types, function (type) {
9246
- return type.category === _this10.state.Category;
9244
+ return type.category === _this8.state.Category;
9247
9245
  }).map(function (type) {
9248
9246
  return type.typeName;
9249
9247
  });
@@ -9261,24 +9259,20 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9261
9259
  }, {
9262
9260
  key: "selectCat",
9263
9261
  value: function selectCat(key, e) {
9264
- var _this11 = this;
9265
-
9266
9262
  this.setState({
9267
9263
  Category: key,
9268
9264
  includeList: [],
9269
9265
  excludeList: []
9270
9266
  });
9271
- setTimeout(function () {
9272
- _this11.props.updateValidation(_this11.validateAudienceSelection());
9273
- }, 50);
9267
+ setTimeout(this.onChangeSelection, 50);
9274
9268
  }
9275
9269
  }, {
9276
9270
  key: "getCatTitle",
9277
9271
  value: function getCatTitle() {
9278
- var _this12 = this;
9272
+ var _this9 = this;
9279
9273
 
9280
9274
  var typeObject = ___default['default'].find(this.state.categories, function (t) {
9281
- return t.Key === _this12.state.Category;
9275
+ return t.Key === _this9.state.Category;
9282
9276
  });
9283
9277
 
9284
9278
  if (typeObject) {
@@ -9334,12 +9328,12 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9334
9328
  }, {
9335
9329
  key: "getUserExcludeList",
9336
9330
  value: function getUserExcludeList() {
9337
- var _this13 = this;
9331
+ var _this10 = this;
9338
9332
 
9339
9333
  if (this.state.AudienceType === 'UserType' && !___default['default'].isEmpty(this.state.Type)) {
9340
9334
  var users = [];
9341
9335
  this.state.userList.forEach(function (element) {
9342
- if (element.type === _this13.state.Type) users.push(element);
9336
+ if (element.type === _this10.state.Type) users.push(element);
9343
9337
  });
9344
9338
  return ___default['default'].sortBy(users, 'displayName');
9345
9339
  }
@@ -9348,7 +9342,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9348
9342
  var _users2 = [];
9349
9343
 
9350
9344
  var types = ___default['default'].filter(this.state.types, function (type) {
9351
- return type.category === _this13.state.Category;
9345
+ return type.category === _this10.state.Category;
9352
9346
  }).map(function (type) {
9353
9347
  return type.typeName;
9354
9348
  });
@@ -9366,8 +9360,6 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9366
9360
  }, {
9367
9361
  key: "addToInc",
9368
9362
  value: function addToInc(user) {
9369
- var _this14 = this;
9370
-
9371
9363
  var list = _toConsumableArray__default['default'](this.state.includeList);
9372
9364
 
9373
9365
  list.push({
@@ -9378,23 +9370,17 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9378
9370
  this.setState({
9379
9371
  includeList: list
9380
9372
  });
9381
- setTimeout(function () {
9382
- _this14.props.updateValidation(_this14.validateAudienceSelection());
9383
- }, 50);
9373
+ setTimeout(this.onChangeSelection, 50);
9384
9374
  }
9385
9375
  }, {
9386
9376
  key: "removeUserInc",
9387
9377
  value: function removeUserInc(user) {
9388
- var _this15 = this;
9389
-
9390
9378
  this.setState({
9391
9379
  includeList: ___default['default'].filter(this.state.includeList, function (ev) {
9392
9380
  return ev.Id !== user.Id;
9393
9381
  })
9394
9382
  });
9395
- setTimeout(function () {
9396
- _this15.props.updateValidation(_this15.validateAudienceSelection());
9397
- }, 50);
9383
+ setTimeout(this.onChangeSelection, 50);
9398
9384
  }
9399
9385
  }, {
9400
9386
  key: "addToEx",
@@ -9422,7 +9408,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9422
9408
  }, {
9423
9409
  key: "renderExcludes",
9424
9410
  value: function renderExcludes() {
9425
- var _this16 = this;
9411
+ var _this11 = this;
9426
9412
 
9427
9413
  if (!this.showUserPickers(false)) {
9428
9414
  return null;
@@ -9434,8 +9420,8 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9434
9420
  }, /*#__PURE__*/React__default['default'].createElement("div", {
9435
9421
  className: "flex flex-between pointer",
9436
9422
  onClick: function onClick() {
9437
- _this16.setState({
9438
- showExclude: !_this16.state.showExclude
9423
+ _this11.setState({
9424
+ showExclude: !_this11.state.showExclude
9439
9425
  });
9440
9426
  }
9441
9427
  }, /*#__PURE__*/React__default['default'].createElement("div", {
@@ -9459,7 +9445,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9459
9445
  }, {
9460
9446
  key: "renderIncludes",
9461
9447
  value: function renderIncludes() {
9462
- var _this17 = this;
9448
+ var _this12 = this;
9463
9449
 
9464
9450
  if (!this.showUserPickers(true)) {
9465
9451
  return null;
@@ -9471,8 +9457,8 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9471
9457
  }, /*#__PURE__*/React__default['default'].createElement("div", {
9472
9458
  className: "flex flex-between pointer",
9473
9459
  onClick: function onClick() {
9474
- _this17.setState({
9475
- showInclude: !_this17.state.showInclude
9460
+ _this12.setState({
9461
+ showInclude: !_this12.state.showInclude
9476
9462
  });
9477
9463
  }
9478
9464
  }, /*#__PURE__*/React__default['default'].createElement("div", {
@@ -9496,7 +9482,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9496
9482
  }, {
9497
9483
  key: "renderAssignedAudiences",
9498
9484
  value: function renderAssignedAudiences() {
9499
- var _this18 = this;
9485
+ var _this13 = this;
9500
9486
 
9501
9487
  var AudienceTagList = this.state.AudienceTagList;
9502
9488
  var maxWidth = this.props.maxWidth;
@@ -9515,7 +9501,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9515
9501
  text: t.Title,
9516
9502
  rightIcon: "remove",
9517
9503
  rightClick: function rightClick() {
9518
- return _this18.onDetachAudienceTag(t);
9504
+ return _this13.onDetachAudienceTag(t);
9519
9505
  }
9520
9506
  });
9521
9507
  }));
@@ -9523,7 +9509,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9523
9509
  }, {
9524
9510
  key: "renderAvailableAudiences",
9525
9511
  value: function renderAvailableAudiences() {
9526
- var _this19 = this;
9512
+ var _this14 = this;
9527
9513
 
9528
9514
  var maxWidth = this.props.maxWidth;
9529
9515
  var tags = this.getAvailableAudienceTags();
@@ -9538,7 +9524,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9538
9524
  className: "marginLeft-16 marginBottom-8",
9539
9525
  text: t.Title,
9540
9526
  onClick: function onClick() {
9541
- return _this19.onAttachAudienceTag(t);
9527
+ return _this14.onAttachAudienceTag(t);
9542
9528
  }
9543
9529
  });
9544
9530
  }));
@@ -9559,7 +9545,7 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9559
9545
  }, {
9560
9546
  key: "render",
9561
9547
  value: function render() {
9562
- var _this20 = this;
9548
+ var _this15 = this;
9563
9549
 
9564
9550
  return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(Text, {
9565
9551
  type: "formTitleSmall",
@@ -9581,10 +9567,10 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9581
9567
  placeholder: "User Category",
9582
9568
  value: this.getCatTitle(),
9583
9569
  isValid: function isValid() {
9584
- return _this20.validateCategory();
9570
+ return _this15.validateCategory();
9585
9571
  },
9586
9572
  showError: function showError() {
9587
- return _this20.state.showWarnings && !_this20.validateCategory();
9573
+ return _this15.state.showWarnings && !_this15.validateCategory();
9588
9574
  },
9589
9575
  options: this.state.categories,
9590
9576
  onSelect: this.selectCat.bind(this),
@@ -9601,10 +9587,10 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9601
9587
  placeholder: "User Type",
9602
9588
  value: this.getTypeTitle(),
9603
9589
  isValid: function isValid() {
9604
- return _this20.validateType();
9590
+ return _this15.validateType();
9605
9591
  },
9606
9592
  showError: function showError() {
9607
- return _this20.state.showWarnings && !_this20.validateType();
9593
+ return _this15.state.showWarnings && !_this15.validateType();
9608
9594
  },
9609
9595
  options: this.state.types,
9610
9596
  onSelect: this.selectType.bind(this),
@@ -9620,10 +9606,10 @@ var AudienceSelector = /*#__PURE__*/function (_Component) {
9620
9606
  placeholder: "User Tag",
9621
9607
  value: this.getTagTitle(),
9622
9608
  isValid: function isValid() {
9623
- return _this20.validateTag();
9609
+ return _this15.validateTag();
9624
9610
  },
9625
9611
  showError: function showError() {
9626
- return _this20.state.showWarnings && !_this20.validateTag();
9612
+ return _this15.state.showWarnings && !_this15.validateTag();
9627
9613
  },
9628
9614
  options: this.state.tagList,
9629
9615
  onSelect: this.selectTag,
@@ -10202,8 +10188,6 @@ var ExportCsvPopup = /*#__PURE__*/function (_Component) {
10202
10188
  });
10203
10189
 
10204
10190
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onToggleColumn", function (key) {
10205
- var source = _this.props.source;
10206
-
10207
10191
  var columns = ___default['default'].cloneDeep(_this.state.columns);
10208
10192
 
10209
10193
  var column = columns.find(function (c) {
@@ -10219,25 +10203,132 @@ var ExportCsvPopup = /*#__PURE__*/function (_Component) {
10219
10203
  var selectedHeaders = columns.filter(function (c) {
10220
10204
  return c.key && c.selected;
10221
10205
  });
10222
- var selectedheaderKeys = selectedHeaders.map(function (h) {
10223
- return h.key;
10206
+
10207
+ _this.setState({
10208
+ columns: columns,
10209
+ selectedHeaders: selectedHeaders
10224
10210
  });
10225
- var selectedSource = source.map(function (i) {
10226
- return ___default['default'].pick(i, selectedheaderKeys);
10211
+ }
10212
+ });
10213
+
10214
+ _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onToggleStartDateFilter", function () {
10215
+ var filterDateStartVisible = _this.state.filterDateStartVisible;
10216
+
10217
+ if (filterDateStartVisible) {
10218
+ setTimeout(function () {
10219
+ return _this.setState({
10220
+ filterDateStartVisible: false
10221
+ });
10222
+ }, 200);
10223
+ } else {
10224
+ _this.setState({
10225
+ filterDateStartVisible: true
10227
10226
  });
10227
+ }
10228
+ });
10229
+
10230
+ _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onToggleEndDateFilter", function () {
10231
+ var filterDateEndVisible = _this.state.filterDateEndVisible;
10228
10232
 
10233
+ if (filterDateEndVisible) {
10234
+ setTimeout(function () {
10235
+ return _this.setState({
10236
+ filterDateEndVisible: false
10237
+ });
10238
+ }, 200);
10239
+ } else {
10229
10240
  _this.setState({
10230
- columns: columns,
10231
- selectedHeaders: selectedHeaders,
10232
- selectedSource: selectedSource
10241
+ filterDateEndVisible: true
10242
+ });
10243
+ }
10244
+ });
10245
+
10246
+ _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onDateFilterStartChanged", function (date) {
10247
+ var filterDateEnd = _this.state.filterDateEnd;
10248
+ var start = moment__default['default'](date);
10249
+
10250
+ if (start.isSameOrBefore(filterDateEnd)) {
10251
+ _this.setState({
10252
+ filterDateStart: start.startOf('day'),
10253
+ filterDateStartVisible: false
10254
+ });
10255
+ }
10256
+ });
10257
+
10258
+ _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "onDateFilterEndChanged", function (date) {
10259
+ var filterDateStart = _this.state.filterDateStart;
10260
+ var end = moment__default['default'](date);
10261
+
10262
+ if (end.isSameOrAfter(filterDateStart)) {
10263
+ _this.setState({
10264
+ filterDateEnd: end.endOf('day'),
10265
+ filterDateEndVisible: false
10266
+ });
10267
+ }
10268
+ });
10269
+
10270
+ _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "getSelectedSource", function () {
10271
+ var source = _this.props.source;
10272
+ var selectedHeaders = _this.state.selectedHeaders;
10273
+ var result = source; // apply timestamp filter
10274
+
10275
+ if (_this.props.timestampFilter) {
10276
+ var _this$state = _this.state,
10277
+ filterDateStart = _this$state.filterDateStart,
10278
+ filterDateEnd = _this$state.filterDateEnd;
10279
+ var filterKey = _this.props.timestampFilter.filterKey;
10280
+ var minDate = filterDateStart.valueOf();
10281
+ var maxDate = filterDateEnd.valueOf();
10282
+ result = ___default['default'].filter(source, function (item) {
10283
+ return item[filterKey] >= minDate && item[filterKey] <= maxDate;
10233
10284
  });
10285
+ } // map result to columns
10286
+
10287
+
10288
+ var selectedheaderKeys = selectedHeaders.map(function (h) {
10289
+ return h.key;
10290
+ });
10291
+ return result.map(function (i) {
10292
+ return ___default['default'].pick(i, selectedheaderKeys);
10293
+ });
10294
+ });
10295
+
10296
+ _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "renderTimestampFilter", function () {
10297
+ if (!_this.props.timestampFilter) {
10298
+ return null;
10234
10299
  }
10300
+
10301
+ return /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement(GenericInput, {
10302
+ id: "dateStart",
10303
+ label: "Start Date",
10304
+ alwaysShowLabel: true,
10305
+ placeholder: 'Select start date',
10306
+ value: _this.state.filterDateStart.format('DD/MM/YYYY'),
10307
+ onClick: _this.onToggleStartDateFilter,
10308
+ readOnly: true
10309
+ }), _this.state.filterDateStartVisible ? /*#__PURE__*/React__default['default'].createElement(DatePicker, {
10310
+ hideTop: true,
10311
+ selectedDate: _this.state.filterDateStart,
10312
+ selectDate: _this.onDateFilterStartChanged
10313
+ }) : null, /*#__PURE__*/React__default['default'].createElement(GenericInput, {
10314
+ id: "dateEnd",
10315
+ label: "End Date",
10316
+ alwaysShowLabel: true,
10317
+ placeholder: 'Select end date',
10318
+ value: _this.state.filterDateEnd.format('DD/MM/YYYY'),
10319
+ onClick: _this.onToggleEndDateFilter,
10320
+ readOnly: true
10321
+ }), _this.state.filterDateEndVisible ? /*#__PURE__*/React__default['default'].createElement(DatePicker, {
10322
+ hideTop: true,
10323
+ selectedDate: _this.state.filterDateEnd,
10324
+ selectDate: _this.onDateFilterEndChanged
10325
+ }) : null);
10235
10326
  });
10236
10327
 
10237
10328
  _defineProperty__default['default'](_assertThisInitialized__default['default'](_this), "renderContent", function () {
10238
- var _this$state = _this.state,
10239
- saving = _this$state.saving,
10240
- columns = _this$state.columns;
10329
+ var _this$state2 = _this.state,
10330
+ saving = _this$state2.saving,
10331
+ columns = _this$state2.columns;
10241
10332
 
10242
10333
  if (saving) {
10243
10334
  return /*#__PURE__*/React__default['default'].createElement("div", {
@@ -10272,27 +10363,35 @@ var ExportCsvPopup = /*#__PURE__*/function (_Component) {
10272
10363
  }));
10273
10364
  });
10274
10365
 
10275
- _this.state = {
10366
+ var state = {
10276
10367
  columns: props.columns,
10368
+ selectedHeaders: props.columns.filter(function (c) {
10369
+ return c.key && c.selected;
10370
+ }),
10277
10371
  selectedSource: [],
10278
10372
  saving: false
10279
10373
  };
10374
+
10375
+ if (props.timestampFilter) {
10376
+ state.filterDateStart = props.timestampFilter.startDate;
10377
+ state.filterDateEnd = props.timestampFilter.endDate;
10378
+ }
10379
+
10380
+ _this.state = state;
10280
10381
  return _this;
10281
10382
  }
10282
10383
 
10283
10384
  _createClass__default['default'](ExportCsvPopup, [{
10284
10385
  key: "render",
10285
10386
  value: function render() {
10286
- var _this$state2 = this.state,
10287
- selectedHeaders = _this$state2.selectedHeaders,
10288
- selectedSource = _this$state2.selectedSource;
10387
+ var selectedHeaders = this.state.selectedHeaders;
10289
10388
  var filename = this.props.filename;
10290
10389
  var buttons = [{
10291
10390
  type: 'primary',
10292
10391
  isActive: this.canSave(),
10293
10392
  text: /*#__PURE__*/React__default['default'].createElement(reactCsv.CSVLink, {
10294
10393
  headers: selectedHeaders,
10295
- data: selectedSource,
10394
+ data: this.getSelectedSource(),
10296
10395
  style: {
10297
10396
  textDecoration: 'none',
10298
10397
  color: '#fff'
@@ -10308,7 +10407,6 @@ var ExportCsvPopup = /*#__PURE__*/function (_Component) {
10308
10407
  }];
10309
10408
  return /*#__PURE__*/React__default['default'].createElement(Popup, {
10310
10409
  title: "Confirm Export",
10311
- subtitle: "Select which columns to include in the export",
10312
10410
  boxClasses: "flex flex-column",
10313
10411
  innerClasses: "flex flex-column fillSpace flex-1",
10314
10412
  minWidth: 500,
@@ -10318,7 +10416,9 @@ var ExportCsvPopup = /*#__PURE__*/function (_Component) {
10318
10416
  hasPadding: true,
10319
10417
  onClose: this.onClose,
10320
10418
  buttons: buttons
10321
- }, this.renderContent());
10419
+ }, this.renderTimestampFilter(), /*#__PURE__*/React__default['default'].createElement(Text, {
10420
+ type: "bodyLarge"
10421
+ }, "Select which columns to include in the export"), this.renderContent());
10322
10422
  }
10323
10423
  }]);
10324
10424