@gooddata/sdk-ui-ext 10.36.0-alpha.4 → 10.36.0-alpha.5
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.
- package/esm/automations/Automations.d.ts +9 -0
- package/esm/automations/Automations.d.ts.map +1 -0
- package/esm/automations/Automations.js +19 -0
- package/esm/automations/Automations.js.map +1 -0
- package/esm/automations/AutomationsCore.d.ts +4 -0
- package/esm/automations/AutomationsCore.d.ts.map +1 -0
- package/esm/automations/AutomationsCore.js +146 -0
- package/esm/automations/AutomationsCore.js.map +1 -0
- package/esm/automations/columns/AutomationIcon.d.ts +6 -0
- package/esm/automations/columns/AutomationIcon.d.ts.map +1 -0
- package/esm/automations/columns/AutomationIcon.js +8 -0
- package/esm/automations/columns/AutomationIcon.js.map +1 -0
- package/esm/automations/columns/useAutomationColumns.d.ts +5 -0
- package/esm/automations/columns/useAutomationColumns.d.ts.map +1 -0
- package/esm/automations/columns/useAutomationColumns.js +91 -0
- package/esm/automations/columns/useAutomationColumns.js.map +1 -0
- package/esm/automations/constants.d.ts +52 -0
- package/esm/automations/constants.d.ts.map +1 -0
- package/esm/automations/constants.js +62 -0
- package/esm/automations/constants.js.map +1 -0
- package/esm/automations/filters/FilterOptionsContext.d.ts +9 -0
- package/esm/automations/filters/FilterOptionsContext.d.ts.map +1 -0
- package/esm/automations/filters/FilterOptionsContext.js +72 -0
- package/esm/automations/filters/FilterOptionsContext.js.map +1 -0
- package/esm/automations/filters/useAutomationFilters.d.ts +13 -0
- package/esm/automations/filters/useAutomationFilters.d.ts.map +1 -0
- package/esm/automations/filters/useAutomationFilters.js +80 -0
- package/esm/automations/filters/useAutomationFilters.js.map +1 -0
- package/esm/automations/index.d.ts +5 -0
- package/esm/automations/index.d.ts.map +1 -0
- package/esm/automations/index.js +5 -0
- package/esm/automations/index.js.map +1 -0
- package/esm/automations/messages.d.ts +87 -0
- package/esm/automations/messages.d.ts.map +1 -0
- package/esm/automations/messages.js +89 -0
- package/esm/automations/messages.js.map +1 -0
- package/esm/automations/types.d.ts +79 -0
- package/esm/automations/types.d.ts.map +1 -0
- package/esm/automations/types.js +3 -0
- package/esm/automations/types.js.map +1 -0
- package/esm/automations/utils.d.ts +16 -0
- package/esm/automations/utils.d.ts.map +1 -0
- package/esm/automations/utils.js +61 -0
- package/esm/automations/utils.js.map +1 -0
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/internal/translations/en-US.json +112 -0
- package/esm/internal/translations/en-US.localization-bundle.d.ts +28 -0
- package/esm/internal/translations/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/en-US.localization-bundle.js +29 -1
- package/esm/internal/translations/en-US.localization-bundle.js.map +1 -1
- package/esm/sdk-ui-ext.d.ts +100 -0
- package/package.json +17 -17
- package/styles/css/main.css +56 -0
- package/styles/css/main.css.map +1 -1
- package/styles/scss/main.scss +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { IAutomationsProps } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Internal component for displaying automations.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare const Automations: ({ backend, workspace, locale, selectedColumnDefinitions, maxHeight, pageSize, type, }: IAutomationsProps) => React.JSX.Element;
|
|
9
|
+
//# sourceMappingURL=Automations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Automations.d.ts","sourceRoot":"","sources":["../../src/automations/Automations.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,uFAQzB,iBAAiB,sBAiBnB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { BackendProvider, IntlWrapper, WorkspaceProvider } from "@gooddata/sdk-ui";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { AutomationsCore } from "./AutomationsCore.js";
|
|
5
|
+
import { FilterOptionsProvider } from "./filters/FilterOptionsContext.js";
|
|
6
|
+
import { DEFAULT_MAX_HEIGHT, DEFAULT_PAGE_SIZE } from "./constants.js";
|
|
7
|
+
/**
|
|
8
|
+
* Internal component for displaying automations.
|
|
9
|
+
*
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export const Automations = ({ backend, workspace, locale, selectedColumnDefinitions, maxHeight = DEFAULT_MAX_HEIGHT, pageSize = DEFAULT_PAGE_SIZE, type = "schedule", }) => {
|
|
13
|
+
return (React.createElement(BackendProvider, { backend: backend },
|
|
14
|
+
React.createElement(WorkspaceProvider, { workspace: workspace },
|
|
15
|
+
React.createElement(FilterOptionsProvider, null,
|
|
16
|
+
React.createElement(IntlWrapper, { locale: locale },
|
|
17
|
+
React.createElement(AutomationsCore, { selectedColumnDefinitions: selectedColumnDefinitions, type: type, maxHeight: maxHeight, pageSize: pageSize }))))));
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=Automations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Automations.js","sourceRoot":"","sources":["../../src/automations/Automations.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGvE;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EACxB,OAAO,EACP,SAAS,EACT,MAAM,EACN,yBAAyB,EACzB,SAAS,GAAG,kBAAkB,EAC9B,QAAQ,GAAG,iBAAiB,EAC5B,IAAI,GAAG,UAAU,GACD,EAAE,EAAE;IACpB,OAAO,CACH,oBAAC,eAAe,IAAC,OAAO,EAAE,OAAO;QAC7B,oBAAC,iBAAiB,IAAC,SAAS,EAAE,SAAS;YACnC,oBAAC,qBAAqB;gBAClB,oBAAC,WAAW,IAAC,MAAM,EAAE,MAAM;oBACvB,oBAAC,eAAe,IACZ,yBAAyB,EAAE,yBAAyB,EACpD,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,GACpB,CACQ,CACM,CACR,CACN,CACrB,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutomationsCore.d.ts","sourceRoot":"","sources":["../../src/automations/AutomationsCore.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAKzE,OAAO,EAAE,qBAAqB,EAAqB,MAAM,YAAY,CAAC;AAGtE,eAAO,MAAM,eAAe,GAAI,OAAO,qBAAqB,sBAsC3D,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { useBackend, useCancelablePromise, useWorkspace } from "@gooddata/sdk-ui";
|
|
3
|
+
import { UiAsyncTable } from "@gooddata/sdk-ui-kit";
|
|
4
|
+
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
5
|
+
import { useAutomationColumns } from "./columns/useAutomationColumns.js";
|
|
6
|
+
import { useAutomationFilters } from "./filters/useAutomationFilters.js";
|
|
7
|
+
import { getDefaultColumnDefinitions } from "./utils.js";
|
|
8
|
+
import { AutomationsDefaultState } from "./constants.js";
|
|
9
|
+
export const AutomationsCore = (props) => {
|
|
10
|
+
const { state, dashboardFilter, recipientsFilter, createdByFilter, status, skeletonItemsCount, columns, handleSort, loadNextPage, setSearch, setSelectedIds, } = useAutomationsState(props);
|
|
11
|
+
const { automations, totalItemsCount, hasNextPage, selectedIds, sortBy, sortDirection } = state;
|
|
12
|
+
return (React.createElement("div", null,
|
|
13
|
+
React.createElement(UiAsyncTable, { items: automations, totalItemsCount: totalItemsCount, isLoading: status === "loading" || status === "pending", maxHeight: props.maxHeight, hasNextPage: hasNextPage, loadNextPage: loadNextPage, onSort: handleSort, sortBy: sortBy, sortDirection: sortDirection, skeletonItemsCount: skeletonItemsCount, selectedItemIds: selectedIds, setSelectedItemIds: setSelectedIds, filters: [dashboardFilter, recipientsFilter, createdByFilter], columns: columns, onSearch: setSearch })));
|
|
14
|
+
};
|
|
15
|
+
const useAutomationsState = ({ type, selectedColumnDefinitions, pageSize }) => {
|
|
16
|
+
const backend = useBackend();
|
|
17
|
+
const workspace = useWorkspace();
|
|
18
|
+
const [state, setState] = useState(AutomationsDefaultState);
|
|
19
|
+
const { dashboardFilter, dashboardFilterQuery, recipientsFilter, recipientsFilterQuery, createdByFilter, createdByFilterQuery, } = useAutomationFilters();
|
|
20
|
+
const columnDefinitions = useMemo(() => {
|
|
21
|
+
return selectedColumnDefinitions ?? getDefaultColumnDefinitions();
|
|
22
|
+
}, [selectedColumnDefinitions]);
|
|
23
|
+
const columns = useAutomationColumns(type, columnDefinitions);
|
|
24
|
+
const { status, error } = useCancelablePromise({
|
|
25
|
+
promise: async () => {
|
|
26
|
+
return backend
|
|
27
|
+
.workspace(workspace)
|
|
28
|
+
.automations()
|
|
29
|
+
.getAutomationsQuery()
|
|
30
|
+
.withSize(pageSize)
|
|
31
|
+
.withPage(state.page)
|
|
32
|
+
.withFilter({
|
|
33
|
+
title: state.search,
|
|
34
|
+
})
|
|
35
|
+
.withDashboard(dashboardFilterQuery)
|
|
36
|
+
.withRecipient(recipientsFilterQuery)
|
|
37
|
+
.withAuthor(createdByFilterQuery)
|
|
38
|
+
.withSorting([`${state.sortBy},${state.sortDirection}`])
|
|
39
|
+
.withType(type)
|
|
40
|
+
.query();
|
|
41
|
+
},
|
|
42
|
+
onSuccess: (result) => {
|
|
43
|
+
const newAutomations = [...state.automations, ...result.items];
|
|
44
|
+
setState({
|
|
45
|
+
...state,
|
|
46
|
+
automations: newAutomations,
|
|
47
|
+
hasNextPage: result.totalCount > newAutomations.length,
|
|
48
|
+
totalItemsCount: result.totalCount,
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
onError: (error) => {
|
|
52
|
+
console.error("error", error);
|
|
53
|
+
setState({
|
|
54
|
+
...state,
|
|
55
|
+
totalItemsCount: 0,
|
|
56
|
+
hasNextPage: false,
|
|
57
|
+
automations: [],
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
}, [state.page, state.invalidationId]);
|
|
61
|
+
const resetState = useCallback(() => {
|
|
62
|
+
setState((state) => ({
|
|
63
|
+
...state,
|
|
64
|
+
page: 0,
|
|
65
|
+
automations: [],
|
|
66
|
+
hasNextPage: true,
|
|
67
|
+
totalItemsCount: 0,
|
|
68
|
+
selectedIds: [],
|
|
69
|
+
invalidationId: state.invalidationId + 1,
|
|
70
|
+
}));
|
|
71
|
+
}, []);
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
resetState();
|
|
74
|
+
}, [
|
|
75
|
+
state.search,
|
|
76
|
+
state.sortBy,
|
|
77
|
+
state.sortDirection,
|
|
78
|
+
dashboardFilterQuery,
|
|
79
|
+
recipientsFilterQuery,
|
|
80
|
+
createdByFilterQuery,
|
|
81
|
+
type,
|
|
82
|
+
resetState,
|
|
83
|
+
]);
|
|
84
|
+
const handleSort = (key) => {
|
|
85
|
+
if (state.sortBy === key) {
|
|
86
|
+
if (state.sortDirection === "asc") {
|
|
87
|
+
setState({
|
|
88
|
+
...state,
|
|
89
|
+
sortDirection: "desc",
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
setState({
|
|
94
|
+
...state,
|
|
95
|
+
sortDirection: "asc",
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
setState({
|
|
101
|
+
...state,
|
|
102
|
+
sortBy: key,
|
|
103
|
+
sortDirection: "asc",
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const loadNextPage = useCallback(() => {
|
|
108
|
+
setState((state) => ({
|
|
109
|
+
...state,
|
|
110
|
+
page: state.page + 1,
|
|
111
|
+
}));
|
|
112
|
+
}, []);
|
|
113
|
+
const setSearch = useCallback((search) => {
|
|
114
|
+
setState((state) => ({
|
|
115
|
+
...state,
|
|
116
|
+
search,
|
|
117
|
+
}));
|
|
118
|
+
}, []);
|
|
119
|
+
const setSelectedIds = useCallback((selectedIds) => {
|
|
120
|
+
setState((state) => ({
|
|
121
|
+
...state,
|
|
122
|
+
selectedIds,
|
|
123
|
+
}));
|
|
124
|
+
}, []);
|
|
125
|
+
const skeletonItemsCount = useMemo(() => {
|
|
126
|
+
if (state.hasNextPage) {
|
|
127
|
+
return Math.min(pageSize, state.totalItemsCount - state.automations.length) || pageSize;
|
|
128
|
+
}
|
|
129
|
+
return 0;
|
|
130
|
+
}, [state.hasNextPage, state.totalItemsCount, state.automations.length, pageSize]);
|
|
131
|
+
return {
|
|
132
|
+
state,
|
|
133
|
+
dashboardFilter,
|
|
134
|
+
recipientsFilter,
|
|
135
|
+
createdByFilter,
|
|
136
|
+
status,
|
|
137
|
+
error,
|
|
138
|
+
skeletonItemsCount,
|
|
139
|
+
columns,
|
|
140
|
+
handleSort,
|
|
141
|
+
loadNextPage,
|
|
142
|
+
setSearch,
|
|
143
|
+
setSelectedIds,
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
//# sourceMappingURL=AutomationsCore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutomationsCore.js","sourceRoot":"","sources":["../../src/automations/AutomationsCore.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutomationIcon.d.ts","sourceRoot":"","sources":["../../../src/automations/columns/AutomationIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,eAAO,MAAM,cAAc,GAAI,UAAU;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,sBAWjE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { UiIcon } from "@gooddata/sdk-ui-kit";
|
|
4
|
+
export const AutomationIcon = ({ type }) => {
|
|
5
|
+
const iconType = type === "schedule" ? "clock" : "alert";
|
|
6
|
+
return (React.createElement(UiIcon, { type: iconType, size: 14, color: "complementary-6", backgroundSize: 27, backgroundColor: "complementary-2" }));
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=AutomationIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutomationIcon.js","sourceRoot":"","sources":["../../../src/automations/columns/AutomationIcon.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,IAAI,EAA6B,EAAE,EAAE;IAClE,MAAM,QAAQ,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACzD,OAAO,CACH,oBAAC,MAAM,IACH,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,EAAE,EACR,KAAK,EAAC,iBAAiB,EACvB,cAAc,EAAE,EAAE,EAClB,eAAe,EAAC,iBAAiB,GACnC,CACL,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IAutomationMetadataObject } from "@gooddata/sdk-model";
|
|
2
|
+
import { UiAsyncTableColumn } from "@gooddata/sdk-ui-kit";
|
|
3
|
+
import { AutomationColumnDefinition, AutomationsType } from "../types.js";
|
|
4
|
+
export declare const useAutomationColumns: (type: AutomationsType, columnDefinitions: Array<AutomationColumnDefinition>) => UiAsyncTableColumn<IAutomationMetadataObject>[];
|
|
5
|
+
//# sourceMappingURL=useAutomationColumns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutomationColumns.d.ts","sourceRoot":"","sources":["../../../src/automations/columns/useAutomationColumns.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAiC,MAAM,sBAAsB,CAAC;AAGzF,OAAO,EAAE,0BAA0B,EAAyB,eAAe,EAAE,MAAM,aAAa,CAAC;AAOjG,eAAO,MAAM,oBAAoB,GAC7B,MAAM,eAAe,EACrB,mBAAmB,KAAK,CAAC,0BAA0B,CAAC,KACrD,kBAAkB,CAAC,yBAAyB,CAAC,EAwF/C,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import { Item, ItemsWrapper, Separator } from "@gooddata/sdk-ui-kit";
|
|
3
|
+
import { useWorkspace } from "@gooddata/sdk-ui";
|
|
4
|
+
import React, { useMemo } from "react";
|
|
5
|
+
import { useIntl } from "react-intl";
|
|
6
|
+
import { AutomationIcon } from "./AutomationIcon.js";
|
|
7
|
+
import { buildAlertSubtitle, buildDashboardUrl, formatDate } from "../utils.js";
|
|
8
|
+
import { messages } from "../messages.js";
|
|
9
|
+
import { DEFAULT_COLUMN_WIDTHS } from "../constants.js";
|
|
10
|
+
export const useAutomationColumns = (type, columnDefinitions) => {
|
|
11
|
+
const workspace = useWorkspace();
|
|
12
|
+
const intl = useIntl();
|
|
13
|
+
const allColumns = useMemo(() => ({
|
|
14
|
+
["id"]: {
|
|
15
|
+
key: "id",
|
|
16
|
+
label: intl.formatMessage(messages.columnId),
|
|
17
|
+
width: DEFAULT_COLUMN_WIDTHS.ID,
|
|
18
|
+
},
|
|
19
|
+
["name"]: {
|
|
20
|
+
label: intl.formatMessage(messages.columnName),
|
|
21
|
+
key: "title",
|
|
22
|
+
renderRoleIcon: () => {
|
|
23
|
+
return AutomationIcon({ type });
|
|
24
|
+
},
|
|
25
|
+
getMultiLineTextContent: (item) => [
|
|
26
|
+
String(item.title),
|
|
27
|
+
type === "schedule"
|
|
28
|
+
? String(item.schedule?.cronDescription)
|
|
29
|
+
: String(buildAlertSubtitle(intl, item.alert)),
|
|
30
|
+
],
|
|
31
|
+
sortable: true,
|
|
32
|
+
width: DEFAULT_COLUMN_WIDTHS.NAME,
|
|
33
|
+
},
|
|
34
|
+
["dashboard"]: {
|
|
35
|
+
key: "dashboard",
|
|
36
|
+
label: intl.formatMessage(messages.columnDashboard),
|
|
37
|
+
getTextContent: (item) => item.dashboard,
|
|
38
|
+
getTextHref: (item) => buildDashboardUrl(workspace, item.dashboard),
|
|
39
|
+
width: DEFAULT_COLUMN_WIDTHS.DASHBOARD,
|
|
40
|
+
},
|
|
41
|
+
["recipients"]: {
|
|
42
|
+
key: "recipients",
|
|
43
|
+
label: intl.formatMessage(messages.columnRecipients),
|
|
44
|
+
getTextContent: (item) => String(item.recipients?.length),
|
|
45
|
+
getTextTitle: (item) => item.recipients?.map((recipient) => recipient.name).join(", "),
|
|
46
|
+
width: DEFAULT_COLUMN_WIDTHS.RECIPIENTS,
|
|
47
|
+
},
|
|
48
|
+
["lastSent"]: {
|
|
49
|
+
label: intl.formatMessage(messages.columnLastSent),
|
|
50
|
+
getTextContent: (item) => String(formatDate(item.schedule?.firstRun ?? item.created, intl)),
|
|
51
|
+
width: DEFAULT_COLUMN_WIDTHS.LAST_SENT,
|
|
52
|
+
},
|
|
53
|
+
["state"]: {
|
|
54
|
+
label: intl.formatMessage(messages.columnState),
|
|
55
|
+
width: DEFAULT_COLUMN_WIDTHS.STATE,
|
|
56
|
+
},
|
|
57
|
+
["createdBy"]: {
|
|
58
|
+
key: "createdBy",
|
|
59
|
+
label: intl.formatMessage(messages.columnCreatedBy),
|
|
60
|
+
getTextContent: (item) => String(item.createdBy.fullName),
|
|
61
|
+
width: DEFAULT_COLUMN_WIDTHS.CREATED_BY,
|
|
62
|
+
},
|
|
63
|
+
["createdAt"]: {
|
|
64
|
+
key: "created",
|
|
65
|
+
label: intl.formatMessage(messages.columnCreatedAt),
|
|
66
|
+
getTextContent: (item) => String(formatDate(item.created, intl)),
|
|
67
|
+
width: DEFAULT_COLUMN_WIDTHS.CREATED_AT,
|
|
68
|
+
},
|
|
69
|
+
["notificationChannel"]: {
|
|
70
|
+
key: "notificationChannel",
|
|
71
|
+
label: intl.formatMessage(messages.columnNotificationChannel),
|
|
72
|
+
getTextContent: (item) => String(item.notificationChannel),
|
|
73
|
+
width: DEFAULT_COLUMN_WIDTHS.NOTIFICATION_CHANNEL,
|
|
74
|
+
},
|
|
75
|
+
["menu"]: {
|
|
76
|
+
renderMenu: () => {
|
|
77
|
+
return (React.createElement(ItemsWrapper, { smallItemsSpacing: true },
|
|
78
|
+
React.createElement(Item, null, intl.formatMessage(messages.menuEdit)),
|
|
79
|
+
React.createElement(Separator, null),
|
|
80
|
+
React.createElement(Item, null, intl.formatMessage(messages.menuDelete))));
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
}), [workspace, type, intl]);
|
|
84
|
+
return useMemo(() => {
|
|
85
|
+
return columnDefinitions.map((columnDef) => {
|
|
86
|
+
const selectedColumn = allColumns[columnDef.name];
|
|
87
|
+
return { ...selectedColumn, width: columnDef.width ?? selectedColumn.width };
|
|
88
|
+
});
|
|
89
|
+
}, [allColumns, columnDefinitions]);
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=useAutomationColumns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutomationColumns.js","sourceRoot":"","sources":["../../../src/automations/columns/useAutomationColumns.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { IAutomationsState } from "./types.js";
|
|
2
|
+
export declare const COMPARISON_OPERATOR_LESS_THAN = "LESS_THAN";
|
|
3
|
+
export declare const COMPARISON_OPERATOR_LESS_THAN_OR_EQUAL_TO = "LESS_THAN_OR_EQUAL_TO";
|
|
4
|
+
export declare const COMPARISON_OPERATOR_GREATER_THAN = "GREATER_THAN";
|
|
5
|
+
export declare const COMPARISON_OPERATOR_GREATER_THAN_OR_EQUAL_TO = "GREATER_THAN_OR_EQUAL_TO";
|
|
6
|
+
export declare const RELATIVE_OPERATOR_INCREASE_BY = "INCREASES_BY";
|
|
7
|
+
export declare const RELATIVE_OPERATOR_DECREASE_BY = "DECREASES_BY";
|
|
8
|
+
export declare const RELATIVE_OPERATOR_CHANGES_BY = "CHANGES_BY";
|
|
9
|
+
export declare const ARITHMETIC_OPERATOR_DIFFERENCE = "DIFFERENCE";
|
|
10
|
+
export declare const ARITHMETIC_OPERATOR_CHANGE = "CHANGE";
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare const COMPARISON_OPERATORS: {
|
|
15
|
+
readonly COMPARISON_OPERATOR_LESS_THAN: "LESS_THAN";
|
|
16
|
+
readonly COMPARISON_OPERATOR_LESS_THAN_OR_EQUAL_TO: "LESS_THAN_OR_EQUAL_TO";
|
|
17
|
+
readonly COMPARISON_OPERATOR_GREATER_THAN: "GREATER_THAN";
|
|
18
|
+
readonly COMPARISON_OPERATOR_GREATER_THAN_OR_EQUAL_TO: "GREATER_THAN_OR_EQUAL_TO";
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare const RELATIVE_OPERATORS: {
|
|
24
|
+
readonly RELATIVE_OPERATOR_INCREASE_BY: "INCREASES_BY";
|
|
25
|
+
readonly RELATIVE_OPERATOR_DECREASE_BY: "DECREASES_BY";
|
|
26
|
+
readonly RELATIVE_OPERATOR_CHANGES_BY: "CHANGES_BY";
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export declare const ARITHMETIC_OPERATORS: {
|
|
32
|
+
readonly ARITHMETIC_OPERATOR_DIFFERENCE: "DIFFERENCE";
|
|
33
|
+
readonly ARITHMETIC_OPERATOR_CHANGE: "CHANGE";
|
|
34
|
+
};
|
|
35
|
+
export declare const DEFAULT_MAX_HEIGHT = 500;
|
|
36
|
+
export declare const DEFAULT_PAGE_SIZE = 20;
|
|
37
|
+
/**
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
export declare const DEFAULT_COLUMN_WIDTHS: {
|
|
41
|
+
readonly ID: 100;
|
|
42
|
+
readonly NAME: 280;
|
|
43
|
+
readonly DASHBOARD: 250;
|
|
44
|
+
readonly RECIPIENTS: 225;
|
|
45
|
+
readonly LAST_SENT: 225;
|
|
46
|
+
readonly STATE: 225;
|
|
47
|
+
readonly CREATED_BY: 225;
|
|
48
|
+
readonly CREATED_AT: 225;
|
|
49
|
+
readonly NOTIFICATION_CHANNEL: 225;
|
|
50
|
+
};
|
|
51
|
+
export declare const AutomationsDefaultState: IAutomationsState;
|
|
52
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/automations/constants.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,6BAA6B,cAAc,CAAC;AACzD,eAAO,MAAM,yCAAyC,0BAA0B,CAAC;AACjF,eAAO,MAAM,gCAAgC,iBAAiB,CAAC;AAC/D,eAAO,MAAM,4CAA4C,6BAA6B,CAAC;AAEvF,eAAO,MAAM,6BAA6B,iBAAiB,CAAC;AAC5D,eAAO,MAAM,6BAA6B,iBAAiB,CAAC;AAC5D,eAAO,MAAM,4BAA4B,eAAe,CAAC;AAEzD,eAAO,MAAM,8BAA8B,eAAe,CAAC;AAC3D,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;CAKvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;CAUxB,CAAC;AAEX,eAAO,MAAM,uBAAuB,EAAE,iBAUrC,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
export const COMPARISON_OPERATOR_LESS_THAN = "LESS_THAN";
|
|
3
|
+
export const COMPARISON_OPERATOR_LESS_THAN_OR_EQUAL_TO = "LESS_THAN_OR_EQUAL_TO";
|
|
4
|
+
export const COMPARISON_OPERATOR_GREATER_THAN = "GREATER_THAN";
|
|
5
|
+
export const COMPARISON_OPERATOR_GREATER_THAN_OR_EQUAL_TO = "GREATER_THAN_OR_EQUAL_TO";
|
|
6
|
+
export const RELATIVE_OPERATOR_INCREASE_BY = "INCREASES_BY";
|
|
7
|
+
export const RELATIVE_OPERATOR_DECREASE_BY = "DECREASES_BY";
|
|
8
|
+
export const RELATIVE_OPERATOR_CHANGES_BY = "CHANGES_BY";
|
|
9
|
+
export const ARITHMETIC_OPERATOR_DIFFERENCE = "DIFFERENCE";
|
|
10
|
+
export const ARITHMETIC_OPERATOR_CHANGE = "CHANGE";
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export const COMPARISON_OPERATORS = {
|
|
15
|
+
COMPARISON_OPERATOR_LESS_THAN,
|
|
16
|
+
COMPARISON_OPERATOR_LESS_THAN_OR_EQUAL_TO,
|
|
17
|
+
COMPARISON_OPERATOR_GREATER_THAN,
|
|
18
|
+
COMPARISON_OPERATOR_GREATER_THAN_OR_EQUAL_TO,
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export const RELATIVE_OPERATORS = {
|
|
24
|
+
RELATIVE_OPERATOR_INCREASE_BY,
|
|
25
|
+
RELATIVE_OPERATOR_DECREASE_BY,
|
|
26
|
+
RELATIVE_OPERATOR_CHANGES_BY,
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export const ARITHMETIC_OPERATORS = {
|
|
32
|
+
ARITHMETIC_OPERATOR_DIFFERENCE,
|
|
33
|
+
ARITHMETIC_OPERATOR_CHANGE,
|
|
34
|
+
};
|
|
35
|
+
export const DEFAULT_MAX_HEIGHT = 500;
|
|
36
|
+
export const DEFAULT_PAGE_SIZE = 20;
|
|
37
|
+
/**
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
export const DEFAULT_COLUMN_WIDTHS = {
|
|
41
|
+
ID: 100,
|
|
42
|
+
NAME: 280,
|
|
43
|
+
DASHBOARD: 250,
|
|
44
|
+
RECIPIENTS: 225,
|
|
45
|
+
LAST_SENT: 225,
|
|
46
|
+
STATE: 225,
|
|
47
|
+
CREATED_BY: 225,
|
|
48
|
+
CREATED_AT: 225,
|
|
49
|
+
NOTIFICATION_CHANNEL: 225,
|
|
50
|
+
};
|
|
51
|
+
export const AutomationsDefaultState = {
|
|
52
|
+
automations: [],
|
|
53
|
+
totalItemsCount: 0,
|
|
54
|
+
hasNextPage: true,
|
|
55
|
+
page: 0,
|
|
56
|
+
search: "",
|
|
57
|
+
selectedIds: [],
|
|
58
|
+
sortBy: "title",
|
|
59
|
+
sortDirection: "asc",
|
|
60
|
+
invalidationId: 0,
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/automations/constants.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAIhC,MAAM,CAAC,MAAM,6BAA6B,GAAG,WAAW,CAAC;AACzD,MAAM,CAAC,MAAM,yCAAyC,GAAG,uBAAuB,CAAC;AACjF,MAAM,CAAC,MAAM,gCAAgC,GAAG,cAAc,CAAC;AAC/D,MAAM,CAAC,MAAM,4CAA4C,GAAG,0BAA0B,CAAC;AAEvF,MAAM,CAAC,MAAM,6BAA6B,GAAG,cAAc,CAAC;AAC5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,cAAc,CAAC;AAC5D,MAAM,CAAC,MAAM,4BAA4B,GAAG,YAAY,CAAC;AAEzD,MAAM,CAAC,MAAM,8BAA8B,GAAG,YAAY,CAAC;AAC3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,6BAA6B;IAC7B,yCAAyC;IACzC,gCAAgC;IAChC,4CAA4C;CACtC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,6BAA6B;IAC7B,6BAA6B;IAC7B,4BAA4B;CACtB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,8BAA8B;IAC9B,0BAA0B;CACpB,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,GAAG;IACT,SAAS,EAAE,GAAG;IACd,UAAU,EAAE,GAAG;IACf,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,GAAG;IACV,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;IACf,oBAAoB,EAAE,GAAG;CACnB,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACtD,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,CAAC;IAClB,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,EAAE;IACV,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,OAAO;IACf,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,CAAC;CACpB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
import { FilterOptionsContextValue } from "../types.js";
|
|
3
|
+
interface FilterOptionsProviderProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const FilterOptionsProvider: React.FC<FilterOptionsProviderProps>;
|
|
7
|
+
export declare const useFilterOptions: () => FilterOptionsContextValue;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=FilterOptionsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterOptionsContext.d.ts","sourceRoot":"","sources":["../../../src/automations/filters/FilterOptionsContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAuC,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAIxD,UAAU,0BAA0B;IAChC,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA8EtE,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,yBAQnC,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// (C) 2025 GoodData Corporation
|
|
2
|
+
import React, { createContext, useContext, useState } from "react";
|
|
3
|
+
import { useBackend, useCancelablePromise, useWorkspace } from "@gooddata/sdk-ui";
|
|
4
|
+
const FilterOptionsContext = createContext(null);
|
|
5
|
+
export const FilterOptionsProvider = ({ children }) => {
|
|
6
|
+
const [currentUser, setCurrentUser] = useState(null);
|
|
7
|
+
const [currentUserError, setCurrentUserError] = useState(null);
|
|
8
|
+
const [workspaceUsers, setWorkspaceUsers] = useState([]);
|
|
9
|
+
const [workspaceUsersError, setWorkspaceUsersError] = useState(null);
|
|
10
|
+
const [dashboards, setDashboards] = useState([]);
|
|
11
|
+
const [dashboardsError, setDashboardsError] = useState(null);
|
|
12
|
+
const backend = useBackend();
|
|
13
|
+
const workspace = useWorkspace();
|
|
14
|
+
useCancelablePromise({
|
|
15
|
+
promise: async () => {
|
|
16
|
+
return backend.currentUser().getUser();
|
|
17
|
+
},
|
|
18
|
+
onSuccess: (result) => {
|
|
19
|
+
setCurrentUser(result);
|
|
20
|
+
},
|
|
21
|
+
onError: (error) => {
|
|
22
|
+
setCurrentUserError(error);
|
|
23
|
+
},
|
|
24
|
+
}, [backend]);
|
|
25
|
+
useCancelablePromise({
|
|
26
|
+
promise: async () => {
|
|
27
|
+
return backend.workspace(workspace).users().queryAll();
|
|
28
|
+
},
|
|
29
|
+
onSuccess: (result) => {
|
|
30
|
+
setWorkspaceUsers(result);
|
|
31
|
+
},
|
|
32
|
+
onError: (error) => {
|
|
33
|
+
setWorkspaceUsersError(error);
|
|
34
|
+
},
|
|
35
|
+
}, [backend]);
|
|
36
|
+
useCancelablePromise({
|
|
37
|
+
promise: async () => {
|
|
38
|
+
return backend.workspace(workspace).dashboards().getDashboards();
|
|
39
|
+
},
|
|
40
|
+
onSuccess: (result) => {
|
|
41
|
+
setDashboards(result);
|
|
42
|
+
},
|
|
43
|
+
onError: (error) => {
|
|
44
|
+
setDashboardsError(error);
|
|
45
|
+
},
|
|
46
|
+
}, [backend]);
|
|
47
|
+
const isCurrentUser = (userLogin) => {
|
|
48
|
+
if (!currentUser?.login) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
// Compare by login since both current user and workspace users have this property
|
|
52
|
+
return currentUser.login === userLogin;
|
|
53
|
+
};
|
|
54
|
+
const contextValue = {
|
|
55
|
+
currentUser,
|
|
56
|
+
workspaceUsers,
|
|
57
|
+
currentUserError,
|
|
58
|
+
workspaceUsersError,
|
|
59
|
+
dashboards,
|
|
60
|
+
dashboardsError,
|
|
61
|
+
isCurrentUser,
|
|
62
|
+
};
|
|
63
|
+
return React.createElement(FilterOptionsContext.Provider, { value: contextValue }, children);
|
|
64
|
+
};
|
|
65
|
+
export const useFilterOptions = () => {
|
|
66
|
+
const context = useContext(FilterOptionsContext);
|
|
67
|
+
if (context === null) {
|
|
68
|
+
throw new Error("FilterOptionsContext not found");
|
|
69
|
+
}
|
|
70
|
+
return context;
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=FilterOptionsContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterOptionsContext.js","sourceRoot":"","sources":["../../../src/automations/filters/FilterOptionsContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { UiAsyncTableFilter } from "@gooddata/sdk-ui-kit";
|
|
2
|
+
export declare const ALL_DASHBOARDS_FILTER_VALUE = "__ALL_DASHBOARDS__";
|
|
3
|
+
export declare const ALL_RECIPIENTS_FILTER_VALUE = "__ALL_RECIPIENTS__";
|
|
4
|
+
export declare const ALL_CREATED_BY_FILTER_VALUE = "__ALL_CREATED_BY__";
|
|
5
|
+
export declare const useAutomationFilters: () => {
|
|
6
|
+
dashboardFilter: UiAsyncTableFilter;
|
|
7
|
+
dashboardFilterQuery: string;
|
|
8
|
+
recipientsFilter: UiAsyncTableFilter;
|
|
9
|
+
recipientsFilterQuery: string;
|
|
10
|
+
createdByFilter: UiAsyncTableFilter;
|
|
11
|
+
createdByFilterQuery: string;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=useAutomationFilters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAutomationFilters.d.ts","sourceRoot":"","sources":["../../../src/automations/filters/useAutomationFilters.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAA4B,MAAM,sBAAsB,CAAC;AAIpF,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAChE,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAChE,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAiHhE,eAAO,MAAM,oBAAoB;;;;;;;CAahC,CAAC"}
|