@natoora-libs/core 0.2.22-task-management → 0.2.22-task-management-v1

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.
@@ -8467,7 +8467,7 @@ var TableDesktop = ({
8467
8467
  };
8468
8468
 
8469
8469
  // src/components/TableDesktopEditableField/TableDesktopEditableField.tsx
8470
- import { useEffect as useEffect12, useState as useState21 } from "react";
8470
+ import { useEffect as useEffect13, useState as useState23 } from "react";
8471
8471
  import DeleteIcon from "@mui/icons-material/Delete";
8472
8472
  import { Checkbox as Checkbox8, FormControlLabel as FormControlLabel5 } from "@mui/material";
8473
8473
  import { DatePicker, TimePicker } from "@mui/x-date-pickers";
@@ -8581,10 +8581,165 @@ var TableDesktopSmartSelect = ({
8581
8581
  );
8582
8582
  };
8583
8583
 
8584
- // src/components/TableDesktopEditableField/TableDesktopTextField.tsx
8585
- import { useMemo as useMemo6, useState as useState20, useRef as useRef8 } from "react";
8586
- import { TextField as TextField8 } from "@mui/material";
8584
+ // src/components/TableDesktopEditableField/TableDesktopTagsField.tsx
8585
+ import { useEffect as useEffect12, useState as useState21 } from "react";
8586
+
8587
+ // src/components/HashtagInput/HashtagInput.tsx
8588
+ import { useState as useState20 } from "react";
8589
+ import {
8590
+ Autocomplete,
8591
+ Chip as Chip5,
8592
+ TextField as TextField8,
8593
+ alpha,
8594
+ useTheme
8595
+ } from "@mui/material";
8587
8596
  import { jsx as jsx130 } from "react/jsx-runtime";
8597
+ import { createElement } from "react";
8598
+ var HashtagInput = ({
8599
+ label,
8600
+ placeholder,
8601
+ variant,
8602
+ error,
8603
+ helperText,
8604
+ onCreateTag,
8605
+ onDeleteTag,
8606
+ ...props
8607
+ }) => {
8608
+ const { palette } = useTheme();
8609
+ const [inputValue, setInputValue] = useState20("");
8610
+ const sanitizeTag = (value) => {
8611
+ return value.toLowerCase().replace(/[^a-z0-9#]/g, "").trim();
8612
+ };
8613
+ const handleKeyDown = (event) => {
8614
+ if ((event.key === " " || event.key === "Enter") && inputValue) {
8615
+ event.preventDefault();
8616
+ event.stopPropagation();
8617
+ const cleaned = sanitizeTag(inputValue);
8618
+ if (!cleaned) return;
8619
+ onCreateTag?.(cleaned);
8620
+ setInputValue("");
8621
+ }
8622
+ };
8623
+ return /* @__PURE__ */ jsx130(
8624
+ Autocomplete,
8625
+ {
8626
+ ...props,
8627
+ multiple: true,
8628
+ freeSolo: true,
8629
+ fullWidth: true,
8630
+ disableClearable: true,
8631
+ value: props.value || [],
8632
+ options: [],
8633
+ inputValue: inputValue.toLocaleLowerCase(),
8634
+ onInputChange: (_event, newInputValue) => {
8635
+ setInputValue(sanitizeTag(newInputValue));
8636
+ },
8637
+ onChange: (_event, _newValue, reason, details) => {
8638
+ if (reason === "removeOption" && details?.option) {
8639
+ onDeleteTag?.(details.option);
8640
+ }
8641
+ },
8642
+ renderInput: (params) => /* @__PURE__ */ jsx130(
8643
+ TextField8,
8644
+ {
8645
+ ...params,
8646
+ label,
8647
+ placeholder,
8648
+ helperText,
8649
+ variant,
8650
+ error,
8651
+ onKeyDown: handleKeyDown
8652
+ }
8653
+ ),
8654
+ renderValue: (value, getTagProps) => value.map((option, index) => {
8655
+ return /* @__PURE__ */ createElement(
8656
+ Chip5,
8657
+ {
8658
+ ...getTagProps({ index }),
8659
+ key: option.id,
8660
+ size: "small",
8661
+ label: `#${option.tag ?? option}`,
8662
+ sx: {
8663
+ paddingBlock: 0,
8664
+ color: palette.primary.main,
8665
+ fontWeight: "bold",
8666
+ backgroundColor: alpha(palette.primary.main, 0.1)
8667
+ }
8668
+ }
8669
+ );
8670
+ })
8671
+ }
8672
+ );
8673
+ };
8674
+
8675
+ // src/components/TableDesktopEditableField/TableDesktopTagsField.tsx
8676
+ import { Fragment as Fragment15, jsx as jsx131 } from "react/jsx-runtime";
8677
+ var TableDesktopTagsField = ({
8678
+ initialValue,
8679
+ inputLabel,
8680
+ columnId,
8681
+ rowId,
8682
+ disabled,
8683
+ variant = "standard",
8684
+ size,
8685
+ onUpdateEditableCell
8686
+ }) => {
8687
+ const [error, setError] = useState21();
8688
+ const [values, setValues] = useState21([]);
8689
+ const validateTag = (tag) => {
8690
+ if (tag.length >= 30) {
8691
+ return false;
8692
+ }
8693
+ return true;
8694
+ };
8695
+ const handleManageTags = (tag, operation) => {
8696
+ const isRemoving = operation === "REMOVE";
8697
+ const isValid = validateTag(tag);
8698
+ if (!isValid) {
8699
+ setError("Tag must have at most 30 characters");
8700
+ return;
8701
+ }
8702
+ setError(null);
8703
+ const newTags = isRemoving ? values.filter((t) => t !== tag) : [...values, tag];
8704
+ setValues(newTags);
8705
+ };
8706
+ useEffect12(() => {
8707
+ setValues((initialValue ?? []).map((val) => val.tag));
8708
+ }, [initialValue]);
8709
+ return /* @__PURE__ */ jsx131(Fragment15, { children: /* @__PURE__ */ jsx131(
8710
+ HashtagInput,
8711
+ {
8712
+ label: inputLabel,
8713
+ variant,
8714
+ size,
8715
+ disabled,
8716
+ value: values,
8717
+ error: !!error,
8718
+ helperText: error,
8719
+ onCreateTag: (tagName) => {
8720
+ if (!tagName) return;
8721
+ handleManageTags(tagName, "ADD");
8722
+ },
8723
+ onDeleteTag: (tag) => {
8724
+ if (!tag) return;
8725
+ handleManageTags(tag, "REMOVE");
8726
+ },
8727
+ onBlur: () => {
8728
+ onUpdateEditableCell?.({
8729
+ rowId,
8730
+ columnId,
8731
+ value: values,
8732
+ label: values.join(", ")
8733
+ });
8734
+ }
8735
+ }
8736
+ ) });
8737
+ };
8738
+
8739
+ // src/components/TableDesktopEditableField/TableDesktopTextField.tsx
8740
+ import { useMemo as useMemo6, useState as useState22, useRef as useRef8 } from "react";
8741
+ import { TextField as TextField9 } from "@mui/material";
8742
+ import { jsx as jsx132 } from "react/jsx-runtime";
8588
8743
  var TableDesktopTextField = ({
8589
8744
  rowId,
8590
8745
  initialValue,
@@ -8597,7 +8752,7 @@ var TableDesktopTextField = ({
8597
8752
  validateInput,
8598
8753
  onUpdateEditableCell
8599
8754
  }) => {
8600
- const [input, setInput] = useState20(initialValue);
8755
+ const [input, setInput] = useState22(initialValue);
8601
8756
  const oldValue = useRef8(initialValue);
8602
8757
  const isDirty = useMemo6(
8603
8758
  () => input !== oldValue.current,
@@ -8621,8 +8776,8 @@ var TableDesktopTextField = ({
8621
8776
  commitValue(input);
8622
8777
  }
8623
8778
  };
8624
- return /* @__PURE__ */ jsx130(
8625
- TextField8,
8779
+ return /* @__PURE__ */ jsx132(
8780
+ TextField9,
8626
8781
  {
8627
8782
  fullWidth: true,
8628
8783
  variant,
@@ -8654,7 +8809,7 @@ var TableDesktopTextField = ({
8654
8809
  };
8655
8810
 
8656
8811
  // src/components/TableDesktopEditableField/TableDesktopEditableField.tsx
8657
- import { jsx as jsx131 } from "react/jsx-runtime";
8812
+ import { jsx as jsx133 } from "react/jsx-runtime";
8658
8813
  var TableDesktopEditableField = ({
8659
8814
  editInitialValue,
8660
8815
  rowId,
@@ -8675,8 +8830,8 @@ var TableDesktopEditableField = ({
8675
8830
  allowBlankSelectOption
8676
8831
  }
8677
8832
  }) => {
8678
- const [parsedFilterOptions, setParsedFilterOptions] = useState21();
8679
- useEffect12(() => {
8833
+ const [parsedFilterOptions, setParsedFilterOptions] = useState23();
8834
+ useEffect13(() => {
8680
8835
  if (filterOptions && editableCellType === "select" || editableCellType === "multipleSelect") {
8681
8836
  const parsedOptions = filterOptions?.map(
8682
8837
  (option) => ({
@@ -8688,7 +8843,7 @@ var TableDesktopEditableField = ({
8688
8843
  }
8689
8844
  }, [filterOptions, editableCellType]);
8690
8845
  const editableComponents = {
8691
- select: /* @__PURE__ */ jsx131(
8846
+ select: /* @__PURE__ */ jsx133(
8692
8847
  TableDesktopSmartSelect,
8693
8848
  {
8694
8849
  rowId,
@@ -8706,7 +8861,7 @@ var TableDesktopEditableField = ({
8706
8861
  onUpdateEditableCell
8707
8862
  }
8708
8863
  ),
8709
- multipleSelect: /* @__PURE__ */ jsx131(
8864
+ multipleSelect: /* @__PURE__ */ jsx133(
8710
8865
  TableDesktopSmartMultipleSelect,
8711
8866
  {
8712
8867
  rowId,
@@ -8723,11 +8878,11 @@ var TableDesktopEditableField = ({
8723
8878
  onUpdateEditableCell
8724
8879
  }
8725
8880
  ),
8726
- checkbox: /* @__PURE__ */ jsx131(
8881
+ checkbox: /* @__PURE__ */ jsx133(
8727
8882
  FormControlLabel5,
8728
8883
  {
8729
8884
  label: showCheckboxLabel ? inputLabel : "",
8730
- control: /* @__PURE__ */ jsx131(
8885
+ control: /* @__PURE__ */ jsx133(
8731
8886
  Checkbox8,
8732
8887
  {
8733
8888
  disableRipple: true,
@@ -8745,7 +8900,7 @@ var TableDesktopEditableField = ({
8745
8900
  )
8746
8901
  }
8747
8902
  ),
8748
- text: /* @__PURE__ */ jsx131(
8903
+ text: /* @__PURE__ */ jsx133(
8749
8904
  TableDesktopTextField,
8750
8905
  {
8751
8906
  type: "text",
@@ -8760,7 +8915,7 @@ var TableDesktopEditableField = ({
8760
8915
  onUpdateEditableCell
8761
8916
  }
8762
8917
  ),
8763
- numeric: /* @__PURE__ */ jsx131(
8918
+ numeric: /* @__PURE__ */ jsx133(
8764
8919
  TableDesktopTextField,
8765
8920
  {
8766
8921
  type: "numeric",
@@ -8775,7 +8930,7 @@ var TableDesktopEditableField = ({
8775
8930
  onUpdateEditableCell
8776
8931
  }
8777
8932
  ),
8778
- date: /* @__PURE__ */ jsx131(
8933
+ date: /* @__PURE__ */ jsx133(
8779
8934
  DatePicker,
8780
8935
  {
8781
8936
  defaultValue: editInitialValue ? moment2(editInitialValue, "HH:mm:ss") : void 0,
@@ -8804,7 +8959,7 @@ var TableDesktopEditableField = ({
8804
8959
  }
8805
8960
  }
8806
8961
  ),
8807
- time: /* @__PURE__ */ jsx131(
8962
+ time: /* @__PURE__ */ jsx133(
8808
8963
  TimePicker,
8809
8964
  {
8810
8965
  defaultValue: editInitialValue ? moment2(editInitialValue, "HH:mm:ss") : void 0,
@@ -8830,6 +8985,18 @@ var TableDesktopEditableField = ({
8830
8985
  }
8831
8986
  }
8832
8987
  }
8988
+ ),
8989
+ tags: /* @__PURE__ */ jsx133(
8990
+ TableDesktopTagsField,
8991
+ {
8992
+ initialValue: editInitialValue,
8993
+ inputLabel,
8994
+ variant,
8995
+ size,
8996
+ onUpdateEditableCell,
8997
+ rowId,
8998
+ columnId
8999
+ }
8833
9000
  )
8834
9001
  };
8835
9002
  if (!editableCellType) {
@@ -8849,7 +9016,7 @@ import {
8849
9016
  Stack,
8850
9017
  Typography as Typography34
8851
9018
  } from "@mui/material";
8852
- import { jsx as jsx132, jsxs as jsxs89 } from "react/jsx-runtime";
9019
+ import { jsx as jsx134, jsxs as jsxs89 } from "react/jsx-runtime";
8853
9020
  var TableDesktopFooter = ({
8854
9021
  numPages,
8855
9022
  page,
@@ -8872,7 +9039,7 @@ var TableDesktopFooter = ({
8872
9039
  borderTop: `1px solid ${colors.neutral300}`
8873
9040
  },
8874
9041
  children: [
8875
- refetchData ? /* @__PURE__ */ jsx132(
9042
+ refetchData ? /* @__PURE__ */ jsx134(
8876
9043
  Button18,
8877
9044
  {
8878
9045
  disableRipple: true,
@@ -8884,7 +9051,7 @@ var TableDesktopFooter = ({
8884
9051
  ml: 1,
8885
9052
  gap: 1
8886
9053
  },
8887
- children: /* @__PURE__ */ jsx132(
9054
+ children: /* @__PURE__ */ jsx134(
8888
9055
  Refresh3,
8889
9056
  {
8890
9057
  fontSize: "small",
@@ -8895,19 +9062,19 @@ var TableDesktopFooter = ({
8895
9062
  ) : null,
8896
9063
  /* @__PURE__ */ jsxs89(Box42, { sx: { display: "flex", ml: "auto", py: 1 }, children: [
8897
9064
  pageSize && pageSizeOptions && onPageSizeChange ? /* @__PURE__ */ jsxs89(Stack, { direction: "row", spacing: 2, alignItems: "center", children: [
8898
- /* @__PURE__ */ jsx132(Typography34, { fontSize: 12, children: "Rows per page:" }),
8899
- /* @__PURE__ */ jsx132(
9065
+ /* @__PURE__ */ jsx134(Typography34, { fontSize: 12, children: "Rows per page:" }),
9066
+ /* @__PURE__ */ jsx134(
8900
9067
  Select5,
8901
9068
  {
8902
9069
  value: pageSize,
8903
9070
  onChange: onPageSizeChange,
8904
9071
  size: "small",
8905
9072
  variant: "standard",
8906
- children: pageSizeOptions.map((pageSizeOption) => /* @__PURE__ */ jsx132(MenuItem4, { value: pageSizeOption, children: pageSizeOption }, pageSizeOption))
9073
+ children: pageSizeOptions.map((pageSizeOption) => /* @__PURE__ */ jsx134(MenuItem4, { value: pageSizeOption, children: pageSizeOption }, pageSizeOption))
8907
9074
  }
8908
9075
  )
8909
9076
  ] }) : null,
8910
- /* @__PURE__ */ jsx132(
9077
+ /* @__PURE__ */ jsx134(
8911
9078
  Pagination2,
8912
9079
  {
8913
9080
  color: "standard",
@@ -8923,15 +9090,15 @@ var TableDesktopFooter = ({
8923
9090
  };
8924
9091
 
8925
9092
  // src/components/TableDesktopCell/TableDesktopCell.tsx
8926
- import { useEffect as useEffect13, useState as useState22 } from "react";
9093
+ import { useEffect as useEffect14, useState as useState24 } from "react";
8927
9094
  import CheckIcon3 from "@mui/icons-material/Check";
8928
9095
  import CloseIcon from "@mui/icons-material/Close";
8929
9096
  import EditIcon from "@mui/icons-material/Edit";
8930
9097
  import { IconButton as IconButton5, TableCell as TableCell6, Tooltip as Tooltip10 } from "@mui/material";
8931
- import { Fragment as Fragment15, jsx as jsx133, jsxs as jsxs90 } from "react/jsx-runtime";
9098
+ import { Fragment as Fragment16, jsx as jsx135, jsxs as jsxs90 } from "react/jsx-runtime";
8932
9099
  var getReadOnlyBooleanIcon = (value) => {
8933
9100
  if (value) {
8934
- return /* @__PURE__ */ jsx133(CheckIcon3, { sx: { fontSize: 16 } });
9101
+ return /* @__PURE__ */ jsx135(CheckIcon3, { sx: { fontSize: 16 } });
8935
9102
  }
8936
9103
  return "-";
8937
9104
  };
@@ -8953,10 +9120,10 @@ var TableDesktopCell = ({
8953
9120
  onCellClick,
8954
9121
  headCell
8955
9122
  }) => {
8956
- const [isCellHovered, setIsCellHovered] = useState22(false);
8957
- const [isCellInEditMode, setIsCellInEditMode] = useState22(false);
9123
+ const [isCellHovered, setIsCellHovered] = useState24(false);
9124
+ const [isCellInEditMode, setIsCellInEditMode] = useState24(false);
8958
9125
  const { width, editableCellType } = headCell;
8959
- useEffect13(() => {
9126
+ useEffect14(() => {
8960
9127
  const handleKeyDown = (e) => {
8961
9128
  if (e.key === "Escape") {
8962
9129
  setIsCellInEditMode(false);
@@ -8974,7 +9141,7 @@ var TableDesktopCell = ({
8974
9141
  setIsCellInEditMode((prev) => !prev);
8975
9142
  };
8976
9143
  const isCellEditable = !!enableEditMode && !!editableCellType && !disabled;
8977
- return /* @__PURE__ */ jsx133(
9144
+ return /* @__PURE__ */ jsx135(
8978
9145
  TableCell6,
8979
9146
  {
8980
9147
  align: "left",
@@ -8989,8 +9156,8 @@ var TableDesktopCell = ({
8989
9156
  ":hover": isCellEditable ? getCellBackgroundColor(isCellInEditMode) : void 0,
8990
9157
  background: enableEditMode && isCellInEditMode ? colors.lightBlueBackground : void 0
8991
9158
  },
8992
- children: /* @__PURE__ */ jsx133(DynamicOverflowTooltip, { tooltipDescription: String(readOnlyValue), arrow: true, children: /* @__PURE__ */ jsxs90(Fragment15, { children: [
8993
- enableEditMode && isCellHovered ? /* @__PURE__ */ jsx133(Tooltip10, { title: isCellInEditMode ? "" : "Toggle Edit Mode", children: /* @__PURE__ */ jsx133(
9159
+ children: /* @__PURE__ */ jsx135(DynamicOverflowTooltip, { tooltipDescription: String(readOnlyValue), arrow: true, children: /* @__PURE__ */ jsxs90(Fragment16, { children: [
9160
+ enableEditMode && isCellHovered ? /* @__PURE__ */ jsx135(Tooltip10, { title: isCellInEditMode ? "" : "Toggle Edit Mode", children: /* @__PURE__ */ jsx135(
8994
9161
  IconButton5,
8995
9162
  {
8996
9163
  onClick: handleEditClick,
@@ -9005,10 +9172,10 @@ var TableDesktopCell = ({
9005
9172
  backgroundColor: isCellInEditMode ? colors.lightBlueBackground : colors.neutral150
9006
9173
  }
9007
9174
  },
9008
- children: isCellInEditMode ? /* @__PURE__ */ jsx133(CloseIcon, { fontSize: "small", color: "error" }) : /* @__PURE__ */ jsx133(EditIcon, { fontSize: "small" })
9175
+ children: isCellInEditMode ? /* @__PURE__ */ jsx135(CloseIcon, { fontSize: "small", color: "error" }) : /* @__PURE__ */ jsx135(EditIcon, { fontSize: "small" })
9009
9176
  }
9010
9177
  ) }) : null,
9011
- enableEditMode && isCellInEditMode && editableCellType ? /* @__PURE__ */ jsx133(
9178
+ enableEditMode && isCellInEditMode && editableCellType ? /* @__PURE__ */ jsx135(
9012
9179
  TableDesktopEditableField,
9013
9180
  {
9014
9181
  editInitialValue,
@@ -9025,7 +9192,7 @@ var TableDesktopCell = ({
9025
9192
 
9026
9193
  // src/components/TableDesktopToolbar/TableDesktopToolbar.tsx
9027
9194
  import {
9028
- useState as useState23,
9195
+ useState as useState25,
9029
9196
  useMemo as useMemo7,
9030
9197
  useRef as useRef9
9031
9198
  } from "react";
@@ -9042,7 +9209,7 @@ import {
9042
9209
  Tooltip as Tooltip11,
9043
9210
  Typography as Typography35
9044
9211
  } from "@mui/material";
9045
- import { Fragment as Fragment16, jsx as jsx134, jsxs as jsxs91 } from "react/jsx-runtime";
9212
+ import { Fragment as Fragment17, jsx as jsx136, jsxs as jsxs91 } from "react/jsx-runtime";
9046
9213
  var TableDesktopToolbar = ({
9047
9214
  toolbarLabel,
9048
9215
  headCells,
@@ -9066,10 +9233,10 @@ var TableDesktopToolbar = ({
9066
9233
  renderInfoIcons
9067
9234
  }) => {
9068
9235
  const scrollRef = useRef9(null);
9069
- const [bulkChanges, setBulkChanges] = useState23([]);
9070
- const [isBulkChangesDialogOpen, setIsBulkChangesDialogOpen] = useState23(false);
9071
- const [isExportCsvDialogOpen, setIsExportCsvDialogOpen] = useState23(false);
9072
- const [resetCounter, setResetCounter] = useState23(0);
9236
+ const [bulkChanges, setBulkChanges] = useState25([]);
9237
+ const [isBulkChangesDialogOpen, setIsBulkChangesDialogOpen] = useState25(false);
9238
+ const [isExportCsvDialogOpen, setIsExportCsvDialogOpen] = useState25(false);
9239
+ const [resetCounter, setResetCounter] = useState25(0);
9073
9240
  const visibleEditableColumns = useMemo7(
9074
9241
  () => headCells.filter(
9075
9242
  (headCell) => headCell?.enabled && !!headCell?.editableCellType
@@ -9128,20 +9295,20 @@ var TableDesktopToolbar = ({
9128
9295
  whiteSpace: "nowrap"
9129
9296
  },
9130
9297
  children: [
9131
- toolbarLabel ? /* @__PURE__ */ jsxs91(Fragment16, { children: [
9132
- /* @__PURE__ */ jsx134(Typography35, { variant: "subtitle2", color: "textSecondary", children: toolbarLabel }),
9133
- /* @__PURE__ */ jsx134(Divider11, { orientation: "vertical", sx: { height: 0.75, py: 2.5 } })
9298
+ toolbarLabel ? /* @__PURE__ */ jsxs91(Fragment17, { children: [
9299
+ /* @__PURE__ */ jsx136(Typography35, { variant: "subtitle2", color: "textSecondary", children: toolbarLabel }),
9300
+ /* @__PURE__ */ jsx136(Divider11, { orientation: "vertical", sx: { height: 0.75, py: 2.5 } })
9134
9301
  ] }) : null,
9135
- renderBulkChangesDialog && refetchData ? /* @__PURE__ */ jsx134(
9302
+ renderBulkChangesDialog && refetchData ? /* @__PURE__ */ jsx136(
9136
9303
  Tooltip11,
9137
9304
  {
9138
9305
  title: disableBulkChangesMode ? "Access denied, you don\u2019t have permission to use this feature." : "",
9139
- children: /* @__PURE__ */ jsx134(
9306
+ children: /* @__PURE__ */ jsx136(
9140
9307
  FormControlLabel6,
9141
9308
  {
9142
9309
  label: "Bulk Changes Mode",
9143
9310
  disabled: disableBulkChangesMode || !visibleEditableColumns.length,
9144
- control: /* @__PURE__ */ jsx134(
9311
+ control: /* @__PURE__ */ jsx136(
9145
9312
  Switch2,
9146
9313
  {
9147
9314
  size: "small",
@@ -9156,16 +9323,16 @@ var TableDesktopToolbar = ({
9156
9323
  ]
9157
9324
  }
9158
9325
  ),
9159
- isScrollable && /* @__PURE__ */ jsx134(
9326
+ isScrollable && /* @__PURE__ */ jsx136(
9160
9327
  IconButton6,
9161
9328
  {
9162
9329
  "aria-label": "scroll-left",
9163
9330
  sx: { padding: 0, alignSelf: "center" },
9164
9331
  onClick: () => scroll("left"),
9165
- children: /* @__PURE__ */ jsx134(KeyboardArrowLeft2, {})
9332
+ children: /* @__PURE__ */ jsx136(KeyboardArrowLeft2, {})
9166
9333
  }
9167
9334
  ),
9168
- /* @__PURE__ */ jsx134(
9335
+ /* @__PURE__ */ jsx136(
9169
9336
  Box43,
9170
9337
  {
9171
9338
  ref: scrollRef,
@@ -9183,12 +9350,15 @@ var TableDesktopToolbar = ({
9183
9350
  }
9184
9351
  },
9185
9352
  children: isBulkChangesMode ? visibleEditableColumns.map((headCell) => {
9186
- const { id, width, editableCellType } = headCell;
9187
- return editableCellType && /* @__PURE__ */ jsx134(
9353
+ const { id, width, editableCellType, bulkUpdateDisabled } = headCell;
9354
+ if (bulkUpdateDisabled) {
9355
+ return null;
9356
+ }
9357
+ return editableCellType && /* @__PURE__ */ jsx136(
9188
9358
  Box43,
9189
9359
  {
9190
9360
  sx: { width, flex: "0 0 auto" },
9191
- children: /* @__PURE__ */ jsx134(
9361
+ children: /* @__PURE__ */ jsx136(
9192
9362
  TableDesktopEditableField,
9193
9363
  {
9194
9364
  headCell,
@@ -9204,17 +9374,17 @@ var TableDesktopToolbar = ({
9204
9374
  }) : null
9205
9375
  }
9206
9376
  ),
9207
- isScrollable && /* @__PURE__ */ jsx134(
9377
+ isScrollable && /* @__PURE__ */ jsx136(
9208
9378
  IconButton6,
9209
9379
  {
9210
9380
  "aria-label": "scroll-right",
9211
9381
  sx: { p: 0, alignSelf: "center" },
9212
9382
  onClick: () => scroll("right"),
9213
- children: /* @__PURE__ */ jsx134(KeyboardArrowRight2, {})
9383
+ children: /* @__PURE__ */ jsx136(KeyboardArrowRight2, {})
9214
9384
  }
9215
9385
  ),
9216
- isBulkChangesMode ? /* @__PURE__ */ jsxs91(Fragment16, { children: [
9217
- /* @__PURE__ */ jsx134(
9386
+ isBulkChangesMode ? /* @__PURE__ */ jsxs91(Fragment17, { children: [
9387
+ /* @__PURE__ */ jsx136(
9218
9388
  Button19,
9219
9389
  {
9220
9390
  variant: "outlined",
@@ -9227,7 +9397,7 @@ var TableDesktopToolbar = ({
9227
9397
  children: "RESET"
9228
9398
  }
9229
9399
  ),
9230
- /* @__PURE__ */ jsx134(
9400
+ /* @__PURE__ */ jsx136(
9231
9401
  Button19,
9232
9402
  {
9233
9403
  variant: "contained",
@@ -9240,24 +9410,24 @@ var TableDesktopToolbar = ({
9240
9410
  )
9241
9411
  ] }) : /* @__PURE__ */ jsxs91(Box43, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
9242
9412
  renderInfoIcons,
9243
- renderExportCsvDialog ? /* @__PURE__ */ jsx134(Tooltip11, { title: "Download List", children: /* @__PURE__ */ jsx134("span", { style: { display: "flex", alignItems: "center" }, children: /* @__PURE__ */ jsx134(
9413
+ renderExportCsvDialog ? /* @__PURE__ */ jsx136(Tooltip11, { title: "Download List", children: /* @__PURE__ */ jsx136("span", { style: { display: "flex", alignItems: "center" }, children: /* @__PURE__ */ jsx136(
9244
9414
  IconButton6,
9245
9415
  {
9246
9416
  disableRipple: true,
9247
9417
  disabled: isDataEmpty,
9248
9418
  "aria-label": "export-csv-button",
9249
9419
  onClick: () => setIsExportCsvDialogOpen(true),
9250
- children: /* @__PURE__ */ jsx134(Download, { fill: colors.neutral750 })
9420
+ children: /* @__PURE__ */ jsx136(Download, { fill: colors.neutral750 })
9251
9421
  }
9252
9422
  ) }) }) : null,
9253
- renderTableColumnConfigurationMenu ? /* @__PURE__ */ jsx134(Tooltip11, { title: "Table Column Configuration", children: /* @__PURE__ */ jsx134(
9423
+ renderTableColumnConfigurationMenu ? /* @__PURE__ */ jsx136(Tooltip11, { title: "Table Column Configuration", children: /* @__PURE__ */ jsx136(
9254
9424
  IconButton6,
9255
9425
  {
9256
9426
  disableRipple: true,
9257
9427
  "aria-label": "table-column-config-button",
9258
9428
  ref: tableToolbarMenuButtonRef,
9259
9429
  onClick: onClickToolbarMenuOpen,
9260
- children: /* @__PURE__ */ jsx134(IconTableEdit_default, { fill: colors.neutral750 })
9430
+ children: /* @__PURE__ */ jsx136(IconTableEdit_default, { fill: colors.neutral750 })
9261
9431
  }
9262
9432
  ) }) : null
9263
9433
  ] })
@@ -9290,11 +9460,11 @@ var TableDesktopToolbar = ({
9290
9460
  };
9291
9461
 
9292
9462
  // src/components/TableHeader/TableHeader.tsx
9293
- import { memo as memo22, useEffect as useEffect14, useState as useState24 } from "react";
9463
+ import { memo as memo22, useEffect as useEffect15, useState as useState26 } from "react";
9294
9464
  import { ImportExport as ImportExportIcon } from "@mui/icons-material";
9295
9465
  import { TableCell as TableCell7, TableHead as TableHead3, TableRow as TableRow6, TableSortLabel as TableSortLabel3 } from "@mui/material";
9296
9466
  import { makeStyles as makeStyles46 } from "tss-react/mui";
9297
- import { jsx as jsx135 } from "react/jsx-runtime";
9467
+ import { jsx as jsx137 } from "react/jsx-runtime";
9298
9468
  var useStyles46 = makeStyles46()(() => ({
9299
9469
  sortLabel: {
9300
9470
  "& .MuiTableSortLabel-icon": {
@@ -9303,9 +9473,9 @@ var useStyles46 = makeStyles46()(() => ({
9303
9473
  }
9304
9474
  }));
9305
9475
  var TableHeader = ({ cells, onSort = null }) => {
9306
- const [sortableCells, setSortableCells] = useState24([]);
9476
+ const [sortableCells, setSortableCells] = useState26([]);
9307
9477
  const { classes } = useStyles46();
9308
- useEffect14(() => {
9478
+ useEffect15(() => {
9309
9479
  setSortableCells(cells);
9310
9480
  }, []);
9311
9481
  const getNewSortDirection = (direction) => {
@@ -9339,7 +9509,7 @@ var TableHeader = ({ cells, onSort = null }) => {
9339
9509
  });
9340
9510
  setSortableCells(sortedCells);
9341
9511
  };
9342
- return /* @__PURE__ */ jsx135(TableHead3, { children: /* @__PURE__ */ jsx135(TableRow6, { children: sortableCells.map((cell, key) => /* @__PURE__ */ jsx135(TableCell7, { children: cell.isSortable ? /* @__PURE__ */ jsx135(
9512
+ return /* @__PURE__ */ jsx137(TableHead3, { children: /* @__PURE__ */ jsx137(TableRow6, { children: sortableCells.map((cell, key) => /* @__PURE__ */ jsx137(TableCell7, { children: cell.isSortable ? /* @__PURE__ */ jsx137(
9343
9513
  TableSortLabel3,
9344
9514
  {
9345
9515
  className: classes.sortLabel,
@@ -9355,7 +9525,7 @@ var TableHeader_default = memo22(TableHeader);
9355
9525
  // src/components/TextDivider/TextDivider.tsx
9356
9526
  import { Box as Box44, Typography as Typography36, Divider as Divider12, Button as Button20 } from "@mui/material";
9357
9527
  import { makeStyles as makeStyles47 } from "tss-react/mui";
9358
- import { jsx as jsx136, jsxs as jsxs92 } from "react/jsx-runtime";
9528
+ import { jsx as jsx138, jsxs as jsxs92 } from "react/jsx-runtime";
9359
9529
  var useStyles47 = makeStyles47()(() => ({
9360
9530
  icon: {
9361
9531
  fontSize: 20
@@ -9400,10 +9570,10 @@ var TextDivider = ({
9400
9570
  justifyContent: "space-between",
9401
9571
  className: classes.container,
9402
9572
  children: [
9403
- /* @__PURE__ */ jsx136(Divider12, { className: classes.leftDivider }),
9404
- /* @__PURE__ */ jsx136(Button20, { onClick, disabled: !onClick, className: classes.button, children: /* @__PURE__ */ jsxs92(Box44, { className: classes.center, children: [
9405
- Icon2 && iconPosition === "left" && /* @__PURE__ */ jsx136(Icon2, { className: classes.icon, style: { color: iconColor } }),
9406
- /* @__PURE__ */ jsx136(
9573
+ /* @__PURE__ */ jsx138(Divider12, { className: classes.leftDivider }),
9574
+ /* @__PURE__ */ jsx138(Button20, { onClick, disabled: !onClick, className: classes.button, children: /* @__PURE__ */ jsxs92(Box44, { className: classes.center, children: [
9575
+ Icon2 && iconPosition === "left" && /* @__PURE__ */ jsx138(Icon2, { className: classes.icon, style: { color: iconColor } }),
9576
+ /* @__PURE__ */ jsx138(
9407
9577
  Typography36,
9408
9578
  {
9409
9579
  color: "textSecondary",
@@ -9412,9 +9582,9 @@ var TextDivider = ({
9412
9582
  children: title
9413
9583
  }
9414
9584
  ),
9415
- Icon2 && iconPosition === "right" && /* @__PURE__ */ jsx136(Icon2, { className: classes.icon, style: { color: iconColor } })
9585
+ Icon2 && iconPosition === "right" && /* @__PURE__ */ jsx138(Icon2, { className: classes.icon, style: { color: iconColor } })
9416
9586
  ] }) }),
9417
- /* @__PURE__ */ jsx136(Divider12, { className: classes.rightDivider })
9587
+ /* @__PURE__ */ jsx138(Divider12, { className: classes.rightDivider })
9418
9588
  ]
9419
9589
  }
9420
9590
  );
@@ -9426,7 +9596,7 @@ import { DateRangePicker } from "react-dates";
9426
9596
  import { makeStyles as makeStyles48 } from "tss-react/mui";
9427
9597
  import "react-dates/initialize";
9428
9598
  import "react-dates/lib/css/_datepicker.css";
9429
- import { jsx as jsx137 } from "react/jsx-runtime";
9599
+ import { jsx as jsx139 } from "react/jsx-runtime";
9430
9600
  var useStyles48 = makeStyles48()((theme) => ({
9431
9601
  wrapper: {
9432
9602
  "& .DateRangePicker": {
@@ -9522,7 +9692,7 @@ var ThemedDateRangePicker = ({
9522
9692
  ...props
9523
9693
  }) => {
9524
9694
  const { classes, cx } = useStyles48();
9525
- return /* @__PURE__ */ jsx137("div", { className: cx(classes.wrapper, className), children: /* @__PURE__ */ jsx137(DateRangePicker, { ...props }) });
9695
+ return /* @__PURE__ */ jsx139("div", { className: cx(classes.wrapper, className), children: /* @__PURE__ */ jsx139(DateRangePicker, { ...props }) });
9526
9696
  };
9527
9697
  var ThemedDateRangePicker_default = ThemedDateRangePicker;
9528
9698
 
@@ -9530,7 +9700,7 @@ var ThemedDateRangePicker_default = ThemedDateRangePicker;
9530
9700
  import { memo as memo23 } from "react";
9531
9701
  import { AppBar, Box as Box45, Toolbar } from "@mui/material";
9532
9702
  import { makeStyles as makeStyles49 } from "tss-react/mui";
9533
- import { jsx as jsx138, jsxs as jsxs93 } from "react/jsx-runtime";
9703
+ import { jsx as jsx140, jsxs as jsxs93 } from "react/jsx-runtime";
9534
9704
  var useStyles49 = makeStyles49()((theme) => ({
9535
9705
  menuButton: {
9536
9706
  color: theme.palette.primary.contrastText
@@ -9552,8 +9722,8 @@ var TheToolbar = ({
9552
9722
  }) => {
9553
9723
  const { classes } = useStyles49();
9554
9724
  return /* @__PURE__ */ jsxs93(Box45, { children: [
9555
- /* @__PURE__ */ jsx138(AppBar, { children: /* @__PURE__ */ jsxs93(Toolbar, { className: classes.topBar, children: [
9556
- isAuthenticated ? /* @__PURE__ */ jsx138(
9725
+ /* @__PURE__ */ jsx140(AppBar, { children: /* @__PURE__ */ jsxs93(Toolbar, { className: classes.topBar, children: [
9726
+ isAuthenticated ? /* @__PURE__ */ jsx140(
9557
9727
  RoundButton_default,
9558
9728
  {
9559
9729
  className: classes.menuButton,
@@ -9562,7 +9732,7 @@ var TheToolbar = ({
9562
9732
  onClick: handleOpen
9563
9733
  }
9564
9734
  ) : null,
9565
- /* @__PURE__ */ jsx138(
9735
+ /* @__PURE__ */ jsx140(
9566
9736
  CompanyLogo_default,
9567
9737
  {
9568
9738
  size: "small",
@@ -9571,8 +9741,8 @@ var TheToolbar = ({
9571
9741
  imageLogoLightSmall
9572
9742
  }
9573
9743
  ),
9574
- /* @__PURE__ */ jsx138(Box45, { ml: 2, children: leftSection }),
9575
- /* @__PURE__ */ jsx138(Box45, { ml: "auto", children: rightSection })
9744
+ /* @__PURE__ */ jsx140(Box45, { ml: 2, children: leftSection }),
9745
+ /* @__PURE__ */ jsx140(Box45, { ml: "auto", children: rightSection })
9576
9746
  ] }) }),
9577
9747
  LeftDrawer
9578
9748
  ] });
@@ -9581,20 +9751,20 @@ var TheToolbar_default = memo23(TheToolbar);
9581
9751
 
9582
9752
  // src/components/ToastMessage/ToastMessage.tsx
9583
9753
  import { Alert as MuiAlert, Snackbar } from "@mui/material";
9584
- import { jsx as jsx139 } from "react/jsx-runtime";
9754
+ import { jsx as jsx141 } from "react/jsx-runtime";
9585
9755
  var ToastMessage = ({
9586
9756
  toastType,
9587
9757
  toastMessage,
9588
9758
  open,
9589
9759
  onClose
9590
- }) => /* @__PURE__ */ jsx139(
9760
+ }) => /* @__PURE__ */ jsx141(
9591
9761
  Snackbar,
9592
9762
  {
9593
9763
  open,
9594
9764
  autoHideDuration: 3e3,
9595
9765
  onClose,
9596
9766
  anchorOrigin: { vertical: "top", horizontal: "right" },
9597
- children: /* @__PURE__ */ jsx139(
9767
+ children: /* @__PURE__ */ jsx141(
9598
9768
  MuiAlert,
9599
9769
  {
9600
9770
  elevation: 6,
@@ -9631,7 +9801,7 @@ import {
9631
9801
  Fade as Fade2
9632
9802
  } from "@mui/material";
9633
9803
  import { makeStyles as makeStyles50 } from "tss-react/mui";
9634
- import { jsx as jsx140, jsxs as jsxs94 } from "react/jsx-runtime";
9804
+ import { jsx as jsx142, jsxs as jsxs94 } from "react/jsx-runtime";
9635
9805
  var useStyles50 = makeStyles50()((theme) => ({
9636
9806
  paper: {
9637
9807
  padding: theme.spacing(2)
@@ -9661,7 +9831,7 @@ var TwoButtonDialog = ({
9661
9831
  cancelButton
9662
9832
  }) => {
9663
9833
  const { classes } = useStyles50();
9664
- return /* @__PURE__ */ jsx140(
9834
+ return /* @__PURE__ */ jsx142(
9665
9835
  Dialog5,
9666
9836
  {
9667
9837
  open,
@@ -9671,9 +9841,9 @@ var TwoButtonDialog = ({
9671
9841
  closeAfterTransition: true,
9672
9842
  BackdropComponent: Backdrop,
9673
9843
  BackdropProps: { timeout: 500 },
9674
- children: /* @__PURE__ */ jsx140(Fade2, { in: open, children: /* @__PURE__ */ jsxs94(Paper13, { className: classes.paper, children: [
9844
+ children: /* @__PURE__ */ jsx142(Fade2, { in: open, children: /* @__PURE__ */ jsxs94(Paper13, { className: classes.paper, children: [
9675
9845
  /* @__PURE__ */ jsxs94(Box46, { className: classes.mb, children: [
9676
- /* @__PURE__ */ jsx140(Typography37, { variant: "h5", component: "div", children: /* @__PURE__ */ jsx140(
9846
+ /* @__PURE__ */ jsx142(Typography37, { variant: "h5", component: "div", children: /* @__PURE__ */ jsx142(
9677
9847
  Box46,
9678
9848
  {
9679
9849
  sx: {
@@ -9690,15 +9860,15 @@ var TwoButtonDialog = ({
9690
9860
  fontWeight: 600
9691
9861
  },
9692
9862
  children: [
9693
- subtitle1 && /* @__PURE__ */ jsx140(Typography37, { variant: "subtitle1", children: subtitle1 }),
9694
- subtitle2 && /* @__PURE__ */ jsx140(Typography37, { variant: "subtitle1", children: subtitle2 })
9863
+ subtitle1 && /* @__PURE__ */ jsx142(Typography37, { variant: "subtitle1", children: subtitle1 }),
9864
+ subtitle2 && /* @__PURE__ */ jsx142(Typography37, { variant: "subtitle1", children: subtitle2 })
9695
9865
  ]
9696
9866
  }
9697
9867
  )
9698
9868
  ] }),
9699
- /* @__PURE__ */ jsx140(Divider13, {}),
9869
+ /* @__PURE__ */ jsx142(Divider13, {}),
9700
9870
  /* @__PURE__ */ jsxs94(Box46, { className: classes.buttonContainer, children: [
9701
- /* @__PURE__ */ jsx140(
9871
+ /* @__PURE__ */ jsx142(
9702
9872
  FilledButton_default,
9703
9873
  {
9704
9874
  copy: cancelLabel,
@@ -9711,7 +9881,7 @@ var TwoButtonDialog = ({
9711
9881
  }
9712
9882
  }
9713
9883
  ),
9714
- /* @__PURE__ */ jsx140(
9884
+ /* @__PURE__ */ jsx142(
9715
9885
  FilledButton_default,
9716
9886
  {
9717
9887
  color: "primary",
@@ -9720,7 +9890,7 @@ var TwoButtonDialog = ({
9720
9890
  }
9721
9891
  )
9722
9892
  ] }),
9723
- /* @__PURE__ */ jsx140(Loading_default, { isLoading: dialogLoading })
9893
+ /* @__PURE__ */ jsx142(Loading_default, { isLoading: dialogLoading })
9724
9894
  ] }) })
9725
9895
  }
9726
9896
  );
@@ -9730,9 +9900,9 @@ var TwoButtonDialog_default = TwoButtonDialog;
9730
9900
  // src/components/UserBust/UserBust.tsx
9731
9901
  import { memo as memo24 } from "react";
9732
9902
  import { Avatar as Avatar2, Typography as Typography38 } from "@mui/material";
9733
- import { jsx as jsx141, jsxs as jsxs95 } from "react/jsx-runtime";
9903
+ import { jsx as jsx143, jsxs as jsxs95 } from "react/jsx-runtime";
9734
9904
  var UserBust = ({ user, avatarProps, typographyProps }) => /* @__PURE__ */ jsxs95("div", { children: [
9735
- /* @__PURE__ */ jsx141(
9905
+ /* @__PURE__ */ jsx143(
9736
9906
  Avatar2,
9737
9907
  {
9738
9908
  src: user.profile_picture,
@@ -9741,17 +9911,17 @@ var UserBust = ({ user, avatarProps, typographyProps }) => /* @__PURE__ */ jsxs9
9741
9911
  }
9742
9912
  ),
9743
9913
  /* @__PURE__ */ jsxs95("div", { style: { paddingTop: 16 }, children: [
9744
- /* @__PURE__ */ jsx141(Typography38, { ...typographyProps.name, children: `${user.first_name} ${user.last_name}` }),
9745
- /* @__PURE__ */ jsx141(Typography38, { ...typographyProps.username, children: user.username })
9914
+ /* @__PURE__ */ jsx143(Typography38, { ...typographyProps.name, children: `${user.first_name} ${user.last_name}` }),
9915
+ /* @__PURE__ */ jsx143(Typography38, { ...typographyProps.username, children: user.username })
9746
9916
  ] })
9747
9917
  ] });
9748
9918
  var UserBust_default = memo24(UserBust);
9749
9919
 
9750
9920
  // src/components/icons/IconChart.tsx
9751
- import { jsx as jsx142 } from "react/jsx-runtime";
9921
+ import { jsx as jsx144 } from "react/jsx-runtime";
9752
9922
  var SvgIconChart = (props) => {
9753
9923
  const { fill } = props;
9754
- return /* @__PURE__ */ jsx142(
9924
+ return /* @__PURE__ */ jsx144(
9755
9925
  "svg",
9756
9926
  {
9757
9927
  width: "20",
@@ -9760,7 +9930,7 @@ var SvgIconChart = (props) => {
9760
9930
  fill: "none",
9761
9931
  xmlns: "http://www.w3.org/2000/svg",
9762
9932
  ...props,
9763
- children: /* @__PURE__ */ jsx142(
9933
+ children: /* @__PURE__ */ jsx144(
9764
9934
  "path",
9765
9935
  {
9766
9936
  d: "M2.49967 11.6667L2.91634 11.725L6.72467 7.91667C6.57467 7.375 6.71634 6.75833 7.15801 6.325C7.80801 5.66667 8.85801 5.66667 9.50801 6.325C9.94967 6.75833 10.0913 7.375 9.94134 7.91667L12.083 10.0583L12.4997 10C12.6497 10 12.7913 10 12.9163 10.0583L15.8913 7.08333C15.833 6.95833 15.833 6.81667 15.833 6.66667C15.833 6.22464 16.0086 5.80072 16.3212 5.48816C16.6337 5.17559 17.0576 5 17.4997 5C17.9417 5 18.3656 5.17559 18.6782 5.48816C18.9907 5.80072 19.1663 6.22464 19.1663 6.66667C19.1663 7.10869 18.9907 7.53262 18.6782 7.84518C18.3656 8.15774 17.9417 8.33333 17.4997 8.33333C17.3497 8.33333 17.208 8.33333 17.083 8.275L14.108 11.25C14.1663 11.375 14.1663 11.5167 14.1663 11.6667C14.1663 12.1087 13.9907 12.5326 13.6782 12.8452C13.3656 13.1577 12.9417 13.3333 12.4997 13.3333C12.0576 13.3333 11.6337 13.1577 11.3212 12.8452C11.0086 12.5326 10.833 12.1087 10.833 11.6667L10.8913 11.25L8.74967 9.10833C8.48301 9.16667 8.18301 9.16667 7.91634 9.10833L4.10801 12.9167L4.16634 13.3333C4.16634 13.7754 3.99075 14.1993 3.67819 14.5118C3.36563 14.8244 2.9417 15 2.49967 15C2.05765 15 1.63372 14.8244 1.32116 14.5118C1.0086 14.1993 0.833008 13.7754 0.833008 13.3333C0.833008 12.8913 1.0086 12.4674 1.32116 12.1548C1.63372 11.8423 2.05765 11.6667 2.49967 11.6667Z",
@@ -9805,6 +9975,7 @@ export {
9805
9975
  FilterOptionsCheckboxes,
9806
9976
  FilterSimpleSelector_default as FilterSimpleSelector,
9807
9977
  FixedFooter_default as FixedFooter,
9978
+ HashtagInput,
9808
9979
  Header_default as Header,
9809
9980
  IconChart_default as IconChart,
9810
9981
  IconCompare_default as IconCompare,