@plusscommunities/pluss-maintenance-web-feedback 1.2.5-beta.0 → 1.3.1-beta.0

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.js CHANGED
@@ -7,8 +7,8 @@ import _ from 'lodash';
7
7
  import moment from 'moment';
8
8
  import { Icon } from '@plusscommunities/pluss-icons';
9
9
  import * as PlussCore from '@plusscommunities/pluss-core-web';
10
- import { PERMISSION_CATEGORIES, IMPORTANCE_LEVELS, Colours as Colours$3 } from '@plusscommunities/pluss-core-web';
11
- import { Table, Dropdown, DropdownButton } from 'react-bootstrap';
10
+ import { PERMISSION_CATEGORIES, IMPORTANCE_LEVELS, Colours as Colours$4 } from '@plusscommunities/pluss-core-web';
11
+ import { Table, MenuItem, DropdownButton } from 'react-bootstrap';
12
12
  import { Link } from 'react-router-dom';
13
13
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
14
14
  import Textarea from 'react-textarea-autosize';
@@ -43,7 +43,7 @@ var values = {
43
43
  screenAddJobType: "AddJobTypeFeedback",
44
44
  screenJob: "JobFeedback",
45
45
  screenJobTypes: "JobTypesFeedback",
46
- menuIcon: "file-lines",
46
+ menuIcon: "form",
47
47
  isFontAwesomeIcon: false,
48
48
  isSVGIcon: true,
49
49
  svgPathGridIcon: "M164,152a4,4,0,0,1-4,4H96a4,4,0,0,1,0-8h64A4,4,0,0,1,164,152Zm-4-36H96a4,4,0,0,0,0,8h64a4,4,0,0,0,0-8Zm52-68V216a12,12,0,0,1-12,12H56a12,12,0,0,1-12-12V48A12,12,0,0,1,56,36H94.08a44,44,0,0,1,67.84,0H200A12,12,0,0,1,212,48ZM92,64v4h72V64a36,36,0,0,0-72,0ZM204,48a4,4,0,0,0-4-4H167.17A43.71,43.71,0,0,1,172,64v8a4,4,0,0,1-4,4H88a4,4,0,0,1-4-4V64a43.71,43.71,0,0,1,4.83-20H56a4,4,0,0,0-4,4V216a4,4,0,0,0,4,4H200a4,4,0,0,0,4-4Z",
@@ -214,7 +214,8 @@ var FeatureConfig = {
214
214
  init: environment => {
215
215
  FeatureConfig.env = environment;
216
216
  PlussCore.Config.init(environment);
217
- }
217
+ },
218
+ notificationPreference: values.notificationPreference
218
219
  };
219
220
 
220
221
  var JOBS_LOADED = values.actionJobsLoaded;
@@ -224,15 +225,15 @@ var JOBS_TYPES_LOADED = values.actionJobsTypesLoaded;
224
225
  var JOBS_STATUSES_LOADED = values.actionJobsStatusesLoaded;
225
226
  var JOBS_HIDE_SEEN = values.actionJobsHideSeen;
226
227
 
227
- function ownKeys$7(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
228
- function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
228
+ function ownKeys$8(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
229
+ function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
229
230
  var {
230
- Helper: Helper$5,
231
+ Helper: Helper$6,
231
232
  Session: Session$9
232
233
  } = PlussCore;
233
234
  var maintenanceActions = {
234
235
  getJobType: (site, typeId) => {
235
- var url = Helper$5.getUrl(values.serviceKey, "getjobtype");
236
+ var url = Helper$6.getUrl(values.serviceKey, "getjobtype");
236
237
  return Session$9.authedFunction({
237
238
  method: "POST",
238
239
  url,
@@ -243,7 +244,7 @@ var maintenanceActions = {
243
244
  });
244
245
  },
245
246
  getJobTypes: (site, id) => {
246
- var url = Helper$5.getUrl(values.serviceKey, "getjobtypes");
247
+ var url = Helper$6.getUrl(values.serviceKey, "getjobtypes");
247
248
  return Session$9.authedFunction({
248
249
  method: "POST",
249
250
  url,
@@ -253,7 +254,7 @@ var maintenanceActions = {
253
254
  });
254
255
  },
255
256
  getJob: (site, id) => {
256
- var url = Helper$5.getUrl(values.serviceKey, "getJob");
257
+ var url = Helper$6.getUrl(values.serviceKey, "getJob");
257
258
  return Session$9.authedFunction({
258
259
  method: "POST",
259
260
  url,
@@ -264,7 +265,7 @@ var maintenanceActions = {
264
265
  });
265
266
  },
266
267
  getJobByJobId: (site, jobId) => {
267
- var url = Helper$5.getUrl(values.serviceKey, "getJob");
268
+ var url = Helper$6.getUrl(values.serviceKey, "getJob");
268
269
  return Session$9.authedFunction({
269
270
  method: "POST",
270
271
  url,
@@ -279,7 +280,7 @@ var maintenanceActions = {
279
280
  var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
280
281
  return Session$9.authedFunction({
281
282
  method: "POST",
282
- url: Helper$5.getUrl(values.serviceKey, "getJobs"),
283
+ url: Helper$6.getUrl(values.serviceKey, "getJobs"),
283
284
  data: {
284
285
  site,
285
286
  status,
@@ -302,7 +303,7 @@ var maintenanceActions = {
302
303
  }
303
304
  return Session$9.authedFunction({
304
305
  method: "GET",
305
- url: Helper$5.getUrl(values.serviceKey, "get/requests", query)
306
+ url: Helper$6.getUrl(values.serviceKey, "get/requests", query)
306
307
  });
307
308
  },
308
309
  getJobsRecursive: function getJobsRecursive(site, status, type, lastKey) {
@@ -320,14 +321,14 @@ var maintenanceActions = {
320
321
  createJob: job => {
321
322
  return Session$9.authedFunction({
322
323
  method: "POST",
323
- url: Helper$5.getUrl(values.serviceKey, "sendMaintenance"),
324
- data: _objectSpread$7({}, job)
324
+ url: Helper$6.getUrl(values.serviceKey, "sendMaintenance"),
325
+ data: _objectSpread$8({}, job)
325
326
  });
326
327
  },
327
328
  editJob: (job, site) => {
328
329
  return Session$9.authedFunction({
329
330
  method: "POST",
330
- url: Helper$5.getUrl(values.serviceKey, "editJob"),
331
+ url: Helper$6.getUrl(values.serviceKey, "editJob"),
331
332
  data: {
332
333
  job,
333
334
  site
@@ -337,7 +338,7 @@ var maintenanceActions = {
337
338
  deleteJob: (site, id) => {
338
339
  return Session$9.authedFunction({
339
340
  method: "POST",
340
- url: Helper$5.getUrl(values.serviceKey, "requests/remove"),
341
+ url: Helper$6.getUrl(values.serviceKey, "requests/remove"),
341
342
  data: {
342
343
  site,
343
344
  id
@@ -347,7 +348,7 @@ var maintenanceActions = {
347
348
  editJobStatus: (id, status) => {
348
349
  return Session$9.authedFunction({
349
350
  method: "POST",
350
- url: Helper$5.getUrl(values.serviceKey, "editJobStatus"),
351
+ url: Helper$6.getUrl(values.serviceKey, "editJobStatus"),
351
352
  data: {
352
353
  id,
353
354
  status
@@ -357,7 +358,7 @@ var maintenanceActions = {
357
358
  editJobPriority: (id, priority) => {
358
359
  return Session$9.authedFunction({
359
360
  method: "POST",
360
- url: Helper$5.getUrl(values.serviceKey, "update/priority"),
361
+ url: Helper$6.getUrl(values.serviceKey, "update/priority"),
361
362
  data: {
362
363
  id,
363
364
  priority
@@ -367,7 +368,7 @@ var maintenanceActions = {
367
368
  assignJob: (jobId, userId) => {
368
369
  return Session$9.authedFunction({
369
370
  method: "POST",
370
- url: Helper$5.getUrl(values.serviceKey, "update/assign"),
371
+ url: Helper$6.getUrl(values.serviceKey, "update/assign"),
371
372
  data: {
372
373
  id: jobId,
373
374
  userId
@@ -377,7 +378,7 @@ var maintenanceActions = {
377
378
  getAssignees: site => {
378
379
  return Session$9.authedFunction({
379
380
  method: "GET",
380
- url: Helper$5.getUrl(values.serviceKey, "get/assignees", {
381
+ url: Helper$6.getUrl(values.serviceKey, "get/assignees", {
381
382
  site
382
383
  })
383
384
  });
@@ -385,7 +386,7 @@ var maintenanceActions = {
385
386
  addNote: (jobId, note, attachments, images) => {
386
387
  return Session$9.authedFunction({
387
388
  method: "POST",
388
- url: Helper$5.getUrl(values.serviceKey, "requests/note"),
389
+ url: Helper$6.getUrl(values.serviceKey, "requests/note"),
389
390
  data: {
390
391
  id: jobId,
391
392
  note,
@@ -398,7 +399,7 @@ var maintenanceActions = {
398
399
  editNote: (jobId, noteId, note, attachments, images) => {
399
400
  return Session$9.authedFunction({
400
401
  method: "POST",
401
- url: Helper$5.getUrl(values.serviceKey, "requests/note"),
402
+ url: Helper$6.getUrl(values.serviceKey, "requests/note"),
402
403
  data: {
403
404
  id: jobId,
404
405
  note,
@@ -412,7 +413,7 @@ var maintenanceActions = {
412
413
  deleteNote: (jobId, noteId) => {
413
414
  return Session$9.authedFunction({
414
415
  method: "POST",
415
- url: Helper$5.getUrl(values.serviceKey, "requests/note"),
416
+ url: Helper$6.getUrl(values.serviceKey, "requests/note"),
416
417
  data: {
417
418
  id: jobId,
418
419
  noteId,
@@ -432,7 +433,7 @@ var maintenanceActions = {
432
433
  };
433
434
  return Session$9.authedFunction({
434
435
  method: "POST",
435
- url: Helper$5.getUrl(values.serviceKey, "createJobType"),
436
+ url: Helper$6.getUrl(values.serviceKey, "createJobType"),
436
437
  data
437
438
  });
438
439
  },
@@ -450,14 +451,14 @@ var maintenanceActions = {
450
451
  if (hasCustomFields && customFields) data.customFields = customFields;
451
452
  return Session$9.authedFunction({
452
453
  method: "POST",
453
- url: Helper$5.getUrl(values.serviceKey, "editJobType"),
454
+ url: Helper$6.getUrl(values.serviceKey, "editJobType"),
454
455
  data
455
456
  });
456
457
  },
457
458
  deleteJobType: (site, id) => {
458
459
  return Session$9.authedFunction({
459
460
  method: "POST",
460
- url: Helper$5.getUrl(values.serviceKey, "deleteJobType"),
461
+ url: Helper$6.getUrl(values.serviceKey, "deleteJobType"),
461
462
  data: {
462
463
  site,
463
464
  id
@@ -467,7 +468,7 @@ var maintenanceActions = {
467
468
  getExternalSync: jobId => {
468
469
  return Session$9.authedFunction({
469
470
  method: "GET",
470
- url: Helper$5.getUrl(values.serviceKey, "get/externalsync", {
471
+ url: Helper$6.getUrl(values.serviceKey, "get/externalsync", {
471
472
  id: jobId
472
473
  })
473
474
  });
@@ -475,7 +476,7 @@ var maintenanceActions = {
475
476
  retrySync: jobId => {
476
477
  return Session$9.authedFunction({
477
478
  method: "POST",
478
- url: Helper$5.getUrl(values.serviceKey, "update/retrysync"),
479
+ url: Helper$6.getUrl(values.serviceKey, "update/retrysync"),
479
480
  data: {
480
481
  id: jobId
481
482
  }
@@ -484,7 +485,7 @@ var maintenanceActions = {
484
485
  };
485
486
 
486
487
  var {
487
- Helper: Helper$4,
488
+ Helper: Helper$5,
488
489
  Session: Session$8
489
490
  } = PlussCore;
490
491
  var reactionActions = {
@@ -502,7 +503,7 @@ var reactionActions = {
502
503
  }
503
504
  return Session$8.authedFunction({
504
505
  method: "POST",
505
- url: Helper$4.getUrl("reactions", "comments/add"),
506
+ url: Helper$5.getUrl("reactions", "comments/add"),
506
507
  data
507
508
  });
508
509
  },
@@ -525,7 +526,7 @@ var reactionActions = {
525
526
  }
526
527
  return Session$8.authedFunction({
527
528
  method: "GET",
528
- url: Helper$4.getUrl("reactions", "comments/get", query)
529
+ url: Helper$5.getUrl("reactions", "comments/get", query)
529
530
  });
530
531
  }
531
532
  };
@@ -559,7 +560,7 @@ var jobStatusOptions = [
559
560
  ];
560
561
 
561
562
  var {
562
- Helper: Helper$3
563
+ Helper: Helper$4
563
564
  } = PlussCore;
564
565
  var jobsUpdate = (site, isdashboard) => {
565
566
  return dispatch => {
@@ -567,7 +568,7 @@ var jobsUpdate = (site, isdashboard) => {
567
568
  type: JOBS_LOADING
568
569
  });
569
570
  maintenanceActions.getJobsRecursive(site).then(res => {
570
- var currentSite = Helper$3.readStorageWithCookie("site");
571
+ var currentSite = Helper$4.readStorageWithCookie("site");
571
572
  if (!_.isEmpty(res) && res[0].site === currentSite) {
572
573
  dispatch({
573
574
  type: JOBS_LOADED,
@@ -719,8 +720,8 @@ var getJobPriority = priority => {
719
720
  return priorityOption || getDefaultPriority();
720
721
  };
721
722
 
722
- function ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
723
- function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
723
+ function ownKeys$7(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
724
+ function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
724
725
  var {
725
726
  Session: Session$7,
726
727
  Components: Components$7,
@@ -1093,7 +1094,7 @@ class JobList extends Component {
1093
1094
  });
1094
1095
  var customFieldValues = this.getCustomFields(r, customColumns);
1095
1096
  var priority = r.priority || defaultPriority;
1096
- return _objectSpread$6(_objectSpread$6(_objectSpread$6({}, r), customFieldValues), {}, {
1097
+ return _objectSpread$7(_objectSpread$7(_objectSpread$7({}, r), customFieldValues), {}, {
1097
1098
  notes,
1098
1099
  progressTime,
1099
1100
  completedTime,
@@ -1269,7 +1270,7 @@ class JobList extends Component {
1269
1270
  isActive: this.isValidTimeFilter()
1270
1271
  }],
1271
1272
  children: /*#__PURE__*/jsx("div", {
1272
- style: {
1273
+ iconStyle: {
1273
1274
  minHeight: 150
1274
1275
  },
1275
1276
  children: /*#__PURE__*/jsx(Components$7.AnalyticsFilter, {
@@ -1292,7 +1293,7 @@ class JobList extends Component {
1292
1293
  onClick: () => {
1293
1294
  this.onSelectAssignee();
1294
1295
  },
1295
- colour: Colours$3.COLOUR_DUSK
1296
+ colour: Colours$4.COLOUR_DUSK
1296
1297
  })
1297
1298
  }, this.state.selectedAssignee.id)
1298
1299
  });
@@ -1347,7 +1348,7 @@ class JobList extends Component {
1347
1348
  onClick: () => {
1348
1349
  this.onSelectRequester();
1349
1350
  },
1350
- colour: Colours$3.COLOUR_DUSK
1351
+ colour: Colours$4.COLOUR_DUSK
1351
1352
  })
1352
1353
  }, this.state.selectedRequester.id)
1353
1354
  });
@@ -1463,7 +1464,7 @@ class JobList extends Component {
1463
1464
  }), /*#__PURE__*/jsx("td", {
1464
1465
  className: "table-options",
1465
1466
  children: /*#__PURE__*/jsxs("div", {
1466
- style: {
1467
+ iconStyle: {
1467
1468
  display: "flex",
1468
1469
  alignItems: "center"
1469
1470
  },
@@ -1630,17 +1631,17 @@ class JobList extends Component {
1630
1631
  },
1631
1632
  children: ["Assigned To", this.renderSort("assigned")]
1632
1633
  }), /*#__PURE__*/jsx("th", {
1633
- style: {
1634
+ iconStyle: {
1634
1635
  width: 120
1635
1636
  },
1636
1637
  children: "Status"
1637
1638
  }), /*#__PURE__*/jsx("th", {
1638
- style: {
1639
+ iconStyle: {
1639
1640
  width: 120
1640
1641
  },
1641
1642
  children: "Priority"
1642
1643
  }), /*#__PURE__*/jsx("th", {
1643
- style: {
1644
+ iconStyle: {
1644
1645
  width: 50
1645
1646
  }
1646
1647
  })]
@@ -1825,7 +1826,7 @@ class JobList extends Component {
1825
1826
  }
1826
1827
  render() {
1827
1828
  return /*#__PURE__*/jsxs("div", {
1828
- style: {
1829
+ iconStyle: {
1829
1830
  minWidth: "100%"
1830
1831
  },
1831
1832
  children: [this.renderFilterPopup(), this.renderCSVPopup(), this.renderFilters(), this.renderContent()]
@@ -1950,7 +1951,7 @@ class JobTypes extends Component {
1950
1951
  }), /*#__PURE__*/jsx("td", {
1951
1952
  className: "table-options",
1952
1953
  children: /*#__PURE__*/jsxs("div", {
1953
- style: {
1954
+ iconStyle: {
1954
1955
  display: "flex",
1955
1956
  alignItems: "center"
1956
1957
  },
@@ -2015,7 +2016,7 @@ class JobTypes extends Component {
2015
2016
  onClick: () => this.sortByCol("email"),
2016
2017
  children: "Email"
2017
2018
  }), /*#__PURE__*/jsx("th", {
2018
- style: {
2019
+ iconStyle: {
2019
2020
  width: 70
2020
2021
  }
2021
2022
  })]
@@ -2068,7 +2069,7 @@ class JobTypes extends Component {
2068
2069
  } = this.state;
2069
2070
  if (jobList.length === 0 && loading) {
2070
2071
  return /*#__PURE__*/jsx("div", {
2071
- style: {
2072
+ iconStyle: {
2072
2073
  minWidth: "100%"
2073
2074
  },
2074
2075
  children: /*#__PURE__*/jsx("div", {
@@ -2077,7 +2078,7 @@ class JobTypes extends Component {
2077
2078
  textAlign: "center"
2078
2079
  },
2079
2080
  children: /*#__PURE__*/jsx(Icon, {
2080
- style: {
2081
+ iconStyle: {
2081
2082
  fontSize: 30,
2082
2083
  color: FeatureConfig.env.colourBrandingOff
2083
2084
  },
@@ -2089,7 +2090,7 @@ class JobTypes extends Component {
2089
2090
  });
2090
2091
  }
2091
2092
  return /*#__PURE__*/jsxs("div", {
2092
- style: {
2093
+ iconStyle: {
2093
2094
  minWidth: "100%"
2094
2095
  },
2095
2096
  children: [/*#__PURE__*/jsx("div", {
@@ -2103,7 +2104,7 @@ class JobTypes extends Component {
2103
2104
  }
2104
2105
  render() {
2105
2106
  return /*#__PURE__*/jsxs("div", {
2106
- style: {
2107
+ iconStyle: {
2107
2108
  minWidth: "100%"
2108
2109
  },
2109
2110
  children: [/*#__PURE__*/jsx("div", {
@@ -2128,12 +2129,12 @@ var JobTypes$1 = connect(mapStateToProps$6, {
2128
2129
  jobTypesUpdate
2129
2130
  })(withRouter(JobTypes));
2130
2131
 
2131
- function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2132
- function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2132
+ function ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2133
+ function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2133
2134
  var {
2134
2135
  Session: Session$5,
2135
2136
  Components: Components$5,
2136
- Colours: Colours$2
2137
+ Colours: Colours$3
2137
2138
  } = PlussCore;
2138
2139
  class Configuration extends Component {
2139
2140
  constructor(props) {
@@ -2336,7 +2337,7 @@ class Configuration extends Component {
2336
2337
  style: styles$6.statusTypeContainer,
2337
2338
  children: [/*#__PURE__*/jsx("div", {
2338
2339
  className: "statusLabel",
2339
- style: _objectSpread$5(_objectSpread$5({}, styles$6.statusTextContainer), {}, {
2340
+ style: _objectSpread$6(_objectSpread$6({}, styles$6.statusTextContainer), {}, {
2340
2341
  backgroundColor: status.color
2341
2342
  }),
2342
2343
  children: /*#__PURE__*/jsx("span", {
@@ -2350,23 +2351,23 @@ class Configuration extends Component {
2350
2351
  children: status.category
2351
2352
  })
2352
2353
  }), /*#__PURE__*/jsx(Icon, {
2353
- style: _objectSpread$5(_objectSpread$5({}, styles$6.statusIcon), {}, {
2354
+ style: _objectSpread$6(_objectSpread$6({}, styles$6.statusIcon), {}, {
2354
2355
  visibility: index === 0 ? "hidden" : "visible"
2355
2356
  }),
2356
2357
  name: "arrow-up",
2357
2358
  onClick: () => this.onMoveStatus(index, true)
2358
2359
  }), /*#__PURE__*/jsx(Icon, {
2359
- style: _objectSpread$5(_objectSpread$5({}, styles$6.statusIcon), {}, {
2360
+ style: _objectSpread$6(_objectSpread$6({}, styles$6.statusIcon), {}, {
2360
2361
  visibility: index === statusTypes.length - 1 ? "hidden" : "visible"
2361
2362
  }),
2362
2363
  name: "arrow-down",
2363
2364
  onClick: () => this.onMoveStatus(index, false)
2364
2365
  }), /*#__PURE__*/jsx(Icon, {
2365
- style: _objectSpread$5({}, styles$6.statusIcon),
2366
+ style: _objectSpread$6({}, styles$6.statusIcon),
2366
2367
  icon: "pencil",
2367
2368
  onClick: () => this.onEditStatus(index)
2368
2369
  }), /*#__PURE__*/jsx(Icon, {
2369
- style: _objectSpread$5({}, styles$6.statusIcon),
2370
+ style: _objectSpread$6({}, styles$6.statusIcon),
2370
2371
  icon: "circle-minus",
2371
2372
  onClick: () => this.onDeleteStatus(index)
2372
2373
  })]
@@ -2423,8 +2424,8 @@ class Configuration extends Component {
2423
2424
  renderSuccess() {
2424
2425
  if (!this.state.success) return null;
2425
2426
  return /*#__PURE__*/jsx("span", {
2426
- style: _objectSpread$5(_objectSpread$5({}, styles$6.savedText), {}, {
2427
- color: Colours$2.COLOUR_GREEN
2427
+ iconStyle: _objectSpread$6(_objectSpread$6({}, styles$6.savedText), {}, {
2428
+ color: Colours$3.COLOUR_GREEN
2428
2429
  }),
2429
2430
  children: "Saved"
2430
2431
  });
@@ -2536,11 +2537,11 @@ class Configuration extends Component {
2536
2537
  }
2537
2538
  render() {
2538
2539
  return /*#__PURE__*/jsxs("div", {
2539
- style: {
2540
+ iconStyle: {
2540
2541
  minWidth: "100%"
2541
2542
  },
2542
2543
  children: [this.renderStatuses(), this.renderOtherOptions(), /*#__PURE__*/jsxs("div", {
2543
- style: {
2544
+ iconStyle: {
2544
2545
  paddingTop: 24,
2545
2546
  paddingBottom: 24
2546
2547
  },
@@ -2574,7 +2575,7 @@ var styles$6 = {
2574
2575
  fontSize: 20,
2575
2576
  padding: 5,
2576
2577
  marginLeft: 10,
2577
- color: Colours$2.COLOUR_BRANDING_ACTION,
2578
+ color: Colours$3.COLOUR_BRANDING_ACTION,
2578
2579
  visibility: "visible"
2579
2580
  },
2580
2581
  savedText: {
@@ -2755,7 +2756,7 @@ class RequestsHub extends Component {
2755
2756
  sectionItems.push({
2756
2757
  type: "navItem",
2757
2758
  text: "Feature Configuration",
2758
- icon: "gear",
2759
+ icon: "settings",
2759
2760
  isFontAwesome: false,
2760
2761
  selected: this.state.selectedSection === "config",
2761
2762
  onClick: () => {
@@ -2839,13 +2840,13 @@ var RequestsHub$1 = connect(mapStateToProps$4, {
2839
2840
  jobsLoaded
2840
2841
  })(withRouter(RequestsHub));
2841
2842
 
2842
- function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2843
- function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2843
+ function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2844
+ function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2844
2845
  var {
2845
2846
  Apis: Apis$1,
2846
- Helper: Helper$2,
2847
+ Helper: Helper$3,
2847
2848
  Session: Session$3,
2848
- Colours: Colours$1,
2849
+ Colours: Colours$2,
2849
2850
  Components: Components$3
2850
2851
  } = PlussCore;
2851
2852
  var IMAGE_SIZE_NOTE = 72;
@@ -2929,7 +2930,7 @@ class Job extends Component {
2929
2930
  var statusType = statusTypes.find(s => s.text === status);
2930
2931
  if (!statusType) {
2931
2932
  var defaultStatus = statusTypes.find(s => s.category === STATUS_NOT_ACTIONED);
2932
- statusType = _objectSpread$4(_objectSpread$4({}, defaultStatus), {}, {
2933
+ statusType = _objectSpread$5(_objectSpread$5({}, defaultStatus), {}, {
2933
2934
  text: status
2934
2935
  });
2935
2936
  }
@@ -3124,7 +3125,7 @@ class Job extends Component {
3124
3125
  }
3125
3126
  maintenanceActions.deleteNote(this.state.jobId, n.Id);
3126
3127
  var newNotes = _.filter(this.state.job.Notes, note => note.Id !== n.Id);
3127
- var newJob = _objectSpread$4({}, this.state.job);
3128
+ var newJob = _objectSpread$5({}, this.state.job);
3128
3129
  newJob.Notes = newNotes;
3129
3130
  this.setState({
3130
3131
  job: newJob,
@@ -3209,7 +3210,7 @@ class Job extends Component {
3209
3210
  _defineProperty(this, "onSelectPriority", /*#__PURE__*/function () {
3210
3211
  var _ref0 = _asyncToGenerator(function* (priority) {
3211
3212
  _this.setState({
3212
- job: _objectSpread$4(_objectSpread$4({}, _this.state.job), {}, {
3213
+ job: _objectSpread$5(_objectSpread$5({}, _this.state.job), {}, {
3213
3214
  priority
3214
3215
  }),
3215
3216
  priorityChangerOpen: false
@@ -3239,7 +3240,7 @@ class Job extends Component {
3239
3240
  _defineProperty(this, "onSelectStatus", /*#__PURE__*/function () {
3240
3241
  var _ref1 = _asyncToGenerator(function* (status) {
3241
3242
  _this.setState({
3242
- job: _objectSpread$4(_objectSpread$4({}, _this.state.job), {}, {
3243
+ job: _objectSpread$5(_objectSpread$5({}, _this.state.job), {}, {
3243
3244
  status: status
3244
3245
  }),
3245
3246
  statusChangerOpen: false
@@ -3262,7 +3263,7 @@ class Job extends Component {
3262
3263
  };
3263
3264
  }());
3264
3265
  this.state = {
3265
- jobId: Helper$2.safeReadParams(props, "jobId") ? props.match.params.jobId : null,
3266
+ jobId: Helper$3.safeReadParams(props, "jobId") ? props.match.params.jobId : null,
3266
3267
  job: null,
3267
3268
  showingSelector: false,
3268
3269
  updating: false,
@@ -3483,7 +3484,7 @@ class Job extends Component {
3483
3484
  children: /*#__PURE__*/jsx("div", {
3484
3485
  className: "imageGrid_image",
3485
3486
  style: {
3486
- backgroundImage: "url('".concat(Helper$2.get1400(image), "')"),
3487
+ backgroundImage: "url('".concat(Helper$3.get1400(image), "')"),
3487
3488
  width: size,
3488
3489
  height: size
3489
3490
  }
@@ -3579,7 +3580,7 @@ class Job extends Component {
3579
3580
  } = this.state.job;
3580
3581
  var hasCustomFields = customFields && customFields.length > 0;
3581
3582
  return /*#__PURE__*/jsxs("div", {
3582
- style: {
3583
+ iconStyle: {
3583
3584
  paddingBottom: 40
3584
3585
  },
3585
3586
  children: [/*#__PURE__*/jsxs("div", {
@@ -3728,7 +3729,7 @@ class Job extends Component {
3728
3729
  children: [/*#__PURE__*/jsxs("div", {
3729
3730
  className: "maintenanceNote_top",
3730
3731
  children: [this.props.auth && this.props.auth.user && this.props.auth.user.Id === note.User.id && /*#__PURE__*/jsx(Icon, {
3731
- colour: Colours$1.COLOUR_DUSK_LIGHT,
3732
+ colour: Colours$2.COLOUR_DUSK_LIGHT,
3732
3733
  icon: "ellipsis-vertical",
3733
3734
  className: "maintenanceNote_moreIcon",
3734
3735
  onClick: () => this.onOpenNoteMenu(index)
@@ -3748,7 +3749,7 @@ class Job extends Component {
3748
3749
  })]
3749
3750
  }), /*#__PURE__*/jsx("p", {
3750
3751
  className: "maintenanceNote_text",
3751
- children: Helper$2.toParagraphed(note.Note)
3752
+ children: Helper$3.toParagraphed(note.Note)
3752
3753
  }), note.Attachments.map((a, i) => this.renderAttachment(a, i)), note.Images && note.Images.length > 0 ? this.renderImageGrid(note.Images, IMAGE_SIZE_NOTE) : null]
3753
3754
  })]
3754
3755
  }, index);
@@ -3792,7 +3793,7 @@ class Job extends Component {
3792
3793
  }), /*#__PURE__*/jsx("div", {
3793
3794
  className: "statusLabel statusLabel-large statusLabel-full",
3794
3795
  style: {
3795
- backgroundColor: Colours$1.COLOUR_DUSK
3796
+ backgroundColor: Colours$2.COLOUR_DUSK
3796
3797
  },
3797
3798
  children: /*#__PURE__*/jsxs("span", {
3798
3799
  className: "statusLabel_text",
@@ -3803,7 +3804,7 @@ class Job extends Component {
3803
3804
  }
3804
3805
  renderExternalSyncEntry(e, i) {
3805
3806
  var isSuccess = e.EntryType === "ExternalIDSet";
3806
- var backgroundColor = isSuccess ? Colours$1.COLOUR_GREEN : Colours$1.COLOUR_RED; // Green for success, red for failure
3807
+ var backgroundColor = isSuccess ? Colours$2.COLOUR_GREEN : Colours$2.COLOUR_RED; // Green for success, red for failure
3807
3808
 
3808
3809
  return /*#__PURE__*/jsxs("div", {
3809
3810
  className: "ticketHistoryEntry",
@@ -3869,7 +3870,7 @@ class Job extends Component {
3869
3870
  return /*#__PURE__*/jsx(Icon, {
3870
3871
  style: {
3871
3872
  fontSize: 20,
3872
- color: Colours$1.COLOUR_DUSK_LIGHT,
3873
+ color: Colours$2.COLOUR_DUSK_LIGHT,
3873
3874
  marginLeft: 8
3874
3875
  },
3875
3876
  icon: "spinner",
@@ -3881,7 +3882,7 @@ class Job extends Component {
3881
3882
  className: "statusLabel pointer",
3882
3883
  onClick: this.onRetrySync,
3883
3884
  style: {
3884
- backgroundColor: Colours$1.COLOUR_RED,
3885
+ backgroundColor: Colours$2.COLOUR_RED,
3885
3886
  marginLeft: 8
3886
3887
  },
3887
3888
  children: /*#__PURE__*/jsx("span", {
@@ -3904,7 +3905,7 @@ class Job extends Component {
3904
3905
  className: "userStatusIcon",
3905
3906
  icon: "circle-xmark",
3906
3907
  style: {
3907
- color: Colours$1.COLOUR_RED
3908
+ color: Colours$2.COLOUR_RED
3908
3909
  }
3909
3910
  }), " ", retrySyncError]
3910
3911
  });
@@ -3918,7 +3919,7 @@ class Job extends Component {
3918
3919
  className: "userStatusIcon",
3919
3920
  icon: "circle-check",
3920
3921
  style: {
3921
- color: Colours$1.COLOUR_GREEN
3922
+ color: Colours$2.COLOUR_GREEN
3922
3923
  }
3923
3924
  }), " ", "Sync retry initiated. Check back shortly for results."]
3924
3925
  });
@@ -3932,7 +3933,7 @@ class Job extends Component {
3932
3933
  className: "userStatusIcon",
3933
3934
  icon: "circle-xmark",
3934
3935
  style: {
3935
- color: Colours$1.COLOUR_RED
3936
+ color: Colours$2.COLOUR_RED
3936
3937
  }
3937
3938
  }), " ", "External sync failed. Use the retry button to attempt again."]
3938
3939
  });
@@ -3992,11 +3993,11 @@ class Job extends Component {
3992
3993
  } = this.state;
3993
3994
  if (!job || !job.history) return null;
3994
3995
  var source = _.sortBy([...job.history.map(e => {
3995
- return _objectSpread$4(_objectSpread$4({}, e), {}, {
3996
+ return _objectSpread$5(_objectSpread$5({}, e), {}, {
3996
3997
  EntryType: e.EntryType || "status"
3997
3998
  });
3998
3999
  }), ...(job.Notes || []).map(e => {
3999
- return _objectSpread$4(_objectSpread$4({}, e), {}, {
4000
+ return _objectSpread$5(_objectSpread$5({}, e), {}, {
4000
4001
  timestamp: e.Timestamp,
4001
4002
  EntryType: "note"
4002
4003
  });
@@ -4163,7 +4164,7 @@ class Job extends Component {
4163
4164
  onClick: () => {
4164
4165
  this.onSelectAssignee();
4165
4166
  },
4166
- colour: Colours$1.COLOUR_DUSK
4167
+ colour: Colours$2.COLOUR_DUSK
4167
4168
  })
4168
4169
  }, this.state.selectedAssignee.id)
4169
4170
  });
@@ -4250,14 +4251,14 @@ var Job$1 = connect(mapStateToProps$3, {
4250
4251
  jobStatusesUpdate
4251
4252
  })(withRouter(Job));
4252
4253
 
4253
- function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4254
- function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4254
+ function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4255
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4255
4256
  var {
4256
4257
  Actions,
4257
4258
  Components: Components$2,
4258
- Helper: Helper$1,
4259
+ Helper: Helper$2,
4259
4260
  Session: Session$2,
4260
- Colours,
4261
+ Colours: Colours$1,
4261
4262
  Apis
4262
4263
  } = PlussCore;
4263
4264
  class AddJob extends Component {
@@ -4276,7 +4277,7 @@ class AddJob extends Component {
4276
4277
  type,
4277
4278
  customFields
4278
4279
  } = res.data;
4279
- _this.setState(_objectSpread$3(_objectSpread$3({}, res.data), {}, {
4280
+ _this.setState(_objectSpread$4(_objectSpread$4({}, res.data), {}, {
4280
4281
  prevType: type,
4281
4282
  prevCustomFileds: customFields,
4282
4283
  type,
@@ -4524,7 +4525,7 @@ class AddJob extends Component {
4524
4525
  event.target.value = "";
4525
4526
  });
4526
4527
  _defineProperty(this, "onToggleDatePicker", qId => {
4527
- var showDate = _objectSpread$3({}, this.state.showDate);
4528
+ var showDate = _objectSpread$4({}, this.state.showDate);
4528
4529
  showDate[qId] = !showDate[qId];
4529
4530
  this.setState({
4530
4531
  showDate
@@ -4613,7 +4614,7 @@ class AddJob extends Component {
4613
4614
  if (_.isNil(answer) || _.isEmpty(answer)) return true;
4614
4615
  switch (type) {
4615
4616
  case "email":
4616
- return Helper$1.isEmail(answer);
4617
+ return Helper$2.isEmail(answer);
4617
4618
  case "date":
4618
4619
  return moment(answer, "YYYY-MM-DD", true).isValid();
4619
4620
  case "time":
@@ -4634,7 +4635,7 @@ class AddJob extends Component {
4634
4635
  this.customImageInputs = {};
4635
4636
  this.customDocumentInputs = {};
4636
4637
  this.state = {
4637
- jobId: Helper$1.safeReadParams(this.props, "jobId") ? this.props.match.params.jobId : null,
4638
+ jobId: Helper$2.safeReadParams(this.props, "jobId") ? this.props.match.params.jobId : null,
4638
4639
  job: null,
4639
4640
  showingSelector: false,
4640
4641
  updating: false,
@@ -4693,9 +4694,9 @@ class AddJob extends Component {
4693
4694
  } = this.state;
4694
4695
  return types.map(ev => {
4695
4696
  if (ev != null) {
4696
- return /*#__PURE__*/jsx(Dropdown.Item, {
4697
+ return /*#__PURE__*/jsx(MenuItem, {
4697
4698
  eventKey: ev.typeName,
4698
- ive: type === ev.typeName,
4699
+ active: type === ev.typeName,
4699
4700
  children: ev.typeName
4700
4701
  }, ev.typeName);
4701
4702
  }
@@ -4951,7 +4952,7 @@ class AddJob extends Component {
4951
4952
  className: "inputRequired "
4952
4953
  }) : null, /*#__PURE__*/jsxs("div", {
4953
4954
  className: "visitorSignIn_question",
4954
- style: {
4955
+ iconStyle: {
4955
4956
  flex: 1
4956
4957
  },
4957
4958
  children: [/*#__PURE__*/jsx("div", {
@@ -5001,7 +5002,7 @@ class AddJob extends Component {
5001
5002
  case "staticText":
5002
5003
  return /*#__PURE__*/jsx("p", {
5003
5004
  className: "visitorSignIn_text-staticText",
5004
- children: Helper$1.toParagraphed(field.label, {
5005
+ children: Helper$2.toParagraphed(field.label, {
5005
5006
  marginTop: 10
5006
5007
  })
5007
5008
  }, fieldId);
@@ -5020,7 +5021,7 @@ class AddJob extends Component {
5020
5021
  alwaysShowLabel: true,
5021
5022
  readOnly: true,
5022
5023
  rightContent: !_.isEmpty(field.answer) && /*#__PURE__*/jsx(Icon, {
5023
- colour: Colours.COLOUR_DUSK_LIGHT,
5024
+ colour: Colours$1.COLOUR_DUSK_LIGHT,
5024
5025
  icon: "xmark",
5025
5026
  className: "timepicker_clear",
5026
5027
  onClick: () => this.onChangeDateAnswer(fieldId, undefined, false)
@@ -5053,7 +5054,7 @@ class AddJob extends Component {
5053
5054
  }
5054
5055
  }),
5055
5056
  rightContent: !_.isEmpty(field.answer) && /*#__PURE__*/jsx(Icon, {
5056
- colour: Colours.COLOUR_DUSK_LIGHT,
5057
+ colour: Colours$1.COLOUR_DUSK_LIGHT,
5057
5058
  icon: "xmark",
5058
5059
  className: "timepicker_clear",
5059
5060
  onClick: () => this.onChangeTimeAnswer(fieldId, undefined)
@@ -5068,7 +5069,7 @@ class AddJob extends Component {
5068
5069
  className: "inputRequired "
5069
5070
  }) : null, /*#__PURE__*/jsxs("div", {
5070
5071
  className: "visitorSignIn_question",
5071
- style: {
5072
+ iconStyle: {
5072
5073
  flex: 1
5073
5074
  },
5074
5075
  children: [/*#__PURE__*/jsx(Components$2.Text, {
@@ -5091,7 +5092,7 @@ class AddJob extends Component {
5091
5092
  className: "inputRequired "
5092
5093
  }) : null, /*#__PURE__*/jsxs("div", {
5093
5094
  className: "visitorSignIn_question",
5094
- style: {
5095
+ iconStyle: {
5095
5096
  flex: 1
5096
5097
  },
5097
5098
  children: [/*#__PURE__*/jsx(Components$2.Text, {
@@ -5143,7 +5144,7 @@ class AddJob extends Component {
5143
5144
  customFields
5144
5145
  } = this.state;
5145
5146
  return /*#__PURE__*/jsx("div", {
5146
- style: {
5147
+ iconStyle: {
5147
5148
  marginBottom: 15
5148
5149
  },
5149
5150
  children: /*#__PURE__*/jsxs("div", {
@@ -5178,7 +5179,7 @@ class AddJob extends Component {
5178
5179
  return this.state.showWarnings && _.isEmpty(this.state.room);
5179
5180
  }
5180
5181
  }), /*#__PURE__*/jsxs("div", {
5181
- style: {
5182
+ iconStyle: {
5182
5183
  marginBottom: 15
5183
5184
  },
5184
5185
  children: [/*#__PURE__*/jsx(Components$2.Text, {
@@ -5278,7 +5279,7 @@ var mapStateToProps$2 = state => {
5278
5279
  return {
5279
5280
  auth,
5280
5281
  strings: state.strings && state.strings.config || {},
5281
- optionOnlyForResidents: Helper$1.getSiteSettingFromState(state, values.optionOnlyForResidents)
5282
+ optionOnlyForResidents: Helper$2.getSiteSettingFromState(state, values.optionOnlyForResidents)
5282
5283
  };
5283
5284
  };
5284
5285
  var AddJob$1 = connect(mapStateToProps$2, {
@@ -5290,7 +5291,7 @@ var AddJob$1 = connect(mapStateToProps$2, {
5290
5291
  var {
5291
5292
  Components: Components$1,
5292
5293
  Session: Session$1,
5293
- Helper
5294
+ Helper: Helper$1
5294
5295
  } = PlussCore;
5295
5296
  var DEFAULT_FIELD = {
5296
5297
  type: "text",
@@ -5335,7 +5336,7 @@ class AddJobType extends Component {
5335
5336
  var {
5336
5337
  jobTypeEmail
5337
5338
  } = this.state;
5338
- return !_.isEmpty(jobTypeEmail) && Helper.isEmail(jobTypeEmail);
5339
+ return !_.isEmpty(jobTypeEmail) && Helper$1.isEmail(jobTypeEmail);
5339
5340
  });
5340
5341
  _defineProperty(this, "isJobTypeValid", () => {
5341
5342
  var {
@@ -5537,7 +5538,7 @@ class AddJobType extends Component {
5537
5538
  }];
5538
5539
  this.state = {
5539
5540
  loading: false,
5540
- jobTypeId: Helper.safeReadParams(this.props, "jobTypeId") ? this.props.match.params.jobTypeId : null,
5541
+ jobTypeId: Helper$1.safeReadParams(this.props, "jobTypeId") ? this.props.match.params.jobTypeId : null,
5541
5542
  jobTypeName: "",
5542
5543
  jobTypeEmail: "",
5543
5544
  jobTypeDescription: "",
@@ -6073,7 +6074,7 @@ class AddJobType extends Component {
6073
6074
  type: "bodyLarge",
6074
6075
  className: "marginBottom-24 paddingLeft-40",
6075
6076
  style: {
6076
- color: Colours$3.COLOUR_LIGHTGREY
6077
+ color: Colours$4.COLOUR_LIGHTGREY
6077
6078
  },
6078
6079
  children: "By default, the form submission title will be the name of the person submitting the form. You can choose to select a different field to use as the title for the form submission."
6079
6080
  }), /*#__PURE__*/jsxs("div", {
@@ -6104,10 +6105,10 @@ class AddJobType extends Component {
6104
6105
  return /*#__PURE__*/jsxs("div", {
6105
6106
  className: "padding-60 paddingVertical-8 text-bodyLarge",
6106
6107
  style: {
6107
- color: Colours$3.COLOUR_RED
6108
+ color: Colours$4.COLOUR_RED
6108
6109
  },
6109
6110
  children: ["To save the form", /*#__PURE__*/jsx("ul", {
6110
- style: {
6111
+ iconStyle: {
6111
6112
  padding: 0,
6112
6113
  paddingLeft: 16
6113
6114
  },
@@ -6191,10 +6192,14 @@ var AddJobType$1 = connect(mapStateToProps$1, {
6191
6192
  jobTypesUpdate
6192
6193
  })(withRouter(AddJobType));
6193
6194
 
6195
+ function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6196
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6194
6197
  var {
6195
6198
  Analytics: Analytics$1,
6196
6199
  Session,
6197
- Components
6200
+ Components,
6201
+ Helper,
6202
+ Colours
6198
6203
  } = PlussCore;
6199
6204
  var getInitialState = () => ({
6200
6205
  requests: 0,
@@ -6214,10 +6219,21 @@ var AnalyticsHub = _ref => {
6214
6219
  auth,
6215
6220
  prevText,
6216
6221
  dayCount,
6217
- strings
6222
+ strings,
6223
+ userType,
6224
+ userCategory,
6225
+ selectedSites
6218
6226
  } = _ref;
6219
6227
  var [analyticsData, setAnalyticsData] = useState(getInitialState());
6220
6228
  var [isExportOpen, setIsExportOpen] = useState(false);
6229
+ var [failedSites, setFailedSites] = useState([]);
6230
+ var [comparisonData, setComparisonData] = useState({
6231
+ requests: [],
6232
+ completedRequests: [],
6233
+ comments: [],
6234
+ isLoading: true
6235
+ });
6236
+ var comparisonMode = selectedSites && selectedSites.length > 1;
6221
6237
  var hasAccess = Session.validateAccess(auth.site, values.permissionMaintenanceTracking, auth);
6222
6238
  if (!hasAccess) {
6223
6239
  return null;
@@ -6231,7 +6247,10 @@ var AnalyticsHub = _ref => {
6231
6247
  var exportColumns = [{
6232
6248
  label: "Select All",
6233
6249
  key: ""
6234
- }, {
6250
+ }, ...(comparisonMode ? [{
6251
+ label: "Site",
6252
+ key: "site"
6253
+ }] : []), {
6235
6254
  label: "Start Date",
6236
6255
  key: "startDate"
6237
6256
  }, {
@@ -6249,32 +6268,114 @@ var AnalyticsHub = _ref => {
6249
6268
  }];
6250
6269
  useEffect(() => {
6251
6270
  getData();
6252
- }, [startTime, endTime]);
6271
+ }, [startTime, endTime, userType, userCategory, selectedSites]);
6253
6272
  var getData = /*#__PURE__*/function () {
6254
6273
  var _ref2 = _asyncToGenerator(function* () {
6255
- setAnalyticsData(getInitialState());
6256
- // Load analytics data here using startTime and endTime
6257
- var timeDifference = endTime - startTime;
6258
- var [currentStatsResponse, prevStatsResponse] = yield Promise.all([analyticsActions.getAggregateEntityStats(auth.site, values.analyticsKey, startTime, endTime, true), analyticsActions.getAggregateEntityStats(auth.site, values.analyticsKey, startTime - timeDifference, startTime, true)]);
6259
- var data = {
6260
- requests: Analytics$1.countActivities(currentStatsResponse.data, "Request", "total"),
6261
- prevRequests: Analytics$1.countActivities(prevStatsResponse.data, "Request", "total"),
6262
- completedRequests: Analytics$1.countActivities(currentStatsResponse.data, "RequestCompleted", "unique"),
6263
- prevCompletedRequests: Analytics$1.countActivities(prevStatsResponse.data, "RequestCompleted", "unique"),
6264
- comments: Analytics$1.countActivities(currentStatsResponse.data, "Comment", "total"),
6265
- prevComments: Analytics$1.countActivities(prevStatsResponse.data, "Comment", "total"),
6266
- isLoading: false
6267
- };
6268
- setAnalyticsData(data);
6274
+ try {
6275
+ setFailedSites([]);
6276
+ if (comparisonMode) {
6277
+ setComparisonData({
6278
+ requests: [],
6279
+ completedRequests: [],
6280
+ comments: [],
6281
+ isLoading: true
6282
+ });
6283
+ var multiSiteResultsObj = yield Analytics$1.fetchMultiSiteData(selectedSites, /*#__PURE__*/function () {
6284
+ var _ref3 = _asyncToGenerator(function* (site) {
6285
+ var {
6286
+ data
6287
+ } = yield analyticsActions.getAggregateEntityStats(site, values.analyticsKey, startTime, endTime, true, {
6288
+ userType,
6289
+ userCategory
6290
+ });
6291
+ return data;
6292
+ });
6293
+ return function (_x) {
6294
+ return _ref3.apply(this, arguments);
6295
+ };
6296
+ }());
6297
+ var roles = auth.user.Roles;
6298
+ var failed = Object.entries(multiSiteResultsObj).filter(_ref4 => {
6299
+ var [, data] = _ref4;
6300
+ return data === null;
6301
+ }).map(_ref5 => {
6302
+ var [site] = _ref5;
6303
+ return Helper.getSiteNameFromRoles(site, roles);
6304
+ });
6305
+ setFailedSites(failed);
6306
+ var multiSiteResults = Object.entries(multiSiteResultsObj).filter(_ref6 => {
6307
+ var [, data] = _ref6;
6308
+ return data !== null;
6309
+ }).map(_ref7 => {
6310
+ var [site, data] = _ref7;
6311
+ return {
6312
+ site,
6313
+ data
6314
+ };
6315
+ });
6316
+ var buildComparison = (activityKey, countType) => multiSiteResults.map(result => ({
6317
+ name: Helper.getSiteNameFromRoles(result.site, roles),
6318
+ value: Analytics$1.countActivities(result.data, activityKey, countType)
6319
+ }));
6320
+ setComparisonData({
6321
+ requests: buildComparison("Request", "total"),
6322
+ completedRequests: buildComparison("RequestCompleted", "unique"),
6323
+ comments: buildComparison("Comment", "total"),
6324
+ isLoading: false
6325
+ });
6326
+ } else {
6327
+ setAnalyticsData(getInitialState());
6328
+ var site = selectedSites && selectedSites.length === 1 ? selectedSites[0] : auth.site;
6329
+ var timeDifference = endTime - startTime;
6330
+ var [currentStatsResponse, prevStatsResponse] = yield Promise.all([analyticsActions.getAggregateEntityStats(site, values.analyticsKey, startTime, endTime, true, {
6331
+ userType,
6332
+ userCategory
6333
+ }), analyticsActions.getAggregateEntityStats(site, values.analyticsKey, startTime - timeDifference, startTime, true, {
6334
+ userType,
6335
+ userCategory
6336
+ })]);
6337
+ var data = {
6338
+ requests: Analytics$1.countActivities(currentStatsResponse.data, "Request", "total"),
6339
+ prevRequests: Analytics$1.countActivities(prevStatsResponse.data, "Request", "total"),
6340
+ completedRequests: Analytics$1.countActivities(currentStatsResponse.data, "RequestCompleted", "unique"),
6341
+ prevCompletedRequests: Analytics$1.countActivities(prevStatsResponse.data, "RequestCompleted", "unique"),
6342
+ comments: Analytics$1.countActivities(currentStatsResponse.data, "Comment", "total"),
6343
+ prevComments: Analytics$1.countActivities(prevStatsResponse.data, "Comment", "total"),
6344
+ isLoading: false
6345
+ };
6346
+ setAnalyticsData(data);
6347
+ }
6348
+ } catch (err) {
6349
+ if (comparisonMode) {
6350
+ setComparisonData(prev => _objectSpread$3(_objectSpread$3({}, prev), {}, {
6351
+ isLoading: false
6352
+ }));
6353
+ } else {
6354
+ setAnalyticsData(prev => _objectSpread$3(_objectSpread$3({}, prev), {}, {
6355
+ isLoading: false
6356
+ }));
6357
+ }
6358
+ }
6269
6359
  });
6270
6360
  return function getData() {
6271
6361
  return _ref2.apply(this, arguments);
6272
6362
  };
6273
6363
  }();
6274
6364
  var isReadyToOpenCSV = () => {
6275
- return !analyticsData.isLoading;
6365
+ return comparisonMode ? !comparisonData.isLoading : !analyticsData.isLoading;
6276
6366
  };
6277
6367
  var getExportSource = () => {
6368
+ if (comparisonMode) {
6369
+ var sites = comparisonData.requests || [];
6370
+ return sites.map((site, i) => ({
6371
+ site: site.name,
6372
+ startDate: moment(startTime + 1).format("D-MM-YYYY"),
6373
+ endDate: moment(endTime).format("D-MM-YYYY"),
6374
+ requests: site.value,
6375
+ completedRequests: comparisonData.completedRequests[i] && comparisonData.completedRequests[i].value || 0,
6376
+ comments: comparisonData.comments[i] && comparisonData.comments[i].value || 0
6377
+ }));
6378
+ }
6278
6379
  return [{
6279
6380
  startDate: moment(startTime + 1).format("D-MM-YYYY"),
6280
6381
  endDate: moment(endTime).format("D-MM-YYYY"),
@@ -6288,13 +6389,14 @@ var AnalyticsHub = _ref => {
6288
6389
  return null;
6289
6390
  }
6290
6391
  var source = getExportSource();
6392
+ var filterSuffix = [userType, userCategory].filter(Boolean).map(f => f.toLowerCase().replace(/\s+/g, "-")).join("_");
6291
6393
  return /*#__PURE__*/jsx(Components.ExportCsvPopup, {
6292
6394
  onClose: () => {
6293
6395
  setIsExportOpen(false);
6294
6396
  },
6295
6397
  columns: exportColumns,
6296
6398
  source: source,
6297
- filename: "".concat(values.analyticsKey, "analytics_").concat(source[0].startDate, "_").concat(source[0].endDate, ".csv")
6399
+ filename: "".concat(values.analyticsKey, "analytics").concat(comparisonMode ? "_comparison" : "").concat(filterSuffix ? "_".concat(filterSuffix) : "", "_").concat(source[0].startDate, "_").concat(source[0].endDate, ".csv")
6298
6400
  });
6299
6401
  };
6300
6402
  return /*#__PURE__*/jsxs("div", {
@@ -6315,33 +6417,73 @@ var AnalyticsHub = _ref => {
6315
6417
  leftIcon: "file-code",
6316
6418
  children: "Export CSV"
6317
6419
  })]
6318
- }), /*#__PURE__*/jsxs("div", {
6420
+ }), failedSites.length > 0 && /*#__PURE__*/jsxs(Components.Text, {
6421
+ type: "help",
6422
+ style: {
6423
+ color: Colours.COLOUR_RED,
6424
+ marginTop: 8
6425
+ },
6426
+ children: ["Data unavailable for: ", failedSites.join(", ")]
6427
+ }), /*#__PURE__*/jsx("div", {
6319
6428
  className: "analyticsSection dashboardSection_content",
6320
- children: [/*#__PURE__*/jsx(Components.StatBox, {
6321
- title: "".concat(featureTitle, " Requests"),
6322
- icon: "wrench",
6323
- value: analyticsData.requests,
6324
- previousValue: analyticsData.prevRequests,
6325
- prevText: prevText,
6326
- viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=Request&countType=total&dayCount=").concat(dayCount),
6327
- isLoading: analyticsData.isLoading
6328
- }), /*#__PURE__*/jsx(Components.StatBox, {
6329
- title: "Completed ".concat(featureTitle, " Requests"),
6330
- icon: "circle-check",
6331
- value: analyticsData.completedRequests,
6332
- previousValue: analyticsData.prevCompletedRequests,
6333
- prevText: prevText,
6334
- viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=RequestCompleted&countType=unique&dayCount=").concat(dayCount),
6335
- isLoading: analyticsData.isLoading
6336
- }), /*#__PURE__*/jsx(Components.StatBox, {
6337
- title: "".concat(featureTitle, " Comments"),
6338
- icon: "comment",
6339
- value: analyticsData.comments,
6340
- previousValue: analyticsData.prevComments,
6341
- prevText: prevText,
6342
- viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=Comment&countType=total&dayCount=").concat(dayCount),
6343
- isLoading: analyticsData.isLoading
6344
- })]
6429
+ children: (() => {
6430
+ var chartSuffix = [selectedSites && selectedSites.length > 0 ? "&sites=".concat(selectedSites.join(",")) : "", userType ? "&userType=".concat(encodeURIComponent(userType)) : "", userCategory ? "&userCategory=".concat(encodeURIComponent(userCategory)) : ""].join("");
6431
+ if (comparisonMode) {
6432
+ return /*#__PURE__*/jsxs("div", {
6433
+ style: {
6434
+ display: "flex",
6435
+ flexDirection: "column",
6436
+ gap: 16
6437
+ },
6438
+ children: [/*#__PURE__*/jsx(Components.ComparisonStatBox, {
6439
+ title: "".concat(featureTitle, " Requests"),
6440
+ data: comparisonData.requests,
6441
+ prevText: prevText,
6442
+ viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=Request&countType=total&dayCount=").concat(dayCount).concat(chartSuffix),
6443
+ isLoading: comparisonData.isLoading
6444
+ }), /*#__PURE__*/jsx(Components.ComparisonStatBox, {
6445
+ title: "Completed ".concat(featureTitle, " Requests"),
6446
+ data: comparisonData.completedRequests,
6447
+ prevText: prevText,
6448
+ viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=RequestCompleted&countType=unique&dayCount=").concat(dayCount).concat(chartSuffix),
6449
+ isLoading: comparisonData.isLoading
6450
+ }), /*#__PURE__*/jsx(Components.ComparisonStatBox, {
6451
+ title: "".concat(featureTitle, " Comments"),
6452
+ data: comparisonData.comments,
6453
+ prevText: prevText,
6454
+ viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=Comment&countType=total&dayCount=").concat(dayCount).concat(chartSuffix),
6455
+ isLoading: comparisonData.isLoading
6456
+ })]
6457
+ });
6458
+ }
6459
+ return /*#__PURE__*/jsxs(Fragment, {
6460
+ children: [/*#__PURE__*/jsx(Components.StatBox, {
6461
+ title: "".concat(featureTitle, " Requests"),
6462
+ icon: "wrench",
6463
+ value: analyticsData.requests,
6464
+ previousValue: analyticsData.prevRequests,
6465
+ prevText: prevText,
6466
+ viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=Request&countType=total&dayCount=").concat(dayCount).concat(chartSuffix),
6467
+ isLoading: analyticsData.isLoading
6468
+ }), /*#__PURE__*/jsx(Components.StatBox, {
6469
+ title: "Completed ".concat(featureTitle, " Requests"),
6470
+ icon: "circle-check",
6471
+ value: analyticsData.completedRequests,
6472
+ previousValue: analyticsData.prevCompletedRequests,
6473
+ prevText: prevText,
6474
+ viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=RequestCompleted&countType=unique&dayCount=").concat(dayCount).concat(chartSuffix),
6475
+ isLoading: analyticsData.isLoading
6476
+ }), /*#__PURE__*/jsx(Components.StatBox, {
6477
+ title: "".concat(featureTitle, " Comments"),
6478
+ icon: "comment",
6479
+ value: analyticsData.comments,
6480
+ previousValue: analyticsData.prevComments,
6481
+ prevText: prevText,
6482
+ viewGraphLink: "/chart?entity=".concat(values.analyticsKey, "&startTime=").concat(startTime, "&endTime=").concat(endTime, "&key=Comment&countType=total&dayCount=").concat(dayCount).concat(chartSuffix),
6483
+ isLoading: analyticsData.isLoading
6484
+ })]
6485
+ });
6486
+ })()
6345
6487
  })]
6346
6488
  });
6347
6489
  };