@odx/angular 5.3.4 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/components/footer/README.md +3 -0
- package/components/footer/index.d.ts +3 -0
- package/components/footer/lib/footer.component.d.ts +23 -0
- package/components/footer/lib/footer.config.d.ts +30 -0
- package/components/footer/lib/footer.i18n.d.ts +3 -0
- package/components/footer/lib/helpers/create-footer-links.d.ts +12 -0
- package/components/footer/lib/helpers/index.d.ts +1 -0
- package/components/footer/lib/models/footer-link.d.ts +4 -0
- package/components/footer/lib/models/footer-variant.d.ts +5 -0
- package/components/footer/lib/models/index.d.ts +2 -0
- package/components/header/lib/header.component.d.ts +1 -1
- package/components/header-navigation/README.md +3 -0
- package/components/header-navigation/index.d.ts +3 -0
- package/components/header-navigation/lib/directives/header-navigation-link.directive.d.ts +11 -0
- package/components/header-navigation/lib/directives/index.d.ts +1 -0
- package/components/header-navigation/lib/header-navigation.component.d.ts +8 -0
- package/components/header-navigation/lib/header-navigation.module.d.ts +9 -0
- package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +2 -1
- package/components/main-menu/lib/main-menu.component.d.ts +5 -5
- package/components/main-menu/lib/main-menu.config.d.ts +1 -0
- package/components/notification/README.md +3 -0
- package/components/notification/index.d.ts +7 -0
- package/components/notification/lib/components/index.d.ts +2 -0
- package/components/notification/lib/components/notification-center/notification-center.component.d.ts +19 -0
- package/components/notification/lib/components/notification-item/notification-item.component.d.ts +37 -0
- package/components/notification/lib/directives/index.d.ts +1 -0
- package/components/notification/lib/directives/notification-center.directive.d.ts +69 -0
- package/components/notification/lib/features/index.d.ts +5 -0
- package/components/notification/lib/features/with-browser-notifications.d.ts +17 -0
- package/components/notification/lib/features/with-load-notifications.d.ts +18 -0
- package/components/notification/lib/features/with-notification-transformer.d.ts +26 -0
- package/components/notification/lib/features/with-peristent-notifications.d.ts +63 -0
- package/components/notification/lib/features/with-save-notifications.d.ts +11 -0
- package/components/notification/lib/helpers/get-notifications-by-tag.d.ts +2 -0
- package/components/notification/lib/helpers/index.d.ts +3 -0
- package/components/notification/lib/helpers/sort-notifications.d.ts +3 -0
- package/components/notification/lib/helpers/to-notification-collection.d.ts +3 -0
- package/components/notification/lib/models/index.d.ts +8 -0
- package/components/notification/lib/models/notification-action.d.ts +2 -0
- package/components/notification/lib/models/notification-collection.d.ts +6 -0
- package/components/notification/lib/models/notification-feature.d.ts +5 -0
- package/components/notification/lib/models/notification-options.d.ts +7 -0
- package/components/notification/lib/models/notification-query.d.ts +2 -0
- package/components/notification/lib/models/notification-sort-fn.d.ts +2 -0
- package/components/notification/lib/models/notification.d.ts +6 -0
- package/components/notification/lib/models/notification.ref.d.ts +9 -0
- package/components/notification/lib/notification.config.d.ts +11 -0
- package/components/notification/lib/notification.i18n.d.ts +3 -0
- package/components/notification/lib/notification.logger.d.ts +3 -0
- package/components/notification/lib/notification.service.d.ts +110 -0
- package/components/notification/lib/notification.tokens.d.ts +4 -0
- package/components/notification/lib/services/index.d.ts +1 -0
- package/components/notification/lib/services/notification-center.service.d.ts +69 -0
- package/components/notification/testing/README.md +3 -0
- package/components/notification/testing/index.d.ts +1 -0
- package/components/notification/testing/lib/test-helpers.d.ts +5 -0
- package/components/toast/lib/toast.service.d.ts +30 -2
- package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +3 -2
- package/esm2022/components/footer/index.mjs +4 -0
- package/esm2022/components/footer/lib/footer.component.mjs +51 -0
- package/esm2022/components/footer/lib/footer.config.mjs +29 -0
- package/esm2022/components/footer/lib/footer.i18n.mjs +19 -0
- package/esm2022/components/footer/lib/helpers/create-footer-links.mjs +25 -0
- package/esm2022/components/footer/lib/helpers/index.mjs +2 -0
- package/esm2022/components/footer/lib/models/footer-link.mjs +2 -0
- package/esm2022/components/footer/lib/models/footer-variant.mjs +5 -0
- package/esm2022/components/footer/lib/models/index.mjs +3 -0
- package/esm2022/components/footer/odx-angular-components-footer.mjs +5 -0
- package/esm2022/components/header/lib/header.component.mjs +3 -3
- package/esm2022/components/header-navigation/index.mjs +4 -0
- package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +37 -0
- package/esm2022/components/header-navigation/lib/directives/index.mjs +2 -0
- package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +28 -0
- package/esm2022/components/header-navigation/lib/header-navigation.module.mjs +19 -0
- package/esm2022/components/header-navigation/odx-angular-components-header-navigation.mjs +5 -0
- package/esm2022/components/main-menu/lib/helpers/create-main-menu-links.mjs +7 -4
- package/esm2022/components/main-menu/lib/main-menu.component.mjs +9 -11
- package/esm2022/components/main-menu/lib/main-menu.config.mjs +1 -1
- package/esm2022/components/notification/index.mjs +8 -0
- package/esm2022/components/notification/lib/components/index.mjs +3 -0
- package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +65 -0
- package/esm2022/components/notification/lib/components/notification-item/notification-item.component.mjs +65 -0
- package/esm2022/components/notification/lib/directives/index.mjs +2 -0
- package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +142 -0
- package/esm2022/components/notification/lib/features/index.mjs +6 -0
- package/esm2022/components/notification/lib/features/with-browser-notifications.mjs +75 -0
- package/esm2022/components/notification/lib/features/with-load-notifications.mjs +45 -0
- package/esm2022/components/notification/lib/features/with-notification-transformer.mjs +34 -0
- package/esm2022/components/notification/lib/features/with-peristent-notifications.mjs +94 -0
- package/esm2022/components/notification/lib/features/with-save-notifications.mjs +45 -0
- package/esm2022/components/notification/lib/helpers/get-notifications-by-tag.mjs +7 -0
- package/esm2022/components/notification/lib/helpers/index.mjs +4 -0
- package/esm2022/components/notification/lib/helpers/sort-notifications.mjs +10 -0
- package/esm2022/components/notification/lib/helpers/to-notification-collection.mjs +9 -0
- package/esm2022/components/notification/lib/models/index.mjs +9 -0
- package/esm2022/components/notification/lib/models/notification-action.mjs +2 -0
- package/esm2022/components/notification/lib/models/notification-collection.mjs +2 -0
- package/esm2022/components/notification/lib/models/notification-feature.mjs +4 -0
- package/esm2022/components/notification/lib/models/notification-options.mjs +2 -0
- package/esm2022/components/notification/lib/models/notification-query.mjs +2 -0
- package/esm2022/components/notification/lib/models/notification-sort-fn.mjs +2 -0
- package/esm2022/components/notification/lib/models/notification.mjs +2 -0
- package/esm2022/components/notification/lib/models/notification.ref.mjs +2 -0
- package/esm2022/components/notification/lib/notification.config.mjs +11 -0
- package/esm2022/components/notification/lib/notification.i18n.mjs +11 -0
- package/esm2022/components/notification/lib/notification.logger.mjs +3 -0
- package/esm2022/components/notification/lib/notification.service.mjs +168 -0
- package/esm2022/components/notification/lib/notification.tokens.mjs +7 -0
- package/esm2022/components/notification/lib/services/index.mjs +2 -0
- package/esm2022/components/notification/lib/services/notification-center.service.mjs +96 -0
- package/esm2022/components/notification/odx-angular-components-notification.mjs +5 -0
- package/esm2022/components/notification/testing/index.mjs +2 -0
- package/esm2022/components/notification/testing/lib/test-helpers.mjs +33 -0
- package/esm2022/components/notification/testing/odx-angular-components-notification-testing.mjs +5 -0
- package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs +6 -6
- package/esm2022/components/toast/lib/toast.service.mjs +38 -8
- package/esm2022/utils/lib/helpers/array.mjs +24 -1
- package/esm2022/utils/lib/helpers/build-website-url.mjs +24 -1
- package/fesm2022/odx-angular-breakpoints.mjs +2 -1
- package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
- package/fesm2022/odx-angular-components-footer.mjs +131 -0
- package/fesm2022/odx-angular-components-footer.mjs.map +1 -0
- package/fesm2022/odx-angular-components-header-navigation.mjs +84 -0
- package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -0
- package/fesm2022/odx-angular-components-header.mjs +2 -2
- package/fesm2022/odx-angular-components-header.mjs.map +1 -1
- package/fesm2022/odx-angular-components-main-menu.mjs +11 -9
- package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2022/odx-angular-components-notification-testing.mjs +39 -0
- package/fesm2022/odx-angular-components-notification-testing.mjs.map +1 -0
- package/fesm2022/odx-angular-components-notification.mjs +832 -0
- package/fesm2022/odx-angular-components-notification.mjs.map +1 -0
- package/fesm2022/odx-angular-components-toast.mjs +42 -11
- package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
- package/fesm2022/odx-angular-utils.mjs +46 -0
- package/fesm2022/odx-angular-utils.mjs.map +1 -1
- package/package.json +25 -1
- package/utils/lib/helpers/array.d.ts +23 -0
- package/utils/lib/helpers/build-website-url.d.ts +23 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL3NyYy9saWIvbW9kZWxzL25vdGlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY1RleHRDb250ZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbiB7XG4gIGlkPzogc3RyaW5nO1xuICB0aXRsZTogRHluYW1pY1RleHRDb250ZW50O1xuICBkZXNjcmlwdGlvbj86IER5bmFtaWNUZXh0Q29udGVudDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9zcmMvbGliL21vZGVscy9ub3RpZmljYXRpb24ucmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb3RpZmljYXRpb24gfSBmcm9tICcuL25vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25PcHRpb25zIH0gZnJvbSAnLi9ub3RpZmljYXRpb24tb3B0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uUmVmIHtcbiAgaWQ6IE5vbk51bGxhYmxlPE5vdGlmaWNhdGlvblsnaWQnXT47XG4gIGNyZWF0ZWRBdDogbnVtYmVyO1xuICBpdGVtOiBOb3RpZmljYXRpb247XG4gIG9wdGlvbnM6IE5vdGlmaWNhdGlvbk9wdGlvbnM7XG4gIGhhc0JlZW5TZWVuOiBib29sZWFuO1xufVxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { createConfigTokens, orderBy } from '@odx/angular/utils';
|
|
3
|
+
export const { NotificationConfig, NotificationDefaultConfig, injectNotificationConfig, provideNotificationConfig } = createConfigTokens('Notification', '@odx/angular/components/notification', {
|
|
4
|
+
options: { icon: 'core::globe', tags: [], dismissable: true },
|
|
5
|
+
sortFn: orderBy('createdAt', 'DESC'),
|
|
6
|
+
defaultIdPrefix: 'odx-notifications',
|
|
7
|
+
});
|
|
8
|
+
export function provideNotifications(config, ...features) {
|
|
9
|
+
return makeEnvironmentProviders([provideNotificationConfig(config ?? {}), features]);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9zcmMvbGliL25vdGlmaWNhdGlvbi5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3Qix3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFXakUsTUFBTSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSxHQUFHLGtCQUFrQixDQUN0SSxjQUFjLEVBQ2Qsc0NBQXNDLEVBQ3RDO0lBQ0UsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7SUFDN0QsTUFBTSxFQUFFLE9BQU8sQ0FBa0IsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNyRCxlQUFlLEVBQUUsbUJBQW1CO0NBQ2YsQ0FDeEIsQ0FBQztBQUVGLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUFvQyxFQUFFLEdBQUcsUUFBK0I7SUFDM0csT0FBTyx3QkFBd0IsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3ZGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVDb25maWdUb2tlbnMsIG9yZGVyQnkgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uQWN0aW9uLCBOb3RpZmljYXRpb25GZWF0dXJlLCBOb3RpZmljYXRpb25PcHRpb25zLCBOb3RpZmljYXRpb25SZWYsIE5vdGlmaWNhdGlvblNvcnRGbiB9IGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25Db25maWcge1xuICBkZWZhdWx0SWRQcmVmaXg6IHN0cmluZztcbiAgb3B0aW9uczogTm90aWZpY2F0aW9uT3B0aW9ucztcbiAgc29ydEZuOiBOb3RpZmljYXRpb25Tb3J0Rm47XG4gIHRhZ1RvSWNvbk1hcD86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGFjdGlvbk1hcD86IFJlY29yZDxzdHJpbmcsIE5vdGlmaWNhdGlvbkFjdGlvbj47XG59XG5cbmV4cG9ydCBjb25zdCB7IE5vdGlmaWNhdGlvbkNvbmZpZywgTm90aWZpY2F0aW9uRGVmYXVsdENvbmZpZywgaW5qZWN0Tm90aWZpY2F0aW9uQ29uZmlnLCBwcm92aWRlTm90aWZpY2F0aW9uQ29uZmlnIH0gPSBjcmVhdGVDb25maWdUb2tlbnMoXG4gICdOb3RpZmljYXRpb24nLFxuICAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uJyxcbiAge1xuICAgIG9wdGlvbnM6IHsgaWNvbjogJ2NvcmU6Omdsb2JlJywgdGFnczogW10sIGRpc21pc3NhYmxlOiB0cnVlIH0sXG4gICAgc29ydEZuOiBvcmRlckJ5PE5vdGlmaWNhdGlvblJlZj4oJ2NyZWF0ZWRBdCcsICdERVNDJyksXG4gICAgZGVmYXVsdElkUHJlZml4OiAnb2R4LW5vdGlmaWNhdGlvbnMnLFxuICB9IGFzIE5vdGlmaWNhdGlvbkNvbmZpZyxcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTm90aWZpY2F0aW9ucyhjb25maWc/OiBQYXJ0aWFsPE5vdGlmaWNhdGlvbkNvbmZpZz4sIC4uLmZlYXR1cmVzOiBOb3RpZmljYXRpb25GZWF0dXJlW10pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW3Byb3ZpZGVOb3RpZmljYXRpb25Db25maWcoY29uZmlnID8/IHt9KSwgZmVhdHVyZXNdKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
en: {
|
|
3
|
+
title: 'Notifications',
|
|
4
|
+
dismissAll: 'Dismiss all',
|
|
5
|
+
},
|
|
6
|
+
de: {
|
|
7
|
+
title: 'Benachrichtigungen',
|
|
8
|
+
dismissAll: 'Alle entfernen',
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9ub3RpZmljYXRpb24vc3JjL2xpYi9ub3RpZmljYXRpb24uaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxlQUFlO0lBQ2IsRUFBRSxFQUFFO1FBQ0YsS0FBSyxFQUFFLGVBQWU7UUFDdEIsVUFBVSxFQUFFLGFBQWE7S0FDMUI7SUFDRCxFQUFFLEVBQUU7UUFDRixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFVBQVUsRUFBRSxnQkFBZ0I7S0FDN0I7Q0FDbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0aW9uT2JqZWN0IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsL3RyYW5zbGF0ZSc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZW46IHtcbiAgICB0aXRsZTogJ05vdGlmaWNhdGlvbnMnLFxuICAgIGRpc21pc3NBbGw6ICdEaXNtaXNzIGFsbCcsXG4gIH0sXG4gIGRlOiB7XG4gICAgdGl0bGU6ICdCZW5hY2hyaWNodGlndW5nZW4nLFxuICAgIGRpc21pc3NBbGw6ICdBbGxlIGVudGZlcm5lbicsXG4gIH0sXG59IGFzIFRyYW5zbGF0aW9uT2JqZWN0O1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Logger } from '@odx/angular/internal';
|
|
2
|
+
export default new Logger('@odx/angular/components/notification');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9zcmMvbGliL25vdGlmaWNhdGlvbi5sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9DLGVBQWUsSUFBSSxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2dlciB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBMb2dnZXIoJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL25vdGlmaWNhdGlvbicpO1xuIl19
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { Injectable, Injector, inject, runInInjectionContext } from '@angular/core';
|
|
2
|
+
import { deepmerge } from '@odx/angular/internal';
|
|
3
|
+
import { LocalizationService } from '@odx/angular/localization';
|
|
4
|
+
import { getUniqueId, isFunction } from '@odx/angular/utils';
|
|
5
|
+
import { filter, map, shareReplay } from 'rxjs';
|
|
6
|
+
import { sortNotifications, toNotificationCollection } from './helpers';
|
|
7
|
+
import { injectNotificationConfig } from './notification.config';
|
|
8
|
+
import logger from './notification.logger';
|
|
9
|
+
import { ODX_NOTIFICATION_QUEUE } from './notification.tokens';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class NotificationService {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.config = injectNotificationConfig();
|
|
14
|
+
this.localizationService = inject(LocalizationService);
|
|
15
|
+
this.queue = inject(ODX_NOTIFICATION_QUEUE);
|
|
16
|
+
this.injector = inject(Injector);
|
|
17
|
+
this.notifications$ = this.queue.value$.pipe(sortNotifications(this.config.sortFn), toNotificationCollection(), shareReplay({ bufferSize: 1, refCount: true }));
|
|
18
|
+
this.unseenNotifications$ = this.notifications$.pipe(map((collection) => collection.values.filter(({ hasBeenSeen }) => !hasBeenSeen)), toNotificationCollection(), shareReplay({ bufferSize: 1, refCount: true }));
|
|
19
|
+
this.onNotificationAdd$ = this.queue.onAdd$;
|
|
20
|
+
this.onNotificationRemove$ = this.queue.onRemove$;
|
|
21
|
+
this.onNotificationUpdate$ = this.queue.onUpdate$;
|
|
22
|
+
this.onNotificationSeen$ = this.queue.onUpdate$.pipe(filter(({ hasBeenSeen }) => hasBeenSeen));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Fetches notifications filtered by a specified query and optionally sorted by a custom sort function.
|
|
26
|
+
*
|
|
27
|
+
* @param {NotificationQuery} query - A function or object to filter notifications.
|
|
28
|
+
* @param {NotificationSortFn} [sortFn] - An optional sorting function to order the filtered notifications.
|
|
29
|
+
* @returns {Observable<NotificationCollection>} An observable stream of the filtered (and optionally sorted) notification collection.
|
|
30
|
+
* @example
|
|
31
|
+
* // Fetch notifications with a specific tag, sorted by creation date
|
|
32
|
+
* const sortedNotifications$ = notificationService.getNotificationsBy$(
|
|
33
|
+
* notification => notification.tags.includes('important'),
|
|
34
|
+
* (a, b) => b.createdAt - a.createdAt
|
|
35
|
+
* );
|
|
36
|
+
*/
|
|
37
|
+
getNotificationsBy$(query, sortFn) {
|
|
38
|
+
return this.queue.value$.pipe(map((notifications) => notifications.filter(query)), sortNotifications(sortFn), toNotificationCollection(), shareReplay({ bufferSize: 1, refCount: true }));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Loads a list of notifications into the service.
|
|
42
|
+
*
|
|
43
|
+
* @param {NotificationRef[]} refs - An array of notification references to be loaded.
|
|
44
|
+
* @example
|
|
45
|
+
* // Load multiple notifications at once
|
|
46
|
+
* notificationService.load([
|
|
47
|
+
* { id: '1', item: { title: 'Notification 1' }, options: {dismissable: true, icon: 'plus', tags: ['important']}, hasBeenSeen: false, createdAt: Date.now() },
|
|
48
|
+
* { id: '2', item: { title: 'Notification 2' }, options: {dismissable: true, icon: 'plus', tags: ['important']}, hasBeenSeen: false, createdAt: Date.now() }
|
|
49
|
+
* ]);
|
|
50
|
+
*/
|
|
51
|
+
load(refs) {
|
|
52
|
+
this.queue.addMany(refs);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Creates a new notification and adds it to the notification queue.
|
|
56
|
+
*
|
|
57
|
+
* @param {Notification} item - The notification to create.
|
|
58
|
+
* @param {Partial<NotificationOptions>} [options] - Optional settings for the notification.
|
|
59
|
+
* @example
|
|
60
|
+
* // Create a new notification with custom options
|
|
61
|
+
* notificationService.create(
|
|
62
|
+
* { title: 'New Notification' },
|
|
63
|
+
* { dismissable: true, icon: 'plus', tags: ['important'] }
|
|
64
|
+
* );
|
|
65
|
+
*/
|
|
66
|
+
create(item, options) {
|
|
67
|
+
this.queue.add({
|
|
68
|
+
id: item.id ?? getUniqueId(this.config.defaultIdPrefix),
|
|
69
|
+
createdAt: Date.now(),
|
|
70
|
+
item,
|
|
71
|
+
options: this.resolveOptions(options),
|
|
72
|
+
hasBeenSeen: false,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Marks a specific notification as seen.
|
|
77
|
+
*
|
|
78
|
+
* @param {NotificationRef} notificationRef - The reference to the notification to mark as seen.
|
|
79
|
+
* @example
|
|
80
|
+
* // Mark a notification as seen by its reference
|
|
81
|
+
* notificationService.markAsSeen(notificationRef);
|
|
82
|
+
*/
|
|
83
|
+
markAsSeen(notificationRef) {
|
|
84
|
+
if (notificationRef.hasBeenSeen)
|
|
85
|
+
return;
|
|
86
|
+
this.queue.add({ ...notificationRef, hasBeenSeen: true });
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Marks all notifications that match a specific query as seen.
|
|
90
|
+
*
|
|
91
|
+
* @param {NotificationQuery} query - The query to match notifications to mark as seen.
|
|
92
|
+
* @example
|
|
93
|
+
* // Mark all notifications with a specific tag as seen
|
|
94
|
+
* notificationService.markAsSeenBy(notification => notification.tags.includes('important'));
|
|
95
|
+
*/
|
|
96
|
+
markAsSeenBy(query) {
|
|
97
|
+
for (const notificationRef of this.queue.toArray().filter(query)) {
|
|
98
|
+
this.markAsSeen(notificationRef);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Dismisses a specific notification.
|
|
103
|
+
*
|
|
104
|
+
* @param {NotificationRef} notificationRef - The reference to the notification to dismiss.
|
|
105
|
+
* @example
|
|
106
|
+
* // Dismiss a notification by its reference
|
|
107
|
+
* notificationService.dismiss(notificationRef);
|
|
108
|
+
*/
|
|
109
|
+
dismiss(notificationRef) {
|
|
110
|
+
if (!notificationRef.options.dismissable)
|
|
111
|
+
return;
|
|
112
|
+
this.queue.remove(notificationRef);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Dismisses all notifications that match a specific query.
|
|
116
|
+
*
|
|
117
|
+
* @param {NotificationQuery} query - The query to match notifications to dismiss.
|
|
118
|
+
* @example
|
|
119
|
+
* // Dismiss all notifications with a specific tag
|
|
120
|
+
* notificationService.dismissBy(notification => notification.tags.includes('expired'));
|
|
121
|
+
*/
|
|
122
|
+
dismissBy(query) {
|
|
123
|
+
for (const item of this.queue.toArray().filter(query)) {
|
|
124
|
+
this.dismiss(item);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Dismisses all notifications.
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* // Dismiss all notifications
|
|
132
|
+
* notificationService.dismissAll();
|
|
133
|
+
*/
|
|
134
|
+
dismissAll() {
|
|
135
|
+
this.queue.clear();
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Executes the action associated with a specific notification.
|
|
139
|
+
*
|
|
140
|
+
* @param {NotificationRef} notificationRef - The reference to the notification whose action to execute.
|
|
141
|
+
* @example
|
|
142
|
+
* // Execute action for a notification
|
|
143
|
+
* notificationService.executeAction(notificationRef);
|
|
144
|
+
*/
|
|
145
|
+
executeAction(notificationRef) {
|
|
146
|
+
if (!notificationRef.options.action)
|
|
147
|
+
return;
|
|
148
|
+
const actionFn = this.config.actionMap?.[notificationRef.options.action];
|
|
149
|
+
if (!isFunction(actionFn)) {
|
|
150
|
+
logger.warn(`Cannot find action ${notificationRef.options.action} for notification reference: ${notificationRef}`);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
runInInjectionContext(this.injector, () => actionFn(notificationRef));
|
|
154
|
+
}
|
|
155
|
+
resolveOptions(options) {
|
|
156
|
+
return deepmerge(this.config.options, options ?? {}, {
|
|
157
|
+
icon: options?.icon ?? this.config.tagToIconMap?.[options?.tags?.[0] ?? ''] ?? this.config.options.icon,
|
|
158
|
+
language: options?.language ?? this.localizationService.getActiveLanguage(),
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
162
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationService, providedIn: 'root' }); }
|
|
163
|
+
}
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationService, decorators: [{
|
|
165
|
+
type: Injectable,
|
|
166
|
+
args: [{ providedIn: 'root' }]
|
|
167
|
+
}] });
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9ub3RpZmljYXRpb24vc3JjL2xpYi9ub3RpZmljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0QsT0FBTyxFQUFjLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLE1BQU0sTUFBTSx1QkFBdUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHL0QsTUFBTSxPQUFPLG1CQUFtQjtJQURoQztRQUVtQixXQUFNLEdBQUcsd0JBQXdCLEVBQUUsQ0FBQztRQUNwQyx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNsRCxVQUFLLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3QixtQkFBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDckQsaUJBQWlCLENB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WSxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDdkcsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixFQUFFO1NBQzVFLENBQXdCLENBQUM7SUFDNUIsQ0FBQzsrR0F4S1UsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FETixNQUFNOzs0RkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBpbmplY3QsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVlcG1lcmdlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAb2R4L2FuZ3VsYXIvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7IGdldFVuaXF1ZUlkLCBpc0Z1bmN0aW9uIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc29ydE5vdGlmaWNhdGlvbnMsIHRvTm90aWZpY2F0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvbkNvbGxlY3Rpb24sIE5vdGlmaWNhdGlvbk9wdGlvbnMsIE5vdGlmaWNhdGlvblF1ZXJ5LCBOb3RpZmljYXRpb25SZWYsIE5vdGlmaWNhdGlvblNvcnRGbiB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IGluamVjdE5vdGlmaWNhdGlvbkNvbmZpZyB9IGZyb20gJy4vbm90aWZpY2F0aW9uLmNvbmZpZyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbm90aWZpY2F0aW9uLmxvZ2dlcic7XG5pbXBvcnQgeyBPRFhfTk9USUZJQ0FUSU9OX1FVRVVFIH0gZnJvbSAnLi9ub3RpZmljYXRpb24udG9rZW5zJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3ROb3RpZmljYXRpb25Db25maWcoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGl6YXRpb25TZXJ2aWNlID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHF1ZXVlID0gaW5qZWN0KE9EWF9OT1RJRklDQVRJT05fUVVFVUUpO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbm90aWZpY2F0aW9ucyQgPSB0aGlzLnF1ZXVlLnZhbHVlJC5waXBlKFxuICAgIHNvcnROb3RpZmljYXRpb25zKHRoaXMuY29uZmlnLnNvcnRGbiksXG4gICAgdG9Ob3RpZmljYXRpb25Db2xsZWN0aW9uKCksXG4gICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgKTtcbiAgcHVibGljIHJlYWRvbmx5IHVuc2Vlbk5vdGlmaWNhdGlvbnMkID0gdGhpcy5ub3RpZmljYXRpb25zJC5waXBlKFxuICAgIG1hcCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi52YWx1ZXMuZmlsdGVyKCh7IGhhc0JlZW5TZWVuIH0pID0+ICFoYXNCZWVuU2VlbikpLFxuICAgIHRvTm90aWZpY2F0aW9uQ29sbGVjdGlvbigpLFxuICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBvbk5vdGlmaWNhdGlvbkFkZCQgPSB0aGlzLnF1ZXVlLm9uQWRkJDtcbiAgcHVibGljIHJlYWRvbmx5IG9uTm90aWZpY2F0aW9uUmVtb3ZlJCA9IHRoaXMucXVldWUub25SZW1vdmUkO1xuICBwdWJsaWMgcmVhZG9ubHkgb25Ob3RpZmljYXRpb25VcGRhdGUkID0gdGhpcy5xdWV1ZS5vblVwZGF0ZSQ7XG4gIHB1YmxpYyByZWFkb25seSBvbk5vdGlmaWNhdGlvblNlZW4kID0gdGhpcy5xdWV1ZS5vblVwZGF0ZSQucGlwZShmaWx0ZXIoKHsgaGFzQmVlblNlZW4gfSkgPT4gaGFzQmVlblNlZW4pKTtcblxuICAvKipcbiAgICogRmV0Y2hlcyBub3RpZmljYXRpb25zIGZpbHRlcmVkIGJ5IGEgc3BlY2lmaWVkIHF1ZXJ5IGFuZCBvcHRpb25hbGx5IHNvcnRlZCBieSBhIGN1c3RvbSBzb3J0IGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge05vdGlmaWNhdGlvblF1ZXJ5fSBxdWVyeSAtIEEgZnVuY3Rpb24gb3Igb2JqZWN0IHRvIGZpbHRlciBub3RpZmljYXRpb25zLlxuICAgKiBAcGFyYW0ge05vdGlmaWNhdGlvblNvcnRGbn0gW3NvcnRGbl0gLSBBbiBvcHRpb25hbCBzb3J0aW5nIGZ1bmN0aW9uIHRvIG9yZGVyIHRoZSBmaWx0ZXJlZCBub3RpZmljYXRpb25zLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Db2xsZWN0aW9uPn0gQW4gb2JzZXJ2YWJsZSBzdHJlYW0gb2YgdGhlIGZpbHRlcmVkIChhbmQgb3B0aW9uYWxseSBzb3J0ZWQpIG5vdGlmaWNhdGlvbiBjb2xsZWN0aW9uLlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBGZXRjaCBub3RpZmljYXRpb25zIHdpdGggYSBzcGVjaWZpYyB0YWcsIHNvcnRlZCBieSBjcmVhdGlvbiBkYXRlXG4gICAqIGNvbnN0IHNvcnRlZE5vdGlmaWNhdGlvbnMkID0gbm90aWZpY2F0aW9uU2VydmljZS5nZXROb3RpZmljYXRpb25zQnkkKFxuICAgKiAgIG5vdGlmaWNhdGlvbiA9PiBub3RpZmljYXRpb24udGFncy5pbmNsdWRlcygnaW1wb3J0YW50JyksXG4gICAqICAgKGEsIGIpID0+IGIuY3JlYXRlZEF0IC0gYS5jcmVhdGVkQXRcbiAgICogKTtcbiAgICovXG4gIHB1YmxpYyBnZXROb3RpZmljYXRpb25zQnkkKHF1ZXJ5OiBOb3RpZmljYXRpb25RdWVyeSwgc29ydEZuPzogTm90aWZpY2F0aW9uU29ydEZuKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Db2xsZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUudmFsdWUkLnBpcGUoXG4gICAgICBtYXAoKG5vdGlmaWNhdGlvbnMpID0+IG5vdGlmaWNhdGlvbnMuZmlsdGVyKHF1ZXJ5KSksXG4gICAgICBzb3J0Tm90aWZpY2F0aW9ucyhzb3J0Rm4pLFxuICAgICAgdG9Ob3RpZmljYXRpb25Db2xsZWN0aW9uKCksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgYSBsaXN0IG9mIG5vdGlmaWNhdGlvbnMgaW50byB0aGUgc2VydmljZS5cbiAgICpcbiAgICogQHBhcmFtIHtOb3RpZmljYXRpb25SZWZbXX0gcmVmcyAtIEFuIGFycmF5IG9mIG5vdGlmaWNhdGlvbiByZWZlcmVuY2VzIHRvIGJlIGxvYWRlZC5cbiAgICogQGV4YW1wbGVcbiAgICogLy8gTG9hZCBtdWx0aXBsZSBub3RpZmljYXRpb25zIGF0IG9uY2VcbiAgICogbm90aWZpY2F0aW9uU2VydmljZS5sb2FkKFtcbiAgICogICB7IGlkOiAnMScsIGl0ZW06IHsgdGl0bGU6ICdOb3RpZmljYXRpb24gMScgfSwgb3B0aW9uczoge2Rpc21pc3NhYmxlOiB0cnVlLCBpY29uOiAncGx1cycsIHRhZ3M6IFsnaW1wb3J0YW50J119LCBoYXNCZWVuU2VlbjogZmFsc2UsIGNyZWF0ZWRBdDogRGF0ZS5ub3coKSB9LFxuICAgKiAgIHsgaWQ6ICcyJywgaXRlbTogeyB0aXRsZTogJ05vdGlmaWNhdGlvbiAyJyB9LCBvcHRpb25zOiB7ZGlzbWlzc2FibGU6IHRydWUsIGljb246ICdwbHVzJywgdGFnczogWydpbXBvcnRhbnQnXX0sIGhhc0JlZW5TZWVuOiBmYWxzZSwgY3JlYXRlZEF0OiBEYXRlLm5vdygpIH1cbiAgICogXSk7XG4gICAqL1xuICBwdWJsaWMgbG9hZChyZWZzOiBOb3RpZmljYXRpb25SZWZbXSk6IHZvaWQge1xuICAgIHRoaXMucXVldWUuYWRkTWFueShyZWZzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG5vdGlmaWNhdGlvbiBhbmQgYWRkcyBpdCB0byB0aGUgbm90aWZpY2F0aW9uIHF1ZXVlLlxuICAgKlxuICAgKiBAcGFyYW0ge05vdGlmaWNhdGlvbn0gaXRlbSAtIFRoZSBub3RpZmljYXRpb24gdG8gY3JlYXRlLlxuICAgKiBAcGFyYW0ge1BhcnRpYWw8Tm90aWZpY2F0aW9uT3B0aW9ucz59IFtvcHRpb25zXSAtIE9wdGlvbmFsIHNldHRpbmdzIGZvciB0aGUgbm90aWZpY2F0aW9uLlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBDcmVhdGUgYSBuZXcgbm90aWZpY2F0aW9uIHdpdGggY3VzdG9tIG9wdGlvbnNcbiAgICogbm90aWZpY2F0aW9uU2VydmljZS5jcmVhdGUoXG4gICAqICAgeyB0aXRsZTogJ05ldyBOb3RpZmljYXRpb24nIH0sXG4gICAqICAgeyBkaXNtaXNzYWJsZTogdHJ1ZSwgaWNvbjogJ3BsdXMnLCB0YWdzOiBbJ2ltcG9ydGFudCddIH1cbiAgICogKTtcbiAgICovXG4gIHB1YmxpYyBjcmVhdGUoaXRlbTogTm90aWZpY2F0aW9uLCBvcHRpb25zPzogUGFydGlhbDxOb3RpZmljYXRpb25PcHRpb25zPik6IHZvaWQge1xuICAgIHRoaXMucXVldWUuYWRkKHtcbiAgICAgIGlkOiBpdGVtLmlkID8/IGdldFVuaXF1ZUlkKHRoaXMuY29uZmlnLmRlZmF1bHRJZFByZWZpeCksXG4gICAgICBjcmVhdGVkQXQ6IERhdGUubm93KCksXG4gICAgICBpdGVtLFxuICAgICAgb3B0aW9uczogdGhpcy5yZXNvbHZlT3B0aW9ucyhvcHRpb25zKSxcbiAgICAgIGhhc0JlZW5TZWVuOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJrcyBhIHNwZWNpZmljIG5vdGlmaWNhdGlvbiBhcyBzZWVuLlxuICAgKlxuICAgKiBAcGFyYW0ge05vdGlmaWNhdGlvblJlZn0gbm90aWZpY2F0aW9uUmVmIC0gVGhlIHJlZmVyZW5jZSB0byB0aGUgbm90aWZpY2F0aW9uIHRvIG1hcmsgYXMgc2Vlbi5cbiAgICogQGV4YW1wbGVcbiAgICogLy8gTWFyayBhIG5vdGlmaWNhdGlvbiBhcyBzZWVuIGJ5IGl0cyByZWZlcmVuY2VcbiAgICogbm90aWZpY2F0aW9uU2VydmljZS5tYXJrQXNTZWVuKG5vdGlmaWNhdGlvblJlZik7XG4gICAqL1xuICBwdWJsaWMgbWFya0FzU2Vlbihub3RpZmljYXRpb25SZWY6IE5vdGlmaWNhdGlvblJlZik6IHZvaWQge1xuICAgIGlmIChub3RpZmljYXRpb25SZWYuaGFzQmVlblNlZW4pIHJldHVybjtcbiAgICB0aGlzLnF1ZXVlLmFkZCh7IC4uLm5vdGlmaWNhdGlvblJlZiwgaGFzQmVlblNlZW46IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWFya3MgYWxsIG5vdGlmaWNhdGlvbnMgdGhhdCBtYXRjaCBhIHNwZWNpZmljIHF1ZXJ5IGFzIHNlZW4uXG4gICAqXG4gICAqIEBwYXJhbSB7Tm90aWZpY2F0aW9uUXVlcnl9IHF1ZXJ5IC0gVGhlIHF1ZXJ5IHRvIG1hdGNoIG5vdGlmaWNhdGlvbnMgdG8gbWFyayBhcyBzZWVuLlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBNYXJrIGFsbCBub3RpZmljYXRpb25zIHdpdGggYSBzcGVjaWZpYyB0YWcgYXMgc2VlblxuICAgKiBub3RpZmljYXRpb25TZXJ2aWNlLm1hcmtBc1NlZW5CeShub3RpZmljYXRpb24gPT4gbm90aWZpY2F0aW9uLnRhZ3MuaW5jbHVkZXMoJ2ltcG9ydGFudCcpKTtcbiAgICovXG4gIHB1YmxpYyBtYXJrQXNTZWVuQnkocXVlcnk6IE5vdGlmaWNhdGlvblF1ZXJ5KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBub3RpZmljYXRpb25SZWYgb2YgdGhpcy5xdWV1ZS50b0FycmF5KCkuZmlsdGVyKHF1ZXJ5KSkge1xuICAgICAgdGhpcy5tYXJrQXNTZWVuKG5vdGlmaWNhdGlvblJlZik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERpc21pc3NlcyBhIHNwZWNpZmljIG5vdGlmaWNhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtOb3RpZmljYXRpb25SZWZ9IG5vdGlmaWNhdGlvblJlZiAtIFRoZSByZWZlcmVuY2UgdG8gdGhlIG5vdGlmaWNhdGlvbiB0byBkaXNtaXNzLlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBEaXNtaXNzIGEgbm90aWZpY2F0aW9uIGJ5IGl0cyByZWZlcmVuY2VcbiAgICogbm90aWZpY2F0aW9uU2VydmljZS5kaXNtaXNzKG5vdGlmaWNhdGlvblJlZik7XG4gICAqL1xuICBwdWJsaWMgZGlzbWlzcyhub3RpZmljYXRpb25SZWY6IE5vdGlmaWNhdGlvblJlZik6IHZvaWQge1xuICAgIGlmICghbm90aWZpY2F0aW9uUmVmLm9wdGlvbnMuZGlzbWlzc2FibGUpIHJldHVybjtcbiAgICB0aGlzLnF1ZXVlLnJlbW92ZShub3RpZmljYXRpb25SZWYpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc21pc3NlcyBhbGwgbm90aWZpY2F0aW9ucyB0aGF0IG1hdGNoIGEgc3BlY2lmaWMgcXVlcnkuXG4gICAqXG4gICAqIEBwYXJhbSB7Tm90aWZpY2F0aW9uUXVlcnl9IHF1ZXJ5IC0gVGhlIHF1ZXJ5IHRvIG1hdGNoIG5vdGlmaWNhdGlvbnMgdG8gZGlzbWlzcy5cbiAgICogQGV4YW1wbGVcbiAgICogLy8gRGlzbWlzcyBhbGwgbm90aWZpY2F0aW9ucyB3aXRoIGEgc3BlY2lmaWMgdGFnXG4gICAqIG5vdGlmaWNhdGlvblNlcnZpY2UuZGlzbWlzc0J5KG5vdGlmaWNhdGlvbiA9PiBub3RpZmljYXRpb24udGFncy5pbmNsdWRlcygnZXhwaXJlZCcpKTtcbiAgICovXG4gIHB1YmxpYyBkaXNtaXNzQnkocXVlcnk6IE5vdGlmaWNhdGlvblF1ZXJ5KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMucXVldWUudG9BcnJheSgpLmZpbHRlcihxdWVyeSkpIHtcbiAgICAgIHRoaXMuZGlzbWlzcyhpdGVtKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGlzbWlzc2VzIGFsbCBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBEaXNtaXNzIGFsbCBub3RpZmljYXRpb25zXG4gICAqIG5vdGlmaWNhdGlvblNlcnZpY2UuZGlzbWlzc0FsbCgpO1xuICAgKi9cbiAgcHVibGljIGRpc21pc3NBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5xdWV1ZS5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgbm90aWZpY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge05vdGlmaWNhdGlvblJlZn0gbm90aWZpY2F0aW9uUmVmIC0gVGhlIHJlZmVyZW5jZSB0byB0aGUgbm90aWZpY2F0aW9uIHdob3NlIGFjdGlvbiB0byBleGVjdXRlLlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBFeGVjdXRlIGFjdGlvbiBmb3IgYSBub3RpZmljYXRpb25cbiAgICogbm90aWZpY2F0aW9uU2VydmljZS5leGVjdXRlQWN0aW9uKG5vdGlmaWNhdGlvblJlZik7XG4gICAqL1xuICBwdWJsaWMgZXhlY3V0ZUFjdGlvbihub3RpZmljYXRpb25SZWY6IE5vdGlmaWNhdGlvblJlZik6IHZvaWQge1xuICAgIGlmICghbm90aWZpY2F0aW9uUmVmLm9wdGlvbnMuYWN0aW9uKSByZXR1cm47XG4gICAgY29uc3QgYWN0aW9uRm4gPSB0aGlzLmNvbmZpZy5hY3Rpb25NYXA/Lltub3RpZmljYXRpb25SZWYub3B0aW9ucy5hY3Rpb25dO1xuICAgIGlmICghaXNGdW5jdGlvbihhY3Rpb25GbikpIHtcbiAgICAgIGxvZ2dlci53YXJuKGBDYW5ub3QgZmluZCBhY3Rpb24gJHtub3RpZmljYXRpb25SZWYub3B0aW9ucy5hY3Rpb259IGZvciBub3RpZmljYXRpb24gcmVmZXJlbmNlOiAke25vdGlmaWNhdGlvblJlZn1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IGFjdGlvbkZuKG5vdGlmaWNhdGlvblJlZikpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlT3B0aW9ucyhvcHRpb25zPzogUGFydGlhbDxOb3RpZmljYXRpb25PcHRpb25zPik6IE5vdGlmaWNhdGlvbk9wdGlvbnMge1xuICAgIHJldHVybiBkZWVwbWVyZ2UodGhpcy5jb25maWcub3B0aW9ucywgb3B0aW9ucyA/PyB7fSwge1xuICAgICAgaWNvbjogb3B0aW9ucz8uaWNvbiA/PyB0aGlzLmNvbmZpZy50YWdUb0ljb25NYXA/LltvcHRpb25zPy50YWdzPy5bMF0gPz8gJyddID8/IHRoaXMuY29uZmlnLm9wdGlvbnMuaWNvbixcbiAgICAgIGxhbmd1YWdlOiBvcHRpb25zPy5sYW5ndWFnZSA/PyB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuZ2V0QWN0aXZlTGFuZ3VhZ2UoKSxcbiAgICB9KSBhcyBOb3RpZmljYXRpb25PcHRpb25zO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { Queue } from '@odx/angular/utils';
|
|
3
|
+
export const ODX_NOTIFICATION_QUEUE = new InjectionToken('@odx/angular/component/notifications::Queue', {
|
|
4
|
+
providedIn: 'root',
|
|
5
|
+
factory: () => new Queue(),
|
|
6
|
+
});
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9zcmMvbGliL25vdGlmaWNhdGlvbi50b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHM0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQXlCLDZDQUE2QyxFQUFFO0lBQzlILFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRTtDQUMzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUXVldWUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uUmVmIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgT0RYX05PVElGSUNBVElPTl9RVUVVRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxRdWV1ZTxOb3RpZmljYXRpb25SZWY+PignQG9keC9hbmd1bGFyL2NvbXBvbmVudC9ub3RpZmljYXRpb25zOjpRdWV1ZScsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBuZXcgUXVldWUoKSxcbn0pO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './notification-center.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9ub3RpZmljYXRpb24vc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb24tY2VudGVyLnNlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Injectable, computed, inject, signal } from '@angular/core';
|
|
2
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { combineLatest, filter, isObservable, map, of, shareReplay, switchMap } from 'rxjs';
|
|
4
|
+
import { getNotificationsByTags, toNotificationCollection } from '../helpers';
|
|
5
|
+
import { NotificationService } from '../notification.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* A service for managing the notification center. This service provides functionalities
|
|
9
|
+
* to filter, sort, and manage actions on notifications.
|
|
10
|
+
*/
|
|
11
|
+
export class NotificationCenterService {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.currentTag = signal(null);
|
|
14
|
+
this.currentSortFn = signal(undefined);
|
|
15
|
+
this.notificationService = inject(NotificationService);
|
|
16
|
+
this.notificationQuery = computed(() => getNotificationsByTags(this.currentTag()));
|
|
17
|
+
this.title = signal(null);
|
|
18
|
+
this.title$ = toObservable(this.title).pipe(switchMap((title) => (isObservable(title) ? title : of(title))), shareReplay({ bufferSize: 1, refCount: true }));
|
|
19
|
+
this.notifications$ = combineLatest([toObservable(this.notificationQuery), toObservable(this.currentSortFn)]).pipe(switchMap(([query, sortFn]) => this.notificationService.getNotificationsBy$(query, sortFn)));
|
|
20
|
+
this.unseenNotifications$ = this.notifications$.pipe(map((collection) => collection.values.filter(({ hasBeenSeen }) => !hasBeenSeen)), toNotificationCollection());
|
|
21
|
+
this.onNotificationAdd$ = this.queryEvent(this.notificationService.onNotificationAdd$);
|
|
22
|
+
this.onNotificationUpdate$ = this.queryEvent(this.notificationService.onNotificationUpdate$);
|
|
23
|
+
this.onNotificationRemove$ = this.queryEvent(this.notificationService.onNotificationRemove$);
|
|
24
|
+
this.onNotificationSeen$ = this.queryEvent(this.notificationService.onNotificationSeen$);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Sets the title for the notification center. The title can be static text or an observable for dynamic content.
|
|
28
|
+
*
|
|
29
|
+
* @param {DynamicTextContent | null} [value] - The title content for the notification center.
|
|
30
|
+
*/
|
|
31
|
+
setTitle(value) {
|
|
32
|
+
this.title.set(value ?? null);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Sets the current tag to filter notifications. Only notifications with this tag will be included.
|
|
36
|
+
*
|
|
37
|
+
* @param {string | null} [value] - The tag to filter notifications by.
|
|
38
|
+
*/
|
|
39
|
+
setTag(value) {
|
|
40
|
+
this.currentTag.set(value ?? null);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Sets the sort function used to order the notifications.
|
|
44
|
+
*
|
|
45
|
+
* @param {NotificationSortFn} [value] - The sort function to apply to the notifications.
|
|
46
|
+
*/
|
|
47
|
+
setSortFn(value) {
|
|
48
|
+
this.currentSortFn.set(value);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Marks a given notification as seen. This does not remove the notification but updates its seen status.
|
|
52
|
+
*
|
|
53
|
+
* @param {NotificationRef} notificationRef - The reference to the notification to be marked as seen.
|
|
54
|
+
*/
|
|
55
|
+
markAsSeen(notificationRef) {
|
|
56
|
+
this.notificationService.markAsSeen(notificationRef);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Marks all current filtered notifications as seen.
|
|
60
|
+
*/
|
|
61
|
+
markAllAsSeen() {
|
|
62
|
+
this.notificationService.markAsSeenBy(this.notificationQuery());
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Dismisses a specific notification.
|
|
66
|
+
*
|
|
67
|
+
* @param {NotificationRef} notificationRef - The reference to the notification to dismiss.
|
|
68
|
+
*/
|
|
69
|
+
dismiss(notificationRef) {
|
|
70
|
+
this.notificationService.dismiss(notificationRef);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Dismisses all notifications that match the current filter criteria.
|
|
74
|
+
*/
|
|
75
|
+
dismissAll() {
|
|
76
|
+
this.notificationService.dismissBy(this.notificationQuery());
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Executes the action associated with a specific notification and marks it as seen.
|
|
80
|
+
*
|
|
81
|
+
* @param {NotificationRef} notificationRef - The reference to the notification whose action to execute.
|
|
82
|
+
*/
|
|
83
|
+
executeAction(notificationRef) {
|
|
84
|
+
this.markAsSeen(notificationRef);
|
|
85
|
+
this.notificationService.executeAction(notificationRef);
|
|
86
|
+
}
|
|
87
|
+
queryEvent(source$) {
|
|
88
|
+
return combineLatest([source$, toObservable(this.notificationQuery)]).pipe(filter(([notificationRef, query]) => query(notificationRef)), map(([notificationRef]) => notificationRef));
|
|
89
|
+
}
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationCenterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
91
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationCenterService }); }
|
|
92
|
+
}
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationCenterService, decorators: [{
|
|
94
|
+
type: Injectable
|
|
95
|
+
}] });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWNlbnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uLWNlbnRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTFELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUU5RDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBRW1CLGVBQVUsR0FBRyxNQUFNLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ3pDLGtCQUFhLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUN0RCx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNsRCxzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5RSxVQUFLLEdBQUcsTUFBTSxDQUE0QixJQUFJLENBQUMsQ0FBQztRQUVqRCxXQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3BELFNBQVMs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QUFDO0lBRU8sVUFBVSxDQUFDLE9BQW9DO1FBQ3JELE9BQU8sYUFBYSxDQUFDLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN4RSxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQzVELEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUM1QyxDQUFDO0lBQ0osQ0FBQzsrR0FqR1UseUJBQXlCO21IQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IER5bmFtaWNUZXh0Q29udGVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgaXNPYnNlcnZhYmxlLCBtYXAsIG9mLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXROb3RpZmljYXRpb25zQnlUYWdzLCB0b05vdGlmaWNhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblJlZiwgTm90aWZpY2F0aW9uU29ydEZuIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5cbi8qKlxuICogQSBzZXJ2aWNlIGZvciBtYW5hZ2luZyB0aGUgbm90aWZpY2F0aW9uIGNlbnRlci4gVGhpcyBzZXJ2aWNlIHByb3ZpZGVzIGZ1bmN0aW9uYWxpdGllc1xuICogdG8gZmlsdGVyLCBzb3J0LCBhbmQgbWFuYWdlIGFjdGlvbnMgb24gbm90aWZpY2F0aW9ucy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkNlbnRlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRUYWcgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VycmVudFNvcnRGbiA9IHNpZ25hbDxOb3RpZmljYXRpb25Tb3J0Rm4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uU2VydmljZSA9IGluamVjdChOb3RpZmljYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBub3RpZmljYXRpb25RdWVyeSA9IGNvbXB1dGVkKCgpID0+IGdldE5vdGlmaWNhdGlvbnNCeVRhZ3ModGhpcy5jdXJyZW50VGFnKCkpKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZSA9IHNpZ25hbDxEeW5hbWljVGV4dENvbnRlbnQgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGl0bGUkID0gdG9PYnNlcnZhYmxlKHRoaXMudGl0bGUpLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh0aXRsZSkgPT4gKGlzT2JzZXJ2YWJsZSh0aXRsZSkgPyB0aXRsZSA6IG9mKHRpdGxlKSkpLFxuICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBub3RpZmljYXRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW3RvT2JzZXJ2YWJsZSh0aGlzLm5vdGlmaWNhdGlvblF1ZXJ5KSwgdG9PYnNlcnZhYmxlKHRoaXMuY3VycmVudFNvcnRGbildKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW3F1ZXJ5LCBzb3J0Rm5dKSA9PiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9uc0J5JChxdWVyeSwgc29ydEZuKSksXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSB1bnNlZW5Ob3RpZmljYXRpb25zJCA9IHRoaXMubm90aWZpY2F0aW9ucyQucGlwZShcbiAgICBtYXAoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24udmFsdWVzLmZpbHRlcigoeyBoYXNCZWVuU2VlbiB9KSA9PiAhaGFzQmVlblNlZW4pKSxcbiAgICB0b05vdGlmaWNhdGlvbkNvbGxlY3Rpb24oKSxcbiAgKTtcbiAgcHVibGljIG9uTm90aWZpY2F0aW9uQWRkJCA9IHRoaXMucXVlcnlFdmVudCh0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uub25Ob3RpZmljYXRpb25BZGQkKTtcbiAgcHVibGljIG9uTm90aWZpY2F0aW9uVXBkYXRlJCA9IHRoaXMucXVlcnlFdmVudCh0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uub25Ob3RpZmljYXRpb25VcGRhdGUkKTtcbiAgcHVibGljIG9uTm90aWZpY2F0aW9uUmVtb3ZlJCA9IHRoaXMucXVlcnlFdmVudCh0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uub25Ob3RpZmljYXRpb25SZW1vdmUkKTtcbiAgcHVibGljIG9uTm90aWZpY2F0aW9uU2VlbiQgPSB0aGlzLnF1ZXJ5RXZlbnQodGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLm9uTm90aWZpY2F0aW9uU2VlbiQpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0aXRsZSBmb3IgdGhlIG5vdGlmaWNhdGlvbiBjZW50ZXIuIFRoZSB0aXRsZSBjYW4gYmUgc3RhdGljIHRleHQgb3IgYW4gb2JzZXJ2YWJsZSBmb3IgZHluYW1pYyBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0R5bmFtaWNUZXh0Q29udGVudCB8IG51bGx9IFt2YWx1ZV0gLSBUaGUgdGl0bGUgY29udGVudCBmb3IgdGhlIG5vdGlmaWNhdGlvbiBjZW50ZXIuXG4gICAqL1xuICBwdWJsaWMgc2V0VGl0bGUodmFsdWU/OiBEeW5hbWljVGV4dENvbnRlbnQgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy50aXRsZS5zZXQodmFsdWUgPz8gbnVsbCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY3VycmVudCB0YWcgdG8gZmlsdGVyIG5vdGlmaWNhdGlvbnMuIE9ubHkgbm90aWZpY2F0aW9ucyB3aXRoIHRoaXMgdGFnIHdpbGwgYmUgaW5jbHVkZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gW3ZhbHVlXSAtIFRoZSB0YWcgdG8gZmlsdGVyIG5vdGlmaWNhdGlvbnMgYnkuXG4gICAqL1xuICBwdWJsaWMgc2V0VGFnKHZhbHVlPzogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFRhZy5zZXQodmFsdWUgPz8gbnVsbCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc29ydCBmdW5jdGlvbiB1c2VkIHRvIG9yZGVyIHRoZSBub3RpZmljYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0ge05vdGlmaWNhdGlvblNvcnRGbn0gW3ZhbHVlXSAtIFRoZSBzb3J0IGZ1bmN0aW9uIHRvIGFwcGx5IHRvIHRoZSBub3RpZmljYXRpb25zLlxuICAgKi9cbiAgcHVibGljIHNldFNvcnRGbih2YWx1ZT86IE5vdGlmaWNhdGlvblNvcnRGbik6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFNvcnRGbi5zZXQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIGEgZ2l2ZW4gbm90aWZpY2F0aW9uIGFzIHNlZW4uIFRoaXMgZG9lcyBub3QgcmVtb3ZlIHRoZSBub3RpZmljYXRpb24gYnV0IHVwZGF0ZXMgaXRzIHNlZW4gc3RhdHVzLlxuICAgKlxuICAgKiBAcGFyYW0ge05vdGlmaWNhdGlvblJlZn0gbm90aWZpY2F0aW9uUmVmIC0gVGhlIHJlZmVyZW5jZSB0byB0aGUgbm90aWZpY2F0aW9uIHRvIGJlIG1hcmtlZCBhcyBzZWVuLlxuICAgKi9cbiAgcHVibGljIG1hcmtBc1NlZW4obm90aWZpY2F0aW9uUmVmOiBOb3RpZmljYXRpb25SZWYpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UubWFya0FzU2Vlbihub3RpZmljYXRpb25SZWYpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIGFsbCBjdXJyZW50IGZpbHRlcmVkIG5vdGlmaWNhdGlvbnMgYXMgc2Vlbi5cbiAgICovXG4gIHB1YmxpYyBtYXJrQWxsQXNTZWVuKCk6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5tYXJrQXNTZWVuQnkodGhpcy5ub3RpZmljYXRpb25RdWVyeSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNtaXNzZXMgYSBzcGVjaWZpYyBub3RpZmljYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7Tm90aWZpY2F0aW9uUmVmfSBub3RpZmljYXRpb25SZWYgLSBUaGUgcmVmZXJlbmNlIHRvIHRoZSBub3RpZmljYXRpb24gdG8gZGlzbWlzcy5cbiAgICovXG4gIHB1YmxpYyBkaXNtaXNzKG5vdGlmaWNhdGlvblJlZjogTm90aWZpY2F0aW9uUmVmKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmRpc21pc3Mobm90aWZpY2F0aW9uUmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNtaXNzZXMgYWxsIG5vdGlmaWNhdGlvbnMgdGhhdCBtYXRjaCB0aGUgY3VycmVudCBmaWx0ZXIgY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgZGlzbWlzc0FsbCgpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZGlzbWlzc0J5KHRoaXMubm90aWZpY2F0aW9uUXVlcnkoKSk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgdGhlIGFjdGlvbiBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBub3RpZmljYXRpb24gYW5kIG1hcmtzIGl0IGFzIHNlZW4uXG4gICAqXG4gICAqIEBwYXJhbSB7Tm90aWZpY2F0aW9uUmVmfSBub3RpZmljYXRpb25SZWYgLSBUaGUgcmVmZXJlbmNlIHRvIHRoZSBub3RpZmljYXRpb24gd2hvc2UgYWN0aW9uIHRvIGV4ZWN1dGUuXG4gICAqL1xuICBwdWJsaWMgZXhlY3V0ZUFjdGlvbihub3RpZmljYXRpb25SZWY6IE5vdGlmaWNhdGlvblJlZik6IHZvaWQge1xuICAgIHRoaXMubWFya0FzU2Vlbihub3RpZmljYXRpb25SZWYpO1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5leGVjdXRlQWN0aW9uKG5vdGlmaWNhdGlvblJlZik7XG4gIH1cblxuICBwcml2YXRlIHF1ZXJ5RXZlbnQoc291cmNlJDogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25SZWY+KTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25SZWY+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbc291cmNlJCwgdG9PYnNlcnZhYmxlKHRoaXMubm90aWZpY2F0aW9uUXVlcnkpXSkucGlwZShcbiAgICAgIGZpbHRlcigoW25vdGlmaWNhdGlvblJlZiwgcXVlcnldKSA9PiBxdWVyeShub3RpZmljYXRpb25SZWYpKSxcbiAgICAgIG1hcCgoW25vdGlmaWNhdGlvblJlZl0pID0+IG5vdGlmaWNhdGlvblJlZiksXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY29tcG9uZW50cy1ub3RpZmljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9ub3RpZmljYXRpb24vc3JjL29keC1hbmd1bGFyLWNvbXBvbmVudHMtbm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './lib/test-helpers';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9ub3RpZmljYXRpb24vdGVzdGluZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3Rlc3QtaGVscGVycyc7XG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export function mockNotification(props) {
|
|
2
|
+
return {
|
|
3
|
+
title: 'TEST_NOTIFICATION_TITLE',
|
|
4
|
+
description: 'TEST_NOTIFICATION_DESCRIPTION',
|
|
5
|
+
...props,
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export function mockNotificationOptions(props) {
|
|
9
|
+
return {
|
|
10
|
+
dismissable: false,
|
|
11
|
+
icon: 'TEST_NOTIFICATION_ICON',
|
|
12
|
+
tags: ['TEST_NOTIFICATION_TAG'],
|
|
13
|
+
...props,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function mockNotificationRef(props) {
|
|
17
|
+
return {
|
|
18
|
+
id: 'TEST_NOTIFICATION',
|
|
19
|
+
createdAt: Date.now(),
|
|
20
|
+
hasBeenSeen: false,
|
|
21
|
+
item: mockNotification(props?.item),
|
|
22
|
+
options: mockNotificationOptions(props?.options),
|
|
23
|
+
...props,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function mockNotificationCollection(refs) {
|
|
27
|
+
return {
|
|
28
|
+
values: refs,
|
|
29
|
+
count: refs.length,
|
|
30
|
+
isEmpty: refs.length === 0,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL3Rlc3Rpbmcvc3JjL2xpYi90ZXN0LWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQTZCO0lBQzVELE9BQU87UUFDTCxLQUFLLEVBQUUseUJBQXlCO1FBQ2hDLFdBQVcsRUFBRSwrQkFBK0I7UUFDNUMsR0FBRyxLQUFLO0tBQ1QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsS0FBb0M7SUFDMUUsT0FBTztRQUNMLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsSUFBSSxFQUFFLENBQUMsdUJBQXVCLENBQUM7UUFDL0IsR0FBRyxLQUFLO0tBQ1QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsS0FBZ0M7SUFDbEUsT0FBTztRQUNMLEVBQUUsRUFBRSxtQkFBbUI7UUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDckIsV0FBVyxFQUFFLEtBQUs7UUFDbEIsSUFBSSxFQUFFLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7UUFDbkMsT0FBTyxFQUFFLHVCQUF1QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7UUFDaEQsR0FBRyxLQUFLO0tBQ1QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsSUFBdUI7SUFDaEUsT0FBTztRQUNMLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNO1FBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7S0FDM0IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvbkNvbGxlY3Rpb24sIE5vdGlmaWNhdGlvbk9wdGlvbnMsIE5vdGlmaWNhdGlvblJlZiB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL25vdGlmaWNhdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrTm90aWZpY2F0aW9uKHByb3BzPzogUGFydGlhbDxOb3RpZmljYXRpb24+KTogTm90aWZpY2F0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICB0aXRsZTogJ1RFU1RfTk9USUZJQ0FUSU9OX1RJVExFJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RFU1RfTk9USUZJQ0FUSU9OX0RFU0NSSVBUSU9OJyxcbiAgICAuLi5wcm9wcyxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tOb3RpZmljYXRpb25PcHRpb25zKHByb3BzPzogUGFydGlhbDxOb3RpZmljYXRpb25PcHRpb25zPik6IE5vdGlmaWNhdGlvbk9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIGRpc21pc3NhYmxlOiBmYWxzZSxcbiAgICBpY29uOiAnVEVTVF9OT1RJRklDQVRJT05fSUNPTicsXG4gICAgdGFnczogWydURVNUX05PVElGSUNBVElPTl9UQUcnXSxcbiAgICAuLi5wcm9wcyxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tOb3RpZmljYXRpb25SZWYocHJvcHM/OiBQYXJ0aWFsPE5vdGlmaWNhdGlvblJlZj4pOiBOb3RpZmljYXRpb25SZWYge1xuICByZXR1cm4ge1xuICAgIGlkOiAnVEVTVF9OT1RJRklDQVRJT04nLFxuICAgIGNyZWF0ZWRBdDogRGF0ZS5ub3coKSxcbiAgICBoYXNCZWVuU2VlbjogZmFsc2UsXG4gICAgaXRlbTogbW9ja05vdGlmaWNhdGlvbihwcm9wcz8uaXRlbSksXG4gICAgb3B0aW9uczogbW9ja05vdGlmaWNhdGlvbk9wdGlvbnMocHJvcHM/Lm9wdGlvbnMpLFxuICAgIC4uLnByb3BzLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja05vdGlmaWNhdGlvbkNvbGxlY3Rpb24ocmVmczogTm90aWZpY2F0aW9uUmVmW10pOiBOb3RpZmljYXRpb25Db2xsZWN0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICB2YWx1ZXM6IHJlZnMsXG4gICAgY291bnQ6IHJlZnMubGVuZ3RoLFxuICAgIGlzRW1wdHk6IHJlZnMubGVuZ3RoID09PSAwLFxuICB9O1xufVxuIl19
|
package/esm2022/components/notification/testing/odx-angular-components-notification-testing.mjs
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY29tcG9uZW50cy1ub3RpZmljYXRpb24tdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL25vdGlmaWNhdGlvbi90ZXN0aW5nL3NyYy9vZHgtYW5ndWxhci1jb21wb25lbnRzLW5vdGlmaWNhdGlvbi10ZXN0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs
CHANGED
|
@@ -2,7 +2,7 @@ var ToastContainerComponent_1;
|
|
|
2
2
|
import { __decorate } from "tslib";
|
|
3
3
|
import { group, transition, trigger, useAnimation } from '@angular/animations';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
-
import { ChangeDetectionStrategy, Component,
|
|
5
|
+
import { ChangeDetectionStrategy, Component, Input, Output, Renderer2, ViewEncapsulation, inject, numberAttribute, } from '@angular/core';
|
|
6
6
|
import { WindowRef } from '@odx/angular';
|
|
7
7
|
import { collapse, expand, fadeIn, slideInRight } from '@odx/angular/animations';
|
|
8
8
|
import { ChipComponent } from '@odx/angular/components/chip';
|
|
@@ -22,10 +22,10 @@ export let ToastContainerComponent = class ToastContainerComponent {
|
|
|
22
22
|
this.toastService = inject(ToastService);
|
|
23
23
|
this.trackById = trackById;
|
|
24
24
|
this.element = injectElement();
|
|
25
|
-
this.items$ = this.toastService.
|
|
26
|
-
this.hiddenToasts$ = this.toastService.
|
|
25
|
+
this.items$ = this.toastService.toasts$.pipe(map((refs) => refs.slice(0, this.maxItems)));
|
|
26
|
+
this.hiddenToasts$ = this.toastService.toasts$.pipe(map((refs) => Math.max(0, refs.length - this.maxItems)));
|
|
27
27
|
this.maxItems = 3;
|
|
28
|
-
this.dismiss = this.toastService.
|
|
28
|
+
this.dismiss = this.toastService.onToastRemove$;
|
|
29
29
|
}
|
|
30
30
|
static { ToastContainerComponent_1 = this; }
|
|
31
31
|
static { this.INITIALIZED = false; }
|
|
@@ -43,7 +43,7 @@ export let ToastContainerComponent = class ToastContainerComponent {
|
|
|
43
43
|
ToastContainerComponent_1.INITIALIZED = false;
|
|
44
44
|
}
|
|
45
45
|
onDismiss(itemRef) {
|
|
46
|
-
this.toastService.
|
|
46
|
+
this.toastService.dismiss(itemRef);
|
|
47
47
|
}
|
|
48
48
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
49
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.12", type: ToastContainerComponent, isStandalone: true, selector: "odx-toast-container", inputs: { maxItems: ["maxItems", "maxItems", numberAttribute] }, outputs: { dismiss: "dismiss" }, ngImport: i0, template: "<odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n *ngFor=\"let toastRef of items$ | async; trackBy: trackById\"\n></odx-toast>\n<odx-chip class=\"odx-toast-container__counter\" *ngIf=\"hiddenToasts$ | async as more\">{{ more }} more Notifications</odx-chip>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: ChipComponent, selector: "odx-chip", inputs: ["removable", "size", "variant"], outputs: ["remove"] }, { kind: "component", type: ToastItemComponent, selector: "odx-toast", inputs: ["id", "title", "description", "variant", "actions", "options"], outputs: ["dismiss"] }], animations: [
|
|
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
78
78
|
}], dismiss: [{
|
|
79
79
|
type: Output
|
|
80
80
|
}] } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FB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QUFDLGlCQUFpQixDQUFDO0dBc0JuQix1QkFBdUIsQ0FxQ25DOzRGQXJDWSx1QkFBdUI7a0JBckJuQyxTQUFTOytCQUNFLHFCQUFxQixjQUVuQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixDQUFDLGNBQzlDO3dCQUNWLE9BQU8sQ0FBQyxPQUFPLEVBQUU7NEJBQ2YsVUFBVSxDQUNSLFFBQVEsRUFDUixLQUFLLENBQUM7Z0NBQ0osWUFBWSxDQUFDLE1BQU0sQ0FBQztnQ0FDcEIsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLEVBQUUsQ0FBQztnQ0FDcEUsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxFQUFFLENBQUM7NkJBQ3pFLENBQUMsQ0FDSDs0QkFDRCxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3RELENBQUM7cUJBQ0g7OEJBZ0JNLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSXJCLE9BQU87c0JBRHRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBncm91cCwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG4gIG51bWJlckF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgY29sbGFwc2UsIGV4cGFuZCwgZmFkZUluLCBzbGlkZUluUmlnaHQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDaGlwQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2hpcCc7XG5pbXBvcnQgeyBIZWFkZXJDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9oZWFkZXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIHB4LCB0cmFja0J5SWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb2FzdFJlZiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL3RvYXN0LWl0ZW0vdG9hc3QtaXRlbS5jb21wb25lbnQnO1xuXG5jb25zdCBUT0FTVF9BTklNQVRJT05fREVMQVkgPSAnMTI1bXMnO1xuQENTU0NvbXBvbmVudCgndG9hc3QtY29udGFpbmVyJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC10b2FzdC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENoaXBDb21wb25lbnQsIFRvYXN0SXRlbUNvbXBvbmVudF0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzbGlkZScsIFtcbiAgICAgIHRyYW5zaXRpb24oXG4gICAgICAgICc6ZW50ZXInLFxuICAgICAgICBncm91cChbXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKGV4cGFuZCksXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKGZhZGVJbigpLCB7IHBhcmFtczogeyBkZWxheTogVE9BU1RfQU5JTUFUSU9OX0RFTEFZIH0gfSksXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKHNsaWRlSW5SaWdodCwgeyBwYXJhbXM6IHsgZGVsYXk6IFRPQVNUX0FOSU1BVElPTl9ERUxBWSB9IH0pLFxuICAgICAgICBdKSxcbiAgICAgICksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBncm91cChbdXNlQW5pbWF0aW9uKGNvbGxhcHNlKV0pKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBJTklUSUFMSVpFRCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93UmVmID0gaW5qZWN0KFdpbmRvd1JlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0b2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhY2tCeUlkID0gdHJhY2tCeUlkO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPFRvYXN0UmVmW10+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gcmVmcy5zbGljZSgwLCB0aGlzLm1heEl0ZW1zKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGlkZGVuVG9hc3RzJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gTWF0aC5tYXgoMCwgcmVmcy5sZW5ndGggLSB0aGlzLm1heEl0ZW1zKSkpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBtYXhJdGVtcyA9IDM7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBkaXNtaXNzID0gdGhpcy50b2FzdFNlcnZpY2Uub25Ub2FzdFJlbW92ZSQ7XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoVG9hc3RDb250YWluZXJDb21wb25lbnQuSU5JVElBTElaRUQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignT25seSBvbmUgdG9hc3QgY29udGFpbmVyIHBlciBhcHBsaWNhdGlvbiBhbGxvd2VkJyk7XG4gICAgfVxuICAgIFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEID0gdHJ1ZTtcbiAgICBjb25zdCBoZWFkZXJFbGVtZW50ID0gdGhpcy53aW5kb3dSZWYucXVlcnlCeUNvbXBvbmVudChIZWFkZXJDb21wb25lbnQpO1xuICAgIGlmIChoZWFkZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAndG9wJywgcHgoaGVhZGVyRWxlbWVudC5vZmZzZXRIZWlnaHQpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgVG9hc3RDb250YWluZXJDb21wb25lbnQuSU5JVElBTElaRUQgPSBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRpc21pc3MoaXRlbVJlZjogVG9hc3RSZWYpOiB2b2lkIHtcbiAgICB0aGlzLnRvYXN0U2VydmljZS5kaXNtaXNzKGl0ZW1SZWYpO1xuICB9XG59XG4iLCI8b2R4LXRvYXN0XG4gIEBzbGlkZVxuICBbaWRdPVwidG9hc3RSZWYuaWRcIlxuICBbdGl0bGVdPVwidG9hc3RSZWYuaXRlbS50aXRsZVwiXG4gIFtkZXNjcmlwdGlvbl09XCJ0b2FzdFJlZi5pdGVtLmRlc2NyaXB0aW9uXCJcbiAgW2FjdGlvbnNdPVwidG9hc3RSZWYuaXRlbS5hY3Rpb25zID8/IFtdXCJcbiAgW3ZhcmlhbnRdPVwidG9hc3RSZWYuaXRlbS52YXJpYW50XCJcbiAgW29wdGlvbnNdPVwidG9hc3RSZWYub3B0aW9uc1wiXG4gIChkaXNtaXNzKT1cIm9uRGlzbWlzcyh0b2FzdFJlZilcIlxuICAqbmdGb3I9XCJsZXQgdG9hc3RSZWYgb2YgaXRlbXMkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrQnlJZFwiXG4+PC9vZHgtdG9hc3Q+XG48b2R4LWNoaXAgY2xhc3M9XCJvZHgtdG9hc3QtY29udGFpbmVyX19jb3VudGVyXCIgKm5nSWY9XCJoaWRkZW5Ub2FzdHMkIHwgYXN5bmMgYXMgbW9yZVwiPnt7IG1vcmUgfX0gbW9yZSBOb3RpZmljYXRpb25zPC9vZHgtY2hpcD5cbiJdfQ==
|
|
@@ -1,29 +1,59 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { deepmerge } from '@odx/angular/internal';
|
|
3
3
|
import { getUniqueId, Queue } from '@odx/angular/utils';
|
|
4
|
-
import { share, Subject } from 'rxjs';
|
|
5
4
|
import { injectToastConfig } from './toast.config';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
export class ToastService {
|
|
8
7
|
constructor() {
|
|
9
8
|
this.queue = new Queue();
|
|
10
|
-
this.onRemove$$ = new Subject();
|
|
11
9
|
this.defaultOptions = injectToastConfig();
|
|
12
|
-
this.
|
|
13
|
-
this.
|
|
10
|
+
this.toasts$ = this.queue.value$;
|
|
11
|
+
this.onUpdate$ = this.queue.onUpdate$;
|
|
12
|
+
this.onToastAdd$ = this.queue.onAdd$;
|
|
13
|
+
this.onToastUpdate$ = this.queue.onUpdate$;
|
|
14
|
+
this.onToastRemove$ = this.queue.onRemove$;
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Use `toasts$` instead
|
|
17
|
+
*/
|
|
18
|
+
this.queue$ = this.toasts$;
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Use `onToastAdd$` instead
|
|
21
|
+
*/
|
|
22
|
+
this.onAdd$ = this.onToastAdd$;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated Use `onToastRemove$` instead
|
|
25
|
+
*/
|
|
26
|
+
this.onRemove$ = this.onToastRemove$;
|
|
14
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* @deprecated Use `create` instead
|
|
30
|
+
*/
|
|
15
31
|
add(item, options = {}) {
|
|
32
|
+
return this.create(item, options);
|
|
33
|
+
}
|
|
34
|
+
create(item, options = {}) {
|
|
16
35
|
return this.queue.add({
|
|
17
36
|
id: item.id ?? getUniqueId('odx-toast'),
|
|
18
37
|
item,
|
|
19
38
|
options: deepmerge(this.defaultOptions, options),
|
|
20
39
|
});
|
|
21
40
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated Use `dismiss` instead
|
|
43
|
+
*/
|
|
44
|
+
remove(refOrId) {
|
|
45
|
+
return this.dismiss(refOrId);
|
|
46
|
+
}
|
|
47
|
+
dismiss(refOrId) {
|
|
48
|
+
return this.queue.remove(refOrId);
|
|
25
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* @deprecated Use `dismissAll` instead
|
|
52
|
+
*/
|
|
26
53
|
clear() {
|
|
54
|
+
return this.dismissAll();
|
|
55
|
+
}
|
|
56
|
+
dismissAll() {
|
|
27
57
|
this.queue.clear();
|
|
28
58
|
}
|
|
29
59
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -35,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
35
65
|
providedIn: 'root',
|
|
36
66
|
}]
|
|
37
67
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvdG9hc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUtuRCxNQUFNLE9BQU8sWUFBWTtJQUh6QjtRQUltQixVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVksQ0FBQztRQUM5QixtQkFBYyxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFFdEMsWUFBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzVCLGNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUVqQyxnQkFBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ2hDLG1CQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUV0RDs7V0FFRztRQUNhLFdBQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3RDOztXQUVHO1FBQ2EsV0FBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUM7O1dBRUc7UUFDYSxjQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztLQXNDakQ7SUFwQ0M7O09BRUc7SUFDSSxHQUFHLENBQUMsSUFBVyxFQUFFLFVBQWlDLEVBQUU7UUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQVcsRUFBRSxVQUFpQyxFQUFFO1FBQzVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDcEIsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQztZQUN2QyxJQUFJO1lBQ0osT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBaUI7U0FDakUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQWtDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sT0FBTyxDQUFDLE9BQWtDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQTNEVSxZQUFZO21IQUFaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlZXBtZXJnZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBnZXRVbmlxdWVJZCwgUXVldWUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgVG9hc3QsIFRvYXN0T3B0aW9ucywgVG9hc3RSZWYgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBpbmplY3RUb2FzdENvbmZpZyB9IGZyb20gJy4vdG9hc3QuY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcXVldWUgPSBuZXcgUXVldWU8VG9hc3RSZWY+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdE9wdGlvbnMgPSBpbmplY3RUb2FzdENvbmZpZygpO1xuXG4gIHB1YmxpYyByZWFkb25seSB0b2FzdHMkID0gdGhpcy5xdWV1ZS52YWx1ZSQ7XG4gIHB1YmxpYyByZWFkb25seSBvblVwZGF0ZSQgPSB0aGlzLnF1ZXVlLm9uVXBkYXRlJDtcblxuICBwdWJsaWMgcmVhZG9ubHkgb25Ub2FzdEFkZCQgPSB0aGlzLnF1ZXVlLm9uQWRkJDtcbiAgcHVibGljIHJlYWRvbmx5IG9uVG9hc3RVcGRhdGUkID0gdGhpcy5xdWV1ZS5vblVwZGF0ZSQ7XG4gIHB1YmxpYyByZWFkb25seSBvblRvYXN0UmVtb3ZlJCA9IHRoaXMucXVldWUub25SZW1vdmUkO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYHRvYXN0cyRgIGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBxdWV1ZSQgPSB0aGlzLnRvYXN0cyQ7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYG9uVG9hc3RBZGQkYCBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb25BZGQkID0gdGhpcy5vblRvYXN0QWRkJDtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgb25Ub2FzdFJlbW92ZSRgIGluc3RlYWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvblJlbW92ZSQgPSB0aGlzLm9uVG9hc3RSZW1vdmUkO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYGNyZWF0ZWAgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIGFkZChpdGVtOiBUb2FzdCwgb3B0aW9uczogUGFydGlhbDxUb2FzdE9wdGlvbnM+ID0ge30pOiBUb2FzdFJlZiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGl0ZW0sIG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZShpdGVtOiBUb2FzdCwgb3B0aW9uczogUGFydGlhbDxUb2FzdE9wdGlvbnM+ID0ge30pOiBUb2FzdFJlZiB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuYWRkKHtcbiAgICAgIGlkOiBpdGVtLmlkID8/IGdldFVuaXF1ZUlkKCdvZHgtdG9hc3QnKSxcbiAgICAgIGl0ZW0sXG4gICAgICBvcHRpb25zOiBkZWVwbWVyZ2UodGhpcy5kZWZhdWx0T3B0aW9ucywgb3B0aW9ucykgYXMgVG9hc3RPcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgZGlzbWlzc2AgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHJlbW92ZShyZWZPcklkOiBUb2FzdFJlZiB8IFRvYXN0UmVmWydpZCddKTogVG9hc3RSZWYgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5kaXNtaXNzKHJlZk9ySWQpO1xuICB9XG5cbiAgcHVibGljIGRpc21pc3MocmVmT3JJZDogVG9hc3RSZWYgfCBUb2FzdFJlZlsnaWQnXSk6IFRvYXN0UmVmIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUucmVtb3ZlKHJlZk9ySWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgZGlzbWlzc0FsbGAgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLmRpc21pc3NBbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNtaXNzQWxsKCk6IHZvaWQge1xuICAgIHRoaXMucXVldWUuY2xlYXIoKTtcbiAgfVxufVxuIl19
|