@gooddata/sdk-ui-dashboard 11.51.0-alpha.5 → 11.51.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.
- package/esm/__version.d.ts +1 -1
- package/esm/__version.d.ts.map +1 -1
- package/esm/__version.js +1 -1
- package/esm/model/commandHandlers/filterContext/filterViewHandler.d.ts.map +1 -1
- package/esm/model/commandHandlers/filterContext/filterViewHandler.js +17 -4
- package/esm/model/store/filterViews/filterViewsReducers.d.ts +13 -1
- package/esm/model/store/filterViews/filterViewsReducers.d.ts.map +1 -1
- package/esm/model/store/filterViews/filterViewsReducers.js +46 -0
- package/esm/model/store/filterViews/filterViewsState.d.ts +22 -0
- package/esm/model/store/filterViews/filterViewsState.d.ts.map +1 -1
- package/esm/model/store/filterViews/index.d.ts +3 -0
- package/esm/model/store/filterViews/index.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +2 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.d.ts +1 -3
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.js +2 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.d.ts +1 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.js +2 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.d.ts +1 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.js +2 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts +1 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.js +2 -2
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +11 -6
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailEffectiveFilters.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailEffectiveFilters.js +12 -3
- package/esm/presentation/automations/scheduledEmail/utils/pdfPageSize.d.ts +1 -2
- package/esm/presentation/automations/scheduledEmail/utils/pdfPageSize.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/utils/pdfPageSize.js +12 -3
- package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.js +1 -6
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.d.ts.map +1 -1
- package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.js +19 -16
- package/package.json +21 -21
- package/styles/css/filterBar.css +15 -44
- package/styles/css/filterBar.css.map +1 -1
- package/styles/css/main.css +15 -44
- package/styles/css/main.css.map +1 -1
- package/styles/scss/filterBar.scss +17 -62
package/esm/__version.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "11.51.0
|
|
1
|
+
export declare const LIB_VERSION = "11.51.0";
|
|
2
2
|
export declare const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
3
3
|
export declare const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
|
4
4
|
//# sourceMappingURL=__version.d.ts.map
|
package/esm/__version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"__version.d.ts","sourceRoot":"","sources":["../src/__version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"__version.d.ts","sourceRoot":"","sources":["../src/__version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,eAAO,MAAM,eAAe,uCAAuC,CAAC;AAEpE,eAAO,MAAM,QAAQ,+BAA+B,CAAC"}
|
package/esm/__version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2021 GoodData Corporation
|
|
2
2
|
// DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
|
|
3
|
-
export const LIB_VERSION = "11.51.0
|
|
3
|
+
export const LIB_VERSION = "11.51.0";
|
|
4
4
|
export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
5
5
|
export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterViewHandler.d.ts","sourceRoot":"","sources":["../../../../src/model/commandHandlers/filterContext/filterViewHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAc/C,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,uBAAuB,
|
|
1
|
+
{"version":3,"file":"filterViewHandler.d.ts","sourceRoot":"","sources":["../../../../src/model/commandHandlers/filterContext/filterViewHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAc/C,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAE/B,MAAM,2BAA2B,CAAC;AAwBnC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAcnE,wBAAiB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAoEtG;AAMD,wBAAiB,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,CAsB1G;AAOD,wBAAiB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,CAmCxG;AAMD,wBAAiB,6BAA6B,CAC1C,GAAG,EAAE,gBAAgB,EACrB,GAAG,EAAE,uBAAuB,GAC7B,YAAY,CAAC,IAAI,CAAC,CAuBpB;AAED,wBAAiB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,CAcnF"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { call, put, select } from "redux-saga/effects";
|
|
3
3
|
import { areObjRefsEqual, isDashboardAttributeFilter, } from "@gooddata/sdk-model";
|
|
4
4
|
import { defaultErrorHandler } from "@gooddata/sdk-ui";
|
|
5
|
-
import { changeFilterContextSelectionByParams,
|
|
5
|
+
import { changeFilterContextSelectionByParams, } from "../../commands/filters.js";
|
|
6
6
|
import { filterViewApplicationFailed, filterViewApplicationSucceeded, filterViewCreationFailed, filterViewCreationSucceeded, filterViewDefaultStatusChangeFailed, filterViewDefaultStatusChangeSucceeded, filterViewDeletionFailed, filterViewDeletionSucceeded, } from "../../events/filters.js";
|
|
7
7
|
import { selectCatalogParameters } from "../../store/catalog/catalogSelectors.js";
|
|
8
8
|
import { selectIsApplyFiltersAllAtOnceEnabledAndSet } from "../../store/config/configSelectors.js";
|
|
@@ -51,7 +51,11 @@ export function* saveFilterViewHandler(ctx, cmd) {
|
|
|
51
51
|
};
|
|
52
52
|
try {
|
|
53
53
|
const newFilterView = yield call(createFilterView, ctx, filterView);
|
|
54
|
-
|
|
54
|
+
// apply the create response, a list reload may not be consistent yet and would drop the new view
|
|
55
|
+
yield put(filterViewsActions.addFilterView({
|
|
56
|
+
dashboard: ctx.dashboardRef,
|
|
57
|
+
filterView: newFilterView,
|
|
58
|
+
}));
|
|
55
59
|
yield put(filterViewCreationSucceeded(ctx, newFilterView, cmd.correlationId));
|
|
56
60
|
}
|
|
57
61
|
catch (error) {
|
|
@@ -68,7 +72,11 @@ export function* deleteFilterViewHandler(ctx, cmd) {
|
|
|
68
72
|
try {
|
|
69
73
|
const filterView = yield call(findFilterView, cmd.payload.ref);
|
|
70
74
|
yield call(deleteFilterView, ctx, cmd.payload.ref);
|
|
71
|
-
|
|
75
|
+
// no response body, so drop the view locally instead of re-reading a possibly stale list
|
|
76
|
+
yield put(filterViewsActions.removeFilterView({
|
|
77
|
+
dashboard: ctx.dashboardRef,
|
|
78
|
+
ref: cmd.payload.ref,
|
|
79
|
+
}));
|
|
72
80
|
yield put(filterViewDeletionSucceeded(ctx, filterView, cmd.correlationId));
|
|
73
81
|
}
|
|
74
82
|
catch (error) {
|
|
@@ -119,7 +127,12 @@ export function* setFilterViewAsDefaultHandler(ctx, cmd) {
|
|
|
119
127
|
};
|
|
120
128
|
try {
|
|
121
129
|
yield call(setFilterViewAsDefault, ctx, cmd.payload.ref, cmd.payload.isDefault);
|
|
122
|
-
|
|
130
|
+
// same as delete - no response body, so apply the requested state locally
|
|
131
|
+
yield put(filterViewsActions.setFilterViewAsDefault({
|
|
132
|
+
dashboard: ctx.dashboardRef,
|
|
133
|
+
ref: cmd.payload.ref,
|
|
134
|
+
isDefault: cmd.payload.isDefault,
|
|
135
|
+
}));
|
|
123
136
|
yield put(filterViewDefaultStatusChangeSucceeded(ctx, updatedFilterView, cmd.correlationId));
|
|
124
137
|
}
|
|
125
138
|
catch (error) {
|
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import { type Action, type CaseReducer } from "@reduxjs/toolkit";
|
|
2
|
-
import { type IFilterViews, type IFilterViewsState } from "./filterViewsState.js";
|
|
2
|
+
import { type IAddFilterView, type IFilterViews, type IFilterViewsState, type IRemoveFilterView, type ISetFilterViewAsDefault } from "./filterViewsState.js";
|
|
3
3
|
type FilterViewsReducer<A extends Action> = CaseReducer<IFilterViewsState, A>;
|
|
4
4
|
export declare const filterViewsReducers: {
|
|
5
5
|
setFilterViews: FilterViewsReducer<{
|
|
6
6
|
payload: IFilterViews;
|
|
7
7
|
type: string;
|
|
8
8
|
}>;
|
|
9
|
+
addFilterView: FilterViewsReducer<{
|
|
10
|
+
payload: IAddFilterView;
|
|
11
|
+
type: string;
|
|
12
|
+
}>;
|
|
13
|
+
removeFilterView: FilterViewsReducer<{
|
|
14
|
+
payload: IRemoveFilterView;
|
|
15
|
+
type: string;
|
|
16
|
+
}>;
|
|
17
|
+
setFilterViewAsDefault: FilterViewsReducer<{
|
|
18
|
+
payload: ISetFilterViewAsDefault;
|
|
19
|
+
type: string;
|
|
20
|
+
}>;
|
|
9
21
|
setFilterLoading: FilterViewsReducer<{
|
|
10
22
|
payload: boolean;
|
|
11
23
|
type: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterViewsReducers.d.ts","sourceRoot":"","sources":["../../../../src/model/store/filterViews/filterViewsReducers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAIrF,OAAO,
|
|
1
|
+
{"version":3,"file":"filterViewsReducers.d.ts","sourceRoot":"","sources":["../../../../src/model/store/filterViews/filterViewsReducers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAIrF,OAAO,EACH,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC/B,MAAM,uBAAuB,CAAC;AAE/B,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAgF9E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;CAM/B,CAAC"}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
// (C) 2024-2026 GoodData Corporation
|
|
2
2
|
import { areObjRefsEqual } from "@gooddata/sdk-model";
|
|
3
|
+
/** Replaces the dashboard's views and clears the loading flag. */
|
|
4
|
+
function replaceBucket(state, dashboard, filterViews) {
|
|
5
|
+
state.filterViews = [
|
|
6
|
+
...state.filterViews.filter((item) => !areObjRefsEqual(item.dashboard, dashboard)),
|
|
7
|
+
{ dashboard, filterViews },
|
|
8
|
+
];
|
|
9
|
+
state.isLoading = false;
|
|
10
|
+
}
|
|
11
|
+
function bucketOf(state, dashboard) {
|
|
12
|
+
return state.filterViews.find((item) => areObjRefsEqual(item.dashboard, dashboard))?.filterViews ?? [];
|
|
13
|
+
}
|
|
3
14
|
const setFilterViews = (state, action) => {
|
|
4
15
|
state.filterViews = [
|
|
5
16
|
...state.filterViews.filter((item) => !areObjRefsEqual(item.dashboard, action.payload.dashboard)),
|
|
@@ -7,10 +18,45 @@ const setFilterViews = (state, action) => {
|
|
|
7
18
|
];
|
|
8
19
|
state.isLoading = false;
|
|
9
20
|
};
|
|
21
|
+
/** Upserts a single view, applying the create response without re-reading the list. */
|
|
22
|
+
const addFilterView = (state, action) => {
|
|
23
|
+
const { dashboard, filterView } = action.payload;
|
|
24
|
+
const otherFilterViews = bucketOf(state, dashboard).filter((item) => !areObjRefsEqual(item.ref, filterView.ref));
|
|
25
|
+
// creating a new default view resets the flag on the others, same as the backend does
|
|
26
|
+
const updatedFilterViews = filterView.isDefault
|
|
27
|
+
? otherFilterViews.map((item) => (item.isDefault ? { ...item, isDefault: false } : item))
|
|
28
|
+
: otherFilterViews;
|
|
29
|
+
// the list is sorted by name when loaded, keep the new view in place instead of appending it
|
|
30
|
+
replaceBucket(state, dashboard, [...updatedFilterViews, filterView].sort((a, b) => a.name.localeCompare(b.name)));
|
|
31
|
+
};
|
|
32
|
+
/** Drops a view, dispatched only after the delete succeeded. */
|
|
33
|
+
const removeFilterView = (state, action) => {
|
|
34
|
+
const { dashboard, ref } = action.payload;
|
|
35
|
+
replaceBucket(state, dashboard, bucketOf(state, dashboard).filter((item) => !areObjRefsEqual(item.ref, ref)));
|
|
36
|
+
};
|
|
37
|
+
/** Moves the default flag onto the given view, clearing it on the others as the backend does. */
|
|
38
|
+
const setFilterViewAsDefault = (state, action) => {
|
|
39
|
+
const { dashboard, ref, isDefault } = action.payload;
|
|
40
|
+
const filterViews = bucketOf(state, dashboard);
|
|
41
|
+
// nothing to move the flag to, keep the current defaults as they are
|
|
42
|
+
if (!filterViews.some((item) => areObjRefsEqual(item.ref, ref))) {
|
|
43
|
+
state.isLoading = false;
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
replaceBucket(state, dashboard, filterViews.map((item) => {
|
|
47
|
+
const target = areObjRefsEqual(item.ref, ref);
|
|
48
|
+
// only the target may become default; setting it clears the flag everywhere else
|
|
49
|
+
const nextIsDefault = target ? isDefault : isDefault ? false : item.isDefault;
|
|
50
|
+
return item.isDefault === nextIsDefault ? item : { ...item, isDefault: nextIsDefault };
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
10
53
|
const setFilterLoading = (state, action) => {
|
|
11
54
|
state.isLoading = action.payload;
|
|
12
55
|
};
|
|
13
56
|
export const filterViewsReducers = {
|
|
14
57
|
setFilterViews,
|
|
58
|
+
addFilterView,
|
|
59
|
+
removeFilterView,
|
|
60
|
+
setFilterViewAsDefault,
|
|
15
61
|
setFilterLoading,
|
|
16
62
|
};
|
|
@@ -6,6 +6,28 @@ export interface IFilterViews {
|
|
|
6
6
|
dashboard: ObjRef;
|
|
7
7
|
filterViews: IDashboardFilterView[];
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* @alpha
|
|
11
|
+
*/
|
|
12
|
+
export interface IAddFilterView {
|
|
13
|
+
dashboard: ObjRef;
|
|
14
|
+
filterView: IDashboardFilterView;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @alpha
|
|
18
|
+
*/
|
|
19
|
+
export interface IRemoveFilterView {
|
|
20
|
+
dashboard: ObjRef;
|
|
21
|
+
ref: ObjRef;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @alpha
|
|
25
|
+
*/
|
|
26
|
+
export interface ISetFilterViewAsDefault {
|
|
27
|
+
dashboard: ObjRef;
|
|
28
|
+
ref: ObjRef;
|
|
29
|
+
isDefault: boolean;
|
|
30
|
+
}
|
|
9
31
|
/**
|
|
10
32
|
* @alpha
|
|
11
33
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterViewsState.d.ts","sourceRoot":"","sources":["../../../../src/model/store/filterViews/filterViewsState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,EAAE,iBAAyD,CAAC"}
|
|
1
|
+
{"version":3,"file":"filterViewsState.d.ts","sourceRoot":"","sources":["../../../../src/model/store/filterViews/filterViewsState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,oBAAoB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,EAAE,iBAAyD,CAAC"}
|
|
@@ -3,6 +3,9 @@ import { type IFilterViewsState } from "./filterViewsState.js";
|
|
|
3
3
|
export declare const filterViewsSliceReducer: Reducer<IFilterViewsState>;
|
|
4
4
|
export declare const filterViewsActions: {
|
|
5
5
|
setFilterViews: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./filterViewsState.js").IFilterViews, "filterViews/setFilterViews">;
|
|
6
|
+
addFilterView: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./filterViewsState.js").IAddFilterView, "filterViews/addFilterView">;
|
|
7
|
+
removeFilterView: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./filterViewsState.js").IRemoveFilterView, "filterViews/removeFilterView">;
|
|
8
|
+
setFilterViewAsDefault: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./filterViewsState.js").ISetFilterViewAsDefault, "filterViews/setFilterViewAsDefault">;
|
|
6
9
|
setFilterLoading: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "filterViews/setFilterLoading">;
|
|
7
10
|
};
|
|
8
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/store/filterViews/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAe,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,KAAK,iBAAiB,EAA2B,MAAM,uBAAuB,CAAC;AAQxF,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAAC,iBAAiB,CAA4B,CAAC;AAG5F,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/store/filterViews/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAe,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,KAAK,iBAAiB,EAA2B,MAAM,uBAAuB,CAAC;AAQxF,eAAO,MAAM,uBAAuB,EAAE,OAAO,CAAC,iBAAiB,CAA4B,CAAC;AAG5F,eAAO,MAAM,kBAAkB;;;;;;CAAkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.tsx"],"names":[],"mappings":"AAwCA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AA+D9D,wBAAgB,2BAA2B,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACZ,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"DefaultScheduledEmailDialog.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.tsx"],"names":[],"mappings":"AAwCA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AA+D9D,wBAAgB,2BAA2B,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,eAAe,EACf,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACZ,EAAE,0BAA0B,2CAwgB5B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,2CAY5E"}
|
|
@@ -54,6 +54,7 @@ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess,
|
|
|
54
54
|
const { defaultUser, editedAutomation, originalAutomation, isSubmitDisabled, xlsxSettings, pdfSettings, csvSettings, csvRawSettings, startDate, allowExternalRecipients, allowOnlyLoggedUserRecipients, validationErrorMessage, selectedAttachments, isParentValid, onDashboardAttachmentsChange, onWidgetAttachmentsChange, onXlsxSettingsChange, onPdfSettingsChange, onCsvSettingsChange, onCsvRawSettingsChange, slidesTemplateIds, onSlidesTemplateIdChange, onDestinationChange, onMessageChange, onRecipientsChange, onRecurrenceChange, onEvaluationModeChange, onSubjectChange, onTitleChange, onFiltersChange, onApplyCurrentFilters, onStoreFiltersChange, onFiltersByTabChange, enableAutomationEvaluationMode, users, usersError, notificationChannels, selectedFilters, availableFilters, storeFilters, filtersByTab, editedFiltersByTab, automationIsValid, parametersEnabled, visibleParametersByTab, availableParametersByTab, flatTabId, onParameterAdd, onParameterChange, onParameterDelete, onParameterAddByTab, onParameterChangeByTab, onParameterDeleteByTab, applyLatest: applyLatestParameters, } = useEditScheduledEmail({
|
|
55
55
|
maxAutomationsRecipients,
|
|
56
56
|
externalRecipientOverride,
|
|
57
|
+
defaultPdfPageSize,
|
|
57
58
|
});
|
|
58
59
|
const [isApplyCurrentFiltersDialogOpen, setIsApplyCurrentFiltersDialogOpen] = useState(!automationIsValid);
|
|
59
60
|
const { handleSaveScheduledEmail, isSavingScheduledEmail, savingErrorMessage } = useSaveScheduledEmailToBackend(editedAutomation, {
|
|
@@ -164,7 +165,7 @@ export function ScheduledMailDialogRenderer({ onBack, onCancel, onDeleteSuccess,
|
|
|
164
165
|
getDefaultCronExpression(startDate), cronDescription: editedAutomation.schedule?.cronDescription, timezone: editedAutomation.schedule?.timezone ??
|
|
165
166
|
TIMEZONE_DEFAULT.identifier, dateFormat: dateFormat ?? "MM/dd/yyyy", locale: locale, weekStart: weekStart, onChange: onRecurrenceChange, allowHourlyRecurrence: allowHourlyRecurrence, isWhiteLabeled: isWhiteLabeled, closeDropdownsOnParentScroll: CLOSE_ON_PARENT_SCROLL, onKeyDownSubmit: handleSubmitForm }), _jsx(ContentDivider, { className: "gd-divider-with-margin" }), _jsx(DestinationSelect, { notificationChannels: notificationChannels, selectedItemId: editedAutomation.notificationChannel, onChange: onDestinationChange, closeOnParentScroll: CLOSE_ON_PARENT_SCROLL, overlayPositionType: OVERLAY_POSITION_TYPE }), _jsx(ContentDivider, { className: "gd-divider-with-margin" }), _jsx(RecipientsSelect, { id: "schedule.email.recipients", loggedUser: defaultUser, users: users, usersError: usersError, value: editedAutomation.recipients ?? [], originalValue: originalAutomation.recipients || [], onChange: onRecipientsChange, allowEmptySelection: true, allowOnlyLoggedUserRecipients: allowOnlyLoggedUserRecipients, allowExternalRecipients: allowExternalRecipients, maxRecipients: maxAutomationsRecipients, notificationChannels: notificationChannels, notificationChannelId: editedAutomation.notificationChannel, onKeyDownSubmit: handleSubmitForm, externalRecipientOverride: externalRecipientOverride }), isInPlatformChannel ? null : (_jsxs(_Fragment, { children: [
|
|
166
167
|
_jsx(SubjectForm, { dashboardTitle: dashboardTitle, editedAutomation: editedAutomation, onChange: onSubjectChange, onKeyDownSubmit: handleSaveScheduledEmail, isSubmitDisabled: isSubmitDisabled }), _jsx(MessageForm, { onChange: onMessageChange, value: editedAutomation.details?.message ?? "" })
|
|
167
|
-
] })), widget ? (_jsx(WidgetAttachments, { selectedAttachments: selectedAttachments, onWidgetAttachmentsChange: onWidgetAttachmentsChange, xlsxSettings: xlsxSettings, pdfSettings: pdfSettings, onXlsxSettingsChange: onXlsxSettingsChange, onPdfSettingsChange: onPdfSettingsChange, csvSettings: csvSettings, onCsvSettingsChange: onCsvSettingsChange, csvRawSettings: csvRawSettings, onCsvRawSettingsChange: onCsvRawSettingsChange, isSlidesExportEnabled: isSlidesExportEnabled, isAccessibilityModeEnabled: isAccessibilityModeEnabled,
|
|
168
|
+
] })), widget ? (_jsx(WidgetAttachments, { selectedAttachments: selectedAttachments, onWidgetAttachmentsChange: onWidgetAttachmentsChange, xlsxSettings: xlsxSettings, pdfSettings: pdfSettings, onXlsxSettingsChange: onXlsxSettingsChange, onPdfSettingsChange: onPdfSettingsChange, csvSettings: csvSettings, onCsvSettingsChange: onCsvSettingsChange, csvRawSettings: csvRawSettings, onCsvRawSettingsChange: onCsvRawSettingsChange, isSlidesExportEnabled: isSlidesExportEnabled, isAccessibilityModeEnabled: isAccessibilityModeEnabled, exportTemplates: exportTemplates, slidesTemplateIds: slidesTemplateIds, onSlidesTemplateIdChange: onSlidesTemplateIdChange })) : (_jsx(DashboardAttachments, { selectedAttachments: selectedAttachments, dashboardFilters: dashboardFilters, isCrossFiltering: isCrossFiltering, onDashboardAttachmentsChange: onDashboardAttachmentsChange, xlsxSettings: xlsxSettings, onXlsxSettingsChange: onXlsxSettingsChange, isSlidesExportEnabled: isSlidesExportEnabled, exportTemplates: exportTemplates, slidesTemplateIds: slidesTemplateIds, onSlidesTemplateIdChange: onSlidesTemplateIdChange })), enableAutomationEvaluationMode ? (_jsx(EvaluationModeCheckbox, { isShared: editedAutomation.evaluationMode === "SHARED", onChange: onEvaluationModeChange })) : null, errorMessage ? (_jsx(Message, { type: "error", className: cx("gd-notifications-channels-dialog-error", {
|
|
168
169
|
"gd-notifications-channels-dialog-error-scrollable": true,
|
|
169
170
|
}), children: errorMessage })) : null, getInvalidDatapoints()
|
|
170
171
|
.filter((invalidDatapoint) => invalidDatapoint.severity === "error")
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { type IExportDefinitionVisualizationObjectSettings } from "@gooddata/sdk-model";
|
|
2
|
-
type PdfPageSize = NonNullable<IExportDefinitionVisualizationObjectSettings["pageSize"]>;
|
|
3
2
|
type IAttachmentSettingsType = "XLSX" | "PDF_TABULAR" | "CSV" | "CSV_RAW";
|
|
4
3
|
export interface IAttachmentSettingsProps {
|
|
5
4
|
type: IAttachmentSettingsType;
|
|
6
5
|
settings: IExportDefinitionVisualizationObjectSettings;
|
|
7
6
|
onSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
|
|
8
|
-
defaultPdfPageSize?: PdfPageSize;
|
|
9
7
|
}
|
|
10
|
-
export declare function AttachmentSettings({ type, settings, onSettingsChange
|
|
8
|
+
export declare function AttachmentSettings({ type, settings, onSettingsChange }: IAttachmentSettingsProps): import("react/jsx-runtime").JSX.Element;
|
|
11
9
|
export {};
|
|
12
10
|
//# sourceMappingURL=AttachmentSettings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentSettings.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,4CAA4C,EAIpD,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AttachmentSettings.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,4CAA4C,EAIpD,MAAM,qBAAqB,CAAC;AAsC7B,KAAK,uBAAuB,GAAG,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1E,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE,4CAA4C,CAAC;IACvD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;CACtF;AA6BD,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,wBAAwB,2CA2WhG"}
|
|
@@ -38,13 +38,13 @@ const mapPageOrientationToLegacyOrientation = (orientation) => {
|
|
|
38
38
|
}
|
|
39
39
|
return undefined;
|
|
40
40
|
};
|
|
41
|
-
export function AttachmentSettings({ type, settings, onSettingsChange
|
|
41
|
+
export function AttachmentSettings({ type, settings, onSettingsChange }) {
|
|
42
42
|
const intl = useIntl();
|
|
43
43
|
const isPdfTabular = type === "PDF_TABULAR";
|
|
44
44
|
const isCsv = type === "CSV" || type === "CSV_RAW";
|
|
45
45
|
const legacyOrientation = settings.orientation;
|
|
46
46
|
const legacyPageOrientation = mapLegacyOrientationToPageOrientation(legacyOrientation);
|
|
47
|
-
const resolvedDefaultPageSize = settings.pageSize ??
|
|
47
|
+
const resolvedDefaultPageSize = settings.pageSize ?? DEFAULT_PDF_PAGE_SIZE;
|
|
48
48
|
const resolvedCsvDelimiter = settings.delimiter ?? DEFAULT_CSV_DELIMITER;
|
|
49
49
|
const resolvedCsvState = getCsvDelimiterState(settings.delimiter);
|
|
50
50
|
const [mergeHeaders, setMergeHeaders] = useState(settings.mergeHeaders ?? true);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type DashboardAttachmentType, type IExportDefinitionVisualizationObjectSettings, type IExportTemplate, type WidgetAttachmentType } from "@gooddata/sdk-model";
|
|
2
|
-
export declare function AttachmentsList<T extends WidgetAttachmentType | DashboardAttachmentType>({ attachments, onDelete, xlsxSettings, onXlsxSettingsChange, pdfSettings, onPdfSettingsChange, csvSettings, onCsvSettingsChange, csvRawSettings, onCsvRawSettingsChange,
|
|
2
|
+
export declare function AttachmentsList<T extends WidgetAttachmentType | DashboardAttachmentType>({ attachments, onDelete, xlsxSettings, onXlsxSettingsChange, pdfSettings, onPdfSettingsChange, csvSettings, onCsvSettingsChange, csvRawSettings, onCsvRawSettingsChange, mode, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange }: {
|
|
3
3
|
attachments: T[];
|
|
4
4
|
onDelete: (attachment: T) => void;
|
|
5
5
|
xlsxSettings: IExportDefinitionVisualizationObjectSettings;
|
|
@@ -10,7 +10,6 @@ export declare function AttachmentsList<T extends WidgetAttachmentType | Dashboa
|
|
|
10
10
|
onCsvSettingsChange?: (settings: IExportDefinitionVisualizationObjectSettings) => void;
|
|
11
11
|
csvRawSettings?: IExportDefinitionVisualizationObjectSettings;
|
|
12
12
|
onCsvRawSettingsChange?: (settings: IExportDefinitionVisualizationObjectSettings) => void;
|
|
13
|
-
defaultPdfPageSize?: IExportDefinitionVisualizationObjectSettings["pageSize"];
|
|
14
13
|
mode: "widget" | "dashboard";
|
|
15
14
|
exportTemplates?: IExportTemplate[];
|
|
16
15
|
slidesTemplateIds?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentsList.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.tsx"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,4CAA4C,EACjD,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC5B,MAAM,qBAAqB,CAAC;AAM7B,wBAAgB,eAAe,CAAC,CAAC,SAAS,oBAAoB,GAAG,uBAAuB,EAAE,EACtF,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"AttachmentsList.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.tsx"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,4CAA4C,EACjD,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC5B,MAAM,qBAAqB,CAAC;AAM7B,wBAAgB,eAAe,CAAC,CAAC,SAAS,oBAAoB,GAAG,uBAAuB,EAAE,EACtF,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,IAAI,EACJ,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EAC3B,EAAE;IACC,WAAW,EAAE,CAAC,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,IAAI,CAAC;IAClC,YAAY,EAAE,4CAA4C,CAAC;IAC3D,oBAAoB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACvF,WAAW,CAAC,EAAE,4CAA4C,CAAC;IAC3D,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACvF,WAAW,CAAC,EAAE,4CAA4C,CAAC;IAC3D,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACvF,cAAc,CAAC,EAAE,4CAA4C,CAAC;IAC9D,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IAC1F,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC7B,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,wBAAwB,CAAC,EAAE,CACvB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,KACpC,IAAI,CAAC;CACb,2CAsFA"}
|
|
@@ -4,12 +4,12 @@ import { useIntl } from "react-intl";
|
|
|
4
4
|
import { AttachmentSettings } from "./AttachmentSettings.js";
|
|
5
5
|
import { attachmentIcons, dashboardAttachmentLabels, widgetAttachmentLabels } from "./AttachmentsSelect.js";
|
|
6
6
|
import { SlidesTemplateSettings } from "./SlidesTemplateSettings.js";
|
|
7
|
-
export function AttachmentsList({ attachments, onDelete, xlsxSettings, onXlsxSettingsChange, pdfSettings, onPdfSettingsChange, csvSettings, onCsvSettingsChange, csvRawSettings, onCsvRawSettingsChange,
|
|
7
|
+
export function AttachmentsList({ attachments, onDelete, xlsxSettings, onXlsxSettingsChange, pdfSettings, onPdfSettingsChange, csvSettings, onCsvSettingsChange, csvRawSettings, onCsvRawSettingsChange, mode, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange, }) {
|
|
8
8
|
const intl = useIntl();
|
|
9
9
|
return (_jsx(_Fragment, { children: attachments.map((attachment) => (_jsxs("div", { className: "gd-attachment-chip", children: [
|
|
10
10
|
_jsx("span", { className: `gd-attachment-chip-label ${attachmentIcons[attachment]}`, children: mode === "widget"
|
|
11
11
|
? widgetAttachmentLabels[attachment]
|
|
12
|
-
: dashboardAttachmentLabels[attachment] }), attachment === "XLSX" && (_jsx(AttachmentSettings, { type: "XLSX", settings: xlsxSettings, onSettingsChange: onXlsxSettingsChange })), attachment === "PDF_TABULAR" && pdfSettings && onPdfSettingsChange ? (_jsx(AttachmentSettings, { type: "PDF_TABULAR", settings: pdfSettings, onSettingsChange: onPdfSettingsChange
|
|
12
|
+
: dashboardAttachmentLabels[attachment] }), attachment === "XLSX" && (_jsx(AttachmentSettings, { type: "XLSX", settings: xlsxSettings, onSettingsChange: onXlsxSettingsChange })), attachment === "PDF_TABULAR" && pdfSettings && onPdfSettingsChange ? (_jsx(AttachmentSettings, { type: "PDF_TABULAR", settings: pdfSettings, onSettingsChange: onPdfSettingsChange })) : null, attachment === "CSV" && csvSettings && onCsvSettingsChange ? (_jsx(AttachmentSettings, { type: "CSV", settings: csvSettings, onSettingsChange: onCsvSettingsChange })) : null, attachment === "CSV_RAW" && csvRawSettings && onCsvRawSettingsChange ? (_jsx(AttachmentSettings, { type: "CSV_RAW", settings: csvRawSettings, onSettingsChange: onCsvRawSettingsChange })) : null, attachment === "PPTX" && exportTemplates && onSlidesTemplateIdChange ? (_jsx(SlidesTemplateSettings, { templates: exportTemplates, templateId: slidesTemplateIds?.PPTX, onTemplateIdChange: (id) => onSlidesTemplateIdChange(id, "PPTX") })) : null, attachment === "PDF_SLIDES" && exportTemplates && onSlidesTemplateIdChange ? (_jsx(SlidesTemplateSettings, { templates: exportTemplates, templateId: slidesTemplateIds?.PDF_SLIDES, onTemplateIdChange: (id) => onSlidesTemplateIdChange(id, "PDF_SLIDES") })) : null, attachment === "PDF" &&
|
|
13
13
|
mode === "widget" &&
|
|
14
14
|
exportTemplates &&
|
|
15
15
|
onSlidesTemplateIdChange ? (_jsx(SlidesTemplateSettings, { templates: exportTemplates, templateId: slidesTemplateIds?.PDF, onTemplateIdChange: (id) => onSlidesTemplateIdChange(id, "PDF") })) : null, _jsx("button", { className: "gd-attachment-chip-button gd-attachment-chip-delete", "aria-label": intl.formatMessage({ id: "dialogs.schedule.management.attachments.delete" }, { format: attachment }), onClick: () => onDelete(attachment), children: _jsx("svg", { width: "14", height: "14", viewBox: "0 0 20 20", "aria-hidden": "true", fill: "currentColor", children: _jsx("path", { d: "M10.7031 10.0049L16.3574 15.6494C16.4551 15.7471 16.5039 15.8643 16.5039 16.001C16.5039 16.1377 16.4551 16.2549 16.3574 16.3525C16.3053 16.4046 16.2467 16.4437 16.1816 16.4697C16.123 16.4893 16.0612 16.499 15.9961 16.499C15.9375 16.499 15.8757 16.4893 15.8105 16.4697C15.752 16.4437 15.6966 16.4046 15.6445 16.3525L10 10.708L4.35547 16.3525C4.30339 16.4046 4.24479 16.4437 4.17969 16.4697C4.12109 16.4893 4.0625 16.499 4.00391 16.499C3.9388 16.499 3.8737 16.4893 3.80859 16.4697C3.75 16.4437 3.69466 16.4046 3.64258 16.3525C3.54492 16.2549 3.49609 16.1377 3.49609 16.001C3.49609 15.8643 3.54492 15.7471 3.64258 15.6494L9.29688 10.0049L3.64258 4.35059C3.54492 4.25293 3.49609 4.13574 3.49609 3.99902C3.49609 3.8623 3.54492 3.74512 3.64258 3.64746C3.74023 3.5498 3.85742 3.50098 3.99414 3.50098C4.13737 3.50098 4.25781 3.5498 4.35547 3.64746L10 9.29199L15.6445 3.64746C15.7422 3.5498 15.8594 3.50098 15.9961 3.50098C16.1393 3.50098 16.2598 3.5498 16.3574 3.64746C16.4551 3.74512 16.5039 3.8623 16.5039 3.99902C16.5039 4.13574 16.4551 4.25293 16.3574 4.35059L10.7031 10.0049Z" }) }) })
|
|
@@ -7,7 +7,6 @@ export interface IDashboardAttachmentsProps {
|
|
|
7
7
|
xlsxSettings: IExportDefinitionVisualizationObjectSettings;
|
|
8
8
|
onXlsxSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
|
|
9
9
|
isSlidesExportEnabled: boolean;
|
|
10
|
-
defaultPdfPageSize?: IExportDefinitionVisualizationObjectSettings["pageSize"];
|
|
11
10
|
exportTemplates?: IExportTemplate[];
|
|
12
11
|
slidesTemplateIds?: {
|
|
13
12
|
PPTX?: string;
|
|
@@ -16,5 +15,5 @@ export interface IDashboardAttachmentsProps {
|
|
|
16
15
|
};
|
|
17
16
|
onSlidesTemplateIdChange?: (templateId: string | undefined, format: "PPTX" | "PDF_SLIDES" | "PDF") => void;
|
|
18
17
|
}
|
|
19
|
-
export declare function DashboardAttachments({ dashboardFilters, isCrossFiltering, onDashboardAttachmentsChange, selectedAttachments, xlsxSettings, onXlsxSettingsChange, isSlidesExportEnabled,
|
|
18
|
+
export declare function DashboardAttachments({ dashboardFilters, isCrossFiltering, onDashboardAttachmentsChange, selectedAttachments, xlsxSettings, onXlsxSettingsChange, isSlidesExportEnabled, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange }: IDashboardAttachmentsProps): import("react/jsx-runtime").JSX.Element;
|
|
20
19
|
//# sourceMappingURL=DashboardAttachments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardAttachments.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.tsx"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,4CAA4C,EACjD,KAAK,eAAe,EACvB,MAAM,qBAAqB,CAAC;AAa7B,MAAM,WAAW,0BAA0B;IACvC,mBAAmB,EAAE,uBAAuB,EAAE,CAAC;IAC/C,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,4BAA4B,EAAE,CAAC,OAAO,EAAE,uBAAuB,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAC1G,YAAY,EAAE,4CAA4C,CAAC;IAC3D,oBAAoB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACvF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,
|
|
1
|
+
{"version":3,"file":"DashboardAttachments.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.tsx"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,4CAA4C,EACjD,KAAK,eAAe,EACvB,MAAM,qBAAqB,CAAC;AAa7B,MAAM,WAAW,0BAA0B;IACvC,mBAAmB,EAAE,uBAAuB,EAAE,CAAC;IAC/C,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,4BAA4B,EAAE,CAAC,OAAO,EAAE,uBAAuB,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAC1G,YAAY,EAAE,4CAA4C,CAAC;IAC3D,oBAAoB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACvF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,wBAAwB,CAAC,EAAE,CACvB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,KACpC,IAAI,CAAC;CACb;AAED,wBAAgB,oBAAoB,CAAC,EACjC,gBAAgB,EAChB,gBAAgB,EAChB,4BAA4B,EAC5B,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EAC3B,EAAE,0BAA0B,2CA4H5B"}
|
|
@@ -10,7 +10,7 @@ import { AttachmentsSelect } from "./AttachmentsSelect.js";
|
|
|
10
10
|
import { AttachmentsWrapper } from "./AttachmentsWrapper.js";
|
|
11
11
|
const ALL_DASHBOARD_ATTACHMENTS = ["PDF", "PDF_SLIDES", "PPTX", "XLSX"];
|
|
12
12
|
const SLIDE_DASHBOARD_ATTACHMENTS = ["PDF_SLIDES", "PPTX"];
|
|
13
|
-
export function DashboardAttachments({ dashboardFilters, isCrossFiltering, onDashboardAttachmentsChange, selectedAttachments, xlsxSettings, onXlsxSettingsChange, isSlidesExportEnabled,
|
|
13
|
+
export function DashboardAttachments({ dashboardFilters, isCrossFiltering, onDashboardAttachmentsChange, selectedAttachments, xlsxSettings, onXlsxSettingsChange, isSlidesExportEnabled, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange, }) {
|
|
14
14
|
const intl = useIntl();
|
|
15
15
|
const { available: availableAttachments, visibleSelected: visibleSelectedAttachments, buildNextSelection, } = partitionAttachments({
|
|
16
16
|
all: ALL_DASHBOARD_ATTACHMENTS,
|
|
@@ -71,7 +71,7 @@ export function DashboardAttachments({ dashboardFilters, isCrossFiltering, onDas
|
|
|
71
71
|
};
|
|
72
72
|
return (_jsxs(_Fragment, { children: [
|
|
73
73
|
_jsx(AttachmentsWrapper, { children: _jsxs("div", { className: "gd-attachment-list", role: "group", "aria-labelledby": AUTOMATION_ATTACHMENTS_GROUP_LABEL_ID, ref: attachmentListRef, onBlur: makeAttachmentGroupUnfocusable, children: [
|
|
74
|
-
_jsx(AttachmentsList, { attachments: visibleSelectedAttachments, onDelete: handleDelete, xlsxSettings: xlsxSettings, onXlsxSettingsChange: onXlsxSettingsChange,
|
|
74
|
+
_jsx(AttachmentsList, { attachments: visibleSelectedAttachments, onDelete: handleDelete, xlsxSettings: xlsxSettings, onXlsxSettingsChange: onXlsxSettingsChange, mode: "dashboard", exportTemplates: exportTemplates, slidesTemplateIds: slidesTemplateIds, onSlidesTemplateIdChange: onSlidesTemplateIdChange }), _jsx(AttachmentsSelect, { attachments: availableAttachments.map((format) => ({
|
|
75
75
|
type: format,
|
|
76
76
|
selected: selectedAttachments.includes(format),
|
|
77
77
|
})), onChange: handleChange, mode: "dashboard", onAddButtonRef: (ref) => {
|
|
@@ -12,7 +12,6 @@ export interface IWidgetAttachmentsProps {
|
|
|
12
12
|
onCsvRawSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
|
|
13
13
|
isSlidesExportEnabled: boolean;
|
|
14
14
|
isAccessibilityModeEnabled: boolean;
|
|
15
|
-
defaultPdfPageSize?: IExportDefinitionVisualizationObjectSettings["pageSize"];
|
|
16
15
|
exportTemplates?: IExportTemplate[];
|
|
17
16
|
slidesTemplateIds?: {
|
|
18
17
|
PPTX?: string;
|
|
@@ -21,5 +20,5 @@ export interface IWidgetAttachmentsProps {
|
|
|
21
20
|
};
|
|
22
21
|
onSlidesTemplateIdChange?: (templateId: string | undefined, format: "PPTX" | "PDF_SLIDES" | "PDF") => void;
|
|
23
22
|
}
|
|
24
|
-
export declare function WidgetAttachments({ selectedAttachments, onWidgetAttachmentsChange, xlsxSettings, onXlsxSettingsChange, pdfSettings, onPdfSettingsChange, csvSettings, onCsvSettingsChange, csvRawSettings, onCsvRawSettingsChange, isSlidesExportEnabled, isAccessibilityModeEnabled,
|
|
23
|
+
export declare function WidgetAttachments({ selectedAttachments, onWidgetAttachmentsChange, xlsxSettings, onXlsxSettingsChange, pdfSettings, onPdfSettingsChange, csvSettings, onCsvSettingsChange, csvRawSettings, onCsvRawSettingsChange, isSlidesExportEnabled, isAccessibilityModeEnabled, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange }: IWidgetAttachmentsProps): import("react/jsx-runtime").JSX.Element;
|
|
25
24
|
//# sourceMappingURL=WidgetAttachments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetAttachments.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.tsx"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,4CAA4C,EACjD,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC5B,MAAM,qBAAqB,CAAC;AAqB7B,MAAM,WAAW,uBAAuB;IACpC,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,yBAAyB,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IACrE,YAAY,EAAE,4CAA4C,CAAC;IAC3D,oBAAoB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACvF,WAAW,EAAE,4CAA4C,CAAC;IAC1D,mBAAmB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACtF,WAAW,EAAE,4CAA4C,CAAC;IAC1D,mBAAmB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACtF,cAAc,EAAE,4CAA4C,CAAC;IAC7D,sBAAsB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACzF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,0BAA0B,EAAE,OAAO,CAAC;IACpC,
|
|
1
|
+
{"version":3,"file":"WidgetAttachments.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.tsx"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,4CAA4C,EACjD,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC5B,MAAM,qBAAqB,CAAC;AAqB7B,MAAM,WAAW,uBAAuB;IACpC,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,yBAAyB,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;IACrE,YAAY,EAAE,4CAA4C,CAAC;IAC3D,oBAAoB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACvF,WAAW,EAAE,4CAA4C,CAAC;IAC1D,mBAAmB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACtF,WAAW,EAAE,4CAA4C,CAAC;IAC1D,mBAAmB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACtF,cAAc,EAAE,4CAA4C,CAAC;IAC7D,sBAAsB,EAAE,CAAC,QAAQ,EAAE,4CAA4C,KAAK,IAAI,CAAC;IACzF,qBAAqB,EAAE,OAAO,CAAC;IAC/B,0BAA0B,EAAE,OAAO,CAAC;IACpC,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,wBAAwB,CAAC,EAAE,CACvB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,KACpC,IAAI,CAAC;CACb;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EAC3B,EAAE,uBAAuB,2CA4HzB"}
|
|
@@ -18,7 +18,7 @@ const ALL_WIDGET_ATTACHMENTS = [
|
|
|
18
18
|
];
|
|
19
19
|
const SLIDE_WIDGET_ATTACHMENTS = ["PDF", "PPTX"];
|
|
20
20
|
const ACCESSIBILITY_MODE_EXCLUDED_WIDGET_ATTACHMENTS = ["PDF_TABULAR"];
|
|
21
|
-
export function WidgetAttachments({ selectedAttachments, onWidgetAttachmentsChange, xlsxSettings, onXlsxSettingsChange, pdfSettings, onPdfSettingsChange, csvSettings, onCsvSettingsChange, csvRawSettings, onCsvRawSettingsChange, isSlidesExportEnabled, isAccessibilityModeEnabled,
|
|
21
|
+
export function WidgetAttachments({ selectedAttachments, onWidgetAttachmentsChange, xlsxSettings, onXlsxSettingsChange, pdfSettings, onPdfSettingsChange, csvSettings, onCsvSettingsChange, csvRawSettings, onCsvRawSettingsChange, isSlidesExportEnabled, isAccessibilityModeEnabled, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange, }) {
|
|
22
22
|
const intl = useIntl();
|
|
23
23
|
const { available: availableAttachments, visibleSelected: visibleSelectedAttachments, buildNextSelection, } = partitionAttachments({
|
|
24
24
|
all: ALL_WIDGET_ATTACHMENTS,
|
|
@@ -83,7 +83,7 @@ export function WidgetAttachments({ selectedAttachments, onWidgetAttachmentsChan
|
|
|
83
83
|
};
|
|
84
84
|
return (_jsxs(_Fragment, { children: [
|
|
85
85
|
_jsx(AttachmentsWrapper, { children: _jsxs("div", { className: "gd-attachment-list", role: "group", "aria-labelledby": AUTOMATION_ATTACHMENTS_GROUP_LABEL_ID, ref: attachmentListRef, onBlur: makeAttachmentGroupUnfocusable, children: [
|
|
86
|
-
_jsx(AttachmentsList, { attachments: visibleSelectedAttachments, onDelete: handleDelete, xlsxSettings: xlsxSettings, onXlsxSettingsChange: onXlsxSettingsChange, pdfSettings: pdfSettings, onPdfSettingsChange: onPdfSettingsChange, csvSettings: csvSettings, onCsvSettingsChange: onCsvSettingsChange, csvRawSettings: csvRawSettings, onCsvRawSettingsChange: onCsvRawSettingsChange,
|
|
86
|
+
_jsx(AttachmentsList, { attachments: visibleSelectedAttachments, onDelete: handleDelete, xlsxSettings: xlsxSettings, onXlsxSettingsChange: onXlsxSettingsChange, pdfSettings: pdfSettings, onPdfSettingsChange: onPdfSettingsChange, csvSettings: csvSettings, onCsvSettingsChange: onCsvSettingsChange, csvRawSettings: csvRawSettings, onCsvRawSettingsChange: onCsvRawSettingsChange, mode: "widget", exportTemplates: exportTemplates, slidesTemplateIds: slidesTemplateIds, onSlidesTemplateIdChange: onSlidesTemplateIdChange }), _jsx(AttachmentsSelect, { attachments: availableAttachments.map((format) => ({
|
|
87
87
|
type: format,
|
|
88
88
|
selected: selectedAttachments.includes(format),
|
|
89
89
|
})), onChange: handleChange, mode: "widget", onAddButtonRef: (ref) => {
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type PdfPageSize } from "../../utils/pdfPageSize.js";
|
|
2
2
|
export interface IUseEditScheduledEmailProps {
|
|
3
3
|
maxAutomationsRecipients: number;
|
|
4
4
|
externalRecipientOverride?: string;
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Locale-derived default page size for new PDF attachments. Required and non-nullable: it
|
|
7
|
+
* reaches the saved export definition through {@link useScheduledEmailExportSettings}, so a caller
|
|
8
|
+
* that omits it silently saves `A4` where the locale asks for `LETTER`.
|
|
9
|
+
*/
|
|
10
|
+
defaultPdfPageSize: PdfPageSize;
|
|
6
11
|
}
|
|
7
12
|
export declare function useEditScheduledEmail({ maxAutomationsRecipients, externalRecipientOverride, defaultPdfPageSize }: IUseEditScheduledEmailProps): {
|
|
8
13
|
parametersEnabled: boolean;
|
|
@@ -70,10 +75,10 @@ export declare function useEditScheduledEmail({ maxAutomationsRecipients, extern
|
|
|
70
75
|
onMessageChange: (value: string, isValid: boolean) => void;
|
|
71
76
|
onDashboardAttachmentsChange: (formats: import("@gooddata/sdk-model").DashboardAttachmentType[]) => void;
|
|
72
77
|
onWidgetAttachmentsChange: (formats: import("@gooddata/sdk-model").WidgetAttachmentType[]) => void;
|
|
73
|
-
onXlsxSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
|
|
74
|
-
onPdfSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
|
|
75
|
-
onCsvSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
|
|
76
|
-
onCsvRawSettingsChange: (settings: IExportDefinitionVisualizationObjectSettings) => void;
|
|
78
|
+
onXlsxSettingsChange: (settings: import("@gooddata/sdk-model").IExportDefinitionVisualizationObjectSettings) => void;
|
|
79
|
+
onPdfSettingsChange: (settings: import("@gooddata/sdk-model").IExportDefinitionVisualizationObjectSettings) => void;
|
|
80
|
+
onCsvSettingsChange: (settings: import("@gooddata/sdk-model").IExportDefinitionVisualizationObjectSettings) => void;
|
|
81
|
+
onCsvRawSettingsChange: (settings: import("@gooddata/sdk-model").IExportDefinitionVisualizationObjectSettings) => void;
|
|
77
82
|
slidesTemplateIds: {
|
|
78
83
|
PPTX: string | undefined;
|
|
79
84
|
PDF_SLIDES: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditScheduledEmail.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useEditScheduledEmail.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAQ9D,MAAM,WAAW,2BAA2B;IACxC,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;OAIG;IACH,kBAAkB,EAAE,WAAW,CAAC;CACnC;AAED,wBAAgB,qBAAqB,CAAC,EAClC,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EACrB,EAAE,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8M7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScheduledEmailEffectiveFilters.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailEffectiveFilters.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,OAAO,EACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAU3F,MAAM,WAAW,uCAAuC;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,uBAAuB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9C,4BAA4B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACnE,gCAAgC,CAAC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IAC1E,qCAAqC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;IACnF,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAAC,EAC9C,MAAM,EACN,OAAO,EACP,uBAAuB,EACvB,4BAA4B,EAC5B,gCAAgC,EAChC,qCAAqC,EACrC,gBAAgB,EAChB,YAAY,EACf,EAAE,uCAAuC,GAAG;IACzC,sBAAsB,EAAE,OAAO,EAAE,CAAC;IAClC,iCAAiC,EAAE,OAAO,EAAE,CAAC;IAC7C,6BAA6B,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IACtE,yBAAyB,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC3D,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,GAAG,SAAS,CAAC;IAChF,gCAAgC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IACzE,qCAAqC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,GAAG,SAAS,CAAC;IAC9F,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,GAAG,SAAS,CAAC;CAC5F,
|
|
1
|
+
{"version":3,"file":"useScheduledEmailEffectiveFilters.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailEffectiveFilters.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,OAAO,EACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAU3F,MAAM,WAAW,uCAAuC;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,uBAAuB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9C,4BAA4B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACnE,gCAAgC,CAAC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IAC1E,qCAAqC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;IACnF,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACvD,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAAC,EAC9C,MAAM,EACN,OAAO,EACP,uBAAuB,EACvB,4BAA4B,EAC5B,gCAAgC,EAChC,qCAAqC,EACrC,gBAAgB,EAChB,YAAY,EACf,EAAE,uCAAuC,GAAG;IACzC,sBAAsB,EAAE,OAAO,EAAE,CAAC;IAClC,iCAAiC,EAAE,OAAO,EAAE,CAAC;IAC7C,6BAA6B,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IACtE,yBAAyB,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC;IAC3D,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,GAAG,SAAS,CAAC;IAChF,gCAAgC,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAC;IACzE,qCAAqC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,GAAG,SAAS,CAAC;IAC9F,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC,GAAG,SAAS,CAAC;CAC5F,CAiHA"}
|
|
@@ -19,10 +19,17 @@ import { getAppliedDashboardFilters, getAppliedWidgetFilters, getVisibleFiltersB
|
|
|
19
19
|
export function useScheduledEmailEffectiveFilters({ widget, insight, editedAutomationFilters, editedAutomationFiltersByTab, availableFiltersAsVisibleFilters, availableFiltersAsVisibleFiltersByTab, filtersDataByTab, storeFilters, }) {
|
|
20
20
|
const { hiddenFilters: dashboardHiddenFilters, commonDateFilterId, exportParametersByTab: effectiveExportParametersByTab, } = useScheduledEmailDialogContext();
|
|
21
21
|
const isWidget = !!widget && !!insight;
|
|
22
|
-
const effectiveWidgetFilters = getAppliedWidgetFilters(editedAutomationFilters ?? [], dashboardHiddenFilters, widget, insight, commonDateFilterId, false);
|
|
23
|
-
const effectiveWidgetFiltersWithInsight = getAppliedWidgetFilters(editedAutomationFilters ?? [], dashboardHiddenFilters, widget, insight, commonDateFilterId, true);
|
|
22
|
+
const effectiveWidgetFilters = useMemo(() => getAppliedWidgetFilters(editedAutomationFilters ?? [], dashboardHiddenFilters, widget, insight, commonDateFilterId, false), [editedAutomationFilters, dashboardHiddenFilters, widget, insight, commonDateFilterId]);
|
|
23
|
+
const effectiveWidgetFiltersWithInsight = useMemo(() => getAppliedWidgetFilters(editedAutomationFilters ?? [], dashboardHiddenFilters, widget, insight, commonDateFilterId, true), [editedAutomationFilters, dashboardHiddenFilters, widget, insight, commonDateFilterId]);
|
|
24
|
+
// The three visible-filter derivations below are deliberately NOT memoized: their
|
|
25
|
+
// `availableFiltersAsVisibleFilters*` dependency changes identity on every render, so a memo here
|
|
26
|
+
// would be a no-op that only looks like a guarantee. `useFiltersNamings` /
|
|
27
|
+
// `useFiltersByTabNamings` call `transformFiltersToNamings` unmemoized and return a fresh array
|
|
28
|
+
// each render, which invalidates `useAutomationVisibleFilters`' own memo; on the by-tab path
|
|
29
|
+
// `availableFiltersByTab` and `removeIgnoredWidgetFilters` in `useAutomationFiltersSelect` are
|
|
30
|
+
// unmemoized too. Stabilizing that chain upstream is the prerequisite — memoizing here is not.
|
|
24
31
|
const effectiveVisibleWidgetFilters = getVisibleFiltersByFilters(editedAutomationFilters, availableFiltersAsVisibleFilters, true);
|
|
25
|
-
const effectiveDashboardFilters = getAppliedDashboardFilters(editedAutomationFilters ?? [], dashboardHiddenFilters, isWidget ? true : storeFilters);
|
|
32
|
+
const effectiveDashboardFilters = useMemo(() => getAppliedDashboardFilters(editedAutomationFilters ?? [], dashboardHiddenFilters, isWidget ? true : storeFilters), [editedAutomationFilters, dashboardHiddenFilters, isWidget, storeFilters]);
|
|
26
33
|
// Process filters per tab if provided (for dashboard automations with tabs enabled)
|
|
27
34
|
const effectiveDashboardFiltersByTab = useMemo(() => {
|
|
28
35
|
if (!editedAutomationFiltersByTab || !storeFilters) {
|
|
@@ -39,7 +46,9 @@ export function useScheduledEmailEffectiveFilters({ widget, insight, editedAutom
|
|
|
39
46
|
return acc;
|
|
40
47
|
}, {});
|
|
41
48
|
}, [editedAutomationFiltersByTab, filtersDataByTab, storeFilters]);
|
|
49
|
+
// Not memoized — see the note above `effectiveVisibleWidgetFilters`.
|
|
42
50
|
const effectiveVisibleDashboardFilters = getVisibleFiltersByFilters(editedAutomationFilters ?? [], availableFiltersAsVisibleFilters, storeFilters);
|
|
51
|
+
// Not memoized — see the note above `effectiveVisibleWidgetFilters`.
|
|
43
52
|
const effectiveVisibleDashboardFiltersByTab = getVisibleFiltersByFiltersByTab(editedAutomationFiltersByTab, availableFiltersAsVisibleFiltersByTab, storeFilters);
|
|
44
53
|
// Mirrors the filters seed above, for parameters.
|
|
45
54
|
const parametersByTabForNewAutomation = shouldStoreExportParameters(isWidget, storeFilters) &&
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type IExportDefinitionVisualizationObjectSettings } from "@gooddata/sdk-model";
|
|
2
|
-
type PdfPageSize = NonNullable<IExportDefinitionVisualizationObjectSettings["pageSize"]>;
|
|
2
|
+
export type PdfPageSize = NonNullable<IExportDefinitionVisualizationObjectSettings["pageSize"]>;
|
|
3
3
|
/**
|
|
4
4
|
* Returns the default PDF page size based on the format locale.
|
|
5
5
|
*
|
|
@@ -7,5 +7,4 @@ type PdfPageSize = NonNullable<IExportDefinitionVisualizationObjectSettings["pag
|
|
|
7
7
|
* @returns The default PDF page size.
|
|
8
8
|
*/
|
|
9
9
|
export declare function getDefaultPdfPageSize(formatLocale?: string): PdfPageSize;
|
|
10
|
-
export {};
|
|
11
10
|
//# sourceMappingURL=pdfPageSize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdfPageSize.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/utils/pdfPageSize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,4CAA4C,EAAE,MAAM,qBAAqB,CAAC;AAExF,
|
|
1
|
+
{"version":3,"file":"pdfPageSize.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/scheduledEmail/utils/pdfPageSize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,4CAA4C,EAAE,MAAM,qBAAqB,CAAC;AAExF,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,4CAA4C,CAAC,UAAU,CAAC,CAAC,CAAC;AAEhG;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAaxE"}
|
|
@@ -6,7 +6,16 @@
|
|
|
6
6
|
* @returns The default PDF page size.
|
|
7
7
|
*/
|
|
8
8
|
export function getDefaultPdfPageSize(formatLocale) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
if (!formatLocale) {
|
|
10
|
+
return "A4";
|
|
11
|
+
}
|
|
12
|
+
// Intl.Locale parses the region subtag correctly regardless of script/variant subtags
|
|
13
|
+
// (e.g. "sr-Latn-US", "en_US_POSIX"), unlike a positional split on "-".
|
|
14
|
+
try {
|
|
15
|
+
const region = new Intl.Locale(formatLocale.replace(/_/g, "-")).region?.toUpperCase();
|
|
16
|
+
return region === "US" || region === "CA" ? "LETTER" : "A4";
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return "A4";
|
|
20
|
+
}
|
|
12
21
|
}
|
|
@@ -43,7 +43,6 @@ function DefaultFilterBarContainerCore({ children }) {
|
|
|
43
43
|
}, [dispatch]);
|
|
44
44
|
const configurationStyle = useMemo(() => ({
|
|
45
45
|
alignItems: isApplyAllAtOnceEnabledAndSet ? "center" : undefined,
|
|
46
|
-
paddingRight: isApplyAllAtOnceEnabledAndSet ? "10px" : undefined,
|
|
47
46
|
}), [isApplyAllAtOnceEnabledAndSet]);
|
|
48
47
|
const intl = useIntl();
|
|
49
48
|
const [expandedAutomatically, setExpandedAutomatically] = useState(false);
|
|
@@ -216,15 +215,11 @@ function MeasuredDiv({ measureRef, isAutoExpanded, children, }) {
|
|
|
216
215
|
}
|
|
217
216
|
horizontalKeyboardNavigation(e);
|
|
218
217
|
};
|
|
219
|
-
const setRefs = useCallback((node) => {
|
|
220
|
-
measureRef(node);
|
|
221
|
-
containerRef.current = node;
|
|
222
|
-
}, [measureRef]);
|
|
223
218
|
const intl = useIntl();
|
|
224
219
|
const regionLabel = isAutoExpanded
|
|
225
220
|
? `${intl.formatMessage({ id: "filterBar.label" })}. ${intl.formatMessage({ id: "filterBar.filterListAutoExpanded" })}`
|
|
226
221
|
: intl.formatMessage({ id: "filterBar.label" });
|
|
227
|
-
return (_jsx("div", { className: "dash-filters-all", role: "region", "aria-label": regionLabel, tabIndex: -1, ref:
|
|
222
|
+
return (_jsx("div", { className: "dash-filters-all", role: "region", "aria-label": regionLabel, tabIndex: -1, ref: containerRef, onKeyDown: keyboardNavigation, children: _jsx("div", { className: "dash-filters-toolbar", role: "toolbar", "aria-orientation": "horizontal", ref: measureRef, children: children }) }));
|
|
228
223
|
}
|
|
229
224
|
function FiltersRows({ rows }) {
|
|
230
225
|
return (_jsx(_Fragment, { children: rows.length > 1 && (_jsx("div", { className: "dash-filters-rows", children: rows.map((height, index) => (_jsx("div", { className: "dash-filters-row", style: { height } }, index))) })) }));
|