mn-angular-lib 0.0.9 → 0.0.10

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.
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, Optional, Inject, inject, Input, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, Optional, Inject, Input, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { BehaviorSubject } from 'rxjs';
4
4
  import * as i1 from '@angular/common';
5
- import { CommonModule } from '@angular/common';
5
+ import { CommonModule, NgStyle } from '@angular/common';
6
6
 
7
7
  const MN_THEME_DEFAULTS = {
8
8
  primary: '#0d6efd',
@@ -19,6 +19,10 @@ function provideMnTheme(partial) {
19
19
  useValue: { ...MN_THEME_DEFAULTS, ...partial },
20
20
  };
21
21
  }
22
+ function injectTheme() {
23
+ const t = inject(MN_THEME, { optional: true });
24
+ return t ?? MN_THEME_DEFAULTS;
25
+ }
22
26
 
23
27
  // projects/mn-angular-lib/src/lib/mn-mn-alert/mn-mn-alert.tokens.ts
24
28
  const MN_ALERT_CONFIG = new InjectionToken('MN_ALERT_CONFIG');
@@ -203,6 +207,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
203
207
  args: [{ required: true }]
204
208
  }] } });
205
209
 
210
+ class Test {
211
+ theme = injectTheme();
212
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Test, deps: [], target: i0.ɵɵFactoryTarget.Component });
213
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.9", type: Test, isStandalone: true, selector: "lib-test", ngImport: i0, template: "<p [ngStyle]=\"{'color' : theme.primary }\">test works!</p>\n", styles: [""], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
214
+ }
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: Test, decorators: [{
216
+ type: Component,
217
+ args: [{ selector: 'lib-test', imports: [
218
+ NgStyle
219
+ ], template: "<p [ngStyle]=\"{'color' : theme.primary }\">test works!</p>\n" }]
220
+ }] });
221
+
206
222
  /*
207
223
  * Public API Surface of mn-lib
208
224
  */
@@ -211,5 +227,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImpor
211
227
  * Generated bundle index. Do not edit.
212
228
  */
213
229
 
214
- export { DEFAULT_MN_ALERT_CONFIG, MN_ALERT_CONFIG, MN_THEME, MN_THEME_DEFAULTS, MnAlertOutletComponent, MnAlertService, MnAlertStore, provideMnAlerts, provideMnTheme };
230
+ export { DEFAULT_MN_ALERT_CONFIG, MN_ALERT_CONFIG, MN_THEME, MN_THEME_DEFAULTS, MnAlertOutletComponent, MnAlertService, MnAlertStore, Test, injectTheme, provideMnAlerts, provideMnTheme };
215
231
  //# sourceMappingURL=mn-angular-lib.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mn-angular-lib.mjs","sources":["../../../projects/mn-angular-lib/src/lib/styles/themes.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert.tokens.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert.providers.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert.store.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert.service.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert-outlet/mn-alert-outlet.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert-outlet/mn-alert-outlet.html","../../../projects/mn-angular-lib/src/public-api.ts","../../../projects/mn-angular-lib/src/mn-angular-lib.ts"],"sourcesContent":[" import { InjectionToken, inject } from '@angular/core';\n\n export interface MnTheme {\n primary: string;\n radius: string;\n padding: string;\n }\n\n export const MN_THEME_DEFAULTS: MnTheme = {\n primary: '#0d6efd',\n radius: '0.375rem',\n padding: '0.5rem 0.75rem',\n };\n\n export const MN_THEME = new InjectionToken<MnTheme>('MN_THEME', {\n providedIn: 'root',\n factory: () => MN_THEME_DEFAULTS,\n });\n\n export function provideMnTheme(partial: Partial<MnTheme>) {\n return {\n provide: MN_THEME,\n useValue: { ...MN_THEME_DEFAULTS, ...partial },\n };\n }\n","// projects/mn-angular-lib/src/lib/mn-mn-alert/mn-mn-alert.tokens.ts\nimport { InjectionToken } from '@angular/core';\nimport { MnAlert } from './mn-alert.types';\n\nexport type MnAlertKind = 'success' | 'info' | 'warning' | 'error' | 'default';\n\nexport interface MnAlertConfig {\n durations?: Partial<Record<MnAlertKind, number | null>>;\n cssClasses?: Partial<Record<MnAlertKind, string>>;\n icons?: Partial<Record<MnAlertKind, unknown>>;\n defaultDuration?: number | null;\n finalize?: (a: MnAlert) => MnAlert;\n}\n\nexport const MN_ALERT_CONFIG = new InjectionToken<MnAlertConfig>('MN_ALERT_CONFIG');\n\nexport const DEFAULT_MN_ALERT_CONFIG: Required<MnAlertConfig> = {\n durations: { success: 3000, info: 4000, warning: 5000, error: 7000, default: 4000 },\n cssClasses: {\n success: 'mn-alert-success',\n info: 'mn-alert-info',\n warning: 'mn-alert-warning',\n error: 'mn-alert-error',\n default: 'alert'\n },\n icons: {},\n defaultDuration: 4000,\n finalize: (a) => a\n};\n","// projects/mn-angular-lib/src/lib/mn-mn-alert/mn-mn-alert.providers.ts\nimport { Provider } from '@angular/core';\nimport { MN_ALERT_CONFIG, MnAlertConfig, DEFAULT_MN_ALERT_CONFIG } from './mn-alert.tokens';\n\nexport function provideMnAlerts(config: MnAlertConfig = {}): Provider {\n const merged: MnAlertConfig = {\n ...DEFAULT_MN_ALERT_CONFIG,\n ...config,\n durations: { ...DEFAULT_MN_ALERT_CONFIG.durations, ...(config.durations ?? {}) },\n cssClasses: { ...DEFAULT_MN_ALERT_CONFIG.cssClasses, ...(config.cssClasses ?? {}) },\n icons: { ...DEFAULT_MN_ALERT_CONFIG.icons, ...(config.icons ?? {}) }\n };\n return { provide: MN_ALERT_CONFIG, useValue: merged };\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { MnAlert, MnAlertId } from './mn-alert.types';\nimport { DEFAULT_MN_ALERT_CONFIG } from './mn-alert.tokens';\n\nlet COUNTER = 0;\nconst uid = () => `mn_${++COUNTER}`;\n\n@Injectable({ providedIn: 'root' })\nexport class MnAlertStore {\n private readonly _alerts$ = new BehaviorSubject<MnAlert[]>([]);\n readonly alerts$ = this._alerts$.asObservable();\n\n show(partial: Omit<MnAlert, 'id'>): MnAlertId {\n // Ensure every alert has a numeric duration: use provided or fall back to per-kind default\n const computedDuration = (partial as any).duration ?? (DEFAULT_MN_ALERT_CONFIG.durations as any)[(partial as any).kind] ?? DEFAULT_MN_ALERT_CONFIG.defaultDuration;\n const a: MnAlert = { id: uid(), ...partial, duration: computedDuration } as MnAlert;\n this._alerts$.next([...this._alerts$.value, a]);\n\n if (typeof a.duration === 'number' && a.duration > 0) {\n setTimeout(() => this.dismiss(a.id), a.duration);\n }\n return a.id;\n }\n\n dismiss(id: MnAlertId) {\n const list = this._alerts$.value;\n if (list.some(x => x.id === id)) {\n this._alerts$.next(list.filter(x => x.id !== id));\n }\n }\n\n clear() {\n this._alerts$.next([]);\n }\n}\n","// projects/mn-angular-lib/src/lib/mn-mn-alert/mn-mn-alert.service.ts\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { MnAlertStore } from './mn-alert.store';\nimport { MnAlert, MnAlertId } from './mn-alert.types';\nimport { MN_ALERT_CONFIG, DEFAULT_MN_ALERT_CONFIG, MnAlertConfig, MnAlertKind } from './mn-alert.tokens';\n\nexport interface MnShowInput {\n title: string;\n subTitle?: string;\n duration?: number;\n icon?: unknown;\n cssClass?: string;\n meta?: Record<string, unknown>;\n kind: MnAlertKind;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MnAlertService {\n private readonly cfg: Required<MnAlertConfig>;\n private readonly userDurations?: Partial<Record<MnAlertKind, number | null>>;\n private readonly hasUserDurations: boolean;\n\n constructor(\n private readonly store: MnAlertStore,\n @Optional() @Inject(MN_ALERT_CONFIG) cfg: MnAlertConfig | null\n ) {\n this.userDurations = cfg?.durations;\n this.hasUserDurations = !!cfg?.durations;\n this.cfg = {\n ...DEFAULT_MN_ALERT_CONFIG,\n ...(cfg ?? {}),\n // Do not pre-merge durations; keep defaults separate and use logic in kind()\n durations: DEFAULT_MN_ALERT_CONFIG.durations,\n cssClasses: { ...DEFAULT_MN_ALERT_CONFIG.cssClasses, ...(cfg?.cssClasses ?? {}) },\n icons: { ...DEFAULT_MN_ALERT_CONFIG.icons, ...(cfg?.icons ?? {}) }\n };\n }\n\n show(input: MnShowInput): MnAlertId {\n // Always ensure a numeric duration is set\n let duration = input.duration;\n if (duration == null) {\n // Prefer user defaultDuration if provided and not null, otherwise use library per-kind default\n const userDefault = this.cfg.defaultDuration;\n if (typeof userDefault === 'number') {\n duration = userDefault;\n } else {\n duration = DEFAULT_MN_ALERT_CONFIG.durations[input.kind as keyof typeof DEFAULT_MN_ALERT_CONFIG.durations] as number;\n }\n }\n\n const a: Omit<MnAlert, 'id'> = {\n title: input.title,\n subTitle: input.subTitle,\n duration,\n icon: input.icon,\n cssClass: input.cssClass,\n meta: input.meta,\n kind: input.kind\n };\n return this.store.show(this.cfg.finalize(a as MnAlert));\n }\n\n success(title: string, subTitle?: string, extra?: Partial<MnShowInput>) {\n return this.kind('success', title, subTitle, extra);\n }\n info(title: string, subTitle?: string, extra?: Partial<MnShowInput>) {\n return this.kind('info', title, subTitle, extra);\n }\n warning(title: string, subTitle?: string, extra?: Partial<MnShowInput>) {\n return this.kind('warning', title, subTitle, extra);\n }\n error(title: string, subTitle?: string, extra?: Partial<MnShowInput>) {\n return this.kind('error', title, subTitle, extra);\n }\n\n dismiss(id: MnAlertId) { this.store.dismiss(id); }\n clear() { this.store.clear(); }\n\n private kind(kind: MnAlertKind, title: string, subTitle?: string, extra?: Partial<MnShowInput>) {\n let duration: number | null | undefined = extra?.duration;\n\n if (duration == null) {\n if (this.hasUserDurations) {\n const userDur = this.userDurations?.[kind];\n if (typeof userDur === 'number') {\n duration = userDur;\n } else {\n // userDur is undefined or null -> fallback to user defaultDuration if numeric\n if (typeof this.cfg.defaultDuration === 'number') {\n duration = this.cfg.defaultDuration;\n } else {\n duration = this.cfg.durations[kind as keyof typeof this.cfg.durations];\n }\n }\n } else {\n // No user durations provided at all; use library defaults per kind\n duration = this.cfg.durations[kind as keyof typeof this.cfg.durations];\n }\n }\n\n const cssClass = extra?.cssClass ?? this.cfg.cssClasses[kind];\n const icon = (extra?.icon ?? this.cfg.icons[kind]) as unknown;\n\n return this.show({ title, subTitle, duration: duration as number, cssClass, icon, meta: extra?.meta , kind: kind});\n }\n}\n","\nimport {Component, Input, TemplateRef, ChangeDetectionStrategy, inject} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Observable } from 'rxjs';\nimport {MnAlertStore} from '../mn-alert.store';\nimport {MnAlert} from '../mn-alert.types';\n\nexport interface MnAlertTemplateContext {\n $implicit: MnAlert;\n alert: MnAlert;\n dismiss: () => void;\n}\n\n@Component({\n selector: 'mn-alert-outlet',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './mn-alert-outlet.html',\n styleUrl: './mn-alert-outlet.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MnAlertOutletComponent {\n @Input({ required: true }) template!: TemplateRef<MnAlertTemplateContext>;\n\n private store = inject(MnAlertStore);\n alerts$: Observable<MnAlert[]> = this.store.alerts$;\n\n constructor() {}\n\n dismissAlert(id: string) {\n this.store.dismiss(id);\n }\n\n trackById = (_: number, a: MnAlert) => a.id;\n\n contextFor(a: MnAlert) {\n return {\n $implicit: a,\n alert: a,\n dismiss: () => this.dismissAlert(a.id)\n } as const;\n }\n\n}\n","@if (alerts$ | async; as alerts) {\n @for (a of alerts; track trackById) {\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"contextFor(a)\">\n </ng-container>\n }\n}\n","/*\n * Public API Surface of mn-lib\n */\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mn-angular-lib.mjs","sources":["../../../projects/mn-angular-lib/src/lib/styles/themes.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert.tokens.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert.providers.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert.store.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert.service.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert-outlet/mn-alert-outlet.ts","../../../projects/mn-angular-lib/src/lib/features/mn-alert/mn-alert-outlet/mn-alert-outlet.html","../../../projects/mn-angular-lib/src/lib/features/test/test.ts","../../../projects/mn-angular-lib/src/lib/features/test/test.html","../../../projects/mn-angular-lib/src/public-api.ts","../../../projects/mn-angular-lib/src/mn-angular-lib.ts"],"sourcesContent":[" import { InjectionToken, inject } from '@angular/core';\n\n export interface MnTheme {\n primary: string;\n radius: string;\n padding: string;\n }\n\n export const MN_THEME_DEFAULTS: MnTheme = {\n primary: '#0d6efd',\n radius: '0.375rem',\n padding: '0.5rem 0.75rem',\n };\n\n export const MN_THEME = new InjectionToken<MnTheme>('MN_THEME', {\n providedIn: 'root',\n factory: () => MN_THEME_DEFAULTS,\n });\n\n export function provideMnTheme(partial: Partial<MnTheme>) {\n return {\n provide: MN_THEME,\n useValue: { ...MN_THEME_DEFAULTS, ...partial },\n };\n }\n\n export function injectTheme(): MnTheme {\n const t = inject<MnTheme>(MN_THEME, { optional: true });\n return t ?? MN_THEME_DEFAULTS;\n }\n","// projects/mn-angular-lib/src/lib/mn-mn-alert/mn-mn-alert.tokens.ts\nimport { InjectionToken } from '@angular/core';\nimport { MnAlert } from './mn-alert.types';\n\nexport type MnAlertKind = 'success' | 'info' | 'warning' | 'error' | 'default';\n\nexport interface MnAlertConfig {\n durations?: Partial<Record<MnAlertKind, number | null>>;\n cssClasses?: Partial<Record<MnAlertKind, string>>;\n icons?: Partial<Record<MnAlertKind, unknown>>;\n defaultDuration?: number | null;\n finalize?: (a: MnAlert) => MnAlert;\n}\n\nexport const MN_ALERT_CONFIG = new InjectionToken<MnAlertConfig>('MN_ALERT_CONFIG');\n\nexport const DEFAULT_MN_ALERT_CONFIG: Required<MnAlertConfig> = {\n durations: { success: 3000, info: 4000, warning: 5000, error: 7000, default: 4000 },\n cssClasses: {\n success: 'mn-alert-success',\n info: 'mn-alert-info',\n warning: 'mn-alert-warning',\n error: 'mn-alert-error',\n default: 'alert'\n },\n icons: {},\n defaultDuration: 4000,\n finalize: (a) => a\n};\n","// projects/mn-angular-lib/src/lib/mn-mn-alert/mn-mn-alert.providers.ts\nimport { Provider } from '@angular/core';\nimport { MN_ALERT_CONFIG, MnAlertConfig, DEFAULT_MN_ALERT_CONFIG } from './mn-alert.tokens';\n\nexport function provideMnAlerts(config: MnAlertConfig = {}): Provider {\n const merged: MnAlertConfig = {\n ...DEFAULT_MN_ALERT_CONFIG,\n ...config,\n durations: { ...DEFAULT_MN_ALERT_CONFIG.durations, ...(config.durations ?? {}) },\n cssClasses: { ...DEFAULT_MN_ALERT_CONFIG.cssClasses, ...(config.cssClasses ?? {}) },\n icons: { ...DEFAULT_MN_ALERT_CONFIG.icons, ...(config.icons ?? {}) }\n };\n return { provide: MN_ALERT_CONFIG, useValue: merged };\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { MnAlert, MnAlertId } from './mn-alert.types';\nimport { DEFAULT_MN_ALERT_CONFIG } from './mn-alert.tokens';\n\nlet COUNTER = 0;\nconst uid = () => `mn_${++COUNTER}`;\n\n@Injectable({ providedIn: 'root' })\nexport class MnAlertStore {\n private readonly _alerts$ = new BehaviorSubject<MnAlert[]>([]);\n readonly alerts$ = this._alerts$.asObservable();\n\n show(partial: Omit<MnAlert, 'id'>): MnAlertId {\n // Ensure every alert has a numeric duration: use provided or fall back to per-kind default\n const computedDuration = (partial as any).duration ?? (DEFAULT_MN_ALERT_CONFIG.durations as any)[(partial as any).kind] ?? DEFAULT_MN_ALERT_CONFIG.defaultDuration;\n const a: MnAlert = { id: uid(), ...partial, duration: computedDuration } as MnAlert;\n this._alerts$.next([...this._alerts$.value, a]);\n\n if (typeof a.duration === 'number' && a.duration > 0) {\n setTimeout(() => this.dismiss(a.id), a.duration);\n }\n return a.id;\n }\n\n dismiss(id: MnAlertId) {\n const list = this._alerts$.value;\n if (list.some(x => x.id === id)) {\n this._alerts$.next(list.filter(x => x.id !== id));\n }\n }\n\n clear() {\n this._alerts$.next([]);\n }\n}\n","// projects/mn-angular-lib/src/lib/mn-mn-alert/mn-mn-alert.service.ts\nimport { Injectable, Inject, Optional } from '@angular/core';\nimport { MnAlertStore } from './mn-alert.store';\nimport { MnAlert, MnAlertId } from './mn-alert.types';\nimport { MN_ALERT_CONFIG, DEFAULT_MN_ALERT_CONFIG, MnAlertConfig, MnAlertKind } from './mn-alert.tokens';\n\nexport interface MnShowInput {\n title: string;\n subTitle?: string;\n duration?: number;\n icon?: unknown;\n cssClass?: string;\n meta?: Record<string, unknown>;\n kind: MnAlertKind;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MnAlertService {\n private readonly cfg: Required<MnAlertConfig>;\n private readonly userDurations?: Partial<Record<MnAlertKind, number | null>>;\n private readonly hasUserDurations: boolean;\n\n constructor(\n private readonly store: MnAlertStore,\n @Optional() @Inject(MN_ALERT_CONFIG) cfg: MnAlertConfig | null\n ) {\n this.userDurations = cfg?.durations;\n this.hasUserDurations = !!cfg?.durations;\n this.cfg = {\n ...DEFAULT_MN_ALERT_CONFIG,\n ...(cfg ?? {}),\n // Do not pre-merge durations; keep defaults separate and use logic in kind()\n durations: DEFAULT_MN_ALERT_CONFIG.durations,\n cssClasses: { ...DEFAULT_MN_ALERT_CONFIG.cssClasses, ...(cfg?.cssClasses ?? {}) },\n icons: { ...DEFAULT_MN_ALERT_CONFIG.icons, ...(cfg?.icons ?? {}) }\n };\n }\n\n show(input: MnShowInput): MnAlertId {\n // Always ensure a numeric duration is set\n let duration = input.duration;\n if (duration == null) {\n // Prefer user defaultDuration if provided and not null, otherwise use library per-kind default\n const userDefault = this.cfg.defaultDuration;\n if (typeof userDefault === 'number') {\n duration = userDefault;\n } else {\n duration = DEFAULT_MN_ALERT_CONFIG.durations[input.kind as keyof typeof DEFAULT_MN_ALERT_CONFIG.durations] as number;\n }\n }\n\n const a: Omit<MnAlert, 'id'> = {\n title: input.title,\n subTitle: input.subTitle,\n duration,\n icon: input.icon,\n cssClass: input.cssClass,\n meta: input.meta,\n kind: input.kind\n };\n return this.store.show(this.cfg.finalize(a as MnAlert));\n }\n\n success(title: string, subTitle?: string, extra?: Partial<MnShowInput>) {\n return this.kind('success', title, subTitle, extra);\n }\n info(title: string, subTitle?: string, extra?: Partial<MnShowInput>) {\n return this.kind('info', title, subTitle, extra);\n }\n warning(title: string, subTitle?: string, extra?: Partial<MnShowInput>) {\n return this.kind('warning', title, subTitle, extra);\n }\n error(title: string, subTitle?: string, extra?: Partial<MnShowInput>) {\n return this.kind('error', title, subTitle, extra);\n }\n\n dismiss(id: MnAlertId) { this.store.dismiss(id); }\n clear() { this.store.clear(); }\n\n private kind(kind: MnAlertKind, title: string, subTitle?: string, extra?: Partial<MnShowInput>) {\n let duration: number | null | undefined = extra?.duration;\n\n if (duration == null) {\n if (this.hasUserDurations) {\n const userDur = this.userDurations?.[kind];\n if (typeof userDur === 'number') {\n duration = userDur;\n } else {\n // userDur is undefined or null -> fallback to user defaultDuration if numeric\n if (typeof this.cfg.defaultDuration === 'number') {\n duration = this.cfg.defaultDuration;\n } else {\n duration = this.cfg.durations[kind as keyof typeof this.cfg.durations];\n }\n }\n } else {\n // No user durations provided at all; use library defaults per kind\n duration = this.cfg.durations[kind as keyof typeof this.cfg.durations];\n }\n }\n\n const cssClass = extra?.cssClass ?? this.cfg.cssClasses[kind];\n const icon = (extra?.icon ?? this.cfg.icons[kind]) as unknown;\n\n return this.show({ title, subTitle, duration: duration as number, cssClass, icon, meta: extra?.meta , kind: kind});\n }\n}\n","\nimport {Component, Input, TemplateRef, ChangeDetectionStrategy, inject} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Observable } from 'rxjs';\nimport {MnAlertStore} from '../mn-alert.store';\nimport {MnAlert} from '../mn-alert.types';\n\nexport interface MnAlertTemplateContext {\n $implicit: MnAlert;\n alert: MnAlert;\n dismiss: () => void;\n}\n\n@Component({\n selector: 'mn-alert-outlet',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './mn-alert-outlet.html',\n styleUrl: './mn-alert-outlet.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MnAlertOutletComponent {\n @Input({ required: true }) template!: TemplateRef<MnAlertTemplateContext>;\n\n private store = inject(MnAlertStore);\n alerts$: Observable<MnAlert[]> = this.store.alerts$;\n\n constructor() {}\n\n dismissAlert(id: string) {\n this.store.dismiss(id);\n }\n\n trackById = (_: number, a: MnAlert) => a.id;\n\n contextFor(a: MnAlert) {\n return {\n $implicit: a,\n alert: a,\n dismiss: () => this.dismissAlert(a.id)\n } as const;\n }\n\n}\n","@if (alerts$ | async; as alerts) {\n @for (a of alerts; track trackById) {\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"contextFor(a)\">\n </ng-container>\n }\n}\n","import {Component, inject} from '@angular/core';\nimport {injectTheme, MnTheme} from '../../styles';\nimport {NgStyle} from '@angular/common';\n\n@Component({\n selector: 'lib-test',\n imports: [\n NgStyle\n ],\n templateUrl: './test.html',\n styleUrl: './test.css',\n})\nexport class Test {\n theme: MnTheme = injectTheme();\n}\n","<p [ngStyle]=\"{'color' : theme.primary }\">test works!</p>\n","/*\n * Public API Surface of mn-lib\n */\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -18,6 +18,7 @@ declare function provideMnTheme(partial: Partial<MnTheme>): {
18
18
  padding: string;
19
19
  };
20
20
  };
21
+ declare function injectTheme(): MnTheme;
21
22
 
22
23
  type MnAlertId = string;
23
24
  interface MnAlert {
@@ -102,5 +103,11 @@ declare class MnAlertOutletComponent {
102
103
  static ɵcmp: i0.ɵɵComponentDeclaration<MnAlertOutletComponent, "mn-alert-outlet", never, { "template": { "alias": "template"; "required": true; }; }, {}, never, never, true, never>;
103
104
  }
104
105
 
105
- export { DEFAULT_MN_ALERT_CONFIG, MN_ALERT_CONFIG, MN_THEME, MN_THEME_DEFAULTS, MnAlertOutletComponent, MnAlertService, MnAlertStore, provideMnAlerts, provideMnTheme };
106
+ declare class Test {
107
+ theme: MnTheme;
108
+ static ɵfac: i0.ɵɵFactoryDeclaration<Test, never>;
109
+ static ɵcmp: i0.ɵɵComponentDeclaration<Test, "lib-test", never, {}, {}, never, never, true, never>;
110
+ }
111
+
112
+ export { DEFAULT_MN_ALERT_CONFIG, MN_ALERT_CONFIG, MN_THEME, MN_THEME_DEFAULTS, MnAlertOutletComponent, MnAlertService, MnAlertStore, Test, injectTheme, provideMnAlerts, provideMnTheme };
106
113
  export type { MnAlert, MnAlertConfig, MnAlertId, MnAlertKind, MnAlertTemplateContext, MnShowInput, MnTheme };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mn-angular-lib",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0",
6
6
  "@angular/core": "^20.3.0"