@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
51 lines • 8.05 kB
JavaScript
import { inject, InjectionToken } from '@angular/core';
import { TUI_IS_MOBILE } from '@taiga-ui/cdk/tokens';
import { TUI_NOTIFICATION_OPTIONS } from '@taiga-ui/core/components/notification';
import { BehaviorSubject, combineLatest, map, of } from 'rxjs';
export const TUI_ALERT_DEFAULT_OPTIONS = {
autoClose: 3000,
label: '',
closeable: true,
data: undefined,
};
export const TUI_ALERT_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_ALERT_OPTIONS' : '', {
factory: () => ({
...TUI_ALERT_DEFAULT_OPTIONS,
...inject(TUI_NOTIFICATION_OPTIONS),
}),
});
export const TUI_ALERT_POSITION = new InjectionToken(ngDevMode ? 'TUI_ALERT_POSITION' : '', {
factory: () => (inject(TUI_IS_MOBILE) ? '1rem 1rem 0 auto' : '2rem 3rem 0 auto'),
});
export const TUI_ALERTS = new InjectionToken(ngDevMode ? 'TUI_ALERTS' : '', {
factory: () => new BehaviorSubject([]),
});
/**
* Grouping alerts by their component
*/
export const TUI_ALERTS_GROUPED = new InjectionToken(ngDevMode ? 'TUI_ALERTS_GROUPED' : '', {
factory: () => combineLatest([
of(new Map()),
inject(TUI_ALERTS),
]).pipe(map(([map, alerts]) => {
map.forEach((_, key) => map.set(key, []));
alerts.forEach((alert) => {
const key = alert.component.component;
const value = map.get(key) || [];
map.set(key, [...value, alert]);
});
return Array.from(map.values());
})),
});
export function tuiAlertOptionsProvider(options) {
return {
provide: TUI_ALERT_OPTIONS,
useFactory: () => ({
...TUI_ALERT_DEFAULT_OPTIONS,
...(inject(TUI_ALERT_OPTIONS, { optional: true, skipSelf: true }) ||
inject(TUI_NOTIFICATION_OPTIONS)),
...options,
}),
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQudG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LnRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLE1BQU0sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFJN0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQWlEO0lBQ25GLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFQUFFLEVBQUU7SUFDVCxTQUFTLEVBQUUsSUFBSTtJQUNmLElBQUksRUFBRSxTQUFTO0NBQ2xCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FDL0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNwQztJQUNJLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ1osR0FBRyx5QkFBeUI7UUFDNUIsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUM7S0FDdEMsQ0FBQztDQUNMLENBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUNoRCxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3JDO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUM7Q0FDbkYsQ0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDeEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksZUFBZSxDQUFzQyxFQUFFLENBQUM7Q0FDOUUsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FDaEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNyQztJQUNJLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FDVixhQUFhLENBQUM7UUFDVixFQUFFLENBQUMsSUFBSSxHQUFHLEVBQWtELENBQUM7UUFDN0QsTUFBTSxDQUFDLFVBQVUsQ0FBQztLQUNyQixDQUFDLENBQUMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUU7UUFDbEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFMUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRWpDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FDTDtDQUNSLENBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSx1QkFBdUIsQ0FDbkMsT0FBaUM7SUFFakMsT0FBTztRQUNILE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsVUFBVSxFQUFFLEdBQW9CLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLEdBQUcseUJBQXlCO1lBQzVCLEdBQUcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztnQkFDM0QsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDckMsR0FBRyxPQUFPO1NBQ2IsQ0FBQztLQUNMLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0eXBlIEZhY3RvcnlQcm92aWRlciwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgdHlwZSBUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHlwZSBUdWlQb3BvdmVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3NlcnZpY2VzJztcbmltcG9ydCB7VFVJX0lTX01PQklMRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHtUVUlfTk9USUZJQ0FUSU9OX09QVElPTlN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIG9mfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHt0eXBlIFR1aUFsZXJ0T3B0aW9uc30gZnJvbSAnLi9hbGVydC5pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IFRVSV9BTEVSVF9ERUZBVUxUX09QVElPTlM6IE9taXQ8VHVpQWxlcnRPcHRpb25zLCAnYXBwZWFyYW5jZScgfCAnaWNvbic+ID0ge1xuICAgIGF1dG9DbG9zZTogMzAwMCxcbiAgICBsYWJlbDogJycsXG4gICAgY2xvc2VhYmxlOiB0cnVlLFxuICAgIGRhdGE6IHVuZGVmaW5lZCxcbn07XG5cbmV4cG9ydCBjb25zdCBUVUlfQUxFUlRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUdWlBbGVydE9wdGlvbnM+KFxuICAgIG5nRGV2TW9kZSA/ICdUVUlfQUxFUlRfT1BUSU9OUycgOiAnJyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+ICh7XG4gICAgICAgICAgICAuLi5UVUlfQUxFUlRfREVGQVVMVF9PUFRJT05TLFxuICAgICAgICAgICAgLi4uaW5qZWN0KFRVSV9OT1RJRklDQVRJT05fT1BUSU9OUyksXG4gICAgICAgIH0pLFxuICAgIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgVFVJX0FMRVJUX1BPU0lUSU9OID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gICAgbmdEZXZNb2RlID8gJ1RVSV9BTEVSVF9QT1NJVElPTicgOiAnJyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IChpbmplY3QoVFVJX0lTX01PQklMRSkgPyAnMXJlbSAxcmVtIDAgYXV0bycgOiAnMnJlbSAzcmVtIDAgYXV0bycpLFxuICAgIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgVFVJX0FMRVJUUyA9IG5ldyBJbmplY3Rpb25Ub2tlbihuZ0Rldk1vZGUgPyAnVFVJX0FMRVJUUycgOiAnJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVhZG9ubHlBcnJheTxUdWlQb3BvdmVyPGFueSwgYW55Pj4+KFtdKSxcbn0pO1xuXG4vKipcbiAqIEdyb3VwaW5nIGFsZXJ0cyBieSB0aGVpciBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IFRVSV9BTEVSVFNfR1JPVVBFRCA9IG5ldyBJbmplY3Rpb25Ub2tlbihcbiAgICBuZ0Rldk1vZGUgPyAnVFVJX0FMRVJUU19HUk9VUEVEJyA6ICcnLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT5cbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIG9mKG5ldyBNYXA8VHlwZTxhbnk+LCBSZWFkb25seUFycmF5PFR1aVBvcG92ZXI8YW55LCBhbnk+Pj4oKSksXG4gICAgICAgICAgICAgICAgaW5qZWN0KFRVSV9BTEVSVFMpLFxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKFttYXAsIGFsZXJ0c10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbWFwLmZvckVhY2goKF8sIGtleSkgPT4gbWFwLnNldChrZXksIFtdKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgYWxlcnRzLmZvckVhY2goKGFsZXJ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBhbGVydC5jb21wb25lbnQuY29tcG9uZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBtYXAuZ2V0KGtleSkgfHwgW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5zZXQoa2V5LCBbLi4udmFsdWUsIGFsZXJ0XSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKG1hcC52YWx1ZXMoKSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLFxuICAgIH0sXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpQWxlcnRPcHRpb25zUHJvdmlkZXIoXG4gICAgb3B0aW9uczogUGFydGlhbDxUdWlBbGVydE9wdGlvbnM+LFxuKTogRmFjdG9yeVByb3ZpZGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBUVUlfQUxFUlRfT1BUSU9OUyxcbiAgICAgICAgdXNlRmFjdG9yeTogKCk6IFR1aUFsZXJ0T3B0aW9ucyA9PiAoe1xuICAgICAgICAgICAgLi4uVFVJX0FMRVJUX0RFRkFVTFRfT1BUSU9OUyxcbiAgICAgICAgICAgIC4uLihpbmplY3QoVFVJX0FMRVJUX09QVElPTlMsIHtvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWV9KSB8fFxuICAgICAgICAgICAgICAgIGluamVjdChUVUlfTk9USUZJQ0FUSU9OX09QVElPTlMpKSxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH0pLFxuICAgIH07XG59XG4iXX0=