@gooddata/sdk-ui-ext 10.18.0-alpha.9 → 10.18.0-beta.1
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/NOTICE +3 -3
- package/esm/index.d.ts +10 -2
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +9 -2
- package/esm/index.js.map +1 -1
- package/esm/internal/translations/de-DE.json +25 -1
- package/esm/internal/translations/en-AU.json +25 -1
- package/esm/internal/translations/en-GB.json +25 -1
- package/esm/internal/translations/en-US.json +16 -1
- package/esm/internal/translations/es-419.json +25 -1
- package/esm/internal/translations/es-ES.json +25 -1
- package/esm/internal/translations/fi-FI.json +25 -1
- package/esm/internal/translations/fr-CA.json +25 -1
- package/esm/internal/translations/fr-FR.json +25 -1
- package/esm/internal/translations/it-IT.json +25 -1
- package/esm/internal/translations/ja-JP.json +25 -1
- package/esm/internal/translations/nl-NL.json +25 -1
- package/esm/internal/translations/pt-BR.json +25 -1
- package/esm/internal/translations/pt-PT.json +25 -1
- package/esm/internal/translations/zh-HK.json +25 -1
- package/esm/internal/translations/zh-Hans.json +25 -1
- package/esm/internal/translations/zh-Hant.json +25 -1
- package/esm/notificationsPanel/@staging/OrganizationContext/OrganizationContext.d.ts +12 -0
- package/esm/notificationsPanel/@staging/OrganizationContext/OrganizationContext.d.ts.map +1 -1
- package/esm/notificationsPanel/@staging/OrganizationContext/OrganizationContext.js +10 -1
- package/esm/notificationsPanel/@staging/OrganizationContext/OrganizationContext.js.map +1 -1
- package/esm/notificationsPanel/@staging/OrganizationContext/useFetchOrganization.d.ts +6 -4
- package/esm/notificationsPanel/@staging/OrganizationContext/useFetchOrganization.d.ts.map +1 -1
- package/esm/notificationsPanel/@staging/OrganizationContext/useFetchOrganization.js +1 -1
- package/esm/notificationsPanel/@staging/OrganizationContext/useFetchOrganization.js.map +1 -1
- package/esm/notificationsPanel/Notification/AlertNotification.d.ts +2 -2
- package/esm/notificationsPanel/Notification/AlertNotification.d.ts.map +1 -1
- package/esm/notificationsPanel/Notification/AlertNotification.js +40 -12
- package/esm/notificationsPanel/Notification/AlertNotification.js.map +1 -1
- package/esm/notificationsPanel/Notification/DefaultNotification.d.ts +17 -4
- package/esm/notificationsPanel/Notification/DefaultNotification.d.ts.map +1 -1
- package/esm/notificationsPanel/Notification/DefaultNotification.js +6 -4
- package/esm/notificationsPanel/Notification/DefaultNotification.js.map +1 -1
- package/esm/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetail.js +1 -1
- package/esm/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetail.js.map +1 -1
- package/esm/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetailDialog.js +2 -2
- package/esm/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetailDialog.js.map +1 -1
- package/esm/notificationsPanel/NotificationTriggersDetail/NotificationTriggersDetail.d.ts +4 -1
- package/esm/notificationsPanel/NotificationTriggersDetail/NotificationTriggersDetail.d.ts.map +1 -1
- package/esm/notificationsPanel/NotificationTriggersDetail/NotificationTriggersDetail.js +9 -5
- package/esm/notificationsPanel/NotificationTriggersDetail/NotificationTriggersDetail.js.map +1 -1
- package/esm/notificationsPanel/NotificationTriggersDetail/NotificationTriggersDetailDialog.d.ts +4 -1
- package/esm/notificationsPanel/NotificationTriggersDetail/NotificationTriggersDetailDialog.d.ts.map +1 -1
- package/esm/notificationsPanel/NotificationTriggersDetail/NotificationTriggersDetailDialog.js +1 -1
- package/esm/notificationsPanel/NotificationTriggersDetail/NotificationTriggersDetailDialog.js.map +1 -1
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsList.d.ts +66 -4
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsList.d.ts.map +1 -1
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsList.js +16 -15
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsList.js.map +1 -1
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsListEmptyState.d.ts +9 -2
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsListEmptyState.d.ts.map +1 -1
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsListEmptyState.js +4 -2
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsListEmptyState.js.map +1 -1
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsListErrorState.d.ts +9 -2
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsListErrorState.d.ts.map +1 -1
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsListErrorState.js +4 -2
- package/esm/notificationsPanel/NotificationsList/DefaultNotificationsListErrorState.js.map +1 -1
- package/esm/notificationsPanel/NotificationsList/DefaultSkeletonItem.d.ts +19 -0
- package/esm/notificationsPanel/NotificationsList/DefaultSkeletonItem.d.ts.map +1 -0
- package/esm/notificationsPanel/NotificationsList/DefaultSkeletonItem.js +9 -0
- package/esm/notificationsPanel/NotificationsList/DefaultSkeletonItem.js.map +1 -0
- package/esm/notificationsPanel/NotificationsPanel/DefaultNotificationsPanel.d.ts +95 -5
- package/esm/notificationsPanel/NotificationsPanel/DefaultNotificationsPanel.d.ts.map +1 -1
- package/esm/notificationsPanel/NotificationsPanel/DefaultNotificationsPanel.js +7 -5
- package/esm/notificationsPanel/NotificationsPanel/DefaultNotificationsPanel.js.map +1 -1
- package/esm/notificationsPanel/NotificationsPanel/{DefaultOpenNotificationsPanelButton.d.ts → DefaultNotificationsPanelButton.d.ts} +8 -6
- package/esm/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelButton.d.ts.map +1 -0
- package/esm/notificationsPanel/NotificationsPanel/{DefaultOpenNotificationsPanelButton.js → DefaultNotificationsPanelButton.js} +7 -5
- package/esm/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelButton.js.map +1 -0
- package/esm/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelHeader.d.ts +8 -4
- package/esm/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelHeader.d.ts.map +1 -1
- package/esm/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelHeader.js +6 -4
- package/esm/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelHeader.js.map +1 -1
- package/esm/notificationsPanel/NotificationsPanel/NotificationsPanel.d.ts +75 -11
- package/esm/notificationsPanel/NotificationsPanel/NotificationsPanel.d.ts.map +1 -1
- package/esm/notificationsPanel/NotificationsPanel/NotificationsPanel.js +23 -11
- package/esm/notificationsPanel/NotificationsPanel/NotificationsPanel.js.map +1 -1
- package/esm/notificationsPanel/bem.d.ts +5 -0
- package/esm/notificationsPanel/bem.d.ts.map +1 -1
- package/esm/notificationsPanel/bem.js +6 -1
- package/esm/notificationsPanel/bem.js.map +1 -1
- package/esm/notificationsPanel/components/Popup.d.ts +9 -0
- package/esm/notificationsPanel/components/Popup.d.ts.map +1 -0
- package/esm/notificationsPanel/components/Popup.js +15 -0
- package/esm/notificationsPanel/components/Popup.js.map +1 -0
- package/esm/notificationsPanel/data/NotificationsContext.d.ts +16 -1
- package/esm/notificationsPanel/data/NotificationsContext.d.ts.map +1 -1
- package/esm/notificationsPanel/data/NotificationsContext.js +9 -3
- package/esm/notificationsPanel/data/NotificationsContext.js.map +1 -1
- package/esm/notificationsPanel/data/useFetchNotifications.d.ts +11 -8
- package/esm/notificationsPanel/data/useFetchNotifications.d.ts.map +1 -1
- package/esm/notificationsPanel/data/useFetchNotifications.js +18 -7
- package/esm/notificationsPanel/data/useFetchNotifications.js.map +1 -1
- package/esm/notificationsPanel/data/useNotificationFiltersDetail.d.ts +1 -0
- package/esm/notificationsPanel/data/useNotificationFiltersDetail.d.ts.map +1 -1
- package/esm/notificationsPanel/data/useNotificationFiltersDetail.js +34 -17
- package/esm/notificationsPanel/data/useNotificationFiltersDetail.js.map +1 -1
- package/esm/notificationsPanel/data/useNotifications.d.ts +24 -4
- package/esm/notificationsPanel/data/useNotifications.d.ts.map +1 -1
- package/esm/notificationsPanel/data/useNotifications.js +15 -10
- package/esm/notificationsPanel/data/useNotifications.js.map +1 -1
- package/esm/notificationsPanel/types.d.ts +3 -1
- package/esm/notificationsPanel/types.d.ts.map +1 -1
- package/esm/notificationsPanel/types.js +1 -1
- package/esm/notificationsPanel/types.js.map +1 -1
- package/esm/sdk-ui-ext.d.ts +349 -52
- package/package.json +17 -18
- package/src/notificationsPanel/Notification/DefaultNotification.scss +28 -5
- package/src/notificationsPanel/NotificationsList/DefaultNotificationsList.scss +3 -0
- package/src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanel.scss +8 -4
- package/src/notificationsPanel/NotificationsPanel/{DefaultOpenNotificationsPanelButton.scss → DefaultNotificationsPanelButton.scss} +2 -2
- package/src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelHeader.scss +8 -3
- package/src/notificationsPanel/notificationPanel.scss +9 -4
- package/styles/css/main.css +987 -51
- package/styles/css/main.css.map +1 -1
- package/esm/notificationsPanel/NotificationsPanel/DefaultOpenNotificationsPanelButton.d.ts.map +0 -1
- package/esm/notificationsPanel/NotificationsPanel/DefaultOpenNotificationsPanelButton.js.map +0 -1
- package/esm/notificationsPanel/components/Skeleton.d.ts +0 -8
- package/esm/notificationsPanel/components/Skeleton.d.ts.map +0 -1
- package/esm/notificationsPanel/components/Skeleton.js +0 -11
- package/esm/notificationsPanel/components/Skeleton.js.map +0 -1
- package/esm/notificationsPanel/components/VirtualList.d.ts +0 -15
- package/esm/notificationsPanel/components/VirtualList.d.ts.map +0 -1
- package/esm/notificationsPanel/components/VirtualList.js +0 -77
- package/esm/notificationsPanel/components/VirtualList.js.map +0 -1
- package/src/notificationsPanel/components/Skeleton.scss +0 -25
- package/src/notificationsPanel/components/VirtualList.scss +0 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNotificationsList.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsList.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,0CAA0C,EAAE,MAAM,yCAAyC,CAAC;AACrG,OAAO,EAAE,0CAA0C,EAAE,MAAM,yCAAyC,CAAC;AACrG,OAAO,EAAE,uCAAuC,EAAE,MAAM,0BAA0B,CAAC;AAInF;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC7C;;OAEG;IACH,2BAA2B,EAAE,KAAK,CAAC,aAAa,CAAC,0CAA0C,CAAC,CAAC;IAE7F;;OAEG;IACH,2BAA2B,EAAE,KAAK,CAAC,aAAa,CAAC,0CAA0C,CAAC,CAAC;IAE7F;;OAEG;IACH,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAE/D;;OAEG;IACH,wBAAwB,EAAE,KAAK,CAAC,aAAa,CAAC,uCAAuC,CAAC,CAAC;IAEvF;;OAEG;IACH,UAAU,EAAE,uBAAuB,CAAC;IAEpC;;OAEG;IACH,MAAM,EAAE,0BAA0B,CAAC;IAEnC;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAEzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,aAAa,EAAE,CAAC;IAEtC;;OAEG;IACH,sBAAsB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;OAEG;IACH,mBAAmB,EAAE,CAAC,YAAY,EAAE,aAAa,KAAK,IAAI,CAAC;IAE3D;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EACrC,YAAY,EACZ,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,UAAU,EACV,MAAM,EACN,KAAK,EACL,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,aAAiB,GACpB,EAAE,gCAAgC,qBAyClC"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
// (C) 2024 GoodData Corporation
|
|
1
|
+
// (C) 2024-2025 GoodData Corporation
|
|
2
2
|
import React from "react";
|
|
3
|
+
import { useElementSize, UiPagedVirtualList } from "@gooddata/sdk-ui-kit";
|
|
3
4
|
import { bem } from "../bem.js";
|
|
4
|
-
|
|
5
|
-
import { DefaultNotificationsListEmptyState, } from "./DefaultNotificationsListEmptyState.js";
|
|
6
|
-
import { DefaultNotificationsListErrorState, } from "./DefaultNotificationsListErrorState.js";
|
|
7
|
-
const NOTIFICATION_ITEM_HEIGHT = 52;
|
|
8
|
-
const { b, e } = bem("gd-ui-ext-notifications-list");
|
|
5
|
+
const { b } = bem("gd-ui-ext-notifications-list");
|
|
9
6
|
/**
|
|
10
|
-
*
|
|
7
|
+
* Default implementation of the NotificationsList component.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
11
10
|
*/
|
|
12
|
-
export function DefaultNotificationsList({ Notification, activeView, status, error,
|
|
11
|
+
export function DefaultNotificationsList({ Notification, NotificationsListEmptyState, NotificationsListErrorState, NotificationSkeletonItem, activeView, status, error, activeNotifications, markNotificationAsRead, onNotificationClick, hasNextPage, loadNextPage, itemHeight, itemsGap, itemPadding, skeletonItemsCount, maxListHeight = 0, }) {
|
|
13
12
|
const isError = status === "error";
|
|
14
|
-
const isEmpty = status === "success" &&
|
|
13
|
+
const isEmpty = status === "success" && activeNotifications?.length === 0;
|
|
15
14
|
const isLoading = status === "loading" || status === "pending";
|
|
16
|
-
const isSuccess = status === "success" && (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
const isSuccess = status === "success" && (activeNotifications?.length ?? 0) > 0;
|
|
16
|
+
const { height, ref } = useElementSize();
|
|
17
|
+
return (React.createElement("div", { className: b(), ref: (node) => {
|
|
18
|
+
ref.current = node;
|
|
19
|
+
} },
|
|
20
|
+
isError ? React.createElement(NotificationsListErrorState, { error: error }) : null,
|
|
21
|
+
isEmpty ? React.createElement(NotificationsListEmptyState, { activeView: activeView }) : null,
|
|
22
|
+
isLoading || isSuccess ? (React.createElement(UiPagedVirtualList, { items: activeNotifications, itemHeight: itemHeight, itemsGap: itemsGap, itemPadding: itemPadding, skeletonItemsCount: skeletonItemsCount, hasNextPage: hasNextPage, loadNextPage: loadNextPage, isLoading: isLoading, maxHeight: Math.max(maxListHeight, height, (itemHeight + itemsGap) * skeletonItemsCount), SkeletonItem: NotificationSkeletonItem }, (notification) => (React.createElement(Notification, { notification: notification, markNotificationAsRead: markNotificationAsRead, onNotificationClick: onNotificationClick })))) : null));
|
|
22
23
|
}
|
|
23
24
|
//# sourceMappingURL=DefaultNotificationsList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNotificationsList.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsList.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsList.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsList.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAOhC,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC;AA8FlD;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,EACrC,YAAY,EACZ,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,UAAU,EACV,MAAM,EACN,KAAK,EACL,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,aAAa,GAAG,CAAC,GACc;IAC/B,MAAM,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,KAAK,SAAS,IAAI,mBAAmB,EAAE,MAAM,KAAK,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,IAAI,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAEjF,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IAEzC,OAAO,CACH,6BACI,SAAS,EAAE,CAAC,EAAE,EACd,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACV,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,CAAC;QAEA,OAAO,CAAC,CAAC,CAAC,oBAAC,2BAA2B,IAAC,KAAK,EAAE,KAAK,GAAI,CAAC,CAAC,CAAC,IAAI;QAC9D,OAAO,CAAC,CAAC,CAAC,oBAAC,2BAA2B,IAAC,UAAU,EAAE,UAAU,GAAI,CAAC,CAAC,CAAC,IAAI;QACxE,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CACtB,oBAAC,kBAAkB,IACf,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,kBAAkB,CAAC,EACxF,YAAY,EAAE,wBAAwB,IAErC,CAAC,YAAY,EAAE,EAAE,CAAC,CACf,oBAAC,YAAY,IACT,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,EAC9C,mBAAmB,EAAE,mBAAmB,GAC1C,CACL,CACgB,CACxB,CAAC,CAAC,CAAC,IAAI,CACN,CACT,CAAC;AACN,CAAC"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { INotificationsPanelView } from "../types.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Props for the NotificationsListEmptyState component.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
5
7
|
*/
|
|
6
8
|
export interface INotificationsListEmptyStateComponentProps {
|
|
9
|
+
/**
|
|
10
|
+
* Active view of the notifications list.
|
|
11
|
+
*/
|
|
7
12
|
activeView: INotificationsPanelView;
|
|
8
13
|
}
|
|
9
14
|
/**
|
|
10
|
-
*
|
|
15
|
+
* Default implementation of the NotificationsListEmptyState component.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
11
18
|
*/
|
|
12
19
|
export declare function DefaultNotificationsListEmptyState({ activeView, }: INotificationsListEmptyStateComponentProps): React.JSX.Element;
|
|
13
20
|
//# sourceMappingURL=DefaultNotificationsListEmptyState.d.ts.map
|
package/esm/notificationsPanel/NotificationsList/DefaultNotificationsListEmptyState.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNotificationsListEmptyState.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsListEmptyState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAKtD
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsListEmptyState.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsListEmptyState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAKtD;;;;GAIG;AACH,MAAM,WAAW,0CAA0C;IACvD;;OAEG;IACH,UAAU,EAAE,uBAAuB,CAAC;CACvC;AAWD;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,EAC/C,UAAU,GACb,EAAE,0CAA0C,qBAS5C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// (C) 2024 GoodData Corporation
|
|
1
|
+
// (C) 2024-2025 GoodData Corporation
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { bem } from "../bem.js";
|
|
4
4
|
import { defineMessages, useIntl } from "react-intl";
|
|
@@ -12,7 +12,9 @@ const messages = defineMessages({
|
|
|
12
12
|
},
|
|
13
13
|
});
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Default implementation of the NotificationsListEmptyState component.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
16
18
|
*/
|
|
17
19
|
export function DefaultNotificationsListEmptyState({ activeView, }) {
|
|
18
20
|
const intl = useIntl();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNotificationsListEmptyState.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsListEmptyState.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsListEmptyState.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsListEmptyState.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,0CAA0C,CAAC,CAAC;AAc9D,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC5B,aAAa,EAAE;QACX,EAAE,EAAE,+BAA+B;KACtC;IACD,gBAAgB,EAAE;QACd,EAAE,EAAE,kCAAkC;KACzC;CACJ,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,kCAAkC,CAAC,EAC/C,UAAU,GAC+B;IACzC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,OAAO,CACH,6BAAK,SAAS,EAAE,CAAC,EAAE,IACd,UAAU,KAAK,KAAK;QACjB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC5C,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CACjD,CACT,CAAC;AACN,CAAC"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { GoodDataSdkError } from "@gooddata/sdk-ui";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Props for the NotificationsListErrorState component.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
5
7
|
*/
|
|
6
8
|
export interface INotificationsListErrorStateComponentProps {
|
|
9
|
+
/**
|
|
10
|
+
* Error to display.
|
|
11
|
+
*/
|
|
7
12
|
error?: GoodDataSdkError;
|
|
8
13
|
}
|
|
9
14
|
/**
|
|
10
|
-
*
|
|
15
|
+
* Default implementation of the NotificationsListErrorState component.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
11
18
|
*/
|
|
12
19
|
export declare function DefaultNotificationsListErrorState({ error }: INotificationsListErrorStateComponentProps): React.JSX.Element;
|
|
13
20
|
//# sourceMappingURL=DefaultNotificationsListErrorState.d.ts.map
|
package/esm/notificationsPanel/NotificationsList/DefaultNotificationsListErrorState.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNotificationsListErrorState.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsListErrorState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAKpD
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsListErrorState.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsListErrorState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAKpD;;;;GAIG;AACH,MAAM,WAAW,0CAA0C;IACvD;;OAEG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAQD;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,EAAE,KAAK,EAAE,EAAE,0CAA0C,qBAKvG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// (C) 2024 GoodData Corporation
|
|
1
|
+
// (C) 2024-2025 GoodData Corporation
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { bem } from "../bem.js";
|
|
4
4
|
import { defineMessages, useIntl } from "react-intl";
|
|
@@ -9,7 +9,9 @@ const messages = defineMessages({
|
|
|
9
9
|
},
|
|
10
10
|
});
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Default implementation of the NotificationsListErrorState component.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
13
15
|
*/
|
|
14
16
|
export function DefaultNotificationsListErrorState({ error }) {
|
|
15
17
|
const intl = useIntl();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNotificationsListErrorState.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsListErrorState.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsListErrorState.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultNotificationsListErrorState.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,0CAA0C,CAAC,CAAC;AAc9D,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC5B,yBAAyB,EAAE;QACvB,EAAE,EAAE,mCAAmC;KAC1C;CACJ,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,kCAAkC,CAAC,EAAE,KAAK,EAA8C;IACpG,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,OAAO,CACH,6BAAK,SAAS,EAAE,CAAC,EAAE,IAAG,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAO,CACxG,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UiSkeleton } from "@gooddata/sdk-ui-kit";
|
|
2
|
+
/**
|
|
3
|
+
* Props for the NotificationSkeletonItem component.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export interface INotificationSkeletonItemComponentProps {
|
|
8
|
+
/**
|
|
9
|
+
* Height of the skeleton item in pixels.
|
|
10
|
+
*/
|
|
11
|
+
itemHeight: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Default implementation of the NotificationSkeletonItem component.
|
|
15
|
+
*
|
|
16
|
+
* @public
|
|
17
|
+
*/
|
|
18
|
+
export declare const DefaultNotificationSkeletonItem: typeof UiSkeleton;
|
|
19
|
+
//# sourceMappingURL=DefaultSkeletonItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultSkeletonItem.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultSkeletonItem.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,uCAAuC;IACpD;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,mBAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// (C) 2024-2025 GoodData Corporation
|
|
2
|
+
import { UiSkeleton } from "@gooddata/sdk-ui-kit";
|
|
3
|
+
/**
|
|
4
|
+
* Default implementation of the NotificationSkeletonItem component.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export const DefaultNotificationSkeletonItem = UiSkeleton;
|
|
9
|
+
//# sourceMappingURL=DefaultSkeletonItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultSkeletonItem.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsList/DefaultSkeletonItem.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAclD;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,UAAU,CAAC"}
|
|
@@ -1,38 +1,128 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { GoodDataSdkError, UseCancelablePromiseStatus } from "@gooddata/sdk-ui";
|
|
3
|
+
import { INotification } from "@gooddata/sdk-model";
|
|
3
4
|
import { INotificationsPanelHeaderComponentProps } from "./DefaultNotificationsPanelHeader.js";
|
|
4
5
|
import { INotificationsListComponentProps } from "../NotificationsList/DefaultNotificationsList.js";
|
|
5
|
-
import { INotification } from "@gooddata/sdk-model";
|
|
6
|
-
import { INotificationsPanelView } from "../types.js";
|
|
7
6
|
import { INotificationsListEmptyStateComponentProps } from "../NotificationsList/DefaultNotificationsListEmptyState.js";
|
|
8
7
|
import { INotificationsListErrorStateComponentProps } from "../NotificationsList/DefaultNotificationsListErrorState.js";
|
|
9
8
|
import { INotificationComponentProps } from "../Notification/DefaultNotification.js";
|
|
9
|
+
import { INotificationSkeletonItemComponentProps } from "../NotificationsList/DefaultSkeletonItem.js";
|
|
10
|
+
import { INotificationsPanelView } from "../types.js";
|
|
10
11
|
/**
|
|
11
|
-
*
|
|
12
|
+
* NotificationsPanel component props.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
12
15
|
*/
|
|
13
16
|
export interface INotificationsPanelComponentProps {
|
|
17
|
+
/**
|
|
18
|
+
* Custom notifications panel header component.
|
|
19
|
+
*/
|
|
14
20
|
NotificationsPanelHeader: React.ComponentType<INotificationsPanelHeaderComponentProps>;
|
|
21
|
+
/**
|
|
22
|
+
* Custom notifications list component.
|
|
23
|
+
*/
|
|
15
24
|
NotificationsList: React.ComponentType<INotificationsListComponentProps>;
|
|
25
|
+
/**
|
|
26
|
+
* Custom notifications list empty state component.
|
|
27
|
+
*/
|
|
16
28
|
NotificationsListEmptyState: React.ComponentType<INotificationsListEmptyStateComponentProps>;
|
|
29
|
+
/**
|
|
30
|
+
* Custom notifications list error state component.
|
|
31
|
+
*/
|
|
17
32
|
NotificationsListErrorState: React.ComponentType<INotificationsListErrorStateComponentProps>;
|
|
33
|
+
/**
|
|
34
|
+
* Custom notification component.
|
|
35
|
+
*/
|
|
18
36
|
Notification: React.ComponentType<INotificationComponentProps>;
|
|
37
|
+
/**
|
|
38
|
+
* Custom notification skeleton item component.
|
|
39
|
+
*/
|
|
40
|
+
NotificationSkeletonItem: React.ComponentType<INotificationSkeletonItemComponentProps>;
|
|
41
|
+
/**
|
|
42
|
+
* The callback to toggle the notifications panel.
|
|
43
|
+
*/
|
|
19
44
|
toggleNotificationsPanel: () => void;
|
|
45
|
+
/**
|
|
46
|
+
* The callback to open the notifications panel.
|
|
47
|
+
*/
|
|
20
48
|
openNotificationsPanel: () => void;
|
|
49
|
+
/**
|
|
50
|
+
* The callback to close the notifications panel.
|
|
51
|
+
*/
|
|
21
52
|
closeNotificationsPanel: () => void;
|
|
53
|
+
/**
|
|
54
|
+
* The currently active view of the notifications panel.
|
|
55
|
+
*/
|
|
22
56
|
activeView: INotificationsPanelView;
|
|
57
|
+
/**
|
|
58
|
+
* The callback to change the active view of the notifications panel.
|
|
59
|
+
*/
|
|
23
60
|
changeActiveView: (view: INotificationsPanelView) => void;
|
|
61
|
+
/**
|
|
62
|
+
* The callback to mark a notification as read.
|
|
63
|
+
*/
|
|
24
64
|
markNotificationAsRead: (notificationId: string) => Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* The callback to mark all notifications as read.
|
|
67
|
+
*/
|
|
25
68
|
markAllNotificationsAsRead: () => Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* The number of unread notifications.
|
|
71
|
+
*/
|
|
26
72
|
unreadNotificationsCount: number;
|
|
73
|
+
/**
|
|
74
|
+
* Indicates if there are unread notifications.
|
|
75
|
+
*/
|
|
76
|
+
hasUnreadNotifications: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Loaded notifications, relevant for the currently active view.
|
|
79
|
+
*/
|
|
27
80
|
activeNotifications: INotification[];
|
|
81
|
+
/**
|
|
82
|
+
* The callback to handle a notification click.
|
|
83
|
+
*/
|
|
28
84
|
onNotificationClick: (notification: INotification) => void;
|
|
85
|
+
/**
|
|
86
|
+
* The status of the notifications loading.
|
|
87
|
+
*/
|
|
29
88
|
status: UseCancelablePromiseStatus;
|
|
89
|
+
/**
|
|
90
|
+
* The error that occurred while loading notifications.
|
|
91
|
+
*/
|
|
30
92
|
error?: GoodDataSdkError;
|
|
93
|
+
/**
|
|
94
|
+
* The callback to load the next page of notifications.
|
|
95
|
+
*/
|
|
31
96
|
loadNextPage: () => void;
|
|
97
|
+
/**
|
|
98
|
+
* Indicates if there is a next page of notifications.
|
|
99
|
+
*/
|
|
32
100
|
hasNextPage: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* The height of the notification item in pixels.
|
|
103
|
+
*/
|
|
104
|
+
itemHeight: number;
|
|
105
|
+
/**
|
|
106
|
+
* Gap between notification items in pixels.
|
|
107
|
+
*/
|
|
108
|
+
itemsGap: number;
|
|
109
|
+
/**
|
|
110
|
+
* Padding of the notification item (from left/right) in pixels.
|
|
111
|
+
*/
|
|
112
|
+
itemPadding: number;
|
|
113
|
+
/**
|
|
114
|
+
* Number of skeleton items to render when loading notifications.
|
|
115
|
+
*/
|
|
116
|
+
skeletonItemsCount: number;
|
|
117
|
+
/**
|
|
118
|
+
* Maximum height of the notifications list in pixels.
|
|
119
|
+
*/
|
|
120
|
+
maxListHeight?: number;
|
|
33
121
|
}
|
|
34
122
|
/**
|
|
35
|
-
*
|
|
123
|
+
* Default implementation of the NotificationsPanel component.
|
|
124
|
+
*
|
|
125
|
+
* @public
|
|
36
126
|
*/
|
|
37
|
-
export declare function DefaultNotificationsPanel({ NotificationsPanelHeader, NotificationsList, NotificationsListEmptyState, NotificationsListErrorState, Notification, activeView, changeActiveView, markNotificationAsRead, markAllNotificationsAsRead, unreadNotificationsCount, activeNotifications, onNotificationClick, status, error, loadNextPage, hasNextPage, }: INotificationsPanelComponentProps): React.JSX.Element;
|
|
127
|
+
export declare function DefaultNotificationsPanel({ NotificationsPanelHeader, NotificationsList, NotificationsListEmptyState, NotificationsListErrorState, Notification, NotificationSkeletonItem, activeView, changeActiveView, markNotificationAsRead, markAllNotificationsAsRead, unreadNotificationsCount, hasUnreadNotifications, activeNotifications, onNotificationClick, status, error, loadNextPage, hasNextPage, itemHeight, itemsGap, itemPadding, skeletonItemsCount, maxListHeight, }: INotificationsPanelComponentProps): React.JSX.Element;
|
|
38
128
|
//# sourceMappingURL=DefaultNotificationsPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNotificationsPanel.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,uCAAuC,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsPanel.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
// (C) 2024 GoodData Corporation
|
|
1
|
+
// (C) 2024-2025 GoodData Corporation
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { bem } from "../bem.js";
|
|
4
4
|
const { b } = bem("gd-ui-ext-notifications-panel");
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Default implementation of the NotificationsPanel component.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
7
9
|
*/
|
|
8
|
-
export function DefaultNotificationsPanel({ NotificationsPanelHeader, NotificationsList, NotificationsListEmptyState, NotificationsListErrorState, Notification, activeView, changeActiveView, markNotificationAsRead, markAllNotificationsAsRead, unreadNotificationsCount, activeNotifications, onNotificationClick, status, error, loadNextPage, hasNextPage, }) {
|
|
10
|
+
export function DefaultNotificationsPanel({ NotificationsPanelHeader, NotificationsList, NotificationsListEmptyState, NotificationsListErrorState, Notification, NotificationSkeletonItem, activeView, changeActiveView, markNotificationAsRead, markAllNotificationsAsRead, unreadNotificationsCount, hasUnreadNotifications, activeNotifications, onNotificationClick, status, error, loadNextPage, hasNextPage, itemHeight, itemsGap, itemPadding, skeletonItemsCount, maxListHeight, }) {
|
|
9
11
|
return (React.createElement("div", { className: b() },
|
|
10
|
-
React.createElement(NotificationsPanelHeader, { activeView: activeView, changeActiveView: changeActiveView,
|
|
11
|
-
React.createElement(NotificationsList, { NotificationsListEmptyState: NotificationsListEmptyState, NotificationsListErrorState: NotificationsListErrorState, Notification: Notification, activeView: activeView, onNotificationClick: onNotificationClick,
|
|
12
|
+
React.createElement(NotificationsPanelHeader, { activeView: activeView, changeActiveView: changeActiveView, markAllNotificationsAsRead: markAllNotificationsAsRead, hasUnreadNotifications: hasUnreadNotifications, unreadNotificationsCount: unreadNotificationsCount }),
|
|
13
|
+
React.createElement(NotificationsList, { NotificationsListEmptyState: NotificationsListEmptyState, NotificationsListErrorState: NotificationsListErrorState, Notification: Notification, NotificationSkeletonItem: NotificationSkeletonItem, activeView: activeView, onNotificationClick: onNotificationClick, activeNotifications: activeNotifications, markNotificationAsRead: markNotificationAsRead, status: status, error: error, loadNextPage: loadNextPage, hasNextPage: hasNextPage, itemHeight: itemHeight, itemsGap: itemsGap, itemPadding: itemPadding, skeletonItemsCount: skeletonItemsCount, maxListHeight: maxListHeight })));
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=DefaultNotificationsPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNotificationsPanel.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanel.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsPanel.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanel.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGhC,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,+BAA+B,CAAC,CAAC;AA2InD;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACtC,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,YAAY,EACZ,wBAAwB,EAExB,UAAU,EACV,gBAAgB,EAEhB,sBAAsB,EACtB,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EAEnB,MAAM,EACN,KAAK,EACL,YAAY,EACZ,WAAW,EAEX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,aAAa,GACmB;IAChC,OAAO,CACH,6BAAK,SAAS,EAAE,CAAC,EAAE;QACf,oBAAC,wBAAwB,IACrB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,0BAA0B,EAAE,0BAA0B,EACtD,sBAAsB,EAAE,sBAAsB,EAC9C,wBAAwB,EAAE,wBAAwB,GACpD;QACF,oBAAC,iBAAiB,IACd,2BAA2B,EAAE,2BAA2B,EACxD,2BAA2B,EAAE,2BAA2B,EACxD,YAAY,EAAE,YAAY,EAC1B,wBAAwB,EAAE,wBAAwB,EAClD,UAAU,EAAE,UAAU,EACtB,mBAAmB,EAAE,mBAAmB,EACxC,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,EAAE,aAAa,GAC9B,CACA,CACT,CAAC;AACN,CAAC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from "react";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* OpenNotificationsPanelButton component props.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
4
6
|
*/
|
|
5
|
-
export interface
|
|
7
|
+
export interface INotificationsPanelButtonComponentProps {
|
|
6
8
|
/**
|
|
7
9
|
* Ref to the button element - is required for proper alignment of the notification panel.
|
|
8
10
|
*/
|
|
9
|
-
buttonRef: RefObject<
|
|
11
|
+
buttonRef: React.RefObject<HTMLButtonElement>;
|
|
10
12
|
/**
|
|
11
13
|
* Opens the notification panel.
|
|
12
14
|
*/
|
|
@@ -31,5 +33,5 @@ export interface IOpenNotificationsPanelButtonComponentProps {
|
|
|
31
33
|
/**
|
|
32
34
|
* @internal
|
|
33
35
|
*/
|
|
34
|
-
export declare function
|
|
35
|
-
//# sourceMappingURL=
|
|
36
|
+
export declare function DefaultNotificationsPanelButton({ buttonRef, isNotificationPanelOpen, toggleNotificationPanel, hasUnreadNotifications, }: INotificationsPanelButtonComponentProps): React.JSX.Element;
|
|
37
|
+
//# sourceMappingURL=DefaultNotificationsPanelButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsPanelButton.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B;;;;GAIG;AACH,MAAM,WAAW,uCAAuC;IACpD;;OAEG;IACH,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAE9C;;OAEG;IACH,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAElC;;OAEG;IACH,sBAAsB,EAAE,MAAM,IAAI,CAAC;IAEnC;;OAEG;IACH,uBAAuB,EAAE,MAAM,IAAI,CAAC;IAEpC;;OAEG;IACH,uBAAuB,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,EAC5C,SAAS,EACT,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,GACzB,EAAE,uCAAuC,qBAczC"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
// (C) 2024 GoodData Corporation
|
|
1
|
+
// (C) 2024-2025 GoodData Corporation
|
|
2
2
|
import React from "react";
|
|
3
3
|
import cx from "classnames";
|
|
4
4
|
import { UiIcon } from "@gooddata/sdk-ui-kit";
|
|
5
5
|
import { bem } from "../bem.js";
|
|
6
|
-
|
|
6
|
+
import { useIsDarkTheme } from "@gooddata/sdk-ui-theme-provider";
|
|
7
|
+
const { b, e } = bem("gd-ui-ext-notifications-panel-button");
|
|
7
8
|
/**
|
|
8
9
|
* @internal
|
|
9
10
|
*/
|
|
10
|
-
export function
|
|
11
|
+
export function DefaultNotificationsPanelButton({ buttonRef, isNotificationPanelOpen, toggleNotificationPanel, hasUnreadNotifications, }) {
|
|
12
|
+
const isDarkTheme = useIsDarkTheme();
|
|
11
13
|
return (React.createElement("button", { ref: buttonRef, className: cx(`gd-button gd-header-button ${b({ isOpen: isNotificationPanelOpen })}`), onClick: toggleNotificationPanel },
|
|
12
14
|
React.createElement("span", { className: e("icon") },
|
|
13
15
|
hasUnreadNotifications ? React.createElement("span", { className: e("unread-status") }) : null,
|
|
14
|
-
React.createElement(UiIcon, { type: "alert", size: 14, color: "complementary-0" }))));
|
|
16
|
+
React.createElement(UiIcon, { type: "alert", size: 14, color: isDarkTheme ? "complementary-9" : "complementary-0" }))));
|
|
15
17
|
}
|
|
16
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=DefaultNotificationsPanelButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsPanelButton.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelButton.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAuC7D;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAAC,EAC5C,SAAS,EACT,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,GACgB;IACtC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO,CACH,gCACI,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,EAAE,CAAC,8BAA8B,CAAC,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAC,EACrF,OAAO,EAAE,uBAAuB;QAEhC,8BAAM,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,sBAAsB,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,GAAI,CAAC,CAAC,CAAC,IAAI;YACxE,oBAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,GAAI,CAC1F,CACF,CACZ,CAAC;AACN,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { INotificationsPanelView } from "../types.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Props for the NotificationsPanelHeader component.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
5
7
|
*/
|
|
6
8
|
export interface INotificationsPanelHeaderComponentProps {
|
|
7
9
|
/**
|
|
@@ -23,10 +25,12 @@ export interface INotificationsPanelHeaderComponentProps {
|
|
|
23
25
|
/**
|
|
24
26
|
* The callback to mark all notifications as read.
|
|
25
27
|
*/
|
|
26
|
-
|
|
28
|
+
markAllNotificationsAsRead: () => void;
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
|
-
*
|
|
31
|
+
* Default implementation of the notifications panel header.
|
|
32
|
+
*
|
|
33
|
+
* @public
|
|
30
34
|
*/
|
|
31
|
-
export declare function DefaultNotificationsPanelHeader({ activeView, changeActiveView,
|
|
35
|
+
export declare function DefaultNotificationsPanelHeader({ activeView, changeActiveView, markAllNotificationsAsRead, hasUnreadNotifications, unreadNotificationsCount, }: INotificationsPanelHeaderComponentProps): React.JSX.Element;
|
|
32
36
|
//# sourceMappingURL=DefaultNotificationsPanelHeader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNotificationsPanelHeader.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsPanelHeader.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD;;;;GAIG;AACH,MAAM,WAAW,uCAAuC;IACpD;;OAEG;IACH,UAAU,EAAE,uBAAuB,CAAC;IAEpC;;OAEG;IACH,gBAAgB,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAE1D;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,wBAAwB,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,0BAA0B,EAAE,MAAM,IAAI,CAAC;CAC1C;AAID;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,EAC5C,UAAU,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,GAC3B,EAAE,uCAAuC,qBA8BzC"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
// (C) 2024 GoodData Corporation
|
|
1
|
+
// (C) 2024-2025 GoodData Corporation
|
|
2
2
|
import React, { useCallback, useMemo } from "react";
|
|
3
3
|
import { Tabs, UiButton } from "@gooddata/sdk-ui-kit";
|
|
4
4
|
import { bem } from "../bem.js";
|
|
5
5
|
import { defineMessages, useIntl } from "react-intl";
|
|
6
6
|
const { b, e } = bem("gd-ui-ext-notifications-panel-header");
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Default implementation of the notifications panel header.
|
|
9
|
+
*
|
|
10
|
+
* @public
|
|
9
11
|
*/
|
|
10
|
-
export function DefaultNotificationsPanelHeader({ activeView, changeActiveView,
|
|
12
|
+
export function DefaultNotificationsPanelHeader({ activeView, changeActiveView, markAllNotificationsAsRead, hasUnreadNotifications, unreadNotificationsCount, }) {
|
|
11
13
|
const intl = useIntl();
|
|
12
14
|
const tabs = useMemo(() => getTabs(unreadNotificationsCount), [unreadNotificationsCount]);
|
|
13
15
|
const activeTabId = activeView === "unread" ? messages.tabUnread.id : messages.tabAll.id;
|
|
@@ -19,7 +21,7 @@ export function DefaultNotificationsPanelHeader({ activeView, changeActiveView,
|
|
|
19
21
|
React.createElement("div", { className: e("tabs") },
|
|
20
22
|
React.createElement(Tabs, { tabs: tabs, selectedTabId: activeTabId, onTabSelect: onTabSelect })),
|
|
21
23
|
React.createElement("div", { className: e("mark-all-as-read-button") },
|
|
22
|
-
React.createElement(UiButton, { variant: "popout", size: "small", label: intl.formatMessage(messages.markAllAsRead), onClick:
|
|
24
|
+
React.createElement(UiButton, { variant: "popout", size: "small", label: intl.formatMessage(messages.markAllAsRead), onClick: markAllNotificationsAsRead, isDisabled: !hasUnreadNotifications }))));
|
|
23
25
|
}
|
|
24
26
|
function getTabs(unreadNotificationsCount = 0) {
|
|
25
27
|
return [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultNotificationsPanelHeader.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelHeader.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"DefaultNotificationsPanelHeader.js","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelHeader.tsx"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAkCrD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAC,EAC5C,UAAU,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,GACc;IACtC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE1F,MAAM,WAAW,GAAG,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAEzF,MAAM,WAAW,GAAG,WAAW,CAC3B,CAAC,GAAS,EAAE,EAAE;QACV,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QACvE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC,EACD,CAAC,gBAAgB,CAAC,CACrB,CAAC;IAEF,OAAO,CACH,6BAAK,SAAS,EAAE,CAAC,EAAE;QACf,6BAAK,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB,oBAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAI,CACxE;QACN,6BAAK,SAAS,EAAE,CAAC,CAAC,yBAAyB,CAAC;YACxC,oBAAC,QAAQ,IACL,OAAO,EAAC,QAAQ,EAChB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,EACjD,OAAO,EAAE,0BAA0B,EACnC,UAAU,EAAE,CAAC,sBAAsB,GACrC,CACA,CACJ,CACT,CAAC;AACN,CAAC;AAED,SAAS,OAAO,CAAC,2BAAmC,CAAC;IACjD,OAAO;QACH,EAAE,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE;QAC1E,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE;KAC7B,CAAC;AACN,CAAC;AAED,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC5B,SAAS,EAAE;QACP,EAAE,EAAE,gCAAgC;KACvC;IACD,MAAM,EAAE;QACJ,EAAE,EAAE,6BAA6B;KACpC;IACD,aAAa,EAAE;QACX,EAAE,EAAE,mCAAmC;KAC1C;CACJ,CAAC,CAAC"}
|