@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.
Files changed (58) hide show
  1. package/esm/automations/Automations.d.ts +9 -0
  2. package/esm/automations/Automations.d.ts.map +1 -0
  3. package/esm/automations/Automations.js +19 -0
  4. package/esm/automations/Automations.js.map +1 -0
  5. package/esm/automations/AutomationsCore.d.ts +4 -0
  6. package/esm/automations/AutomationsCore.d.ts.map +1 -0
  7. package/esm/automations/AutomationsCore.js +146 -0
  8. package/esm/automations/AutomationsCore.js.map +1 -0
  9. package/esm/automations/columns/AutomationIcon.d.ts +6 -0
  10. package/esm/automations/columns/AutomationIcon.d.ts.map +1 -0
  11. package/esm/automations/columns/AutomationIcon.js +8 -0
  12. package/esm/automations/columns/AutomationIcon.js.map +1 -0
  13. package/esm/automations/columns/useAutomationColumns.d.ts +5 -0
  14. package/esm/automations/columns/useAutomationColumns.d.ts.map +1 -0
  15. package/esm/automations/columns/useAutomationColumns.js +91 -0
  16. package/esm/automations/columns/useAutomationColumns.js.map +1 -0
  17. package/esm/automations/constants.d.ts +52 -0
  18. package/esm/automations/constants.d.ts.map +1 -0
  19. package/esm/automations/constants.js +62 -0
  20. package/esm/automations/constants.js.map +1 -0
  21. package/esm/automations/filters/FilterOptionsContext.d.ts +9 -0
  22. package/esm/automations/filters/FilterOptionsContext.d.ts.map +1 -0
  23. package/esm/automations/filters/FilterOptionsContext.js +72 -0
  24. package/esm/automations/filters/FilterOptionsContext.js.map +1 -0
  25. package/esm/automations/filters/useAutomationFilters.d.ts +13 -0
  26. package/esm/automations/filters/useAutomationFilters.d.ts.map +1 -0
  27. package/esm/automations/filters/useAutomationFilters.js +80 -0
  28. package/esm/automations/filters/useAutomationFilters.js.map +1 -0
  29. package/esm/automations/index.d.ts +5 -0
  30. package/esm/automations/index.d.ts.map +1 -0
  31. package/esm/automations/index.js +5 -0
  32. package/esm/automations/index.js.map +1 -0
  33. package/esm/automations/messages.d.ts +87 -0
  34. package/esm/automations/messages.d.ts.map +1 -0
  35. package/esm/automations/messages.js +89 -0
  36. package/esm/automations/messages.js.map +1 -0
  37. package/esm/automations/types.d.ts +79 -0
  38. package/esm/automations/types.d.ts.map +1 -0
  39. package/esm/automations/types.js +3 -0
  40. package/esm/automations/types.js.map +1 -0
  41. package/esm/automations/utils.d.ts +16 -0
  42. package/esm/automations/utils.d.ts.map +1 -0
  43. package/esm/automations/utils.js +61 -0
  44. package/esm/automations/utils.js.map +1 -0
  45. package/esm/index.d.ts +1 -0
  46. package/esm/index.d.ts.map +1 -1
  47. package/esm/index.js +1 -0
  48. package/esm/index.js.map +1 -1
  49. package/esm/internal/translations/en-US.json +112 -0
  50. package/esm/internal/translations/en-US.localization-bundle.d.ts +28 -0
  51. package/esm/internal/translations/en-US.localization-bundle.d.ts.map +1 -1
  52. package/esm/internal/translations/en-US.localization-bundle.js +29 -1
  53. package/esm/internal/translations/en-US.localization-bundle.js.map +1 -1
  54. package/esm/sdk-ui-ext.d.ts +100 -0
  55. package/package.json +17 -17
  56. package/styles/css/main.css +56 -0
  57. package/styles/css/main.css.map +1 -1
  58. 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,4 @@
1
+ import React from "react";
2
+ import { IAutomationsCoreProps } from "./types.js";
3
+ export declare const AutomationsCore: (props: IAutomationsCoreProps) => React.JSX.Element;
4
+ //# sourceMappingURL=AutomationsCore.d.ts.map
@@ -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,6 @@
1
+ import React from "react";
2
+ import { AutomationsType } from "../types.js";
3
+ export declare const AutomationIcon: ({ type }: {
4
+ type: AutomationsType;
5
+ }) => React.JSX.Element;
6
+ //# sourceMappingURL=AutomationIcon.d.ts.map
@@ -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"}