@plusscommunities/pluss-core-web 1.7.6-beta.2 → 1.8.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.
@@ -1,5 +1,6 @@
1
1
  import { Component, PureComponent } from 'react';
2
- import { Icon } from '@plusscommunities/pluss-icons';
2
+ import { Icon as Icon$1 } from '@plusscommunities/pluss-icons';
3
+ export { Icon } from '@plusscommunities/pluss-icons';
3
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
5
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
6
  import _ from 'lodash';
@@ -20,6 +21,7 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
20
21
  import { ChromePicker } from 'react-color';
21
22
  import tinycolor from 'tinycolor2';
22
23
  import { Link } from 'react-router-dom';
24
+ import { ResponsiveContainer, BarChart, XAxis, YAxis, Tooltip, Bar, Cell } from 'recharts';
23
25
 
24
26
  class AddButton extends Component {
25
27
  getClasses() {
@@ -30,9 +32,9 @@ class AddButton extends Component {
30
32
  return classes;
31
33
  }
32
34
  renderIcon() {
33
- return /*#__PURE__*/jsx(Icon, {
35
+ return /*#__PURE__*/jsx(Icon$1, {
34
36
  className: "addButton__icon",
35
- icon: this.props.icon || "plus"
37
+ icon: this.props.icon || "fa-plus"
36
38
  });
37
39
  }
38
40
  render() {
@@ -103,16 +105,16 @@ class Attachment extends Component {
103
105
  href: this.props.source,
104
106
  target: "_blank",
105
107
  className: "pdfAttachment_container",
106
- children: [/*#__PURE__*/jsx(Icon, {
108
+ children: [/*#__PURE__*/jsx(Icon$1, {
107
109
  className: "pdfAttachment_icon",
108
110
  pulse: this.props.uploading,
109
111
  fixedWidth: true,
110
- icon: "".concat(this.props.uploading ? "spinner" : "paperclip")
112
+ icon: "".concat(this.props.uploading ? "fa-spinner" : "fa-paperclip")
111
113
  }), /*#__PURE__*/jsx("p", {
112
114
  className: "pdfAttachment_title",
113
115
  children: this.props.title || getFileName(this.props.source)
114
116
  })]
115
- }), this.props.onRemove && /*#__PURE__*/jsx(Icon, {
117
+ }), this.props.onRemove && /*#__PURE__*/jsx(Icon$1, {
116
118
  colour: COLOUR_DUSK_LIGHT,
117
119
  icon: "xmark",
118
120
  className: "pdfAttachment_close",
@@ -161,8 +163,8 @@ class Button extends Component {
161
163
  if (!this.props.leftIcon) {
162
164
  return null;
163
165
  }
164
- return /*#__PURE__*/jsx(Icon, {
165
- icon: this.props.leftIcon,
166
+ return /*#__PURE__*/jsx(Icon$1, {
167
+ name: this.props.leftIcon,
166
168
  className: "buttonTextWithIcon_icon"
167
169
  });
168
170
  }
@@ -236,9 +238,9 @@ class CheckBox extends PureComponent {
236
238
  style: this.getBoxStyle(),
237
239
  children: /*#__PURE__*/jsx("div", {
238
240
  className: "checkBoxTick",
239
- children: /*#__PURE__*/jsx(Icon, {
241
+ children: /*#__PURE__*/jsx(Icon$1, {
240
242
  className: "checkBoxTick-font",
241
- icon: "check"
243
+ icon: "fa-check"
242
244
  })
243
245
  })
244
246
  }), !_.isEmpty(this.props.label) && /*#__PURE__*/jsx("div", {
@@ -417,7 +419,7 @@ var toParagraphed = (text, style) => {
417
419
  var textSplit = text.split("\n");
418
420
  return _.map(textSplit, (t, i) => {
419
421
  return /*#__PURE__*/jsx("span", {
420
- style: _objectSpread$k({
422
+ iconStyle: _objectSpread$k({
421
423
  display: "block"
422
424
  }, style),
423
425
  children: t || "\u00A0"
@@ -434,7 +436,7 @@ var getPluralOptions = (count, singular, plural) => {
434
436
 
435
437
  function ownKeys$j(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; }
436
438
  function _objectSpread$j(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$j(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$j(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
437
- class Text extends Component {
439
+ class Text$1 extends Component {
438
440
  getClassName() {
439
441
  if (this.props.className) {
440
442
  return " ".concat(this.props.className);
@@ -472,7 +474,7 @@ class ProfilePicComponent extends Component {
472
474
  if (this.props.hoverText) {
473
475
  return /*#__PURE__*/jsxs("div", {
474
476
  className: "profilePicHover ".concat(this.props.containerClass),
475
- children: [this.renderPic(), /*#__PURE__*/jsx(Text, {
477
+ children: [this.renderPic(), /*#__PURE__*/jsx(Text$1, {
476
478
  type: "h5",
477
479
  className: "profilePicHover_text",
478
480
  children: this.props.hoverText
@@ -578,7 +580,7 @@ class CommentSection extends Component {
578
580
  if (_.isEmpty(threadComments)) {
579
581
  return /*#__PURE__*/jsx("div", {
580
582
  className: "comment_reply",
581
- children: /*#__PURE__*/jsx(Text, {
583
+ children: /*#__PURE__*/jsx(Text$1, {
582
584
  className: "comment_reply_button",
583
585
  type: "button",
584
586
  onClick: () => {
@@ -597,7 +599,7 @@ class CommentSection extends Component {
597
599
  size: 20,
598
600
  image: c.User.profilePic
599
601
  });
600
- }), /*#__PURE__*/jsx(Text, {
602
+ }), /*#__PURE__*/jsx(Text$1, {
601
603
  className: "comment_reply_button",
602
604
  type: "button",
603
605
  onClick: () => {
@@ -613,7 +615,7 @@ class CommentSection extends Component {
613
615
  }
614
616
  render() {
615
617
  return /*#__PURE__*/jsxs("div", {
616
- children: [this.props.includeTitle && /*#__PURE__*/jsx(Text, {
618
+ children: [this.props.includeTitle && /*#__PURE__*/jsx(Text$1, {
617
619
  type: "formTitleSmall",
618
620
  className: "marginBottom-16",
619
621
  children: "Comments"
@@ -628,7 +630,7 @@ class CommentSection extends Component {
628
630
  children: [/*#__PURE__*/jsx("div", {
629
631
  className: "commentReply_button".concat(!_.isEmpty(this.state.commentInput) ? " commentReply_button-active" : ""),
630
632
  onClick: this.onAddComment,
631
- children: /*#__PURE__*/jsx(Icon, {
633
+ children: /*#__PURE__*/jsx(Icon$1, {
632
634
  className: "commentReply_icon",
633
635
  icon: "paper-plane"
634
636
  })
@@ -886,14 +888,14 @@ class DatePicker extends Component {
886
888
  className: "datepicker__bottomHeader",
887
889
  children: /*#__PURE__*/jsxs("div", {
888
890
  className: "datepicker__monthSelector",
889
- children: [/*#__PURE__*/jsx(Icon, {
891
+ children: [/*#__PURE__*/jsx(Icon$1, {
890
892
  className: "datepicker__monthChevron",
891
893
  icon: "chevron-left",
892
894
  onClick: this.changeMonth.bind(this, -1)
893
895
  }), /*#__PURE__*/jsx("p", {
894
896
  className: "datepicker__selectedMonth",
895
897
  children: this.getMonth()
896
- }), /*#__PURE__*/jsx(Icon, {
898
+ }), /*#__PURE__*/jsx(Icon$1, {
897
899
  className: "datepicker__monthChevron",
898
900
  icon: "chevron-right",
899
901
  onClick: this.changeMonth.bind(this, 1)
@@ -949,7 +951,7 @@ function DurationInput(_ref) {
949
951
  };
950
952
  return /*#__PURE__*/jsxs("div", {
951
953
  className: "flex flex-center ".concat(className ? className : ""),
952
- children: [label && /*#__PURE__*/jsx(Text, {
954
+ children: [label && /*#__PURE__*/jsx(Text$1, {
953
955
  type: "formTitleSmall",
954
956
  style: {
955
957
  marginRight: "10px",
@@ -967,9 +969,9 @@ function DurationInput(_ref) {
967
969
  width: 50,
968
970
  marginRight: 5
969
971
  }
970
- }), /*#__PURE__*/jsx(Text, {
972
+ }), /*#__PURE__*/jsx(Text$1, {
971
973
  type: "formTitleSmall",
972
- style: {
974
+ iconStyle: {
973
975
  marginRight: 10
974
976
  },
975
977
  children: "Hour(s)"
@@ -984,7 +986,7 @@ function DurationInput(_ref) {
984
986
  width: 50,
985
987
  marginRight: 5
986
988
  }
987
- }), /*#__PURE__*/jsx(Text, {
989
+ }), /*#__PURE__*/jsx(Text$1, {
988
990
  type: "formTitleSmall",
989
991
  children: "Minute(s)"
990
992
  })]
@@ -2309,7 +2311,7 @@ class FileInputComponent extends Component {
2309
2311
  getInputProps
2310
2312
  } = state;
2311
2313
  return /*#__PURE__*/jsxs("div", _objectSpread$g(_objectSpread$g({
2312
- style: {
2314
+ iconStyle: {
2313
2315
  padding: 10
2314
2316
  }
2315
2317
  }, getRootProps()), {}, {
@@ -2326,11 +2328,11 @@ class FileInputComponent extends Component {
2326
2328
  }
2327
2329
  return /*#__PURE__*/jsx("div", {
2328
2330
  className: "imageInput_image",
2329
- style: _objectSpread$g({}, this.props.style)
2331
+ iconStyle: _objectSpread$g({}, this.props.style)
2330
2332
  });
2331
2333
  };
2332
2334
  var renderRemove = () => {
2333
- return !this.props.disableRemove && !this.props.disabled && (this.props.simpleStyle ? /*#__PURE__*/jsx(Icon, {
2335
+ return !this.props.disableRemove && !this.props.disabled && (this.props.simpleStyle ? /*#__PURE__*/jsx(Icon$1, {
2334
2336
  icon: "xmark",
2335
2337
  className: "imageInput_removeIcon",
2336
2338
  onClick: this.removeFile.bind(this, input)
@@ -2389,8 +2391,8 @@ class FileInputComponent extends Component {
2389
2391
  }
2390
2392
  }), /*#__PURE__*/jsx("div", {
2391
2393
  className: "imageInput_uploading",
2392
- style: _objectSpread$g({}, this.props.style),
2393
- children: /*#__PURE__*/jsx(Icon, {
2394
+ iconStyle: _objectSpread$g({}, this.props.style),
2395
+ children: /*#__PURE__*/jsx(Icon$1, {
2394
2396
  className: "spinner imageInput_spinner",
2395
2397
  icon: "spinner",
2396
2398
  fixedWidth: true,
@@ -2495,7 +2497,7 @@ class GenericInput extends Component {
2495
2497
  renderInput() {
2496
2498
  if (!_.isUndefined(this.props.inputComponent)) {
2497
2499
  return /*#__PURE__*/jsxs("div", {
2498
- style: _objectSpread$f(_objectSpread$f({}, styles$8.row), {}, {
2500
+ iconStyle: _objectSpread$f(_objectSpread$f({}, styles$8.row), {}, {
2499
2501
  alignItems: "flex-start"
2500
2502
  }),
2501
2503
  children: [this.props.isRequired && /*#__PURE__*/jsx("div", {
@@ -2506,7 +2508,7 @@ class GenericInput extends Component {
2506
2508
  if (!_.isUndefined(this.props.type) && this.props.type === "textarea") {
2507
2509
  // Render expandable text area
2508
2510
  return /*#__PURE__*/jsxs("div", {
2509
- style: _objectSpread$f(_objectSpread$f({}, styles$8.row), {}, {
2511
+ iconStyle: _objectSpread$f(_objectSpread$f({}, styles$8.row), {}, {
2510
2512
  alignItems: "flex-start"
2511
2513
  }),
2512
2514
  children: [this.props.isRequired && /*#__PURE__*/jsx("div", {
@@ -2532,7 +2534,7 @@ class GenericInput extends Component {
2532
2534
  }
2533
2535
  // Render default input
2534
2536
  return /*#__PURE__*/jsxs("div", {
2535
- style: _objectSpread$f(_objectSpread$f({}, styles$8.row), this.props.textWrapperStyle),
2537
+ iconStyle: _objectSpread$f(_objectSpread$f({}, styles$8.row), this.props.textWrapperStyle),
2536
2538
  children: [this.props.isRequired && /*#__PURE__*/jsx("div", {
2537
2539
  className: "inputRequired "
2538
2540
  }), /*#__PURE__*/jsx("input", {
@@ -2560,7 +2562,7 @@ class GenericInput extends Component {
2560
2562
  render() {
2561
2563
  return /*#__PURE__*/jsxs("div", {
2562
2564
  className: this.getClassNames(),
2563
- style: _objectSpread$f({}, this.props.style),
2565
+ iconStyle: _objectSpread$f({}, this.props.style),
2564
2566
  children: [/*#__PURE__*/jsxs("div", {
2565
2567
  style: _objectSpread$f(_objectSpread$f({}, styles$8.row), {}, {
2566
2568
  marginBottom: 0,
@@ -2668,7 +2670,7 @@ class Header extends Component {
2668
2670
  className: "header",
2669
2671
  children: [/*#__PURE__*/jsx("div", {
2670
2672
  id: "leftContainer",
2671
- style: {
2673
+ iconStyle: {
2672
2674
  display: "inline-block"
2673
2675
  },
2674
2676
  children: this.props.children && /*#__PURE__*/jsx("div", {
@@ -2765,14 +2767,14 @@ class SideNavItem extends Component {
2765
2767
  return null;
2766
2768
  }
2767
2769
  return /*#__PURE__*/jsx("div", {
2768
- style: _objectSpread$e(_objectSpread$e({}, styles$7.section), {}, {
2770
+ iconStyle: _objectSpread$e(_objectSpread$e({}, styles$7.section), {}, {
2769
2771
  width: 18,
2770
2772
  marginRight: 16
2771
2773
  }),
2772
- children: /*#__PURE__*/jsx(Icon, {
2774
+ children: /*#__PURE__*/jsx(Icon$1, {
2773
2775
  className: "sideNav-item-icon",
2774
2776
  icon: this.props.Icon,
2775
- style: this.props.style
2777
+ style: this.props.iconStyle
2776
2778
  })
2777
2779
  });
2778
2780
  }
@@ -2782,7 +2784,7 @@ class SideNavItem extends Component {
2782
2784
  style: this.props.style,
2783
2785
  onClick: this.goTo,
2784
2786
  children: [!this.props.noSideDot && /*#__PURE__*/jsx("div", {
2785
- style: _objectSpread$e(_objectSpread$e({}, styles$7.section), {}, {
2787
+ iconStyle: _objectSpread$e(_objectSpread$e({}, styles$7.section), {}, {
2786
2788
  marginRight: 15
2787
2789
  }),
2788
2790
  children: /*#__PURE__*/jsx("div", {
@@ -2885,7 +2887,7 @@ class HubSidebar extends PureComponent {
2885
2887
  }), index);
2886
2888
  }
2887
2889
  renderNavItem(item, index) {
2888
- return /*#__PURE__*/jsx(exportObj$3, {
2890
+ return /*#__PURE__*/jsx(Icon, {
2889
2891
  Text: item.text,
2890
2892
  Icon: item.icon,
2891
2893
  Link: item.url,
@@ -2898,7 +2900,7 @@ class HubSidebar extends PureComponent {
2898
2900
  renderSection(section, index) {
2899
2901
  return /*#__PURE__*/jsxs("div", {
2900
2902
  className: "hubSidebar_section",
2901
- children: [/*#__PURE__*/jsx(Text, {
2903
+ children: [/*#__PURE__*/jsx(Text$1, {
2902
2904
  type: "h3",
2903
2905
  className: "hubSidebar_sectionTitle",
2904
2906
  children: section.title
@@ -2946,7 +2948,7 @@ class Popup extends Component {
2946
2948
  if (!this.props.onClose) {
2947
2949
  return null;
2948
2950
  }
2949
- return /*#__PURE__*/jsx(Icon, {
2951
+ return /*#__PURE__*/jsx(Icon$1, {
2950
2952
  colour: COLOUR_DUSK_LIGHT,
2951
2953
  icon: "xmark",
2952
2954
  className: "popup_closeIcon",
@@ -2988,7 +2990,7 @@ class Popup extends Component {
2988
2990
  className: b.className,
2989
2991
  onClick: b.onClick,
2990
2992
  isActive: b.isActive,
2991
- children: b.loading ? /*#__PURE__*/jsx(Icon, {
2993
+ children: b.loading ? /*#__PURE__*/jsx(Icon$1, {
2992
2994
  pulse: true,
2993
2995
  fixedWidth: true,
2994
2996
  icon: "spinner"
@@ -3012,7 +3014,7 @@ class Popup extends Component {
3012
3014
  leftIcon: b.leftIcon,
3013
3015
  leftIconType: b.leftIconType,
3014
3016
  leftIconColour: b.leftIconColour,
3015
- children: b.loading ? /*#__PURE__*/jsx(Icon, {
3017
+ children: b.loading ? /*#__PURE__*/jsx(Icon$1, {
3016
3018
  pulse: true,
3017
3019
  fixedWidth: true,
3018
3020
  icon: "spinner"
@@ -3605,7 +3607,7 @@ class ImageInputComponent extends Component {
3605
3607
  });
3606
3608
  };
3607
3609
  var renderRemove = () => {
3608
- return !this.props.disableRemove && !this.props.disabled && (this.props.simpleStyle ? /*#__PURE__*/jsx(Icon, {
3610
+ return !this.props.disableRemove && !this.props.disabled && (this.props.simpleStyle ? /*#__PURE__*/jsx(Icon$1, {
3609
3611
  icon: "xmark",
3610
3612
  className: "imageInput_removeIcon",
3611
3613
  onClick: this.removeImage.bind(this, input)
@@ -3667,8 +3669,8 @@ class ImageInputComponent extends Component {
3667
3669
  }
3668
3670
  }), /*#__PURE__*/jsx("div", {
3669
3671
  className: "imageInput_uploading",
3670
- style: _objectSpread$b({}, this.props.style),
3671
- children: /*#__PURE__*/jsx(Icon, {
3672
+ iconStyle: _objectSpread$b({}, this.props.style),
3673
+ children: /*#__PURE__*/jsx(Icon$1, {
3672
3674
  pulse: true,
3673
3675
  fixedWidth: true,
3674
3676
  className: "spinner imageInput_spinner",
@@ -3694,18 +3696,18 @@ class ImageInputComponent extends Component {
3694
3696
  onClick: this.toggleLibraryItem.bind(this, image)
3695
3697
  }), /*#__PURE__*/jsx("div", {
3696
3698
  className: "imageInput_selected",
3697
- children: /*#__PURE__*/jsx(Icon, {
3699
+ children: /*#__PURE__*/jsx(Icon$1, {
3698
3700
  className: "imageInput_selectedIcon",
3699
- icon: "check"
3701
+ icon: "fa-check"
3700
3702
  })
3701
3703
  }), allowDelete && /*#__PURE__*/jsx("div", {
3702
3704
  className: "imageInput_delete",
3703
- children: this.state.deletingImage[image.Value] ? /*#__PURE__*/jsx(Icon, {
3704
- style: styles$6.saveImageSpinner,
3705
+ children: this.state.deletingImage[image.Value] ? /*#__PURE__*/jsx(Icon$1, {
3706
+ iconStyle: styles$6.saveImageSpinner,
3705
3707
  fixedWidth: true,
3706
3708
  pulse: true,
3707
3709
  icon: "spinner"
3708
- }) : /*#__PURE__*/jsx(Icon, {
3710
+ }) : /*#__PURE__*/jsx(Icon$1, {
3709
3711
  className: "imageInput_deleteIcon",
3710
3712
  icon: "circle-minus",
3711
3713
  onClick: event => this.deleteImage(event, image)
@@ -3748,8 +3750,8 @@ class ImageInputComponent extends Component {
3748
3750
  if (this.state.addFolderOpen) {
3749
3751
  return /*#__PURE__*/jsxs("div", {
3750
3752
  className: "imageFolderContainer",
3751
- children: [/*#__PURE__*/jsx(Icon, {
3752
- icon: "folder",
3753
+ children: [/*#__PURE__*/jsx(Icon$1, {
3754
+ name: "folder",
3753
3755
  className: "folderIcon"
3754
3756
  }), /*#__PURE__*/jsx(GenericInput, {
3755
3757
  id: "addFolderInput",
@@ -3764,8 +3766,8 @@ class ImageInputComponent extends Component {
3764
3766
  errorMessage: this.state.saveErrorMessage
3765
3767
  }), isSaving ? /*#__PURE__*/jsx("div", {
3766
3768
  className: "addControlContainer",
3767
- children: /*#__PURE__*/jsx(Icon, {
3768
- style: styles$6.saveFolderSpinner,
3769
+ children: /*#__PURE__*/jsx(Icon$1, {
3770
+ iconStyle: styles$6.saveFolderSpinner,
3769
3771
  icon: "spinner",
3770
3772
  pulse: true,
3771
3773
  fixedWidth: true
@@ -3792,8 +3794,8 @@ class ImageInputComponent extends Component {
3792
3794
  return /*#__PURE__*/jsxs("div", {
3793
3795
  className: "imageFolderContainer",
3794
3796
  onClick: this.addFolder,
3795
- children: [/*#__PURE__*/jsx(Icon, {
3796
- icon: "plus",
3797
+ children: [/*#__PURE__*/jsx(Icon$1, {
3798
+ name: "plus",
3797
3799
  className: "addIcon"
3798
3800
  }), /*#__PURE__*/jsx("div", {
3799
3801
  className: "addText",
@@ -3807,8 +3809,8 @@ class ImageInputComponent extends Component {
3807
3809
  return /*#__PURE__*/jsxs("div", {
3808
3810
  className: "imageFolderContainer",
3809
3811
  onClick: this.selectFolder.bind(this, folder),
3810
- children: [/*#__PURE__*/jsx(Icon, {
3811
- icon: "folder",
3812
+ children: [/*#__PURE__*/jsx(Icon$1, {
3813
+ name: "folder",
3812
3814
  className: "folderIcon"
3813
3815
  }), /*#__PURE__*/jsx("div", {
3814
3816
  className: "folderTitle",
@@ -3820,7 +3822,7 @@ class ImageInputComponent extends Component {
3820
3822
  children: folder.User && folder.User.displayName
3821
3823
  }), /*#__PURE__*/jsx("div", {
3822
3824
  className: "folderAttribute",
3823
- style: {
3825
+ iconStyle: {
3824
3826
  width: "130px"
3825
3827
  },
3826
3828
  children: timeStamp
@@ -3831,15 +3833,15 @@ class ImageInputComponent extends Component {
3831
3833
  paddingRight: "5px"
3832
3834
  },
3833
3835
  children: countText
3834
- }), this.state.deletingFolder[folder.RowId] ? /*#__PURE__*/jsx(Icon, {
3835
- style: styles$6.saveFolderSpinner,
3836
+ }), this.state.deletingFolder[folder.RowId] ? /*#__PURE__*/jsx(Icon$1, {
3837
+ iconStyle: styles$6.saveFolderSpinner,
3836
3838
  icon: "spinner",
3837
3839
  pulse: true,
3838
3840
  fixedWidth: true
3839
3841
  }) : this.canManageLibrary() && /*#__PURE__*/jsx("a", {
3840
3842
  onClick: event => this.deleteFolder(event, folder),
3841
- children: /*#__PURE__*/jsx(Icon, {
3842
- style: styles$6.removeFolderButton,
3843
+ children: /*#__PURE__*/jsx(Icon$1, {
3844
+ iconStyle: styles$6.removeFolderButton,
3843
3845
  icon: "circle-minus"
3844
3846
  })
3845
3847
  })]
@@ -3861,8 +3863,8 @@ class ImageInputComponent extends Component {
3861
3863
  className: "root",
3862
3864
  onClick: this.selectRoot,
3863
3865
  children: "Library"
3864
- }), /*#__PURE__*/jsx(Icon, {
3865
- icon: "angle-left",
3866
+ }), /*#__PURE__*/jsx(Icon$1, {
3867
+ name: "angle-left",
3866
3868
  className: "separator"
3867
3869
  }), /*#__PURE__*/jsx("div", {
3868
3870
  className: "folder",
@@ -3922,7 +3924,7 @@ class ImageInputComponent extends Component {
3922
3924
  className: this.getClassNames(input),
3923
3925
  children: /*#__PURE__*/jsx("div", {
3924
3926
  className: "imageInput_uploading",
3925
- children: /*#__PURE__*/jsx(Icon, {
3927
+ children: /*#__PURE__*/jsx(Icon$1, {
3926
3928
  className: "spinner imageInput_spinner",
3927
3929
  icon: "spinner",
3928
3930
  pulse: true,
@@ -3990,7 +3992,7 @@ class ImageInputComponent extends Component {
3990
3992
  } = state;
3991
3993
  return /*#__PURE__*/jsxs("div", _objectSpread$b(_objectSpread$b({}, getRootProps()), {}, {
3992
3994
  className: "imageInputRight_button",
3993
- children: [/*#__PURE__*/jsx("input", _objectSpread$b({}, getInputProps())), /*#__PURE__*/jsx(Icon, {
3995
+ children: [/*#__PURE__*/jsx("input", _objectSpread$b({}, getInputProps())), /*#__PURE__*/jsx(Icon$1, {
3994
3996
  className: "imageInputRight_button_icon",
3995
3997
  icon: "circle-plus"
3996
3998
  }), /*#__PURE__*/jsx("p", {
@@ -4004,7 +4006,7 @@ class ImageInputComponent extends Component {
4004
4006
  onClick: () => {
4005
4007
  this.selectTab("library");
4006
4008
  },
4007
- children: [/*#__PURE__*/jsx(Icon, {
4009
+ children: [/*#__PURE__*/jsx(Icon$1, {
4008
4010
  className: "imageInputRight_button_icon",
4009
4011
  icon: "image"
4010
4012
  }), /*#__PURE__*/jsx("p", {
@@ -4122,7 +4124,7 @@ class OverlayPage extends Component {
4122
4124
  }
4123
4125
  render() {
4124
4126
  return /*#__PURE__*/jsxs("div", {
4125
- style: _objectSpread$a(_objectSpread$a({}, styles$5.pageWrapper), this.props.style),
4127
+ iconStyle: _objectSpread$a(_objectSpread$a({}, styles$5.pageWrapper), this.props.style),
4126
4128
  children: [/*#__PURE__*/jsx("div", {
4127
4129
  style: _objectSpread$a(_objectSpread$a({}, styles$5.backgroundOverlay), this.props.backgroundStyle)
4128
4130
  }), this.renderContent()]
@@ -4343,7 +4345,7 @@ class RadioButton extends Component {
4343
4345
  return null;
4344
4346
  }
4345
4347
  return /*#__PURE__*/jsx("div", {
4346
- style: _objectSpread$5(_objectSpread$5({}, styles$1.row), this.props.rowStyle),
4348
+ iconStyle: _objectSpread$5(_objectSpread$5({}, styles$1.row), this.props.rowStyle),
4347
4349
  children: this.props.options.map(e => {
4348
4350
  return /*#__PURE__*/jsxs("div", {
4349
4351
  className: this.generateWrapperClassNames(),
@@ -4366,7 +4368,7 @@ class RadioButton extends Component {
4366
4368
  if (!_.isEmpty(this.props.help)) {
4367
4369
  return /*#__PURE__*/jsx("div", {
4368
4370
  className: "genericInput-help",
4369
- style: {
4371
+ iconStyle: {
4370
4372
  marginTop: 4
4371
4373
  },
4372
4374
  children: this.props.help
@@ -4408,7 +4410,7 @@ class Tag extends Component {
4408
4410
  if (!this.props.leftIcon) {
4409
4411
  return null;
4410
4412
  }
4411
- return /*#__PURE__*/jsx(Icon, {
4413
+ return /*#__PURE__*/jsx(Icon$1, {
4412
4414
  icon: this.props.leftIcon,
4413
4415
  className: "tag_icon tag_icon-left ".concat(this.props.leftClick ? "tag_icon-clickable" : ""),
4414
4416
  style: this.props.leftIconStyle,
@@ -4419,7 +4421,7 @@ class Tag extends Component {
4419
4421
  if (!this.props.rightIcon) {
4420
4422
  return null;
4421
4423
  }
4422
- return /*#__PURE__*/jsx(Icon, {
4424
+ return /*#__PURE__*/jsx(Icon$1, {
4423
4425
  icon: this.props.rightIcon,
4424
4426
  className: "tag_icon tag_icon-right ".concat(this.props.rightClick ? "tag_icon-clickable" : ""),
4425
4427
  style: this.props.rightIconStyle,
@@ -4511,7 +4513,7 @@ class SuccessPopup extends Component {
4511
4513
  cursor: "pointer"
4512
4514
  },
4513
4515
  onClick: this.props.closeAction,
4514
- children: /*#__PURE__*/jsx(Icon, {
4516
+ children: /*#__PURE__*/jsx(Icon$1, {
4515
4517
  icon: "xmark"
4516
4518
  })
4517
4519
  });
@@ -4523,9 +4525,9 @@ class SuccessPopup extends Component {
4523
4525
  className: "successPopup",
4524
4526
  children: [this.props.noIcon || /*#__PURE__*/jsx("div", {
4525
4527
  className: "successPopup_tick",
4526
- children: /*#__PURE__*/jsx(Icon, {
4528
+ children: /*#__PURE__*/jsx(Icon$1, {
4527
4529
  className: "successPopup_tick_icon",
4528
- icon: "check"
4530
+ icon: "fa-check"
4529
4531
  })
4530
4532
  }), this.renderClose(), !_.isEmpty(this.props.text) && /*#__PURE__*/jsx("p", {
4531
4533
  className: "successPopup_text",
@@ -4602,7 +4604,7 @@ class Reactions extends Component {
4602
4604
  });
4603
4605
  }
4604
4606
  return /*#__PURE__*/jsxs("div", {
4605
- children: [/*#__PURE__*/jsx(Text, {
4607
+ children: [/*#__PURE__*/jsx(Text$1, {
4606
4608
  type: "formTitleSmall",
4607
4609
  className: "marginBottom-16",
4608
4610
  children: "Reactions"
@@ -4614,6 +4616,37 @@ class Reactions extends Component {
4614
4616
  }
4615
4617
  }
4616
4618
 
4619
+ // Distinct colour palette for multi-site comparison charts.
4620
+ // Uses a fixed palette rather than each site's MainBrandingColour because:
4621
+ // 1. Site branding colours aren't pre-loaded — only the active site's branding is in Redux state.
4622
+ // Fetching branding for each comparison site would require extra API calls.
4623
+ // 2. Two sites could share the same or similar branding colour, making bars indistinguishable.
4624
+ // 3. A curated palette guarantees contrast and visual distinctiveness.
4625
+ // Future enhancement: use site branding colours with collision fallback to this palette.
4626
+ // Wraps around via modulo for 10+ sites (unlikely in practice).
4627
+ var SITE_COLOURS = ["#5e9efc",
4628
+ // Blue
4629
+ "#49bdbb",
4630
+ // Teal
4631
+ "#ff8c75",
4632
+ // Tangerine
4633
+ "#6e79c5",
4634
+ // Purple
4635
+ "#00cc9c",
4636
+ // Green
4637
+ "#c02743",
4638
+ // Red
4639
+ "#bdbd27",
4640
+ // Citron
4641
+ "#191e78",
4642
+ // Dark Blue
4643
+ "#ff6363",
4644
+ // Grapefruit
4645
+ "#536280" // Dusk
4646
+ ];
4647
+ var getSiteColour = index => {
4648
+ return SITE_COLOURS[index % SITE_COLOURS.length];
4649
+ };
4617
4650
  var getAnalyticsFilterOptions = () => {
4618
4651
  return [{
4619
4652
  text: "Yesterday",
@@ -4836,7 +4869,7 @@ class UserListing extends Component {
4836
4869
  style: {
4837
4870
  height: this.getSize()
4838
4871
  },
4839
- children: [/*#__PURE__*/jsx(Text, {
4872
+ children: [/*#__PURE__*/jsx(Text$1, {
4840
4873
  type: "name",
4841
4874
  style: this.props.whiteText ? {
4842
4875
  color: "#fff"
@@ -4986,7 +5019,7 @@ class TimePicker extends Component {
4986
5019
  }
4987
5020
  renderClear() {
4988
5021
  if (!this.props.hasClear) return null;
4989
- return /*#__PURE__*/jsx(Icon, {
5022
+ return /*#__PURE__*/jsx(Icon$1, {
4990
5023
  colour: COLOUR_DUSK_LIGHT,
4991
5024
  icon: "xmark",
4992
5025
  className: "timepicker_clear",
@@ -5108,7 +5141,7 @@ class AudienceIncluder extends Component {
5108
5141
  }
5109
5142
  renderSearch() {
5110
5143
  return /*#__PURE__*/jsx("div", {
5111
- style: {},
5144
+ iconStyle: {},
5112
5145
  children: this.state.returnList.map((user, index) => {
5113
5146
  return /*#__PURE__*/jsxs("div", {
5114
5147
  onClick: () => {
@@ -5141,7 +5174,7 @@ class AudienceIncluder extends Component {
5141
5174
  renderUserAdd() {
5142
5175
  return /*#__PURE__*/jsxs("div", {
5143
5176
  className: "",
5144
- style: {
5177
+ iconStyle: {
5145
5178
  backgroundColor: "#fff"
5146
5179
  },
5147
5180
  children: [" ", /*#__PURE__*/jsx(GenericInput, {
@@ -5158,10 +5191,10 @@ class AudienceIncluder extends Component {
5158
5191
  renderAttendees() {
5159
5192
  if (this.state.selectionList && !_.isEmpty(this.state.selectionList)) {
5160
5193
  return /*#__PURE__*/jsxs("div", {
5161
- style: {
5194
+ iconStyle: {
5162
5195
  marginTop: 16
5163
5196
  },
5164
- children: [/*#__PURE__*/jsx(Text, {
5197
+ children: [/*#__PURE__*/jsx(Text$1, {
5165
5198
  type: "formLabel",
5166
5199
  className: "marginBottom-8",
5167
5200
  children: "Selected Users"
@@ -5176,7 +5209,7 @@ class AudienceIncluder extends Component {
5176
5209
  },
5177
5210
  children: [/*#__PURE__*/jsxs("div", {
5178
5211
  className: "flex",
5179
- style: {
5212
+ iconStyle: {
5180
5213
  alignItems: "center"
5181
5214
  },
5182
5215
  children: [/*#__PURE__*/jsx("img", {
@@ -5192,7 +5225,7 @@ class AudienceIncluder extends Component {
5192
5225
  className: "fontMedium fontSize-16 text-dark'",
5193
5226
  children: user.displayName
5194
5227
  })]
5195
- }), /*#__PURE__*/jsx(Icon, {
5228
+ }), /*#__PURE__*/jsx(Icon$1, {
5196
5229
  className: "removeIcon",
5197
5230
  icon: "xmark",
5198
5231
  onClick: () => {
@@ -5364,7 +5397,7 @@ class DropdownInput extends Component {
5364
5397
  autoComplete: "false"
5365
5398
  }), /*#__PURE__*/jsx("div", {
5366
5399
  style: styles.chevronWrapper,
5367
- children: /*#__PURE__*/jsx(Icon, {
5400
+ children: /*#__PURE__*/jsx(Icon$1, {
5368
5401
  style: _objectSpread$3(_objectSpread$3({}, styles.chevron), {}, {
5369
5402
  color: !_.isUndefined(this.props.disabled) && this.props.disabled ? "transparent" : INACTIVE_TEXT
5370
5403
  }),
@@ -5864,12 +5897,12 @@ class AudienceSelector extends Component {
5864
5897
  },
5865
5898
  children: [/*#__PURE__*/jsx("div", {
5866
5899
  className: "flex",
5867
- children: /*#__PURE__*/jsxs(Text, {
5900
+ children: /*#__PURE__*/jsxs(Text$1, {
5868
5901
  type: "formTitleSmall",
5869
5902
  className: "marginBottom-16",
5870
5903
  children: ["Exclude Users From Selection", " ", "(".concat(this.state.excludeList.length, ")")]
5871
5904
  })
5872
- }), /*#__PURE__*/jsx(Icon, {
5905
+ }), /*#__PURE__*/jsx(Icon$1, {
5873
5906
  style: {
5874
5907
  color: COLOUR_DUSK,
5875
5908
  fontSize: 12
@@ -5899,12 +5932,12 @@ class AudienceSelector extends Component {
5899
5932
  },
5900
5933
  children: [/*#__PURE__*/jsx("div", {
5901
5934
  className: "flex",
5902
- children: /*#__PURE__*/jsxs(Text, {
5935
+ children: /*#__PURE__*/jsxs(Text$1, {
5903
5936
  type: "formTitleSmall",
5904
5937
  className: "marginBottom-16",
5905
5938
  children: [this.state.AudienceType !== "User" ? "Add Other" : "Select", " ", "Users ", "(".concat(this.state.includeList.length, ")")]
5906
5939
  })
5907
- }), /*#__PURE__*/jsx(Icon, {
5940
+ }), /*#__PURE__*/jsx(Icon$1, {
5908
5941
  style: {
5909
5942
  color: COLOUR_DUSK,
5910
5943
  fontSize: 12
@@ -5928,10 +5961,10 @@ class AudienceSelector extends Component {
5928
5961
  } = this.props;
5929
5962
  return /*#__PURE__*/jsxs("div", {
5930
5963
  className: "selectedAudienceTags",
5931
- style: {
5964
+ iconStyle: {
5932
5965
  maxWidth
5933
5966
  },
5934
- children: [_.isEmpty(AudienceTagList) && /*#__PURE__*/jsx(Text, {
5967
+ children: [_.isEmpty(AudienceTagList) && /*#__PURE__*/jsx(Text$1, {
5935
5968
  type: "body",
5936
5969
  className: "text-italic",
5937
5970
  children: "No audiences selected"
@@ -5952,7 +5985,7 @@ class AudienceSelector extends Component {
5952
5985
  var tags = this.getAvailableAudienceTags();
5953
5986
  return /*#__PURE__*/jsx("div", {
5954
5987
  className: "availableAudienceTags",
5955
- style: {
5988
+ iconStyle: {
5956
5989
  maxWidth
5957
5990
  },
5958
5991
  children: tags.map(t => {
@@ -5968,10 +6001,10 @@ class AudienceSelector extends Component {
5968
6001
  if (this.state.AudienceType !== "Custom") return null;
5969
6002
  return /*#__PURE__*/jsxs("div", {
5970
6003
  className: "optionsContent_bottom",
5971
- children: [/*#__PURE__*/jsx(Text, {
6004
+ children: [/*#__PURE__*/jsx(Text$1, {
5972
6005
  type: "formLabel",
5973
6006
  children: "Selected Audience"
5974
- }), this.renderAssignedAudiences(), /*#__PURE__*/jsx(Text, {
6007
+ }), this.renderAssignedAudiences(), /*#__PURE__*/jsx(Text$1, {
5975
6008
  type: "formLabel",
5976
6009
  className: "marginTop-32",
5977
6010
  children: "Select Audience"
@@ -5980,7 +6013,7 @@ class AudienceSelector extends Component {
5980
6013
  }
5981
6014
  render() {
5982
6015
  return /*#__PURE__*/jsxs("div", {
5983
- children: [/*#__PURE__*/jsx(Text, {
6016
+ children: [/*#__PURE__*/jsx(Text$1, {
5984
6017
  type: "formTitleSmall",
5985
6018
  className: "marginBottom-16",
5986
6019
  children: this.props.title || "Target Audience"
@@ -6077,42 +6110,42 @@ class TextFormatPopup extends Component {
6077
6110
  children: [/*#__PURE__*/jsxs("p", {
6078
6111
  className: "successPopup_text successPopup_text-small",
6079
6112
  children: [/*#__PURE__*/jsx("br", {}), /*#__PURE__*/jsx("span", {
6080
- style: {
6113
+ iconStyle: {
6081
6114
  fontWeight: 600
6082
6115
  },
6083
6116
  children: "Text formatting:"
6084
6117
  }), /*#__PURE__*/jsx("br", {}), /*#__PURE__*/jsx("br", {}), "Surround text with ", /*#__PURE__*/jsx("span", {
6085
- style: {
6118
+ iconStyle: {
6086
6119
  fontWeight: 400
6087
6120
  },
6088
6121
  children: "**"
6089
6122
  }), " to create bold text:", /*#__PURE__*/jsx("br", {}), /*#__PURE__*/jsx("span", {
6090
- style: {
6123
+ iconStyle: {
6091
6124
  fontWeight: 400
6092
6125
  },
6093
6126
  children: "**"
6094
6127
  }), "Some Text", /*#__PURE__*/jsx("span", {
6095
- style: {
6128
+ iconStyle: {
6096
6129
  fontWeight: 400
6097
6130
  },
6098
6131
  children: "**"
6099
6132
  }), " =", " ", /*#__PURE__*/jsx("span", {
6100
- style: {
6133
+ iconStyle: {
6101
6134
  fontWeight: 600
6102
6135
  },
6103
6136
  children: "Some Text"
6104
6137
  }), /*#__PURE__*/jsx("br", {}), /*#__PURE__*/jsx("br", {}), "Surround text with ", /*#__PURE__*/jsx("span", {
6105
- style: {
6138
+ iconStyle: {
6106
6139
  fontWeight: 400
6107
6140
  },
6108
6141
  children: "*t*"
6109
6142
  }), " to create a title:", /*#__PURE__*/jsx("br", {}), /*#__PURE__*/jsx("span", {
6110
- style: {
6143
+ iconStyle: {
6111
6144
  fontWeight: 400
6112
6145
  },
6113
6146
  children: "*t*"
6114
6147
  }), "Some Text", /*#__PURE__*/jsx("span", {
6115
- style: {
6148
+ iconStyle: {
6116
6149
  fontWeight: 400
6117
6150
  },
6118
6151
  children: "*t*"
@@ -6124,33 +6157,33 @@ class TextFormatPopup extends Component {
6124
6157
  },
6125
6158
  children: "Some Text"
6126
6159
  }), /*#__PURE__*/jsx("br", {}), /*#__PURE__*/jsx("br", {}), "Surround text with ", /*#__PURE__*/jsx("span", {
6127
- style: {
6160
+ iconStyle: {
6128
6161
  fontWeight: 400
6129
6162
  },
6130
6163
  children: "*s*"
6131
6164
  }), " to create a smaller title:", /*#__PURE__*/jsx("br", {}), /*#__PURE__*/jsx("span", {
6132
- style: {
6165
+ iconStyle: {
6133
6166
  fontWeight: 400
6134
6167
  },
6135
6168
  children: "*s*"
6136
6169
  }), "Some Text", /*#__PURE__*/jsx("span", {
6137
- style: {
6170
+ iconStyle: {
6138
6171
  fontWeight: 400
6139
6172
  },
6140
6173
  children: "*s*"
6141
6174
  }), " =", " ", /*#__PURE__*/jsx("span", {
6142
- style: {
6175
+ iconStyle: {
6143
6176
  fontWeight: 600,
6144
6177
  fontSize: 16
6145
6178
  },
6146
6179
  children: "Some Text"
6147
6180
  }), /*#__PURE__*/jsx("br", {}), /*#__PURE__*/jsx("br", {}), "Create links with", " ", /*#__PURE__*/jsx("span", {
6148
- style: {
6181
+ iconStyle: {
6149
6182
  fontWeight: 400
6150
6183
  },
6151
6184
  children: "[website|text]"
6152
6185
  }), ":", /*#__PURE__*/jsx("br", {}), /*#__PURE__*/jsx("span", {
6153
- style: {
6186
+ iconStyle: {
6154
6187
  fontWeight: 400
6155
6188
  },
6156
6189
  children: "[https://example.com|Click here]"
@@ -6199,7 +6232,7 @@ class OptionsSection extends Component {
6199
6232
  },
6200
6233
  children: [/*#__PURE__*/jsx("div", {
6201
6234
  className: "optionsButton_iconContainer",
6202
- children: /*#__PURE__*/jsx(Icon, {
6235
+ children: /*#__PURE__*/jsx(Icon$1, {
6203
6236
  className: "optionsButton_icon",
6204
6237
  icon: o.icon
6205
6238
  })
@@ -6427,10 +6460,10 @@ class MakerPopup extends Component {
6427
6460
  if (input.type === "array") {
6428
6461
  return /*#__PURE__*/jsxs("div", {
6429
6462
  className: "marginTop-16",
6430
- children: [/*#__PURE__*/jsx(Text, {
6463
+ children: [/*#__PURE__*/jsx(Text$1, {
6431
6464
  type: "formLabel",
6432
6465
  children: input.title
6433
- }), /*#__PURE__*/jsxs(Text, {
6466
+ }), /*#__PURE__*/jsxs(Text$1, {
6434
6467
  type: "body",
6435
6468
  children: [this.state[input.key].length, " ", getPluralOptions(this.state[input.key].length, "entry", "entries")]
6436
6469
  })]
@@ -6458,7 +6491,7 @@ class MakerPopup extends Component {
6458
6491
  width: 260,
6459
6492
  options: this.state.lottieConfig,
6460
6493
  isClickToPauseDisabled: true
6461
- }, "lottie-layout"), /*#__PURE__*/jsx(Text, {
6494
+ }, "lottie-layout"), /*#__PURE__*/jsx(Text$1, {
6462
6495
  type: "h3",
6463
6496
  className: "marginTop-16",
6464
6497
  children: "Generating"
@@ -6467,7 +6500,7 @@ class MakerPopup extends Component {
6467
6500
  }
6468
6501
  if (this.state.asset) {
6469
6502
  return /*#__PURE__*/jsxs("div", {
6470
- children: [/*#__PURE__*/jsx(Text, {
6503
+ children: [/*#__PURE__*/jsx(Text$1, {
6471
6504
  type: "h4",
6472
6505
  children: "Your file is ready"
6473
6506
  }), /*#__PURE__*/jsx(Button, {
@@ -6671,8 +6704,8 @@ class ExportCsvPopup extends Component {
6671
6704
  maxWidth: 500,
6672
6705
  textAlign: "center"
6673
6706
  },
6674
- children: /*#__PURE__*/jsx(Icon, {
6675
- style: {
6707
+ children: /*#__PURE__*/jsx(Icon$1, {
6708
+ iconStyle: {
6676
6709
  fontSize: 30
6677
6710
  },
6678
6711
  icon: "spinner",
@@ -6746,7 +6779,7 @@ class ExportCsvPopup extends Component {
6746
6779
  hasPadding: true,
6747
6780
  onClose: this.onClose,
6748
6781
  buttons: buttons,
6749
- children: [this.renderTimestampFilter(), /*#__PURE__*/jsx(Text, {
6782
+ children: [this.renderTimestampFilter(), /*#__PURE__*/jsx(Text$1, {
6750
6783
  type: "bodyLarge",
6751
6784
  children: "Select which columns to include in the export"
6752
6785
  }), this.renderContent()]
@@ -6907,7 +6940,7 @@ class ColourOptions extends Component {
6907
6940
  backgroundColor: colour
6908
6941
  },
6909
6942
  onClick: () => this.onColourChange(colour),
6910
- children: /*#__PURE__*/jsx(Icon, {
6943
+ children: /*#__PURE__*/jsx(Icon$1, {
6911
6944
  icon: "check",
6912
6945
  className: "colourQuickChoices_circle_tick"
6913
6946
  })
@@ -7114,7 +7147,7 @@ class ColourPicker extends Component {
7114
7147
  backgroundColor: colour
7115
7148
  },
7116
7149
  onClick: () => this.onColourChange(colour),
7117
- children: /*#__PURE__*/jsx(Icon, {
7150
+ children: /*#__PURE__*/jsx(Icon$1, {
7118
7151
  icon: "check",
7119
7152
  className: "colourQuickChoices_circle_tick"
7120
7153
  })
@@ -7279,6 +7312,148 @@ class ColourPicker extends Component {
7279
7312
  }
7280
7313
  }
7281
7314
 
7315
+ var BAR_HEIGHT = 48;
7316
+ var CHART_PADDING = 10;
7317
+ var BarLabel = _ref => {
7318
+ var {
7319
+ x,
7320
+ y,
7321
+ width,
7322
+ height,
7323
+ value
7324
+ } = _ref;
7325
+ if (!width || width < 30) return null;
7326
+ return /*#__PURE__*/jsx("text", {
7327
+ x: x + 10,
7328
+ y: y + height / 2,
7329
+ fill: "#fff",
7330
+ fontSize: 13,
7331
+ fontWeight: "bold",
7332
+ dominantBaseline: "middle",
7333
+ children: value
7334
+ });
7335
+ };
7336
+ var ComparisonStatBox = _ref2 => {
7337
+ var {
7338
+ title,
7339
+ data,
7340
+ prevText,
7341
+ viewGraphLink,
7342
+ isLoading,
7343
+ borderless,
7344
+ hideTotal
7345
+ } = _ref2;
7346
+ var total = data.reduce((sum, d) => sum + (d.value || 0), 0);
7347
+ var chartHeight = data.length * BAR_HEIGHT + CHART_PADDING;
7348
+ var maxLabelLength = data.reduce((max, d) => Math.max(max, d.name.length), 0);
7349
+ var yAxisWidth = Math.min(Math.max(maxLabelLength * 7, 80), 160);
7350
+ var opacity = isLoading ? 0.3 : 1;
7351
+ var wrapperStyle = borderless ? {
7352
+ opacity,
7353
+ padding: "12px 0"
7354
+ } : {
7355
+ opacity,
7356
+ padding: 20
7357
+ };
7358
+ var wrapperClass = borderless ? "" : "dashboardBox";
7359
+ return /*#__PURE__*/jsxs("div", {
7360
+ className: wrapperClass,
7361
+ style: wrapperStyle,
7362
+ children: [/*#__PURE__*/jsxs("div", {
7363
+ style: {
7364
+ display: "flex",
7365
+ justifyContent: "space-between",
7366
+ alignItems: "center",
7367
+ marginBottom: 8
7368
+ },
7369
+ children: [/*#__PURE__*/jsx(Text$1, {
7370
+ type: "h6",
7371
+ children: title
7372
+ }), !hideTotal && /*#__PURE__*/jsxs("div", {
7373
+ style: {
7374
+ border: "1px solid #e0e0e0",
7375
+ borderRadius: 4,
7376
+ padding: "4px 10px",
7377
+ fontSize: 13
7378
+ },
7379
+ children: ["Total: ", /*#__PURE__*/jsx("strong", {
7380
+ children: total.toLocaleString()
7381
+ })]
7382
+ })]
7383
+ }), /*#__PURE__*/jsx("div", {
7384
+ style: {
7385
+ marginLeft: -8
7386
+ },
7387
+ children: /*#__PURE__*/jsx(ResponsiveContainer, {
7388
+ width: "100%",
7389
+ height: chartHeight,
7390
+ children: /*#__PURE__*/jsxs(BarChart, {
7391
+ data: data,
7392
+ layout: "vertical",
7393
+ margin: {
7394
+ top: 4,
7395
+ right: 4,
7396
+ bottom: 0,
7397
+ left: 0
7398
+ },
7399
+ barCategoryGap: "20%",
7400
+ children: [/*#__PURE__*/jsx(XAxis, {
7401
+ type: "number",
7402
+ hide: true
7403
+ }), /*#__PURE__*/jsx(YAxis, {
7404
+ type: "category",
7405
+ dataKey: "name",
7406
+ width: yAxisWidth,
7407
+ tick: {
7408
+ fontSize: 13
7409
+ },
7410
+ axisLine: false,
7411
+ tickLine: false
7412
+ }), /*#__PURE__*/jsx(Tooltip, {
7413
+ formatter: value => [value.toLocaleString(), title]
7414
+ }), /*#__PURE__*/jsx(Bar, {
7415
+ dataKey: "value",
7416
+ radius: [4, 4, 4, 4],
7417
+ background: {
7418
+ fill: "#f0f0f4",
7419
+ radius: 4
7420
+ },
7421
+ label: BarLabel,
7422
+ children: data.map((entry, index) => /*#__PURE__*/jsx(Cell, {
7423
+ fill: getSiteColour(index)
7424
+ }, entry.name))
7425
+ })]
7426
+ })
7427
+ })
7428
+ }), !borderless && /*#__PURE__*/jsxs("div", {
7429
+ style: {
7430
+ display: "flex",
7431
+ justifyContent: "space-between",
7432
+ alignItems: "center",
7433
+ marginTop: 8,
7434
+ borderTop: "1px solid #f0f0f0",
7435
+ paddingTop: 12
7436
+ },
7437
+ children: [/*#__PURE__*/jsx(Text$1, {
7438
+ type: "help",
7439
+ children: prevText ? "Compared to " + prevText : ""
7440
+ }), viewGraphLink ? /*#__PURE__*/jsx(Link, {
7441
+ to: viewGraphLink + "&title=" + title,
7442
+ children: /*#__PURE__*/jsxs(Text$1, {
7443
+ type: "h5-noUpper",
7444
+ className: "text-link",
7445
+ children: [/*#__PURE__*/jsx(Icon$1, {
7446
+ icon: "chart-line",
7447
+ iconStyle: {
7448
+ marginRight: 4
7449
+ }
7450
+ }), "View Graph"]
7451
+ })
7452
+ }) : /*#__PURE__*/jsx("div", {})]
7453
+ })]
7454
+ });
7455
+ };
7456
+
7282
7457
  var StatBox = _ref => {
7283
7458
  var {
7284
7459
  title,
@@ -7302,19 +7477,19 @@ var StatBox = _ref => {
7302
7477
  className: "dashboardBox dashboardBox-stats dashboardBox-inline".concat(change > 0 ? " dashboardBox-stats-positive" : "").concat(change < 0 ? " dashboardBox-stats-negative" : ""),
7303
7478
  children: [/*#__PURE__*/jsx("div", {
7304
7479
  className: "dashboardBox-stats_title",
7305
- children: /*#__PURE__*/jsx(Text, {
7480
+ children: /*#__PURE__*/jsx(Text$1, {
7306
7481
  type: "h6",
7307
7482
  children: title
7308
7483
  })
7309
7484
  }), /*#__PURE__*/jsxs("div", {
7310
7485
  className: "dashboardBox-stats_mid",
7311
- style: {
7486
+ iconStyle: {
7312
7487
  opacity
7313
7488
  },
7314
- children: [/*#__PURE__*/jsx(Icon, {
7489
+ children: [/*#__PURE__*/jsx(Icon$1, {
7315
7490
  className: "dashboardBox-stats_icon",
7316
7491
  icon: icon
7317
- }), /*#__PURE__*/jsx(Text, {
7492
+ }), /*#__PURE__*/jsx(Text$1, {
7318
7493
  type: "h2",
7319
7494
  className: "dashboardBox-stats_count",
7320
7495
  children: value
@@ -7322,20 +7497,20 @@ var StatBox = _ref => {
7322
7497
  className: "dashboardBox-stats_change",
7323
7498
  children: change === 0 ? "No change" : "".concat(change, "% ").concat(change < 0 ? "↓" : "↑")
7324
7499
  })]
7325
- }), /*#__PURE__*/jsxs(Text, {
7500
+ }), /*#__PURE__*/jsxs(Text$1, {
7326
7501
  type: "help",
7327
- style: {
7502
+ iconStyle: {
7328
7503
  opacity
7329
7504
  },
7330
7505
  children: ["Compared to ", prevText]
7331
7506
  }), viewGraphLink && /*#__PURE__*/jsx(Link, {
7332
7507
  to: "".concat(viewGraphLink, "&title=").concat(title),
7333
- children: /*#__PURE__*/jsxs(Text, {
7508
+ children: /*#__PURE__*/jsxs(Text$1, {
7334
7509
  type: "h5-noUpper",
7335
7510
  className: "text-link marginTop-10",
7336
- children: [/*#__PURE__*/jsx(Icon, {
7511
+ children: [/*#__PURE__*/jsx(Icon$1, {
7337
7512
  icon: "chart-line",
7338
- style: {
7513
+ iconStyle: {
7339
7514
  marginRight: 4
7340
7515
  }
7341
7516
  }), "View Graph"]
@@ -7344,5 +7519,5 @@ var StatBox = _ref => {
7344
7519
  });
7345
7520
  };
7346
7521
 
7347
- export { AddButton, AnalyticsFilter, Attachment, toExport as AudienceSelector, Button, CheckBox, ColourOptions, ColourPicker, Comment, CommentSection, DatePicker, DropdownInput, DurationInput, ExportCsvPopup, FileInput, GenericInput, exportObj$4 as Header, exportObj$2 as HubSidebar, ImageInput, InputGroup, exportObj as MakerPopup, MoreMenu, OptionsSection, OverlayPage, OverlayPageBottomButtons, OverlayPageContents, OverlayPageSection, PageTitle, Popup, ProfilePic, RadioButton, Reactions, exportObj$3 as SideNavItem, StatBox, StatusButton, SuccessPopup, Tabs, Tag, Text, TextFormatPopup, TimePicker, UserListing };
7522
+ export { AddButton, AnalyticsFilter, Attachment, toExport as AudienceSelector, Button, CheckBox, ColourOptions, ColourPicker, Comment, CommentSection, ComparisonStatBox, DatePicker, DropdownInput, DurationInput, ExportCsvPopup, FileInput, GenericInput, exportObj$4 as Header, exportObj$2 as HubSidebar, ImageInput, InputGroup, exportObj as MakerPopup, MoreMenu, OptionsSection, OverlayPage, OverlayPageBottomButtons, OverlayPageContents, OverlayPageSection, PageTitle, Popup, ProfilePic, RadioButton, Reactions, exportObj$3 as SideNavItem, StatBox, StatusButton, SuccessPopup, Tabs, Tag, Text$1 as Text, TextFormatPopup, TimePicker, UserListing };
7348
7523
  //# sourceMappingURL=components.js.map