@evenicanpm/admin-integrate 1.1.0 → 1.2.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.
Files changed (101) hide show
  1. package/documents/ProcessSchedule/fragments.ts +24 -0
  2. package/documents/ProcessSchedule/read.ts +12 -0
  3. package/documents/ProcessScheduleGroup/fragments.ts +29 -0
  4. package/documents/ProcessScheduleGroup/read.ts +12 -0
  5. package/documents/ScheduledProcess/fragments.ts +24 -0
  6. package/documents/ScheduledProcess/list.ts +27 -0
  7. package/package.json +21 -17
  8. package/src/api/dashboard/queries/get-process-executions.query.ts +33 -36
  9. package/src/api/dashboard/queries/get-process-executions.server.ts +4 -4
  10. package/src/api/scheduler/queries/get-process-schedule-group-details.query.ts +45 -0
  11. package/src/api/scheduler/queries/get-process-schedule-group-details.server.ts +14 -0
  12. package/src/api/scheduler/queries/get-process-schedule.query.ts +45 -0
  13. package/src/api/scheduler/queries/get-process-schedule.server.ts +14 -0
  14. package/src/api/scheduler/queries/get-scheduled-processes.query.ts +45 -0
  15. package/src/api/scheduler/queries/get-scheduled-processes.server.ts +11 -0
  16. package/src/api/scheduler/queries/index.ts +3 -0
  17. package/src/components/breadcrumbs/breadcrumbs.tsx +23 -26
  18. package/src/components/breadcrumbs/index.ts +1 -1
  19. package/src/components/breadcrumbs/types.tsx +4 -0
  20. package/src/components/button/outlined-icon-button.tsx +26 -38
  21. package/src/components/core/date-time-popover.tsx +32 -0
  22. package/src/components/core/edited-typography.tsx +20 -0
  23. package/src/components/core/index.ts +3 -0
  24. package/src/components/core/loading.tsx +6 -6
  25. package/src/components/core/title-edit.tsx +122 -0
  26. package/src/components/dashboard-list/dashboard-list-row.tsx +114 -115
  27. package/src/components/dashboard-list/dashboard-list.tsx +119 -119
  28. package/src/components/data-table/table-header.tsx +85 -81
  29. package/src/components/data-table/table-pagination.tsx +27 -27
  30. package/src/components/data-table/table-row.tsx +14 -14
  31. package/src/components/data-table/table-skeleton.tsx +34 -34
  32. package/src/components/execution/execution-filter.ts +22 -22
  33. package/src/components/execution/execution-status-icon.tsx +16 -17
  34. package/src/components/execution/execution-tag.tsx +81 -80
  35. package/src/components/footer/footer.tsx +34 -34
  36. package/src/components/header/dashboard-list-header.tsx +64 -63
  37. package/src/components/header/execution-details-header.tsx +102 -129
  38. package/src/components/header/header.tsx +27 -27
  39. package/src/components/header/index.ts +1 -0
  40. package/src/components/header/integration-details-header.tsx +99 -0
  41. package/src/components/icons/up-down.tsx +15 -15
  42. package/src/components/integration-view/edges/default-edge.tsx +18 -17
  43. package/src/components/integration-view/elk-layout-options.ts +26 -26
  44. package/src/components/integration-view/elk-types.ts +16 -12
  45. package/src/components/integration-view/flow-types.tsx +5 -5
  46. package/src/components/integration-view/integration-view.tsx +132 -130
  47. package/src/components/integration-view/nodes/base-node.tsx +50 -0
  48. package/src/components/integration-view/nodes/connection-node.tsx +8 -8
  49. package/src/components/integration-view/nodes/entry-node.tsx +8 -8
  50. package/src/components/integration-view/nodes/group-node.tsx +47 -6
  51. package/src/components/integration-view/nodes/task-node.tsx +58 -13
  52. package/src/components/integration-view/temp-data/initialElements.tsx +224 -0
  53. package/src/components/integration-view/types.ts +6 -6
  54. package/src/components/layouts/main-layout.tsx +13 -13
  55. package/src/components/layouts/root-container.tsx +25 -25
  56. package/src/components/link-cards/link-card.tsx +23 -23
  57. package/src/components/link-cards/styles.ts +15 -15
  58. package/src/components/list-filter/date-filter.tsx +41 -45
  59. package/src/components/list-filter/date-range-filter.tsx +78 -77
  60. package/src/components/list-filter/list-filter-types.ts +38 -38
  61. package/src/components/list-filter/list-filter.tsx +363 -354
  62. package/src/components/list-filter/multi-select-filter.tsx +94 -95
  63. package/src/components/list-filter/select-filter.tsx +67 -64
  64. package/src/components/scheduler/day-selector.tsx +174 -0
  65. package/src/components/scheduler/day-tag.tsx +73 -0
  66. package/src/components/scheduler/index.ts +4 -0
  67. package/src/components/scheduler/schedule-filter.ts +25 -0
  68. package/src/components/scheduler/schedule-icon.tsx +87 -0
  69. package/src/components/scheduler/scheduler-types.ts +40 -0
  70. package/src/hooks/use-breadcrumbs.ts +31 -31
  71. package/src/hooks/use-recurrence.tsx +13 -0
  72. package/src/hooks/use-timestamp.tsx +21 -21
  73. package/src/pages/dashboard/dashboard-link-cards.tsx +99 -99
  74. package/src/pages/dashboard/dashboard-list-sections.tsx +130 -125
  75. package/src/pages/dashboard/dashboard.tsx +6 -6
  76. package/src/pages/execution-details/execution-details.tsx +23 -29
  77. package/src/pages/executions/executions-list/executions-list-row.tsx +101 -104
  78. package/src/pages/executions/executions-list/executions-list-table.tsx +45 -53
  79. package/src/pages/executions/executions-list/executions-list.tsx +219 -212
  80. package/src/pages/executions/executions.tsx +67 -72
  81. package/src/pages/integrations/integrations.tsx +17 -25
  82. package/src/pages/scheduler/schedule-drawer/edited/edited-types.ts +17 -0
  83. package/src/pages/scheduler/schedule-drawer/edited/index.ts +1 -0
  84. package/src/pages/scheduler/schedule-drawer/index.ts +1 -0
  85. package/src/pages/scheduler/schedule-drawer/schedule-details-integrations.tsx +227 -0
  86. package/src/pages/scheduler/schedule-drawer/schedule-details-main.tsx +292 -0
  87. package/src/pages/scheduler/schedule-drawer/schedule-details-name.tsx +77 -0
  88. package/src/pages/scheduler/schedule-drawer/schedule-details-skeleton.tsx +64 -0
  89. package/src/pages/scheduler/schedule-drawer/schedule-details.tsx +42 -0
  90. package/src/pages/scheduler/schedule-drawer/schedule-drawer-buttons.tsx +72 -0
  91. package/src/pages/scheduler/schedule-drawer/schedule-drawer-group.tsx +103 -0
  92. package/src/pages/scheduler/schedule-drawer/schedule-drawer-legacy.tsx +94 -0
  93. package/src/pages/scheduler/schedule-drawer/schedule-drawer.tsx +101 -0
  94. package/src/pages/scheduler/schedule-drawer/sortable-integration-row.tsx +93 -0
  95. package/src/pages/scheduler/scheduler.tsx +106 -30
  96. package/src/pages/scheduler/schedules-list/index.ts +1 -0
  97. package/src/pages/scheduler/schedules-list/schedules-list-row.tsx +235 -0
  98. package/src/pages/scheduler/schedules-list/schedules-list-table.tsx +74 -0
  99. package/src/pages/scheduler/schedules-list/schedules-list.tsx +280 -0
  100. package/tsconfig.json +29 -26
  101. package/src/components/integration-view/temp-data/initialElements.ts +0 -238
@@ -6,96 +6,97 @@ import React, { useState } from "react";
6
6
  import { DateRangeFilter, FilterProps } from "./list-filter-types";
7
7
 
8
8
  const DateRangeFilterComponent: React.FC<FilterProps<DateRangeFilter>> = ({
9
- filter,
10
- onSet,
11
- onError,
12
- current,
9
+ filter,
10
+ onSet,
11
+ onError,
12
+ current,
13
13
  }) => {
14
- const t = useTranslations("Integrate.Filter");
15
- const theme = useTheme();
16
- const styles = getStyles(theme);
14
+ const t = useTranslations("Integrate");
15
+ const theme = useTheme();
16
+ const styles = getStyles(theme);
17
17
 
18
- const [value, setValue] = useState(current);
19
- const [error, setError] = useState<{ start?: string; end?: string } | null>(
20
- null,
21
- );
18
+ const [value, setValue] = useState(current);
19
+ const [error, setError] = useState<{
20
+ start?: string | null;
21
+ end?: string | null;
22
+ } | null>(null);
22
23
 
23
- const updateValue = (part: "start" | "end", date: null | Date | string) => {
24
- const dateValue =
25
- typeof date !== "string" && !isNaN(date?.getTime())
26
- ? date.toISOString()
27
- : null;
24
+ const updateValue = (part: "start" | "end", date: null | Date | string) => {
25
+ const dateValue: string | null =
26
+ date !== null && typeof date !== "string" && !isNaN(date?.getTime())
27
+ ? date.toISOString()
28
+ : null;
28
29
 
29
- let dateRangeValue = {
30
- start: null,
31
- end: null,
32
- ...value,
33
- [part]: dateValue,
34
- };
30
+ let dateRangeValue: typeof current = {
31
+ start: null,
32
+ end: null,
33
+ ...value,
34
+ [part]: dateValue,
35
+ };
35
36
 
36
- if (!dateRangeValue.start && !dateRangeValue.end) dateRangeValue = null;
37
+ if (!dateRangeValue.start && !dateRangeValue.end) dateRangeValue = null;
37
38
 
38
- setValue(dateRangeValue);
39
- onSet(dateRangeValue);
40
- };
39
+ setValue(dateRangeValue);
40
+ onSet(dateRangeValue);
41
+ };
41
42
 
42
- const updateError = (part: "start" | "end", newError: string | null) => {
43
- let errorValue = {
44
- start: null,
45
- end: null,
46
- ...(error ? error : {}),
47
- [part]: newError ? t("invalidDate") : null,
48
- };
43
+ const updateError = (part: "start" | "end", newError: string | null) => {
44
+ let errorValue: typeof error = {
45
+ start: null,
46
+ end: null,
47
+ ...(error ? error : {}),
48
+ [part]: newError ? t("Filter.invalidDate") : null,
49
+ };
49
50
 
50
- if (!errorValue.start && !errorValue.end) errorValue = null;
51
+ if (!errorValue.start && !errorValue.end) errorValue = null;
51
52
 
52
- setError(errorValue);
53
- onError(!!errorValue);
54
- };
53
+ setError(errorValue);
54
+ onError(!!errorValue);
55
+ };
55
56
 
56
- return (
57
- <FormControl>
58
- <Typography>{filter.label}</Typography>
59
- <Box sx={styles.dateRange}>
60
- <DatePicker
61
- value={value?.start ? new Date(value.start) : null}
62
- label={t("dateStartLabel")}
63
- onChange={(v) => updateValue("start", v)}
64
- onError={(e) => updateError("start", e)}
65
- slotProps={{
66
- field: { clearable: true },
67
- textField: {
68
- helperText: error?.start || "",
69
- },
70
- }}
71
- maxDate={(value?.end && new Date(value.end)) || ""}
72
- />
73
- <DatePicker
74
- value={value?.end ? new Date(value.end) : null}
75
- label={t("dateEndLabel")}
76
- onChange={(v) => updateValue("end", v)}
77
- onError={(e) => updateError("end", e)}
78
- slotProps={{
79
- field: { clearable: true },
80
- textField: {
81
- helperText: error?.end || "",
82
- },
83
- }}
84
- minDate={(value?.start && new Date(value.start)) || ""}
85
- />
86
- </Box>
87
- </FormControl>
88
- );
57
+ return (
58
+ <FormControl>
59
+ <Typography>{t(filter.label)}</Typography>
60
+ <Box sx={styles.dateRange}>
61
+ <DatePicker
62
+ value={value?.start ? new Date(value.start) : null}
63
+ label={t("Filter.dateStartLabel")}
64
+ onChange={(v) => updateValue("start", v)}
65
+ onError={(e) => updateError("start", e)}
66
+ slotProps={{
67
+ field: { clearable: true },
68
+ textField: {
69
+ helperText: error?.start || "",
70
+ },
71
+ }}
72
+ maxDate={(value?.end && new Date(value.end)) || ""}
73
+ />
74
+ <DatePicker
75
+ value={value?.end ? new Date(value.end) : null}
76
+ label={t("Filter.dateEndLabel")}
77
+ onChange={(v) => updateValue("end", v)}
78
+ onError={(e) => updateError("end", e)}
79
+ slotProps={{
80
+ field: { clearable: true },
81
+ textField: {
82
+ helperText: error?.end || "",
83
+ },
84
+ }}
85
+ minDate={(value?.start && new Date(value.start)) || ""}
86
+ />
87
+ </Box>
88
+ </FormControl>
89
+ );
89
90
  };
90
91
 
91
92
  const getStyles = (theme: Theme) => ({
92
- dateRange: {
93
- display: "flex",
94
- width: "100%",
95
- columnGap: theme.spacing(2),
96
- marginTop: theme.spacing(1),
97
- "& > *": { flex: "1" },
98
- },
93
+ dateRange: {
94
+ display: "flex",
95
+ width: "100%",
96
+ columnGap: theme.spacing(2),
97
+ marginTop: theme.spacing(1),
98
+ "& > *": { flex: "1" },
99
+ },
99
100
  });
100
101
 
101
102
  export default DateRangeFilterComponent;
@@ -1,70 +1,70 @@
1
1
  export interface FilterOption {
2
- id: number | string;
3
- value: string;
2
+ id: number | string;
3
+ value: string;
4
4
  }
5
5
 
6
6
  interface FilterBase {
7
- label: string;
8
- sort?: number;
7
+ label: string;
8
+ sort?: number;
9
9
  }
10
10
 
11
11
  export interface DateFilter extends FilterBase {
12
- type: "date";
13
- value: string | null;
12
+ type: "date";
13
+ value: string | null;
14
14
  }
15
15
 
16
16
  export interface DateRangeFilter extends FilterBase {
17
- type: "dateRange";
18
- value: { start: string | null; end: string | null } | null;
17
+ type: "dateRange";
18
+ value: { start: string | null; end: string | null } | null;
19
19
  }
20
20
 
21
21
  export interface SelectFilter extends FilterBase {
22
- type: "select";
23
- value: [FilterOption] | null;
24
- options: FilterOption[];
22
+ type: "select";
23
+ value: [FilterOption] | null;
24
+ options: FilterOption[];
25
25
  }
26
26
 
27
27
  export interface MultiSelectFilter extends FilterBase {
28
- type: "multiSelect";
29
- value: FilterOption[] | null;
30
- options: FilterOption[];
28
+ type: "multiSelect";
29
+ value: FilterOption[] | null;
30
+ options: FilterOption[];
31
31
  }
32
32
 
33
33
  export interface Filters {
34
- [filterName: string]:
35
- | DateFilter
36
- | DateRangeFilter
37
- | SelectFilter
38
- | MultiSelectFilter;
34
+ [filterName: string]:
35
+ | DateFilter
36
+ | DateRangeFilter
37
+ | SelectFilter
38
+ | MultiSelectFilter;
39
39
  }
40
40
 
41
41
  export type FilterResult<FilterShape extends Filters> = {
42
- [Property in keyof FilterShape]: FilterShape[Property]["value"];
42
+ [Property in keyof FilterShape]: FilterShape[Property]["value"];
43
43
  };
44
44
 
45
45
  export interface ListFilterOutput<FilterShape extends Filters> {
46
- filters: FilterResult<FilterShape>;
47
- search: string | null;
48
- itemsPerPage: number | null;
46
+ filters: FilterResult<FilterShape>;
47
+ search: string | null;
48
+ itemsPerPage: number | null;
49
49
  }
50
50
 
51
51
  export interface FilterConfig {
52
- pagination:
53
- | {
54
- pageOptions?: number[];
55
- pageDefault?: number;
56
- }
57
- | false;
58
- search?:
59
- | {
60
- label?: string;
61
- }
62
- | false;
52
+ pagination:
53
+ | {
54
+ pageOptions?: number[];
55
+ pageDefault?: number;
56
+ }
57
+ | false;
58
+ search?:
59
+ | {
60
+ label?: string;
61
+ }
62
+ | false;
63
63
  }
64
64
 
65
65
  export interface FilterProps<Filter extends { value: unknown }> {
66
- filter: Filter;
67
- onSet: (value: Filter["value"]) => void;
68
- onError: (error: boolean) => void;
69
- current: Filter["value"];
66
+ filter: Filter;
67
+ onSet: (value: Filter["value"]) => void;
68
+ onError: (error: boolean) => void;
69
+ current: Filter["value"];
70
70
  }