@griddo/ax 1.71.0 → 1.72.2

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 (99) hide show
  1. package/package.json +2 -2
  2. package/src/Style/index.tsx +1 -1
  3. package/src/__tests__/components/ElementsTooltip/ElementsTooltip.test.tsx +1 -1
  4. package/src/__tests__/components/EmptyState/EmptyState.test.tsx +1 -1
  5. package/src/__tests__/components/ErrorToast/ErrorToast.test.tsx +56 -0
  6. package/src/__tests__/components/FieldContainer/FieldContainer.test.tsx +82 -0
  7. package/src/__tests__/components/Fields/AnalyticsField/AnalyticsField.test.tsx +1 -1
  8. package/src/__tests__/components/Fields/AnalyticsField/PageAnalytics/PageAnalytics.test.tsx +1 -1
  9. package/src/__tests__/components/Fields/AnalyticsField/StructuredDataAnalytics/StructuredDataAnalytics.test.tsx +1 -1
  10. package/src/__tests__/components/Fields/ArrayFieldGroup/ArrayFieldGroup.test.tsx +2 -2
  11. package/src/__tests__/components/Fields/AsyncCheckGroup/AsyncCheckGroup.test.tsx +3 -3
  12. package/src/__tests__/components/Fields/AsyncSelect/AsyncSelect.test.tsx +1 -1
  13. package/src/__tests__/components/Fields/CheckField/CheckField.test.tsx +6 -6
  14. package/src/__tests__/components/Fields/CheckGroup/CheckGroup.test.tsx +15 -15
  15. package/src/__tests__/components/Fields/ColorPicker/ColorPicker.test.tsx +6 -6
  16. package/src/__tests__/components/Fields/ComponentArray/ComponentArray.test.tsx +1 -1
  17. package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/MixableComponentArray.test.tsx +7 -7
  18. package/src/__tests__/components/Fields/ComponentArray/MixableComponentArray/PasteModuleButton/PasteModuleButton.test.tsx +9 -9
  19. package/src/__tests__/components/Fields/ComponentArray/SameComponentArray/SameComponentArray.test.tsx +5 -5
  20. package/src/__tests__/components/Fields/ComponentContainer/ComponentContainer.test.tsx +1 -1
  21. package/src/__tests__/components/Fields/ConditionalField/ConditionalField.test.tsx +1 -1
  22. package/src/__tests__/components/Fields/DateField/DateField.test.tsx +1 -1
  23. package/src/__tests__/components/Fields/FieldGroup/FieldGroup.test.tsx +1 -1
  24. package/src/__tests__/components/Fields/FieldsDivider/FieldsDivider.test.tsx +1 -1
  25. package/src/__tests__/components/Fields/FileField/FileField.test.tsx +3 -3
  26. package/src/__tests__/components/Fields/HeadingField/HeadingField.test.tsx +6 -6
  27. package/src/__tests__/components/Fields/HiddenField/HiddenField.test.tsx +1 -1
  28. package/src/__tests__/components/Fields/ImageField/ImageField.test.tsx +3 -3
  29. package/src/__tests__/components/Fields/MultiCheckSelect/MultiCheckSelect.test.tsx +1 -1
  30. package/src/__tests__/components/Fields/MultiCheckSelectGroup/MultiCheckSelectGroup.test.tsx +2 -2
  31. package/src/__tests__/components/Fields/NoteField/NoteField.test.tsx +1 -1
  32. package/src/__tests__/components/Fields/NumberField/NumberField.test.tsx +1 -1
  33. package/src/__tests__/components/Fields/RadioField/RadioField.test.tsx +1 -1
  34. package/src/__tests__/components/Fields/ReferenceField/ReferenceField.test.tsx +96 -8
  35. package/src/__tests__/components/Fields/RichText/RichText.test.tsx +1 -1
  36. package/src/__tests__/components/Fields/Select/Select.test.tsx +2 -2
  37. package/src/__tests__/components/Fields/SliderField/SliderField.test.tsx +1 -1
  38. package/src/__tests__/components/Fields/TagField/TagField.test.tsx +1 -1
  39. package/src/__tests__/components/Fields/TextArea/TextArea.test.tsx +1 -1
  40. package/src/__tests__/components/Fields/TextField/TextField.test.tsx +6 -6
  41. package/src/__tests__/components/Fields/TimeField/HourInput/HourInput.test.tsx +1 -1
  42. package/src/__tests__/components/Fields/TimeField/TimeField.test.tsx +1 -1
  43. package/src/__tests__/components/Fields/ToggleField/ToggleField.test.tsx +1 -1
  44. package/src/__tests__/components/Fields/Tooltip/Tooltip.test.tsx +3 -2
  45. package/src/__tests__/components/Fields/UniqueCheck/UniqueCheck.test.tsx +3 -3
  46. package/src/__tests__/components/Fields/UrlField/UrlField.test.tsx +4 -4
  47. package/src/__tests__/components/Fields/VisualUniqueSelection/ImageSelection/ImageSelection.test.tsx +1 -1
  48. package/src/__tests__/components/Fields/VisualUniqueSelection/ScrollableSelection/ScrollableSelection.test.tsx +3 -3
  49. package/src/__tests__/components/Fields/VisualUniqueSelection/VisualUniqueSelection.test.tsx +1 -1
  50. package/src/__tests__/components/Fields/Wysiwyg/Wysiwyg.test.tsx +1 -1
  51. package/src/__tests__/components/FieldsBehavior/FieldsBehavior.test.tsx +149 -0
  52. package/src/__tests__/components/Pagination/Pagination.test.tsx +243 -0
  53. package/src/__tests__/components/SubNav/SubNav.test.tsx +37 -0
  54. package/src/__tests__/components/TableCounter/TableCounter.test.tsx +51 -0
  55. package/src/__tests__/components/TableFilters/CategoryFilter/CategoryFilter.test.tsx +241 -0
  56. package/src/__tests__/components/TableFilters/CustomizeFilters/CustomizeFilters.test.tsx +131 -0
  57. package/src/__tests__/components/TableFilters/DateFilter/DateFilter.test.tsx +148 -0
  58. package/src/__tests__/components/TableFilters/LiveFilter/LiveFilter.test.tsx +266 -0
  59. package/src/__tests__/components/TableFilters/NameFilter/NameFilter.test.tsx +196 -0
  60. package/src/__tests__/components/TableFilters/SiteFilter/SiteFilter.test.tsx +318 -0
  61. package/src/__tests__/components/TableFilters/StatusFilter/StatusFilter.test.tsx +195 -0
  62. package/src/__tests__/components/TableFilters/TranslationsFilter/TranslationsFilter.test.tsx +157 -0
  63. package/src/__tests__/components/TableFilters/TypeFilter/TypeFilter.test.tsx +165 -0
  64. package/src/__tests__/components/TableList/TableList.test.tsx +2 -2
  65. package/src/__tests__/components/Tabs/Tabs.test.tsx +42 -36
  66. package/src/__tests__/components/Tag/Tag.test.tsx +4 -2
  67. package/src/__tests__/components/Toast/Toast.test.tsx +4 -2
  68. package/src/components/ErrorToast/index.tsx +2 -2
  69. package/src/components/FieldContainer/index.tsx +3 -3
  70. package/src/components/Fields/CheckField/index.tsx +3 -3
  71. package/src/components/Fields/CheckGroup/index.tsx +2 -2
  72. package/src/components/Fields/HeadingField/index.tsx +1 -1
  73. package/src/components/Fields/Select/index.tsx +1 -1
  74. package/src/components/Fields/TextField/index.tsx +2 -7
  75. package/src/components/FieldsBehavior/index.tsx +1 -1
  76. package/src/components/FloatingMenu/index.tsx +1 -1
  77. package/src/components/IconAction/index.tsx +1 -1
  78. package/src/components/Lists/index.tsx +1 -1
  79. package/src/components/Pagination/index.tsx +4 -4
  80. package/src/components/SubNav/index.tsx +3 -3
  81. package/src/components/SubNav/style.tsx +1 -3
  82. package/src/components/TableCounter/index.tsx +7 -2
  83. package/src/components/TableFilters/CategoryFilter/index.tsx +2 -2
  84. package/src/components/TableFilters/CategoryFilter/style.tsx +1 -10
  85. package/src/components/TableFilters/CustomizeFilters/index.tsx +2 -3
  86. package/src/components/TableFilters/DateFilter/index.tsx +4 -4
  87. package/src/components/TableFilters/LiveFilter/index.tsx +1 -1
  88. package/src/components/TableFilters/LiveFilter/style.tsx +2 -10
  89. package/src/components/TableFilters/NameFilter/index.tsx +4 -4
  90. package/src/components/TableFilters/SiteFilter/index.tsx +16 -13
  91. package/src/components/TableFilters/SiteFilter/style.tsx +1 -10
  92. package/src/components/TableFilters/StatusFilter/index.tsx +3 -3
  93. package/src/components/TableFilters/TranslationsFilter/index.tsx +4 -7
  94. package/src/components/TableFilters/TranslationsFilter/style.tsx +1 -10
  95. package/src/components/TableFilters/TypeFilter/index.tsx +2 -2
  96. package/src/components/TableFilters/TypeFilter/style.tsx +1 -10
  97. package/src/components/Tooltip/index.tsx +1 -1
  98. package/src/helpers/index.tsx +3 -0
  99. package/src/helpers/parseTheme.js +456 -0
@@ -6,7 +6,6 @@ import * as S from "./style";
6
6
 
7
7
  const CustomizeFilters = (props: ICustomizeFiltersProps): JSX.Element => {
8
8
  const { columns, setColumns, value } = props;
9
-
10
9
  const options = Object.keys(columns).map((col: string) => {
11
10
  const disabled = value.length >= 5 && !value.includes(col);
12
11
  return { name: col, title: columns[col].title, value: col, disabled };
@@ -31,7 +30,7 @@ const CustomizeFilters = (props: ICustomizeFiltersProps): JSX.Element => {
31
30
  );
32
31
 
33
32
  return (
34
- <S.Wrapper>
33
+ <S.Wrapper data-testid="customize-filters-wrapper">
35
34
  <FloatingMenu Button={Button} position="right" closeOnSelect={false}>
36
35
  <ListTitle>Customize filters</ListTitle>
37
36
  <S.Note>You can select up to five options</S.Note>
@@ -43,7 +42,7 @@ const CustomizeFilters = (props: ICustomizeFiltersProps): JSX.Element => {
43
42
  );
44
43
  };
45
44
 
46
- interface ICustomizeFiltersProps {
45
+ export interface ICustomizeFiltersProps {
47
46
  setColumns(newValue: any): void;
48
47
  columns: Record<string, IColumn>;
49
48
  value: string[];
@@ -4,7 +4,7 @@ import { Icon, FloatingMenu, ListTitle, ListItem } from "@ax/components";
4
4
 
5
5
  import * as S from "./style";
6
6
 
7
- const DateFilter = (props: IStatusFilterProps): JSX.Element => {
7
+ const DateFilter = (props: IDateFilterProps): JSX.Element => {
8
8
  const { sortItems, sortedState } = props;
9
9
  const { isAscending, sortedByDate } = sortedState;
10
10
  const sortByModifiedDate = (isAscending: boolean) => sortItems("date", isAscending);
@@ -16,13 +16,13 @@ const DateFilter = (props: IStatusFilterProps): JSX.Element => {
16
16
  isAscending ? <Icon name="FullArrowUp" size="16" /> : <Icon name="FullArrowDown" size="16" />;
17
17
 
18
18
  const Header = () => (
19
- <S.Date isActive={sortedByDate}>
19
+ <S.Date isActive={sortedByDate} data-testid="date-filter">
20
20
  Date
21
21
  <S.IconsWrapper>
22
22
  {sortedByDate ? (
23
23
  <SortedStateArrow />
24
24
  ) : (
25
- <S.InteractiveArrow>
25
+ <S.InteractiveArrow data-testid="date-filter-interactive-arrow">
26
26
  <Icon name="DownArrow" size="16" />
27
27
  </S.InteractiveArrow>
28
28
  )}
@@ -43,7 +43,7 @@ const DateFilter = (props: IStatusFilterProps): JSX.Element => {
43
43
  );
44
44
  };
45
45
 
46
- interface IStatusFilterProps {
46
+ export interface IDateFilterProps {
47
47
  sortedState: any;
48
48
  sortItems(orderPointer: string, isAscendent: boolean): any;
49
49
  }
@@ -104,7 +104,7 @@ const LiveFilter = (props: ILiveFilterProps): JSX.Element => {
104
104
  );
105
105
  };
106
106
 
107
- interface ILiveFilterProps {
107
+ export interface ILiveFilterProps {
108
108
  filterItems(pointer: string, filter: string): void;
109
109
  value: string;
110
110
  isStructuredData?: boolean;
@@ -19,15 +19,6 @@ const IconsWrapper = styled.div`
19
19
  }
20
20
  `;
21
21
 
22
- const InteractiveArrow = styled.div`
23
- display: flex;
24
- svg {
25
- path {
26
- fill: ${(p) => p.theme.color.interactive01};
27
- }
28
- }
29
- `;
30
-
31
22
  const ChecksWrapper = styled.div`
32
23
  padding: ${(p) => p.theme.spacing.xs} ${(p) => p.theme.spacing.s} 0;
33
24
  `;
@@ -35,4 +26,5 @@ const ChecksWrapper = styled.div`
35
26
  const MenuWrapper = styled.div`
36
27
  position: relative;
37
28
  `;
38
- export { LiveOptions, IconsWrapper, InteractiveArrow, ChecksWrapper, MenuWrapper };
29
+
30
+ export { LiveOptions, IconsWrapper, ChecksWrapper, MenuWrapper };
@@ -20,13 +20,13 @@ const NameFilter = (props: INameFilterProps): JSX.Element => {
20
20
  const title = urlSorting ? "Name & URL" : "Name";
21
21
 
22
22
  const Header = () => (
23
- <S.NameHeader isActive={isActive}>
23
+ <S.NameHeader isActive={isActive} data-testid="name-filter-header">
24
24
  {title}
25
25
  <S.IconsWrapper>
26
26
  {isActive ? (
27
27
  <SortedStateArrow />
28
28
  ) : (
29
- <S.InteractiveArrow>
29
+ <S.InteractiveArrow data-testid="name-filter-interactive-arrow">
30
30
  <Icon name="DownArrow" size="16" />
31
31
  </S.InteractiveArrow>
32
32
  )}
@@ -46,7 +46,7 @@ const NameFilter = (props: INameFilterProps): JSX.Element => {
46
46
  {urlSorting && (
47
47
  <>
48
48
  <ListTitle>URL Sorting</ListTitle>
49
- <ListItem isSelected={sortedByURL} onClick={sortAscendingURL}>
49
+ <ListItem isSelected={sortedByURL} onClick={sortAscendingURL} >
50
50
  Ascendent
51
51
  </ListItem>
52
52
  </>
@@ -55,7 +55,7 @@ const NameFilter = (props: INameFilterProps): JSX.Element => {
55
55
  );
56
56
  };
57
57
 
58
- interface INameFilterProps {
58
+ export interface INameFilterProps {
59
59
  sortedState: any;
60
60
  sortItems(orderPointer: string, isAscendent: boolean): void;
61
61
  urlSorting?: boolean;
@@ -48,18 +48,21 @@ const SiteFilter = (props: ISiteFilterProps): JSX.Element => {
48
48
  };
49
49
 
50
50
  useEffect(() => {
51
- getSelectSites().then((items) => {
52
- items &&
53
- items.forEach((item: { value: string; label: string }) => {
54
- const newFilter = {
55
- name: item.value,
56
- value: item.value,
57
- title: item.label,
58
- };
59
- filters.push(newFilter);
60
- });
61
- setOptions(filters);
62
- });
51
+ getSelectSites()
52
+ .then((items) => {
53
+ items &&
54
+ items.forEach((item: { value: string; label: string }) => {
55
+ const newFilter = {
56
+ name: item.value,
57
+ value: item.value,
58
+ title: item.label,
59
+ };
60
+ filters.push(newFilter);
61
+ });
62
+
63
+ setOptions(filters);
64
+ })
65
+ .catch((apiError) => console.log(apiError));
63
66
  // eslint-disable-next-line react-hooks/exhaustive-deps
64
67
  }, []);
65
68
 
@@ -93,7 +96,7 @@ const SiteFilter = (props: ISiteFilterProps): JSX.Element => {
93
96
  );
94
97
  };
95
98
 
96
- interface ISiteFilterProps {
99
+ export interface ISiteFilterProps {
97
100
  filterItems(pointer: string, filter: string): void;
98
101
  value: any;
99
102
  pointer: string;
@@ -19,19 +19,10 @@ const IconsWrapper = styled.div`
19
19
  }
20
20
  `;
21
21
 
22
- const InteractiveArrow = styled.div`
23
- display: flex;
24
- svg {
25
- path {
26
- fill: ${(p) => p.theme.color.interactive01};
27
- }
28
- }
29
- `;
30
-
31
22
  const ChecksWrapper = styled.div`
32
23
  padding: ${(p) => p.theme.spacing.xs} ${(p) => p.theme.spacing.s};
33
24
  height: calc(${(p) => p.theme.spacing.xl} * 3.5);
34
25
  overflow-y: scroll;
35
26
  `;
36
27
 
37
- export { Site, IconsWrapper, InteractiveArrow, ChecksWrapper };
28
+ export { Site, IconsWrapper, ChecksWrapper };
@@ -17,13 +17,13 @@ const StatusFilter = (props: IStatusFilterProps) => {
17
17
  isAscending ? <Icon name="FullArrowUp" size="16" /> : <Icon name="FullArrowDown" size="16" />;
18
18
 
19
19
  const Header = () => (
20
- <S.Status isActive={sortedByDate}>
20
+ <S.Status isActive={sortedByDate} data-testid="status-filter-header">
21
21
  Status
22
22
  <S.IconsWrapper>
23
23
  {sortedByDate ? (
24
24
  <SortedStateArrow />
25
25
  ) : (
26
- <S.InteractiveArrow>
26
+ <S.InteractiveArrow data-testid="status-filter-interactive-arrow">
27
27
  <Icon name="DownArrow" size="16" />
28
28
  </S.InteractiveArrow>
29
29
  )}
@@ -44,7 +44,7 @@ const StatusFilter = (props: IStatusFilterProps) => {
44
44
  );
45
45
  };
46
46
 
47
- interface IStatusFilterProps {
47
+ export interface IStatusFilterProps {
48
48
  sortedState: any;
49
49
  sortItems(orderPointer: string, isAscendent: boolean): any;
50
50
  isStructuredData?: boolean;
@@ -28,9 +28,6 @@ const TranslationsFilter = (props: ITranslationsFilterProps): JSX.Element => {
28
28
  const [selectedValue, setSelectedValue] = useState([...initialState]);
29
29
 
30
30
  const setQuery = (selection: any) => {
31
- if (!selection.length) {
32
- selection = [selectAllOption];
33
- }
34
31
  setSelectedValue(selection);
35
32
  const queryFilters = selection.join("&");
36
33
  const pointer = "translated";
@@ -40,9 +37,9 @@ const TranslationsFilter = (props: ITranslationsFilterProps): JSX.Element => {
40
37
  const isActive = !areEquals(selectedValue, selectAllOption);
41
38
 
42
39
  const Header = () => (
43
- <S.Translations isActive={isActive}>
40
+ <S.Translations isActive={isActive} data-testid="translation-filter-header">
44
41
  Trans.
45
- <S.IconsWrapper>
42
+ <S.IconsWrapper data-testid="translation-filter-icons-wrapper">
46
43
  {isActive ? <Icon name="Filter" size="16" /> : <Icon name="DownArrow" size="16" />}
47
44
  </S.IconsWrapper>
48
45
  </S.Translations>
@@ -51,14 +48,14 @@ const TranslationsFilter = (props: ITranslationsFilterProps): JSX.Element => {
51
48
  return (
52
49
  <FloatingMenu Button={Header} position="left" closeOnSelect={true} isCheckGroup={true}>
53
50
  <ListTitle>Filter by translations</ListTitle>
54
- <S.ChecksWrapper>
51
+ <S.ChecksWrapper data-testid="translation-filter-checks-wrapper">
55
52
  <CheckGroup options={filters} value={selectedValue} onChange={setQuery} multipleSelection={false} />
56
53
  </S.ChecksWrapper>
57
54
  </FloatingMenu>
58
55
  );
59
56
  };
60
57
 
61
- interface ITranslationsFilterProps {
58
+ export interface ITranslationsFilterProps {
62
59
  filterItems(pointer: string, filter: string): void;
63
60
  value: string;
64
61
  }
@@ -19,17 +19,8 @@ const IconsWrapper = styled.div`
19
19
  }
20
20
  `;
21
21
 
22
- const InteractiveArrow = styled.div`
23
- display: flex;
24
- svg {
25
- path {
26
- fill: ${(p) => p.theme.color.interactive01};
27
- }
28
- }
29
- `;
30
-
31
22
  const ChecksWrapper = styled.div`
32
23
  padding: ${(p) => p.theme.spacing.xs} ${(p) => p.theme.spacing.s};
33
24
  `;
34
25
 
35
- export { Translations, IconsWrapper, InteractiveArrow, ChecksWrapper };
26
+ export { Translations, IconsWrapper, ChecksWrapper };
@@ -37,7 +37,7 @@ const TypeFilter = (props: ITypeFilterProps): JSX.Element => {
37
37
 
38
38
  return (
39
39
  <FloatingMenu Button={Header} position="left" closeOnSelect={true} isCheckGroup={true}>
40
- <ListTitle>Filter by type</ListTitle>
40
+ <ListTitle data-testid="type-filter-title">Filter by type</ListTitle>
41
41
  <S.ChecksWrapper>
42
42
  <CheckGroup
43
43
  options={filters}
@@ -57,7 +57,7 @@ interface IFilter {
57
57
  title: string;
58
58
  }
59
59
 
60
- interface ITypeFilterProps {
60
+ export interface ITypeFilterProps {
61
61
  filterItems(pointer: string, filter: string): void;
62
62
  filters: IFilter[];
63
63
  pointer: string;
@@ -19,17 +19,8 @@ const IconsWrapper = styled.div`
19
19
  }
20
20
  `;
21
21
 
22
- const InteractiveArrow = styled.div`
23
- display: flex;
24
- svg {
25
- path {
26
- fill: ${(p) => p.theme.color.interactive01};
27
- }
28
- }
29
- `;
30
-
31
22
  const ChecksWrapper = styled.div`
32
23
  padding: ${(p) => p.theme.spacing.xs} ${(p) => p.theme.spacing.s};
33
24
  `;
34
25
 
35
- export { Types, IconsWrapper, InteractiveArrow, ChecksWrapper };
26
+ export { Types, IconsWrapper, ChecksWrapper };
@@ -82,7 +82,7 @@ const Tooltip = (props: ITooltipProps): JSX.Element => {
82
82
  <S.Tooltip data-testid="tooltip-component" onMouseEnter={showTip} onMouseLeave={hideTip} onMouseDown={handleClick}>
83
83
  <div ref={childrenRef}>{children}</div>
84
84
  <S.Tip
85
- data-testid="tipComponent"
85
+ data-testid="tip-component"
86
86
  active={active}
87
87
  childrenWidth={childrenWidth}
88
88
  bottom={bottom}
@@ -99,6 +99,8 @@ import { isDevelopment } from "./environment";
99
99
 
100
100
  import { getDefaultTheme } from "./themes";
101
101
 
102
+ import { parseTheme } from "./parseTheme";
103
+
102
104
  export {
103
105
  isComponentEmpty,
104
106
  setAsContainedComponent,
@@ -180,4 +182,5 @@ export {
180
182
  getDefaultNavigationModules,
181
183
  isMultipleNavigationModules,
182
184
  areEqual,
185
+ parseTheme,
183
186
  };