@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.
Files changed (42) hide show
  1. package/esm/__version.d.ts +1 -1
  2. package/esm/__version.d.ts.map +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/model/commandHandlers/filterContext/filterViewHandler.d.ts.map +1 -1
  5. package/esm/model/commandHandlers/filterContext/filterViewHandler.js +17 -4
  6. package/esm/model/store/filterViews/filterViewsReducers.d.ts +13 -1
  7. package/esm/model/store/filterViews/filterViewsReducers.d.ts.map +1 -1
  8. package/esm/model/store/filterViews/filterViewsReducers.js +46 -0
  9. package/esm/model/store/filterViews/filterViewsState.d.ts +22 -0
  10. package/esm/model/store/filterViews/filterViewsState.d.ts.map +1 -1
  11. package/esm/model/store/filterViews/index.d.ts +3 -0
  12. package/esm/model/store/filterViews/index.d.ts.map +1 -1
  13. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
  14. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +2 -1
  15. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.d.ts +1 -3
  16. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.d.ts.map +1 -1
  17. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentSettings.js +2 -2
  18. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.d.ts +1 -2
  19. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.d.ts.map +1 -1
  20. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/AttachmentsList.js +2 -2
  21. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.d.ts +1 -2
  22. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.d.ts.map +1 -1
  23. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/DashboardAttachments.js +2 -2
  24. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts +1 -2
  25. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.d.ts.map +1 -1
  26. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/components/Attachments/WidgetAttachments.js +2 -2
  27. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +11 -6
  28. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
  29. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailEffectiveFilters.d.ts.map +1 -1
  30. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailEffectiveFilters.js +12 -3
  31. package/esm/presentation/automations/scheduledEmail/utils/pdfPageSize.d.ts +1 -2
  32. package/esm/presentation/automations/scheduledEmail/utils/pdfPageSize.d.ts.map +1 -1
  33. package/esm/presentation/automations/scheduledEmail/utils/pdfPageSize.js +12 -3
  34. package/esm/presentation/filterBar/filterBar/DefaultFilterBarContainer.js +1 -6
  35. package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.d.ts.map +1 -1
  36. package/esm/presentation/filterBar/filterBar/filterViews/FilterViews.js +19 -16
  37. package/package.json +21 -21
  38. package/styles/css/filterBar.css +15 -44
  39. package/styles/css/filterBar.css.map +1 -1
  40. package/styles/css/main.css +15 -44
  41. package/styles/css/main.css.map +1 -1
  42. package/styles/scss/filterBar.scss +17 -62
@@ -1,4 +1,4 @@
1
- export declare const LIB_VERSION = "11.51.0-alpha.5";
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
@@ -1 +1 @@
1
- {"version":3,"file":"__version.d.ts","sourceRoot":"","sources":["../src/__version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,eAAO,MAAM,eAAe,uCAAuC,CAAC;AAEpE,eAAO,MAAM,QAAQ,+BAA+B,CAAC"}
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-alpha.5";
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,EAG/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,CA8DtG;AAMD,wBAAiB,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,CAgB1G;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,CAgBpB;AAED,wBAAiB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,CAcnF"}
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, reloadFilterViews, } from "../../commands/filters.js";
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
- yield put(reloadFilterViews());
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
- yield put(reloadFilterViews());
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
- yield put(reloadFilterViews());
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,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAElF,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAc9E,eAAO,MAAM,mBAAmB;;;;;;;;;CAG/B,CAAC"}
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;;;CAAkC,CAAC"}
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,2CAygB5B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,2CAY5E"}
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, defaultPdfPageSize: defaultPdfPageSize, exportTemplates: exportTemplates, slidesTemplateIds: slidesTemplateIds, onSlidesTemplateIdChange: onSlidesTemplateIdChange })) : (_jsx(DashboardAttachments, { selectedAttachments: selectedAttachments, dashboardFilters: dashboardFilters, isCrossFiltering: isCrossFiltering, onDashboardAttachmentsChange: onDashboardAttachmentsChange, xlsxSettings: xlsxSettings, onXlsxSettingsChange: onXlsxSettingsChange, isSlidesExportEnabled: isSlidesExportEnabled, defaultPdfPageSize: defaultPdfPageSize, 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
+ ] })), 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, defaultPdfPageSize }: IAttachmentSettingsProps): import("react/jsx-runtime").JSX.Element;
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;AAkC7B,KAAK,WAAW,GAAG,WAAW,CAAC,4CAA4C,CAAC,UAAU,CAAC,CAAC,CAAC;AAIzF,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;IACnF,kBAAkB,CAAC,EAAE,WAAW,CAAC;CACpC;AA6BD,wBAAgB,kBAAkB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EACrB,EAAE,wBAAwB,2CA2W1B"}
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, defaultPdfPageSize, }) {
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 ?? defaultPdfPageSize ?? DEFAULT_PDF_PAGE_SIZE;
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, defaultPdfPageSize, mode, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange }: {
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,kBAAkB,EAClB,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,kBAAkB,CAAC,EAAE,4CAA4C,CAAC,UAAU,CAAC,CAAC;IAC9E,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,2CAuFA"}
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, defaultPdfPageSize, mode, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange, }) {
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, defaultPdfPageSize: defaultPdfPageSize })) : 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" &&
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, defaultPdfPageSize, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange }: IDashboardAttachmentsProps): import("react/jsx-runtime").JSX.Element;
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,kBAAkB,CAAC,EAAE,4CAA4C,CAAC,UAAU,CAAC,CAAC;IAC9E,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,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EAC3B,EAAE,0BAA0B,2CA6H5B"}
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, defaultPdfPageSize, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange, }) {
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, defaultPdfPageSize: defaultPdfPageSize, mode: "dashboard", exportTemplates: exportTemplates, slidesTemplateIds: slidesTemplateIds, onSlidesTemplateIdChange: onSlidesTemplateIdChange }), _jsx(AttachmentsSelect, { attachments: availableAttachments.map((format) => ({
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, defaultPdfPageSize, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange }: IWidgetAttachmentsProps): import("react/jsx-runtime").JSX.Element;
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,kBAAkB,CAAC,EAAE,4CAA4C,CAAC,UAAU,CAAC,CAAC;IAC9E,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,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EAC3B,EAAE,uBAAuB,2CA6HzB"}
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, defaultPdfPageSize, exportTemplates, slidesTemplateIds, onSlidesTemplateIdChange, }) {
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, defaultPdfPageSize: defaultPdfPageSize, mode: "widget", exportTemplates: exportTemplates, slidesTemplateIds: slidesTemplateIds, onSlidesTemplateIdChange: onSlidesTemplateIdChange }), _jsx(AttachmentsSelect, { attachments: availableAttachments.map((format) => ({
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 IExportDefinitionVisualizationObjectSettings } from "@gooddata/sdk-model";
1
+ import { type PdfPageSize } from "../../utils/pdfPageSize.js";
2
2
  export interface IUseEditScheduledEmailProps {
3
3
  maxAutomationsRecipients: number;
4
4
  externalRecipientOverride?: string;
5
- defaultPdfPageSize?: IExportDefinitionVisualizationObjectSettings["pageSize"];
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":"AAEA,OAAO,EAAE,KAAK,4CAA4C,EAAE,MAAM,qBAAqB,CAAC;AAYxF,MAAM,WAAW,2BAA2B;IACxC,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,kBAAkB,CAAC,EAAE,4CAA4C,CAAC,UAAU,CAAC,CAAC;CACjF;AAED,wBAAgB,qBAAqB,CAAC,EAClC,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EACrB,EAAE,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8M7B"}
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,CA4FA"}
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,KAAK,WAAW,GAAG,WAAW,CAAC,4CAA4C,CAAC,UAAU,CAAC,CAAC,CAAC;AAEzF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAKxE"}
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
- const normalizedLocale = formatLocale?.replace("_", "-");
10
- const region = normalizedLocale?.split("-")[1]?.toUpperCase();
11
- return region === "US" || region === "CA" ? "LETTER" : "A4";
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: setRefs, onKeyDown: keyboardNavigation, children: children }));
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))) })) }));