{"version":3,"sources":["webpack:///src/modules/notifications-manager/notification-feeds.ts?dbd2","webpack:///src/modules/notifications-manager/notifications-manager.ts?6cdb","webpack:///src/index.ts?c6ae","webpack:///src/modules/notification-components/system-notifications/error-notification-component.tsx?5e7f","webpack:///src/modules/notifications-data-instances/base/events/notification-events.ts?2654","webpack:///src/modules/notifications-data-instances/base/base-notification.ts?20cc","webpack:///src/modules/notifications-data-instances/system-notifications/system-notification.ts?ed23","webpack:///src/modules/notifications-data-instances/system-notifications/error-notification.ts?3100","webpack:///src/modules/notifications-data-instances/system-notifications/loading-notification.ts?9516","webpack:///src/modules/notifications-data-instances/system-notifications/success-notification.ts?4a30","webpack:///src/modules/notifications-data-instances/system-notifications/warning-notification.ts?b551","webpack:///src/modules/notification-components/system-notifications/index.ts?ab2d","webpack:///src/modules/notification-components/index.ts?7aea","webpack:///src/modules/notification-components/system-notifications/system-notification-component.tsx?052c","webpack:///src/modules/notification-components/system-notifications/success-notification-component.tsx?5ce1","webpack:///src/modules/notification-components/system-notifications/loading-notification-component.tsx?a7b0","webpack:///src/modules/notifications-data-instances/base/interfaces/index.ts?c24c","webpack:///src/modules/notification-components/base/base-notification-component.tsx?9067","webpack:///src/modules/notification-components/system-notifications/warning-notification-component.tsx?17f7","webpack:///src/modules/notification-components/notification-components-lists-manager.ts?6558","webpack:///src/modules/notifications-data-instances/base/with-notification-component-decorator.ts?9c40","webpack:///src/modules/notifications-data-instances/base/index.ts?9f86","webpack:///src/modules/notification-components/base/closable-notification-component.tsx?f51e","webpack:///src/modules/notification-components/base/dismissible-notification-component.tsx?3f1f","webpack:///src/modules/notification-components/base/notification-close-button-component.tsx?1400","webpack:///src/modules/notification-components/base/notification-content-component.tsx?8ec4","webpack:///src/modules/notification-components/base/notification-description-component.tsx?2962","webpack:///src/modules/notification-components/base/notification-footer-component.tsx?3f5e","webpack:///src/modules/notification-components/base/notification-header-component.tsx?d725","webpack:///src/modules/notification-components/base/notification-instance-component.tsx?78d7","webpack:///src/modules/notification-components/base/notification-title-component.tsx?e42e","webpack:///src/modules/notifications-data-instances/base/dismissible-notification.ts?09de","webpack:///src/modules/notifications-data-instances/index.ts?e757"],"names":["NotificationFeeds","this","notificationAddedEvent","instance","_applicationNotificationManager","NotificationsManager","addNotification","notification","feed","Global","component","_getNotificationComponent","componentClass","props","lists","getNotificationLists","hasElements","remove","forEach","componentManager","addNotificationComponent","trigger","error","console","notificationComponentConstructor","notificationName","constructor","name","Error","render","className","ErrorNotificationComponent","NotificationEvents","receivedDate","Date","_isRemoved","events","key","RemovedFromList","value","id","Guid","generateGuid","getValue","_dispose","unsubscribeFromEvents","instanceId","getValues","event","unsubscribe","unsubscribeAll","clear","title","closeAriaLabel","descriptionLines","filter","isNullOrWhitespace","isClosed","setValue","Close","close","ErrorNotification","_isLoading","finishLoading","startDismissing","LoadingNotification","SuccessNotification","WarningNotification","SuccessNotificationComponent","LoadingNotificationComponent","preChildren","Component","WarningNotificationComponent","NotificationComponentsListsManager","_instances","getValueWithDefaultValue","subscribe","notificationComponentsList","push","newInstances","list","withNotificationComponent","_instanceId","state","_close","bind","_unsubscribeFromEvents","componentDidMount","_subscribeToEvents","componentDidUpdate","previousProps","componentWillUnmount","ClosableNotificationWrapper","children","handler","setState","setTimeout","isDismissing","isDismissed","_setTimer","_clearTimer","_startDismissing","_preventDismissing","_preventDismissingHandler","_finishDismissing","_updateState","autoDismissTimeout","DismissibleNotificationWrapper","onMouseEnter","shouldResetOnHover","undefined","onMouseLeave","onAnimationEnd","StartDismissing","PreventDismissing","FinishDismissing","_timer","isNullOrUndefined","clearTimeout","preventDismissing","finishDismissing","type","onClick","NotificationCloseButton","NotificationContent","NotificationDescription","map","line","index","toString","text","NotificationFooter","NotificationHeader","NotificationInstance","NotificationTitle","postChildren","DismissTimeout","Default","_isDismissed","_isDismissing"],"mappings":"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","file":"static/js/16.81560b051eb9db74.chunk.js","sourcesContent":["/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\n/**\n * Specifies different feeds for the notification lists.\n * Denotes the purpose of a notification list and what kind of notifications should be passed to the list.\n * By default is global (the global notification lists which is used to show most notifications).\n */\nexport enum NotificationFeeds {\n Global = 'global'\n}\n\n/**\n * Represents a type of each notification feed. Is used for notification lists components.\n * @see NotificationFeeds\n */\nexport type NotificationFeedType = string;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ArrayExtensions, Event } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { INotificationComponentType } from '../notification-components/notification-component-type';\nimport { NotificationComponentsListsManager } from '../notification-components/notification-components-lists-manager';\nimport { BaseNotification, NotificationComponentClass } from '../notifications-data-instances';\nimport { NotificationFeeds } from './notification-feeds';\n\n/**\n * Notification manager is a singleton.\n * It is responsible for receiving a notification,\n * retrieving notification component class,\n * and passing the component class to the notification components lists.\n * @see NotificationComponentsList which renders the list of notifications.\n */\nexport class NotificationsManager {\n /**\n * Singleton global instance of the notification manager.\n */\n private static _applicationNotificationManager?: NotificationsManager;\n\n /**\n * Event which is triggered after the notification was added to the lists.\n * @see addNotification method.\n * @remark is not triggered in case of any errors.\n */\n public readonly notificationAddedEvent: Event;\n\n /**\n * Retrieves global singleton instance of the notifications manager.\n * @returns {NotificationsManager} Instance of the manager which is used throughout the whole application.\n */\n public static instance(): NotificationsManager {\n if (!this._applicationNotificationManager) {\n this._applicationNotificationManager = new NotificationsManager();\n }\n\n return this._applicationNotificationManager;\n }\n\n /**\n * Adds given notifications to the notification component lists.\n * It receives a notification, retrieves notification component class,\n * and passes the component class to the notification components lists.\n * @see NotificationComponentsList which renders the list of notifications.\n * Then it triggers the notification added event.\n * @remark In case of any errors, suppress the error and write it in the console.\n * @param {NotificationType} notification Notification instance with the data.\n * @param {NotificationFeeds} feed The configuration of the notification component list. By default is global.\n */\n public addNotification(\n notification: NotificationType, feed: NotificationFeeds = NotificationFeeds.Global): void {\n\n const component = this._getNotificationComponent(notification);\n\n try {\n const componentType: INotificationComponentType = {\n componentClass: component,\n props: {\n notification\n }\n };\n const lists = NotificationComponentsListsManager.getNotificationLists(feed);\n\n if (!ArrayExtensions.hasElements(lists)) {\n notification.remove();\n return;\n }\n\n lists.forEach(\n componentManager => {\n componentManager.addNotificationComponent(componentType);\n });\n\n this.notificationAddedEvent.trigger();\n } catch (error) {\n console.error('Error while adding a notification');\n console.error(notification);\n console.error(error);\n }\n }\n\n /**\n * Initializes the instance with the notification event.\n */\n private constructor() {\n this.notificationAddedEvent = new Event();\n }\n\n /**\n * Retrieves the component responsible for rendering the given notification.\n * @param {NotificationType} notification The data instance of the notification which should be added.\n * @returns {NotificationComponentClass} The react class which should render the given notification.\n */\n private _getNotificationComponent(notification: NotificationType): NotificationComponentClass {\n const componentClass = notification.notificationComponentConstructor;\n if (!componentClass) {\n const notificationName = (notification).constructor.name;\n throw new Error(`No notification component found for the given notification ${notificationName}. ` +\n 'Please use \\'withNotificationComponent\\' decorator on the notification and specify the type to use');\n }\n\n return componentClass;\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nexport * from './modules/notification-components';\nexport * from './modules/notifications-data-instances';\nexport * from './modules/notifications-manager';\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport React from 'react';\n\nimport { ErrorNotification } from '../../notifications-data-instances/system-notifications';\nimport { INotificationCloseButtonProps } from '../base';\nimport { BaseNotificationComponent, INotificationProps } from '../base/base-notification-component';\nimport { SystemNotificationComponent } from './system-notification-component';\n\n/**\n * Props for error notification.\n */\nexport interface IErrorNotificationProps extends INotificationProps, INotificationCloseButtonProps {}\n\n/**\n * Component responsible for rendering an error notification.\n */\nexport class ErrorNotificationComponent extends BaseNotificationComponent {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-notification-error';\n\n /**\n * Initializes the component with the given configuration.\n * @param {IErrorNotificationProps} props Configuration of the component.\n */\n public constructor(props: IErrorNotificationProps) {\n super(props);\n }\n\n /**\n * Renders the given error notification.\n */\n public render(): React.ReactNode {\n return (\n \n );\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\n/**\n * Enum with the possible notification UI events.\n */\nexport enum NotificationEvents {\n Close = 'Close',\n StartDismissing = 'StartDismissing',\n FinishDismissing = 'FinishDismissing',\n PreventDismissing = 'PreventDismissing',\n RemovedFromList = 'RemovedFromList'\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Dictionary, Event, Random } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { INotificationProps } from '../../notification-components/base/base-notification-component';\nimport { NotificationEvents } from './events';\n\n/**\n * Represents a react component class which renders a notification.\n */\nexport type NotificationComponentClass = React.ComponentClass, {}>;\n\n/**\n * Represents base functionality of a notification.\n */\nexport abstract class BaseNotification {\n /**\n * Notification events for the current notification.\n */\n public readonly events: Dictionary;\n\n /**\n * The local date set when the instance was created.\n */\n public readonly receivedDate: Date;\n\n /**\n * Unique identifier of the notification.\n * Represents a GUID that is automatically generated during the object initialization.\n */\n public readonly id: string;\n\n /**\n * The react class which is responsible for rendering the current instance of notification.\n * Should be set using @withNotificationComponent decorator.\n */\n public readonly notificationComponentConstructor!: NotificationComponentClass;\n\n /**\n * Specifies if the notification instance was removed from a notification list.\n */\n public get isRemoved(): boolean {\n return this._isRemoved;\n }\n\n /**\n * Specifies if the notification instance was removed from a notification list.\n */\n protected _isRemoved: boolean;\n\n /**\n * Initializes a notification with base information such as id, events, date when initialized.\n */\n public constructor() {\n this.receivedDate = new Date();\n this._isRemoved = false;\n this.events = new Dictionary({ key: NotificationEvents.RemovedFromList, value: new Event() });\n this.id = `Notification-${Random.Guid.generateGuid()}`;\n }\n\n /**\n * Updates the notification instance when it's removed from a notification list.\n * Should be called from a notification component once the notification can be disposed.\n */\n public remove(): void {\n this._isRemoved = true;\n this.events.getValue(NotificationEvents.RemovedFromList)?.trigger();\n this._dispose();\n }\n\n /**\n * Unsubscribes given instance from all the events for the notification.\n * @param {string} instanceId Unique id which represents the event handler.\n * @remarks Does nothing in case the instance was not subscribed to any event.\n */\n public unsubscribeFromEvents(instanceId: string): void {\n this.events.getValues().forEach(event => {\n event.unsubscribe(instanceId);\n });\n }\n\n /**\n * Disposes the events by unsubscribing all members.\n */\n protected _dispose(): void {\n this.events.getValues().forEach(event => {\n event.unsubscribeAll();\n });\n this.events.clear();\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { RichText } from '@msdyn365-commerce/core';\nimport { Event, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { DismissibleNotification, IClosableNotification, IDescriptiveNotification, ITitledNotification, NotificationEvents } from '../base';\n\n/**\n * Represents a system notification data instance.\n * By default, all system notification should have a title, be closable, auto-dismissible.\n * You can specify some optional description text for the main message.\n */\nexport abstract class SystemNotification extends DismissibleNotification implements ITitledNotification, IDescriptiveNotification, IClosableNotification {\n /**\n * Aria label which should be used for the close button. Should be localized.\n * @see IClosableNotification\n */\n public readonly closeAriaLabel: string;\n\n /**\n * Specifies if the notification is closed or not. True if it's closed, false otherwise.\n * @remark Use only to get information about the 'close' event, dismissible notifications do not use this field.\n * @see IClosableNotification\n */\n public isClosed: boolean;\n\n /**\n * The text with the title of notification. The text should be localized.\n * @see ITitledNotification\n */\n public readonly title: RichText;\n\n /**\n * The lines of text which are displayed to user. The text should be localized. Empty by default.\n * @see IDescriptiveNotification\n */\n public readonly descriptionLines: RichText[];\n\n /**\n * Initializes system notification with the given data.\n * @param {string} title The text with the title of notification. The text should be localized.\n * @param {string} closeAriaLabel Aria label which should be used for the close button. Should be localized.\n * @param {(string | undefined)[]} [descriptionLines] Description for the notification. Optional parameter.\n * The data will be filtered to include only non-null/non-whitespace text.\n */\n public constructor(title: RichText, closeAriaLabel: string, descriptionLines?: (RichText | undefined)[]) {\n super();\n\n this.title = title;\n this.closeAriaLabel = closeAriaLabel;\n this.descriptionLines = (descriptionLines ?? []).filter(value => !StringExtensions.isNullOrWhitespace(value?.toString()));\n this.isClosed = false;\n\n this.events.setValue(NotificationEvents.Close, new Event());\n }\n\n /**\n * Triggers close event and marks that the notification is closed now.\n * Implementation should modify the `isClosed` field first and then trigger the `NotificationEvents.Close` event.\n * @see IClosableNotification\n */\n public close(): void {\n this.isClosed = true;\n this.events.getValue(NotificationEvents.Close)?.trigger();\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ErrorNotificationComponent } from '../../notification-components/system-notifications/error-notification-component';\nimport { withNotificationComponent } from '../base';\nimport { SystemNotification } from './system-notification';\n\n/**\n * Represents an error notification.\n * Use this notification when some flow fails and you want to display a simple message to the user.\n * This is one of the types of system notifications.\n */\n@withNotificationComponent(ErrorNotificationComponent)\nexport class ErrorNotification extends SystemNotification {}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { RichText } from '@msdyn365-commerce/core';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { LoadingNotificationComponent } from '../../notification-components/system-notifications/loading-notification-component';\nimport { DismissibleNotification, IDescriptiveNotification, ITitledNotification, withNotificationComponent } from '../base';\n\n/**\n * Represents a loading notification.\n * Use this notification when a process takes some time to be completed.\n * This type of notification should be used to show the user that the flow is in process.\n * @remark Do not use the notification for quick actions.\n */\n@withNotificationComponent(LoadingNotificationComponent)\nexport class LoadingNotification extends DismissibleNotification implements ITitledNotification, IDescriptiveNotification {\n /**\n * The text with the title of notification. The text should be localized.\n * @see ITitledNotification\n */\n public readonly title: RichText;\n\n /**\n * The lines of text which are displayed to user. The text should be localized. Empty by default.\n * @see IDescriptiveNotification\n */\n public readonly descriptionLines: RichText[];\n\n /**\n * Represents loading state when some flow is in progress.\n */\n public get isLoading(): boolean {\n return this._isLoading;\n }\n\n /**\n * Represents loading state when some flow is in progress.\n */\n private _isLoading: boolean;\n\n /**\n * Initializes system notification with the given data.\n * @param {string} title The text with the title of notification. The text should be localized.\n * @param {string} closeAriaLabel Aria label which should be used for the close button. Should be localized.\n * @param {(string | undefined)[]} [descriptionLines] Description for the notification. Optional parameter.\n * The data will be filtered to include only non-null/non-whitespace text.\n */\n public constructor(title: RichText, descriptionLines?: (RichText | undefined)[]) {\n super(null, false);\n\n this._isLoading = true;\n this.title = title;\n this.descriptionLines = (descriptionLines ?? []).filter(value => !StringExtensions.isNullOrWhitespace(value?.toString()));\n }\n\n /**\n * Tells notification instance that the loading is completed.\n */\n public finishLoading(): void {\n this._isLoading = false;\n this.startDismissing();\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { SuccessNotificationComponent } from '../../notification-components/system-notifications/success-notification-component';\nimport { withNotificationComponent } from '../base';\nimport { SystemNotification } from './system-notification';\n\n/**\n * Represents a success notification.\n * Use this notification for the successful scenarios when you want to display a simple message to the user.\n * This is one of the types of system notifications.\n */\n@withNotificationComponent(SuccessNotificationComponent)\nexport class SuccessNotification extends SystemNotification {}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { WarningNotificationComponent } from '../../notification-components/system-notifications/warning-notification-component';\nimport { withNotificationComponent } from '../base';\nimport { SystemNotification } from './system-notification';\n\n/**\n * Represents a warning notification.\n * Use this notification when you want to provide some additional information or hints to the user.\n * For the success or error scenarios, please use `SuccessNotification` or `ErrorNotification` instead.\n * This is one of the types of system notifications.\n */\n@withNotificationComponent(WarningNotificationComponent)\nexport class WarningNotification extends SystemNotification {}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nexport * from './error-notification-component';\nexport * from './loading-notification-component';\nexport * from './success-notification-component';\nexport * from './system-notification-component';\nexport * from './warning-notification-component';\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nexport * from './base';\nexport * from './base-notification-component-list';\nexport * from './notification-component-type';\nexport * from './notification-components-lists-manager';\nexport * from './system-notifications';\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { SystemNotification } from '../../notifications-data-instances/system-notifications';\nimport { ClosableNotificationWrapper, DismissibleNotificationWrapper, INotificationCloseButtonProps, NotificationCloseButton, NotificationContent, NotificationDescription, NotificationHeader, NotificationInstance, NotificationTitle } from '../base';\nimport { BaseNotificationComponent, INotificationElementProps } from '../base/base-notification-component';\n\n/**\n * Props for system notification.\n */\nexport interface ISystemNotificationProps extends INotificationElementProps, INotificationCloseButtonProps {\n\n /**\n * The class for the styles.\n */\n className: string;\n}\n\n/**\n * Component responsible for rendering a system notification.\n */\nexport class SystemNotificationComponent extends BaseNotificationComponent {\n\n /**\n * Initializes the component with the given configuration.\n * @param {ISuccessNotificationProps} props Configuration of the component.\n */\n public constructor(props: ISystemNotificationProps) {\n super(props);\n }\n\n /**\n * Renders the given success notification.\n */\n public render(): React.ReactNode {\n return (\n
\n \n \n \n \n \n \n \n {\n ArrayExtensions.hasElements(this.props.notification.descriptionLines) ? (\n \n \n \n ) : null\n }\n \n \n \n
\n );\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport React from 'react';\n\nimport { SuccessNotification } from '../../notifications-data-instances/system-notifications';\nimport { INotificationCloseButtonProps } from '../base';\nimport { BaseNotificationComponent, INotificationProps } from '../base/base-notification-component';\nimport { SystemNotificationComponent } from './system-notification-component';\n\n/**\n * Props for success notification.\n */\nexport interface ISuccessNotificationProps extends INotificationProps, INotificationCloseButtonProps {}\n\n/**\n * Component responsible for rendering a success notification.\n */\nexport class SuccessNotificationComponent extends BaseNotificationComponent {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-notification-success';\n\n /**\n * Initializes the component with the given configuration.\n * @param {ISuccessNotificationProps} props Configuration of the component.\n */\n public constructor(props: ISuccessNotificationProps) {\n super(props);\n }\n\n /**\n * Renders the given success notification.\n */\n public render(): React.ReactNode {\n return (\n \n );\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Spinner } from 'office-ui-fabric-react';\nimport React from 'react';\n\nimport { LoadingNotification } from '../../notifications-data-instances/system-notifications';\nimport { DismissibleNotificationWrapper, NotificationContent, NotificationDescription, NotificationHeader, NotificationInstance, NotificationTitle } from '../base';\nimport { BaseNotificationComponent, INotificationProps } from '../base/base-notification-component';\n\n/**\n * Props for loading notification.\n */\nexport interface ILoadingNotificationProps extends INotificationProps {}\n\n/**\n * Component responsible for rendering a loading notification.\n */\nexport class LoadingNotificationComponent extends BaseNotificationComponent {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-notification-loading';\n\n /**\n * Initializes the component with the given configuration.\n * @param {ILoadingNotificationProps} props Configuration of the component.\n */\n public constructor(props: ILoadingNotificationProps) {\n super(props);\n }\n\n /**\n * Renders the given notification.\n */\n public render(): React.ReactNode {\n return (\n
\n \n \n \n }\n />\n \n {\n ArrayExtensions.hasElements(this.props.notification.descriptionLines) ? (\n \n \n \n ) : null\n }\n \n \n
\n );\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nexport * from './closable-notification';\nexport * from './descriptive-notification';\nexport * from './titled-notification';\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport React from 'react';\n\nimport { BaseNotification } from '../../notifications-data-instances';\n\n/**\n * Default props for a component responsible for rendering the given notification.\n * @remark Modify carefully as it's initialized by the notifications manager to provide dynamic rendering.\n */\nexport interface INotificationProps {\n notification: NotificationType;\n}\n\n/**\n * Default props for a component responsible for rendering some part of notification, but not the whole notification (e.g. @see NotificationTitle).\n */\nexport interface INotificationElementProps extends INotificationProps {\n}\n\n/**\n * Represents a base class which renders a notification or a part of notification.\n */\nexport abstract class BaseNotificationComponent<\n NotificationType extends BaseNotification,\n PropsType extends INotificationProps = INotificationProps,\n StateType = {}> extends React.Component {\n\n public constructor(props: PropsType) {\n super(props);\n }\n\n public abstract render(): React.ReactNode;\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport React from 'react';\n\nimport { WarningNotification } from '../../notifications-data-instances/system-notifications/warning-notification';\nimport { INotificationCloseButtonProps } from '../base';\nimport { BaseNotificationComponent, INotificationProps } from '../base/base-notification-component';\nimport { SystemNotificationComponent } from './system-notification-component';\n\n/**\n * Component responsible for rendering a warning notification.\n */\nexport interface IWarningNotificationProps extends INotificationProps, INotificationCloseButtonProps {}\n\n/**\n * Component responsible for rendering a success notification.\n */\nexport class WarningNotificationComponent extends BaseNotificationComponent {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-notification-warning';\n\n /**\n * Initializes the component with the given configuration.\n * @param {ISuccessNotificationProps} props Configuration of the component.\n */\n public constructor(props: IWarningNotificationProps) {\n super(props);\n }\n\n /**\n * Renders the given success notification.\n */\n public render(): React.ReactNode {\n return (\n \n );\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Dictionary } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { NotificationFeeds, NotificationFeedType } from '../notifications-manager/notification-feeds';\nimport { INotificationComponentsList } from './base-notification-component-list';\n\n/**\n * A notification list which is operated by notification manager.\n * It is responsible for rendering the received notifications.\n */\nexport class NotificationComponentsListsManager {\n /**\n * Instances of the lists currently shown on the page.\n * Dictionary of lists by the feed.\n */\n private static readonly _instances: Dictionary = new Dictionary();\n\n /**\n * Retrieve the lists which are displayed currently on the page for the given feed.\n * @param {NotificationFeeds} [feed] The feed to filter the lists. Global feed by default.\n */\n public static getNotificationLists(feed: NotificationFeeds): INotificationComponentsList[] {\n return NotificationComponentsListsManager._instances.getValueWithDefaultValue(feed, []);\n }\n\n /**\n * Registers notification components list to listen to notification manager.\n * @param {INotificationComponentsList} notificationComponentsList The component which renders the notifications.\n */\n public static subscribe(notificationComponentsList: INotificationComponentsList): void {\n NotificationComponentsListsManager._instances.getValueWithDefaultValue(notificationComponentsList.feed, []).push(notificationComponentsList);\n }\n\n /**\n * Removes the notification components list from the instances which listen to notification manager.\n * @param {INotificationComponentsList} notificationComponentsList The component which renders the notifications.\n */\n public static unsubscribe(notificationComponentsList: INotificationComponentsList): void {\n const instances = NotificationComponentsListsManager._instances.getValueWithDefaultValue(notificationComponentsList.feed, []);\n const newInstances = instances.filter(list => list !== notificationComponentsList);\n NotificationComponentsListsManager._instances.setValue(notificationComponentsList.feed, newInstances);\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { INotificationProps } from '../../notification-components';\nimport { BaseNotification } from './base-notification';\n\n/**\n * Decorator which should be used to specify the react component class for a notification data instances.\n * @param {React.ComponentClass} componentClass The component class responsible for rendering all the data instances of this notification class.\n */\nexport const withNotificationComponent = <\n NotificationType extends BaseNotification,\n PropsType extends INotificationProps,\n StateType extends {}>(\n componentClass: React.ComponentClass) => {\n\n return {}>(constructor: T) => {\n return class extends constructor {\n public readonly notificationComponentConstructor: React.ComponentClass = componentClass;\n };\n };\n};\n\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nexport * from './base-notification';\nexport * from './dismissible-notification';\nexport * from './events';\nexport * from './interfaces';\nexport * from './with-notification-component-decorator';\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Random } from '@msdyn365-commerce-modules/retail-actions';\nimport classnames from 'classnames';\nimport React, { ReactNode } from 'react';\n\nimport { BaseNotification, IClosableNotification } from '../../notifications-data-instances';\nimport { NotificationEvents } from '../../notifications-data-instances/base/events';\nimport { BaseNotificationComponent, INotificationElementProps } from './base-notification-component';\n\n/**\n * Represents state for closable wrapper.\n */\nexport interface IClosableNotificationWrapperState {\n isClosed: boolean;\n}\n\n/**\n * Wraps children into closable wrapper which hides the children (notification body) when the notification is closed.\n */\nexport class ClosableNotificationWrapper\n extends BaseNotificationComponent, IClosableNotificationWrapperState> {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-closable-notification';\n\n /**\n * Unique id of the component.\n */\n private readonly _instanceId: string;\n\n public constructor(props: INotificationElementProps) {\n super(props);\n\n this._instanceId = `ClosableNotificationWrapper-${Random.Guid.generateGuid()}`;\n\n this.state = {\n isClosed: false\n };\n\n this._close = this._close.bind(this);\n this._unsubscribeFromEvents = this._unsubscribeFromEvents.bind(this);\n }\n\n public componentDidMount(): void {\n this._subscribeToEvents(this.props.notification);\n }\n\n public componentDidUpdate(previousProps: INotificationElementProps): void {\n this._unsubscribeFromEvents(previousProps.notification);\n this._subscribeToEvents(this.props.notification);\n }\n\n public componentWillUnmount(): void {\n this._unsubscribeFromEvents(this.props.notification);\n }\n\n public render(): ReactNode {\n let className = ClosableNotificationWrapper.className;\n if (this.state.isClosed) {\n className = classnames(className, `${ClosableNotificationWrapper.className}__closed`);\n }\n\n return (\n
\n {this.props.children}\n
\n );\n }\n\n private _subscribeToEvents(notification: NotificationType): void {\n notification.events.getValue(NotificationEvents.Close)!.subscribe({\n instanceId: this._instanceId,\n handler: this._close\n });\n notification.events.getValue(NotificationEvents.RemovedFromList)!.subscribe({\n instanceId: this._instanceId,\n handler: () => {\n this._unsubscribeFromEvents(notification);\n }\n });\n }\n\n private _unsubscribeFromEvents(notification: NotificationType): void {\n notification.unsubscribeFromEvents(this._instanceId);\n }\n\n private _close(): void {\n this._unsubscribeFromEvents(this.props.notification);\n\n this.setState({ isClosed: this.props.notification.isClosed });\n\n // Wait for the animation before removing completely.\n setTimeout(() => {\n this.props.notification.remove();\n }, 100);\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport classnames from 'classnames';\nimport React, { ReactNode } from 'react';\n\nimport { DismissibleNotification, NotificationEvents } from '../../notifications-data-instances';\nimport { BaseNotificationComponent, INotificationElementProps } from './base-notification-component';\n\nexport interface IDismissibleNotificationWrapperState {\n isDismissing: boolean;\n isDismissed: boolean;\n}\n\n/**\n * Wrapper over notification body which allows dismissing of the notification.\n * It setups timeouts and hides the notification body when the notification should be dismissed.\n */\nexport class DismissibleNotificationWrapper\n extends BaseNotificationComponent, IDismissibleNotificationWrapperState> {\n\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-dismissible-notification';\n\n /**\n * Waiting for dismissing timer.\n */\n private _timer?: NodeJS.Timeout;\n\n /**\n * Unique id of the component.\n */\n private readonly _instanceId: string;\n\n public constructor(props: INotificationElementProps) {\n super(props);\n\n this.state = {\n isDismissing: false,\n isDismissed: false\n };\n\n this._instanceId = `DismissibleNotificationWrapper-${Random.Guid.generateGuid()}`;\n\n this._setTimer = this._setTimer.bind(this);\n this._clearTimer = this._clearTimer.bind(this);\n this._startDismissing = this._startDismissing.bind(this);\n this._preventDismissing = this._preventDismissing.bind(this);\n this._preventDismissingHandler = this._preventDismissingHandler.bind(this);\n this._finishDismissing = this._finishDismissing.bind(this);\n this._updateState = this._updateState.bind(this);\n this._unsubscribeFromEvents = this._unsubscribeFromEvents.bind(this);\n }\n\n public componentDidMount(): void {\n if (this.props.notification.autoDismissTimeout !== null) {\n this._setTimer();\n }\n this._subscribeToEvents(this.props.notification);\n }\n\n public componentDidUpdate(previousProps: INotificationElementProps): void {\n this._unsubscribeFromEvents(previousProps.notification);\n this._subscribeToEvents(this.props.notification);\n }\n\n public componentWillUnmount(): void {\n this._unsubscribeFromEvents(this.props.notification);\n }\n\n public render(): ReactNode {\n let className = DismissibleNotificationWrapper.className;\n if (this.state.isDismissing) {\n className = classnames(className, `${DismissibleNotificationWrapper.className}__dismissing`);\n }\n if (this.state.isDismissed) {\n className = classnames(className, `${DismissibleNotificationWrapper.className}__dismissed`);\n }\n\n const onMouseEnter = this.props.notification.shouldResetOnHover ? this._preventDismissing : undefined;\n const onMouseLeave = this.props.notification.shouldResetOnHover ? this._setTimer : undefined;\n\n return (\n \n {this.props.children}\n \n );\n }\n\n private _subscribeToEvents(notification: NotificationType): void {\n notification.events.getValue(NotificationEvents.StartDismissing)!.subscribe({\n instanceId: this._instanceId,\n handler: this._updateState\n });\n notification.events.getValue(NotificationEvents.PreventDismissing)!.subscribe({\n instanceId: this._instanceId,\n handler: this._preventDismissingHandler\n });\n notification.events.getValue(NotificationEvents.FinishDismissing)!.subscribe({\n instanceId: this._instanceId,\n handler: () => this._updateState\n });\n notification.events.getValue(NotificationEvents.RemovedFromList)!.subscribe({\n instanceId: this._instanceId,\n handler: () => {\n this._unsubscribeFromEvents(notification);\n }\n });\n }\n\n private _unsubscribeFromEvents(notification: NotificationType): void {\n notification.unsubscribeFromEvents(this._instanceId);\n }\n\n private _setTimer(): void {\n this._timer = setTimeout(() => {\n this._startDismissing();\n }, this.props.notification.autoDismissTimeout!);\n }\n\n private _clearTimer(): void {\n if (!ObjectExtensions.isNullOrUndefined(this._timer)) {\n clearTimeout(this._timer);\n }\n }\n\n private _startDismissing(): void {\n this.props.notification.startDismissing();\n }\n\n private _preventDismissingHandler(): void {\n this._clearTimer();\n this._updateState();\n }\n\n private _preventDismissing(): void {\n this.props.notification.preventDismissing();\n }\n\n private _finishDismissing(): void {\n this.props.notification.finishDismissing();\n this._updateState();\n }\n\n private _updateState(): void {\n this.setState({ isDismissing: this.props.notification.isDismissing, isDismissed: this.props.notification.isDismissed });\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nimport { BaseNotification, IClosableNotification } from '../../notifications-data-instances';\nimport { BaseNotificationComponent, INotificationElementProps } from './base-notification-component';\n\nexport interface INotificationCloseButtonState {\n isClosed: boolean;\n}\n\nexport interface INotificationCloseButtonProps extends INotificationElementProps { }\n\n/**\n * Represents a close button for the notification which triggers notification.close().\n */\nexport class NotificationCloseButton\n extends BaseNotificationComponent, INotificationCloseButtonState> {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-notification-close';\n\n public constructor(props: INotificationCloseButtonProps) {\n super(props);\n this._close = this._close.bind(this);\n this.state = {\n isClosed: false\n };\n }\n\n public render(): React.ReactNode {\n return (\n \n );\n }\n\n private _close(): void {\n this.props.notification.close();\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nimport { BaseNotification } from '../../notifications-data-instances';\nimport { BaseNotificationComponent, INotificationElementProps } from './base-notification-component';\n\n/**\n * Represents the component which composes the body of a notification.\n */\nexport class NotificationContent extends BaseNotificationComponent> {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-notification-content';\n\n public constructor(props: INotificationElementProps) {\n super(props);\n }\n\n public render(): React.ReactNode {\n return (\n
\n {this.props.children}\n
\n );\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { RichTextComponent } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { BaseNotification, IDescriptiveNotification } from '../../notifications-data-instances';\nimport { BaseNotificationComponent, INotificationElementProps } from './base-notification-component';\n\n/**\n * Displays notification description lines.\n */\nexport class NotificationDescription extends BaseNotificationComponent> {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-notification-description';\n\n public constructor(props: INotificationElementProps) {\n super(props);\n }\n\n public render(): React.ReactNode {\n if (!ArrayExtensions.hasElements(this.props.notification.descriptionLines)) {\n return null;\n }\n\n return (\n
\n {\n this.props.notification.descriptionLines.map((line, index) => {\n if (StringExtensions.isNullOrWhitespace(line.toString())) {\n return null;\n }\n return (\n \n );\n })\n }\n {this.props.children}\n
\n );\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nimport { BaseNotification } from '../../notifications-data-instances';\nimport { BaseNotificationComponent, INotificationElementProps } from './base-notification-component';\n\n/**\n * Displays footer of the notification.\n * Usually footer is used for extra actions.\n */\nexport class NotificationFooter extends BaseNotificationComponent> {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-notification-footer';\n\n public constructor(props: INotificationElementProps) {\n super(props);\n }\n\n public render(): React.ReactNode {\n return (\n
\n {this.props.children}\n
\n );\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport React, { ReactNode } from 'react';\n\nimport { BaseNotification } from '../../notifications-data-instances';\nimport { BaseNotificationComponent, INotificationElementProps } from './base-notification-component';\n\n/**\n * Displays header of the notification.\n * Usually header is used for displaying the title and close X button.\n */\nexport class NotificationHeader extends BaseNotificationComponent> {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-notification-header';\n\n public constructor(props: INotificationElementProps) {\n super(props);\n }\n\n public render(): ReactNode {\n return (\n
\n {this.props.children}\n
\n );\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport React, { ReactNode } from 'react';\n\nimport { BaseNotification } from '../../notifications-data-instances';\nimport { BaseNotificationComponent, INotificationElementProps } from './base-notification-component';\n\n/**\n * Represents the notification body which is displayed to the user.\n * It should include header, content, footer.\n */\nexport class NotificationInstance extends BaseNotificationComponent> {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-notification-instance';\n\n public constructor(props: INotificationElementProps) {\n super(props);\n }\n\n public render(): ReactNode {\n return (\n
\n {this.props.children}\n
\n );\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { RichTextComponent } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { BaseNotification, ITitledNotification } from '../../notifications-data-instances';\nimport { BaseNotificationComponent, INotificationElementProps } from './base-notification-component';\n\n/**\n * Props for the notification title component.\n */\nexport interface INotificationTitleProps extends INotificationElementProps {\n\n /**\n * Represents a node which should be displayed before the title. Optional field.\n */\n preChildren?: React.ReactNode;\n\n /**\n * Represents a node which should be displayed after the title. Optional field.\n */\n postChildren?: React.ReactNode;\n}\n\n/**\n * Renders notification title.\n */\nexport class NotificationTitle extends BaseNotificationComponent> {\n /**\n * The class for the styles.\n */\n public static readonly className: string = 'msc-notification-title';\n\n public constructor(props: INotificationTitleProps) {\n super(props);\n }\n\n public render(): React.ReactNode {\n return (\n
\n {this.props.preChildren}\n \n {this.props.postChildren}\n
\n );\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Event } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { BaseNotification } from './base-notification';\nimport { NotificationEvents } from './events';\n\n/**\n * Specifies the timeouts in milliseconds used for the dismissing.\n */\nexport enum DismissTimeout {\n\n /**\n * Default timeout which should be used for most of the notification.\n */\n Default = 10000\n}\n\n/**\n * Represents a notification which can be automatically dismissed.\n * @remark Dismissing means automatically hiding the notification after some specific delay.\n */\nexport abstract class DismissibleNotification extends BaseNotification {\n /**\n * Shows that the notification is in progress of dismissing when dismissing animation is in progress.\n * @remark The process can be prevented by hovering on a notification.\n */\n public get isDismissing(): boolean {\n return this._isDismissing;\n }\n\n /**\n * Shows that the notification is fully dismissed and is hidden to user now.\n * The notification can be removed from the list and disposed.\n */\n public get isDismissed(): boolean {\n return this._isDismissed;\n }\n\n /**\n * Specifies the delay in milliseconds for the notification.\n * @remarks Using `DismissTimeout` is preferable.\n */\n public readonly autoDismissTimeout: DismissTimeout | number | null;\n\n /**\n * Specifies if the dismissing should be delayed (the timer should be reset) when user hovers on the notification.\n * True by default. Use false when notification should be dismissed regardless if user wants to interact with it or not (e.g. For limited time offers).\n */\n public readonly shouldResetOnHover: boolean;\n\n /**\n * Shows that the notification is in progress of dismissing when dismissing animation is in progress.\n * @remark The process can be prevented by hovering on a notification.\n */\n protected _isDismissing: boolean;\n\n /**\n * Shows that the notification is fully dismissed and is hidden to user now.\n * The notification can be removed from the list and disposed.\n */\n protected _isDismissed: boolean;\n\n /**\n * Initializes events and sets the delays for the dismissing.\n * @param {DismissTimeout | number} autoDismissTimeout The delay in milliseconds after which the notification should start play the hiding animation.\n * By default refers to `DismissTimeout.Default`.\n * Prefer using `DismissTimeout` than specifying the number.\n * @param {boolean} shouldResetOnHover Flag which specifies if the dismissing should be delayed (the timer should be reset) when user hovers on the notification.\n * True by default. Use false when notification should be dismissed regardless if user wants to interact with it or not (e.g. for limited time offers).\n */\n public constructor(autoDismissTimeout: DismissTimeout | number | null = DismissTimeout.Default, shouldResetOnHover: boolean = true) {\n if (autoDismissTimeout === null && shouldResetOnHover) {\n throw new Error('Invalid parameters passed for dismissible notification. shouldResetOnHover = true is incompatible with autoDismissTimeout = null.');\n }\n\n super();\n\n this.autoDismissTimeout = autoDismissTimeout;\n this.shouldResetOnHover = shouldResetOnHover;\n\n this._isDismissed = false;\n this._isDismissing = false;\n\n this.events.setValue(NotificationEvents.StartDismissing, new Event());\n this.events.setValue(NotificationEvents.PreventDismissing, new Event());\n this.events.setValue(NotificationEvents.FinishDismissing, new Event());\n }\n\n /**\n * Starts dismissing process by updating the `isDismissing` field and triggering the start dismissing event.\n */\n public startDismissing(): void {\n this._isDismissing = true;\n this.events.getValue(NotificationEvents.StartDismissing)?.trigger();\n }\n\n /**\n * Prevents dismissing process by updating the `isDismissing` field and triggering the prevent dismissing event.\n */\n public preventDismissing(): void {\n this._isDismissing = false;\n this.events.getValue(NotificationEvents.PreventDismissing)?.trigger();\n }\n\n /**\n * Finishes dismissing process by updating the `isDismissing` and `isDismissed` fields,\n * triggers the finish dismissing event,\n * removes the notification from the list as it should be hidden already.\n */\n public finishDismissing(): void {\n this._isDismissing = false;\n this._isDismissed = true;\n this.events.getValue(NotificationEvents.FinishDismissing)?.trigger();\n this.remove();\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nexport * from './base';\nexport * from './system-notifications';\n"],"sourceRoot":""}