norma-library 0.6.894 → 0.6.981

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.
Files changed (78) hide show
  1. package/dist/esm/components/Accordion.js +2 -3
  2. package/dist/esm/components/Accordion.js.map +1 -1
  3. package/dist/esm/components/ProgressBar.js +6 -7
  4. package/dist/esm/components/ProgressBar.js.map +1 -1
  5. package/dist/esm/components/UncontrolledTable/{index.js → UncontrolledTable.js} +22 -24
  6. package/dist/esm/components/UncontrolledTable/UncontrolledTable.js.map +1 -0
  7. package/dist/esm/components/UncontrolledTable/{styles.d.ts → UncontrolledTable.style.d.ts} +3 -1
  8. package/dist/esm/components/UncontrolledTable/{styles.js → UncontrolledTable.style.js} +9 -6
  9. package/dist/esm/components/UncontrolledTable/UncontrolledTable.style.js.map +1 -0
  10. package/dist/esm/components/UncontrolledTable/components/TableButton/TableButton.d.ts +15 -0
  11. package/dist/esm/components/UncontrolledTable/components/TableButton/TableButton.js +45 -0
  12. package/dist/esm/components/UncontrolledTable/components/TableButton/TableButton.js.map +1 -0
  13. package/dist/esm/components/UncontrolledTable/components/TableButton/TableButton.style.d.ts +16 -0
  14. package/dist/esm/components/UncontrolledTable/components/TableButton/TableButton.style.js +9 -0
  15. package/dist/esm/components/UncontrolledTable/components/TableButton/TableButton.style.js.map +1 -0
  16. package/dist/esm/components/UncontrolledTable/components/header/header.d.ts +15 -0
  17. package/dist/esm/components/UncontrolledTable/components/header/header.js +48 -0
  18. package/dist/esm/components/UncontrolledTable/components/header/header.js.map +1 -0
  19. package/dist/esm/components/UncontrolledTable/components/header/header.styles.d.ts +4 -0
  20. package/dist/esm/components/UncontrolledTable/components/header/header.styles.js +8 -0
  21. package/dist/esm/components/UncontrolledTable/components/header/header.styles.js.map +1 -0
  22. package/dist/esm/components/UncontrolledTable/components/index.d.ts +4 -3
  23. package/dist/esm/components/UncontrolledTable/components/index.js +4 -3
  24. package/dist/esm/components/UncontrolledTable/components/index.js.map +1 -1
  25. package/dist/esm/components/UncontrolledTable/components/pagination/{index.js → pagination.js} +2 -2
  26. package/dist/esm/components/UncontrolledTable/components/pagination/pagination.js.map +1 -0
  27. package/dist/esm/components/UncontrolledTable/components/pagination/{styles.js → pagination.styles.js} +1 -1
  28. package/dist/esm/components/UncontrolledTable/components/pagination/pagination.styles.js.map +1 -0
  29. package/dist/esm/components/UncontrolledTable/components/row/DraggableRow.js +1 -1
  30. package/dist/esm/components/UncontrolledTable/components/row/DraggableRow.js.map +1 -1
  31. package/dist/esm/components/UncontrolledTable/components/row/SimpleRow.js +1 -1
  32. package/dist/esm/components/UncontrolledTable/components/row/SimpleRow.js.map +1 -1
  33. package/dist/esm/components/UncontrolledTable/components/row/styles.d.ts +1 -1
  34. package/dist/esm/components/UncontrolledTable/components/row/styles.js +2 -8
  35. package/dist/esm/components/UncontrolledTable/components/row/styles.js.map +1 -1
  36. package/dist/esm/components/UncontrolledTable/interface.d.ts +37 -19
  37. package/dist/esm/hooks/useClickOutside.js.map +1 -1
  38. package/dist/esm/hooks/useOutsideScreen.d.ts +7 -0
  39. package/dist/esm/hooks/useOutsideScreen.js +30 -0
  40. package/dist/esm/hooks/useOutsideScreen.js.map +1 -0
  41. package/dist/esm/index.d.ts +1 -1
  42. package/dist/esm/index.js +1 -1
  43. package/dist/esm/index.js.map +1 -1
  44. package/package.json +3 -3
  45. package/src/components/Accordion.tsx +19 -15
  46. package/src/components/ProgressBar.tsx +28 -28
  47. package/src/components/UncontrolledTable/{styles.tsx → UncontrolledTable.style.tsx} +28 -18
  48. package/src/components/UncontrolledTable/{index.tsx → UncontrolledTable.tsx} +82 -91
  49. package/src/components/UncontrolledTable/components/TableButton/TableButton.style.tsx +50 -0
  50. package/src/components/UncontrolledTable/components/TableButton/TableButton.tsx +83 -0
  51. package/src/components/UncontrolledTable/components/header/header.styles.tsx +26 -0
  52. package/src/components/UncontrolledTable/components/header/header.tsx +85 -0
  53. package/src/components/UncontrolledTable/components/index.tsx +6 -3
  54. package/src/components/UncontrolledTable/components/pagination/{index.tsx → pagination.tsx} +1 -1
  55. package/src/components/UncontrolledTable/components/row/DraggableRow.tsx +11 -11
  56. package/src/components/UncontrolledTable/components/row/SimpleRow.tsx +7 -8
  57. package/src/components/UncontrolledTable/components/row/styles.tsx +5 -15
  58. package/src/components/UncontrolledTable/interface.ts +59 -38
  59. package/src/hooks/useClickOutside.tsx +9 -9
  60. package/src/hooks/useOutsideScreen.tsx +35 -0
  61. package/src/index.ts +1 -1
  62. package/src/stories/UncontrolledTable.stories.tsx +330 -25
  63. package/dist/esm/components/UncontrolledTable/components/header/index.d.ts +0 -3
  64. package/dist/esm/components/UncontrolledTable/components/header/index.js +0 -39
  65. package/dist/esm/components/UncontrolledTable/components/header/index.js.map +0 -1
  66. package/dist/esm/components/UncontrolledTable/components/header/styles.d.ts +0 -8
  67. package/dist/esm/components/UncontrolledTable/components/header/styles.js +0 -12
  68. package/dist/esm/components/UncontrolledTable/components/header/styles.js.map +0 -1
  69. package/dist/esm/components/UncontrolledTable/components/pagination/index.js.map +0 -1
  70. package/dist/esm/components/UncontrolledTable/components/pagination/styles.js.map +0 -1
  71. package/dist/esm/components/UncontrolledTable/index.js.map +0 -1
  72. package/dist/esm/components/UncontrolledTable/styles.js.map +0 -1
  73. package/src/components/UncontrolledTable/components/header/index.tsx +0 -89
  74. package/src/components/UncontrolledTable/components/header/styles.tsx +0 -67
  75. /package/dist/esm/components/UncontrolledTable/{index.d.ts → UncontrolledTable.d.ts} +0 -0
  76. /package/dist/esm/components/UncontrolledTable/components/pagination/{index.d.ts → pagination.d.ts} +0 -0
  77. /package/dist/esm/components/UncontrolledTable/components/pagination/{styles.d.ts → pagination.styles.d.ts} +0 -0
  78. /package/src/components/UncontrolledTable/components/pagination/{styles.tsx → pagination.styles.tsx} +0 -0
@@ -1,49 +1,70 @@
1
- import { ColumnDef } from '@tanstack/react-table';
1
+ import { ColumnDef } from '@tanstack/react-table'
2
+ import { JSX } from 'react'
2
3
 
3
4
  type Labels = {
4
- orderAsc: string;
5
- orderDesc: string;
6
- filter: string;
7
- clearFilter: string;
8
- };
5
+ orderAsc?: string
6
+ orderDesc?: string
7
+ filter?: string
8
+ clearFilter?: string
9
+ columns?: string
10
+ }
9
11
 
10
12
  interface Pagination {
11
- pageIndex: number;
12
- pageSize: number;
13
+ pageIndex: number
14
+ pageSize: number
15
+ }
16
+
17
+ interface Sticky {
18
+ enabled: boolean
19
+ top: number
20
+ }
21
+
22
+ export interface TableList {
23
+ id: string
24
+ label: string | JSX.Element
25
+ onClick?: (id: string) => void
26
+ checked?: () => boolean | boolean
27
+ disabled?: boolean
28
+ }
29
+
30
+ export interface TableButton {
31
+ render: () => JSX.Element
32
+ list?: {
33
+ options: TableList[]
34
+ toggleableList?: boolean
35
+ closeOnClick?: boolean
36
+ }
37
+ disabled?: boolean
38
+ onClick?: () => void
13
39
  }
14
40
 
15
41
  export interface UncontrolledTableProps {
16
- data: any;
17
- columns: ColumnDef<ColumnsTable>[];
18
- onClick: any;
19
- onMouseOver: any;
20
- onMouseOut: any;
21
- showTotalResults: boolean;
22
- showSettings: boolean;
23
- pagination?: Pagination;
24
- totalPages: number;
25
- showClearFields?: boolean;
26
- customTotalResults?: string;
27
- labels?: Labels;
28
- tableClassName?: string;
29
- stickyHeader?: boolean;
30
- stickyHeaderP?: number;
31
- customIcons?: React.ReactNode[];
32
- hideColumns?: string[];
33
- draggable?: boolean;
34
- onChangePage: (pagination: Pagination) => void;
35
- onClearFieldsClick?: () => void;
36
- onFilterClick?: (column: string) => void;
37
- onSortClick?: (column: string, direction: string) => void;
38
- onColumnVisibilityChange?: (columnId: string, isVisible: boolean) => void;
39
- onDragEnd?: (data: any[]) => void;
42
+ data: any
43
+ columns: ColumnDef<ColumnsTable>[]
44
+ pagination?: Pagination
45
+ totalPages?: number
46
+ labels?: Labels
47
+ tableClassName?: string
48
+ sticky?: Sticky
49
+ draggable?: boolean
50
+ buttons?: TableButton[]
51
+ configs?: TableButton[]
52
+ hideColumns?: string[]
53
+ onClick?: () => void
54
+ onMouseOver?: () => void
55
+ onMouseOut?: () => void
56
+ onColumnVisibilityChange?: (column: string, value: boolean) => void
57
+ onChangePage?: (pagination: Pagination) => void
58
+ onFilterClick?: (column: string) => void
59
+ onSortClick?: (column: string, direction: string) => void
60
+ onDragEnd?: (data: any[]) => void
40
61
  }
41
62
 
42
63
  export interface ColumnsTable {
43
- header: string;
44
- accessorKey: string;
45
- type: string;
46
- enableColumnFilter: boolean;
47
- filterFn: string;
48
- nofilter?: boolean;
64
+ header: string
65
+ accessorKey: string
66
+ type: string
67
+ enableColumnFilter: boolean
68
+ filterFn: string
69
+ nofilter?: boolean
49
70
  }
@@ -1,18 +1,18 @@
1
- import { useEffect } from 'react';
1
+ import { useEffect } from 'react'
2
2
 
3
3
  const useClickOutside = (ref: React.RefObject<HTMLElement | null>, callback: () => void) => {
4
4
  const handleClickOutside = (event: MouseEvent) => {
5
5
  if (ref.current && !ref.current.contains(event.target as Node)) {
6
- callback();
6
+ callback()
7
7
  }
8
- };
8
+ }
9
9
 
10
10
  useEffect(() => {
11
- document.addEventListener('mousedown', handleClickOutside);
11
+ document.addEventListener('mousedown', handleClickOutside)
12
12
  return () => {
13
- document.removeEventListener('mousedown', handleClickOutside);
14
- };
15
- }, [ref, callback]);
16
- };
13
+ document.removeEventListener('mousedown', handleClickOutside)
14
+ }
15
+ }, [ref, callback])
16
+ }
17
17
 
18
- export default useClickOutside;
18
+ export default useClickOutside
@@ -0,0 +1,35 @@
1
+ import { useState, useEffect, RefObject } from 'react'
2
+
3
+ /**
4
+ * Hook that detects when an element is partially visible in the viewport
5
+ * @param elementRef - Reference to the DOM element to observe
6
+ * @returns boolean indicating if the element is partially visible in the viewport
7
+ */
8
+ export const usePartiallyVisible = (elementRef: RefObject<HTMLElement | null>): boolean => {
9
+ const [isPartiallyVisible, setIsPartiallyVisible] = useState<boolean>(false)
10
+
11
+ useEffect(() => {
12
+ const element = elementRef.current
13
+ if (!element) return
14
+
15
+ const observer = new IntersectionObserver(
16
+ ([entry]) => {
17
+ // Element is partially visible if it's intersecting but not completely visible
18
+ const isPartial = entry.isIntersecting && entry.intersectionRatio < 1.0
19
+ setIsPartiallyVisible(isPartial)
20
+ },
21
+ {
22
+ root: null, // Use the viewport as the root
23
+ threshold: [0, 1.0], // Check at these thresholds to determine partial visibility
24
+ }
25
+ )
26
+
27
+ observer.observe(element)
28
+
29
+ return () => {
30
+ if (element) observer.unobserve(element)
31
+ }
32
+ }, [elementRef])
33
+
34
+ return isPartiallyVisible
35
+ }
package/src/index.ts CHANGED
@@ -25,7 +25,7 @@ import MultiSelectInput from './components/MultiSelectInput';
25
25
  import { Title, Text } from './components/Typography';
26
26
  import TextInput from './components/TextInput';
27
27
  import Table from './components/Table';
28
- import UncontrolledTable from './components/UncontrolledTable';
28
+ import UncontrolledTable from './components/UncontrolledTable/UncontrolledTable';
29
29
  import UncontrolledTabs from './components/UncontrolledTabs/UncontrolledTabs';
30
30
  import { TimeLine, TimeLineData } from './components/TimeLine/TimeLine';
31
31
  import { ModalStatus } from './components/StatusModal/StatusModal';
@@ -1,9 +1,10 @@
1
1
  import React, { useEffect, useState } from 'react'
2
- import UncontrolledTable from '../components/UncontrolledTable'
3
2
  import { Button } from '../components/Button'
4
3
  import { format } from 'date-fns'
5
4
  import CodeIcon from '@mui/icons-material/Code'
6
5
  import CreateIcon from '@mui/icons-material/Create'
6
+ import UncontrolledTable from '../components/UncontrolledTable/UncontrolledTable'
7
+ import { TableButton } from '../components/UncontrolledTable/interface'
7
8
 
8
9
  const Template = (args) => {
9
10
  return <UncontrolledTable {...args} />
@@ -37,19 +38,21 @@ const columns = [
37
38
  filterFn: 'customFilterText',
38
39
  },
39
40
  {
40
- header: 'Duração',
41
+ header: 'Confiança da transcrição da conversa',
41
42
  accessorKey: 'duration',
42
43
  type: 'number',
43
44
  enableColumnFilter: true,
44
45
  filterFn: 'customFilterText',
46
+ width: '150px',
45
47
  },
46
48
  {
47
- header: 'Campanha',
49
+ header: 'Confiança da transcrição da conversa',
48
50
  accessorKey: 'campaign',
49
51
  type: 'string',
50
52
  enableColumnFilter: true,
51
53
  filterFn: 'customFilterText',
52
54
  },
55
+
53
56
  {
54
57
  header: 'Ação',
55
58
  accessorKey: 'action',
@@ -379,7 +382,6 @@ export const Default = (args) => {
379
382
 
380
383
  localStorage.setItem('hiddenColumns', JSON.stringify(updatedHiddenColumns))
381
384
 
382
- console.log('Colunas escondidas:::', updatedHiddenColumns)
383
385
  return updatedHiddenColumns
384
386
  })
385
387
  }
@@ -393,38 +395,27 @@ export const Default = (args) => {
393
395
  <UncontrolledTable
394
396
  data={data}
395
397
  columns={columns}
396
- showTotalResults
397
- showSettings
398
- customIcons={[
399
- <div key="1" onClick={() => alert('Ícone 1 clicado')}>
400
- <CodeIcon sx={{ fontSize: 18, color: '#DE8B50' }} />
401
- </div>,
402
- <div key="2" onClick={() => alert('Ícone 2 clicado')}>
403
- <CreateIcon sx={{ fontSize: 18, color: '#DE8B50' }} />
404
- </div>,
405
- ]}
406
398
  onClick={(value) => console.log('onClick line:', value)}
407
399
  onMouseOver={(value) => console.log('onMouseOver line:', value)}
408
400
  onMouseOut={(value) => console.log('onMouseOut line:', value)}
409
- onClearFieldsClick={() => console.log('onClearFieldsClick')}
410
- onFilterClick={(column) => console.log('onFilterClick', column)}
411
- onChangePage={(pagination) => console.log('onChangePage', pagination)}
412
- onSortClick={(column, direction) => console.log('onSortClick', column, direction)}
413
401
  pagination={{
414
402
  pageIndex: 1,
415
403
  pageSize: 10,
416
404
  }}
417
405
  totalPages={10}
418
- showClearFields
419
- hideColumns={hiddenColumns}
420
- onColumnVisibilityChange={handleColumnVisibilityChange}
421
406
  labels={{
422
407
  orderAsc: 'orderAsc',
423
- orderDesc: 'orderDesc',
424
- filter: 'filter',
425
- clearFilter: 'clearFilter',
426
408
  }}
427
- stickyHeader
409
+ tableClassName="table"
410
+ sticky={{
411
+ enabled: true,
412
+ top: 0,
413
+ }}
414
+ hideColumns={hiddenColumns}
415
+ onColumnVisibilityChange={handleColumnVisibilityChange}
416
+ onChangePage={(pagination) => console.log('onChangePage', pagination)}
417
+ onFilterClick={(column) => console.log('onFilterClick', column)}
418
+ onSortClick={(column, direction) => console.log('onSortClick', column, direction)}
428
419
  {...args}
429
420
  />
430
421
  </>
@@ -724,3 +715,317 @@ export const RowDnd = (args) => {
724
715
  }
725
716
 
726
717
  RowDnd.args = {}
718
+
719
+ export const ExtraMenu = (args) => {
720
+ const data = [
721
+ {
722
+ date: format(new Date('8-14-2023 21:29'), 'dd/MM/yyyy'),
723
+ duration: 60,
724
+ campaign: 'Campaign 10',
725
+ agent: 'Maggie Leach',
726
+ dnis: 'dnis',
727
+ disposition: 'Disposition 1',
728
+ origin: 'origin',
729
+ id: '1',
730
+ action: (
731
+ <Button
732
+ color="primary"
733
+ disableElevation
734
+ variant="text"
735
+ onClick={() => console.log('click')}
736
+ >
737
+ Editar
738
+ </Button>
739
+ ),
740
+ },
741
+ {
742
+ date: format(new Date('8-13-2023 21:29'), 'dd/MM/yyyy'),
743
+ duration: 60,
744
+ campaign: 'Campaign 2',
745
+ agent: 'Christina Harris',
746
+ ani: 'ani',
747
+ dnis: 'dnis',
748
+ disposition: 'Disposition 2',
749
+ origin: 'origin',
750
+ id: '2',
751
+ action: (
752
+ <Button
753
+ color="primary"
754
+ disableElevation
755
+ variant="text"
756
+ onClick={() => console.log('click')}
757
+ >
758
+ Editar
759
+ </Button>
760
+ ),
761
+ },
762
+ {
763
+ date: format(new Date('8-12-2023 21:29'), 'dd/MM/yyyy'),
764
+ duration: 60,
765
+ campaign: 'Campaign 3',
766
+ agent: 'Alexia Crawford',
767
+ ani: 'ani',
768
+ dnis: 'dnis',
769
+ disposition: 'Disposition 3',
770
+ origin: 'origin',
771
+ id: '3',
772
+ action: (
773
+ <Button
774
+ color="primary"
775
+ disableElevation
776
+ variant="text"
777
+ onClick={() => console.log('click')}
778
+ >
779
+ Editar
780
+ </Button>
781
+ ),
782
+ },
783
+ {
784
+ date: format(new Date('8-11-2023 21:29'), 'dd/MM/yyyy'),
785
+ duration: 60,
786
+ campaign: 'Campaign 4',
787
+ agent: 'Robyn Phillips',
788
+ ani: 'ani',
789
+ dnis: 'dnis',
790
+ disposition: 'Disposition 4',
791
+ origin: 'origin',
792
+ id: '4',
793
+ action: (
794
+ <Button
795
+ color="primary"
796
+ disableElevation
797
+ variant="text"
798
+ onClick={() => console.log('click')}
799
+ >
800
+ Editar
801
+ </Button>
802
+ ),
803
+ },
804
+ {
805
+ date: format(new Date('8-10-2023 21:29'), 'dd/MM/yyyy'),
806
+ duration: 60,
807
+ campaign: 'Campaign 5',
808
+ agent: 'Bruce Robinson',
809
+ ani: 'ani',
810
+ dnis: 'dnis',
811
+ disposition: 'Disposition 5',
812
+ origin: 'origin',
813
+ id: '5',
814
+ action: (
815
+ <Button
816
+ color="primary"
817
+ disableElevation
818
+ variant="text"
819
+ onClick={() => console.log('click')}
820
+ >
821
+ Editar
822
+ </Button>
823
+ ),
824
+ },
825
+ {
826
+ date: format(new Date('8-9-2023 21:29'), 'dd/MM/yyyy'),
827
+ duration: 60,
828
+ campaign: 'Campaign 6',
829
+ agent: 'Sophia Fletcher',
830
+ ani: 'ani',
831
+ dnis: 'dnis',
832
+ disposition: 'Disposition 6',
833
+ origin: 'origin',
834
+ id: '6',
835
+ action: (
836
+ <Button
837
+ color="primary"
838
+ disableElevation
839
+ variant="text"
840
+ onClick={() => console.log('click')}
841
+ >
842
+ Editar
843
+ </Button>
844
+ ),
845
+ },
846
+ {
847
+ date: format(new Date('8-8-2023 21:29'), 'dd/MM/yyyy'),
848
+ duration: 60,
849
+ campaign: 'Campaign 7',
850
+ agent: 'Blanca Roberts',
851
+ ani: 'ani',
852
+ dnis: 'dnis',
853
+ disposition: 'Disposition 7',
854
+ origin: 'origin',
855
+ id: '7',
856
+ action: (
857
+ <Button
858
+ color="primary"
859
+ disableElevation
860
+ variant="text"
861
+ onClick={() => console.log('click')}
862
+ >
863
+ Editar
864
+ </Button>
865
+ ),
866
+ },
867
+ {
868
+ date: format(new Date('8-7-2023 21:29'), 'dd/MM/yyyy'),
869
+ duration: 60,
870
+ campaign: 'Campaign 8',
871
+ agent: 'Peter Warburton',
872
+ ani: 'ani',
873
+ dnis: 'dnis',
874
+ disposition: 'Disposition 8',
875
+ origin: 'origin',
876
+ id: '8',
877
+ action: (
878
+ <Button
879
+ color="primary"
880
+ disableElevation
881
+ variant="text"
882
+ onClick={() => console.log('click')}
883
+ >
884
+ Editar
885
+ </Button>
886
+ ),
887
+ },
888
+ {
889
+ date: format(new Date('8-7-2023 21:29'), 'dd/MM/yyyy'),
890
+ duration: 60,
891
+ campaign: 'Campaign 8',
892
+ agent: 'Peter Warburton',
893
+ ani: 'ani',
894
+ dnis: 'dnis',
895
+ disposition: 'Disposition 8',
896
+ origin: 'origin',
897
+ id: '8',
898
+ action: (
899
+ <Button
900
+ color="primary"
901
+ disableElevation
902
+ variant="text"
903
+ onClick={() => console.log('click')}
904
+ >
905
+ Editar
906
+ </Button>
907
+ ),
908
+ },
909
+ {
910
+ date: format(new Date('8-7-2023 21:29'), 'dd/MM/yyyy'),
911
+ duration: 60,
912
+ campaign: 'Campaign 8',
913
+ agent: 'Peter Warburton',
914
+ ani: 'ani',
915
+ dnis: 'dnis',
916
+ disposition: 'Disposition 8',
917
+ origin: 'origin',
918
+ id: '8',
919
+ action: (
920
+ <Button
921
+ color="primary"
922
+ disableElevation
923
+ variant="text"
924
+ onClick={() => console.log('click')}
925
+ >
926
+ Editar
927
+ </Button>
928
+ ),
929
+ },
930
+ {
931
+ date: format(new Date('8-7-2023 21:29'), 'dd/MM/yyyy'),
932
+ duration: 60,
933
+ campaign: 'Campaign 8',
934
+ agent: 'Peter Warburton',
935
+ ani: 'ani',
936
+ dnis: 'dnis',
937
+ disposition: 'Disposition 8',
938
+ origin: 'origin',
939
+ id: '8',
940
+ action: (
941
+ <Button
942
+ color="primary"
943
+ disableElevation
944
+ variant="text"
945
+ onClick={() => console.log('click')}
946
+ >
947
+ Editar
948
+ </Button>
949
+ ),
950
+ },
951
+ {
952
+ date: format(new Date('8-7-2023 21:29'), 'dd/MM/yyyy'),
953
+ duration: 60,
954
+ campaign: 'Campaign 8',
955
+ agent: 'Peter Warburton',
956
+ ani: 'ani',
957
+ dnis: 'dnis',
958
+ disposition: 'Disposition 8',
959
+ origin: 'origin',
960
+ id: '8',
961
+ action: (
962
+ <Button
963
+ color="primary"
964
+ disableElevation
965
+ variant="text"
966
+ onClick={() => console.log('click')}
967
+ >
968
+ Editar
969
+ </Button>
970
+ ),
971
+ },
972
+ {
973
+ date: format(new Date('8-7-2023 21:29'), 'dd/MM/yyyy'),
974
+ duration: 60,
975
+ campaign: 'Campaign 8',
976
+ agent: 'Peter Warburton',
977
+ ani: 'ani',
978
+ dnis: 'dnis',
979
+ disposition: 'Disposition 8',
980
+ origin: 'origin',
981
+ id: '8',
982
+ action: (
983
+ <Button
984
+ color="primary"
985
+ disableElevation
986
+ variant="text"
987
+ onClick={() => console.log('click')}
988
+ >
989
+ Editar
990
+ </Button>
991
+ ),
992
+ },
993
+ ]
994
+
995
+ const menus: TableButton[] = [
996
+ {
997
+ render: () => <span>Menu</span>,
998
+ onClick: () => console.log('Menu clicked'),
999
+ disabled: true,
1000
+ },
1001
+ {
1002
+ render: () => <span>Agrupar</span>,
1003
+ list: {
1004
+ options: [
1005
+ {
1006
+ id: 'groupByCampaign',
1007
+ label: <div style={{display: 'flex', alignItems: 'center', gap: '5px'}}>
1008
+ <span style={{backgroundColor: "green"}}>OK</span>
1009
+ <span>Agrupar por campanha</span>
1010
+ </div>,
1011
+ onClick: (id) => console.log('Agrupar por campanha', id),
1012
+ },
1013
+ {
1014
+ id: 'groupByDate',
1015
+ label: 'Agrupar por data',
1016
+ onClick: (id) => console.log('Agrupar por data', id),
1017
+ },
1018
+ ],
1019
+ closeOnClick: true,
1020
+ },
1021
+ },
1022
+ ]
1023
+
1024
+ return (
1025
+ <>
1026
+ <UncontrolledTable data={data} columns={columns} buttons={menus} configs={menus} />
1027
+ </>
1028
+ )
1029
+ }
1030
+
1031
+ ExtraMenu.args = {}
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- declare const Header: React.FC<any>;
3
- export default Header;
@@ -1,39 +0,0 @@
1
- import React, { useRef, useState, useEffect } from 'react';
2
- import * as S from './styles';
3
- import SettingsIcon from '@mui/icons-material/Settings';
4
- import { CheckBox } from '../../../CheckBox';
5
- import useClickOutside from '../../../../hooks/useClickOutside';
6
- var Header = function (_a) {
7
- var table = _a.table, showTotalResults = _a.showTotalResults, showSettings = _a.showSettings, showClearFiels = _a.showClearFiels, onClearFieldsClick = _a.onClearFieldsClick, customTotalResults = _a.customTotalResults, clearLabel = _a.clearLabel, customIcons = _a.customIcons, _b = _a.hideColumns, hideColumns = _b === void 0 ? [] : _b, onColumnVisibilityChange = _a.onColumnVisibilityChange;
8
- var _c = useState(false), openTools = _c[0], setOpenTools = _c[1];
9
- var listToolsRef = useRef(null);
10
- useClickOutside(listToolsRef, function () { return setOpenTools(false); });
11
- useEffect(function () {
12
- (hideColumns === null || hideColumns === void 0 ? void 0 : hideColumns.length) &&
13
- table
14
- .getAllLeafColumns()
15
- .filter(function (column) { return hideColumns.includes(column.id); })
16
- .forEach(function (column) { return column.toggleVisibility(false); });
17
- }, [hideColumns, table]);
18
- var handleVisibilityChange = function (column) {
19
- var isVisible = !column.getIsVisible();
20
- column.toggleVisibility(isVisible);
21
- onColumnVisibilityChange === null || onColumnVisibilityChange === void 0 ? void 0 : onColumnVisibilityChange(column.id, isVisible);
22
- };
23
- return (React.createElement(S.Header, { "$showResults": showTotalResults },
24
- React.createElement("div", null,
25
- showTotalResults && (React.createElement(S.Results, null,
26
- React.createElement(S.TextResult, null, customTotalResults ? customTotalResults : "".concat(table.getRowModel().rows.length, " resultados encontrados.")))),
27
- showClearFiels && (React.createElement(S.TextClearSearch, { onClick: function () { return onClearFieldsClick && onClearFieldsClick(); } }, clearLabel || 'Limpar busca'))),
28
- React.createElement(S.Tools, null,
29
- showSettings ? (React.createElement(S.IconTools, { onClick: function () { return setOpenTools(!openTools); } },
30
- React.createElement(SettingsIcon, { sx: { fontSize: 18, color: '#DE8B50' } }))) : null,
31
- customIcons &&
32
- customIcons.map(function (IconComponent, index) { return (React.createElement(S.IconTools, { key: index }, IconComponent)); }),
33
- openTools ? (React.createElement(S.ListTools, { ref: listToolsRef }, table.getAllLeafColumns().map(function (column) {
34
- return (React.createElement("div", { key: column.id, className: "px-1" },
35
- React.createElement(CheckBox, { label: column.columnDef.header || column.id, size: "small", checked: column.getIsVisible(), value: column.getIsVisible(), onChange: function () { return handleVisibilityChange(column); } })));
36
- }))) : null)));
37
- };
38
- export default Header;
39
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/UncontrolledTable/components/header/index.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export declare const Header: import("styled-components/dist/types").IStyledComponentBase<"web", any> & string;
2
- export declare const Results: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
3
- export declare const Tools: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
4
- export declare const TextResult: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
5
- export declare const TextClearSearchContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
6
- export declare const TextClearSearch: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, never>> & string;
7
- export declare const IconTools: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
8
- export declare const ListTools: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
@@ -1,12 +0,0 @@
1
- import { __makeTemplateObject } from "tslib";
2
- import styled from 'styled-components';
3
- export var Header = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n justify-content: space-between;\n width: calc(100% - 32px);\n @media screen and (max-width: 1440px) {\n width: calc(100% - 16px);\n }\n margin: 0 auto;\n"], ["\n display: flex;\n justify-content: space-between;\n width: calc(100% - 32px);\n @media screen and (max-width: 1440px) {\n width: calc(100% - 16px);\n }\n margin: 0 auto;\n"])));
4
- export var Results = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n gap: 8px;\n"], ["\n display: flex;\n flex-direction: column;\n gap: 8px;\n"])));
5
- export var Tools = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n"], ["\n display: flex;\n align-items: center;\n"])));
6
- export var TextResult = styled.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n color: #666666;\n font-size: 16px;\n"], ["\n color: #666666;\n font-size: 16px;\n"])));
7
- export var TextClearSearchContent = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n height: 10px;\n"], ["\n height: 10px;\n"])));
8
- export var TextClearSearch = styled.p(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n color: #de8b50;\n font-size: 14px;\n cursor: pointer;\n margin: 0;\n &:hover {\n text-decoration: underline;\n }\n"], ["\n color: #de8b50;\n font-size: 14px;\n cursor: pointer;\n margin: 0;\n &:hover {\n text-decoration: underline;\n }\n"])));
9
- export var IconTools = styled.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n width: 24px;\n height: 24px;\n cursor: pointer;\n"], ["\n width: 24px;\n height: 24px;\n cursor: pointer;\n"])));
10
- export var ListTools = styled.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n padding: 12px;\n margin: 6px 0 0 -106px;\n position: absolute;\n background: #fff;\n box-shadow: 0px 3px 6px #00000029;\n border: 1px solid #e0e0e0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n font-size: 14px;\n z-index: 100;\n top: 0;\n label {\n display: flex;\n gap: 8px;\n align-items: center;\n }\n"], ["\n padding: 12px;\n margin: 6px 0 0 -106px;\n position: absolute;\n background: #fff;\n box-shadow: 0px 3px 6px #00000029;\n border: 1px solid #e0e0e0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n font-size: 14px;\n z-index: 100;\n top: 0;\n label {\n display: flex;\n gap: 8px;\n align-items: center;\n }\n"])));
11
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8;
12
- //# sourceMappingURL=styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../../src/components/UncontrolledTable/components/header/styles.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,IAAM,MAAM,GAAG,MAAM,CAAC,GAAG,2PAAK,wLAQpC,IAAA,CAAC;AAEF,MAAM,CAAC,IAAM,OAAO,GAAG,MAAM,CAAC,GAAG,iIAAA,8DAIhC,IAAA,CAAC;AAEF,MAAM,CAAC,IAAM,KAAK,GAAG,MAAM,CAAC,GAAG,iHAAA,8CAG9B,IAAA,CAAC;AAEF,MAAM,CAAC,IAAM,UAAU,GAAG,MAAM,CAAC,GAAG,8GAAA,2CAGnC,IAAA,CAAC;AAEF,MAAM,CAAC,IAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,wFAAA,qBAE/C,IAAA,CAAC;AAEF,MAAM,CAAC,IAAM,eAAe,GAAG,MAAM,CAAC,CAAC,mMAAA,gIAQtC,IAAA,CAAC;AAEF,MAAM,CAAC,IAAM,SAAS,GAAG,MAAM,CAAC,GAAG,4HAAA,yDAIlC,IAAA,CAAC;AAEF,MAAM,CAAC,IAAM,SAAS,GAAG,MAAM,CAAC,GAAG,2ZAAA,wVAkBlC,IAAA,CAAC"}