@agnos-ui/angular-headless 0.10.0-next.2 → 0.10.0-next.4
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,6 +1,7 @@
|
|
|
1
1
|
export * from '@agnos-ui/core/services/siblingsInert';
|
|
2
2
|
export * from '@agnos-ui/core/services/resizeObserver';
|
|
3
3
|
export * from '@agnos-ui/core/services/portal';
|
|
4
|
+
export * from '@agnos-ui/core/services/pointerdownPosition';
|
|
4
5
|
export * from '@agnos-ui/core/services/navManager';
|
|
5
6
|
export * from '@agnos-ui/core/services/matchMedia';
|
|
6
7
|
export * from '@agnos-ui/core/services/intersection';
|
|
@@ -9,6 +10,10 @@ export * from '@agnos-ui/core/services/focustrack';
|
|
|
9
10
|
export * from '@agnos-ui/core/services/focusElement';
|
|
10
11
|
export * from '@agnos-ui/core/services/floatingUI';
|
|
11
12
|
export * from '@agnos-ui/core/services/extendWidget';
|
|
13
|
+
export * from '@agnos-ui/core/services/transitions/simpleClassTransition';
|
|
14
|
+
export * from '@agnos-ui/core/services/transitions/cssTransitions';
|
|
15
|
+
export * from '@agnos-ui/core/services/transitions/collapse';
|
|
16
|
+
export * from '@agnos-ui/core/services/transitions/baseTransitions';
|
|
12
17
|
export * from '@agnos-ui/core/utils/writables';
|
|
13
18
|
import { writable, computed } from '@amadeus-it-group/tansu';
|
|
14
19
|
import * as i0 from '@angular/core';
|
|
@@ -20,10 +25,6 @@ export * from '@agnos-ui/core/utils/func';
|
|
|
20
25
|
import { multiDirective } from '@agnos-ui/core/utils/directive';
|
|
21
26
|
export * from '@agnos-ui/core/utils/directive';
|
|
22
27
|
import { isPlatformServer } from '@angular/common';
|
|
23
|
-
export * from '@agnos-ui/core/services/transitions/simpleClassTransition';
|
|
24
|
-
export * from '@agnos-ui/core/services/transitions/cssTransitions';
|
|
25
|
-
export * from '@agnos-ui/core/services/transitions/collapse';
|
|
26
|
-
export * from '@agnos-ui/core/services/transitions/baseTransitions';
|
|
27
28
|
import { FACTORY_WIDGET_NAME } from '@agnos-ui/core/types';
|
|
28
29
|
export * from '@agnos-ui/core/types';
|
|
29
30
|
import { createWidgetsConfig } from '@agnos-ui/core/config';
|
|
@@ -135,7 +136,7 @@ const toAngularSignal = (tansuSignal) => {
|
|
|
135
136
|
const zoneWrapper = inject(ZoneWrapper);
|
|
136
137
|
// The equality of objects from 2 sequential emissions is already checked in tansu signal.
|
|
137
138
|
// Here we'll always emit the value received from tansu signal, therefor the equality function
|
|
138
|
-
const res = signal(undefined, ...(ngDevMode ?
|
|
139
|
+
const res = signal(undefined, { ...(ngDevMode ? { debugName: "res" } : {}), equal: () => false });
|
|
139
140
|
const subscription = zoneWrapper.outsideNgZone(tansuSignal.subscribe)((value) => {
|
|
140
141
|
res.set(value);
|
|
141
142
|
zoneWrapper.planNgZoneRun();
|
|
@@ -158,7 +159,7 @@ const toAngularSignal = (tansuSignal) => {
|
|
|
158
159
|
*/
|
|
159
160
|
const toAngularWritableSignal = (tansuSignal) => {
|
|
160
161
|
const zoneWrapper = inject(ZoneWrapper);
|
|
161
|
-
const res = signal(undefined, ...(ngDevMode ?
|
|
162
|
+
const res = signal(undefined, { ...(ngDevMode ? { debugName: "res" } : {}), equal: () => false });
|
|
162
163
|
const set = res.set.bind(res);
|
|
163
164
|
const subscription = zoneWrapper.outsideNgZone(tansuSignal.subscribe)((value) => {
|
|
164
165
|
set(value);
|
|
@@ -401,7 +402,7 @@ const useDirectiveForHost = (directive, params) => {
|
|
|
401
402
|
*/
|
|
402
403
|
class UseDirective {
|
|
403
404
|
constructor() {
|
|
404
|
-
this.use = input.required(...(ngDevMode ?
|
|
405
|
+
this.use = input.required({ ...(ngDevMode ? { debugName: "use" } : {}), alias: 'auUse' });
|
|
405
406
|
this.#useDirective = useDirectiveForHost();
|
|
406
407
|
}
|
|
407
408
|
#useDirective;
|
|
@@ -430,7 +431,7 @@ class UseMultiDirective {
|
|
|
430
431
|
/**
|
|
431
432
|
* An input property that takes a tuple of directives and their optional parameters.
|
|
432
433
|
*/
|
|
433
|
-
this.useMulti = input.required(...(ngDevMode ?
|
|
434
|
+
this.useMulti = input.required({ ...(ngDevMode ? { debugName: "useMulti" } : {}), alias: 'auUseMulti' });
|
|
434
435
|
this.#useDirective = useDirectiveForHost();
|
|
435
436
|
}
|
|
436
437
|
#useDirective;
|
|
@@ -698,6 +699,21 @@ function auNumberAttribute(value) {
|
|
|
698
699
|
}
|
|
699
700
|
return numberAttribute(value);
|
|
700
701
|
}
|
|
702
|
+
/**
|
|
703
|
+
* Transforms a value (typically a string) to a number.
|
|
704
|
+
* Intended to be used as a transform function of an input.
|
|
705
|
+
* @param value - Value to be transformed. `null` or `undefined`, returns the value unchanged.
|
|
706
|
+
*
|
|
707
|
+
* @example
|
|
708
|
+
* ```readonly id = input({ transform: auNumberOrNullAttribute });```
|
|
709
|
+
* @returns the value transformed
|
|
710
|
+
*/
|
|
711
|
+
function auNumberOrNullAttribute(value) {
|
|
712
|
+
if (value == null) {
|
|
713
|
+
return value;
|
|
714
|
+
}
|
|
715
|
+
return numberAttribute(value);
|
|
716
|
+
}
|
|
701
717
|
|
|
702
718
|
const _c0 = ["text"];
|
|
703
719
|
function StringSlotComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -886,11 +902,11 @@ class SlotDirective {
|
|
|
886
902
|
/**
|
|
887
903
|
* The slot content to be managed.
|
|
888
904
|
*/
|
|
889
|
-
this.slot = input.required(...(ngDevMode ?
|
|
905
|
+
this.slot = input.required({ ...(ngDevMode ? { debugName: "slot" } : {}), alias: 'auSlot' });
|
|
890
906
|
/**
|
|
891
907
|
* The properties for the slot content.
|
|
892
908
|
*/
|
|
893
|
-
this.props = input.required(...(ngDevMode ?
|
|
909
|
+
this.props = input.required({ ...(ngDevMode ? { debugName: "props" } : {}), alias: 'auSlotProps' });
|
|
894
910
|
this._viewContainerRef = inject(ViewContainerRef);
|
|
895
911
|
}
|
|
896
912
|
/**
|
|
@@ -937,5 +953,5 @@ class SlotDirective {
|
|
|
937
953
|
* Generated bundle index. Do not edit.
|
|
938
954
|
*/
|
|
939
955
|
|
|
940
|
-
export { BaseWidgetDirective, ComponentTemplate, SlotComponent, SlotDirective, ToastPropsToken, ToasterService, UseDirective, UseMultiDirective, ZoneWrapper, auBooleanAttribute, auNumberAttribute, callWidgetFactory, callWidgetFactoryWithConfig, injectWidgetConfig, injectWidgetsConfig, provideWidgetsConfig, toAngularSignal, toAngularWritableSignal, useDirectiveForHost, widgetsConfigFactory, widgetsConfigInjectionToken };
|
|
956
|
+
export { BaseWidgetDirective, ComponentTemplate, SlotComponent, SlotDirective, ToastPropsToken, ToasterService, UseDirective, UseMultiDirective, ZoneWrapper, auBooleanAttribute, auNumberAttribute, auNumberOrNullAttribute, callWidgetFactory, callWidgetFactoryWithConfig, injectWidgetConfig, injectWidgetsConfig, provideWidgetsConfig, toAngularSignal, toAngularWritableSignal, useDirectiveForHost, widgetsConfigFactory, widgetsConfigInjectionToken };
|
|
941
957
|
//# sourceMappingURL=agnos-ui-angular-headless.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agnos-ui-angular-headless.mjs","sources":["../../src/utils/zone.ts","../../src/utils/stores.ts","../../src/utils/widget.ts","../../src/utils/directive.ts","../../src/types.ts","../../src/config.ts","../../src/components/toast/toaster.service.ts","../../src/utils/coercion.ts","../../src/slot.directive.ts","../../src/index.ts","../../src/agnos-ui-angular-headless.ts"],"sourcesContent":["import {Injectable, NgZone, inject} from '@angular/core';\n\nconst noop = () => {};\nconst identity = <T>(a: T) => a;\n\ntype Wrapper = <T>(fn: T) => T;\n\nconst createObjectWrapper =\n\t(wrap: Wrapper): Wrapper =>\n\t(object) => {\n\t\tif (!object || typeof object !== 'object') {\n\t\t\treturn object;\n\t\t}\n\t\tconst res = {} as any;\n\t\tfor (const key of Object.keys(object)) {\n\t\t\tres[key] = wrap((object as any)[key]);\n\t\t}\n\t\treturn res;\n\t};\n\nconst createReturnValueWrapper =\n\t(wrapReturnValue: Wrapper, wrapResult: Wrapper): Wrapper =>\n\t(fn) =>\n\t\twrapResult(typeof fn === 'function' ? (((...args: any[]) => wrapReturnValue(fn(...args))) as any) : fn);\n\n/**\n * A utility class that provides methods to run functions inside or outside of Angular's NgZone.\n * This can be useful for optimizing performance by avoiding unnecessary change detection cycles.\n */\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ZoneWrapper {\n\treadonly #zone = inject(NgZone);\n\treadonly #hasZone = this.#zone.run(() => NgZone.isInAngularZone()); // check if zone is enabled (can be NoopZone, cf https://angular.io/guide/zone#noopzone)\n\t#runNeeded = false;\n\t#runPlanned = false;\n\n\tplanNgZoneRun = this.#hasZone\n\t\t? () => {\n\t\t\t\tif (this.#zone.isStable) {\n\t\t\t\t\tthis.#runNeeded = true;\n\t\t\t\t\tif (!this.#runPlanned) {\n\t\t\t\t\t\tthis.#runPlanned = true;\n\t\t\t\t\t\tvoid (async () => {\n\t\t\t\t\t\t\tawait Promise.resolve();\n\t\t\t\t\t\t\tthis.#runPlanned = false;\n\t\t\t\t\t\t\tif (this.#runNeeded) {\n\t\t\t\t\t\t\t\tthis.ngZoneRun(noop);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t: noop;\n\n\t/**\n\t * Run the input function synchronously within the Angular zone\n\t *\n\t * @param fn - a function to run\n\t * @returns the value returned by the function\n\t */\n\tngZoneRun<T>(fn: () => T): T {\n\t\tthis.#runNeeded = false;\n\t\treturn this.#zone.run(fn);\n\t}\n\n\tinsideNgZone: Wrapper = this.#hasZone\n\t\t? (fn) => (typeof fn === 'function' ? (((...args: any[]) => this.ngZoneRun(() => fn(...args))) as any) : fn)\n\t\t: identity;\n\tinsideNgZoneWrapFunctionsObject = createObjectWrapper(this.insideNgZone);\n\n\toutsideNgZone: Wrapper = this.#hasZone\n\t\t? (fn) => (typeof fn === 'function' ? (((...args: any[]) => this.#zone.runOutsideAngular(() => fn(...args))) as any) : fn)\n\t\t: identity;\n\n\toutsideNgZoneWrapFunctionsObject = createObjectWrapper(this.outsideNgZone);\n\toutsideNgZoneWrapDirective = createReturnValueWrapper(this.outsideNgZoneWrapFunctionsObject, this.outsideNgZone);\n\toutsideNgZoneWrapDirectivesObject = createObjectWrapper(this.outsideNgZoneWrapDirective);\n}\n","import type {ReadableSignal, WritableSignal as TansuWritableSignal} from '@amadeus-it-group/tansu';\nimport type {Signal, WritableSignal} from '@angular/core';\nimport {DestroyRef, inject, signal} from '@angular/core';\nimport {ZoneWrapper} from './zone';\n\nexport * from '@agnos-ui/core/utils/stores';\n\n/**\n * Converts a Tansu `ReadableSignal` to an Angular `Signal`.\n *\n * This function wraps the provided Tansu signal in an Angular signal, ensuring that updates\n * are properly handled within Angular's zone. It subscribes to the Tansu signal and updates\n * the Angular signal with the received values. The equality function for the Angular signal\n * is set to always return false, ensuring that every new value from the Tansu signal triggers\n * an update.\n *\n * @template T - The type of the value emitted by the signals.\n * @param tansuSignal - The Tansu signal to convert.\n * @returns - The resulting Angular signal.\n */\nexport const toAngularSignal = <T>(tansuSignal: ReadableSignal<T>): Signal<T> => {\n\tconst zoneWrapper = inject(ZoneWrapper);\n\t// The equality of objects from 2 sequential emissions is already checked in tansu signal.\n\t// Here we'll always emit the value received from tansu signal, therefor the equality function\n\tconst res = signal(undefined as any as T, {equal: () => false});\n\tconst subscription = zoneWrapper.outsideNgZone(tansuSignal.subscribe)((value) => {\n\t\tres.set(value);\n\t\tzoneWrapper.planNgZoneRun();\n\t});\n\tinject(DestroyRef).onDestroy(zoneWrapper.outsideNgZone(subscription));\n\n\treturn res.asReadonly();\n};\n\n/**\n * Converts a Tansu `WritableSignal` to an Angular `WritableSignal`.\n *\n * This function wraps the provided Tansu signal in an Angular signal, ensuring that updates\n * are properly handled within Angular's zone. It subscribes to the Tansu signal and updates\n * the Angular signal with the received values. The equality function for the Angular signal\n * is set to always return false, ensuring that every new value from the Tansu signal triggers\n * an update.\n *\n * @template T - The type of the value emitted by the signals.\n * @param tansuSignal - The Tansu signal to convert.\n * @returns - The resulting Angular signal.\n */\nexport const toAngularWritableSignal = <T>(tansuSignal: TansuWritableSignal<T>): WritableSignal<T> => {\n\tconst zoneWrapper = inject(ZoneWrapper);\n\tconst res = signal(undefined as any as T, {equal: () => false});\n\tconst set = res.set.bind(res);\n\tconst subscription = zoneWrapper.outsideNgZone(tansuSignal.subscribe)((value) => {\n\t\tset(value);\n\t\tzoneWrapper.planNgZoneRun();\n\t});\n\tinject(DestroyRef).onDestroy(zoneWrapper.outsideNgZone(subscription));\n\tres.set = zoneWrapper.outsideNgZone(tansuSignal.set);\n\tres.update = zoneWrapper.outsideNgZone(tansuSignal.update);\n\treturn res;\n};\n","import {computed, type ReadableSignal, writable} from '@amadeus-it-group/tansu';\nimport type {AfterContentChecked, OnChanges, OnInit, SimpleChanges, TemplateRef} from '@angular/core';\nimport {Directive, Injector, inject, runInInjectionContext} from '@angular/core';\nimport type {AngularState, AngularWidget, IsSlotContent, SlotContent, Widget, WidgetFactory, WidgetProps} from '../types';\nimport {toAngularSignal, toReadableStore} from './stores';\nimport {ZoneWrapper} from './zone';\n\nexport * from '@agnos-ui/core/utils/widget';\n\nconst createPatchSlots = <T extends object>(set: (object: Partial<T>) => void) => {\n\tlet lastValue: Partial<T> = {};\n\treturn (object: T) => {\n\t\tconst newValue: Partial<T> = {};\n\t\tlet hasChange = false;\n\t\tfor (const key of Object.keys(object) as (string & keyof T)[]) {\n\t\t\tconst objectKey = (object as any)[key];\n\t\t\tif (objectKey != null) {\n\t\t\t\t// only use defined slots\n\t\t\t\tnewValue[key] = objectKey;\n\t\t\t}\n\t\t\tif (objectKey != lastValue[key]) {\n\t\t\t\thasChange = true;\n\t\t\t}\n\t\t}\n\t\tif (hasChange) {\n\t\t\tlastValue = newValue;\n\t\t\tset(newValue);\n\t\t}\n\t};\n};\n\n/**\n * Call a widget factory using provided configs.\n *\n * The resulting widget can be easily hooked into the lifecycle of an Angular component through {@link BaseWidgetDirective}.\n *\n * @param factory - the widget factory to call\n * @param options - the options\n * @param options.defaultConfig - the default config of the widget\n * @param options.widgetConfig - the config of the widget, overriding the defaultConfig\n * @param options.events - the events of the widget\n * @param options.afterInit - a callback to call after successful setup of the widget\n * @param options.slotTemplates - a function to provide all slot templates using child queries\n * @param options.slotChildren - a function to provide the default children slot using a view query\n * @returns the widget\n */\nexport const callWidgetFactoryWithConfig = <W extends Widget>(\n\tfactory: WidgetFactory<W>,\n\toptions?: {\n\t\tdefaultConfig?: Partial<WidgetProps<W>> | ReadableSignal<Partial<WidgetProps<W>> | undefined>;\n\t\twidgetConfig?: null | undefined | ReadableSignal<Partial<WidgetProps<W>> | undefined>;\n\t\tevents?: Partial<Pick<WidgetProps<W>, keyof WidgetProps<W> & `on${string}`>>;\n\t\tafterInit?: (widget: AngularWidget<W>) => void;\n\t\tslotTemplates?: () => {\n\t\t\t[K in keyof WidgetProps<W> as IsSlotContent<WidgetProps<W>[K]> extends 0 ? never : K]: WidgetProps<W>[K] extends SlotContent<infer U>\n\t\t\t\t? TemplateRef<U> | undefined\n\t\t\t\t: never;\n\t\t};\n\t\tslotChildren?: () => TemplateRef<void> | undefined;\n\t},\n): AngularWidget<W> => {\n\tlet {defaultConfig, widgetConfig, events, afterInit, slotTemplates, slotChildren} = options ?? {};\n\tconst injector = inject(Injector);\n\tconst slots$ = writable({});\n\tconst props = {};\n\tlet initDone: () => void;\n\tconst patchSlots = createPatchSlots(slots$.set);\n\n\tconst res = {\n\t\tinitialized: new Promise<void>((resolve) => {\n\t\t\tinitDone = resolve;\n\t\t}),\n\t\tupdateSlots: () => {\n\t\t\tif (slotTemplates) {\n\t\t\t\tpatchSlots(slotTemplates());\n\t\t\t}\n\t\t},\n\t\tpatch(newProps: Partial<WidgetProps<W>>) {\n\t\t\t// temporary function replaced in ngInit\n\t\t\tObject.assign(props, newProps);\n\t\t},\n\t\tngInit() {\n\t\t\trunInInjectionContext(injector, () => {\n\t\t\t\tconst zoneWrapper = inject(ZoneWrapper);\n\t\t\t\tfactory = zoneWrapper.outsideNgZone(factory);\n\t\t\t\tconst defaultConfig$ = toReadableStore(defaultConfig);\n\t\t\t\tevents = zoneWrapper.insideNgZoneWrapFunctionsObject(events);\n\t\t\t\tconst widget = factory({\n\t\t\t\t\tconfig: computed(() => ({\n\t\t\t\t\t\t...defaultConfig$(),\n\t\t\t\t\t\tchildren: slotChildren?.(),\n\t\t\t\t\t\t...widgetConfig?.(),\n\t\t\t\t\t\t...slots$(),\n\t\t\t\t\t\t...(events as Partial<WidgetProps<W>>),\n\t\t\t\t\t})),\n\t\t\t\t\tprops,\n\t\t\t\t});\n\t\t\t\tObject.assign(res, {\n\t\t\t\t\tpatch: zoneWrapper.outsideNgZone(widget.patch),\n\t\t\t\t\tdirectives: zoneWrapper.outsideNgZoneWrapDirectivesObject(widget.directives),\n\t\t\t\t\tapi: zoneWrapper.outsideNgZoneWrapFunctionsObject(widget.api),\n\t\t\t\t\tstate: Object.fromEntries(\n\t\t\t\t\t\tObject.entries<ReadableSignal<unknown>>(widget.stores as any).map(([key, val]) => [key.slice(0, -1), toAngularSignal(val)]),\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t\tafterInit?.(res as AngularWidget<W>);\n\t\t\t\tinitDone();\n\t\t\t});\n\t\t},\n\t};\n\n\treturn res as AngularWidget<W>;\n};\n\nfunction patchSimpleChanges(patchFn: (obj: any) => void, changes: SimpleChanges) {\n\tconst obj: any = {};\n\tfor (const [key, simpleChange] of Object.entries(changes)) {\n\t\tif (simpleChange !== undefined) {\n\t\t\tobj[key] = simpleChange.currentValue;\n\t\t}\n\t}\n\tpatchFn(obj);\n}\n\n/**\n * An abstract base class for widget directives, providing common functionality\n * for Angular components that interact with widgets.\n *\n * @template W - The type of the widget.\n */\n@Directive()\nexport abstract class BaseWidgetDirective<W extends Widget> implements OnChanges, OnInit, AfterContentChecked {\n\tconstructor(\n\t\t// eslint-disable-next-line @angular-eslint/prefer-inject\n\t\tprivate readonly _widget: AngularWidget<W>,\n\t\t// eslint-disable-next-line @angular-eslint/prefer-inject\n\t\tprivate readonly propRenames?: Record<string, string>,\n\t) {}\n\n\t/**\n\t * Retrieves the widget api\n\t * @returns the widget api\n\t */\n\tget api(): W['api'] {\n\t\treturn this._widget.api;\n\t}\n\n\t/**\n\t * Retrieves the widget state. Each property of the state is exposed through an Angular {@link https://angular.dev/api/core/Signal | Signal}\n\t * @returns the widget state\n\t */\n\tget state(): AngularState<W> {\n\t\treturn this._widget.state;\n\t}\n\n\t/**\n\t * Retrieves the widget directives\n\t * @returns the widget directives\n\t */\n\tget directives(): W['directives'] {\n\t\treturn this._widget.directives;\n\t}\n\n\t/**\n\t * @inheritdoc\n\t * @internal\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tconst renamedChanges: SimpleChanges = {};\n\t\tif (this.propRenames) {\n\t\t\tfor (const [key, simpleChange] of Object.entries(changes)) {\n\t\t\t\tconst renamedKey = this.propRenames[key] ?? key;\n\t\t\t\trenamedChanges[renamedKey] = simpleChange;\n\t\t\t}\n\t\t} else {\n\t\t\tObject.assign(renamedChanges, changes);\n\t\t}\n\t\tpatchSimpleChanges(this._widget.patch, renamedChanges);\n\t}\n\n\t/** @internal */\n\tngOnInit(): void {\n\t\tthis._widget.ngInit();\n\t}\n\n\t/** @internal */\n\tngAfterContentChecked(): void {\n\t\tthis._widget.updateSlots();\n\t}\n}\n","import type {Directive as AgnosUIDirective, DirectiveAndParam, DirectivesAndOptParam} from '@agnos-ui/core/types';\nimport {multiDirective} from '@agnos-ui/core/utils/directive';\nimport {isPlatformServer} from '@angular/common';\nimport type {OnChanges} from '@angular/core';\nimport {DestroyRef, Directive, ElementRef, Injector, PLATFORM_ID, afterNextRender, inject, runInInjectionContext, input} from '@angular/core';\n\nexport * from '@agnos-ui/core/utils/directive';\n\n/**\n * A utility function to manage the lifecycle of a directive for a host element.\n *\n * This function handles the creation, updating, and destruction of a directive instance\n * associated with a host element. It ensures that the directive is called appropriately\n * based on the platform (server or client) and manages the directive's lifecycle within\n * the Angular injection context.\n *\n * @template T - The type of parameters that the directive accepts.\n *\n * @param [directive] - The directive to be applied to the host element.\n * @param [params] - The parameters to be passed to the directive.\n *\n * @returns An object containing an `update` function to update the directive and its parameters.\n */\nexport const useDirectiveForHost = <T>(directive?: AgnosUIDirective<T>, params?: T) => {\n\tconst injector = inject(Injector);\n\tconst ref = inject(ElementRef);\n\tconst platform = inject(PLATFORM_ID);\n\n\tlet instance: undefined | ReturnType<AgnosUIDirective<T>>;\n\tlet plannedCallDirective = false;\n\n\tconst callDirective = isPlatformServer(platform)\n\t\t? () => {\n\t\t\t\tinstance = directive?.(ref.nativeElement, params as T);\n\t\t\t}\n\t\t: () => {\n\t\t\t\tif (plannedCallDirective || !directive) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tplannedCallDirective = true;\n\t\t\t\trunInInjectionContext(injector, () => {\n\t\t\t\t\tafterNextRender(() => {\n\t\t\t\t\t\tplannedCallDirective = false;\n\t\t\t\t\t\tinstance = directive?.(ref.nativeElement, params as T);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\n\tfunction destroyDirectiveInstance() {\n\t\tconst oldInstance = instance;\n\t\tinstance = undefined;\n\t\tdirective = undefined;\n\t\toldInstance?.destroy?.();\n\t}\n\n\tinject(DestroyRef).onDestroy(destroyDirectiveInstance);\n\n\tfunction update(newDirective?: AgnosUIDirective<T>, newParams?: T) {\n\t\tif (newDirective !== directive) {\n\t\t\tvoid destroyDirectiveInstance();\n\t\t\tdirective = newDirective;\n\t\t\tparams = newParams;\n\t\t\tcallDirective();\n\t\t} else if (newParams != params) {\n\t\t\tparams = newParams;\n\t\t\tinstance?.update?.(params as T);\n\t\t}\n\t}\n\n\tcallDirective();\n\treturn {update};\n};\n\n/**\n * A directive that allows the use of another directive with optional parameters.\n *\n * @template T - The type of the parameter that can be passed to the directive.\n *\n * @remarks\n * This directive uses a private instance of {@link useDirectiveForHost} to manage the directive and its parameter.\n */\n@Directive({\n\tselector: '[auUse]',\n})\nexport class UseDirective<T> implements OnChanges {\n\treadonly use = input.required<AgnosUIDirective | DirectiveAndParam<T>>({alias: 'auUse'});\n\treadonly #useDirective = useDirectiveForHost<T>();\n\n\t/** @internal */\n\tngOnChanges() {\n\t\tconst use = this.use();\n\t\tconst [directive, param] = Array.isArray(use) ? use : [use as any];\n\t\tthis.#useDirective.update(directive, param);\n\t}\n}\n\n/**\n * A directive that allows the use of multiple directives on a host element.\n *\n * @template T - A tuple type representing the directives and their optional parameters.\n */\n@Directive({\n\tselector: '[auUseMulti]',\n})\nexport class UseMultiDirective<T extends any[]> implements OnChanges {\n\t/**\n\t * An input property that takes a tuple of directives and their optional parameters.\n\t */\n\treadonly useMulti = input.required<DirectivesAndOptParam<T>>({alias: 'auUseMulti'});\n\n\treadonly #useDirective = useDirectiveForHost<DirectivesAndOptParam<T>>();\n\n\t/** @internal */\n\tngOnChanges() {\n\t\tthis.#useDirective.update(multiDirective, this.useMulti());\n\t}\n}\n","import type {SlotContent as CoreSlotContent, Widget, WidgetState, Extends} from '@agnos-ui/core/types';\nimport type {Signal, TemplateRef, Type} from '@angular/core';\nimport {computed, Directive, input} from '@angular/core';\n\nexport * from '@agnos-ui/core/types';\n\n/**\n * Represents a template for a component with specified properties.\n *\n * @template Props - The type of properties that the template accepts.\n * @template K - The key in the template object that maps to the template reference.\n * @template T - An object type where each key of type K maps to a TemplateRef of Props.\n *\n * @param component - The component type that contains the template.\n * @param templateProp - The key in the component that maps to the template reference.\n */\nexport class ComponentTemplate<Props, K extends string, T extends {[key in K]: Signal<TemplateRef<Props>>}> {\n\tconstructor(\n\t\tpublic readonly component: Type<T>,\n\t\tpublic readonly templateProp: K,\n\t) {}\n}\n\n/**\n * Represents the content that can be used in a slot.\n *\n * @template Props - The type of the properties that the slot content can accept.\n *\n * This type can be one of the following:\n * - `undefined | null`: Nullish value\n * - `string`: A static string\n * - `(props: Props) => string`: A function that takes props as input and returns a string template\n * - `TemplateRef<Props>`: A reference to an Angular template with the specified properties.\n * - `Type<unknown>`: A type representing an unknown component or directive.\n * - `ComponentTemplate<Props, any, any>`: A component template with the specified properties.\n */\nexport type SlotContent<Props extends object = object> =\n\t| CoreSlotContent<Props>\n\t| TemplateRef<Props>\n\t| Type<unknown>\n\t| ComponentTemplate<Props, any, any>;\n\n/**\n * A directive representing a slot component that can be used to manage the state and context of a widget.\n *\n * @template W - The type of the widget that this slot component manages.\n */\n@Directive()\nexport abstract class SlotComponent<W extends Widget> {\n\t/**\n\t * The state of the widget. Each property of the state is exposed through an Angular {@link https://angular.dev/api/core/Signal | Signal}\n\t */\n\treadonly state = input.required<AngularState<W>>();\n\t/**\n\t * all the api functions to interact with the widget\n\t */\n\treadonly api = input.required<W['api']>();\n\t/**\n\t * directives to be used on html elements in the template of the slot\n\t */\n\treadonly directives = input.required<W['directives']>();\n\t/**\n\t * The slot context, to be used when the slot component uses other slots.\n\t */\n\treadonly slotContext = computed(() => ({state: this.state(), api: this.api(), directives: this.directives()}));\n}\n\n/**\n * Type utility to determine if a given type `T` is or extends `SlotContent<any>`.\n *\n * This type alias uses conditional types to check if `T` extends `SlotContent<any>` or if `SlotContent<any>` extends `T`.\n * If either condition is true, it resolves to `T`, otherwise it resolves to `0`.\n *\n * @template T - The type to be checked.\n */\nexport type IsSlotContent<T> = Extends<T, SlotContent<any>> | Extends<SlotContent<any>, T> extends 1 ? T : 0;\n\n/**\n * Represents the state of an Angular widget, where each key in the widget's state\n * is mapped to a Signal of the corresponding state value.\n *\n * @template W - The type of the widget.\n */\nexport type AngularState<W extends Widget> = {[key in keyof WidgetState<W>]: Signal<WidgetState<W>[key]>};\n\n/**\n * Represents an Angular widget that extends a base widget type.\n *\n * @template W - The type of the base widget.\n */\nexport interface AngularWidget<W extends Widget> extends Pick<W, 'api' | 'directives' | 'patch'> {\n\t/**\n\t * A promise that resolves when the widget is initialized\n\t */\n\tinitialized: Promise<void>;\n\t/**\n\t * The state of the widget. Each property of the state is exposed through an Angular {@link https://angular.dev/api/core/Signal | Signal}\n\t */\n\tstate: AngularState<W>;\n\t/**\n\t * A function to initialize the Angular widget.\n\t */\n\tngInit: () => void;\n\t/**\n\t * A utility function to update the slot properties.\n\t */\n\tupdateSlots: () => void;\n}\n\n/**\n * Represents the context for a widget slot, providing access to the widget and its state.\n *\n * @template W - The type of the widget.\n */\nexport interface WidgetSlotContext<W extends Widget> extends Pick<W, 'api' | 'directives'> {\n\t/**\n\t * The state of the widget. Each property of the state is exposed through an Angular {@link https://angular.dev/api/core/Signal | Signal}\n\t */\n\tstate: AngularState<W>;\n}\n","import type {Widget, WidgetFactory, WidgetProps} from '@agnos-ui/core/types';\nimport {FACTORY_WIDGET_NAME} from '@agnos-ui/core/types';\nimport type {Partial2Levels, WidgetsConfigStore, WidgetsConfig} from '@agnos-ui/core/config';\nimport {createWidgetsConfig} from '@agnos-ui/core/config';\nimport type {ReadableSignal} from '@amadeus-it-group/tansu';\nimport {computed} from '@amadeus-it-group/tansu';\nimport type {FactoryProvider, TemplateRef} from '@angular/core';\nimport {InjectionToken, Injector, Optional, SkipSelf, inject, runInInjectionContext} from '@angular/core';\nimport type {AngularWidget, IsSlotContent, SlotContent} from './types';\nimport {callWidgetFactoryWithConfig} from './utils/widget';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type {BaseWidgetDirective} from './utils/widget';\n\nexport * from '@agnos-ui/core/config';\n\ntype AdaptParentConfig<Config> = (config: Partial2Levels<Config>) => Partial2Levels<Config>;\ntype InjectWidgetsConfig<Config> = (config?: Partial2Levels<Config>) => WidgetsConfigStore<Config>;\n\n/**\n * A factory to create the utilities to allow widgets to be context-aware.\n *\n * It can be used when extending the core and creating new widgets.\n *\n * @template Config - The type of the widgets configuration object.\n * @param widgetsConfigInjectionToken - the widgets config injection token\n * @returns the utilities to create / manage widgets and contexts\n */\nexport const widgetsConfigFactory = <Config extends {[widgetName: string]: object} = WidgetsConfig>(\n\twidgetsConfigInjectionToken = new InjectionToken<WidgetsConfigStore<Config>>('widgetsConfig'),\n) => {\n\t/**\n\t * Creates a provider of widgets default configuration that inherits from any widgets default configuration already defined at an upper level\n\t * in the Angular dependency injection system. It contains its own set of widgets configuration properties that override the same properties form\n\t * the parent configuration.\n\t *\n\t * @remarks\n\t * The configuration is computed from the parent configuration in two steps:\n\t * - first step: the parent configuration is transformed by the adaptParentConfig function (if specified).\n\t * If adaptParentConfig is not specified, this step is skipped.\n\t * - second step: the configuration from step 1 is merged (2-levels deep) with the own$ store. The own$ store initially contains\n\t * an empty object (i.e. no property from the parent is overridden). It can be changed by calling set on the store returned by\n\t * {@link injectWidgetsConfig}.\n\t *\n\t * @param adaptParentConfig - optional function that receives a 2-levels copy of the widgets default configuration\n\t * defined at an upper level in the Angular dependency injection system (or an empty object if there is none) and returns the widgets\n\t * default configuration to be used.\n\t * It is called only if the configuration is needed, and was not yet computed for the current value of the parent configuration.\n\t * It is called in a tansu reactive context, so it can use any tansu store and will be called again if those stores change.\n\t * It is also called in an Angular injection context, so it can call the Angular inject function to get and use dependencies from the\n\t * Angular dependency injection system.\n\t *\n\t * @returns DI provider to be included a list of `providers` (for example at a component level or\n\t * any other level of the Angular dependency injection system)\n\t *\n\t * @example\n\t * ```typescript\n\t * @Component({\n\t * // ...\n\t * providers: [\n\t * provideWidgetsConfig((parentConfig) => {\n\t * // first step configuration: transforms the parent configuration\n\t * parentConfig.rating = parentConfig.rating ?? {};\n\t * parentConfig.rating.className = `${parentConfig.rating.className ?? ''} my-rating-extra-class`\n\t * return parentConfig;\n\t * })\n\t * ]\n\t * })\n\t * class MyComponent {\n\t * widgetsConfig = injectWidgetsConfig();\n\t * constructor() {\n\t * this.widgetsConfig.set({\n\t * // second step configuration: overrides the parent configuration\n\t * rating: {\n\t * slotStar: MyCustomSlotStar\n\t * }\n\t * });\n\t * }\n\t * // ...\n\t * }\n\t * ```\n\t */\n\tconst provideWidgetsConfig = (adaptParentConfig?: AdaptParentConfig<Config>): FactoryProvider => ({\n\t\tprovide: widgetsConfigInjectionToken,\n\t\tuseFactory: (parent: WidgetsConfigStore<Config> | null) => {\n\t\t\tif (adaptParentConfig) {\n\t\t\t\tconst injector = inject(Injector);\n\t\t\t\tconst originalAdaptParentConfig = adaptParentConfig;\n\t\t\t\tadaptParentConfig = (value) => runInInjectionContext(injector, () => originalAdaptParentConfig(value));\n\t\t\t}\n\t\t\treturn createWidgetsConfig(parent ?? undefined, adaptParentConfig);\n\t\t},\n\t\tdeps: [[new SkipSelf(), new Optional(), widgetsConfigInjectionToken]],\n\t});\n\n\t/**\n\t * Returns the widgets default configuration store that was provided in the current injection context.\n\t * Throws if the no widgets default configuration store was provided.\n\t *\n\t * @param defaultConfig - values to set as soon as the config is injected\n\t * @remarks\n\t * This function must be called from an injection context, such as a constructor, a factory function, a field initializer or\n\t * a function used with {@link https://angular.io/api/core/runInInjectionContext | runInInjectionContext}.\n\t *\n\t * @returns the widgets default configuration store.\n\t */\n\tconst injectWidgetsConfig: InjectWidgetsConfig<Config> = (defaultConfig?: Partial2Levels<Config>) => {\n\t\tconst widgetsConfig = inject(widgetsConfigInjectionToken);\n\t\tif (defaultConfig) {\n\t\t\twidgetsConfig.set(defaultConfig);\n\t\t}\n\t\treturn widgetsConfig;\n\t};\n\n\t/**\n\t * Injects the configuration for a specific widget.\n\t *\n\t * @template N - The key of the widget configuration in the `Config` type.\n\t * @param widgetName - The name of the widget whose configuration is to be injected.\n\t * @returns A `ReadableSignal` that provides a partial configuration of the specified widget or `undefined` if the configuration is not available.\n\t */\n\tconst injectWidgetConfig = <N extends keyof Config>(widgetName: N): ReadableSignal<Partial<Config[N]> | undefined> => {\n\t\tconst widgetsConfig = inject(widgetsConfigInjectionToken, {optional: true});\n\t\treturn computed(() => widgetsConfig?.()[widgetName]);\n\t};\n\n\t/**\n\t * Creates and initializes a widget using the provided factory and configuration options.\n\t *\n\t * The resulting widget can be easily hooked into the lifecycle of an Angular component through {@link BaseWidgetDirective}.\n\t *\n\t * @template W - The type of the widget.\n\t * @param factory - The factory function to create the widget.\n\t * @param options - The options for creating the widget.\n\t * @param options.defaultConfig - The default configuration for the widget.\n\t * @param options.events - The event handlers for the widget.\n\t * @param options.slotTemplates - A function that returns the slot templates for the widget.\n\t * @param options.slotChildren - A function that returns the slot children for the widget.\n\t * @param options.afterInit - A callback function to be called after the widget is initialized.\n\t * @returns The initialized widget.\n\t */\n\tconst callWidgetFactory = <W extends Widget>(\n\t\tfactory: WidgetFactory<W>,\n\t\toptions?: {\n\t\t\tdefaultConfig?: Partial<WidgetProps<W>> | ReadableSignal<Partial<WidgetProps<W>> | undefined>;\n\t\t\tevents?: Partial<Pick<WidgetProps<W>, keyof WidgetProps<W> & `on${string}`>>;\n\t\t\tafterInit?: (widget: AngularWidget<W>) => void;\n\t\t\tslotTemplates?: () => {\n\t\t\t\t[K in keyof WidgetProps<W> as IsSlotContent<WidgetProps<W>[K]> extends 0 ? never : K]: WidgetProps<W>[K] extends SlotContent<infer U>\n\t\t\t\t\t? TemplateRef<U> | undefined\n\t\t\t\t\t: never;\n\t\t\t};\n\t\t\tslotChildren?: () => TemplateRef<void> | undefined;\n\t\t},\n\t): AngularWidget<W> =>\n\t\tcallWidgetFactoryWithConfig(factory, {\n\t\t\twidgetConfig: factory[FACTORY_WIDGET_NAME] ? (injectWidgetConfig(factory[FACTORY_WIDGET_NAME]) as any) : undefined,\n\t\t\tdefaultConfig: options?.defaultConfig,\n\t\t\tevents: options?.events,\n\t\t\tafterInit: options?.afterInit,\n\t\t\tslotTemplates: options?.slotTemplates as any,\n\t\t\tslotChildren: options?.slotChildren,\n\t\t});\n\n\treturn {\n\t\t/**\n\t\t * Dependency Injection token which can be used to provide or inject the widgets default configuration store.\n\t\t */\n\t\twidgetsConfigInjectionToken,\n\t\tprovideWidgetsConfig,\n\t\tinjectWidgetsConfig,\n\t\tinjectWidgetConfig,\n\t\tcallWidgetFactory,\n\t};\n};\n\nexport const {widgetsConfigInjectionToken, provideWidgetsConfig, injectWidgetConfig, injectWidgetsConfig, callWidgetFactory} =\n\twidgetsConfigFactory<WidgetsConfig>();\n","import {type ToastProps} from '@agnos-ui/core/components/toast';\nimport type {ToasterToast, ToasterProps} from '@agnos-ui/core/components/toast';\nimport {Toaster as CoreToaster} from '@agnos-ui/core/components/toast';\nimport {toAngularSignal, toAngularWritableSignal} from '../../generated';\nimport type {Signal, WritableSignal} from '@angular/core';\nimport {inject, Injectable, InjectionToken} from '@angular/core';\n\n/**\n * Injection token used to provide configuration properties for the toaster service.\n *\n * This token is associated with the `ToasterProps` interface, which defines the\n * structure of the configuration object. It allows dependency injection to supply\n * custom properties for the toaster service, such as default settings or behavior.\n */\nexport const ToastPropsToken = new InjectionToken<ToasterProps>('ToasterProps');\n\n/**\n * Create a toaster provider with helpers and state.\n * @param props Options for the toaster.\n * @template Props Type of the toast properties.\n */\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ToasterService<Props extends Partial<ToastProps>> {\n\treadonly optionsCore = inject(ToastPropsToken, {optional: true});\n\treadonly #toaster: CoreToaster<Props> = new CoreToaster<Props>(this.optionsCore ?? undefined);\n\treadonly toasts: Signal<ToasterToast<Props>[]> = toAngularSignal(this.#toaster.toasts);\n\treadonly options: WritableSignal<ToasterProps> = toAngularWritableSignal(this.#toaster.options);\n\treadonly addToast = this.#toaster.addToast;\n\treadonly removeToast = this.#toaster.removeToast;\n\treadonly eventsDirective = this.#toaster.eventsDirective;\n\treadonly closeAll = this.#toaster.closeAll;\n}\n","import {booleanAttribute, numberAttribute} from '@angular/core';\n\n/**\n * Transforms a value (typically a string) to a boolean.\n * Intended to be used as a transform function of an input.\n *\n * @example\n * ```readonly status = input({ transform: auBooleanAttribute });```\n * @param value - Value to be transformed.\n * @returns the value transformed\n */\nexport function auBooleanAttribute(value: unknown): boolean | undefined {\n\tif (value === undefined) {\n\t\treturn undefined;\n\t}\n\treturn booleanAttribute(value);\n}\n\n/**\n * Transforms a value (typically a string) to a number.\n * Intended to be used as a transform function of an input.\n * @param value - Value to be transformed.\n *\n * @example\n * ```readonly id = input({ transform: auNumberAttribute });```\n * @returns the value transformed\n */\nexport function auNumberAttribute(value: unknown): number | undefined {\n\tif (value === undefined) {\n\t\treturn undefined;\n\t}\n\treturn numberAttribute(value);\n}\n","import type {ComponentRef, EmbeddedViewRef, OnChanges, OnDestroy, Signal, SimpleChanges, Type} from '@angular/core';\nimport {\n\tComponent,\n\tDirective,\n\tEnvironmentInjector,\n\tTemplateRef,\n\tViewContainerRef,\n\tcreateComponent,\n\tinject,\n\treflectComponentType,\n\tChangeDetectionStrategy,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport type {SlotContent} from './types';\nimport {ComponentTemplate} from './types';\n\nabstract class SlotHandler<Props extends Record<string, any>, Slot extends SlotContent<Props> = SlotContent<Props>> {\n\tconstructor(public viewContainerRef: ViewContainerRef) {}\n\tslotChange(_slot: Slot, _props: Props) {}\n\tpropsChange(_slot: Slot, _props: Props) {}\n\tdestroy() {}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `<ng-template #text let-content=\"content\">{{ content }}</ng-template>`,\n})\nclass StringSlotComponent {\n\treadonly text = viewChild.required<\n\t\tTemplateRef<{\n\t\t\tcontent: string;\n\t\t}>\n\t>('text');\n}\nconst stringSlotComponentTemplate = new ComponentTemplate<{content: string}, 'text', StringSlotComponent>(StringSlotComponent, 'text');\n\nclass StringSlotHandler<Props extends Record<string, any>> extends SlotHandler<Props, string> {\n\treadonly #templateRefSlotHandler = new ComponentTemplateSlotHandler<{content: string}, 'text', StringSlotComponent>(this.viewContainerRef);\n\t#initialized = false;\n\n\toverride slotChange(content: string): void {\n\t\tif (!this.#initialized) {\n\t\t\tthis.#initialized = true;\n\t\t\tthis.#templateRefSlotHandler.slotChange(stringSlotComponentTemplate, {content});\n\t\t} else {\n\t\t\tthis.#templateRefSlotHandler.propsChange(stringSlotComponentTemplate, {content});\n\t\t}\n\t}\n\n\toverride destroy(): void {\n\t\tthis.#templateRefSlotHandler.destroy();\n\t}\n}\n\nclass FunctionSlotHandler<Props extends Record<string, any>> extends SlotHandler<Props, (props: Props) => string> {\n\treadonly #stringSlotHandler = new StringSlotHandler(this.viewContainerRef);\n\n\toverride slotChange(slot: (props: Props) => string, props: Props): void {\n\t\tthis.#stringSlotHandler.slotChange(slot(props));\n\t}\n\n\toverride propsChange(slot: (props: Props) => string, props: Props): void {\n\t\tthis.#stringSlotHandler.slotChange(slot(props));\n\t}\n\n\toverride destroy(): void {\n\t\tthis.#stringSlotHandler.destroy();\n\t}\n}\n\nclass ComponentSlotHandler<Props extends Record<string, any>> extends SlotHandler<Props, Type<unknown>> {\n\t#componentRef: ComponentRef<any> | undefined;\n\t#properties?: string[];\n\n\toverride slotChange(slot: Type<unknown>, props: Props): void {\n\t\tif (this.#componentRef) {\n\t\t\tthis.destroy();\n\t\t}\n\t\tthis.#componentRef = this.viewContainerRef.createComponent(slot);\n\t\tthis.#applyProperties(props);\n\t}\n\n\t#applyProperties(props: Props, oldProperties?: Set<string>) {\n\t\tconst properties = Object.keys(props);\n\t\tthis.#properties = properties;\n\t\tconst componentRef = this.#componentRef!;\n\t\tfor (const property of properties) {\n\t\t\tcomponentRef.setInput(property, props[property]);\n\t\t\toldProperties?.delete(property);\n\t\t}\n\t}\n\n\toverride propsChange(_slot: Type<unknown>, props: Props): void {\n\t\tconst oldProperties = new Set(this.#properties);\n\t\tthis.#applyProperties(props, oldProperties);\n\t\tconst componentRef = this.#componentRef!;\n\t\tfor (const property of oldProperties) {\n\t\t\tcomponentRef.setInput(property, undefined);\n\t\t}\n\t}\n\n\toverride destroy(): void {\n\t\tthis.viewContainerRef.clear();\n\t\tthis.#componentRef = undefined;\n\t}\n}\n\nclass TemplateRefSlotHandler<Props extends Record<string, any>> extends SlotHandler<Props, TemplateRef<Props>> {\n\t#viewRef: EmbeddedViewRef<Props> | undefined;\n\t#props?: Props;\n\n\toverride slotChange(slot: TemplateRef<Props>, props: Props): void {\n\t\tif (this.#viewRef) {\n\t\t\tthis.destroy();\n\t\t}\n\t\tprops = {...props};\n\t\tthis.#props = props;\n\t\tthis.#viewRef = this.viewContainerRef.createEmbeddedView(slot, props);\n\t}\n\n\toverride propsChange(_slot: TemplateRef<Props>, props: Props): void {\n\t\tif (this.#viewRef) {\n\t\t\tconst templateProps = this.#props!;\n\t\t\tconst oldProperties = new Set<keyof Props>(Object.keys(templateProps));\n\t\t\tfor (const property of Object.keys(props) as (keyof Props)[]) {\n\t\t\t\ttemplateProps[property] = props[property];\n\t\t\t\toldProperties.delete(property);\n\t\t\t}\n\t\t\tfor (const oldProperty of oldProperties) {\n\t\t\t\tdelete templateProps[oldProperty];\n\t\t\t}\n\t\t\tthis.#viewRef.markForCheck();\n\t\t}\n\t}\n\n\toverride destroy(): void {\n\t\tthis.viewContainerRef.clear();\n\t}\n}\n\nclass ComponentTemplateSlotHandler<\n\tProps extends Record<string, any>,\n\tK extends string,\n\tT extends {[key in K]: Signal<TemplateRef<Props>>},\n> extends SlotHandler<Props, ComponentTemplate<Props, K, T>> {\n\t#componentRef: ComponentRef<T> | undefined;\n\treadonly #templateSlotHandler = new TemplateRefSlotHandler(this.viewContainerRef);\n\t#templateRef: Signal<TemplateRef<Props>> | undefined;\n\n\toverride slotChange(slot: ComponentTemplate<Props, K, T>, props: Props): void {\n\t\tif (this.#componentRef) {\n\t\t\tthis.destroy();\n\t\t}\n\t\tthis.#componentRef = createComponent(slot.component, {\n\t\t\telementInjector: this.viewContainerRef.injector,\n\t\t\tenvironmentInjector: this.viewContainerRef.injector.get(EnvironmentInjector),\n\t\t});\n\t\tthis.#templateRef = this.#componentRef.instance[slot.templateProp];\n\t\tthis.#templateSlotHandler.slotChange(this.#templateRef(), props);\n\t}\n\n\toverride propsChange(_slot: ComponentTemplate<Props, K, T>, props: Props): void {\n\t\tthis.#templateSlotHandler.propsChange(this.#templateRef!(), props);\n\t}\n\n\toverride destroy(): void {\n\t\tthis.#templateSlotHandler.destroy();\n\t\tthis.#componentRef?.destroy();\n\t\tthis.#componentRef = undefined;\n\t}\n}\n\nconst getSlotType = (value: any): undefined | {new (viewContainerRef: ViewContainerRef): SlotHandler<any>} => {\n\tif (!value) return undefined;\n\tconst type = typeof value;\n\tswitch (type) {\n\t\tcase 'string':\n\t\t\treturn StringSlotHandler;\n\t\tcase 'function':\n\t\t\tif (reflectComponentType(value)) {\n\t\t\t\treturn ComponentSlotHandler;\n\t\t\t}\n\t\t\treturn FunctionSlotHandler;\n\t\tcase 'object':\n\t\t\tif (value instanceof TemplateRef) {\n\t\t\t\treturn TemplateRefSlotHandler;\n\t\t\t}\n\t\t\tif (value instanceof ComponentTemplate) {\n\t\t\t\treturn ComponentTemplateSlotHandler;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn undefined;\n};\n\n/**\n * A directive that manages slot content and its properties.\n *\n * @template Props - A record type representing the properties for the slot.\n *\n * @remarks\n * This directive handles changes to the slot content and its properties,\n * and manages the lifecycle of the slot handler.\n */\n@Directive({\n\tselector: '[auSlot]',\n})\nexport class SlotDirective<Props extends Record<string, any>> implements OnChanges, OnDestroy {\n\t/**\n\t * The slot content to be managed.\n\t */\n\treadonly slot = input.required<SlotContent<Props>>({alias: 'auSlot'});\n\t/**\n\t * The properties for the slot content.\n\t */\n\treadonly props = input.required<Props>({alias: 'auSlotProps'});\n\n\tprivate readonly _viewContainerRef = inject(ViewContainerRef);\n\tprivate _slotType: ReturnType<typeof getSlotType>;\n\tprivate _slotHandler: SlotHandler<Props> | undefined;\n\n\t/**\n\t * @param changes SimpleChanges from Angular\n\t * @internal\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tconst slotChange = changes['slot'];\n\t\tconst propsChange = changes['props'];\n\t\tconst slot = this.slot();\n\t\tif (slotChange) {\n\t\t\tconst newSlotType = getSlotType(slot);\n\t\t\tif (newSlotType !== this._slotType) {\n\t\t\t\tthis._slotHandler?.destroy();\n\t\t\t\tthis._slotHandler = newSlotType ? new newSlotType(this._viewContainerRef) : undefined;\n\t\t\t\tthis._slotType = newSlotType;\n\t\t\t}\n\t\t\tthis._slotHandler?.slotChange(slot, this.props());\n\t\t} else if (propsChange) {\n\t\t\tthis._slotHandler?.propsChange(slot, this.props());\n\t\t}\n\t}\n\n\t/** @internal */\n\tngOnDestroy(): void {\n\t\tthis._slotHandler?.destroy();\n\t\tthis._slotHandler = undefined;\n\t}\n}\n","/*\n * Public API Surface of @agnos-ui/angular-headless\n */\nexport * from './generated';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["computed","CoreToaster"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agnos-ui-angular-headless.mjs","sources":["../../src/utils/zone.ts","../../src/utils/stores.ts","../../src/utils/widget.ts","../../src/utils/directive.ts","../../src/types.ts","../../src/config.ts","../../src/components/toast/toaster.service.ts","../../src/utils/coercion.ts","../../src/slot.directive.ts","../../src/index.ts","../../src/agnos-ui-angular-headless.ts"],"sourcesContent":["import {Injectable, NgZone, inject} from '@angular/core';\n\nconst noop = () => {};\nconst identity = <T>(a: T) => a;\n\ntype Wrapper = <T>(fn: T) => T;\n\nconst createObjectWrapper =\n\t(wrap: Wrapper): Wrapper =>\n\t(object) => {\n\t\tif (!object || typeof object !== 'object') {\n\t\t\treturn object;\n\t\t}\n\t\tconst res = {} as any;\n\t\tfor (const key of Object.keys(object)) {\n\t\t\tres[key] = wrap((object as any)[key]);\n\t\t}\n\t\treturn res;\n\t};\n\nconst createReturnValueWrapper =\n\t(wrapReturnValue: Wrapper, wrapResult: Wrapper): Wrapper =>\n\t(fn) =>\n\t\twrapResult(typeof fn === 'function' ? (((...args: any[]) => wrapReturnValue(fn(...args))) as any) : fn);\n\n/**\n * A utility class that provides methods to run functions inside or outside of Angular's NgZone.\n * This can be useful for optimizing performance by avoiding unnecessary change detection cycles.\n */\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ZoneWrapper {\n\treadonly #zone = inject(NgZone);\n\treadonly #hasZone = this.#zone.run(() => NgZone.isInAngularZone()); // check if zone is enabled (can be NoopZone, cf https://angular.io/guide/zone#noopzone)\n\t#runNeeded = false;\n\t#runPlanned = false;\n\n\tplanNgZoneRun = this.#hasZone\n\t\t? () => {\n\t\t\t\tif (this.#zone.isStable) {\n\t\t\t\t\tthis.#runNeeded = true;\n\t\t\t\t\tif (!this.#runPlanned) {\n\t\t\t\t\t\tthis.#runPlanned = true;\n\t\t\t\t\t\tvoid (async () => {\n\t\t\t\t\t\t\tawait Promise.resolve();\n\t\t\t\t\t\t\tthis.#runPlanned = false;\n\t\t\t\t\t\t\tif (this.#runNeeded) {\n\t\t\t\t\t\t\t\tthis.ngZoneRun(noop);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t: noop;\n\n\t/**\n\t * Run the input function synchronously within the Angular zone\n\t *\n\t * @param fn - a function to run\n\t * @returns the value returned by the function\n\t */\n\tngZoneRun<T>(fn: () => T): T {\n\t\tthis.#runNeeded = false;\n\t\treturn this.#zone.run(fn);\n\t}\n\n\tinsideNgZone: Wrapper = this.#hasZone\n\t\t? (fn) => (typeof fn === 'function' ? (((...args: any[]) => this.ngZoneRun(() => fn(...args))) as any) : fn)\n\t\t: identity;\n\tinsideNgZoneWrapFunctionsObject = createObjectWrapper(this.insideNgZone);\n\n\toutsideNgZone: Wrapper = this.#hasZone\n\t\t? (fn) => (typeof fn === 'function' ? (((...args: any[]) => this.#zone.runOutsideAngular(() => fn(...args))) as any) : fn)\n\t\t: identity;\n\n\toutsideNgZoneWrapFunctionsObject = createObjectWrapper(this.outsideNgZone);\n\toutsideNgZoneWrapDirective = createReturnValueWrapper(this.outsideNgZoneWrapFunctionsObject, this.outsideNgZone);\n\toutsideNgZoneWrapDirectivesObject = createObjectWrapper(this.outsideNgZoneWrapDirective);\n}\n","import type {ReadableSignal, WritableSignal as TansuWritableSignal} from '@amadeus-it-group/tansu';\nimport type {Signal, WritableSignal} from '@angular/core';\nimport {DestroyRef, inject, signal} from '@angular/core';\nimport {ZoneWrapper} from './zone';\n\nexport * from '@agnos-ui/core/utils/stores';\n\n/**\n * Converts a Tansu `ReadableSignal` to an Angular `Signal`.\n *\n * This function wraps the provided Tansu signal in an Angular signal, ensuring that updates\n * are properly handled within Angular's zone. It subscribes to the Tansu signal and updates\n * the Angular signal with the received values. The equality function for the Angular signal\n * is set to always return false, ensuring that every new value from the Tansu signal triggers\n * an update.\n *\n * @template T - The type of the value emitted by the signals.\n * @param tansuSignal - The Tansu signal to convert.\n * @returns - The resulting Angular signal.\n */\nexport const toAngularSignal = <T>(tansuSignal: ReadableSignal<T>): Signal<T> => {\n\tconst zoneWrapper = inject(ZoneWrapper);\n\t// The equality of objects from 2 sequential emissions is already checked in tansu signal.\n\t// Here we'll always emit the value received from tansu signal, therefor the equality function\n\tconst res = signal(undefined as any as T, {equal: () => false});\n\tconst subscription = zoneWrapper.outsideNgZone(tansuSignal.subscribe)((value) => {\n\t\tres.set(value);\n\t\tzoneWrapper.planNgZoneRun();\n\t});\n\tinject(DestroyRef).onDestroy(zoneWrapper.outsideNgZone(subscription));\n\n\treturn res.asReadonly();\n};\n\n/**\n * Converts a Tansu `WritableSignal` to an Angular `WritableSignal`.\n *\n * This function wraps the provided Tansu signal in an Angular signal, ensuring that updates\n * are properly handled within Angular's zone. It subscribes to the Tansu signal and updates\n * the Angular signal with the received values. The equality function for the Angular signal\n * is set to always return false, ensuring that every new value from the Tansu signal triggers\n * an update.\n *\n * @template T - The type of the value emitted by the signals.\n * @param tansuSignal - The Tansu signal to convert.\n * @returns - The resulting Angular signal.\n */\nexport const toAngularWritableSignal = <T>(tansuSignal: TansuWritableSignal<T>): WritableSignal<T> => {\n\tconst zoneWrapper = inject(ZoneWrapper);\n\tconst res = signal(undefined as any as T, {equal: () => false});\n\tconst set = res.set.bind(res);\n\tconst subscription = zoneWrapper.outsideNgZone(tansuSignal.subscribe)((value) => {\n\t\tset(value);\n\t\tzoneWrapper.planNgZoneRun();\n\t});\n\tinject(DestroyRef).onDestroy(zoneWrapper.outsideNgZone(subscription));\n\tres.set = zoneWrapper.outsideNgZone(tansuSignal.set);\n\tres.update = zoneWrapper.outsideNgZone(tansuSignal.update);\n\treturn res;\n};\n","import {computed, type ReadableSignal, writable} from '@amadeus-it-group/tansu';\nimport type {AfterContentChecked, OnChanges, OnInit, SimpleChanges, TemplateRef} from '@angular/core';\nimport {Directive, Injector, inject, runInInjectionContext} from '@angular/core';\nimport type {AngularState, AngularWidget, IsSlotContent, SlotContent, Widget, WidgetFactory, WidgetProps} from '../types';\nimport {toAngularSignal, toReadableStore} from './stores';\nimport {ZoneWrapper} from './zone';\n\nexport * from '@agnos-ui/core/utils/widget';\n\nconst createPatchSlots = <T extends object>(set: (object: Partial<T>) => void) => {\n\tlet lastValue: Partial<T> = {};\n\treturn (object: T) => {\n\t\tconst newValue: Partial<T> = {};\n\t\tlet hasChange = false;\n\t\tfor (const key of Object.keys(object) as (string & keyof T)[]) {\n\t\t\tconst objectKey = (object as any)[key];\n\t\t\tif (objectKey != null) {\n\t\t\t\t// only use defined slots\n\t\t\t\tnewValue[key] = objectKey;\n\t\t\t}\n\t\t\tif (objectKey != lastValue[key]) {\n\t\t\t\thasChange = true;\n\t\t\t}\n\t\t}\n\t\tif (hasChange) {\n\t\t\tlastValue = newValue;\n\t\t\tset(newValue);\n\t\t}\n\t};\n};\n\n/**\n * Call a widget factory using provided configs.\n *\n * The resulting widget can be easily hooked into the lifecycle of an Angular component through {@link BaseWidgetDirective}.\n *\n * @param factory - the widget factory to call\n * @param options - the options\n * @param options.defaultConfig - the default config of the widget\n * @param options.widgetConfig - the config of the widget, overriding the defaultConfig\n * @param options.events - the events of the widget\n * @param options.afterInit - a callback to call after successful setup of the widget\n * @param options.slotTemplates - a function to provide all slot templates using child queries\n * @param options.slotChildren - a function to provide the default children slot using a view query\n * @returns the widget\n */\nexport const callWidgetFactoryWithConfig = <W extends Widget>(\n\tfactory: WidgetFactory<W>,\n\toptions?: {\n\t\tdefaultConfig?: Partial<WidgetProps<W>> | ReadableSignal<Partial<WidgetProps<W>> | undefined>;\n\t\twidgetConfig?: null | undefined | ReadableSignal<Partial<WidgetProps<W>> | undefined>;\n\t\tevents?: Partial<Pick<WidgetProps<W>, keyof WidgetProps<W> & `on${string}`>>;\n\t\tafterInit?: (widget: AngularWidget<W>) => void;\n\t\tslotTemplates?: () => {\n\t\t\t[K in keyof WidgetProps<W> as IsSlotContent<WidgetProps<W>[K]> extends 0 ? never : K]: WidgetProps<W>[K] extends SlotContent<infer U>\n\t\t\t\t? TemplateRef<U> | undefined\n\t\t\t\t: never;\n\t\t};\n\t\tslotChildren?: () => TemplateRef<void> | undefined;\n\t},\n): AngularWidget<W> => {\n\tlet {defaultConfig, widgetConfig, events, afterInit, slotTemplates, slotChildren} = options ?? {};\n\tconst injector = inject(Injector);\n\tconst slots$ = writable({});\n\tconst props = {};\n\tlet initDone: () => void;\n\tconst patchSlots = createPatchSlots(slots$.set);\n\n\tconst res = {\n\t\tinitialized: new Promise<void>((resolve) => {\n\t\t\tinitDone = resolve;\n\t\t}),\n\t\tupdateSlots: () => {\n\t\t\tif (slotTemplates) {\n\t\t\t\tpatchSlots(slotTemplates());\n\t\t\t}\n\t\t},\n\t\tpatch(newProps: Partial<WidgetProps<W>>) {\n\t\t\t// temporary function replaced in ngInit\n\t\t\tObject.assign(props, newProps);\n\t\t},\n\t\tngInit() {\n\t\t\trunInInjectionContext(injector, () => {\n\t\t\t\tconst zoneWrapper = inject(ZoneWrapper);\n\t\t\t\tfactory = zoneWrapper.outsideNgZone(factory);\n\t\t\t\tconst defaultConfig$ = toReadableStore(defaultConfig);\n\t\t\t\tevents = zoneWrapper.insideNgZoneWrapFunctionsObject(events);\n\t\t\t\tconst widget = factory({\n\t\t\t\t\tconfig: computed(() => ({\n\t\t\t\t\t\t...defaultConfig$(),\n\t\t\t\t\t\tchildren: slotChildren?.(),\n\t\t\t\t\t\t...widgetConfig?.(),\n\t\t\t\t\t\t...slots$(),\n\t\t\t\t\t\t...(events as Partial<WidgetProps<W>>),\n\t\t\t\t\t})),\n\t\t\t\t\tprops,\n\t\t\t\t});\n\t\t\t\tObject.assign(res, {\n\t\t\t\t\tpatch: zoneWrapper.outsideNgZone(widget.patch),\n\t\t\t\t\tdirectives: zoneWrapper.outsideNgZoneWrapDirectivesObject(widget.directives),\n\t\t\t\t\tapi: zoneWrapper.outsideNgZoneWrapFunctionsObject(widget.api),\n\t\t\t\t\tstate: Object.fromEntries(\n\t\t\t\t\t\tObject.entries<ReadableSignal<unknown>>(widget.stores as any).map(([key, val]) => [key.slice(0, -1), toAngularSignal(val)]),\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t\tafterInit?.(res as AngularWidget<W>);\n\t\t\t\tinitDone();\n\t\t\t});\n\t\t},\n\t};\n\n\treturn res as AngularWidget<W>;\n};\n\nfunction patchSimpleChanges(patchFn: (obj: any) => void, changes: SimpleChanges) {\n\tconst obj: any = {};\n\tfor (const [key, simpleChange] of Object.entries(changes)) {\n\t\tif (simpleChange !== undefined) {\n\t\t\tobj[key] = simpleChange.currentValue;\n\t\t}\n\t}\n\tpatchFn(obj);\n}\n\n/**\n * An abstract base class for widget directives, providing common functionality\n * for Angular components that interact with widgets.\n *\n * @template W - The type of the widget.\n */\n@Directive()\nexport abstract class BaseWidgetDirective<W extends Widget> implements OnChanges, OnInit, AfterContentChecked {\n\tconstructor(\n\t\t// eslint-disable-next-line @angular-eslint/prefer-inject\n\t\tprivate readonly _widget: AngularWidget<W>,\n\t\t// eslint-disable-next-line @angular-eslint/prefer-inject\n\t\tprivate readonly propRenames?: Record<string, string>,\n\t) {}\n\n\t/**\n\t * Retrieves the widget api\n\t * @returns the widget api\n\t */\n\tget api(): W['api'] {\n\t\treturn this._widget.api;\n\t}\n\n\t/**\n\t * Retrieves the widget state. Each property of the state is exposed through an Angular {@link https://angular.dev/api/core/Signal | Signal}\n\t * @returns the widget state\n\t */\n\tget state(): AngularState<W> {\n\t\treturn this._widget.state;\n\t}\n\n\t/**\n\t * Retrieves the widget directives\n\t * @returns the widget directives\n\t */\n\tget directives(): W['directives'] {\n\t\treturn this._widget.directives;\n\t}\n\n\t/**\n\t * @inheritdoc\n\t * @internal\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tconst renamedChanges: SimpleChanges = {};\n\t\tif (this.propRenames) {\n\t\t\tfor (const [key, simpleChange] of Object.entries(changes)) {\n\t\t\t\tconst renamedKey = this.propRenames[key] ?? key;\n\t\t\t\trenamedChanges[renamedKey] = simpleChange;\n\t\t\t}\n\t\t} else {\n\t\t\tObject.assign(renamedChanges, changes);\n\t\t}\n\t\tpatchSimpleChanges(this._widget.patch, renamedChanges);\n\t}\n\n\t/** @internal */\n\tngOnInit(): void {\n\t\tthis._widget.ngInit();\n\t}\n\n\t/** @internal */\n\tngAfterContentChecked(): void {\n\t\tthis._widget.updateSlots();\n\t}\n}\n","import type {Directive as AgnosUIDirective, DirectiveAndParam, DirectivesAndOptParam} from '@agnos-ui/core/types';\nimport {multiDirective} from '@agnos-ui/core/utils/directive';\nimport {isPlatformServer} from '@angular/common';\nimport type {OnChanges} from '@angular/core';\nimport {DestroyRef, Directive, ElementRef, Injector, PLATFORM_ID, afterNextRender, inject, runInInjectionContext, input} from '@angular/core';\n\nexport * from '@agnos-ui/core/utils/directive';\n\n/**\n * A utility function to manage the lifecycle of a directive for a host element.\n *\n * This function handles the creation, updating, and destruction of a directive instance\n * associated with a host element. It ensures that the directive is called appropriately\n * based on the platform (server or client) and manages the directive's lifecycle within\n * the Angular injection context.\n *\n * @template T - The type of parameters that the directive accepts.\n *\n * @param [directive] - The directive to be applied to the host element.\n * @param [params] - The parameters to be passed to the directive.\n *\n * @returns An object containing an `update` function to update the directive and its parameters.\n */\nexport const useDirectiveForHost = <T>(directive?: AgnosUIDirective<T>, params?: T) => {\n\tconst injector = inject(Injector);\n\tconst ref = inject(ElementRef);\n\tconst platform = inject(PLATFORM_ID);\n\n\tlet instance: undefined | ReturnType<AgnosUIDirective<T>>;\n\tlet plannedCallDirective = false;\n\n\tconst callDirective = isPlatformServer(platform)\n\t\t? () => {\n\t\t\t\tinstance = directive?.(ref.nativeElement, params as T);\n\t\t\t}\n\t\t: () => {\n\t\t\t\tif (plannedCallDirective || !directive) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tplannedCallDirective = true;\n\t\t\t\trunInInjectionContext(injector, () => {\n\t\t\t\t\tafterNextRender(() => {\n\t\t\t\t\t\tplannedCallDirective = false;\n\t\t\t\t\t\tinstance = directive?.(ref.nativeElement, params as T);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\n\tfunction destroyDirectiveInstance() {\n\t\tconst oldInstance = instance;\n\t\tinstance = undefined;\n\t\tdirective = undefined;\n\t\toldInstance?.destroy?.();\n\t}\n\n\tinject(DestroyRef).onDestroy(destroyDirectiveInstance);\n\n\tfunction update(newDirective?: AgnosUIDirective<T>, newParams?: T) {\n\t\tif (newDirective !== directive) {\n\t\t\tvoid destroyDirectiveInstance();\n\t\t\tdirective = newDirective;\n\t\t\tparams = newParams;\n\t\t\tcallDirective();\n\t\t} else if (newParams != params) {\n\t\t\tparams = newParams;\n\t\t\tinstance?.update?.(params as T);\n\t\t}\n\t}\n\n\tcallDirective();\n\treturn {update};\n};\n\n/**\n * A directive that allows the use of another directive with optional parameters.\n *\n * @template T - The type of the parameter that can be passed to the directive.\n *\n * @remarks\n * This directive uses a private instance of {@link useDirectiveForHost} to manage the directive and its parameter.\n */\n@Directive({\n\tselector: '[auUse]',\n})\nexport class UseDirective<T> implements OnChanges {\n\treadonly use = input.required<AgnosUIDirective | DirectiveAndParam<T>>({alias: 'auUse'});\n\treadonly #useDirective = useDirectiveForHost<T>();\n\n\t/** @internal */\n\tngOnChanges() {\n\t\tconst use = this.use();\n\t\tconst [directive, param] = Array.isArray(use) ? use : [use as any];\n\t\tthis.#useDirective.update(directive, param);\n\t}\n}\n\n/**\n * A directive that allows the use of multiple directives on a host element.\n *\n * @template T - A tuple type representing the directives and their optional parameters.\n */\n@Directive({\n\tselector: '[auUseMulti]',\n})\nexport class UseMultiDirective<T extends any[]> implements OnChanges {\n\t/**\n\t * An input property that takes a tuple of directives and their optional parameters.\n\t */\n\treadonly useMulti = input.required<DirectivesAndOptParam<T>>({alias: 'auUseMulti'});\n\n\treadonly #useDirective = useDirectiveForHost<DirectivesAndOptParam<T>>();\n\n\t/** @internal */\n\tngOnChanges() {\n\t\tthis.#useDirective.update(multiDirective, this.useMulti());\n\t}\n}\n","import type {SlotContent as CoreSlotContent, Widget, WidgetState, Extends} from '@agnos-ui/core/types';\nimport type {Signal, TemplateRef, Type} from '@angular/core';\nimport {computed, Directive, input} from '@angular/core';\n\nexport * from '@agnos-ui/core/types';\n\n/**\n * Represents a template for a component with specified properties.\n *\n * @template Props - The type of properties that the template accepts.\n * @template K - The key in the template object that maps to the template reference.\n * @template T - An object type where each key of type K maps to a TemplateRef of Props.\n *\n * @param component - The component type that contains the template.\n * @param templateProp - The key in the component that maps to the template reference.\n */\nexport class ComponentTemplate<Props, K extends string, T extends {[key in K]: Signal<TemplateRef<Props>>}> {\n\tconstructor(\n\t\tpublic readonly component: Type<T>,\n\t\tpublic readonly templateProp: K,\n\t) {}\n}\n\n/**\n * Represents the content that can be used in a slot.\n *\n * @template Props - The type of the properties that the slot content can accept.\n *\n * This type can be one of the following:\n * - `undefined | null`: Nullish value\n * - `string`: A static string\n * - `(props: Props) => string`: A function that takes props as input and returns a string template\n * - `TemplateRef<Props>`: A reference to an Angular template with the specified properties.\n * - `Type<unknown>`: A type representing an unknown component or directive.\n * - `ComponentTemplate<Props, any, any>`: A component template with the specified properties.\n */\nexport type SlotContent<Props extends object = object> =\n\t| CoreSlotContent<Props>\n\t| TemplateRef<Props>\n\t| Type<unknown>\n\t| ComponentTemplate<Props, any, any>;\n\n/**\n * A directive representing a slot component that can be used to manage the state and context of a widget.\n *\n * @template W - The type of the widget that this slot component manages.\n */\n@Directive()\nexport abstract class SlotComponent<W extends Widget> {\n\t/**\n\t * The state of the widget. Each property of the state is exposed through an Angular {@link https://angular.dev/api/core/Signal | Signal}\n\t */\n\treadonly state = input.required<AngularState<W>>();\n\t/**\n\t * all the api functions to interact with the widget\n\t */\n\treadonly api = input.required<W['api']>();\n\t/**\n\t * directives to be used on html elements in the template of the slot\n\t */\n\treadonly directives = input.required<W['directives']>();\n\t/**\n\t * The slot context, to be used when the slot component uses other slots.\n\t */\n\treadonly slotContext = computed(() => ({state: this.state(), api: this.api(), directives: this.directives()}));\n}\n\n/**\n * Type utility to determine if a given type `T` is or extends `SlotContent<any>`.\n *\n * This type alias uses conditional types to check if `T` extends `SlotContent<any>` or if `SlotContent<any>` extends `T`.\n * If either condition is true, it resolves to `T`, otherwise it resolves to `0`.\n *\n * @template T - The type to be checked.\n */\nexport type IsSlotContent<T> = Extends<T, SlotContent<any>> | Extends<SlotContent<any>, T> extends 1 ? T : 0;\n\n/**\n * Represents the state of an Angular widget, where each key in the widget's state\n * is mapped to a Signal of the corresponding state value.\n *\n * @template W - The type of the widget.\n */\nexport type AngularState<W extends Widget> = {[key in keyof WidgetState<W>]: Signal<WidgetState<W>[key]>};\n\n/**\n * Represents an Angular widget that extends a base widget type.\n *\n * @template W - The type of the base widget.\n */\nexport interface AngularWidget<W extends Widget> extends Pick<W, 'api' | 'directives' | 'patch'> {\n\t/**\n\t * A promise that resolves when the widget is initialized\n\t */\n\tinitialized: Promise<void>;\n\t/**\n\t * The state of the widget. Each property of the state is exposed through an Angular {@link https://angular.dev/api/core/Signal | Signal}\n\t */\n\tstate: AngularState<W>;\n\t/**\n\t * A function to initialize the Angular widget.\n\t */\n\tngInit: () => void;\n\t/**\n\t * A utility function to update the slot properties.\n\t */\n\tupdateSlots: () => void;\n}\n\n/**\n * Represents the context for a widget slot, providing access to the widget and its state.\n *\n * @template W - The type of the widget.\n */\nexport interface WidgetSlotContext<W extends Widget> extends Pick<W, 'api' | 'directives'> {\n\t/**\n\t * The state of the widget. Each property of the state is exposed through an Angular {@link https://angular.dev/api/core/Signal | Signal}\n\t */\n\tstate: AngularState<W>;\n}\n","import type {Widget, WidgetFactory, WidgetProps} from '@agnos-ui/core/types';\nimport {FACTORY_WIDGET_NAME} from '@agnos-ui/core/types';\nimport type {Partial2Levels, WidgetsConfigStore, WidgetsConfig} from '@agnos-ui/core/config';\nimport {createWidgetsConfig} from '@agnos-ui/core/config';\nimport type {ReadableSignal} from '@amadeus-it-group/tansu';\nimport {computed} from '@amadeus-it-group/tansu';\nimport type {FactoryProvider, TemplateRef} from '@angular/core';\nimport {InjectionToken, Injector, Optional, SkipSelf, inject, runInInjectionContext} from '@angular/core';\nimport type {AngularWidget, IsSlotContent, SlotContent} from './types';\nimport {callWidgetFactoryWithConfig} from './utils/widget';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type {BaseWidgetDirective} from './utils/widget';\n\nexport * from '@agnos-ui/core/config';\n\ntype AdaptParentConfig<Config> = (config: Partial2Levels<Config>) => Partial2Levels<Config>;\ntype InjectWidgetsConfig<Config> = (config?: Partial2Levels<Config>) => WidgetsConfigStore<Config>;\n\n/**\n * A factory to create the utilities to allow widgets to be context-aware.\n *\n * It can be used when extending the core and creating new widgets.\n *\n * @template Config - The type of the widgets configuration object.\n * @param widgetsConfigInjectionToken - the widgets config injection token\n * @returns the utilities to create / manage widgets and contexts\n */\nexport const widgetsConfigFactory = <Config extends {[widgetName: string]: object} = WidgetsConfig>(\n\twidgetsConfigInjectionToken = new InjectionToken<WidgetsConfigStore<Config>>('widgetsConfig'),\n) => {\n\t/**\n\t * Creates a provider of widgets default configuration that inherits from any widgets default configuration already defined at an upper level\n\t * in the Angular dependency injection system. It contains its own set of widgets configuration properties that override the same properties form\n\t * the parent configuration.\n\t *\n\t * @remarks\n\t * The configuration is computed from the parent configuration in two steps:\n\t * - first step: the parent configuration is transformed by the adaptParentConfig function (if specified).\n\t * If adaptParentConfig is not specified, this step is skipped.\n\t * - second step: the configuration from step 1 is merged (2-levels deep) with the own$ store. The own$ store initially contains\n\t * an empty object (i.e. no property from the parent is overridden). It can be changed by calling set on the store returned by\n\t * {@link injectWidgetsConfig}.\n\t *\n\t * @param adaptParentConfig - optional function that receives a 2-levels copy of the widgets default configuration\n\t * defined at an upper level in the Angular dependency injection system (or an empty object if there is none) and returns the widgets\n\t * default configuration to be used.\n\t * It is called only if the configuration is needed, and was not yet computed for the current value of the parent configuration.\n\t * It is called in a tansu reactive context, so it can use any tansu store and will be called again if those stores change.\n\t * It is also called in an Angular injection context, so it can call the Angular inject function to get and use dependencies from the\n\t * Angular dependency injection system.\n\t *\n\t * @returns DI provider to be included a list of `providers` (for example at a component level or\n\t * any other level of the Angular dependency injection system)\n\t *\n\t * @example\n\t * ```typescript\n\t * @Component({\n\t * // ...\n\t * providers: [\n\t * provideWidgetsConfig((parentConfig) => {\n\t * // first step configuration: transforms the parent configuration\n\t * parentConfig.rating = parentConfig.rating ?? {};\n\t * parentConfig.rating.className = `${parentConfig.rating.className ?? ''} my-rating-extra-class`\n\t * return parentConfig;\n\t * })\n\t * ]\n\t * })\n\t * class MyComponent {\n\t * widgetsConfig = injectWidgetsConfig();\n\t * constructor() {\n\t * this.widgetsConfig.set({\n\t * // second step configuration: overrides the parent configuration\n\t * rating: {\n\t * slotStar: MyCustomSlotStar\n\t * }\n\t * });\n\t * }\n\t * // ...\n\t * }\n\t * ```\n\t */\n\tconst provideWidgetsConfig = (adaptParentConfig?: AdaptParentConfig<Config>): FactoryProvider => ({\n\t\tprovide: widgetsConfigInjectionToken,\n\t\tuseFactory: (parent: WidgetsConfigStore<Config> | null) => {\n\t\t\tif (adaptParentConfig) {\n\t\t\t\tconst injector = inject(Injector);\n\t\t\t\tconst originalAdaptParentConfig = adaptParentConfig;\n\t\t\t\tadaptParentConfig = (value) => runInInjectionContext(injector, () => originalAdaptParentConfig(value));\n\t\t\t}\n\t\t\treturn createWidgetsConfig(parent ?? undefined, adaptParentConfig);\n\t\t},\n\t\tdeps: [[new SkipSelf(), new Optional(), widgetsConfigInjectionToken]],\n\t});\n\n\t/**\n\t * Returns the widgets default configuration store that was provided in the current injection context.\n\t * Throws if the no widgets default configuration store was provided.\n\t *\n\t * @param defaultConfig - values to set as soon as the config is injected\n\t * @remarks\n\t * This function must be called from an injection context, such as a constructor, a factory function, a field initializer or\n\t * a function used with {@link https://angular.io/api/core/runInInjectionContext | runInInjectionContext}.\n\t *\n\t * @returns the widgets default configuration store.\n\t */\n\tconst injectWidgetsConfig: InjectWidgetsConfig<Config> = (defaultConfig?: Partial2Levels<Config>) => {\n\t\tconst widgetsConfig = inject(widgetsConfigInjectionToken);\n\t\tif (defaultConfig) {\n\t\t\twidgetsConfig.set(defaultConfig);\n\t\t}\n\t\treturn widgetsConfig;\n\t};\n\n\t/**\n\t * Injects the configuration for a specific widget.\n\t *\n\t * @template N - The key of the widget configuration in the `Config` type.\n\t * @param widgetName - The name of the widget whose configuration is to be injected.\n\t * @returns A `ReadableSignal` that provides a partial configuration of the specified widget or `undefined` if the configuration is not available.\n\t */\n\tconst injectWidgetConfig = <N extends keyof Config>(widgetName: N): ReadableSignal<Partial<Config[N]> | undefined> => {\n\t\tconst widgetsConfig = inject(widgetsConfigInjectionToken, {optional: true});\n\t\treturn computed(() => widgetsConfig?.()[widgetName]);\n\t};\n\n\t/**\n\t * Creates and initializes a widget using the provided factory and configuration options.\n\t *\n\t * The resulting widget can be easily hooked into the lifecycle of an Angular component through {@link BaseWidgetDirective}.\n\t *\n\t * @template W - The type of the widget.\n\t * @param factory - The factory function to create the widget.\n\t * @param options - The options for creating the widget.\n\t * @param options.defaultConfig - The default configuration for the widget.\n\t * @param options.events - The event handlers for the widget.\n\t * @param options.slotTemplates - A function that returns the slot templates for the widget.\n\t * @param options.slotChildren - A function that returns the slot children for the widget.\n\t * @param options.afterInit - A callback function to be called after the widget is initialized.\n\t * @returns The initialized widget.\n\t */\n\tconst callWidgetFactory = <W extends Widget>(\n\t\tfactory: WidgetFactory<W>,\n\t\toptions?: {\n\t\t\tdefaultConfig?: Partial<WidgetProps<W>> | ReadableSignal<Partial<WidgetProps<W>> | undefined>;\n\t\t\tevents?: Partial<Pick<WidgetProps<W>, keyof WidgetProps<W> & `on${string}`>>;\n\t\t\tafterInit?: (widget: AngularWidget<W>) => void;\n\t\t\tslotTemplates?: () => {\n\t\t\t\t[K in keyof WidgetProps<W> as IsSlotContent<WidgetProps<W>[K]> extends 0 ? never : K]: WidgetProps<W>[K] extends SlotContent<infer U>\n\t\t\t\t\t? TemplateRef<U> | undefined\n\t\t\t\t\t: never;\n\t\t\t};\n\t\t\tslotChildren?: () => TemplateRef<void> | undefined;\n\t\t},\n\t): AngularWidget<W> =>\n\t\tcallWidgetFactoryWithConfig(factory, {\n\t\t\twidgetConfig: factory[FACTORY_WIDGET_NAME] ? (injectWidgetConfig(factory[FACTORY_WIDGET_NAME]) as any) : undefined,\n\t\t\tdefaultConfig: options?.defaultConfig,\n\t\t\tevents: options?.events,\n\t\t\tafterInit: options?.afterInit,\n\t\t\tslotTemplates: options?.slotTemplates as any,\n\t\t\tslotChildren: options?.slotChildren,\n\t\t});\n\n\treturn {\n\t\t/**\n\t\t * Dependency Injection token which can be used to provide or inject the widgets default configuration store.\n\t\t */\n\t\twidgetsConfigInjectionToken,\n\t\tprovideWidgetsConfig,\n\t\tinjectWidgetsConfig,\n\t\tinjectWidgetConfig,\n\t\tcallWidgetFactory,\n\t};\n};\n\nexport const {widgetsConfigInjectionToken, provideWidgetsConfig, injectWidgetConfig, injectWidgetsConfig, callWidgetFactory} =\n\twidgetsConfigFactory<WidgetsConfig>();\n","import {type ToastProps} from '@agnos-ui/core/components/toast';\nimport type {ToasterToast, ToasterProps} from '@agnos-ui/core/components/toast';\nimport {Toaster as CoreToaster} from '@agnos-ui/core/components/toast';\nimport {toAngularSignal, toAngularWritableSignal} from '../../generated';\nimport type {Signal, WritableSignal} from '@angular/core';\nimport {inject, Injectable, InjectionToken} from '@angular/core';\n\n/**\n * Injection token used to provide configuration properties for the toaster service.\n *\n * This token is associated with the `ToasterProps` interface, which defines the\n * structure of the configuration object. It allows dependency injection to supply\n * custom properties for the toaster service, such as default settings or behavior.\n */\nexport const ToastPropsToken = new InjectionToken<ToasterProps>('ToasterProps');\n\n/**\n * Create a toaster provider with helpers and state.\n * @param props Options for the toaster.\n * @template Props Type of the toast properties.\n */\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ToasterService<Props extends Partial<ToastProps>> {\n\treadonly optionsCore = inject(ToastPropsToken, {optional: true});\n\treadonly #toaster: CoreToaster<Props> = new CoreToaster<Props>(this.optionsCore ?? undefined);\n\treadonly toasts: Signal<ToasterToast<Props>[]> = toAngularSignal(this.#toaster.toasts);\n\treadonly options: WritableSignal<ToasterProps> = toAngularWritableSignal(this.#toaster.options);\n\treadonly addToast = this.#toaster.addToast;\n\treadonly removeToast = this.#toaster.removeToast;\n\treadonly eventsDirective = this.#toaster.eventsDirective;\n\treadonly closeAll = this.#toaster.closeAll;\n}\n","import {booleanAttribute, numberAttribute} from '@angular/core';\n\n/**\n * Transforms a value (typically a string) to a boolean.\n * Intended to be used as a transform function of an input.\n *\n * @example\n * ```readonly status = input({ transform: auBooleanAttribute });```\n * @param value - Value to be transformed.\n * @returns the value transformed\n */\nexport function auBooleanAttribute(value: unknown): boolean | undefined {\n\tif (value === undefined) {\n\t\treturn undefined;\n\t}\n\treturn booleanAttribute(value);\n}\n\n/**\n * Transforms a value (typically a string) to a number.\n * Intended to be used as a transform function of an input.\n * @param value - Value to be transformed.\n *\n * @example\n * ```readonly id = input({ transform: auNumberAttribute });```\n * @returns the value transformed\n */\nexport function auNumberAttribute(value: unknown): number | undefined {\n\tif (value === undefined) {\n\t\treturn undefined;\n\t}\n\treturn numberAttribute(value);\n}\n\n/**\n * Transforms a value (typically a string) to a number.\n * Intended to be used as a transform function of an input.\n * @param value - Value to be transformed. `null` or `undefined`, returns the value unchanged.\n *\n * @example\n * ```readonly id = input({ transform: auNumberOrNullAttribute });```\n * @returns the value transformed\n */\nexport function auNumberOrNullAttribute(value: unknown): number | null | undefined {\n\tif (value == null) {\n\t\treturn value;\n\t}\n\treturn numberAttribute(value);\n}\n","import type {ComponentRef, EmbeddedViewRef, OnChanges, OnDestroy, Signal, SimpleChanges, Type} from '@angular/core';\nimport {\n\tComponent,\n\tDirective,\n\tEnvironmentInjector,\n\tTemplateRef,\n\tViewContainerRef,\n\tcreateComponent,\n\tinject,\n\treflectComponentType,\n\tChangeDetectionStrategy,\n\tinput,\n\tviewChild,\n} from '@angular/core';\nimport type {SlotContent} from './types';\nimport {ComponentTemplate} from './types';\n\nabstract class SlotHandler<Props extends Record<string, any>, Slot extends SlotContent<Props> = SlotContent<Props>> {\n\tconstructor(public viewContainerRef: ViewContainerRef) {}\n\tslotChange(_slot: Slot, _props: Props) {}\n\tpropsChange(_slot: Slot, _props: Props) {}\n\tdestroy() {}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `<ng-template #text let-content=\"content\">{{ content }}</ng-template>`,\n})\nclass StringSlotComponent {\n\treadonly text = viewChild.required<\n\t\tTemplateRef<{\n\t\t\tcontent: string;\n\t\t}>\n\t>('text');\n}\nconst stringSlotComponentTemplate = new ComponentTemplate<{content: string}, 'text', StringSlotComponent>(StringSlotComponent, 'text');\n\nclass StringSlotHandler<Props extends Record<string, any>> extends SlotHandler<Props, string> {\n\treadonly #templateRefSlotHandler = new ComponentTemplateSlotHandler<{content: string}, 'text', StringSlotComponent>(this.viewContainerRef);\n\t#initialized = false;\n\n\toverride slotChange(content: string): void {\n\t\tif (!this.#initialized) {\n\t\t\tthis.#initialized = true;\n\t\t\tthis.#templateRefSlotHandler.slotChange(stringSlotComponentTemplate, {content});\n\t\t} else {\n\t\t\tthis.#templateRefSlotHandler.propsChange(stringSlotComponentTemplate, {content});\n\t\t}\n\t}\n\n\toverride destroy(): void {\n\t\tthis.#templateRefSlotHandler.destroy();\n\t}\n}\n\nclass FunctionSlotHandler<Props extends Record<string, any>> extends SlotHandler<Props, (props: Props) => string> {\n\treadonly #stringSlotHandler = new StringSlotHandler(this.viewContainerRef);\n\n\toverride slotChange(slot: (props: Props) => string, props: Props): void {\n\t\tthis.#stringSlotHandler.slotChange(slot(props));\n\t}\n\n\toverride propsChange(slot: (props: Props) => string, props: Props): void {\n\t\tthis.#stringSlotHandler.slotChange(slot(props));\n\t}\n\n\toverride destroy(): void {\n\t\tthis.#stringSlotHandler.destroy();\n\t}\n}\n\nclass ComponentSlotHandler<Props extends Record<string, any>> extends SlotHandler<Props, Type<unknown>> {\n\t#componentRef: ComponentRef<any> | undefined;\n\t#properties?: string[];\n\n\toverride slotChange(slot: Type<unknown>, props: Props): void {\n\t\tif (this.#componentRef) {\n\t\t\tthis.destroy();\n\t\t}\n\t\tthis.#componentRef = this.viewContainerRef.createComponent(slot);\n\t\tthis.#applyProperties(props);\n\t}\n\n\t#applyProperties(props: Props, oldProperties?: Set<string>) {\n\t\tconst properties = Object.keys(props);\n\t\tthis.#properties = properties;\n\t\tconst componentRef = this.#componentRef!;\n\t\tfor (const property of properties) {\n\t\t\tcomponentRef.setInput(property, props[property]);\n\t\t\toldProperties?.delete(property);\n\t\t}\n\t}\n\n\toverride propsChange(_slot: Type<unknown>, props: Props): void {\n\t\tconst oldProperties = new Set(this.#properties);\n\t\tthis.#applyProperties(props, oldProperties);\n\t\tconst componentRef = this.#componentRef!;\n\t\tfor (const property of oldProperties) {\n\t\t\tcomponentRef.setInput(property, undefined);\n\t\t}\n\t}\n\n\toverride destroy(): void {\n\t\tthis.viewContainerRef.clear();\n\t\tthis.#componentRef = undefined;\n\t}\n}\n\nclass TemplateRefSlotHandler<Props extends Record<string, any>> extends SlotHandler<Props, TemplateRef<Props>> {\n\t#viewRef: EmbeddedViewRef<Props> | undefined;\n\t#props?: Props;\n\n\toverride slotChange(slot: TemplateRef<Props>, props: Props): void {\n\t\tif (this.#viewRef) {\n\t\t\tthis.destroy();\n\t\t}\n\t\tprops = {...props};\n\t\tthis.#props = props;\n\t\tthis.#viewRef = this.viewContainerRef.createEmbeddedView(slot, props);\n\t}\n\n\toverride propsChange(_slot: TemplateRef<Props>, props: Props): void {\n\t\tif (this.#viewRef) {\n\t\t\tconst templateProps = this.#props!;\n\t\t\tconst oldProperties = new Set<keyof Props>(Object.keys(templateProps));\n\t\t\tfor (const property of Object.keys(props) as (keyof Props)[]) {\n\t\t\t\ttemplateProps[property] = props[property];\n\t\t\t\toldProperties.delete(property);\n\t\t\t}\n\t\t\tfor (const oldProperty of oldProperties) {\n\t\t\t\tdelete templateProps[oldProperty];\n\t\t\t}\n\t\t\tthis.#viewRef.markForCheck();\n\t\t}\n\t}\n\n\toverride destroy(): void {\n\t\tthis.viewContainerRef.clear();\n\t}\n}\n\nclass ComponentTemplateSlotHandler<\n\tProps extends Record<string, any>,\n\tK extends string,\n\tT extends {[key in K]: Signal<TemplateRef<Props>>},\n> extends SlotHandler<Props, ComponentTemplate<Props, K, T>> {\n\t#componentRef: ComponentRef<T> | undefined;\n\treadonly #templateSlotHandler = new TemplateRefSlotHandler(this.viewContainerRef);\n\t#templateRef: Signal<TemplateRef<Props>> | undefined;\n\n\toverride slotChange(slot: ComponentTemplate<Props, K, T>, props: Props): void {\n\t\tif (this.#componentRef) {\n\t\t\tthis.destroy();\n\t\t}\n\t\tthis.#componentRef = createComponent(slot.component, {\n\t\t\telementInjector: this.viewContainerRef.injector,\n\t\t\tenvironmentInjector: this.viewContainerRef.injector.get(EnvironmentInjector),\n\t\t});\n\t\tthis.#templateRef = this.#componentRef.instance[slot.templateProp];\n\t\tthis.#templateSlotHandler.slotChange(this.#templateRef(), props);\n\t}\n\n\toverride propsChange(_slot: ComponentTemplate<Props, K, T>, props: Props): void {\n\t\tthis.#templateSlotHandler.propsChange(this.#templateRef!(), props);\n\t}\n\n\toverride destroy(): void {\n\t\tthis.#templateSlotHandler.destroy();\n\t\tthis.#componentRef?.destroy();\n\t\tthis.#componentRef = undefined;\n\t}\n}\n\nconst getSlotType = (value: any): undefined | {new (viewContainerRef: ViewContainerRef): SlotHandler<any>} => {\n\tif (!value) return undefined;\n\tconst type = typeof value;\n\tswitch (type) {\n\t\tcase 'string':\n\t\t\treturn StringSlotHandler;\n\t\tcase 'function':\n\t\t\tif (reflectComponentType(value)) {\n\t\t\t\treturn ComponentSlotHandler;\n\t\t\t}\n\t\t\treturn FunctionSlotHandler;\n\t\tcase 'object':\n\t\t\tif (value instanceof TemplateRef) {\n\t\t\t\treturn TemplateRefSlotHandler;\n\t\t\t}\n\t\t\tif (value instanceof ComponentTemplate) {\n\t\t\t\treturn ComponentTemplateSlotHandler;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn undefined;\n};\n\n/**\n * A directive that manages slot content and its properties.\n *\n * @template Props - A record type representing the properties for the slot.\n *\n * @remarks\n * This directive handles changes to the slot content and its properties,\n * and manages the lifecycle of the slot handler.\n */\n@Directive({\n\tselector: '[auSlot]',\n})\nexport class SlotDirective<Props extends Record<string, any>> implements OnChanges, OnDestroy {\n\t/**\n\t * The slot content to be managed.\n\t */\n\treadonly slot = input.required<SlotContent<Props>>({alias: 'auSlot'});\n\t/**\n\t * The properties for the slot content.\n\t */\n\treadonly props = input.required<Props>({alias: 'auSlotProps'});\n\n\tprivate readonly _viewContainerRef = inject(ViewContainerRef);\n\tprivate _slotType: ReturnType<typeof getSlotType>;\n\tprivate _slotHandler: SlotHandler<Props> | undefined;\n\n\t/**\n\t * @param changes SimpleChanges from Angular\n\t * @internal\n\t */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tconst slotChange = changes['slot'];\n\t\tconst propsChange = changes['props'];\n\t\tconst slot = this.slot();\n\t\tif (slotChange) {\n\t\t\tconst newSlotType = getSlotType(slot);\n\t\t\tif (newSlotType !== this._slotType) {\n\t\t\t\tthis._slotHandler?.destroy();\n\t\t\t\tthis._slotHandler = newSlotType ? new newSlotType(this._viewContainerRef) : undefined;\n\t\t\t\tthis._slotType = newSlotType;\n\t\t\t}\n\t\t\tthis._slotHandler?.slotChange(slot, this.props());\n\t\t} else if (propsChange) {\n\t\t\tthis._slotHandler?.propsChange(slot, this.props());\n\t\t}\n\t}\n\n\t/** @internal */\n\tngOnDestroy(): void {\n\t\tthis._slotHandler?.destroy();\n\t\tthis._slotHandler = undefined;\n\t}\n}\n","/*\n * Public API Surface of @agnos-ui/angular-headless\n */\nexport * from './generated';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["computed","CoreToaster"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agnos-ui/angular-headless",
|
|
3
3
|
"description": "Headless component library for Angular.",
|
|
4
|
-
"version": "0.10.0-next.
|
|
4
|
+
"version": "0.10.0-next.4",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"@angular/core": "^21.0.0"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@agnos-ui/core": "0.10.0-next.
|
|
18
|
+
"@agnos-ui/core": "0.10.0-next.4",
|
|
19
19
|
"tslib": "^2.8.1"
|
|
20
20
|
},
|
|
21
21
|
"sideEffects": false,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from '@agnos-ui/core/services/siblingsInert';
|
|
2
2
|
export * from '@agnos-ui/core/services/resizeObserver';
|
|
3
3
|
export * from '@agnos-ui/core/services/portal';
|
|
4
|
+
export * from '@agnos-ui/core/services/pointerdownPosition';
|
|
4
5
|
export * from '@agnos-ui/core/services/navManager';
|
|
5
6
|
export * from '@agnos-ui/core/services/matchMedia';
|
|
6
7
|
export * from '@agnos-ui/core/services/intersection';
|
|
@@ -9,6 +10,10 @@ export * from '@agnos-ui/core/services/focustrack';
|
|
|
9
10
|
export * from '@agnos-ui/core/services/focusElement';
|
|
10
11
|
export * from '@agnos-ui/core/services/floatingUI';
|
|
11
12
|
export * from '@agnos-ui/core/services/extendWidget';
|
|
13
|
+
export * from '@agnos-ui/core/services/transitions/simpleClassTransition';
|
|
14
|
+
export * from '@agnos-ui/core/services/transitions/cssTransitions';
|
|
15
|
+
export * from '@agnos-ui/core/services/transitions/collapse';
|
|
16
|
+
export * from '@agnos-ui/core/services/transitions/baseTransitions';
|
|
12
17
|
export * from '@agnos-ui/core/utils/writables';
|
|
13
18
|
import { ReadableSignal, WritableSignal } from '@amadeus-it-group/tansu';
|
|
14
19
|
import * as i0 from '@angular/core';
|
|
@@ -17,10 +22,6 @@ import { Widget, WidgetState, SlotContent as SlotContent$1, Extends, WidgetFacto
|
|
|
17
22
|
export * from '@agnos-ui/core/types';
|
|
18
23
|
export * from '@agnos-ui/core/utils/func';
|
|
19
24
|
import * as _agnos_ui_angular_headless from '@agnos-ui/angular-headless';
|
|
20
|
-
export * from '@agnos-ui/core/services/transitions/simpleClassTransition';
|
|
21
|
-
export * from '@agnos-ui/core/services/transitions/cssTransitions';
|
|
22
|
-
export * from '@agnos-ui/core/services/transitions/collapse';
|
|
23
|
-
export * from '@agnos-ui/core/services/transitions/baseTransitions';
|
|
24
25
|
import { WidgetsConfig, WidgetsConfigStore, Partial2Levels } from '@agnos-ui/core/config';
|
|
25
26
|
export * from '@agnos-ui/core/config';
|
|
26
27
|
export * from '@agnos-ui/core/components/tree';
|
|
@@ -407,6 +408,16 @@ declare function auBooleanAttribute(value: unknown): boolean | undefined;
|
|
|
407
408
|
* @returns the value transformed
|
|
408
409
|
*/
|
|
409
410
|
declare function auNumberAttribute(value: unknown): number | undefined;
|
|
411
|
+
/**
|
|
412
|
+
* Transforms a value (typically a string) to a number.
|
|
413
|
+
* Intended to be used as a transform function of an input.
|
|
414
|
+
* @param value - Value to be transformed. `null` or `undefined`, returns the value unchanged.
|
|
415
|
+
*
|
|
416
|
+
* @example
|
|
417
|
+
* ```readonly id = input({ transform: auNumberOrNullAttribute });```
|
|
418
|
+
* @returns the value transformed
|
|
419
|
+
*/
|
|
420
|
+
declare function auNumberOrNullAttribute(value: unknown): number | null | undefined;
|
|
410
421
|
|
|
411
422
|
/**
|
|
412
423
|
* A directive that manages slot content and its properties.
|
|
@@ -440,5 +451,5 @@ declare class SlotDirective<Props extends Record<string, any>> implements OnChan
|
|
|
440
451
|
static ɵdir: i0.ɵɵDirectiveDeclaration<SlotDirective<any>, "[auSlot]", never, { "slot": { "alias": "auSlot"; "required": true; "isSignal": true; }; "props": { "alias": "auSlotProps"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
441
452
|
}
|
|
442
453
|
|
|
443
|
-
export { BaseWidgetDirective, ComponentTemplate, SlotComponent, SlotDirective, ToastPropsToken, ToasterService, UseDirective, UseMultiDirective, ZoneWrapper, auBooleanAttribute, auNumberAttribute, callWidgetFactory, callWidgetFactoryWithConfig, injectWidgetConfig, injectWidgetsConfig, provideWidgetsConfig, toAngularSignal, toAngularWritableSignal, useDirectiveForHost, widgetsConfigFactory, widgetsConfigInjectionToken };
|
|
454
|
+
export { BaseWidgetDirective, ComponentTemplate, SlotComponent, SlotDirective, ToastPropsToken, ToasterService, UseDirective, UseMultiDirective, ZoneWrapper, auBooleanAttribute, auNumberAttribute, auNumberOrNullAttribute, callWidgetFactory, callWidgetFactoryWithConfig, injectWidgetConfig, injectWidgetsConfig, provideWidgetsConfig, toAngularSignal, toAngularWritableSignal, useDirectiveForHost, widgetsConfigFactory, widgetsConfigInjectionToken };
|
|
444
455
|
export type { AngularState, AngularWidget, IsSlotContent, SlotContent, WidgetSlotContext };
|