@agnos-ui/angular-bootstrap 0.9.2 → 0.9.3

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 +1 @@
1
- {"version":3,"file":"agnos-ui-angular-bootstrap.mjs","sources":["../../src/components/modal/modal.gen.ts","../../src/config.ts","../../src/components/modal/modal.component.ts","../../src/components/pagination/pagination.gen.ts","../../src/components/pagination/pagination.component.ts","../../src/components/rating/rating.gen.ts","../../src/components/rating/rating.component.ts","../../src/components/select/select.gen.ts","../../src/components/select/select.component.ts","../../src/components/alert/alert.gen.ts","../../src/components/alert/alert.component.ts","../../src/components/accordion/accordion.gen.ts","../../src/components/accordion/accordion.component.ts","../../src/components/slider/slider.gen.ts","../../src/components/slider/slider.component.ts","../../src/components/progressbar/progressbar.gen.ts","../../src/components/progressbar/progressbar.component.ts","../../src/components/toast/toast.gen.ts","../../src/components/toast/toast.component.ts","../../src/components/collapse/collapse.component.ts","../../src/components/collapse/collapse.gen.ts","../../src/components/tree/tree.gen.ts","../../src/components/tree/tree.component.ts","../../src/components/carousel/carousel.gen.ts","../../src/components/carousel/carousel.component.ts","../../src/components/toast/toaster.service.ts","../../src/components/toast/toaster.component.ts","../../src/agnos-ui-angular.module.ts","../../src/components/modal/modal.service.ts","../../src/index.ts","../../src/agnos-ui-angular-bootstrap.ts"],"sourcesContent":["import {getModalDefaultConfig, createModal, modalOutsideClick, modalCloseButtonClick} from '@agnos-ui/core-bootstrap/components/modal';\nimport type {WidgetSlotContext, SlotContent, TransitionFn, Widget, PropsConfig, Directive} from '@agnos-ui/angular-headless';\n\n\n/**\n * Retrieve a shallow copy of the default modal config\n * @returns the default modal config\n */\nconst export_getModalDefaultConfig: () => ModalProps<any> = getModalDefaultConfig as any;\nexport {export_getModalDefaultConfig as getModalDefaultConfig};\n\n\n\n/**\n * Represents the context for a modal component.\n *\n * @template Data - The type of data associated with the modal.\n */\nexport interface ModalContext<Data> extends WidgetSlotContext<ModalWidget<Data>> {}\n\n/**\n * Represents the state of a modal component.\n *\n * @template Data - The type of the data associated with the modal.\n */\nexport interface ModalState<Data> {\n\t\n\t/**\n\t * Whether the backdrop is fully hidden. This can be true either because {@link ModalProps.backdrop|backdrop} is false or\n\t * because {@link ModalProps.visible|visible} is false and there is no current transition.\n\t */\n\tbackdropHidden: boolean;\n\t\n\n\t/**\n\t * Whether the modal is fully hidden.\n\t */\n\thidden: boolean;\n\t\n\n\t/**\n\t * Whether there is an active transition to either display or hide the modal.\n\t */\n\ttransitioning: boolean;\n\t\n\n\t/**\n\t * DOM element of the modal.\n\t */\n\tmodalElement: HTMLElement | null;\n\t\n\t/**\n\t * Value of the aria-label attribute to put on the close button.\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\n\t/**\n\t * Classes to add on the backdrop DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\tbackdropClass: string;\n\t\n\n\t/**\n\t * Whether to display the close button.\n\t *\n\t * @defaultValue `true`\n\t */\n\tcloseButton: boolean;\n\t\n\n\t/**\n\t * Which element should contain the modal and backdrop DOM elements.\n\t * If it is not null, the modal and backdrop DOM elements are moved to the specified container.\n\t * Otherwise, they stay where the widget is located.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * typeof window !== 'undefined' ? document.body : null\n\t * ```\n\t */\n\tcontainer: HTMLElement | null;\n\t\n\n\t/**\n\t * Whether the modal should be visible when the transition is completed.\n\t *\n\t * @defaultValue `false`\n\t */\n\tvisible: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Data to use in content slots\n\t */\n\tcontentData: Data;\n\t\n\t/**\n\t * Body of the modal.\n\t */\n\tchildren: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Footer of the modal.\n\t */\n\tfooter: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Header of the modal. The default header includes {@link ModalProps.title|title}.\n\t */\n\theader: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Structure of the modal.\n\t * The default structure uses {@link ModalProps.header|header}, {@link ModalProps.children|children} and {@link ModalProps.footer|footer}.\n\t */\n\tstructure: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Title of the modal.\n\t */\n\ttitle: SlotContent<ModalContext<Data>>;\n\t\n\t/**\n\t * Option to create a fullscreen modal, according to the bootstrap documentation.\n\t *\n\t * @defaultValue `false`\n\t */\n\tfullscreen: boolean;\n}\n\n/**\n * Interface representing the properties for a modal component.\n *\n * @template Data - The type of data that the modal will handle.\n */\nexport interface ModalProps<Data> {\n\t\n\t/**\n\t * The transition to use for the backdrop behind the modal (if present).\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\tbackdropTransition: TransitionFn;\n\t\n\n\t/**\n\t * The transition to use for the modal.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\tmodalTransition: TransitionFn;\n\t\n\t/**\n\t * Whether the modal and its backdrop (if present) should be animated when shown or hidden.\n\t *\n\t * @defaultValue `true`\n\t */\n\tanimated: boolean;\n\t\n\n\t/**\n\t * Whether a backdrop should be created behind the modal.\n\t *\n\t * @defaultValue `true`\n\t */\n\tbackdrop: boolean;\n\t\n\n\t/**\n\t * Whether the modal should be closed when clicking on the viewport outside the modal.\n\t *\n\t * @defaultValue `true`\n\t */\n\tcloseOnOutsideClick: boolean;\n\t\n\n\t/**\n\t * Event to be triggered when the modal is about to be closed (i.e. the {@link ModalApi.close|close} method was called).\n\t *\n\t * @param event - event giving access to the argument given to the {@link ModalApi.close|close} method and allowing\n\t * to cancel the close process.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonBeforeClose: (event: ModalBeforeCloseEvent) => void;\n\t\n\n\t/**\n\t * Event to be triggered when the visible property changes.\n\t *\n\t * @param visible - new value of the visible propery\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonVisibleChange: (visible: boolean) => void;\n\t\n\n\t/**\n\t * Event to be triggered when the transition is completed and the modal is not visible.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonHidden: () => void;\n\t\n\n\t/**\n\t * Event to be triggered when the transition is completed and the modal is visible.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonShown: () => void;\n\t\n\t/**\n\t * Value of the aria-label attribute to put on the close button.\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\n\t/**\n\t * Classes to add on the backdrop DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\tbackdropClass: string;\n\t\n\n\t/**\n\t * Whether to display the close button.\n\t *\n\t * @defaultValue `true`\n\t */\n\tcloseButton: boolean;\n\t\n\n\t/**\n\t * Which element should contain the modal and backdrop DOM elements.\n\t * If it is not null, the modal and backdrop DOM elements are moved to the specified container.\n\t * Otherwise, they stay where the widget is located.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * typeof window !== 'undefined' ? document.body : null\n\t * ```\n\t */\n\tcontainer: HTMLElement | null;\n\t\n\n\t/**\n\t * Whether the modal should be visible when the transition is completed.\n\t *\n\t * @defaultValue `false`\n\t */\n\tvisible: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Data to use in content slots\n\t */\n\tcontentData: Data;\n\t\n\t/**\n\t * Body of the modal.\n\t */\n\tchildren: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Footer of the modal.\n\t */\n\tfooter: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Header of the modal. The default header includes {@link ModalProps.title|title}.\n\t */\n\theader: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Structure of the modal.\n\t * The default structure uses {@link ModalProps.header|header}, {@link ModalProps.children|children} and {@link ModalProps.footer|footer}.\n\t */\n\tstructure: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Title of the modal.\n\t */\n\ttitle: SlotContent<ModalContext<Data>>;\n\t\n\t/**\n\t * Option to create a fullscreen modal, according to the bootstrap documentation.\n\t *\n\t * @defaultValue `false`\n\t */\n\tfullscreen: boolean;\n}\n\n/**\n * Interface representing the API for a modal component.\n *\n * @template Data - The type of data associated with the modal.\n */\nexport interface ModalApi<Data> {\n\t\n\t/**\n\t * Method to change some modal properties.\n\t */\n\tpatch: ModalWidget<Data>['patch'];\n\t\n\t/**\n\t * Closes the modal with the given result.\n\t *\n\t * @param result - result of the modal, as passed in the {@link ModalBeforeCloseEvent.result|result} property of the event passed to the\n\t * {@link ModalProps.onBeforeClose|onBeforeClose} event handler (and possibly changed by it) and resolved by the promise returned by the {@link ModalApi.open|open} method.\n\t */\n\tclose(result?: any): void;\n\t\n\n\t/**\n\t * Opens the modal and returns a promise that is resolved when the modal is closed.\n\t * The resolved value is the result passed to the {@link ModalApi.close|close} method and possibly changed by the\n\t * {@link ModalProps.onBeforeClose|onBeforeClose} event handler\n\t */\n\topen(): Promise<any>;\n}\n\n\n\n/**\n * Represents a modal widget with specific data type.\n *\n * @template Data - The type of data that the modal widget will handle.\n */\nexport type ModalWidget<Data> = Widget<ModalProps<Data>, ModalState<Data>, ModalApi<Data>, ModalDirectives>;\n\n\n\n/**\n * Creates a new modal widget instance.\n * @param config - config of the modal, either as a store or as an object containing values or stores.\n * @returns a new modal widget instance\n */\nconst export_createModal: <Data>(config?: PropsConfig<ModalProps<Data>>) => ModalWidget<Data> = createModal as any;\nexport {export_createModal as createModal};\n\n\n\n/**\n * Value present in the {@link ModalBeforeCloseEvent.result|result} property of the {@link ModalProps.onBeforeClose|onBeforeClose} event\n * and returned by the {@link ModalApi.open|open} method, when the modal is closed by a click inside the viewport but outside the modal.\n */\nconst export_modalOutsideClick: typeof modalOutsideClick = modalOutsideClick as any;\nexport {export_modalOutsideClick as modalOutsideClick};\n\n\n\n/**\n * Value present in the {@link ModalBeforeCloseEvent.result|result} property of the {@link ModalProps.onBeforeClose|onBeforeClose} event\n * and returned by the {@link ModalApi.open|open} method, when the modal is closed by a click on the close button.\n */\nconst export_modalCloseButtonClick: typeof modalCloseButtonClick = modalCloseButtonClick as any;\nexport {export_modalCloseButtonClick as modalCloseButtonClick};\n\n/**\n * Type of the parameter of {@link ModalProps.onBeforeClose|onBeforeClose}.\n */\nexport interface ModalBeforeCloseEvent {\n\t\n\t/**\n\t * Result of the modal, which is the value passed to the {@link ModalApi.close|close} method\n\t * and later resolved by the promise returned by the {@link ModalApi.open|open} method.\n\t * If needed, it can be changed from the {@link ModalProps.onBeforeClose|onBeforeClose} event handler.\n\t */\n\tresult: any;\n\t\n\n\t/**\n\t * Whether to cancel the close of the modal.\n\t * It can be changed from the {@link ModalProps.onBeforeClose|onBeforeClose} event handler.\n\t */\n\tcancel: boolean;\n}\n\n/**\n * Directives of the modal widget.\n */\nexport interface ModalDirectives {\n\t\n\t/**\n\t * Directive to put on the modal DOM element.\n\t */\n\tmodalDirective: Directive;\n\t\n\n\t/**\n\t * Directive to put on the backdrop DOM element.\n\t */\n\tbackdropDirective: Directive;\n\t\n\n\t/**\n\t * Portal directive to put on the modal DOM element.\n\t */\n\tmodalPortalDirective: Directive;\n\t\n\n\t/**\n\t * Portal directive to put on the backdrop DOM element.\n\t */\n\tbackdropPortalDirective: Directive;\n\t\n\n\t/**\n\t * Directive that adds all the necessary attributes to the close button\n\t */\n\tcloseButtonDirective: Directive;\n\t\n\t/**\n\t * Directive to apply to the dialog element when using the native {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement | HTMLDialogElement}\n\t */\n\tdialogDirective: Directive;\n}\n\n","import type {\n\tAngularWidget,\n\tIsSlotContent,\n\tPartial2Levels,\n\tSlotContent,\n\tWidget,\n\tWidgetFactory,\n\tWidgetProps,\n\tWidgetsConfigStore,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tBaseWidgetDirective,\n} from '@agnos-ui/angular-headless';\nimport {widgetsConfigFactory} from '@agnos-ui/angular-headless';\nimport type {BootstrapWidgetsConfig} from '@agnos-ui/core-bootstrap/config';\nimport type {ReadableSignal} from '@amadeus-it-group/tansu';\nimport type {FactoryProvider, TemplateRef} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\n\nimport type {WidgetsConfig} from './config.gen';\nexport type {WidgetsConfig};\n\ntype AdaptParentConfig = (config: Partial2Levels<WidgetsConfig>) => Partial2Levels<WidgetsConfig>;\ntype InjectWidgetsConfig = (config?: Partial2Levels<WidgetsConfig>) => WidgetsConfigStore<WidgetsConfig>;\n\nconst widgetFactories: {\n\twidgetsConfigInjectionToken: InjectionToken<WidgetsConfigStore<WidgetsConfig>>;\n\tprovideWidgetsConfig: (adaptParentConfig?: AdaptParentConfig) => FactoryProvider;\n\tinjectWidgetConfig: <N extends keyof BootstrapWidgetsConfig>(widgetName: N) => ReadableSignal<Partial<WidgetsConfig[N]> | undefined>;\n\tinjectWidgetsConfig: InjectWidgetsConfig;\n\n\tcallWidgetFactory: <W extends Widget<object, object, object, object>>(\n\t\tfactory: WidgetFactory<W>,\n\t\toptions?: {\n\t\t\twidgetName?: keyof BootstrapWidgetsConfig | null | undefined;\n\t\t\tdefaultConfig?: Partial<WidgetProps<W>> | ReadableSignal<Partial<WidgetProps<W>> | undefined> | 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} = widgetsConfigFactory<WidgetsConfig>(new InjectionToken<WidgetsConfigStore<WidgetsConfig>>('bootstrapWidgetsConfig')) as any;\n\n/**\n * Dependency Injection token which can be used to provide or inject the widgets default configuration store.\n */\nexport const widgetsConfigInjectionToken = widgetFactories.widgetsConfigInjectionToken;\n\n/**\n * Creates a provider of widgets default configuration that inherits from any widgets default configuration already defined at an upper level\n * in the Angular dependency injection system. It contains its own set of widgets configuration properties that override the same properties form\n * the parent configuration.\n *\n * @remarks\n * The configuration is computed from the parent configuration in two steps:\n * - first step: the parent configuration is transformed by the adaptParentConfig function (if specified).\n * If adaptParentConfig is not specified, this step is skipped.\n * - second step: the configuration from step 1 is merged (2-levels deep) with the own$ store. The own$ store initially contains\n * 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 * {@link injectWidgetsConfig}.\n *\n * @param adaptParentConfig - optional function that receives a 2-levels copy of the widgets default configuration\n * defined at an upper level in the Angular dependency injection system (or an empty object if there is none) and returns the widgets\n * default configuration to be used.\n * It is called only if the configuration is needed, and was not yet computed for the current value of the parent configuration.\n * 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 * 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 * Angular dependency injection system.\n *\n * @returns DI provider to be included a list of `providers` (for example at a component level or\n * any other level of the Angular dependency injection system)\n *\n * @example\n * ```typescript\n * @Component({\n * // ...\n * providers: [\n * provideWidgetsConfig((parentConfig) => {\n * // first step configuration: transforms the parent configuration\n * parentConfig.rating = parentConfig.rating ?? {};\n * parentConfig.rating.className = `${parentConfig.rating.className ?? ''} my-rating-extra-class`\n * return parentConfig;\n * })\n * ]\n * })\n * class MyComponent {\n * widgetsConfig = injectWidgetsConfig();\n * constructor() {\n * this.widgetsConfig.set({\n * // second step configuration: overrides the parent configuration\n * rating: {\n * slotStar: MyCustomSlotStar\n * }\n * });\n * }\n * // ...\n * }\n * ```\n */\nexport const provideWidgetsConfig = widgetFactories.provideWidgetsConfig;\n\n/**\n * Returns the widgets default configuration store that was provided in the current injection context.\n * Throws if the no widgets default configuration store was provided.\n *\n * @param defaultConfig - values to set as soon as the config is injected\n * @remarks\n * This function must be called from an injection context, such as a constructor, a factory function, a field initializer or\n * a function used with {@link https://angular.io/api/core/runInInjectionContext | runInInjectionContext}.\n *\n * @returns the widgets default configuration store.\n */\nexport const injectWidgetsConfig = widgetFactories.injectWidgetsConfig;\n\n/**\n * Injects the configuration for a specific widget.\n *\n * @template N - The key of the widget configuration in the `Config` type.\n * @param widgetName - The name of the widget whose configuration is to be injected.\n * @returns A `ReadableSignal` that provides a partial configuration of the specified widget or `undefined` if the configuration is not available.\n */\nexport const injectWidgetConfig = widgetFactories.injectWidgetConfig;\n\n/**\n * Creates and initializes a widget using the provided factory and configuration options.\n *\n * The resulting widget can be easily hooked into the lifecycle of an Angular component through {@link BaseWidgetDirective}.\n *\n * @template W - The type of the widget.\n * @param factory - The factory function to create the widget.\n * @param options - The options for creating the widget.\n * @param options.defaultConfig - The default configuration for the widget.\n * @param options.events - The event handlers for the widget.\n * @param options.slotTemplates - A function that returns the slot templates for the widget.\n * @param options.slotChildren - A function that returns the slot children for the widget.\n * @param options.afterInit - A callback function to be called after the widget is initialized.\n * @returns The initialized widget.\n */\nexport const callWidgetFactory = widgetFactories.callWidgetFactory;\n","import type {SlotContent, TransitionFn} from '@agnos-ui/angular-headless';\nimport {BaseWidgetDirective, ComponentTemplate, SlotDirective, UseDirective, UseMultiDirective, auBooleanAttribute} from '@agnos-ui/angular-headless';\nimport type {ModalContext, ModalWidget, ModalBeforeCloseEvent} from './modal.gen';\nimport {createModal} from './modal.gen';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, output, viewChild, contentChild} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\n\n/**\n * Directive to provide the slot structure for the modal widget.\n * This directive provides a template reference for the {@link ModalContext<Data>}.\n */\n@Directive({selector: 'ng-template[auModalStructure]'})\nexport class ModalStructureDirective<Data> {\n\tpublic templateRef = inject(TemplateRef<ModalContext<Data>>);\n\tstatic ngTemplateContextGuard<Data>(_dir: ModalStructureDirective<Data>, context: unknown): context is ModalContext<Data> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide the slot header for the modal widget.\n * This directive provides a template reference for the {@link ModalContext<Data>}.\n */\n@Directive({selector: 'ng-template[auModalHeader]'})\nexport class ModalHeaderDirective<Data> {\n\tpublic templateRef = inject(TemplateRef<ModalContext<Data>>);\n\tstatic ngTemplateContextGuard<Data>(_dir: ModalHeaderDirective<Data>, context: unknown): context is ModalContext<Data> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide the slot title for the modal widget.\n * This directive provides a template reference for the {@link ModalContext<Data>}.\n */\n@Directive({selector: 'ng-template[auModalTitle]'})\nexport class ModalTitleDirective<Data> {\n\tpublic templateRef = inject(TemplateRef<ModalContext<Data>>);\n\tstatic ngTemplateContextGuard<Data>(_dir: ModalTitleDirective<Data>, context: unknown): context is ModalContext<Data> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide the default slot for the modal widget.\n * This directive provides a template reference for the {@link ModalContext<Data>}.\n */\n@Directive({selector: 'ng-template[auModalBody]'})\nexport class ModalBodyDirective<Data> {\n\tpublic templateRef = inject(TemplateRef<ModalContext<Data>>);\n\tstatic ngTemplateContextGuard<Data>(_dir: ModalBodyDirective<Data>, context: unknown): context is ModalContext<Data> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide the slot footer for the modal widget.\n * This directive provides a template reference for the {@link ModalContext<Data>}.\n */\n@Directive({selector: 'ng-template[auModalFooter]'})\nexport class ModalFooterDirective<Data> {\n\tpublic templateRef = inject(TemplateRef<ModalContext<Data>>);\n\tstatic ngTemplateContextGuard<Data>(_dir: ModalFooterDirective<Data>, context: unknown): context is ModalContext<Data> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Component containing the default slots for the modal.\n */\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, ModalHeaderDirective, ModalStructureDirective, UseDirective],\n\ttemplate: `\n\t\t<ng-template auModalHeader #header let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t<h5 class=\"modal-title\">\n\t\t\t\t<ng-template [auSlot]=\"state.title()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t</h5>\n\t\t\t@if (state.closeButton()) {\n\t\t\t\t<button class=\"btn-close\" [auUse]=\"directives.closeButtonDirective\"></button>\n\t\t\t}\n\t\t</ng-template>\n\t\t<ng-template auModalStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t@if (state.title()) {\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<ng-template [auSlot]=\"state.header()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-template [auSlot]=\"state.children()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t</div>\n\t\t\t@if (state.footer()) {\n\t\t\t\t<div class=\"modal-footer\">\n\t\t\t\t\t<ng-template [auSlot]=\"state.footer()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-template>\n\t`,\n})\nclass ModalDefaultSlotsComponent<Data> {\n\treadonly header = viewChild.required<TemplateRef<ModalContext<Data>>>('header');\n\treadonly structure = viewChild.required<TemplateRef<ModalContext<Data>>>('structure');\n}\n\n/**\n * Default slot for modal header.\n */\nexport const modalDefaultSlotHeader: SlotContent<ModalContext<any>> = new ComponentTemplate(ModalDefaultSlotsComponent, 'header');\n\n/**\n * Default slot for modal structure.\n */\nexport const modalDefaultSlotStructure: SlotContent<ModalContext<any>> = new ComponentTemplate(ModalDefaultSlotsComponent, 'structure');\n\n/**\n * Modal component.\n */\n@Component({\n\tselector: '[auModal]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseMultiDirective, SlotDirective],\n\ttemplate: `\n\t\t<ng-template #content><ng-content /></ng-template>\n\t\t@if (!state.backdropHidden()) {\n\t\t\t<div class=\"modal-backdrop\" [auUseMulti]=\"[directives.backdropPortalDirective, directives.backdropDirective]\"></div>\n\t\t}\n\t\t@if (!state.hidden()) {\n\t\t\t<div class=\"modal d-block\" [auUseMulti]=\"[directives.modalPortalDirective, directives.modalDirective]\">\n\t\t\t\t<div class=\"modal-dialog {{ state.fullscreen() ? 'modal-fullscreen' : '' }}\">\n\t\t\t\t\t<div class=\"modal-content\">\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t`,\n})\nexport class ModalComponent<Data> extends BaseWidgetDirective<ModalWidget<Data>> {\n\t/**\n\t * Whether the modal and its backdrop (if present) should be animated when shown or hidden.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * The transition to use for the backdrop behind the modal (if present).\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\treadonly backdropTransition = input<TransitionFn>(undefined, {alias: 'auBackdropTransition'});\n\n\t/**\n\t * The transition to use for the modal.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\treadonly modalTransition = input<TransitionFn>(undefined, {alias: 'auModalTransition'});\n\n\t/**\n\t * Whether the modal should be visible when the transition is completed.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly visible = input(undefined, {alias: 'auVisible', transform: auBooleanAttribute});\n\n\t/**\n\t * Whether a backdrop should be created behind the modal.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly backdrop = input(undefined, {alias: 'auBackdrop', transform: auBooleanAttribute});\n\n\t/**\n\t * Whether the modal should be closed when clicking on the viewport outside the modal.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly closeOnOutsideClick = input(undefined, {alias: 'auCloseOnOutsideClick', transform: auBooleanAttribute});\n\n\t/**\n\t * Which element should contain the modal and backdrop DOM elements.\n\t * If it is not null, the modal and backdrop DOM elements are moved to the specified container.\n\t * Otherwise, they stay where the widget is located.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * typeof window !== 'undefined' ? document.body : null\n\t * ```\n\t */\n\treadonly container = input<HTMLElement | null>(undefined, {alias: 'auContainer'});\n\n\t/**\n\t * Value of the aria-label attribute to put on the close button.\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\treadonly ariaCloseButtonLabel = input<string>(undefined, {alias: 'auAriaCloseButtonLabel'});\n\n\t/**\n\t * Classes to add on the backdrop DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly backdropClass = input<string>(undefined, {alias: 'auBackdropClass'});\n\n\t/**\n\t * Whether to display the close button.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly closeButton = input(undefined, {alias: 'auCloseButton', transform: auBooleanAttribute});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * Option to create a fullscreen modal, according to the bootstrap documentation.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly fullscreen = input(undefined, {alias: 'auFullscreen', transform: auBooleanAttribute});\n\n\t/**\n\t * Structure of the modal.\n\t * The default structure uses {@link ModalProps.header|header}, {@link ModalProps.children|children} and {@link ModalProps.footer|footer}.\n\t */\n\treadonly structure = input<SlotContent<ModalContext<Data>>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(ModalStructureDirective);\n\n\t/**\n\t * Header of the modal. The default header includes {@link ModalProps.title|title}.\n\t */\n\treadonly header = input<SlotContent<ModalContext<Data>>>(undefined, {alias: 'auHeader'});\n\treadonly slotHeaderFromContent = contentChild(ModalHeaderDirective);\n\n\t/**\n\t * Title of the modal.\n\t */\n\treadonly title = input<SlotContent<ModalContext<Data>>>(undefined, {alias: 'auTitle'});\n\treadonly slotTitleFromContent = contentChild(ModalTitleDirective);\n\n\t/**\n\t * Body of the modal.\n\t */\n\treadonly children = input<SlotContent<ModalContext<Data>>>(undefined, {alias: 'auChildren'});\n\treadonly slotDefaultFromContent = contentChild(ModalBodyDirective);\n\n\t/**\n\t * Footer of the modal.\n\t */\n\treadonly footer = input<SlotContent<ModalContext<Data>>>(undefined, {alias: 'auFooter'});\n\treadonly slotFooterFromContent = contentChild(ModalFooterDirective);\n\n\t/**\n\t * Data to use in content slots\n\t */\n\treadonly contentData = input<Data>(undefined, {alias: 'auContentData'});\n\n\t/**\n\t * Event to be triggered when the visible property changes.\n\t *\n\t * @param visible - new value of the visible propery\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly visibleChange = output<boolean>({alias: 'auVisibleChange'});\n\n\t/**\n\t * Event to be triggered when the modal is about to be closed (i.e. the {@link ModalApi.close|close} method was called).\n\t *\n\t * @param event - event giving access to the argument given to the {@link ModalApi.close|close} method and allowing\n\t * to cancel the close process.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly beforeClose = output<ModalBeforeCloseEvent>({alias: 'auBeforeClose'});\n\n\t/**\n\t * Event to be triggered when the transition is completed and the modal is not visible.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly hidden = output<void>({alias: 'auHidden'});\n\n\t/**\n\t * Event to be triggered when the transition is completed and the modal is visible.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly shown = output<void>({alias: 'auShown'});\n\n\treadonly slotChildren = viewChild<TemplateRef<void>>('content');\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory<ModalWidget<Data>>(createModal, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\theader: modalDefaultSlotHeader,\n\t\t\t\t\tstructure: modalDefaultSlotStructure,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonShown: () => this.shown.emit(),\n\t\t\t\t\tonHidden: () => this.hidden.emit(),\n\t\t\t\t\tonBeforeClose: (event) => this.beforeClose.emit(event),\n\t\t\t\t\tonVisibleChange: (event) => this.visibleChange.emit(event),\n\t\t\t\t},\n\t\t\t\tslotTemplates: () =>\n\t\t\t\t\t({\n\t\t\t\t\t\tchildren: this.slotDefaultFromContent()?.templateRef,\n\t\t\t\t\t\tfooter: this.slotFooterFromContent()?.templateRef,\n\t\t\t\t\t\theader: this.slotHeaderFromContent()?.templateRef,\n\t\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\t\ttitle: this.slotTitleFromContent()?.templateRef,\n\t\t\t\t\t}) as any,\n\t\t\t\tslotChildren: () => this.slotChildren(),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {getPaginationDefaultConfig, createPagination} from '@agnos-ui/core-bootstrap/components/pagination';\nimport type {WidgetSlotContext, SlotContent, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default Pagination config\n * @returns the default Pagination config\n */\nconst export_getPaginationDefaultConfig: () => PaginationProps = getPaginationDefaultConfig as any;\nexport {export_getPaginationDefaultConfig as getPaginationDefaultConfig};\n\n\n\n/**\n * A type for the slot context of the pagination widget\n */\nexport interface PaginationContext extends WidgetSlotContext<PaginationWidget> {}\n\n\n\n/**\n * A type for the slot context of the pagination widget when the slot is the number label\n */\nexport interface PaginationNumberContext extends PaginationContext {\n\t/**\n\t * Displayed page\n\t */\n\tdisplayedPage: number;\n}\n\n/**\n * Represents the state of a pagination component.\n */\nexport interface PaginationState {\n\t\n\t/**\n\t * The number of pages.\n\t */\n\tpageCount: number;\n\t\n\t/**\n\t * The current pages, the number in the Array is the number of the page.\n\t */\n\tpages: number[];\n\t\n\t/**\n\t * true if the previous link need to be disabled\n\t */\n\tpreviousDisabled: boolean;\n\t\n\t/**\n\t * true if the next link need to be disabled\n\t */\n\tnextDisabled: boolean;\n\t\n\t/**\n\t * The label for each \"Page\" page link.\n\t */\n\tpagesLabel: string[];\n\t\n\n\t/** The hrefs for each \"Page\" page link */\n\tpagesHrefs: string[];\n\t\n\n\t/** The hrefs for the direction links */\n\tdirectionsHrefs: DirectionsHrefs;\n\t\n\n\t/** The aria-live text */\n\tariaLiveLabelText: string;\n\t\n\t/**\n\t * The current page.\n\t *\n\t * Page numbers start with `1`.\n\t *\n\t * @defaultValue `1`\n\t */\n\tpage: number;\n\t // value of the current/init page to display\n\n\t/**\n\t * The label for the nav element.\n\t *\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Page navigation'`\n\t */\n\tariaLabel: string;\n\t\n\n\t/**\n\t * The label for the \"active\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * '(current)'\n\t * ```\n\t */\n\tactiveLabel: string;\n\t\n\n\t/**\n\t * The label for the \"First\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for first page'\n\t * ```\n\t */\n\tariaFirstLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Previous\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for previous page'\n\t * ```\n\t */\n\tariaPreviousLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Next\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for next page'\n\t * ```\n\t */\n\tariaNextLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Last\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for last page'\n\t * ```\n\t */\n\tariaLastLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Ellipsis\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Ellipsis page element'`\n\t */\n\tariaEllipsisLabel: string;\n\t\n\n\t/**\n\t * If `true`, pagination links will be disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true`, the \"Next\" and \"Previous\" page links are shown.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdirectionLinks: boolean;\n\t\n\n\t/**\n\t * If `true`, the \"First\" and \"Last\" page links are shown.\n\t *\n\t * @defaultValue `false`\n\t */\n\tboundaryLinks: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to use for the structure of the pagination component\n\t * The default structure uses {@link PaginationProps.ellipsisLabel|ellipsisLabel}, {@link PaginationProps.firstPageLabel|firstPageLabel},\n\t * {@link PaginationProps.previousPageLabel|previousPageLabel}, {@link PaginationProps.nextPageLabel|nextPageLabel},\n\t * {@link PaginationProps.lastPageLabel|lastPageLabel}, {@link PaginationProps.pagesDisplay|pagesDisplay},\n\t * {@link PaginationProps.numberLabel|numberLabel},\n\t */\n\tstructure: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the ellipsis slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'…'`\n\t */\n\tellipsisLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the first slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'«'`\n\t */\n\tfirstPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the previous slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'‹'`\n\t */\n\tpreviousPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the next slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'›'`\n\t */\n\tnextPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the last slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'»'`\n\t */\n\tlastPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the pages slot\n\t * To use to customize the pages view\n\t * override any configuration parameters provided for this\n\t */\n\tpagesDisplay: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the number slot\n\t * override any configuration parameters provided for this\n\t * for I18n, we suggest to use the global configuration\n\t * @param displayedPage - The current page number\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({displayedPage}: PaginationNumberContext) => `${displayedPage}`\n\t * ```\n\t */\n\tnumberLabel: SlotContent<PaginationNumberContext>;\n\t\n\n\t/**\n\t * The pagination display size.\n\t *\n\t * Bootstrap currently supports small and large sizes.\n\t *\n\t * @defaultValue `null`\n\t */\n\tsize: 'sm' | 'lg' | null;\n}\n\n/**\n * Represents the properties for the Pagination component.\n */\nexport interface PaginationProps {\n\t\n\t/**\n\t * The number of items in your paginated collection.\n\t *\n\t * Note, that this is not the number of pages. Page numbers are calculated dynamically based on\n\t * `collectionSize` and `pageSize`.\n\t *\n\t * Ex. if you have 100 items in your collection and displaying 20 items per page, you'll end up with 5 pages.\n\t *\n\t * Whatever the collectionSize the page number is of minimum 1.\n\t *\n\t * @defaultValue `0`\n\t */\n\tcollectionSize: number;\n\t\n\n\t/**\n\t * The number of items per page.\n\t * @remarks min value is 1\n\t *\n\t * @defaultValue `10`\n\t */\n\tpageSize: number;\n\t\n\n\t/**\n\t * An event fired when the page is changed.\n\t *\n\t * Event payload is the number of the newly selected page.\n\t *\n\t * Page numbers start with `1`.\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonPageChange: (page: number) => void;\n\t\n\n\t/**\n\t * pagesFactory returns a function computing the array of pages to be displayed\n\t * as number (-1 are treated as ellipsis).\n\t * Use Page slot to customize the pages view and not this\n\t * @param page - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (_page: number, pageCount: number) => {\n\t * \t\tconst pages: number[] = [];\n\t * \t\tfor (let i = 1; i <= pageCount; i++) {\n\t * \t\t\tpages.push(i);\n\t * \t\t}\n\t * \t\treturn pages;\n\t * \t}\n\t * ```\n\t */\n\tpagesFactory: (page: number, pageCount: number) => number[];\n\t\n\n\t/**\n\t * Provide the label for each \"Page\" page button.\n\t * This is used for accessibility purposes.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t * @param processPage - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (processPage: number, pageCount: number) => `Page ${processPage} of ${pageCount}`\n\t * ```\n\t */\n\tariaPageLabel: (processPage: number, pageCount: number) => string;\n\t\n\n\t/**\n\t * Provide the label for the aria-live element\n\t * This is used for accessibility purposes.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t * @param currentPage - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (currentPage: number) => `Current page is ${currentPage}`\n\t * ```\n\t */\n\tariaLiveLabel: (currentPage: number, pageCount: number) => string;\n\t\n\n\t/**\n\t * Factory function providing the href for a \"Page\" page anchor,\n\t * based on the current page number\n\t * @param pageNumber - The index to use in the link\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (_page: number) => PAGE_LINK_DEFAULT\n\t * ```\n\t */\n\tpageLink: (pageNumber: number) => string;\n\t\n\t/**\n\t * The current page.\n\t *\n\t * Page numbers start with `1`.\n\t *\n\t * @defaultValue `1`\n\t */\n\tpage: number;\n\t // value of the current/init page to display\n\n\t/**\n\t * The label for the nav element.\n\t *\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Page navigation'`\n\t */\n\tariaLabel: string;\n\t\n\n\t/**\n\t * The label for the \"active\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * '(current)'\n\t * ```\n\t */\n\tactiveLabel: string;\n\t\n\n\t/**\n\t * The label for the \"First\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for first page'\n\t * ```\n\t */\n\tariaFirstLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Previous\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for previous page'\n\t * ```\n\t */\n\tariaPreviousLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Next\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for next page'\n\t * ```\n\t */\n\tariaNextLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Last\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for last page'\n\t * ```\n\t */\n\tariaLastLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Ellipsis\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Ellipsis page element'`\n\t */\n\tariaEllipsisLabel: string;\n\t\n\n\t/**\n\t * If `true`, pagination links will be disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true`, the \"Next\" and \"Previous\" page links are shown.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdirectionLinks: boolean;\n\t\n\n\t/**\n\t * If `true`, the \"First\" and \"Last\" page links are shown.\n\t *\n\t * @defaultValue `false`\n\t */\n\tboundaryLinks: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to use for the structure of the pagination component\n\t * The default structure uses {@link PaginationProps.ellipsisLabel|ellipsisLabel}, {@link PaginationProps.firstPageLabel|firstPageLabel},\n\t * {@link PaginationProps.previousPageLabel|previousPageLabel}, {@link PaginationProps.nextPageLabel|nextPageLabel},\n\t * {@link PaginationProps.lastPageLabel|lastPageLabel}, {@link PaginationProps.pagesDisplay|pagesDisplay},\n\t * {@link PaginationProps.numberLabel|numberLabel},\n\t */\n\tstructure: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the ellipsis slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'…'`\n\t */\n\tellipsisLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the first slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'«'`\n\t */\n\tfirstPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the previous slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'‹'`\n\t */\n\tpreviousPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the next slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'›'`\n\t */\n\tnextPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the last slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'»'`\n\t */\n\tlastPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the pages slot\n\t * To use to customize the pages view\n\t * override any configuration parameters provided for this\n\t */\n\tpagesDisplay: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the number slot\n\t * override any configuration parameters provided for this\n\t * for I18n, we suggest to use the global configuration\n\t * @param displayedPage - The current page number\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({displayedPage}: PaginationNumberContext) => `${displayedPage}`\n\t * ```\n\t */\n\tnumberLabel: SlotContent<PaginationNumberContext>;\n\t\n\n\t/**\n\t * The pagination display size.\n\t *\n\t * Bootstrap currently supports small and large sizes.\n\t *\n\t * @defaultValue `null`\n\t */\n\tsize: 'sm' | 'lg' | null;\n}\n\n\n\n/**\n * Represents a pagination widget component.\n *\n * This type defines a widget that handles pagination functionality,\n * including properties, state, api and directives specific to pagination.\n */\nexport type PaginationWidget = Widget<PaginationProps, PaginationState, PaginationApi, PaginationDirectives>;\n\n\n\n/**\n * Create a PaginationWidget with given config props\n * @param config - an optional alert config\n * @returns a PaginationWidget\n */\nconst export_createPagination: WidgetFactory<PaginationWidget> = createPagination as any;\nexport {export_createPagination as createPagination};\n\n/**\n * Interface representing the hrefs for pagination navigation links.\n */\nexport interface DirectionsHrefs {\n\t\n\t/**\n\t * The href for the 'Previous' navigation link\n\t */\n\tprevious: string;\n\t\n\t/**\n\t * The href for the 'Next' direction link\n\t */\n\tnext: string;\n}\n\n/**\n * Interface representing pagination API for navigating through pages.\n */\nexport interface PaginationApi {\n\t\n\t/**\n\t * To \"go\" to a specific page\n\t * @param page - The page number to select\n\t */\n\tselect(page: number): void;\n\t\n\t/**\n\t * To \"go\" to the first page\n\t */\n\tfirst(): void;\n\t\n\t/**\n\t * To \"go\" to the previous page\n\t */\n\tprevious(): void;\n\t\n\t/**\n\t * To \"go\" to the next page\n\t */\n\tnext(): void;\n\t\n\t/**\n\t * To \"go\" to the last page\n\t */\n\tlast(): void;\n}\n\n/**\n * Interface representing the directives for pagination components.\n */\nexport interface PaginationDirectives {\n\t\n\t/**\n\t * A directive to be applied to each page link\n\t * This will handle the click, tabindex and aria attributes\n\t */\n\tpageLink: Directive<{\n\t\tpage: number;\n\t}>;\n\t\n\n\t/**\n\t * A directive to be applied on the previous link\n\t */\n\tpagePrev: Directive;\n\t\n\n\t/**\n\t * A directive to be applied on the first link\n\t */\n\tpageFirst: Directive;\n\t\n\n\t/**\n\t * A directive to be applied on the next link\n\t */\n\tpageNext: Directive;\n\t\n\n\t/**\n\t * A directive to be applied on the Last link\n\t */\n\tpageLast: Directive;\n}\n\n","import type {SlotContent} from '@agnos-ui/angular-headless';\nimport {BaseWidgetDirective, ComponentTemplate, SlotDirective, UseDirective, auBooleanAttribute, auNumberAttribute} from '@agnos-ui/angular-headless';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tDirective,\n\tTemplateRef,\n\tViewEncapsulation,\n\tinject,\n\tinput,\n\toutput,\n\tviewChild,\n\tcontentChild,\n} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\nimport type {PaginationContext, PaginationNumberContext, PaginationWidget} from './pagination.gen';\nimport {createPagination} from './pagination.gen';\n\n/**\n * A directive to use to give the 'ellipsis' link template to the pagination component\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationEllipsis]'})\nexport class PaginationEllipsisDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationEllipsisDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the 'first' link template to the pagination component\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationFirst]'})\nexport class PaginationFirstDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationFirstDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the 'last' link template to the pagination component\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationLast]'})\nexport class PaginationLastDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationLastDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the 'next' link template to the pagination component\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationNext]'})\nexport class PaginationNextDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationNextDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the page 'number' template to the pagination component\n * This directive provides a template reference for the {@link PaginationNumberContext}.\n */\n@Directive({selector: 'ng-template[auPaginationNumber]'})\nexport class PaginationNumberDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationNumberContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationNumberDirective, context: unknown): context is PaginationNumberContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the 'previous' link template to the pagination component\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationPrevious]'})\nexport class PaginationPreviousDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationPreviousDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the 'Pages' template for the Pages slot\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationPages]'})\nexport class PaginationPagesDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationPagesDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide the slot structure for the pagination widget.\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationStructure]'})\nexport class PaginationStructureDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationStructureDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\timports: [SlotDirective, PaginationPagesDirective, PaginationStructureDirective, UseDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<ng-template auPaginationPages #pages let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t@for (page of state.pages(); track page; let i = $index) {\n\t\t\t\t<li class=\"page-item\" [class.active]=\"page === state.page()\" [class.disabled]=\"page === -1 || state.disabled()\">\n\t\t\t\t\t@if (page === -1) {\n\t\t\t\t\t\t<div class=\"page-link au-ellipsis\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.ellipsisLabel()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"visually-hidden\">{{ state.ariaEllipsisLabel() }}</span>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<a class=\"page-link\" [auUse]=\"[directives.pageLink, {page}]\">\n\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.numberLabel()\" [auSlotProps]=\"{state, api, directives, displayedPage: page}\" />\n\t\t\t\t\t\t\t@if (state.page() === page) {\n\t\t\t\t\t\t\t\t<span class=\"visually-hidden\">{{ state.activeLabel() }}</span>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ng-template>\n\t\t<ng-template auPaginationStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t<ul [class]=\"'au-pagination pagination' + (state.size() ? ' pagination-' + state.size() : '') + ' ' + state.className()\">\n\t\t\t\t@if (state.boundaryLinks()) {\n\t\t\t\t\t<li class=\"page-item\" [class.disabled]=\"state.previousDisabled()\">\n\t\t\t\t\t\t<a class=\"page-link\" [auUse]=\"directives.pageFirst\">\n\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.firstPageLabel()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</li>\n\t\t\t\t}\n\t\t\t\t@if (state.directionLinks()) {\n\t\t\t\t\t<li class=\"page-item\" [class.disabled]=\"state.previousDisabled()\">\n\t\t\t\t\t\t<a class=\"page-link\" [auUse]=\"directives.pagePrev\">\n\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.previousPageLabel()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</li>\n\t\t\t\t}\n\t\t\t\t<ng-template [auSlot]=\"state.pagesDisplay()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t@if (state.directionLinks()) {\n\t\t\t\t\t<li class=\"page-item\" [class.disabled]=\"state.nextDisabled()\">\n\t\t\t\t\t\t<a class=\"page-link\" [auUse]=\"directives.pageNext\">\n\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.nextPageLabel()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</li>\n\t\t\t\t}\n\t\t\t\t@if (state.boundaryLinks()) {\n\t\t\t\t\t<li class=\"page-item\" [class.disabled]=\"state.nextDisabled()\">\n\t\t\t\t\t\t<a class=\"page-link\" [auUse]=\"directives.pageLast\">\n\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.lastPageLabel()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</li>\n\t\t\t\t}\n\t\t\t</ul>\n\t\t\t<div aria-live=\"polite\" class=\"visually-hidden\">{{ state.ariaLiveLabelText() }}</div>\n\t\t</ng-template>\n\t`,\n})\nclass PaginationDefaultSlotsComponent {\n\treadonly pages = viewChild.required<TemplateRef<PaginationContext>>('pages');\n\treadonly structure = viewChild.required<TemplateRef<PaginationContext>>('structure');\n}\n/**\n * The default slot for the pages\n */\nexport const paginationDefaultSlotPages: SlotContent<PaginationContext> = new ComponentTemplate(PaginationDefaultSlotsComponent, 'pages');\n/**\n * The default slot for the structure\n */\nexport const paginationDefaultSlotStructure: SlotContent<PaginationContext> = new ComponentTemplate(PaginationDefaultSlotsComponent, 'structure');\n\n/**\n * The `PaginationComponent` is an Angular component that extends the `BaseWidgetDirective`\n * to provide a customizable pagination widget. It includes various input properties\n * to configure labels, templates, and behavior for accessibility and internationalization (i18n).\n */\n@Component({\n\tselector: '[auPagination]',\n\timports: [SlotDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[attr.aria-label]': 'state.ariaLabel()',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\ttemplate: `<ng-template [auSlotProps]=\"{state, api, directives}\" [auSlot]=\"state.structure()\" />`,\n})\nexport class PaginationComponent extends BaseWidgetDirective<PaginationWidget> {\n\t/**\n\t * Provide the label for each \"Page\" page button.\n\t * This is used for accessibility purposes.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t * @param processPage - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (processPage: number, pageCount: number) => `Page ${processPage} of ${pageCount}`\n\t * ```\n\t */\n\treadonly ariaPageLabel = input<(processPage: number, pageCount: number) => string>(undefined, {alias: 'auAriaPageLabel'});\n\n\t/**\n\t * Provide the label for the aria-live element\n\t * This is used for accessibility purposes.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t * @param currentPage - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (currentPage: number) => `Current page is ${currentPage}`\n\t * ```\n\t */\n\treadonly ariaLiveLabel = input<(currentPage: number, pageCount: number) => string>(undefined, {alias: 'auAriaLiveLabel'});\n\n\t/**\n\t * The label for the nav element.\n\t *\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Page navigation'`\n\t */\n\treadonly ariaLabel = input<string>(undefined, {alias: 'auAriaLabel'});\n\n\t/**\n\t * The label for the \"active\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * '(current)'\n\t * ```\n\t */\n\treadonly activeLabel = input<string>(undefined, {alias: 'auActiveLabel'});\n\n\t/**\n\t * The label for the \"First\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for first page'\n\t * ```\n\t */\n\treadonly ariaFirstLabel = input<string>(undefined, {alias: 'auAriaFirstLabel'});\n\n\t/**\n\t * The label for the \"Previous\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for previous page'\n\t * ```\n\t */\n\treadonly ariaPreviousLabel = input<string>(undefined, {alias: 'auAriaPreviousLabel'});\n\n\t/**\n\t * The label for the \"Next\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for next page'\n\t * ```\n\t */\n\treadonly ariaNextLabel = input<string>(undefined, {alias: 'auAriaNextLabel'});\n\n\t/**\n\t * The label for the \"Last\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for last page'\n\t * ```\n\t */\n\treadonly ariaLastLabel = input<string>(undefined, {alias: 'auAriaLastLabel'});\n\n\t/**\n\t * The label for the \"Ellipsis\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Ellipsis page element'`\n\t */\n\treadonly ariaEllipsisLabel = input<string>(undefined, {alias: 'auAriaEllipsisLabel'});\n\n\t/**\n\t * Factory function providing the href for a \"Page\" page anchor,\n\t * based on the current page number\n\t * @param pageNumber - The index to use in the link\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (_page: number) => PAGE_LINK_DEFAULT\n\t * ```\n\t */\n\treadonly pageLink = input<(pageNumber: number) => string>(undefined, {alias: 'auPageLink'});\n\n\t/**\n\t * The template to use for the ellipsis slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'…'`\n\t */\n\treadonly ellipsisLabel = input<SlotContent<PaginationContext>>(undefined, {alias: 'auEllipsisLabel'});\n\treadonly slotEllipsisFromContent = contentChild(PaginationEllipsisDirective);\n\n\t/**\n\t * The template to use for the first slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'«'`\n\t */\n\treadonly firstPageLabel = input<SlotContent<PaginationContext>>(undefined, {alias: 'auFirstPageLabel'});\n\treadonly slotFirstFromContent = contentChild(PaginationFirstDirective);\n\n\t/**\n\t * The template to use for the previous slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'‹'`\n\t */\n\treadonly previousPageLabel = input<SlotContent<PaginationContext>>(undefined, {alias: 'auPreviousPageLabel'});\n\treadonly slotPreviousFromContent = contentChild(PaginationPreviousDirective);\n\n\t/**\n\t * The template to use for the next slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'›'`\n\t */\n\treadonly nextPageLabel = input<SlotContent<PaginationContext>>(undefined, {alias: 'auNextPageLabel'});\n\treadonly slotNextFromContent = contentChild(PaginationNextDirective);\n\n\t/**\n\t * The template to use for the last slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'»'`\n\t */\n\treadonly lastPageLabel = input<SlotContent<PaginationContext>>(undefined, {alias: 'auLastPageLabel'});\n\treadonly slotLastFromContent = contentChild(PaginationLastDirective);\n\n\t/**\n\t * The template to use for the pages slot\n\t * To use to customize the pages view\n\t * override any configuration parameters provided for this\n\t */\n\treadonly pagesDisplay = input<SlotContent<PaginationContext>>(undefined, {alias: 'auPagesDisplay'});\n\treadonly slotPagesFromContent = contentChild(PaginationPagesDirective);\n\n\t/**\n\t * The template to use for the number slot\n\t * override any configuration parameters provided for this\n\t * for I18n, we suggest to use the global configuration\n\t * @param displayedPage - The current page number\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({displayedPage}: PaginationNumberContext) => `${displayedPage}`\n\t * ```\n\t */\n\treadonly numberLabel = input<SlotContent<PaginationNumberContext>>(undefined, {alias: 'auNumberLabel'});\n\treadonly slotNumberLabelFromContent = contentChild(PaginationNumberDirective);\n\n\t/**\n\t * The template to use for the structure of the pagination component\n\t * The default structure uses {@link PaginationProps.ellipsisLabel|ellipsisLabel}, {@link PaginationProps.firstPageLabel|firstPageLabel},\n\t * {@link PaginationProps.previousPageLabel|previousPageLabel}, {@link PaginationProps.nextPageLabel|nextPageLabel},\n\t * {@link PaginationProps.lastPageLabel|lastPageLabel}, {@link PaginationProps.pagesDisplay|pagesDisplay},\n\t * {@link PaginationProps.numberLabel|numberLabel},\n\t */\n\treadonly structure = input<SlotContent<PaginationContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(PaginationStructureDirective);\n\n\t/**\n\t * If `true`, pagination links will be disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly disabled = input(undefined, {alias: 'auDisabled', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, the \"First\" and \"Last\" page links are shown.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly boundaryLinks = input(undefined, {alias: 'auBoundaryLinks', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, the \"Next\" and \"Previous\" page links are shown.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly directionLinks = input(undefined, {alias: 'auDirectionLinks', transform: auBooleanAttribute});\n\n\t/**\n\t * The number of items in your paginated collection.\n\t *\n\t * Note, that this is not the number of pages. Page numbers are calculated dynamically based on\n\t * `collectionSize` and `pageSize`.\n\t *\n\t * Ex. if you have 100 items in your collection and displaying 20 items per page, you'll end up with 5 pages.\n\t *\n\t * Whatever the collectionSize the page number is of minimum 1.\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly collectionSize = input(undefined, {alias: 'auCollectionSize', transform: auNumberAttribute});\n\n\t/**\n\t * The current page.\n\t *\n\t * Page numbers start with `1`.\n\t *\n\t * @defaultValue `1`\n\t */\n\treadonly page = input(undefined, {alias: 'auPage', transform: auNumberAttribute});\n\n\t/**\n\t * The number of items per page.\n\t * @remarks min value is 1\n\t *\n\t * @defaultValue `10`\n\t */\n\treadonly pageSize = input(undefined, {alias: 'auPageSize', transform: auNumberAttribute});\n\n\t/**\n\t * The pagination display size.\n\t *\n\t * Bootstrap currently supports small and large sizes.\n\t *\n\t * @defaultValue `null`\n\t */\n\treadonly size = input<'sm' | 'lg' | null>(undefined, {alias: 'auSize'});\n\n\t/**\n\t * pagesFactory returns a function computing the array of pages to be displayed\n\t * as number (-1 are treated as ellipsis).\n\t * Use Page slot to customize the pages view and not this\n\t * @param page - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (_page: number, pageCount: number) => {\n\t * \t\tconst pages: number[] = [];\n\t * \t\tfor (let i = 1; i <= pageCount; i++) {\n\t * \t\t\tpages.push(i);\n\t * \t\t}\n\t * \t\treturn pages;\n\t * \t}\n\t * ```\n\t */\n\treadonly pagesFactory = input<(page: number, pageCount: number) => number[]>(undefined, {alias: 'auPagesFactory'});\n\n\t/**\n\t * An event fired when the page is changed.\n\t *\n\t * Event payload is the number of the newly selected page.\n\t *\n\t * Page numbers start with `1`.\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly pageChange = output<number>({alias: 'auPageChange'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createPagination, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: paginationDefaultSlotStructure,\n\t\t\t\t\tpagesDisplay: paginationDefaultSlotPages,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonPageChange: (page: number) => this.pageChange.emit(page),\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\tellipsisLabel: this.slotEllipsisFromContent()?.templateRef,\n\t\t\t\t\tfirstPageLabel: this.slotFirstFromContent()?.templateRef,\n\t\t\t\t\tpreviousPageLabel: this.slotPreviousFromContent()?.templateRef,\n\t\t\t\t\tnextPageLabel: this.slotNextFromContent()?.templateRef,\n\t\t\t\t\tlastPageLabel: this.slotLastFromContent()?.templateRef,\n\t\t\t\t\tpagesDisplay: this.slotPagesFromContent()?.templateRef,\n\t\t\t\t\tnumberLabel: this.slotNumberLabelFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {getRatingDefaultConfig, createRating} from '@agnos-ui/core-bootstrap/components/rating';\nimport type {SlotContent, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default Rating config\n * @returns the default Rating config\n */\nconst export_getRatingDefaultConfig: () => RatingProps = getRatingDefaultConfig as any;\nexport {export_getRatingDefaultConfig as getRatingDefaultConfig};\n\n/**\n * Represents the state of a rating component.\n */\nexport interface RatingState {\n\t\n\t/**\n\t * the aria value of the rating\n\t */\n\tariaValueText: string;\n\t\n\t/**\n\t * the visible value of the rating (it changes when hovering over the rating even though the real value did not change)\n\t */\n\tvisibleRating: number;\n\t\n\t/**\n\t * is the rating interactive i.e. listening to hover, click and keyboard events\n\t */\n\tinteractive: boolean;\n\t\n\t/**\n\t * the list of stars\n\t */\n\tstars: StarContext[];\n\t\n\t/**\n\t * The current rating. Could be a decimal value like `3.75`.\n\t *\n\t * @defaultValue `0`\n\t */\n\trating: number;\n\t\n\n\t/**\n\t * The maximum rating that can be given.\n\t *\n\t * @defaultValue `10`\n\t */\n\tmaxRating: number;\n\t\n\n\t/**\n\t * If `true`, the rating is disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true`, the rating can't be changed.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly: boolean;\n\t\n\n\t/**\n\t * Define if the rating can be reset.\n\t *\n\t * If set to true, the user can 'unset' the rating value by cliking on the current rating value.\n\t *\n\t * @defaultValue `true`\n\t */\n\tresettable: boolean;\n\t\n\n\t/**\n\t * Allows setting a custom rating tabindex.\n\t * If the component is disabled, `tabindex` will still be set to `-1`.\n\t *\n\t * @defaultValue `0`\n\t */\n\ttabindex: number;\n\t\n\n\t/**\n\t * The aria label\n\t *\n\t * @defaultValue `'Rating'`\n\t */\n\tariaLabel: string;\n\t\n\n\t/**\n\t * The aria labelled by\n\t *\n\t * @defaultValue `''`\n\t */\n\tariaLabelledBy: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to override the way each star is displayed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({fill}: StarContext) => String.fromCharCode(fill === 100 ? 9733 : 9734)\n\t * ```\n\t */\n\tstar: SlotContent<StarContext>;\n}\n\n/**\n * Represents the properties for the Rating component.\n */\nexport interface RatingProps {\n\t\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute.\n\t * @param rating - Current rating value.\n\t * @param maxRating - maxRating value.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (rating: number, maxRating: number) => `${rating} out of ${maxRating}`\n\t * ```\n\t */\n\tariaValueTextFn: (rating: number, maxRating: number) => string;\n\t\n\n\t/**\n\t * An event emitted when the rating is changed.\n\t *\n\t * Event payload is equal to the newly selected rating.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonRatingChange: (rating: number) => void;\n\t\n\n\t/**\n\t * An event emitted when the user is hovering over a given rating.\n\t *\n\t * Event payload is equal to the rating being hovered over.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonHover: (rating: number) => void;\n\t\n\n\t/**\n\t * An event emitted when the user stops hovering over a given rating.\n\t *\n\t * Event payload is equal to the rating of the last item being hovered over.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonLeave: (rating: number) => void;\n\t\n\t/**\n\t * The current rating. Could be a decimal value like `3.75`.\n\t *\n\t * @defaultValue `0`\n\t */\n\trating: number;\n\t\n\n\t/**\n\t * The maximum rating that can be given.\n\t *\n\t * @defaultValue `10`\n\t */\n\tmaxRating: number;\n\t\n\n\t/**\n\t * If `true`, the rating is disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true`, the rating can't be changed.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly: boolean;\n\t\n\n\t/**\n\t * Define if the rating can be reset.\n\t *\n\t * If set to true, the user can 'unset' the rating value by cliking on the current rating value.\n\t *\n\t * @defaultValue `true`\n\t */\n\tresettable: boolean;\n\t\n\n\t/**\n\t * Allows setting a custom rating tabindex.\n\t * If the component is disabled, `tabindex` will still be set to `-1`.\n\t *\n\t * @defaultValue `0`\n\t */\n\ttabindex: number;\n\t\n\n\t/**\n\t * The aria label\n\t *\n\t * @defaultValue `'Rating'`\n\t */\n\tariaLabel: string;\n\t\n\n\t/**\n\t * The aria labelled by\n\t *\n\t * @defaultValue `''`\n\t */\n\tariaLabelledBy: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to override the way each star is displayed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({fill}: StarContext) => String.fromCharCode(fill === 100 ? 9733 : 9734)\n\t * ```\n\t */\n\tstar: SlotContent<StarContext>;\n}\n\n\n\n/**\n * Represents a Rating Widget component.\n */\nexport type RatingWidget = Widget<RatingProps, RatingState, RatingApi, RatingDirectives>;\n\n\n\n/**\n * Create a RatingWidget with given config props\n * @param config - an optional rating config\n * @returns a RatingWidget\n */\n\nconst export_createRating: WidgetFactory<RatingWidget> = createRating as any;\nexport {export_createRating as createRating};\n\n\n\n/**\n * Represents the context for a star in a rating component.\n */\nexport interface StarContext {\n\t/**\n\t * indicates how much the current star is filled, from 0 to 100\n\t */\n\tfill: number;\n\t/**\n\t * the position of the star in the rating\n\t */\n\tindex: number;\n}\n\n/**\n * Interface representing directives for a rating component.\n */\nexport interface RatingDirectives {\n\t\n\t/**\n\t * A directive to be applied to the main container\n\t * This will handle the keydown, mouseleave, tabindex and aria attributes\n\t */\n\tcontainerDirective: Directive;\n\t\n\n\t/**\n\t * A directive to be applied on each star element\n\t */\n\tstarDirective: Directive<{index: number}>;\n}\n\n/**\n * Interface representing the API that can be performed on a rating component.\n */\nexport interface RatingApi {\n\t\n\t/**\n\t * Sets the rating value.\n\t *\n\t * @param index - Star index, starting from 1\n\t */\n\tsetRating(index: number): void;\n\t\n\n\t/**\n\t * Sets the hovered rating value.\n\t *\n\t * @param index - Star index, starting from 1\n\t */\n\tsetHoveredRating(index: number): void;\n\t\n\n\t/**\n\t * Leave the rating, resetting the visible rating to the rating value and triggering the onLeave callback\n\t */\n\tleave(): void;\n}\n\n","import type {SlotContent} from '@agnos-ui/angular-headless';\nimport {\n\tBaseWidgetDirective,\n\tSlotDirective,\n\tUseDirective,\n\tauBooleanAttribute,\n\tauNumberAttribute,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tDirective,\n\tTemplateRef,\n\tViewEncapsulation,\n\tforwardRef,\n\tinject,\n\tinput,\n\toutput,\n\tcontentChild,\n} from '@angular/core';\nimport type {ControlValueAccessor} from '@angular/forms';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {callWidgetFactory} from '../../config';\nimport type {RatingWidget, StarContext} from './rating.gen';\nimport {createRating} from './rating.gen';\n\n/**\n * Directive to represent a rating star.\n *\n * This directive uses a template reference to render the {@link StarContext}.\n */\n@Directive({selector: 'ng-template[auRatingStar]'})\nexport class RatingStarDirective {\n\tpublic templateRef = inject(TemplateRef<StarContext>);\n\tstatic ngTemplateContextGuard(_dir: RatingStarDirective, context: unknown): context is StarContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * The `RatingComponent` is an Angular component that allows users to provide a rating.\n * It extends `BaseWidgetDirective` and implements `ControlValueAccessor` to integrate with Angular forms.\n */\n@Component({\n\tselector: '[auRating]',\n\timports: [UseDirective, SlotDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'd-inline-flex',\n\t\t'(blur)': 'onTouched()',\n\t},\n\ttemplate: `\n\t\t@for (item of state.stars(); track trackByIndex(index); let index = $index) {\n\t\t\t<span class=\"visually-hidden\">({{ index < state.visibleRating() ? '*' : ' ' }})</span>\n\t\t\t<span [auUse]=\"[directives.starDirective, {index}]\">\n\t\t\t\t<ng-template [auSlot]=\"state.star()\" [auSlotProps]=\"state.stars()[index]\" />\n\t\t\t</span>\n\t\t}\n\t`,\n\tproviders: [{provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RatingComponent), multi: true}],\n})\nexport class RatingComponent extends BaseWidgetDirective<RatingWidget> implements ControlValueAccessor {\n\tonChange = (_: any) => {};\n\tonTouched = () => {};\n\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute.\n\t * @param rating - Current rating value.\n\t * @param maxRating - maxRating value.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (rating: number, maxRating: number) => `${rating} out of ${maxRating}`\n\t * ```\n\t */\n\treadonly ariaValueTextFn = input<(rating: number, maxRating: number) => string>(undefined, {alias: 'auAriaValueTextFn'});\n\n\t/**\n\t * If `true`, the rating is disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly disabled = input(undefined, {alias: 'auDisabled', transform: auBooleanAttribute});\n\n\t/**\n\t * The maximum rating that can be given.\n\t *\n\t * @defaultValue `10`\n\t */\n\treadonly maxRating = input(undefined, {alias: 'auMaxRating', transform: auNumberAttribute});\n\n\t/**\n\t * The current rating. Could be a decimal value like `3.75`.\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly rating = input(undefined, {alias: 'auRating', transform: auNumberAttribute});\n\n\t/**\n\t * If `true`, the rating can't be changed.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly readonly = input(undefined, {alias: 'auReadonly', transform: auBooleanAttribute});\n\n\t/**\n\t * Define if the rating can be reset.\n\t *\n\t * If set to true, the user can 'unset' the rating value by cliking on the current rating value.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly resettable = input(undefined, {alias: 'auResettable', transform: auBooleanAttribute});\n\n\t/**\n\t * The template to override the way each star is displayed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({fill}: StarContext) => String.fromCharCode(fill === 100 ? 9733 : 9734)\n\t * ```\n\t */\n\treadonly star = input<SlotContent<StarContext>>(undefined, {alias: 'auStar'});\n\treadonly slotStarFromContent = contentChild(RatingStarDirective);\n\n\t/**\n\t * Allows setting a custom rating tabindex.\n\t * If the component is disabled, `tabindex` will still be set to `-1`.\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly tabindex = input(undefined, {alias: 'auTabindex', transform: auNumberAttribute});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * The aria label\n\t *\n\t * @defaultValue `'Rating'`\n\t */\n\treadonly ariaLabel = input<string>(undefined, {alias: 'auAriaLabel'});\n\n\t/**\n\t * The aria labelled by\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly ariaLabelledBy = input<string>(undefined, {alias: 'auAriaLabelledBy'});\n\n\t/**\n\t * An event emitted when the user is hovering over a given rating.\n\t *\n\t * Event payload is equal to the rating being hovered over.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly hover = output<number>({alias: 'auHover'});\n\n\t/**\n\t * An event emitted when the user stops hovering over a given rating.\n\t *\n\t * Event payload is equal to the rating of the last item being hovered over.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly leave = output<number>({alias: 'auLeave'});\n\n\t/**\n\t * An event emitted when the rating is changed.\n\t *\n\t * Event payload is equal to the newly selected rating.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly ratingChange = output<number>({alias: 'auRatingChange'});\n\n\twriteValue(value: any): void {\n\t\tthis['_widget'].patch({rating: value});\n\t}\n\n\tregisterOnChange(fn: (value: any) => any): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => any): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(disabled: boolean): void {\n\t\tthis['_widget'].patch({disabled});\n\t}\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createRating, {\n\t\t\t\tevents: {\n\t\t\t\t\tonHover: (event) => this.hover.emit(event),\n\t\t\t\t\tonLeave: (event) => this.leave.emit(event),\n\t\t\t\t\tonRatingChange: (rating: number) => {\n\t\t\t\t\t\tthis.ratingChange.emit(rating);\n\t\t\t\t\t\tthis.onChange(rating);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.containerDirective);\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstar: this.slotStarFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n\n\ttrackByIndex(index: number) {\n\t\treturn index;\n\t}\n}\n","import {getSelectDefaultConfig, createSelect} from '@agnos-ui/core-bootstrap/components/select';\nimport type {WidgetSlotContext, SlotContent, Widget, PropsConfig, HasFocus, FloatingUI, Directive} from '@agnos-ui/angular-headless';\nimport type {Placement} from '@floating-ui/dom';\n\n\n\n/**\n * Retrieve a shallow copy of the default Select config\n * @returns the default Select config\n */\nconst export_getSelectDefaultConfig: () => SelectProps<any> = getSelectDefaultConfig as any;\nexport {export_getSelectDefaultConfig as getSelectDefaultConfig};\n\n\n\n/**\n * Interface for the slot context of the pagination widget\n * @template Item - The type of the items in the Select component.\n */\nexport interface SelectContext<Item> extends WidgetSlotContext<SelectWidget<Item>> {}\n\n\n\n/**\n * Represents the context for a select item, extending the base `SelectContext` with additional\n * contextual data specific to an item.\n *\n * @template Item - The type of the item within the select context.\n */\nexport interface SelectItemContext<Item> extends SelectContext<Item> {\n\t/**\n\t * Contextual data related to an item\n\t */\n\titemContext: ItemContext<Item>;\n}\n\n/**\n * Represents the state of a Select component.\n *\n * @template Item - The type of the items in the select component.\n */\nexport interface SelectState<Item> {\n\t\n\t/**\n\t * List of item contexts, to be displayed in the menu\n\t */\n\tvisibleItems: ItemContext<Item>[];\n\t\n\n\t/**\n\t * List of selected items to be display\n\t */\n\tselectedContexts: ItemContext<Item>[];\n\t\n\n\t/**\n\t * Highlighted item context.\n\t * It is designed to define the highlighted item in the dropdown menu\n\t */\n\thighlighted: ItemContext<Item> | undefined;\n\t\n\n\t/**\n\t * Current placement of the dropdown\n\t */\n\tplacement: Placement | undefined;\n\t\n\t/**\n\t * id used for the input inside the select\n\t */\n\tid: string | undefined;\n\t\n\n\t/**\n\t * aria-label used for the input inside the select\n\t *\n\t * @defaultValue `'Select'`\n\t */\n\tariaLabel: string | undefined;\n\t\n\n\t/**\n\t * List of selected item ids\n\t *\n\t * @defaultValue `[]`\n\t */\n\tselected: Item[];\n\t\n\n\t/**\n\t * Filtered text to be display in the filter input\n\t *\n\t * @defaultValue `''`\n\t */\n\tfilterText: string;\n\t\n\n\t/**\n\t * true if the select is disabled\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * true if the select is open\n\t *\n\t * @defaultValue `false`\n\t */\n\topen: boolean;\n\t\n\n\t/**\n\t * Class to be added on the dropdown menu container\n\t *\n\t * @defaultValue `''`\n\t */\n\tmenuClassName: string;\n\t\n\n\t/**\n\t * Class to be added on menu items\n\t *\n\t * @defaultValue `''`\n\t */\n\tmenuItemClassName: string;\n\t\n\n\t/**\n\t * Class to be added on selected items (displayed in the input zone)\n\t *\n\t * @defaultValue `''`\n\t */\n\tbadgeClassName: string;\n\t\n\n\t/**\n\t * true if a loading process is being done\n\t *\n\t * @defaultValue `false`\n\t */\n\tloading: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to override the way each badge on the left of the input is displayed.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\tbadgeLabel: SlotContent<SelectItemContext<Item>>;\n\t\n\n\t/**\n\t * The template to override the way each item is displayed in the list.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\titemLabel: SlotContent<SelectItemContext<Item>>;\n}\n\n/**\n * Represents the properties for the Select component.\n *\n * @template Item - The type of the items in the select component.\n */\nexport interface SelectProps<Item> {\n\t\n\t/**\n\t * List of available items for the dropdown\n\t *\n\t * @defaultValue `[]`\n\t */\n\titems: Item[];\n\t\n\n\t/**\n\t * List of allowed placements for the dropdown.\n\t * This refers to the [allowedPlacements from floating UI](https://floating-ui.com/docs/autoPlacement#allowedplacements), given the different [Placement possibilities](https://floating-ui.com/docs/computePosition#placement).\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ['bottom-start', 'top-start', 'bottom-end', 'top-end']\n\t * ```\n\t */\n\tallowedPlacements: Placement[];\n\t\n\n\t/**\n\t * Custom function to get the id of an item\n\t * By default, the item is returned\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (item: any) => '' + item\n\t * ```\n\t */\n\titemIdFn(item: Item): string;\n\t\n\n\t/**\n\t * Retrieves navigable elements within an HTML element containing badges and the input.\n\t *\n\t * @param node - HTMLElement that contains the badges and the input\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (node: HTMLElement) => node.querySelectorAll('.au-select-badge,input')\n\t * ```\n\t */\n\tnavSelector(node: HTMLElement): NodeListOf<HTMLSpanElement | HTMLInputElement>;\n\t\n\n\t// Event callbacks\n\n\t/**\n\t * Callback called dropdown open state change\n\t * @param isOpen - updated open state\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonOpenChange(isOpen: boolean): void;\n\t\n\n\t/**\n\t * Callback called when the text filter change\n\t * @param text - Filtered text\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonFilterTextChange(text: string): void;\n\t\n\n\t/**\n\t * Callback called when the selection change\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonSelectedChange(selected: Item[]): void;\n\t\n\t/**\n\t * id used for the input inside the select\n\t */\n\tid: string | undefined;\n\t\n\n\t/**\n\t * aria-label used for the input inside the select\n\t *\n\t * @defaultValue `'Select'`\n\t */\n\tariaLabel: string | undefined;\n\t\n\n\t/**\n\t * List of selected item ids\n\t *\n\t * @defaultValue `[]`\n\t */\n\tselected: Item[];\n\t\n\n\t/**\n\t * Filtered text to be display in the filter input\n\t *\n\t * @defaultValue `''`\n\t */\n\tfilterText: string;\n\t\n\n\t/**\n\t * true if the select is disabled\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * true if the select is open\n\t *\n\t * @defaultValue `false`\n\t */\n\topen: boolean;\n\t\n\n\t/**\n\t * Class to be added on the dropdown menu container\n\t *\n\t * @defaultValue `''`\n\t */\n\tmenuClassName: string;\n\t\n\n\t/**\n\t * Class to be added on menu items\n\t *\n\t * @defaultValue `''`\n\t */\n\tmenuItemClassName: string;\n\t\n\n\t/**\n\t * Class to be added on selected items (displayed in the input zone)\n\t *\n\t * @defaultValue `''`\n\t */\n\tbadgeClassName: string;\n\t\n\n\t/**\n\t * true if a loading process is being done\n\t *\n\t * @defaultValue `false`\n\t */\n\tloading: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to override the way each badge on the left of the input is displayed.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\tbadgeLabel: SlotContent<SelectItemContext<Item>>;\n\t\n\n\t/**\n\t * The template to override the way each item is displayed in the list.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\titemLabel: SlotContent<SelectItemContext<Item>>;\n}\n\n\n\n/**\n * Represents a Select widget component.\n *\n * @template Item - The type of the items that the select widget will handle.\n */\nexport type SelectWidget<Item> = Widget<SelectProps<Item>, SelectState<Item>, SelectApi<Item>, SelectDirectives<Item>>;\n\n\n\n/**\n * Creates a new select widget instance.\n * @param config - config of the modal, either as a store or as an object containing values or stores.\n * @returns a new select widget instance\n */\nconst export_createSelect: <Item>(config?: PropsConfig<SelectProps<Item>>) => SelectWidget<Item> = createSelect as any;\nexport {export_createSelect as createSelect};\n\n\n\n/**\n * Item representation built from the items provided in parameters\n *\n * @template T - The type of the Select Items\n */\nexport interface ItemContext<T> {\n\t/**\n\t * Original item given in the parameters\n\t */\n\titem: T;\n\n\t/**\n\t * Unique id to identify the item\n\t */\n\tid: string;\n\n\t/**\n\t * Specify if the item is checked\n\t */\n\tselected: boolean;\n}\n\n/**\n * Interface representing the API for a Select component.\n *\n * @template Item - The type of the Select Items\n */\nexport interface SelectApi<Item> {\n\t\n\t/**\n\t * Clear all the selected items\n\t */\n\tclear(): void;\n\t\n\n\t/**\n\t * Clear the filter text\n\t */\n\tclearText(): void;\n\t\n\n\t/**\n\t * Highlight the given item, if there is a corresponding match among the visible list\n\t */\n\thighlight(item: Item): void;\n\t\n\n\t/**\n\t * Highlight the first item among the visible list\n\t */\n\thighlightFirst(): void;\n\t\n\n\t/**\n\t * Highlight the previous item among the visible list\n\t * Loop to the last item if needed\n\t */\n\thighlightPrevious(): void;\n\t\n\n\t/**\n\t * Highlight the next item among the visible list.\n\t * Loop to the first item if needed\n\t */\n\thighlightNext(): void;\n\t\n\n\t/**\n\t * Highlight the last item among the visible list\n\t */\n\thighlightLast(): void;\n\t\n\n\t/**\n\t * Select the provided item.\n\t * The selected list is used to\n\t * @param item - the item to select\n\t */\n\tselect(item: Item): void;\n\t\n\t/**\n\t * Unselect the provided item.\n\t * @param item - the item to unselect\n\t */\n\tunselect(item: Item): void;\n\t\n\t/**\n\t * Toggle the selection of an item\n\t * @param item - the item to toggle\n\t * @param selected - an optional boolean to enforce the selected/unselected state instead of toggling\n\t */\n\ttoggleItem(item: Item, selected?: boolean): void;\n\t\n\n\t/**\n\t * open the select\n\t */\n\topen(): void;\n\t\n\t/**\n\t * close the select\n\t */\n\tclose(): void;\n\t\n\t/**\n\t * Toggle the dropdown menu\n\t * @param isOpen - If specified, set the menu in the defined state.\n\t */\n\ttoggle(isOpen?: boolean): void;\n}\n\n/**\n * Interface representing the directives used in the Select component.\n *\n * @template Item - The type of the Select Items\n */\nexport interface SelectDirectives<Item> {\n\t\n\t/**\n\t * Directive to be used in the input group and the menu containers\n\t */\n\thasFocusDirective: HasFocus['directive'];\n\t\n\n\t/**\n\t * Directive that enables dynamic positioning of menu element\n\t */\n\tfloatingDirective: FloatingUI['directives']['floatingDirective'];\n\t\n\n\t/**\n\t * A directive to be applied to the input group element serves as the base for menu positioning\n\t */\n\treferenceDirective: FloatingUI['directives']['referenceDirective'];\n\t\n\n\t/**\n\t * A directive to be applied to the element that contains the badges and the input\n\t */\n\tinputContainerDirective: Directive;\n\t\n\n\t/**\n\t * A directive that applies all the necessary attributes to the container badges\n\t */\n\tbadgeAttributesDirective: Directive<ItemContext<Item>>;\n\t\n\n\t/**\n\t * A directive that applies all the necessary attributes to the dropdown menu\n\t */\n\tmenuAttributesDirective: Directive;\n\t\n\n\t/**\n\t * A directive that applies all the necessary attributes to the dropdown item\n\t */\n\titemAttributesDirective: Directive<ItemContext<Item>>;\n\t\n\n\t/**\n\t * A directive to be applied to the input\n\t */\n\tinputDirective: Directive;\n\t\n\t/**\n\t * A directive to be applied to a button that closes a badge\n\t */\n\tbadgeCloseButtonDirective: Directive<ItemContext<Item>>;\n}\n\n","import type {SlotContent} from '@agnos-ui/angular-headless';\nimport {\n\tBaseWidgetDirective,\n\tSlotDirective,\n\tUseDirective,\n\tUseMultiDirective,\n\tauBooleanAttribute,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, output, contentChild} from '@angular/core';\nimport type {Placement} from '@floating-ui/dom';\nimport {callWidgetFactory} from '../../config';\nimport type {ItemContext, SelectItemContext, SelectWidget} from './select.gen';\nimport {createSelect} from './select.gen';\n\n/**\n * Directive to provide a custom template for the badge label in a select component.\n *\n * @template Item - The type of the item in the select component.\n *\n * This directive uses a template reference to render the {@link SelectItemContext<Item>}.\n */\n@Directive({selector: 'ng-template[auSelectBadgeLabel]'})\nexport class SelectBadgeLabelDirective<Item> {\n\tpublic templateRef = inject(TemplateRef<SelectItemContext<Item>>);\n\tstatic ngTemplateContextGuard<Item>(_dir: SelectBadgeLabelDirective<Item>, context: unknown): context is SelectItemContext<Item> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide a custom label template for select items.\n *\n * This directive allows you to define a custom template for the labels of items\n * in a select component. The template can be specified using an Angular `TemplateRef`.\n *\n * @template Item - The type of the items in the select component.\n *\n * This directive uses a template reference to render the {@link SelectItemContext<Item>}.\n */\n@Directive({selector: 'ng-template[auSelectItemLabel]'})\nexport class SelectItemLabelDirective<Item> {\n\tpublic templateRef = inject(TemplateRef<SelectItemContext<Item>>);\n\tstatic ngTemplateContextGuard<Item>(_dir: SelectItemLabelDirective<Item>, context: unknown): context is SelectItemContext<Item> {\n\t\treturn true;\n\t}\n}\n\n/**\n * A component that represents a customizable select dropdown widget.\n *\n * @template Item - The type of items in the select dropdown.\n */\n@Component({\n\timports: [UseMultiDirective, SlotDirective, UseDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tselector: '[auSelect]',\n\thost: {\n\t\t'[class]': '\"au-select dropdown border border-1 p-1 mb-3 d-block\" + state.className()',\n\t},\n\ttemplate: `\n\t\t<div [auUseMulti]=\"[directives.hasFocusDirective, directives.inputContainerDirective]\" class=\"d-flex align-items-center flex-wrap gap-1\">\n\t\t\t@if (state.selectedContexts(); as selectedContexts) {\n\t\t\t\t@for (itemContext of selectedContexts; track itemCtxTrackBy($index, itemContext)) {\n\t\t\t\t\t<div [auUse]=\"[directives.badgeAttributesDirective, itemContext]\">\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.badgeLabel()\" [auSlotProps]=\"{state, api, directives, itemContext}\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t\t<input [auUse]=\"directives.inputDirective\" [value]=\"state.filterText()\" />\n\t\t</div>\n\t\t@if (state.open() && state.visibleItems().length) {\n\t\t\t<ul [auUseMulti]=\"[directives.hasFocusDirective, directives.floatingDirective, directives.menuAttributesDirective]\" class=\"dropdown-menu show\">\n\t\t\t\t@for (itemContext of state.visibleItems(); track itemCtxTrackBy($index, itemContext)) {\n\t\t\t\t\t<li\n\t\t\t\t\t\tclass=\"dropdown-item position-relative\"\n\t\t\t\t\t\t[auUse]=\"[directives.itemAttributesDirective, itemContext]\"\n\t\t\t\t\t\t[class.text-bg-primary]=\"itemContext === state.highlighted()\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.itemLabel()\" [auSlotProps]=\"{state, api, directives, itemContext}\" />\n\t\t\t\t\t</li>\n\t\t\t\t}\n\t\t\t</ul>\n\t\t}\n\t`,\n})\nexport class SelectComponent<Item> extends BaseWidgetDirective<SelectWidget<Item>> {\n\t/**\n\t * aria-label used for the input inside the select\n\t *\n\t * @defaultValue `'Select'`\n\t */\n\treadonly ariaLabel = input<string>(undefined, {alias: 'auAriaLabel'});\n\n\t/**\n\t * id used for the input inside the select\n\t */\n\treadonly id = input<string>(undefined, {alias: 'auId'});\n\n\t/**\n\t * List of available items for the dropdown\n\t *\n\t * @defaultValue `[]`\n\t */\n\treadonly items = input<Item[]>(undefined, {alias: 'auItems'});\n\n\t/**\n\t * List of allowed placements for the dropdown.\n\t * This refers to the [allowedPlacements from floating UI](https://floating-ui.com/docs/autoPlacement#allowedplacements), given the different [Placement possibilities](https://floating-ui.com/docs/computePosition#placement).\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ['bottom-start', 'top-start', 'bottom-end', 'top-end']\n\t * ```\n\t */\n\treadonly allowedPlacements = input<Placement[]>(undefined, {alias: 'auAllowedPlacements'});\n\n\t/**\n\t * true if the select is open\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly open = input(undefined, {alias: 'auOpen', transform: auBooleanAttribute});\n\n\t/**\n\t * Filtered text to be display in the filter input\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly filterText = input<string>(undefined, {alias: 'auFilterText'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * true if the select is disabled\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly disabled = input(undefined, {alias: 'auDisabled', transform: auBooleanAttribute});\n\n\t/**\n\t * List of selected item ids\n\t *\n\t * @defaultValue `[]`\n\t */\n\treadonly selected = input<Item[]>(undefined, {alias: 'auSelected'});\n\n\t/**\n\t * true if a loading process is being done\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly loading = input(undefined, {alias: 'auLoading', transform: auBooleanAttribute});\n\n\t/**\n\t * Custom function to get the id of an item\n\t * By default, the item is returned\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (item: any) => '' + item\n\t * ```\n\t */\n\treadonly itemIdFn = input<(item: Item) => string>(undefined, {alias: 'auItemIdFn'});\n\n\t/**\n\t * Class to be added on the dropdown menu container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly menuClassName = input<string>(undefined, {alias: 'auMenuClassName'});\n\n\t/**\n\t * The template to override the way each badge on the left of the input is displayed.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\treadonly badgeLabel = input<SlotContent<SelectItemContext<Item>>>(undefined, {alias: 'auBadgeLabel'});\n\treadonly slotSelectBadgeLabelFromContent = contentChild(SelectBadgeLabelDirective);\n\n\t/**\n\t * The template to override the way each item is displayed in the list.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\treadonly itemLabel = input<SlotContent<SelectItemContext<Item>>>(undefined, {alias: 'auItemLabel'});\n\treadonly slotSelectItemLabelFromContent = contentChild(SelectItemLabelDirective);\n\n\t/**\n\t * Callback called when the text filter change\n\t * @param text - Filtered text\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly filterTextChange = output<string>({alias: 'auFilterTextChange'});\n\n\t/**\n\t * Callback called when the selection change\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly selectedChange = output<Item[]>({alias: 'auSelectedChange'});\n\n\t/**\n\t * Callback called dropdown open state change\n\t * @param isOpen - updated open state\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly openChange = output<boolean>({alias: 'auOpenChange'});\n\n\t/**\n\t * Class to be added on menu items\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly menuItemClassName = input<string>(undefined, {alias: 'auMenuItemClassName'});\n\n\t/**\n\t * Class to be added on selected items (displayed in the input zone)\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly badgeClassName = input<string>(undefined, {alias: 'auBadgeClassName'});\n\n\t/**\n\t * Retrieves navigable elements within an HTML element containing badges and the input.\n\t *\n\t * @param node - HTMLElement that contains the badges and the input\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (node: HTMLElement) => node.querySelectorAll('.au-select-badge,input')\n\t * ```\n\t */\n\treadonly navSelector = input<(node: HTMLElement) => NodeListOf<HTMLSpanElement | HTMLInputElement>>(undefined, {alias: 'auNavSelector'});\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory<SelectWidget<Item>>(createSelect, {\n\t\t\t\tevents: {\n\t\t\t\t\tonOpenChange: (event) => this.openChange.emit(event),\n\t\t\t\t\tonSelectedChange: (event) => this.selectedChange.emit(event),\n\t\t\t\t\tonFilterTextChange: (event) => this.filterTextChange.emit(event),\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.referenceDirective);\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tbadgeLabel: this.slotSelectBadgeLabelFromContent()?.templateRef,\n\t\t\t\t\titemLabel: this.slotSelectItemLabelFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n\n\titemCtxTrackBy(_: number, itemContext: ItemContext<Item>) {\n\t\treturn itemContext.id;\n\t}\n}\n","import {getAlertDefaultConfig, createAlert} from '@agnos-ui/core-bootstrap/components/alert';\nimport type {WidgetSlotContext, SlotContent, TransitionFn, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\nimport type {BSContextualClass} from '@agnos-ui/core-bootstrap/types';\n\n\n\n/**\n * Retrieve a shallow copy of the default Alert config\n * @returns the default Alert config\n */\nconst export_getAlertDefaultConfig: () => AlertProps = getAlertDefaultConfig as any;\nexport {export_getAlertDefaultConfig as getAlertDefaultConfig};\n\n\n\n/**\n * Represents the context for an Alert component.\n */\nexport interface AlertContext extends WidgetSlotContext<AlertWidget> {}\n\n/**\n * Represents the state of an alert component.\n */\nexport interface AlertState {\n\t\n\t/**\n\t * Is `true` when the alert is hidden. Compared to `visible`, this is updated after the transition is executed.\n\t */\n\thidden: boolean;\n\t\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdismissible: boolean;\n\t\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n\t\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Global template for the alert component\n\t */\n\tstructure: SlotContent<AlertContext>;\n\t\n\t/**\n\t * Template for the alert content\n\t */\n\tchildren: SlotContent<AlertContext>;\n\t\n\t/**\n\t * Type of the alert, following bootstrap types.\n\t *\n\t * @defaultValue `'primary'`\n\t */\n\ttype: BSContextualClass;\n}\n\n/**\n * Represents the properties for the Alert component.\n */\nexport interface AlertProps {\n\t\n\t/**\n\t * The transition function will be executed when the alert is displayed or hidden.\n\t *\n\t * Depending on the value of `animatedOnInit`, the animation can be optionally skipped during the showing process.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\ttransition: TransitionFn;\n\t\n\t/**\n\t * Callback called when the alert visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonVisibleChange: (visible: boolean) => void;\n\t\n\n\t/**\n\t * Callback called when the alert is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonHidden: () => void;\n\t\n\n\t/**\n\t * Callback called when the alert is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonShown: () => void;\n\t\n\n\t/**\n\t * If `true`, alert opening will be animated.\n\t *\n\t * Animation is triggered when the `.open()` function is called\n\t * or the visible prop is changed\n\t *\n\t * @defaultValue `false`\n\t */\n\tanimatedOnInit: boolean;\n\t\n\t/**\n\t * If `true`, alert closing will be animated.\n\t *\n\t * Animation is triggered when clicked on the close button (×),\n\t * via the `.close()` function or the visible prop is changed\n\t *\n\t * @defaultValue `true`\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdismissible: boolean;\n\t\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n\t\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Global template for the alert component\n\t */\n\tstructure: SlotContent<AlertContext>;\n\t\n\t/**\n\t * Template for the alert content\n\t */\n\tchildren: SlotContent<AlertContext>;\n\t\n\t/**\n\t * Type of the alert, following bootstrap types.\n\t *\n\t * @defaultValue `'primary'`\n\t */\n\ttype: BSContextualClass;\n}\n\n\n\n/**\n * Represents an alert widget component.\n */\nexport type AlertWidget = Widget<AlertProps, AlertState, AlertApi, AlertDirectives>;\n\n\n\n/**\n * Create an AlertWidget with given config props\n * @param config - an optional alert config\n * @returns an AlertWidget\n */\nconst export_createAlert: WidgetFactory<AlertWidget> = createAlert as any;\nexport {export_createAlert as createAlert};\n\n/**\n * Represents the API for an alert component.\n */\nexport interface AlertApi {\n\t\n\t/**\n\t * Triggers alert closing programmatically (same as clicking on the close button (×)).\n\t */\n\tclose(): void;\n\t\n\n\t/**\n\t * Triggers the alert to be displayed for the user.\n\t */\n\topen(): void;\n}\n\n/**\n * Represents the directives for an alert component.\n */\nexport interface AlertDirectives {\n\t\n\t/**\n\t * the transition directive, piloting what is the visual effect of going from hidden to visible\n\t */\n\ttransitionDirective: Directive;\n}\n\n","import type {SlotContent, TransitionFn} from '@agnos-ui/angular-headless';\nimport {BaseWidgetDirective, ComponentTemplate, SlotDirective, UseDirective, auBooleanAttribute} from '@agnos-ui/angular-headless';\nimport type {AlertContext, AlertWidget} from './alert.gen';\nimport {createAlert} from './alert.gen';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, output, viewChild, contentChild} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\nimport type {BSContextualClass} from '@agnos-ui/core-bootstrap/types';\n\n/**\n * Directive to be used as a structural directive for the body of an alert component.\n *\n * This directive allows the use of a template reference for the alert body content, with type {@link AlertContext}.\n */\n@Directive({selector: 'ng-template[auAlertBody]'})\nexport class AlertBodyDirective {\n\tpublic templateRef = inject(TemplateRef<AlertContext>);\n\tstatic ngTemplateContextGuard(_dir: AlertBodyDirective, context: unknown): context is AlertContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to define the structure of an alert component.\n *\n * This directive uses a `TemplateRef` to inject the template reference of the {@link AlertContext}.\n */\n@Directive({selector: 'ng-template[auAlertStructure]'})\nexport class AlertStructureDirective {\n\tpublic templateRef = inject(TemplateRef<AlertContext>);\n\tstatic ngTemplateContextGuard(_dir: AlertStructureDirective, context: unknown): context is AlertContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, AlertStructureDirective],\n\ttemplate: ` <ng-template auAlertStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t<div class=\"alert-body\">\n\t\t\t<ng-template [auSlot]=\"state.children()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t</div>\n\t\t@if (state.dismissible()) {\n\t\t\t<button type=\"button\" class=\"btn-close\" (click)=\"api.close()\" [attr.aria-label]=\"state.ariaCloseButtonLabel()\"></button>\n\t\t}\n\t</ng-template>`,\n})\nclass AlertDefaultSlotsComponent {\n\treadonly structure = viewChild.required<TemplateRef<AlertContext>>('structure');\n}\n\n/**\n * Represents the default slot structure for the alert component.\n */\nexport const alertDefaultSlotStructure: SlotContent<AlertContext> = new ComponentTemplate(AlertDefaultSlotsComponent, 'structure');\n\n/**\n * AlertComponent is a UI component that extends BaseWidgetDirective to provide\n * an alert box with various customizable properties and behaviors.\n *\n * @remarks\n * This component is designed to be used with Bootstrap styles and supports\n * various Bootstrap contextual classes for different alert types.\n */\n@Component({\n\tselector: '[auAlert]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, UseDirective],\n\ttemplate: ` <ng-template #content>\n\t\t\t<ng-content />\n\t\t</ng-template>\n\n\t\t@if (!state.hidden()) {\n\t\t\t<div\n\t\t\t\t[auUse]=\"directives.transitionDirective\"\n\t\t\t\tclass=\"au-alert alert alert-{{ state.type() }} {{ state.className() }} {{ state.dismissible() ? 'alert-dismissible' : '' }}\"\n\t\t\t\trole=\"alert\"\n\t\t\t>\n\t\t\t\t<ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t</div>\n\t\t}`,\n})\nexport class AlertComponent extends BaseWidgetDirective<AlertWidget> {\n\t/**\n\t * Type of the alert, following bootstrap types.\n\t *\n\t * @defaultValue `'primary'`\n\t */\n\treadonly type = input<BSContextualClass>(undefined, {alias: 'auType'});\n\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly dismissible = input(undefined, {alias: 'auDismissible', transform: auBooleanAttribute});\n\n\t/**\n\t * The transition function will be executed when the alert is displayed or hidden.\n\t *\n\t * Depending on the value of `animatedOnInit`, the animation can be optionally skipped during the showing process.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\treadonly transition = input<TransitionFn>(undefined, {alias: 'auTransition'});\n\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly visible = input(undefined, {alias: 'auVisible', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, alert opening will be animated.\n\t *\n\t * Animation is triggered when the `.open()` function is called\n\t * or the visible prop is changed\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly animatedOnInit = input(undefined, {alias: 'auAnimatedOnInit', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, alert closing will be animated.\n\t *\n\t * Animation is triggered when clicked on the close button (×),\n\t * via the `.close()` function or the visible prop is changed\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\treadonly ariaCloseButtonLabel = input<string>(undefined, {alias: 'auAriaCloseButtonLabel'});\n\n\t/**\n\t * Template for the alert content\n\t */\n\treadonly children = input<SlotContent<AlertContext>>(undefined, {alias: 'auChildren'});\n\treadonly slotDefaultFromContent = contentChild(AlertBodyDirective);\n\n\t/**\n\t * Global template for the alert component\n\t */\n\treadonly structure = input<SlotContent<AlertContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(AlertStructureDirective);\n\n\t/**\n\t * Callback called when the alert visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly visibleChange = output<boolean>({alias: 'auVisibleChange'});\n\n\t/**\n\t * Callback called when the alert is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly hidden = output<void>({alias: 'auHidden'});\n\n\t/**\n\t * Callback called when the alert is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly shown = output<void>({alias: 'auShown'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\treadonly slotChildren = viewChild<TemplateRef<void>>('content');\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createAlert, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: alertDefaultSlotStructure,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonVisibleChange: (event) => this.visibleChange.emit(event),\n\t\t\t\t\tonShown: () => this.shown.emit(),\n\t\t\t\t\tonHidden: () => this.hidden.emit(),\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tchildren: this.slotDefaultFromContent()?.templateRef,\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t\tslotChildren: () => this.slotChildren(),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {getAccordionDefaultConfig, createAccordionItem, createAccordion, factoryCreateAccordion} from '@agnos-ui/core-bootstrap/components/accordion';\nimport type {WidgetSlotContext, SlotContent, TransitionFn, Widget, WidgetFactory, ConfigValidator, PropsConfig, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default accordion config\n * @returns the default accordion config\n */\nconst export_getAccordionDefaultConfig: () => AccordionProps = getAccordionDefaultConfig as any;\nexport {export_getAccordionDefaultConfig as getAccordionDefaultConfig};\n\n\n\n/**\n * Represents the context for an accordion item within the accordion component.\n */\nexport interface AccordionItemContext extends WidgetSlotContext<AccordionItemWidget> {}\n\n/**\n * Represents the state of an Accordion component.\n */\nexport interface AccordionState {\n\t\n\t/**\n\t * Array containing all the accordion-items contained in the accordion.\n\t */\n\titemWidgets: AccordionItemWidget[];\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\titemStructure: SlotContent<AccordionItemContext>;\n}\n\n/**\n * Represents the state of an AccordionItem component.\n */\nexport interface AccordionProps {\n\t\n\t/**\n\t * The transition to use for the accordion-item body-container when the accordion-item is toggled.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * collapseVerticalTransition\n\t * ```\n\t */\n\titemTransition: TransitionFn;\n\t\n\t/**\n\t * If `true`, only one accordion-item at the time can stay open.\n\t *\n\t * @defaultValue `false`\n\t */\n\tcloseOthers: boolean;\n\t\n\t/**\n\t * An event fired when an item is shown.\n\t *\n\t * Event payload is the id of the item.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonItemShown: (itemId: string) => void;\n\t\n\t/**\n\t * An event fired when an item is hidden.\n\t *\n\t * Event payload is the id of the item.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonItemHidden: (itemId: string) => void;\n\t\n\t/**\n\t * If `true`, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise.\n\t *\n\t * @defaultValue `true`\n\t */\n\titemDestroyOnHide: boolean;\n\t\n\t/**\n\t * If `true`, accordion-item will be animated.\n\t *\n\t * @defaultValue `true`\n\t */\n\titemAnimated: boolean;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item header DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemHeaderClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item toggle button DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemButtonClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body container DOM element.\n\t * The accordion-item body container is the DOM element on what the itemTransition is applied.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemBodyContainerClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemBodyClassName: string;\n\t\n\t/**\n\t * The html tag to use for the accordion-item-header.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemHeadingTag: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\titemStructure: SlotContent<AccordionItemContext>;\n}\n\n\n\n/**\n * Represents an Accordion widget type.\n */\nexport type AccordionWidget = Widget<AccordionProps, AccordionState, AccordionApi, AccordionDirectives>;\n\n/**\n * Represents the state of an accordion item, extending the core item state and additional properties specific to the accordion item.\n */\nexport interface AccordionItemState {\n\t\n\t/**\n\t * If `true` the content of the accordion-item collapse should be in DOM. Its value depends on the\n\t * value of the `visible` and `destroyOnHide`.\n\t */\n\tshouldBeInDOM: boolean;\n\t\n\t/**\n\t * If `true`, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed).\n\t */\n\tvisible: boolean;\n\t\n\t/**\n\t * If `true`, the accordion-item will be disabled.\n\t * It will not react to user's clicks, but still will be possible to toggle programmatically.\n\t */\n\tdisabled: boolean;\n\t\n\t/**\n\t * The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api.\n\t */\n\tid: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item header DOM element.\n\t */\n\theaderClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item collapse DOM element.\n\t */\n\tbuttonClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body container DOM element.\n\t * The accordion-item body container is the DOM element on what the itemTransition is applied.\n\t */\n\tbodyContainerClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body DOM element.\n\t */\n\tbodyClassName: string;\n\t\n\t/**\n\t * The html tag to use for the accordion-item-header.\n\t */\n\theadingTag: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\tstructure: SlotContent<AccordionItemContext>;\n\t\n\t/**\n\t * Content present in the accordion body.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\tchildren: SlotContent<AccordionItemContext>;\n\t\n\t/**\n\t * Content present in the accordion button inside the accordion header.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\theader: SlotContent<AccordionItemContext>;\n}\n\n/**\n * Represents the properties for an Accordion item component.\n */\nexport interface AccordionItemProps {\n\t\n\t/**\n\t * If `true`, accordion-item will be animated.\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * The transition to use for the accordion-item body-container when the accordion-item is toggled.\n\t */\n\ttransition: TransitionFn;\n\t\n\t/**\n\t * If `true`, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise.\n\t */\n\tdestroyOnHide: boolean;\n\t\n\t/**\n\t * An event fired when an item is shown.\n\t */\n\tonShown: () => void;\n\t\n\t/**\n\t * An event fired when an item is hidden.\n\t */\n\tonHidden: () => void;\n\t\n\t/**\n\t * An event fired when the `visible` value changes.\n\t *\n\t * Event payload is the new value of visible.\n\t */\n\tonVisibleChange: (visible: boolean) => void;\n\t\n\t/**\n\t * If `true`, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed).\n\t */\n\tvisible: boolean;\n\t\n\t/**\n\t * If `true`, the accordion-item will be disabled.\n\t * It will not react to user's clicks, but still will be possible to toggle programmatically.\n\t */\n\tdisabled: boolean;\n\t\n\t/**\n\t * The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api.\n\t */\n\tid: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item header DOM element.\n\t */\n\theaderClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item collapse DOM element.\n\t */\n\tbuttonClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body container DOM element.\n\t * The accordion-item body container is the DOM element on what the itemTransition is applied.\n\t */\n\tbodyContainerClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body DOM element.\n\t */\n\tbodyClassName: string;\n\t\n\t/**\n\t * The html tag to use for the accordion-item-header.\n\t */\n\theadingTag: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\tstructure: SlotContent<AccordionItemContext>;\n\t\n\t/**\n\t * Content present in the accordion body.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\tchildren: SlotContent<AccordionItemContext>;\n\t\n\t/**\n\t * Content present in the accordion button inside the accordion header.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\theader: SlotContent<AccordionItemContext>;\n}\n\n\n\n/**\n * Represents a widget for an accordion item.\n */\nexport type AccordionItemWidget = Widget<AccordionItemProps, AccordionItemState, AccordionItemApi, AccordionItemDirectives>;\n\n\n\n/**\n * Create an AccordionItemWidget with given config props\n * @param config - an optional AccordionItem config\n * @returns an AccordionItemWidget\n */\nconst export_createAccordionItem: WidgetFactory<AccordionItemWidget> = createAccordionItem as any;\nexport {export_createAccordionItem as createAccordionItem};\n\n\n\n/**\n * Create an AccordionWidget with given config props\n * @param config - an optional accordion config\n * @returns an AccordionWidget\n */\nconst export_createAccordion: WidgetFactory<AccordionWidget> = createAccordion as any;\nexport {export_createAccordion as createAccordion};\n\n\n\n/**\n * Create an accordion WidgetFactory based on a item factory and the list of item props that should inherit from the parent accordion\n *\n * @param itemFactory - the item factory\n * @param accordionItemProps - the list of item props\n * @param accordionConfig - the default accordion config\n * @param accordionValidator - the validator of props\n * @returns the accordion widget factory\n */\nconst export_factoryCreateAccordion: (itemFactory?: WidgetFactory<AccordionItemWidget>, accordionItemProps?: string[], accordionConfig?: AccordionProps, accordionValidator?: ConfigValidator<AccordionProps>) => WidgetFactory<AccordionWidget> = factoryCreateAccordion as any;\nexport {export_factoryCreateAccordion as factoryCreateAccordion};\n\n/**\n * Interface representing the API for an accordion component.\n */\nexport interface AccordionApi {\n\t\n\t/**\n\t * Given the itemId, will expand the corresponding accordion-item.\n\t *\n\t * If the itemId is not valid, nothing will happen.\n\t */\n\texpand(itemId: string): void;\n\t\n\t/**\n\t * Given the itemId, will collapse the corresponding accordion-item.\n\t *\n\t * If the itemId is not valid, nothing will happen.\n\t */\n\tcollapse(itemId: string): void;\n\t\n\t/**\n\t * Given the itemId, will toggle the corresponding accordion-item.\n\t *\n\t * If the itemId is not valid, nothing will happen.\n\t */\n\ttoggle(itemId: string): void;\n\t\n\t/**\n\t * It will expand all the items in the accordion.\n\t *\n\t * If `closeOthers` is `true` it will expand only the last accordion-item.\n\t */\n\texpandAll(): void;\n\t\n\t/**\n\t * It will collapse all the accordion-items in the accordion.\n\t */\n\tcollapseAll(): void;\n\t\n\t/**\n\t * Creates a new accordionItem.\n\t */\n\tregisterItem(itemConfig?: PropsConfig<AccordionItemProps>): AccordionItemWidget;\n}\n\n/**\n * Interface representing the directives used in the Accordion component.\n */\nexport interface AccordionDirectives {\n\t\n\t/**\n\t * Directive to put on the accordion DOM element\n\t */\n\taccordionDirective: Directive;\n}\n\n/**\n * Interface representing the API for an accordion item.\n */\nexport interface AccordionItemApi {\n\t\n\t/**\n\t * It will collapse the accordion-item.\n\t */\n\tcollapse(): void;\n\t\n\n\t/**\n\t * It will expand the accordion-item.\n\t */\n\texpand(): void;\n\t\n\t/**\n\t * It will toggle the accordion-item.\n\t */\n\ttoggle(): void;\n\t\n\t/**\n\t * Method to be called after the initialization to allow animations.\n\t */\n\tinitDone(): void;\n}\n\n/**\n * Interface representing the directives used in an accordion item.\n */\nexport interface AccordionItemDirectives {\n\t\n\t/**\n\t * Directive to use in special cases, if the accordion header does not use a button element to control the collapsing.\n\t */\n\ttoggleDirective: Directive;\n\t\n\n\t/**\n\t * Directive to put on the button element that will control the collapsing of the accordion-item.\n\t */\n\tbuttonDirective: Directive;\n\t\n\n\t/**\n\t * Directive to put on the accordion-item header that will contain the button element.\n\t */\n\theaderDirective: Directive;\n\t\n\n\t/**\n\t * Directive to put on the accordion-item body.\n\t */\n\tbodyDirective: Directive;\n\t\n\t/**\n\t * Directive to apply the itemTransition\n\t */\n\ttransitionDirective: Directive;\n\t\n\t/**\n\t * Directive to apply aria attributes to the expanded body panel\n\t */\n\tbodyContainerAttrsDirective: Directive;\n\t\n\t/**\n\t * Directive to be put on the accordion-item body container. It will handle the animation.\n\t */\n\tbodyContainerDirective: Directive;\n\t\n\t/**\n\t * Directive to be put on the accordion-item. It will handle adding the accordion-item to the accordion.\n\t */\n\titemDirective: Directive;\n}\n\n","import type {SlotContent, TransitionFn} from '@agnos-ui/angular-headless';\nimport {\n\tBaseWidgetDirective,\n\tComponentTemplate,\n\tSlotDirective,\n\tUseDirective,\n\tauBooleanAttribute,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\nimport {NgTemplateOutlet} from '@angular/common';\nimport type {AfterViewInit} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, output, viewChild, contentChild} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\nimport type {AccordionItemContext, AccordionItemWidget, AccordionWidget} from './accordion.gen';\nimport {createAccordion} from './accordion.gen';\n\n/**\n * Directive to represent the body of an accordion item.\n *\n * This directive provides a template reference for the {@link AccordionItemContext}.\n */\n@Directive({selector: 'ng-template[auAccordionItemBody]'})\nexport class AccordionBodyDirective {\n\tpublic templateRef = inject(TemplateRef<AccordionItemContext>);\n\tstatic ngTemplateContextGuard(_dir: AccordionBodyDirective, context: unknown): context is AccordionItemContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to be used as an accordion header.\n *\n * This directive provides a template reference for the {@link AccordionItemContext}.\n */\n@Directive({selector: 'ng-template[auAccordionItemHeader]'})\nexport class AccordionHeaderDirective {\n\tpublic templateRef = inject(TemplateRef<AccordionItemContext>);\n\tstatic ngTemplateContextGuard(_dir: AccordionHeaderDirective, context: unknown): context is AccordionItemContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive that represents the structure of an accordion item.\n *\n * This directive provides a template reference for the {@link AccordionItemContext}.\n * It also includes a static method to guard the template context type.\n */\n@Directive({selector: 'ng-template[auAccordionItemStructure]'})\nexport class AccordionItemStructureDirective {\n\tpublic templateRef = inject(TemplateRef<AccordionItemContext>);\n\tstatic ngTemplateContextGuard(_dir: AccordionItemStructureDirective, context: unknown): context is AccordionItemContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, SlotDirective, NgTemplateOutlet, AccordionItemStructureDirective],\n\ttemplate: `\n\t\t<ng-template auAccordionItemStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t@switch (state.headingTag()) {\n\t\t\t\t@case ('h1') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h1\" />\n\t\t\t\t}\n\t\t\t\t@case ('h2') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h2\" />\n\t\t\t\t}\n\t\t\t\t@case ('h3') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h3\" />\n\t\t\t\t}\n\t\t\t\t@case ('h4') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h4\" />\n\t\t\t\t}\n\t\t\t\t@case ('h5') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h5\" />\n\t\t\t\t}\n\t\t\t\t@case ('h6') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h6\" />\n\t\t\t\t}\n\t\t\t\t@default {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h2\" />\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t<ng-template #h1>\n\t\t\t\t<h1 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h1>\n\t\t\t</ng-template>\n\n\t\t\t<ng-template #h2>\n\t\t\t\t<h2 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h2>\n\t\t\t</ng-template>\n\n\t\t\t<ng-template #h3>\n\t\t\t\t<h3 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h3>\n\t\t\t</ng-template>\n\n\t\t\t<ng-template #h4>\n\t\t\t\t<h4 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h4>\n\t\t\t</ng-template>\n\n\t\t\t<ng-template #h5>\n\t\t\t\t<h5 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h5>\n\t\t\t</ng-template>\n\t\t\t<ng-template #h6>\n\t\t\t\t<h6 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h6>\n\t\t\t</ng-template>\n\n\t\t\t<ng-template #button>\n\t\t\t\t<button class=\"accordion-button \" [auUse]=\"directives.buttonDirective\">\n\t\t\t\t\t<ng-template [auSlotProps]=\"{state, directives, api}\" [auSlot]=\"state.header()\" />\n\t\t\t\t</button>\n\t\t\t</ng-template>\n\t\t\t@if (state.shouldBeInDOM()) {\n\t\t\t\t<div [auUse]=\"directives.bodyContainerDirective\" class=\"accordion-collapse\">\n\t\t\t\t\t<div class=\"accordion-body\" [auUse]=\"directives.bodyDirective\">\n\t\t\t\t\t\t<ng-template [auSlotProps]=\"{state, directives, api}\" [auSlot]=\"state.children()\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-template>\n\t`,\n})\nclass AccordionItemDefaultSlotsComponent {\n\treadonly structure = viewChild.required<TemplateRef<AccordionItemContext>>('structure');\n}\n/**\n * Represents the default slot structure for an accordion item.\n */\nexport const accordionItemDefaultSlotStructure: SlotContent<AccordionItemContext> = new ComponentTemplate(\n\tAccordionItemDefaultSlotsComponent,\n\t'structure',\n);\n\n/**\n * AccordionItemComponent is a component that represents an item within an accordion.\n */\n@Component({\n\tselector: '[auAccordionItem]',\n\texportAs: 'auAccordionItem',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'accordion-item',\n\t},\n\timports: [SlotDirective],\n\ttemplate: `\n\t\t<ng-template #content><ng-content /></ng-template>\n\t\t<ng-template [auSlotProps]=\"{state, api, directives}\" [auSlot]=\"state.structure()\" />\n\t`,\n})\nexport class AccordionItemComponent extends BaseWidgetDirective<AccordionItemWidget> implements AfterViewInit {\n\t/**\n\t * Content present in the accordion button inside the accordion header.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\treadonly header = input<SlotContent<AccordionItemContext>>(undefined, {alias: 'auHeader'});\n\treadonly slotHeaderFromContent = contentChild(AccordionHeaderDirective);\n\t/**\n\t * Content present in the accordion body.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\treadonly children = input<SlotContent<AccordionItemContext>>(undefined, {alias: 'auChildren'});\n\treadonly slotBodyFromContent = contentChild(AccordionBodyDirective);\n\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\treadonly structure = input<SlotContent<AccordionItemContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(AccordionItemStructureDirective);\n\n\t/**\n\t * The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api.\n\t */\n\treadonly id = input<string>(undefined, {alias: 'auId'});\n\t/**\n\t * The transition to use for the accordion-item body-container when the accordion-item is toggled.\n\t */\n\treadonly transition = input<TransitionFn>(undefined, {alias: 'auTransition'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\t/**\n\t * If `true`, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise.\n\t */\n\treadonly destroyOnHide = input(undefined, {alias: 'auDestroyOnHide', transform: auBooleanAttribute});\n\t/**\n\t * If `true`, the accordion-item will be disabled.\n\t * It will not react to user's clicks, but still will be possible to toggle programmatically.\n\t */\n\treadonly disabled = input(undefined, {alias: 'auDisabled', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed).\n\t */\n\treadonly visible = input(undefined, {alias: 'auVisible', transform: auBooleanAttribute});\n\t/**\n\t * If `true`, accordion-item will be animated.\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\t/**\n\t * CSS classes to add on the accordion-item header DOM element.\n\t */\n\treadonly headerClassName = input<string>(undefined, {alias: 'auHeaderClassName'});\n\t/**\n\t * CSS classes to add on the accordion-item collapse DOM element.\n\t */\n\treadonly buttonClassName = input<string>(undefined, {alias: 'auButtonClassName'});\n\t/**\n\t * CSS classes to add on the accordion-item body container DOM element.\n\t * The accordion-item body container is the DOM element on what the itemTransition is applied.\n\t */\n\treadonly bodyContainerClassName = input<string>(undefined, {alias: 'auBodyContainerClassName'});\n\t/**\n\t * CSS classes to add on the accordion-item body DOM element.\n\t */\n\treadonly bodyClassName = input<string>(undefined, {alias: 'auBodyClassName'});\n\t/**\n\t * The html tag to use for the accordion-item-header.\n\t */\n\treadonly headingTag = input<string>(undefined, {alias: 'auHeadingTag'});\n\t/**\n\t * An event fired when an item is shown.\n\t */\n\treadonly shown = output<void>({alias: 'auShown'});\n\t/**\n\t * An event fired when an item is hidden.\n\t */\n\treadonly hidden = output<void>({alias: 'auHidden'});\n\t/**\n\t * An event fired when the `visible` value changes.\n\t *\n\t * Event payload is the new value of visible.\n\t */\n\treadonly visibleChange = output<boolean>({alias: 'auVisibleChange'});\n\n\treadonly slotChildren = viewChild<TemplateRef<void>>('content');\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory<AccordionItemWidget>((arg) => inject(AccordionDirective).api.registerItem(arg), {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: accordionItemDefaultSlotStructure,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonVisibleChange: (visible) => this.visibleChange.emit(visible),\n\t\t\t\t\tonHidden: () => this.hidden.emit(),\n\t\t\t\t\tonShown: () => this.shown.emit(),\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.itemDirective);\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\theader: this.slotHeaderFromContent()?.templateRef,\n\t\t\t\t\tchildren: this.slotBodyFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t\tslotChildren: () => this.slotChildren(),\n\t\t\t}),\n\t\t);\n\t}\n\n\tngAfterViewInit() {\n\t\tqueueMicrotask(() => this.api.initDone());\n\t}\n}\n\n/**\n * Directive for creating an accordion component.\n *\n * This directive extends the `BaseWidgetDirective` and provides various inputs and outputs\n * to customize the behavior and appearance of the accordion and its items.\n *\n */\n@Directive({\n\tselector: '[auAccordion]',\n\texportAs: 'auAccordion',\n\n\thost: {\n\t\tclass: 'accordion',\n\t},\n})\nexport class AccordionDirective extends BaseWidgetDirective<AccordionWidget> {\n\t/**\n\t * If `true`, only one accordion-item at the time can stay open.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly closeOthers = input(undefined, {alias: 'auCloseOthers', transform: auBooleanAttribute});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * An event fired when an item is shown.\n\t *\n\t * Event payload is the id of the item.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly itemShown = output<string>({alias: 'auItemShown'});\n\n\t/**\n\t * An event fired when an item is hidden.\n\t *\n\t * Event payload is the id of the item.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly itemHidden = output<string>({alias: 'auItemHidden'});\n\n\t/**\n\t * If `true`, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly itemDestroyOnHide = input(undefined, {alias: 'auItemDestroyOnHide', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, accordion-item will be animated.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly itemAnimated = input(undefined, {alias: 'auItemAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * The transition to use for the accordion-item body-container when the accordion-item is toggled.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * collapseVerticalTransition\n\t * ```\n\t */\n\treadonly itemTransition = input<TransitionFn>(undefined, {alias: 'auItemTransition'});\n\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\treadonly itemStructure = input<SlotContent<AccordionItemContext>>(undefined, {alias: 'auItemStructure'});\n\n\t/**\n\t * CSS classes to add on the accordion-item DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemClassName = input<string>(undefined, {alias: 'auItemClassName'});\n\n\t/**\n\t * CSS classes to add on the accordion-item header DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemHeaderClassName = input<string>(undefined, {alias: 'auItemHeaderClassName'});\n\n\t/**\n\t * CSS classes to add on the accordion-item toggle button DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemButtonClassName = input<string>(undefined, {alias: 'auItemButtonClassName'});\n\n\t/**\n\t * CSS classes to add on the accordion-item body container DOM element.\n\t * The accordion-item body container is the DOM element on what the itemTransition is applied.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemBodyContainerClassName = input<string>(undefined, {alias: 'auItemBodyContainerClassName'});\n\n\t/**\n\t * CSS classes to add on the accordion-item body DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemBodyClassName = input<string>(undefined, {alias: 'auItemBodyClassName'});\n\n\t/**\n\t * The html tag to use for the accordion-item-header.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemHeadingTag = input<string>(undefined, {alias: 'auItemHeadingTag'});\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createAccordion, {\n\t\t\t\tevents: {\n\t\t\t\t\tonItemShown: (id) => this.itemShown.emit(id),\n\t\t\t\t\tonItemHidden: (id) => this.itemHidden.emit(id),\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.accordionDirective);\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {getSliderDefaultConfig, createSlider} from '@agnos-ui/core-bootstrap/components/slider';\nimport type {WidgetSlotContext, SlotContent, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default Slider config\n * @returns the default Slider config\n */\nconst export_getSliderDefaultConfig: () => SliderProps = getSliderDefaultConfig as any;\nexport {export_getSliderDefaultConfig as getSliderDefaultConfig};\n\n\n\n/**\n * Represents the context for a Slider component.\n * This type is an alias for `WidgetSlotContext<SliderWidget>`.\n */\nexport interface SliderContext extends WidgetSlotContext<SliderWidget> {}\n\n\n/**\n * Represents the context for a slider slot label, extending the base `SliderContext`\n * with an additional `value` property.\n */\nexport interface SliderSlotLabelContext extends SliderContext {\n\t/**\n\t * the value of the handle the label is attached to\n\t */\n\tvalue: number;\n}\n\n\n/**\n * Represents the context for a slider slot handle.\n * This type extends the `SliderContext` and includes an additional `item` property of type `SliderHandle`.\n */\nexport interface SliderSlotHandleContext extends SliderContext {\n\t/**\n\t * the handle context\n\t */\n\titem: SliderHandle;\n}\n\n\n\n/**\n * Represents the context for a slider tick slot\n */\nexport interface SliderSlotTickContext extends SliderContext {\n\t/**\n\t * tick context\n\t */\n\ttick: SliderTick;\n}\n\n/**\n * Represents the state of a slider component.\n */\nexport interface SliderState {\n\t\n\t/**\n\t * Sorted slider values\n\t */\n\tsortedValues: number[];\n\t\n\n\t/**\n\t * Combined label left offset in %\n\t */\n\tcombinedLabelPositionLeft: number;\n\t\n\n\t/**\n\t * Combined label top offset in %\n\t */\n\tcombinedLabelPositionTop: number;\n\t\n\n\t/**\n\t * If true, the minimum label will be visible\n\t */\n\tminValueLabelDisplay: boolean;\n\t\n\n\t/**\n\t * If true, the maximum label will be visible\n\t */\n\tmaxValueLabelDisplay: boolean;\n\t\n\n\t/**\n\t * If true, the label when the handles are close is visible\n\t */\n\tcombinedLabelDisplay: boolean;\n\t\n\n\t/**\n\t * Array of the sorted handles to display\n\t */\n\tsortedHandles: SliderHandle[];\n\t\n\n\t/**\n\t * Array of objects representing progress display options\n\t */\n\tprogressDisplayOptions: ProgressDisplayOptions[];\n\t\n\n\t/**\n\t * Array of objects representing handle display options\n\t */\n\thandleDisplayOptions: HandleDisplayOptions[];\n\t\n\n\t/**\n\t * Check if the slider is interactive, meaning it is not disabled or readonly\n\t */\n\tinteractive: boolean;\n\t\n\n\t/**\n\t * Array of ticks to display on the slider component\n\t */\n\tticks: SliderTick[];\n\t\n\t/**\n\t * Minimum value that can be assigned to the slider\n\t *\n\t * @defaultValue `0`\n\t */\n\tmin: number;\n\t\n\n\t/**\n\t * Maximum value that can be assigned to the slider\n\t *\n\t * @defaultValue `100`\n\t */\n\tmax: number;\n\t\n\n\t/**\n\t * Unit value between slider steps\n\t *\n\t * @defaultValue `1`\n\t */\n\tstepSize: number;\n\t\n\n\t/**\n\t * If `true` slider value cannot be changed but the slider is still focusable\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly: boolean;\n\t\n\n\t/**\n\t * If `true` slider value cannot be changed and the slider cannot be focused\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true` is vertically positioned otherwise it is horizontal\n\t *\n\t * @defaultValue `false`\n\t */\n\tvertical: boolean;\n\t\n\n\t/**\n\t * Current slider values\n\t *\n\t * @defaultValue `[0]`\n\t */\n\tvalues: number[];\n\t\n\n\t/**\n\t * If `true` the value labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\tshowValueLabels: boolean;\n\t\n\n\t/**\n\t * If `true` the min and max labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\tshowMinMaxLabels: boolean;\n\t\n\n\t/**\n\t * If `true` the ticks are displayed on the slider\n\t *\n\t * @defaultValue `false`\n\t */\n\tshowTicks: boolean;\n\t\n\n\t/**\n\t * It `true` slider display is inversed\n\t *\n\t * @defaultValue `false`\n\t */\n\trtl: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Slot to change the default display of the slider\n\t */\n\tstructure: SlotContent<SliderContext>;\n\t\n\n\t/**\n\t * Slot to change the default labels of the slider\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({value}: SliderSlotLabelContext) => '' + value\n\t * ```\n\t */\n\tlabel: SlotContent<SliderSlotLabelContext>;\n\t\n\n\t/**\n\t * Slot to change the handlers\n\t */\n\thandle: SlotContent<SliderSlotHandleContext>;\n\t\n\n\t/**\n\t * Slot to change the ticks\n\t */\n\ttick: SlotContent<SliderSlotTickContext>;\n}\n\n/**\n * Represents the properties for the Slider component.\n */\nexport interface SliderProps {\n\t\n\t/**\n\t * Return the value for the 'aria-label' attribute for the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => 'Value'\n\t * ```\n\t */\n\tariaLabel: (sortedIndex: number) => string;\n\t\n\n\t/**\n\t * Return the value for the 'aria-labelledBy' attribute for the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => ''\n\t * ```\n\t */\n\tariaLabelledBy: (sortedIndex: number) => string;\n\t\n\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute for the handle\n\t * @param value - value of the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (value: number) => ''\n\t * ```\n\t */\n\tariaValueText: (value: number, sortedIndex: number) => string;\n\t\n\n\t/**\n\t * An event emitted when slider values are changed\n\t *\n\t * Event payload equals to the updated slider values\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonValuesChange: (values: number[]) => void;\n\t\n\n\t/**\n\t * Unit value between the ticks\n\t * If value is set to `0` the {@link stepSize} is used to space the ticks\n\t *\n\t * @defaultValue `0`\n\t */\n\ttickInterval: number;\n\t\n\n\t/**\n\t * If `true` the tick values are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\tshowTickValues: boolean;\n\t\n\n\t/**\n\t * Minimum distance between two values.\n\t * When set to 0, no minimum distance constraint is applied.\n\t *\n\t * @defaultValue 0\n\t */\n\tminRange: number;\n\t\n\n\t/**\n\t * Maximum distance between two values\n\t * When set to 0, no maximum distance constraint is applied.\n\t *\n\t * @defaultValue 0\n\t */\n\tmaxRange: number;\n\t\n\n\t/**\n\t * When true, if moving a value would break the minRange or maxRange constraint,\n\t * it will instead push or pull the neighboring values to keep the allowed range rather than just stopping.\n\t *\n\t * @defaultValue false\n\t */\n\tpushRange: boolean;\n\t\n\t/**\n\t * Minimum value that can be assigned to the slider\n\t *\n\t * @defaultValue `0`\n\t */\n\tmin: number;\n\t\n\n\t/**\n\t * Maximum value that can be assigned to the slider\n\t *\n\t * @defaultValue `100`\n\t */\n\tmax: number;\n\t\n\n\t/**\n\t * Unit value between slider steps\n\t *\n\t * @defaultValue `1`\n\t */\n\tstepSize: number;\n\t\n\n\t/**\n\t * If `true` slider value cannot be changed but the slider is still focusable\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly: boolean;\n\t\n\n\t/**\n\t * If `true` slider value cannot be changed and the slider cannot be focused\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true` is vertically positioned otherwise it is horizontal\n\t *\n\t * @defaultValue `false`\n\t */\n\tvertical: boolean;\n\t\n\n\t/**\n\t * Current slider values\n\t *\n\t * @defaultValue `[0]`\n\t */\n\tvalues: number[];\n\t\n\n\t/**\n\t * If `true` the value labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\tshowValueLabels: boolean;\n\t\n\n\t/**\n\t * If `true` the min and max labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\tshowMinMaxLabels: boolean;\n\t\n\n\t/**\n\t * If `true` the ticks are displayed on the slider\n\t *\n\t * @defaultValue `false`\n\t */\n\tshowTicks: boolean;\n\t\n\n\t/**\n\t * It `true` slider display is inversed\n\t *\n\t * @defaultValue `false`\n\t */\n\trtl: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Slot to change the default display of the slider\n\t */\n\tstructure: SlotContent<SliderContext>;\n\t\n\n\t/**\n\t * Slot to change the default labels of the slider\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({value}: SliderSlotLabelContext) => '' + value\n\t * ```\n\t */\n\tlabel: SlotContent<SliderSlotLabelContext>;\n\t\n\n\t/**\n\t * Slot to change the handlers\n\t */\n\thandle: SlotContent<SliderSlotHandleContext>;\n\t\n\n\t/**\n\t * Slot to change the ticks\n\t */\n\ttick: SlotContent<SliderSlotTickContext>;\n}\n\n\n\n/**\n * Represents a slider widget component.\n */\nexport type SliderWidget = Widget<SliderProps, SliderState, object, SliderDirectives>;\n\n\n\n/**\n * Create a Slider with given config props\n * @param config - an optional slider config\n * @returns a SliderWidget\n */\n\nconst export_createSlider: WidgetFactory<SliderWidget> = createSlider as any;\nexport {export_createSlider as createSlider};\n\n/**\n * Options for displaying progress in a slider component.\n */\nexport interface ProgressDisplayOptions {\n\t\n\t/**\n\t * Right offset of the progress in %\n\t */\n\tleft: number | null;\n\t\n\t/**\n\t * Left offset of the progress in %\n\t */\n\tright: number | null;\n\t\n\t/**\n\t * Top offset of the progress in %\n\t */\n\ttop: number | null;\n\t\n\t/**\n\t * Bottom offset of the progress in %\n\t */\n\tbottom: number | null;\n\t\n\t/**\n\t * Width of the progress in %\n\t */\n\twidth: number;\n\t\n\t/**\n\t * Height of the progress in %\n\t */\n\theight: number;\n\t\n\t/**\n\t * Id of the progress\n\t */\n\tid: number;\n}\n\n/**\n * Options for displaying a handle in a slider component.\n */\nexport interface HandleDisplayOptions {\n\t\n\t/**\n\t * Left offset of the handle in %\n\t */\n\tleft: number | null;\n\t\n\t/**\n\t * Top offset of the handle in %\n\t */\n\ttop: number | null;\n}\n\n/**\n * Represents a handle in a slider component.\n */\nexport interface SliderHandle {\n\t\n\t/**\n\t * Value of the handle\n\t */\n\tvalue: number;\n\t\n\t/**\n\t * Handle id\n\t */\n\tid: number;\n\t\n\t/**\n\t * ariaLabel of the handle\n\t */\n\tariaLabel: string | undefined;\n\t\n\t/**\n\t * ariaValueText of the handle\n\t */\n\tariaValueText: string | undefined;\n\t\n\t/**\n\t * aria-labelledBy of the handle\n\t */\n\tariaLabelledBy: string | undefined;\n}\n\n/**\n * Represents a tick in a slider component.\n */\nexport interface SliderTick {\n\t\n\t/**\n\t * CSS classes to be applied on the tick\n\t */\n\tclassName?: string | null;\n\t\n\t/**\n\t * Visualized optional explanation of the label\n\t */\n\tlegend?: string | null;\n\t\n\t/**\n\t * Position of the tick in percent\n\t */\n\tposition: number;\n\t\n\t/**\n\t * If `true` the tick has selected style\n\t */\n\tselected: boolean;\n\t\n\t/**\n\t * Value of the tick\n\t */\n\tvalue: number;\n\t\n\t/**\n\t * If `true` the tick label is displayed\n\t */\n\tdisplayLabel: boolean;\n}\n\n/**\n * Interface representing various directives used in the slider component.\n */\nexport interface SliderDirectives {\n\t\n\t/**\n\t * Directive to get the slider component elementRef\n\t */\n\tsliderDirective: Directive;\n\t\n\n\t/**\n\t * Directive to apply to the slider container wrapping the slider content\n\t */\n\tcontainerDirective: Directive;\n\t\n\n\t/**\n\t * Directive used to style the progress display for each handle\n\t */\n\tprogressDisplayDirective: Directive<{option: ProgressDisplayOptions}>;\n\t\n\n\t/**\n\t * Directive to apply to the slider clickable area, to directly move the handle to a given specific position\n\t */\n\tclickableAreaDirective: Directive;\n\t\n\n\t/**\n\t * Directive to apply handle events handlers\n\t */\n\thandleEventsDirective: Directive<{item: {id: number}}>;\n\t\n\t/**\n\t * Directive to apply to the slider handle if any\n\t */\n\thandleDirective: Directive<{item: SliderHandle}>;\n\t\n\n\t/**\n\t * Directive to get the minLabel elementRef\n\t */\n\tminLabelDirective: Directive;\n\t\n\n\t/**\n\t * Directive to get the maxLabel elementRef\n\t */\n\tmaxLabelDirective: Directive;\n\t\n\n\t/**\n\t * Directive to apply to the handle when combined label display is active\n\t */\n\tcombinedHandleLabelDisplayDirective: Directive;\n\t\n\n\t/**\n\t * Directive to apply to the handle when combined label display is not active\n\t */\n\thandleLabelDisplayDirective: Directive<{index: number}>;\n\t\n\n\t/**\n\t * Directive to apply to the slider tick\n\t */\n\ttickDirective: Directive<{tick: SliderTick}>;\n\t\n\n\t/**\n\t * Directive to apply to the slider tick label\n\t */\n\ttickLabelDirective: Directive<{tick: SliderTick}>;\n}\n\n","import type {SlotContent} from '@agnos-ui/angular-headless';\nimport {\n\tBaseWidgetDirective,\n\tComponentTemplate,\n\tSlotDirective,\n\tUseDirective,\n\tauBooleanAttribute,\n\tauNumberAttribute,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tDirective,\n\ttype OnDestroy,\n\tTemplateRef,\n\tViewEncapsulation,\n\tcontentChild,\n\tforwardRef,\n\tinject,\n\tinput,\n\toutput,\n\tviewChild,\n} from '@angular/core';\nimport {type ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {callWidgetFactory} from '../../config';\nimport type {SliderContext, SliderSlotHandleContext, SliderSlotLabelContext, SliderSlotTickContext, SliderWidget} from './slider.gen';\nimport {createSlider} from './slider.gen';\n\n/**\n * Directive to provide a template reference for slider labels.\n *\n * This directive uses a template reference to render the {@link SliderSlotLabelContext}.\n */\n@Directive({selector: 'ng-template[auSliderLabel]'})\nexport class SliderLabelDirective {\n\tpublic templateRef = inject(TemplateRef<SliderSlotLabelContext>);\n\tstatic ngTemplateContextGuard(_dir: SliderLabelDirective, context: unknown): context is SliderSlotLabelContext {\n\t\treturn true;\n\t}\n}\n/**\n * Directive representing a handle for a slider component.\n *\n * This directive uses a template reference to render the {@link SliderSlotHandleContext}.\n */\n@Directive({selector: 'ng-template[auSliderHandle]'})\nexport class SliderHandleDirective {\n\tpublic templateRef = inject(TemplateRef<SliderSlotHandleContext>);\n\tstatic ngTemplateContextGuard(_dir: SliderHandleDirective, context: unknown): context is SliderSlotHandleContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, SliderHandleDirective],\n\ttemplate: `\n\t\t<ng-template auSliderHandle #handle let-state=\"state\" let-directives=\"directives\" let-item=\"item\">\n\t\t\t<button [auUse]=\"[directives.handleDirective, {item}]\" (keydown)=\"onKeyDown($event)\"></button>\n\t\t</ng-template>\n\t`,\n})\nclass SliderDefaultHandleSlotComponent implements OnDestroy {\n\treadonly handle = viewChild.required<TemplateRef<SliderSlotHandleContext>>('handle');\n\n\tprivate updateTimeout?: ReturnType<typeof setTimeout>;\n\n\t/**\n\t * Key handler that sets the refocus element only on the key strokes that move\n\t * the element up the DOM\n\t * @param event object containting key stroke and the target element\n\t */\n\tonKeyDown(event: KeyboardEvent) {\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\tcase 'ArrowLeft':\n\t\t\tcase 'Home':\n\t\t\tcase 'ArrowUp':\n\t\t\tcase 'ArrowRight':\n\t\t\tcase 'End':\n\t\t\t\tclearTimeout(this.updateTimeout);\n\t\t\t\tthis.updateTimeout = setTimeout(() => {\n\t\t\t\t\t(event.target as HTMLElement)?.focus();\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tclearTimeout(this.updateTimeout);\n\t}\n}\n\n/**\n * A constant representing the default slot handle for the slider component.\n */\nexport const sliderDefaultSlotHandle: SlotContent<SliderSlotHandleContext> = new ComponentTemplate(SliderDefaultHandleSlotComponent, 'handle');\n\n/**\n * Directive representing a tick for a slider component.\n *\n * This directive uses a template reference to render the {@link SliderSlotTickContext}.\n */\n@Directive({selector: 'ng-template[auSliderTick]'})\nexport class SliderTickDirective {\n\tpublic templateRef = inject(TemplateRef<SliderSlotTickContext>);\n\tstatic ngTemplateContextGuard(_dir: SliderTickDirective, context: unknown): context is SliderSlotTickContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, SliderTickDirective],\n\ttemplate: `\n\t\t<ng-template auSliderTick #tick let-state=\"state\" let-directives=\"directives\" let-tick=\"tick\">\n\t\t\t@if (tick.displayLabel) {\n\t\t\t\t<span [auUse]=\"[directives.tickLabelDirective, {tick}]\">\n\t\t\t\t\t{{ tick.value }}\n\t\t\t\t</span>\n\t\t\t}\n\t\t\t<span [auUse]=\"[directives.tickDirective, {tick}]\">\n\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<circle class=\"au-slider-tick-outer\" [class.au-slider-tick-disabled]=\"state.disabled()\" [class.au-slider-tick-selected]=\"tick.selected\" />\n\t\t\t\t\t@if (tick.selected) {\n\t\t\t\t\t\t<circle class=\"au-slider-tick-inner au-slider-tick-selected\" />\n\t\t\t\t\t}\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t</ng-template>\n\t`,\n})\nclass SliderDefaultTickSlotComponent {\n\treadonly tick = viewChild.required<TemplateRef<SliderSlotTickContext>>('tick');\n}\n\n/**\n * A constant representing the default slot tick for the slider component.\n */\nexport const sliderDefaultSlotTick: SlotContent<SliderSlotTickContext> = new ComponentTemplate(SliderDefaultTickSlotComponent, 'tick');\n\n/**\n * Directive that provides structure for the slider component.\n *\n * This directive uses a `TemplateRef` to handle the context of the slider slot.\n */\n@Directive({selector: 'ng-template[auSliderStructure]'})\nexport class SliderStructureDirective {\n\tpublic templateRef = inject(TemplateRef<SliderSlotHandleContext>);\n\tstatic ngTemplateContextGuard(_dir: SliderStructureDirective, context: unknown): context is SliderSlotHandleContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, SliderStructureDirective, UseDirective],\n\ttemplate: `\n\t\t<ng-template auSliderStructure #structure let-state=\"state\" let-directives=\"directives\" let-api=\"api\">\n\t\t\t@for (option of state.progressDisplayOptions(); track option.id) {\n\t\t\t\t<div [auUse]=\"[directives.progressDisplayDirective, {option}]\"></div>\n\t\t\t}\n\t\t\t<div [auUse]=\"directives.clickableAreaDirective\"></div>\n\t\t\t@if (state.showMinMaxLabels()) {\n\t\t\t\t<div [auUse]=\"directives.minLabelDirective\">\n\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.min()}\" />\n\t\t\t\t</div>\n\t\t\t\t<div [auUse]=\"directives.maxLabelDirective\">\n\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.max()}\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (state.showValueLabels() && state.combinedLabelDisplay()) {\n\t\t\t\t<div [auUse]=\"directives.combinedHandleLabelDisplayDirective\">\n\t\t\t\t\t@if (state.rtl()) {\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.sortedValues()[1]}\" /> -\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.sortedValues()[0]}\" />\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.sortedValues()[0]}\" /> -\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.sortedValues()[1]}\" />\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@for (tick of state.ticks(); track tick.position) {\n\t\t\t\t<ng-template [auSlot]=\"state.tick()\" [auSlotProps]=\"{state, api, directives, tick}\" />\n\t\t\t}\n\t\t\t@for (item of state.sortedHandles(); track item.id; let i = $index) {\n\t\t\t\t<ng-template [auSlot]=\"state.handle()\" [auSlotProps]=\"{state, api, directives, item}\" />\n\t\t\t\t@if (state.showValueLabels() && !state.combinedLabelDisplay()) {\n\t\t\t\t\t<div [auUse]=\"[directives.handleLabelDisplayDirective, {index: i}]\">\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.values()[i]}\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t</ng-template>\n\t`,\n})\nclass SliderDefaultStructureSlotComponent {\n\treadonly structure = viewChild.required<TemplateRef<SliderContext>>('structure');\n}\n\n/**\n * Represents the default slot structure for the slider component.\n */\nexport const sliderDefaultSlotStructure: SlotContent<SliderContext> = new ComponentTemplate(SliderDefaultStructureSlotComponent, 'structure');\n\n/**\n * SliderComponent is an Angular component that extends the BaseWidgetDirective\n * to provide a customizable slider widget. This component allows for various\n * configurations and customizations through its inputs and outputs.\n */\n@Component({\n\tselector: '[auSlider]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [{provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SliderComponent), multi: true}],\n\timports: [SlotDirective, UseDirective],\n\thost: {\n\t\t'(blur)': 'handleBlur()',\n\t},\n\ttemplate: `\n\t\t<div [auUse]=\"directives.sliderDirective\">\n\t\t\t<ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t</div>\n\t`,\n})\nexport class SliderComponent extends BaseWidgetDirective<SliderWidget> implements ControlValueAccessor {\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * Minimum value that can be assigned to the slider\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly min = input(undefined, {alias: 'auMin', transform: auNumberAttribute});\n\n\t/**\n\t * Maximum value that can be assigned to the slider\n\t *\n\t * @defaultValue `100`\n\t */\n\treadonly max = input(undefined, {alias: 'auMax', transform: auNumberAttribute});\n\n\t/**\n\t * Minimum distance between two values.\n\t * When set to 0, no minimum distance constraint is applied.\n\t *\n\t * @defaultValue 0\n\t */\n\treadonly minRange = input(undefined, {alias: 'auMinRange', transform: auNumberAttribute});\n\n\t/**\n\t * Maximum distance between two values\n\t * When set to 0, no maximum distance constraint is applied.\n\t *\n\t * @defaultValue 0\n\t */\n\treadonly maxRange = input(undefined, {alias: 'auMaxRange', transform: auNumberAttribute});\n\n\t/**\n\t * When true, if moving a value would break the minRange or maxRange constraint,\n\t * it will instead push or pull the neighboring values to keep the allowed range rather than just stopping.\n\t *\n\t * @defaultValue false\n\t */\n\treadonly pushRange = input(undefined, {alias: 'auPushRange', transform: auBooleanAttribute});\n\n\t/**\n\t * Unit value between slider steps\n\t *\n\t * @defaultValue `1`\n\t */\n\treadonly stepSize = input(undefined, {alias: 'auStepSize', transform: auNumberAttribute});\n\n\t/**\n\t * Current slider values\n\t *\n\t * @defaultValue `[0]`\n\t */\n\treadonly values = input<number[]>(undefined, {alias: 'auValues'});\n\n\t/**\n\t * It `true` slider display is inversed\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly rtl = input(undefined, {alias: 'auRtl', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` the value labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly showValueLabels = input(undefined, {alias: 'auShowValueLabels', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` the min and max labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly showMinMaxLabels = input(undefined, {alias: 'auShowMinMaxLabels', transform: auBooleanAttribute});\n\n\t/**\n\t * Return the value for the 'aria-label' attribute for the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => 'Value'\n\t * ```\n\t */\n\treadonly ariaLabel = input<(sortedIndex: number) => string>(undefined, {alias: 'auAriaLabel'});\n\n\t/**\n\t * Return the value for the 'aria-labelledBy' attribute for the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => ''\n\t * ```\n\t */\n\treadonly ariaLabelledBy = input<(sortedIndex: number) => string>(undefined, {alias: 'auAriaLabelledBy'});\n\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute for the handle\n\t * @param value - value of the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (value: number) => ''\n\t * ```\n\t */\n\treadonly ariaValueText = input<(value: number, sortedIndex: number) => string>(undefined, {alias: 'auAriaValueText'});\n\n\t/**\n\t * If `true` slider value cannot be changed but the slider is still focusable\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly readonly = input(undefined, {alias: 'auReadonly', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` slider value cannot be changed and the slider cannot be focused\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly disabled = input(undefined, {alias: 'auDisabled', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` is vertically positioned otherwise it is horizontal\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly vertical = input(undefined, {alias: 'auVertical', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` the ticks are displayed on the slider\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly showTicks = input(undefined, {alias: 'auShowTicks', transform: auBooleanAttribute});\n\n\t/**\n\t * Unit value between the ticks\n\t * If value is set to `0` the {@link stepSize} is used to space the ticks\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly tickInterval = input(undefined, {alias: 'auTickInterval', transform: auNumberAttribute});\n\n\t/**\n\t * If `true` the tick values are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly showTickValues = input(undefined, {alias: 'auShowTickValues', transform: auBooleanAttribute});\n\n\t/**\n\t * An event emitted when slider values are changed\n\t *\n\t * Event payload equals to the updated slider values\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly valuesChange = output<number[]>({alias: 'auValuesChange'});\n\n\t/**\n\t * Slot to change the default labels of the slider\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({value}: SliderSlotLabelContext) => '' + value\n\t * ```\n\t */\n\treadonly label = input<SlotContent<SliderSlotLabelContext>>(undefined, {alias: 'auLabel'});\n\treadonly slotLabelFromContent = contentChild(SliderLabelDirective);\n\n\t/**\n\t * Slot to change the default display of the slider\n\t */\n\treadonly structure = input<SlotContent<SliderContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(SliderStructureDirective);\n\n\t/**\n\t * Slot to change the handlers\n\t */\n\treadonly handle = input<SlotContent<SliderSlotHandleContext>>(undefined, {alias: 'auHandle'});\n\treadonly slotHandleFromContent = contentChild(SliderHandleDirective);\n\n\t/**\n\t * Slot to change the ticks\n\t */\n\treadonly tick = input<SlotContent<SliderSlotTickContext>>(undefined, {alias: 'auTick'});\n\treadonly slotTickFromContent = contentChild(SliderTickDirective);\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createSlider, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: sliderDefaultSlotStructure,\n\t\t\t\t\thandle: sliderDefaultSlotHandle,\n\t\t\t\t\ttick: sliderDefaultSlotTick,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonValuesChange: (event) => {\n\t\t\t\t\t\tthis.onChange(event);\n\t\t\t\t\t\tthis.onTouched();\n\t\t\t\t\t\tthis.valuesChange.emit(event);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.containerDirective);\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\thandle: this.slotHandleFromContent()?.templateRef,\n\t\t\t\t\tlabel: this.slotLabelFromContent()?.templateRef,\n\t\t\t\t\ttick: this.slotTickFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n\n\t/**\n\t * Control value accessor methods\n\t */\n\tonChange = (_: any) => {};\n\n\tonTouched = () => {};\n\n\tregisterOnChange(fn: (value: any) => any): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => any): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\twriteValue(value: any): void {\n\t\tif (Array.isArray(value)) {\n\t\t\tthis['_widget'].patch({\n\t\t\t\tvalues: value,\n\t\t\t});\n\t\t} else {\n\t\t\tthis['_widget'].patch({\n\t\t\t\tvalues: [value],\n\t\t\t});\n\t\t}\n\t}\n\n\tsetDisabledState(isDisabled: boolean) {\n\t\tthis['_widget'].patch({\n\t\t\tdisabled: isDisabled,\n\t\t});\n\t}\n\n\thandleBlur() {\n\t\tthis.onTouched();\n\t}\n}\n","import {getProgressbarDefaultConfig, createProgressbar} from '@agnos-ui/core-bootstrap/components/progressbar';\nimport type {WidgetSlotContext, SlotContent, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\nimport type {BSContextualClass} from '@agnos-ui/core-bootstrap/types';\n\n\n\n/**\n * Retrieve a shallow copy of the default Progressbar config\n * @returns the default Progressbar config\n */\nconst export_getProgressbarDefaultConfig: () => ProgressbarProps = getProgressbarDefaultConfig as any;\nexport {export_getProgressbarDefaultConfig as getProgressbarDefaultConfig};\n\n\n\n/**\n * Represents the context for a Progressbar widget.\n * This interface is used to define the context object that is passed to the Progressbar widget.\n */\nexport interface ProgressbarContext extends WidgetSlotContext<ProgressbarWidget> {}\n\n/**\n * Represents the state of a Progressbar component.\n */\nexport interface ProgressbarState {\n\t\n\t/**\n\t * Percentage of completion.\n\t */\n\tpercentage: number;\n\t\n\t/**\n\t * `true` if the value is above its minimum value.\n\t */\n\tstarted: boolean;\n\t\n\t/**\n\t * `true` if the value has reached its maximum value.\n\t */\n\tfinished: boolean;\n\t\n\t/**\n\t * The aria value text.\n\t */\n\tariaValueText: string | undefined;\n\t\n\t/**\n\t * The minimum value.\n\t *\n\t * @defaultValue `0`\n\t */\n\tmin: number;\n\t\n\t/**\n\t * The maximum value.\n\t *\n\t * @defaultValue `100`\n\t */\n\tmax: number;\n\t\n\t/**\n\t * The current value.\n\t *\n\t * @defaultValue `0`\n\t */\n\tvalue: number;\n\t\n\t/**\n\t * The aria label.\n\t *\n\t * @defaultValue `'Progressbar'`\n\t */\n\tariaLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Global template for the Progressbar.\n\t */\n\tstructure: SlotContent<ProgressbarContext>;\n\t\n\t/**\n\t * Label of the progress.\n\t */\n\tchildren: SlotContent<ProgressbarContext>;\n\t\n\t/**\n\t * Height of the progressbar, can be any valid css height value.\n\t *\n\t * @defaultValue `''`\n\t */\n\theight: string;\n\t\n\t/**\n\t * If `true`, shows a striped progressbar.\n\t *\n\t * @defaultValue `false`\n\t */\n\tstriped: boolean;\n\t\n\t/**\n\t * If `true`, animates a striped progressbar.\n\t * Takes effect only for browsers supporting CSS3 animations, and if `striped` is `true`.\n\t *\n\t * @defaultValue `false`\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * Type of the progressbar, following bootstrap types.\n\t */\n\ttype: BSContextualClass | undefined;\n}\n\n/**\n * Interface representing the properties for the Progressbar component.\n */\nexport interface ProgressbarProps {\n\t\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute.\n\t * @param value - current value\n\t * @param minimum - minimum value\n\t * @param maximum - maximum value\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => undefined\n\t * ```\n\t */\n\tariaValueTextFn: (value: number, minimum: number, maximum: number) => string | undefined;\n\t\n\t/**\n\t * The minimum value.\n\t *\n\t * @defaultValue `0`\n\t */\n\tmin: number;\n\t\n\t/**\n\t * The maximum value.\n\t *\n\t * @defaultValue `100`\n\t */\n\tmax: number;\n\t\n\t/**\n\t * The current value.\n\t *\n\t * @defaultValue `0`\n\t */\n\tvalue: number;\n\t\n\t/**\n\t * The aria label.\n\t *\n\t * @defaultValue `'Progressbar'`\n\t */\n\tariaLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Global template for the Progressbar.\n\t */\n\tstructure: SlotContent<ProgressbarContext>;\n\t\n\t/**\n\t * Label of the progress.\n\t */\n\tchildren: SlotContent<ProgressbarContext>;\n\t\n\t/**\n\t * Height of the progressbar, can be any valid css height value.\n\t *\n\t * @defaultValue `''`\n\t */\n\theight: string;\n\t\n\t/**\n\t * If `true`, shows a striped progressbar.\n\t *\n\t * @defaultValue `false`\n\t */\n\tstriped: boolean;\n\t\n\t/**\n\t * If `true`, animates a striped progressbar.\n\t * Takes effect only for browsers supporting CSS3 animations, and if `striped` is `true`.\n\t *\n\t * @defaultValue `false`\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * Type of the progressbar, following bootstrap types.\n\t */\n\ttype: BSContextualClass | undefined;\n}\n\n\n\n/**\n * Represents a Progressbar widget.\n *\n * This type defines the structure of a Progressbar widget, including its properties, state, and directives.\n */\nexport type ProgressbarWidget = Widget<ProgressbarProps, ProgressbarState, object, ProgressbarDirectives>;\n\n\n\n/**\n * Create a Progressbar with given config props\n * @param config - an optional progressbar config\n * @returns a ProgressbarWidget\n */\n\nconst export_createProgressbar: WidgetFactory<ProgressbarWidget> = createProgressbar as any;\nexport {export_createProgressbar as createProgressbar};\n\n/**\n * Interface representing directives for a progress bar component.\n */\nexport interface ProgressbarDirectives {\n\t\n\t/**\n\t * A directive to be applied to the main container that handles aria attributes.\n\t */\n\tariaDirective: Directive;\n}\n\n","import {\n\tBaseWidgetDirective,\n\tComponentTemplate,\n\tSlotDirective,\n\tauBooleanAttribute,\n\tauNumberAttribute,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\nimport type {SlotContent} from '@agnos-ui/angular-headless';\nimport {NgClass} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, viewChild, contentChild} from '@angular/core';\nimport type {ProgressbarContext, ProgressbarWidget} from './progressbar.gen';\nimport {createProgressbar} from './progressbar.gen';\n\nimport {callWidgetFactory} from '../../config';\nimport type {BSContextualClass} from '@agnos-ui/core-bootstrap/types';\n\n/**\n * Directive that provides a template reference for the progress bar context.\n * This directive provides a template reference for the {@link ProgressbarContext}.\n */\n@Directive({selector: 'ng-template[auProgressbarBody]'})\nexport class ProgressbarBodyDirective {\n\tpublic templateRef = inject(TemplateRef<ProgressbarContext>);\n\tstatic ngTemplateContextGuard(_dir: ProgressbarStructureDirective, context: unknown): context is ProgressbarContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to define the structure of a progress bar.\n *\n * This directive provides a template reference for the {@link ProgressbarContext}.\n */\n@Directive({selector: 'ng-template[auProgressbarStructure]'})\nexport class ProgressbarStructureDirective {\n\tpublic templateRef = inject(TemplateRef<ProgressbarContext>);\n\tstatic ngTemplateContextGuard(_dir: ProgressbarStructureDirective, context: unknown): context is ProgressbarContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgClass, SlotDirective, ProgressbarStructureDirective],\n\ttemplate: `\n\t\t<ng-template auProgressbarStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t<div class=\"progress\" [style.height]=\"state.height()\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"progress-bar\"\n\t\t\t\t\t[class.progress-bar-striped]=\"state.striped()\"\n\t\t\t\t\t[class.progress-bar-animated]=\"state.animated()\"\n\t\t\t\t\t[ngClass]=\"state.type() ? 'text-bg-' + state.type() : undefined\"\n\t\t\t\t\t[style.width.%]=\"state.percentage()\"\n\t\t\t\t>\n\t\t\t\t\t<ng-template [auSlot]=\"state.children()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ng-template>\n\t`,\n})\nclass ProgressbarDefaultSlotsComponent {\n\treadonly structure = viewChild.required<TemplateRef<ProgressbarContext>>('structure');\n}\n\n/**\n * Represents the default slot structure for the progress bar component.\n */\nexport const progressbarDefaultSlotStructure: SlotContent<ProgressbarContext> = new ComponentTemplate(ProgressbarDefaultSlotsComponent, 'structure');\n\n/**\n * ProgressbarComponent is a UI component that extends the BaseWidgetDirective\n * to create a customizable progress bar widget. It provides various inputs\n * to configure the appearance and behavior of the progress bar.\n *\n */\n@Component({\n\tselector: '[auProgressbar]',\n\timports: [SlotDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[class]': 'state.className()',\n\t},\n\ttemplate: `\n\t\t<ng-template #content><ng-content /></ng-template>\n\t\t<ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" />\n\t`,\n})\nexport class ProgressbarComponent extends BaseWidgetDirective<ProgressbarWidget> {\n\t/**\n\t * The aria label.\n\t *\n\t * @defaultValue `'Progressbar'`\n\t */\n\treadonly ariaLabel = input<string>(undefined, {alias: 'auAriaLabel'});\n\n\t/**\n\t * The minimum value.\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly min = input(undefined, {alias: 'auMin', transform: auNumberAttribute});\n\n\t/**\n\t * The maximum value.\n\t *\n\t * @defaultValue `100`\n\t */\n\treadonly max = input(undefined, {alias: 'auMax', transform: auNumberAttribute});\n\n\t/**\n\t * The current value.\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly value = input(undefined, {alias: 'auValue', transform: auNumberAttribute});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * Label of the progress.\n\t */\n\treadonly children = input<SlotContent<ProgressbarContext>>(undefined, {alias: 'auChildren'});\n\treadonly slotDefaultFromContent = contentChild(ProgressbarBodyDirective);\n\n\t/**\n\t * Global template for the Progressbar.\n\t */\n\treadonly structure = input<SlotContent<ProgressbarContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(ProgressbarStructureDirective);\n\n\t/**\n\t * Height of the progressbar, can be any valid css height value.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly height = input<string>(undefined, {alias: 'auHeight'});\n\n\t/**\n\t * If `true`, animates a striped progressbar.\n\t * Takes effect only for browsers supporting CSS3 animations, and if `striped` is `true`.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, shows a striped progressbar.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly striped = input(undefined, {alias: 'auStriped', transform: auBooleanAttribute});\n\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute.\n\t * @param value - current value\n\t * @param minimum - minimum value\n\t * @param maximum - maximum value\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => undefined\n\t * ```\n\t */\n\treadonly ariaValueTextFn = input<(value: number, minimum: number, maximum: number) => string | undefined>(undefined, {alias: 'auAriaValueTextFn'});\n\n\t/**\n\t * Type of the progressbar, following bootstrap types.\n\t */\n\treadonly type = input<BSContextualClass>(undefined, {alias: 'auType'});\n\n\treadonly slotChildren = viewChild<TemplateRef<void>>('content');\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createProgressbar, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: progressbarDefaultSlotStructure,\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => useDirectiveForHost(widget.directives.ariaDirective),\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\tchildren: this.slotDefaultFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t\tslotChildren: () => this.slotChildren(),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {getToastDefaultConfig, createToast, toastPositions, defaultToasterProps} from '@agnos-ui/core-bootstrap/components/toast';\nimport type {WidgetSlotContext, SlotContent, TransitionFn, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default Toast config\n * @returns the default Toast config\n */\nconst export_getToastDefaultConfig: () => ToastProps = getToastDefaultConfig as any;\nexport {export_getToastDefaultConfig as getToastDefaultConfig};\n\n\n\n/**\n * Represents the context for a Toast widget.\n * This interface is an alias for `WidgetSlotContext<ToastWidget>`.\n */\nexport interface ToastContext extends WidgetSlotContext<ToastWidget> {}\n\n/**\n * Represents the state of a Toast component.\n */\nexport interface ToastState {\n\t\n\t/**\n\t * Is `true` when the alert is hidden. Compared to `visible`, this is updated after the transition is executed.\n\t */\n\thidden: boolean;\n\t\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdismissible: boolean;\n\t\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n\t\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * If `true` automatically hides the toast after the delay.\n\t *\n\t * @defaultValue `true`\n\t */\n\tautoHide: boolean;\n\t\n\t/**\n\t * Delay in milliseconds before hiding the toast.\n\t *\n\t * @defaultValue `5000`\n\t */\n\tdelay: number;\n\t\n\t/**\n\t * Global template for the toast component\n\t */\n\tstructure: SlotContent<ToastContext>;\n\t\n\t/**\n\t * Template for the toast content\n\t */\n\tchildren: SlotContent<ToastContext>;\n\t\n\t/**\n\t * Header template for the toast component\n\t */\n\theader: SlotContent<ToastContext>;\n}\n\n/**\n * Interface representing the properties for the Toast component.\n */\nexport interface ToastProps {\n\t\n\t/**\n\t * The transition function will be executed when the alert is displayed or hidden.\n\t *\n\t * Depending on the value of `animatedOnInit`, the animation can be optionally skipped during the showing process.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\ttransition: TransitionFn;\n\t\n\t/**\n\t * Callback called when the alert visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonVisibleChange: (visible: boolean) => void;\n\t\n\n\t/**\n\t * Callback called when the alert is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonHidden: () => void;\n\t\n\n\t/**\n\t * Callback called when the alert is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonShown: () => void;\n\t\n\n\t/**\n\t * If `true`, alert opening will be animated.\n\t *\n\t * Animation is triggered when the `.open()` function is called\n\t * or the visible prop is changed\n\t *\n\t * @defaultValue `false`\n\t */\n\tanimatedOnInit: boolean;\n\t\n\t/**\n\t * If `true`, alert closing will be animated.\n\t *\n\t * Animation is triggered when clicked on the close button (×),\n\t * via the `.close()` function or the visible prop is changed\n\t *\n\t * @defaultValue `true`\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdismissible: boolean;\n\t\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n\t\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * If `true` automatically hides the toast after the delay.\n\t *\n\t * @defaultValue `true`\n\t */\n\tautoHide: boolean;\n\t\n\t/**\n\t * Delay in milliseconds before hiding the toast.\n\t *\n\t * @defaultValue `5000`\n\t */\n\tdelay: number;\n\t\n\t/**\n\t * Global template for the toast component\n\t */\n\tstructure: SlotContent<ToastContext>;\n\t\n\t/**\n\t * Template for the toast content\n\t */\n\tchildren: SlotContent<ToastContext>;\n\t\n\t/**\n\t * Header template for the toast component\n\t */\n\theader: SlotContent<ToastContext>;\n}\n\n\n\n/**\n * Represents a Toast widget component.\n */\nexport type ToastWidget = Widget<ToastProps, ToastState, ToastApi, ToastDirectives>;\n\n\n\n/**\n * Create an ToastWidget with given config props\n * @param config - an optional alert config\n * @returns an ToastWidget\n */\nconst export_createToast: WidgetFactory<ToastWidget> = createToast as any;\nexport {export_createToast as createToast};\n\n\n\n/**\n * A mapping of toast position keys to their corresponding CSS class strings of bootstrap.\n * These classes define the positioning of toast notifications on the screen.\n *\n * The keys represent various positions on the screen, such as top-left, top-center,\n * middle-right, etc., and the values are the CSS classes of bootstrap that apply the respective\n * positioning styles.\n *\n * Example usage:\n * ```typescript\n * const positionClass = toastPositions.topLeft; // \"top-0 start-0\"\n * ```\n */\nconst export_toastPositions: Record<ToastPositions, string> = toastPositions as any;\nexport {export_toastPositions as toastPositions};\n\n/**\n * Represents the API for the toast component.\n */\nexport interface ToastApi {\n\t\n\t/**\n\t * Triggers alert closing programmatically (same as clicking on the close button (×)).\n\t */\n\tclose(): void;\n\t\n\n\t/**\n\t * Triggers the alert to be displayed for the user.\n\t */\n\topen(): void;\n}\n\n/**\n * Interface representing the directives for a toast component.\n */\nexport interface ToastDirectives {\n\t\n\t/**\n\t * the transition directive, piloting what is the visual effect of going from hidden to visible\n\t */\n\ttransitionDirective: Directive;\n\t\n\t/**\n\t * Directive that handles the autohide of the toast component\n\t */\n\tautoHideDirective: Directive;\n\t\n\t/**\n\t * Directive that adds all the necessary attributes to the body\n\t */\n\tbodyDirective: Directive;\n\t\n\t/**\n\t * Directive that adds all the necessary attributes to the close button depending on the presence of the header\n\t */\n\tcloseButtonDirective: Directive;\n}\n\n\n\n/**\n * Represents the possible positions for displaying a toast notification.\n *\n * The positions are defined based on a grid layout with three horizontal\n * alignments (left, center, right) and three vertical alignments (top, middle, bottom).\n *\n * Available positions:\n * - `topLeft`: Top-left corner of the screen.\n * - `topCenter`: Top-center of the screen.\n * - `topRight`: Top-right corner of the screen.\n * - `middleLeft`: Middle-left side of the screen.\n * - `middleCenter`: Center of the screen.\n * - `middleRight`: Middle-right side of the screen.\n * - `bottomLeft`: Bottom-left corner of the screen.\n * - `bottomCenter`: Bottom-center of the screen.\n * - `bottomRight`: Bottom-right corner of the screen.\n */\nexport type ToastPositions =\n\t| 'topLeft'\n\t| 'topCenter'\n\t| 'topRight'\n\t| 'middleLeft'\n\t| 'middleCenter'\n\t| 'middleRight'\n\t| 'bottomLeft'\n\t| 'bottomCenter'\n\t| 'bottomRight';\n\n/**\n * Props of the toaster\n */\nexport interface ToasterProps {\n\t\n\t/** How much time (ms) a toast is displayed; 0 means it won't be removed until a manual action */\n\tduration: number;\n\t\n\t/** Where to position the toasts */\n\tposition: ToastPositions;\n\t\n\t/** Maximum number of toasts displayed */\n\tlimit?: number;\n\t\n\t/** Pause toast when hover */\n\tpauseOnHover?: boolean;\n\t\n\t/** Display a dismiss button on each toast. When duration = 0, this is enforced to true */\n\tdismissible: boolean;\n\t\n\t/** Add a button to close all the toasts at once */\n\tcloseAll?: boolean;\n\t\n\t/** Close all label */\n\tcloseAllLabel?: string;\n}\n\n/**\n * Toast object\n * @template Props Type of the toast properties.\n */\nexport interface ToasterToast<Props> {\n\t\n\t/** Identifier of the toasts in the toaster */\n\tid: number;\n\t\n\t/** Properties of the toast */\n\tprops: Props;\n}\n\n/**\n * Represents a timer used by the toaster service.\n */\nexport interface ToasterTimer {\n\t\n\t/**\n\t * The timeout identifier returned by `setTimeout`.\n\t */\n\ttimeout: ReturnType<typeof setTimeout> | null;\n\t\n\n\t/**\n\t * The timestamp when the timer was started.\n\t */\n\tstarted: number;\n\t\n\n\t/**\n\t * The timestamp when the timer was paused (optional).\n\t */\n\tpaused?: number;\n\t\n\n\t/**\n\t * The duration for which the timer is set (optional). Used internally to compute the remaining time.\n\t */\n\tduration: number;\n}\n\n\n\nconst export_defaultToasterProps: ToasterProps = defaultToasterProps as any;\nexport {export_defaultToasterProps as defaultToasterProps};\n\n","import type {SlotContent, TransitionFn} from '@agnos-ui/angular-headless';\nimport {\n\tBaseWidgetDirective,\n\tComponentTemplate,\n\tSlotDirective,\n\tUseDirective,\n\tUseMultiDirective,\n\tauBooleanAttribute,\n\tauNumberAttribute,\n} from '@agnos-ui/angular-headless';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, output, viewChild, contentChild} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\n\nimport type {ToastContext, ToastWidget} from './toast.gen';\nimport {createToast} from './toast.gen';\n\n/**\n * Directive to represent the body of a toast notification.\n * This directive uses a template reference to render the {@link ToastContext}.\n */\n@Directive({selector: 'ng-template[auToastBody]'})\nexport class ToastBodyDirective {\n\tpublic templateRef = inject(TemplateRef<ToastContext>);\n\tstatic ngTemplateContextGuard(_dir: ToastBodyDirective, context: unknown): context is ToastContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to define the structure of a toast component.\n * This directive uses a template reference to render the {@link ToastContext}.\n */\n@Directive({selector: 'ng-template[auToastStructure]'})\nexport class ToastStructureDirective {\n\tpublic templateRef = inject(TemplateRef<ToastContext>);\n\tstatic ngTemplateContextGuard(_dir: ToastStructureDirective, context: unknown): context is ToastContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive representing the header of a toast component.\n * This directive uses a template reference to render the {@link ToastContext}.\n */\n@Directive({selector: 'ng-template[auToastHeader]'})\nexport class ToastHeaderDirective {\n\tpublic templateRef = inject(TemplateRef<ToastContext>);\n\tstatic ngTemplateContextGuard(_dir: ToastHeaderDirective, context: unknown): context is ToastContext {\n\t\treturn true;\n\t}\n}\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, ToastStructureDirective, UseDirective],\n\ttemplate: ` <ng-template auToastStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t@if (state.header()) {\n\t\t\t<div class=\"toast-header\">\n\t\t\t\t<ng-template [auSlot]=\"state.header()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t@if (state.dismissible()) {\n\t\t\t\t\t<button class=\"btn-close me-0 ms-auto\" [auUse]=\"directives.closeButtonDirective\"></button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"toast-body\">\n\t\t\t<ng-template [auSlot]=\"state.children()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t</div>\n\t\t@if (state.dismissible() && !state.header()) {\n\t\t\t<button class=\"btn-close btn-close-white me-2 m-auto\" [auUse]=\"directives.closeButtonDirective\"></button>\n\t\t}\n\t</ng-template>`,\n})\nclass ToastDefaultSlotsComponent {\n\treadonly structure = viewChild.required<TemplateRef<ToastContext>>('structure');\n}\n\n/**\n * Represents the default slot structure for the toast component.\n */\nexport const toastDefaultSlotStructure: SlotContent<ToastContext> = new ComponentTemplate(ToastDefaultSlotsComponent, 'structure');\n\n/**\n * The `ToastComponent` is a UI component that displays a toast notification.\n * It extends the `BaseWidgetDirective` and provides various configurable properties\n * and events to control the behavior and appearance of the toast.\n */\n@Component({\n\tselector: '[auToast]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, UseMultiDirective],\n\ttemplate: ` <ng-template #content>\n\t\t\t<ng-content />\n\t\t</ng-template>\n\t\t@if (!state.hidden()) {\n\t\t\t<div\n\t\t\t\t[class.d-flex]=\"!state.header()\"\n\t\t\t\t[class.toast-dismissible]=\"state.dismissible()\"\n\t\t\t\t[auUseMulti]=\"[directives.autoHideDirective, directives.transitionDirective, directives.bodyDirective]\"\n\t\t\t>\n\t\t\t\t<ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t</div>\n\t\t}`,\n})\nexport class ToastComponent extends BaseWidgetDirective<ToastWidget> {\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly dismissible = input(undefined, {alias: 'auDismissible', transform: auBooleanAttribute});\n\n\t/**\n\t * The transition function will be executed when the alert is displayed or hidden.\n\t *\n\t * Depending on the value of `animatedOnInit`, the animation can be optionally skipped during the showing process.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\treadonly transition = input<TransitionFn>(undefined, {alias: 'auTransition'});\n\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly visible = input(undefined, {alias: 'auVisible', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, alert opening will be animated.\n\t *\n\t * Animation is triggered when the `.open()` function is called\n\t * or the visible prop is changed\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly animatedOnInit = input(undefined, {alias: 'auAnimatedOnInit', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, alert closing will be animated.\n\t *\n\t * Animation is triggered when clicked on the close button (×),\n\t * via the `.close()` function or the visible prop is changed\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` automatically hides the toast after the delay.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly autoHide = input(undefined, {alias: 'auAutoHide', transform: auBooleanAttribute});\n\n\t/**\n\t * Delay in milliseconds before hiding the toast.\n\t *\n\t * @defaultValue `5000`\n\t */\n\treadonly delay = input(undefined, {alias: 'auDelay', transform: auNumberAttribute});\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\treadonly ariaCloseButtonLabel = input<string>(undefined, {alias: 'auAriaCloseButtonLabel'});\n\n\t/**\n\t * Template for the toast content\n\t */\n\treadonly children = input<SlotContent<ToastContext>>(undefined, {alias: 'auChildren'});\n\treadonly slotDefaultFromContent = contentChild(ToastBodyDirective);\n\n\t/**\n\t * Global template for the toast component\n\t */\n\treadonly structure = input<SlotContent<ToastContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(ToastStructureDirective);\n\n\t/**\n\t * Header template for the toast component\n\t */\n\treadonly header = input<SlotContent<ToastContext>>(undefined, {alias: 'auHeader'});\n\treadonly slotHeaderFromContent = contentChild(ToastHeaderDirective);\n\n\t/**\n\t * Callback called when the alert visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly visibleChange = output<boolean>({alias: 'auVisibleChange'});\n\n\t/**\n\t * Callback called when the alert is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly hidden = output<void>({alias: 'auHidden'});\n\n\t/**\n\t * Callback called when the alert is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly shown = output<void>({alias: 'auShown'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\treadonly slotChildren = viewChild<TemplateRef<void>>('content');\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createToast, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: toastDefaultSlotStructure,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonVisibleChange: (event) => this.visibleChange.emit(event),\n\t\t\t\t\tonShown: () => this.shown.emit(),\n\t\t\t\t\tonHidden: () => this.hidden.emit(),\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tchildren: this.slotDefaultFromContent()?.templateRef,\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\theader: this.slotHeaderFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t\tslotChildren: () => this.slotChildren(),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {auBooleanAttribute, BaseWidgetDirective, useDirectiveForHost} from '@agnos-ui/angular-headless';\nimport type {CollapseWidget} from '@agnos-ui/core-bootstrap/components/collapse';\nimport {createCollapse} from '@agnos-ui/core-bootstrap/components/collapse';\nimport {Directive, inject, Injector, input, type OnInit, output, runInInjectionContext} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\n\n/**\n * Directive to control the collapse behavior of an element.\n */\n@Directive({\n\tselector: '[auCollapse]',\n\n\texportAs: 'auCollapse',\n})\nexport class CollapseDirective extends BaseWidgetDirective<CollapseWidget> {\n\t/**\n\t * If `true`, collapse opening will be animated at init time.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly animatedOnInit = input(undefined, {alias: 'auAnimatedOnInit', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, collapse closing and opening will be animated.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * If `true`, collapse will be done horizontally.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly horizontal = input(undefined, {alias: 'auHorizontal', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` the collapse is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly visible = input(undefined, {alias: 'auVisible', transform: auBooleanAttribute});\n\n\t/**\n\t * id of the collapse\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly id = input<string>(undefined, {alias: 'auId'});\n\n\t/**\n\t * Callback called when the collapse visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t * @param visible - The new visibility state of the collapse.\n\t */\n\treadonly visibleChange = output<boolean>({alias: 'auVisibleChange'});\n\n\t/**\n\t * Callback called when the collapse is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly hidden = output<void>({alias: 'auHidden'});\n\n\t/**\n\t * Callback called when the collapse is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly shown = output<void>({alias: 'auShown'});\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createCollapse, {\n\t\t\t\tevents: {\n\t\t\t\t\tonVisibleChange: (event) => this.visibleChange.emit(event),\n\t\t\t\t\tonShown: () => this.shown.emit(),\n\t\t\t\t\tonHidden: () => this.hidden.emit(),\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.collapseDirective);\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n}\n\n@Directive({\n\tselector: '[auCollapseTrigger]',\n})\nexport class CollapseTriggerDirective implements OnInit {\n\treadonly auCollapseTrigger = input.required<CollapseDirective>();\n\tprivate readonly injector = inject(Injector);\n\n\tasync ngOnInit() {\n\t\tawait this.auCollapseTrigger()['_widget'].initialized;\n\t\trunInInjectionContext(this.injector, () => {\n\t\t\tuseDirectiveForHost(this.auCollapseTrigger().directives.triggerDirective);\n\t\t});\n\t}\n}\n","import {getCollapseDefaultConfig, createCollapse} from '@agnos-ui/core-bootstrap/components/collapse';\nimport type {Directive, Widget, WidgetFactory} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default collapse config\n * @returns the default collapse config\n */\nconst export_getCollapseDefaultConfig: () => CollapseProps = getCollapseDefaultConfig as any;\nexport {export_getCollapseDefaultConfig as getCollapseDefaultConfig};\n\n/**\n * Represents the state of a collapse component.\n * Extends the properties and state from `CollapseCommonPropsAndState`.\n */\nexport interface CollapseState {\n\t\n\t/**\n\t * Is `true` when the collapse is hidden. Compared to `visible`, this is updated after the transition is executed.\n\t */\n\thidden: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * If `true`, collapse will be done horizontally.\n\t *\n\t * @defaultValue `false`\n\t */\n\thorizontal: boolean;\n\t\n\t/**\n\t * If `true` the collapse is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n}\n\n/**\n * Properties for the Collapse component.\n */\nexport interface CollapseProps {\n\t\n\t/**\n\t * Callback called when the collapse visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t * @param visible - The new visibility state of the collapse.\n\t */\n\tonVisibleChange: (visible: boolean) => void;\n\t\n\n\t/**\n\t * Callback called when the collapse is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonHidden: () => void;\n\t\n\n\t/**\n\t * Callback called when the collapse is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonShown: () => void;\n\t\n\n\t/**\n\t * If `true`, collapse opening will be animated at init time.\n\t *\n\t * @defaultValue `false`\n\t */\n\tanimatedOnInit: boolean;\n\t\n\n\t/**\n\t * If `true`, collapse closing and opening will be animated.\n\t *\n\t * @defaultValue `true`\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * id of the collapse\n\t *\n\t * @defaultValue `''`\n\t */\n\tid: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * If `true`, collapse will be done horizontally.\n\t *\n\t * @defaultValue `false`\n\t */\n\thorizontal: boolean;\n\t\n\t/**\n\t * If `true` the collapse is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n}\n\n/**\n * Interface representing the API for a collapsible component.\n */\nexport interface CollapseApi {\n\t\n\t/**\n\t * Triggers collapse closing programmatically.\n\t */\n\tclose(): void;\n\t\n\n\t/**\n\t * Triggers the collapse content to be displayed for the user.\n\t */\n\topen(): void;\n\t\n\n\t/**\n\t * Toggles the collapse content visibility.\n\t */\n\ttoggle(): void;\n}\n\n/**\n * Interface representing the directives used in a collapse component.\n */\nexport interface CollapseDirectives {\n\t\n\t/**\n\t * Directive to apply the collapse.\n\t */\n\tcollapseDirective: Directive;\n\t\n\t/**\n\t * Directive to apply to a trigger;\n\t */\n\ttriggerDirective: Directive;\n}\n\n\n\n/**\n * Represents a widget for handling collapse functionality.\n *\n * This type defines the structure of a CollapseWidget, which includes properties, state, API, and directives\n * necessary for managing the collapse behavior in the UI.\n *\n * @type {Widget<CollapseProps, CollapseState, CollapseApi, CollapseDirectives>}\n */\nexport type CollapseWidget = Widget<CollapseProps, CollapseState, CollapseApi, CollapseDirectives>;\n\n\n\n/**\n * Create an CollapseWidget with given config props\n * @param config - an optional collapse config\n * @returns an CollapseWidget\n */\nconst export_createCollapse: WidgetFactory<CollapseWidget> = createCollapse as any;\nexport {export_createCollapse as createCollapse};\n\n","import {getTreeDefaultConfig, createTree} from '@agnos-ui/core-bootstrap/components/tree';\nimport type {WidgetSlotContext, SlotContent, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default Tree config\n * @returns the default Tree config\n */\nconst export_getTreeDefaultConfig: () => TreeProps = getTreeDefaultConfig as any;\nexport {export_getTreeDefaultConfig as getTreeDefaultConfig};\n\n\n\n/**\n * Represents the context for a Tree widget.\n * This interface is an alias for `WidgetSlotContext<TreeWidget>`.\n */\nexport type TreeContext = WidgetSlotContext<TreeWidget>;\n\n\n/**\n * Represents the context for a tree item, extending the base `TreeContext`\n * with an additional `item` property.\n */\nexport type TreeSlotItemContext = TreeContext & {item: NormalizedTreeItem};\n\n/**\n * Represents the state of a Tree component.\n */\nexport interface TreeState {\n\t\n\t/**\n\t * Array of normalized tree nodes\n\t */\n\tnormalizedNodes: NormalizedTreeItem[];\n\t\n\t/**\n\t * Getter of expanded state for each tree node\n\t */\n\texpandedMap: {get(item: NormalizedTreeItem): boolean | undefined};\n\t\n\t/**\n\t * Optional accessibility label for the tree if there is no explicit label\n\t *\n\t * @defaultValue `''`\n\t */\n\tariaLabel?: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Slot to change the default display of the tree\n\t */\n\tstructure: SlotContent<TreeContext>;\n\t\n\t/**\n\t * Slot to change the default tree item\n\t */\n\titem: SlotContent<TreeSlotItemContext>;\n\t\n\t/**\n\t * Slot to change the default tree item content\n\t */\n\titemContent: SlotContent<TreeSlotItemContext>;\n\t\n\t/**\n\t * Slot to change the default tree item toggle\n\t */\n\titemToggle: SlotContent<TreeSlotItemContext>;\n}\n\n/**\n * Represents the properties for the Tree component.\n */\nexport interface TreeProps {\n\t\n\t/**\n\t * Array of the tree nodes to display\n\t *\n\t * @defaultValue `[]`\n\t */\n\tnodes: TreeItem[];\n\t\n\t/**\n\t * An event emitted when the user toggles the expand of the TreeItem.\n\t *\n\t * Event payload is equal to the TreeItem clicked.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonExpandToggle: (node: NormalizedTreeItem) => void;\n\t\n\t/**\n\t * Retrieves expand items of the TreeItem\n\t *\n\t * @param node - HTML element that is representing the expand item\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (node: HTMLElement) => node.querySelectorAll('button')\n\t * ```\n\t */\n\tnavSelector(node: HTMLElement): NodeListOf<HTMLElement>;\n\t\n\t/**\n\t * Return the value for the 'aria-label' attribute of the toggle\n\t * @param label - tree item label\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (label: string) => `Toggle ${label}`\n\t * ```\n\t */\n\tariaLabelToggleFn: (label: string) => string;\n\t\n\t/**\n\t * Optional accessibility label for the tree if there is no explicit label\n\t *\n\t * @defaultValue `''`\n\t */\n\tariaLabel?: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Slot to change the default display of the tree\n\t */\n\tstructure: SlotContent<TreeContext>;\n\t\n\t/**\n\t * Slot to change the default tree item\n\t */\n\titem: SlotContent<TreeSlotItemContext>;\n\t\n\t/**\n\t * Slot to change the default tree item content\n\t */\n\titemContent: SlotContent<TreeSlotItemContext>;\n\t\n\t/**\n\t * Slot to change the default tree item toggle\n\t */\n\titemToggle: SlotContent<TreeSlotItemContext>;\n}\n\n\n/**\n * Represents a Tree widget component.\n */\nexport type TreeWidget = Widget<TreeProps, TreeState, TreeApi, TreeDirectives>;\n\n\n\n/**\n * Create a Tree with given config props\n * @param config - an optional tree config\n * @returns a TreeWidget\n */\nconst export_createTree: WidgetFactory<TreeWidget> = createTree as any;\nexport {export_createTree as createTree};\n\n/**\n * Represents a tree item component.\n */\nexport interface TreeItem {\n\t\n\t/**\n\t * Optional accessibility label for the node\n\t */\n\tariaLabel?: string;\n\t\n\t/**\n\t * Optional array of children nodes\n\t */\n\tchildren?: TreeItem[];\n\t\n\t/**\n\t * If `true` the node is expanded\n\t */\n\tisExpanded?: boolean;\n\t\n\t/**\n\t * String title of the node\n\t */\n\tlabel: string;\n}\n\n/**\n * Normalized TreeItem object\n */\nexport interface NormalizedTreeItem {\n\t\n\t/**\n\t * Accessibility label for the node\n\t */\n\tariaLabel: string;\n\t\n\n\t/**\n\t * Level in the hierarchy, starts with 0 for a root node\n\t */\n\tlevel: number;\n\t\n\n\t/**\n\t * An array of children nodes\n\t */\n\tchildren: NormalizedTreeItem[];\n\t\n\t/**\n\t * If `true` the node is expanded\n\t */\n\tisExpanded?: boolean;\n\t\n\t/**\n\t * String title of the node\n\t */\n\tlabel: string;\n}\n\n/**\n * Interface representing the API for a Tree component.\n */\nexport interface TreeApi {\n}\n\n/**\n * Interface representing various directives used in the Tree component.\n */\nexport interface TreeDirectives {\n\t\n\t/**\n\t * Directive to attach navManager for the tree\n\t */\n\tnavigationDirective: Directive;\n\t\n\t/**\n\t * Directive to handle toggle for the tree item\n\t */\n\titemToggleDirective: Directive<{item: NormalizedTreeItem}>;\n\t\n\t/**\n\t * Directive to handle attributes for the tree item\n\t */\n\titemAttributesDirective: Directive<{item: NormalizedTreeItem}>;\n}\n\n","import type {SlotContent} from '@agnos-ui/angular-headless';\nimport {BaseWidgetDirective, callWidgetFactory, ComponentTemplate, SlotDirective, UseDirective} from '@agnos-ui/angular-headless';\nimport {ChangeDetectionStrategy, Component, contentChild, Directive, inject, input, output, TemplateRef, viewChild} from '@angular/core';\nimport type {TreeContext, TreeItem, NormalizedTreeItem, TreeSlotItemContext, TreeWidget} from './tree.gen';\nimport {createTree} from './tree.gen';\n\n/**\n * Directive to provide a template reference for tree structure.\n *\n * This directive uses a template reference to render the {@link TreeContext}.\n */\n@Directive({selector: 'ng-template[auTreeStructure]'})\nexport class TreeStructureDirective {\n\tpublic templateRef = inject(TemplateRef<TreeContext>);\n\tstatic ngTemplateContextGuard(_dir: TreeStructureDirective, context: unknown): context is TreeContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, TreeStructureDirective, SlotDirective],\n\ttemplate: `\n\t\t<ng-template auTreeStructure #structure let-state=\"state\" let-directives=\"directives\" let-api=\"api\">\n\t\t\t<ul role=\"tree\" class=\"au-tree {{ state.className() }}\" [auUse]=\"directives.navigationDirective\">\n\t\t\t\t@for (node of state.normalizedNodes(); track trackNode($index, node)) {\n\t\t\t\t\t<ng-template [auSlot]=\"state.item()\" [auSlotProps]=\"{state, api, directives, item: node}\" />\n\t\t\t\t}\n\t\t\t</ul>\n\t\t</ng-template>\n\t`,\n})\nclass TreeDefaultStructureSlotComponent {\n\treadonly structure = viewChild.required<TemplateRef<TreeContext>>('structure');\n\n\ttrackNode(index: number, node: NormalizedTreeItem): string {\n\t\treturn node.label + node.level + index;\n\t}\n}\n\n/**\n * A constant representing the default slot for tree structure.\n */\nexport const treeDefaultSlotStructure: SlotContent<TreeContext> = new ComponentTemplate(TreeDefaultStructureSlotComponent, 'structure');\n\n/**\n * Directive to provide a template reference for tree item toggle.\n *\n * This directive uses a template reference to render the {@link TreeSlotItemContext}.\n */\n@Directive({selector: 'ng-template[auTreeItemToggle]'})\nexport class TreeItemToggleDirective {\n\tpublic templateRef = inject(TemplateRef<TreeSlotItemContext>);\n\tstatic ngTemplateContextGuard(_dir: TreeItemToggleDirective, context: unknown): context is TreeSlotItemContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, TreeItemToggleDirective],\n\ttemplate: `\n\t\t<ng-template auTreeItemToggle #toggle let-directives=\"directives\" let-item=\"item\">\n\t\t\t@if (item.children.length > 0) {\n\t\t\t\t<button [auUse]=\"[directives.itemToggleDirective, {item}]\">\n\t\t\t\t\t<svg class=\"au-tree-expand-icon-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 10 10\">\n\t\t\t\t\t\t<path d=\"M3 1 L7 5 L3 9\" class=\"au-tree-expand-icon-svg-fill\" stroke-width=\"1\" fill=\"none\" />\n\t\t\t\t\t</svg>\n\t\t\t\t</button>\n\t\t\t} @else {\n\t\t\t\t<span class=\"au-tree-expand-icon-placeholder\"></span>\n\t\t\t}\n\t\t</ng-template>\n\t`,\n})\nclass TreeDefaultItemToggleSlotComponent {\n\treadonly toggle = viewChild.required<TemplateRef<TreeSlotItemContext>>('toggle');\n}\n\n/**\n * A constant representing the default slot for tree item toggle.\n */\nexport const treeDefaultItemToggle: SlotContent<TreeSlotItemContext> = new ComponentTemplate(TreeDefaultItemToggleSlotComponent, 'toggle');\n\n/**\n * Directive to provide a template reference for tree item content.\n *\n * This directive uses a template reference to render the {@link TreeSlotItemContext}.\n */\n@Directive({selector: 'ng-template[auTreeItemContent]'})\nexport class TreeItemContentDirective {\n\tpublic templateRef = inject(TemplateRef<TreeSlotItemContext>);\n\tstatic ngTemplateContextGuard(_dir: TreeItemContentDirective, context: unknown): context is TreeSlotItemContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, TreeItemContentDirective],\n\ttemplate: `\n\t\t<ng-template auTreeItemContent #treeItemContent let-state=\"state\" let-directives=\"directives\" let-item=\"item\" let-api=\"api\">\n\t\t\t<span class=\"au-tree-item\">\n\t\t\t\t<ng-template [auSlot]=\"state.itemToggle()\" [auSlotProps]=\"{state, api, directives, item}\" />\n\t\t\t\t{{ item.label }}\n\t\t\t</span>\n\t\t</ng-template>\n\t`,\n})\nclass TreeDefaultItemContentSlotComponent {\n\treadonly treeItemContent = viewChild.required<TemplateRef<TreeSlotItemContext>>('treeItemContent');\n}\n\n/**\n * A constant representing the default slot for tree item.\n */\nexport const treeDefaultSlotItemContent: SlotContent<TreeSlotItemContext> = new ComponentTemplate(\n\tTreeDefaultItemContentSlotComponent,\n\t'treeItemContent',\n);\n\n/**\n * Directive to provide a template reference for tree item.\n *\n * This directive uses a template reference to render the {@link TreeSlotItemContext}.\n */\n@Directive({selector: 'ng-template[auTreeItem]'})\nexport class TreeItemDirective {\n\tpublic templateRef = inject(TemplateRef<TreeSlotItemContext>);\n\tstatic ngTemplateContextGuard(_dir: TreeItemDirective, context: unknown): context is TreeSlotItemContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, SlotDirective, TreeItemDirective],\n\ttemplate: `\n\t\t<ng-template auTreeItem #treeItem let-state=\"state\" let-directives=\"directives\" let-item=\"item\" let-api=\"api\">\n\t\t\t<li [auUse]=\"[directives.itemAttributesDirective, {item}]\">\n\t\t\t\t<ng-template [auSlot]=\"state.itemContent()\" [auSlotProps]=\"{state, api, directives, item}\" />\n\t\t\t\t@if (state.expandedMap().get(item)) {\n\t\t\t\t\t<ul role=\"group\">\n\t\t\t\t\t\t@for (child of item.children; track trackNode($index, child)) {\n\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.item()\" [auSlotProps]=\"{state, api, directives, item: child}\" />\n\t\t\t\t\t\t}\n\t\t\t\t\t</ul>\n\t\t\t\t}\n\t\t\t</li>\n\t\t</ng-template>\n\t`,\n})\nclass TreeDefaultItemSlotComponent {\n\treadonly treeItem = viewChild.required<TemplateRef<TreeSlotItemContext>>('treeItem');\n\n\ttrackNode(index: number, node: NormalizedTreeItem) {\n\t\treturn node.label + node.level + index;\n\t}\n}\n\n/**\n * A constant representing the default slot for tree item.\n */\nexport const treeDefaultSlotItem: SlotContent<TreeSlotItemContext> = new ComponentTemplate(TreeDefaultItemSlotComponent, 'treeItem');\n\n/**\n * TreeComponent is an Angular component that extends the BaseWidgetDirective\n * to provide a customizable tree widget. This component allows for various\n * configurations and customizations through its inputs and outputs.\n */\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tselector: '[auTree]',\n\n\timports: [SlotDirective],\n\ttemplate: ` <ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" /> `,\n})\nexport class TreeComponent extends BaseWidgetDirective<TreeWidget> {\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createTree, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: treeDefaultSlotStructure,\n\t\t\t\t\titem: treeDefaultSlotItem,\n\t\t\t\t\titemContent: treeDefaultSlotItemContent,\n\t\t\t\t\titemToggle: treeDefaultItemToggle,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonExpandToggle: (item: NormalizedTreeItem) => this.expandToggle.emit(item),\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\titem: this.slotItemFromContent()?.templateRef,\n\t\t\t\t\titemContent: this.slotItemContentFromContent()?.templateRef,\n\t\t\t\t\titemToggle: this.slotItemToggleFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n\t/**\n\t * Optional accessibility label for the tree if there is no explicit label\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly ariaLabel = input<string>(undefined, {alias: 'auAriaLabel'});\n\t/**\n\t * Array of the tree nodes to display\n\t *\n\t * @defaultValue `[]`\n\t */\n\treadonly nodes = input<TreeItem[]>(undefined, {alias: 'auNodes'});\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\t/**\n\t * Retrieves expand items of the TreeItem\n\t *\n\t * @param node - HTML element that is representing the expand item\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (node: HTMLElement) => node.querySelectorAll('button')\n\t * ```\n\t */\n\treadonly navSelector = input<(node: HTMLElement) => NodeListOf<HTMLElement>>(undefined, {alias: 'auNavSelector'});\n\t/**\n\t * Return the value for the 'aria-label' attribute of the toggle\n\t * @param label - tree item label\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (label: string) => `Toggle ${label}`\n\t * ```\n\t */\n\treadonly ariaLabelToggleFn = input<(label: string) => string>(undefined, {alias: 'auAriaLabelToggleFn'});\n\n\t/**\n\t * An event emitted when the user toggles the expand of the TreeItem.\n\t *\n\t * Event payload is equal to the TreeItem clicked.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly expandToggle = output<NormalizedTreeItem>({alias: 'auExpandToggle'});\n\n\t/**\n\t * Slot to change the default tree item content\n\t */\n\treadonly itemContent = input<SlotContent<TreeSlotItemContext>>(undefined, {alias: 'auItemContent'});\n\treadonly slotItemContentFromContent = contentChild(TreeItemContentDirective);\n\n\t/**\n\t * Slot to change the default display of the tree\n\t */\n\treadonly structure = input<SlotContent<TreeContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(TreeStructureDirective);\n\n\t/**\n\t * Slot to change the default tree item toggle\n\t */\n\treadonly itemToggle = input<SlotContent<TreeSlotItemContext>>(undefined, {alias: 'auItemToggle'});\n\treadonly slotItemToggleFromContent = contentChild(TreeItemToggleDirective);\n\n\t/**\n\t * Slot to change the default tree item\n\t */\n\treadonly item = input<SlotContent<TreeSlotItemContext>>(undefined, {alias: 'auItem'});\n\treadonly slotItemFromContent = contentChild(TreeItemDirective);\n}\n","import {getCarouselDefaultConfig, createCarousel} from '@agnos-ui/core-bootstrap/components/carousel';\nimport type {WidgetSlotContext, SlotContent, Directive, Widget, WidgetFactory, PropsConfig} from '@agnos-ui/angular-headless';\nimport type {EmblaPluginType, EmblaPluginsType, EmblaCarouselType} from 'embla-carousel';\n\n\n\n/**\n * Retrieve a shallow copy of the default Carousel config\n * @returns the default Carousel config\n */\nconst export_getCarouselDefaultConfig: () => CarouselProps<any> = getCarouselDefaultConfig as any;\nexport {export_getCarouselDefaultConfig as getCarouselDefaultConfig};\n\n\n\n/**\n * Represents the context for a carousel.\n *\n * @template SlideData - The type of data used by each slide in the carousel.\n */\nexport type CarouselContext<SlideData extends {id: string}> = WidgetSlotContext<CarouselWidget<SlideData>>;\n\n\n\n/**\n * Represents the context for a carousel slide.\n *\n * @template SlideData - The type of data used by each slide in the carousel.\n */\nexport type CarouselSlideContext<SlideData extends {id: string}> = WidgetSlotContext<CarouselWidget<SlideData>> & SlideData;\n\n/**\n * Represents the state of a carousel component.\n *\n * @template SlideData - The type of data used by each slide in the carousel.\n */\nexport interface CarouselState<SlideData extends {id: string}> {\n\t\n\t/**\n\t * is the carousel currently scrolling\n\t */\n\tscrolling: boolean;\n\t\n\t/**\n\t * can carousel scroll to previous slide\n\t */\n\tcanScrollPrev: boolean;\n\t\n\t/**\n\t * can carousel scroll to next slide\n\t */\n\tcanScrollNext: boolean;\n\t\n\t/**\n\t * selected scroll snap\n\t */\n\tselectedScrollSnap: number;\n\t\n\t/**\n\t * is the carousel initialized\n\t */\n\tinitialized: boolean;\n\t\n\t/**\n\t * If `true`, 'previous' and 'next' navigation arrows will be visible.\n\t */\n\tshowNavigationArrows: boolean;\n\t\n\t/**\n\t * If `true`, navigation indicators at the bottom of the slide will be visible.\n\t */\n\tshowNavigationIndicators: boolean;\n\t\n\t/**\n\t * Choose content direction between `ltr` and `rtl`\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#direction}\n\t * @defaultValue `'ltr'`\n\t */\n\tdirection: 'ltr' | 'rtl';\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Class name to apply to the container of the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\tcontainerClass: string;\n\t\n\t/**\n\t * Class name to apply to each slide in the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\tslideClass: string | ((slideContext: {id: string; index: number; active: boolean}) => string);\n\t\n\t/**\n\t * The data for each slide in the carousel.\n\t *\n\t * @defaultValue `[]`\n\t */\n\tslidesData: SlideData[];\n\t\n\t/**\n\t * The structure of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tstructure: SlotContent<CarouselContext<SlideData>>;\n\t\n\t/**\n\t * The navigation layer of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tnavigation: SlotContent<CarouselContext<SlideData>>;\n\t\n\t/**\n\t * The content of each slide in the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tslide: SlotContent<CarouselSlideContext<SlideData>>;\n\t\n\t/**\n\t * The aria-live attribute value for the carousel container.\n\t *\n\t * @defaultValue `'polite'`\n\t */\n\tariaLive: string;\n}\n\n/**\n * Interface representing the properties for a carousel component.\n *\n * @template SlideData - The type of data used by each slide in the carousel.\n */\nexport interface CarouselProps<SlideData extends {id: string}> {\n\t\n\t/**\n\t * Plugins to extend the carousel with additional features\n\t * @defaultValue `[]`\n\t */\n\tplugins: EmblaPluginType[];\n\t\n\t/**\n\t * Aria label for navigation indicators\n\t */\n\tariaIndicatorLabel: (index: number) => string;\n\t\n\t/**\n\t * Aria label for previous button\n\t */\n\tariaPrevLabel: string;\n\t\n\t/**\n\t * Aria label for next button\n\t */\n\tariaNextLabel: string;\n\t\n\t/**\n\t * Align the slides relative to the carousel viewport\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#align}\n\t * @defaultValue `'center'`\n\t */\n\talign: 'start' | 'center' | 'end';\n\t\n\t/**\n\t * Enables choosing a custom container element which holds the slides. By default, Embla will choose the first direct child element of the root element. Provide a valid CSS selector string.\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#container}\n\t */\n\tcontainer: string | null;\n\t\n\t/**\n\t * Clear leading and trailing empty space that causes excessive scrolling\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#containScroll}\n\t * @defaultValue `'trimSnaps'`\n\t */\n\tcontainScroll: false | 'trimSnaps' | 'keepSnaps';\n\t\n\t/**\n\t * Choose content direction between `ltr` and `rtl`\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#direction}\n\t * @defaultValue `'ltr'`\n\t */\n\tdirection: 'ltr' | 'rtl';\n\t\n\t/**\n\t * Enables momentum scrolling\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#dragFree}\n\t * @defaultValue `false`\n\t */\n\tdragFree: boolean;\n\t\n\t/**\n\t * Drag threshold in pixels\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#dragThreshold}\n\t * @defaultValue `10`\n\t */\n\tdragThreshold: number;\n\t\n\t/**\n\t * Set scroll duration when triggered by any of the API methods\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#duration}\n\t * @defaultValue `25`\n\t */\n\tduration: number;\n\t\n\t/**\n\t * Enables infinite looping\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#loop}\n\t * @defaultValue `false`\n\t */\n\tloop: boolean;\n\t\n\t/**\n\t * Allow the carousel to skip scroll snaps if it's dragged vigorously\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#skipsnaps}\n\t * @defaultValue `false`\n\t */\n\tskipSnaps: boolean;\n\t\n\t/**\n\t * If `true`, 'previous' and 'next' navigation arrows will be visible.\n\t */\n\tshowNavigationArrows: boolean;\n\t\n\t/**\n\t * If `true`, navigation indicators at the bottom of the slide will be visible.\n\t */\n\tshowNavigationIndicators: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Class name to apply to the container of the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\tcontainerClass: string;\n\t\n\t/**\n\t * Class name to apply to each slide in the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\tslideClass: string | ((slideContext: {id: string; index: number; active: boolean}) => string);\n\t\n\t/**\n\t * The data for each slide in the carousel.\n\t *\n\t * @defaultValue `[]`\n\t */\n\tslidesData: SlideData[];\n\t\n\t/**\n\t * The structure of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tstructure: SlotContent<CarouselContext<SlideData>>;\n\t\n\t/**\n\t * The navigation layer of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tnavigation: SlotContent<CarouselContext<SlideData>>;\n\t\n\t/**\n\t * The content of each slide in the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tslide: SlotContent<CarouselSlideContext<SlideData>>;\n\t\n\t/**\n\t * The aria-live attribute value for the carousel container.\n\t *\n\t * @defaultValue `'polite'`\n\t */\n\tariaLive: string;\n}\n\n/**\n * Represents the directives for a carousel component.\n */\nexport interface CarouselDirectives {\n\t\n\t/**\n\t * A directive to be applied to each slide in the carousel.\n\t */\n\tslide: Directive<{id: string; index: number}>;\n\t\n\t/**\n\t * A directive to be applied to container of the carousel.\n\t */\n\tcontainer: Directive;\n\t\n\t/**\n\t * the root directive\n\t */\n\troot: Directive;\n\t\n\t/**\n\t * A directive to be applied to a navigation button allowing to scroll to the previous slide.\n\t */\n\tscrollPrev: Directive;\n\t\n\t/**\n\t * A directive to be applied to a navigation button allowing to scroll to the next slide.\n\t */\n\tscrollNext: Directive;\n\t\n\t/**\n\t * A directive to be applied to a tab list allowing to navigate to the corresponding slide.\n\t * This directive adds the role `tablist` and is recommended to be used together with {@link tabIndicator}.\n\t */\n\ttabList: Directive;\n\t\n\t/**\n\t * A directive to be applied to a navigation indicator allowing to scroll to the corresponding slide.\n\t * As this directive adds the role `tab` to the element, it is recommended to use it on a button or a link and the parent element should have the {@link tabList} directive attached.\n\t */\n\ttabIndicator: Directive<{index: number; id: string; jump?: boolean}>;\n}\n\n\n\n/**\n * Represents a carousel widget with specific properties, state, API, and directives.\n *\n * @template SlideData - The type of the data for each slide.\n */\nexport type CarouselWidget<SlideData extends {id: string}> = Widget<\n\tCarouselProps<SlideData>,\n\tCarouselState<SlideData>,\n\tCarouselApi,\n\tCarouselDirectives\n>;\n\n\n\n/**\n * Create a Carousel with given config props\n *\n * @template SlideData - The type of the data for each slide.\n * @param config - an optional carousel config\n * @returns a CarouselWidget\n */\nconst export_createCarousel: WidgetFactory<CarouselWidget<{ id: string; }>, <SlideData extends { id: string; }>(config?: PropsConfig<CarouselProps<SlideData>>) => CarouselWidget<SlideData>> = createCarousel as any;\nexport {export_createCarousel as createCarousel};\n\n/**\n * Represents the API for a carousel component.\n */\nexport interface CarouselApi {\n\t\n\t/**\n\t * Scroll to the previous snap point if possible.\n\t * @param jump - scroll instantly\n\t */\n\tscrollPrev: (jump?: boolean) => void;\n\t\n\t/**\n\t * Scroll to the next snap point if possible.\n\t * @param jump - scroll instantly\n\t */\n\tscrollNext: (jump?: boolean) => void;\n\t\n\t/**\n\t * Scroll to a snap point by index\n\t * @param index - the snap point index\n\t * @param jump - scroll instantly\n\t */\n\tscrollTo: (index: number, jump?: boolean) => void;\n\t\n\t/**\n\t * Retrieve the enabled plugins\n\t */\n\tplugins: () => EmblaPluginsType | undefined;\n\t\n\t/**\n\t * Retrieve the inner EmblaApi object\n\t */\n\temblaApi: () => EmblaCarouselType | undefined;\n}\n\n","import {\n\tauBooleanAttribute,\n\tauNumberAttribute,\n\tBaseWidgetDirective,\n\tComponentTemplate,\n\ttype SlotContent,\n\tSlotDirective,\n\tUseDirective,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type {CarouselContext, CarouselSlideContext, CarouselWidget, CarouselProps} from './carousel.gen';\nimport {createCarousel} from './carousel.gen';\nimport type {InputSignal} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, contentChild, Directive, inject, input, TemplateRef, viewChild} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\nimport type {EmblaPluginType} from 'embla-carousel';\n\n/**\n * Directive that provides a template reference for the carousel structure using the {@link CarouselContext}.\n */\n@Directive({selector: 'ng-template[auCarouselStructure]'})\nexport class CarouselStructureDirective<SlideData extends {id: string}> {\n\tpublic templateRef = inject(TemplateRef<CarouselContext<SlideData>>);\n\n\tstatic ngTemplateContextGuard<SlideData extends {id: string}>(\n\t\t_dir: CarouselStructureDirective<SlideData>,\n\t\tcontext: unknown,\n\t): context is CarouselContext<SlideData> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive that provides a template reference for the carousel navigation using the {@link CarouselContext}.\n */\n@Directive({selector: 'ng-template[auCarouselNavigation]'})\nexport class CarouselNavigationDirective<SlideData extends {id: string}> {\n\tpublic templateRef = inject(TemplateRef<CarouselContext<SlideData>>);\n\n\tstatic ngTemplateContextGuard<SlideData extends {id: string}>(\n\t\t_dir: CarouselNavigationDirective<SlideData>,\n\t\tcontext: unknown,\n\t): context is CarouselContext<SlideData> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive that provides a template reference for the carousel slide using the {@link CarouselSlideContext}.\n */\n@Directive({selector: 'ng-template[auCarouselSlide]'})\nexport class CarouselSlideDirective<SlideData extends {id: string}> {\n\tpublic templateRef = inject(TemplateRef<CarouselSlideContext<SlideData>>);\n\n\tstatic ngTemplateContextGuard<SlideData extends {id: string}>(\n\t\t_dir: CarouselSlideDirective<SlideData>,\n\t\tcontext: unknown,\n\t): context is CarouselSlideContext<SlideData> {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\timports: [SlotDirective, CarouselStructureDirective, CarouselNavigationDirective, UseDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<ng-template auCarouselNavigation #navigation let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t@if (state.showNavigationArrows()) {\n\t\t\t\t@if (state.canScrollPrev()) {\n\t\t\t\t\t@let prevBtnClassPrefix = state.direction() === 'rtl' ? 'carousel-control-next' : 'carousel-control-prev';\n\t\t\t\t\t<button class=\"{{ prevBtnClassPrefix }}\" [auUse]=\"directives.scrollPrev\">\n\t\t\t\t\t\t<span class=\"{{ prevBtnClassPrefix }}-icon\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t\t@if (state.canScrollNext()) {\n\t\t\t\t\t@let nextBtnClassPrefix = state.direction() === 'ltr' ? 'carousel-control-next' : 'carousel-control-prev';\n\t\t\t\t\t<button class=\"{{ nextBtnClassPrefix }}\" [auUse]=\"directives.scrollNext\">\n\t\t\t\t\t\t<span class=\"{{ nextBtnClassPrefix }}-icon\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t}\n\t\t\t@if (state.showNavigationIndicators()) {\n\t\t\t\t<div class=\"carousel-indicators\" [auUse]=\"directives.tabList\">\n\t\t\t\t\t@for (slideData of state.slidesData(); track slideData.id; let index = $index) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tdata-bs-target=\"true\"\n\t\t\t\t\t\t\t[attr.class]=\"state.selectedScrollSnap() === index ? 'active' : undefined\"\n\t\t\t\t\t\t\t[auUse]=\"[directives.tabIndicator, {index, id: slideData.id}]\"\n\t\t\t\t\t\t></button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-template>\n\t\t<ng-template auCarouselStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t<ng-template [auSlot]=\"state.navigation()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t<div [auUse]=\"directives.container\">\n\t\t\t\t@for (slideData of state.slidesData(); track slideData.id; let index = $index) {\n\t\t\t\t\t<div [auUse]=\"[directives.slide, {index, id: slideData.id}]\">\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.slide()\" [auSlotProps]=\"toSlideContext(slideData, {state, api, directives})\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ng-template>\n\t`,\n})\nclass CarouselDefaultSlotsComponent<SlideData extends {id: string}> {\n\treadonly structure = viewChild.required<TemplateRef<CarouselContext<SlideData>>>('structure');\n\treadonly navigation = viewChild.required<TemplateRef<CarouselContext<SlideData>>>('navigation');\n\n\ttoSlideContext(slideData: SlideData, carouselContext: CarouselContext<SlideData>): CarouselSlideContext<SlideData> {\n\t\treturn {\n\t\t\t...slideData,\n\t\t\t...carouselContext,\n\t\t};\n\t}\n}\n/**\n * The default slot for the structure\n */\nexport const carouselDefaultSlotStructure: SlotContent<CarouselContext<any>> = new ComponentTemplate(CarouselDefaultSlotsComponent, 'structure');\n/**\n * The default slot for the navigation\n */\nexport const carouselDefaultSlotNavigation: SlotContent<CarouselContext<any>> = new ComponentTemplate(CarouselDefaultSlotsComponent, 'navigation');\n\n/**\n * CarouselComponent is an Angular Component that extends {@link BaseWidgetDirective}<{@link CarouselWidget}>\n * to create a customizable carousel widget. It provides various inputs (see {@link CarouselProps})\n * to configure the appearance and behavior of the carousel.\n */\n@Component({\n\tselector: '[auCarousel]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective],\n\ttemplate: ` <ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" /> `,\n})\nexport class CarouselComponent<SlideData extends {id: string}> extends BaseWidgetDirective<CarouselWidget<SlideData>> {\n\t/**\n\t * Aria label for navigation indicators\n\t */\n\treadonly ariaIndicatorLabel = input<(index: number) => string>(undefined, {alias: 'auAriaIndicatorLabel'});\n\n\t/**\n\t * Aria label for previous button\n\t */\n\treadonly ariaPrevLabel = input<string>(undefined, {alias: 'auAriaPrevLabel'});\n\n\t/**\n\t * Aria label for next button\n\t */\n\treadonly ariaNextLabel = input<string>(undefined, {alias: 'auAriaNextLabel'});\n\n\t/**\n\t * Choose content direction between `ltr` and `rtl`\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#direction}\n\t * @defaultValue `'ltr'`\n\t */\n\treadonly direction = input<'ltr' | 'rtl'>(undefined, {alias: 'auDirection'});\n\n\t/**\n\t * Enables momentum scrolling\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#dragFree}\n\t * @defaultValue `false`\n\t */\n\treadonly dragFree = input(undefined, {alias: 'auDragFree', transform: auBooleanAttribute});\n\n\t/**\n\t * Drag threshold in pixels\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#dragThreshold}\n\t * @defaultValue `10`\n\t */\n\treadonly dragThreshold = input(undefined, {alias: 'auDragThreshold', transform: auNumberAttribute});\n\n\t/**\n\t * Set scroll duration when triggered by any of the API methods\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#duration}\n\t * @defaultValue `25`\n\t */\n\treadonly duration = input(undefined, {alias: 'auDuration', transform: auNumberAttribute});\n\n\t/**\n\t * Enables infinite looping\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#loop}\n\t * @defaultValue `false`\n\t */\n\treadonly loop = input(undefined, {alias: 'auLoop', transform: auBooleanAttribute});\n\n\t/**\n\t * Allow the carousel to skip scroll snaps if it's dragged vigorously\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#skipsnaps}\n\t * @defaultValue `false`\n\t */\n\treadonly skipSnaps = input(undefined, {alias: 'auSkipSnaps', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, 'previous' and 'next' navigation arrows will be visible.\n\t */\n\treadonly showNavigationArrows = input(undefined, {alias: 'auShowNavigationArrows', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, navigation indicators at the bottom of the slide will be visible.\n\t */\n\treadonly showNavigationIndicators = input(undefined, {alias: 'auShowNavigationIndicators', transform: auBooleanAttribute});\n\n\t/**\n\t * Plugins to extend the carousel with additional features\n\t * @defaultValue `[]`\n\t */\n\treadonly plugins: InputSignal<EmblaPluginType[] | undefined> = input<EmblaPluginType[]>(undefined, {alias: 'auPlugins'});\n\n\t/**\n\t * Align the slides relative to the carousel viewport\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#align}\n\t * @defaultValue `'center'`\n\t */\n\treadonly align = input<'start' | 'center' | 'end'>(undefined, {alias: 'auAlign'});\n\n\t/**\n\t * Enables choosing a custom container element which holds the slides. By default, Embla will choose the first direct child element of the root element. Provide a valid CSS selector string.\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#container}\n\t */\n\treadonly container = input<string | null>(undefined, {alias: 'auContainer'});\n\n\t/**\n\t * Clear leading and trailing empty space that causes excessive scrolling\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#containScroll}\n\t * @defaultValue `'trimSnaps'`\n\t */\n\treadonly containScroll = input<false | 'trimSnaps' | 'keepSnaps'>(undefined, {alias: 'auContainScroll'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * Class name to apply to the container of the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly containerClass = input<string>(undefined, {alias: 'auContainerClass'});\n\n\t/**\n\t * Class name to apply to each slide in the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly slideClass = input<string | ((slideContext: {id: string; index: number; active: boolean}) => string)>(undefined, {alias: 'auSlideClass'});\n\n\t/**\n\t * The aria-live attribute value for the carousel container.\n\t *\n\t * @defaultValue `'polite'`\n\t */\n\treadonly ariaLive = input<string>(undefined, {alias: 'auAriaLive'});\n\n\t/**\n\t * The data for each slide in the carousel.\n\t *\n\t * @defaultValue `[]`\n\t */\n\treadonly slidesData = input<SlideData[]>(undefined, {alias: 'auSlidesData'});\n\n\t/**\n\t * The structure of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\treadonly structure = input<SlotContent<CarouselContext<SlideData>>>(undefined, {alias: 'auStructure'});\n\n\t/**\n\t * The navigation layer of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\treadonly navigation = input<SlotContent<CarouselContext<SlideData>>>(undefined, {alias: 'auNavigation'});\n\n\t/**\n\t * The content of each slide in the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\treadonly slide = input<SlotContent<CarouselSlideContext<SlideData>>>(undefined, {alias: 'auSlide'});\n\n\treadonly slotSlideFromContent = contentChild(CarouselSlideDirective<SlideData>);\n\treadonly slotStructureFromContent = contentChild(CarouselStructureDirective<SlideData>);\n\treadonly slotNavigationFromContent = contentChild(CarouselNavigationDirective<SlideData>);\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory<CarouselWidget<SlideData>>(createCarousel, {\n\t\t\t\tafterInit: (widget) => useDirectiveForHost(widget.directives.root),\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: carouselDefaultSlotStructure,\n\t\t\t\t\tnavigation: carouselDefaultSlotNavigation,\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tslide: this.slotSlideFromContent()?.templateRef,\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\tnavigation: this.slotNavigationFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {Injectable} from '@angular/core';\nimport type {ToastProps} from './toast.gen';\nimport {ToasterService as headlessToaster} from '@agnos-ui/angular-headless';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ToasterService extends headlessToaster<Partial<ToastProps>> {}\n","import {Component, inject, ChangeDetectionStrategy, input, effect, computed} from '@angular/core';\nimport {ToastComponent} from './toast.component';\nimport {ToasterService} from './toaster.service';\nimport {UseDirective} from '@agnos-ui/angular-headless';\nimport {toastPositions} from './toast.gen';\n\n@Component({\n\tselector: '[auToaster]',\n\timports: [UseDirective, ToastComponent],\n\thost: {\n\t\tclass: 'au-toaster',\n\t\t'aria-live': 'polite',\n\t\t'aria-atomic': 'true',\n\t},\n\ttemplate: `\n\t\t<div [class]=\"'au-toaster-container toast-container ' + positionClass()\">\n\t\t\t@if (toasterService.options().closeAll && toasterService.toasts().length > 1) {\n\t\t\t\t<div class=\"d-flex position-relative align-items-end pb-2\">\n\t\t\t\t\t<button class=\"au-toaster-closeAll btn btn-secondary me-0 ms-auto pe-auto\" (click)=\"toasterService.closeAll()\">\n\t\t\t\t\t\t{{ toasterService.options().closeAllLabel || 'Close all' }}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@for (toast of toasterService.toasts(); track toast.id) {\n\t\t\t\t<div [auUse]=\"[toasterService.eventsDirective, toast.id]\">\n\t\t\t\t\t<au-component\n\t\t\t\t\t\tauToast\n\t\t\t\t\t\t[auDismissible]=\"toast.props.dismissible ?? toasterService.options().dismissible\"\n\t\t\t\t\t\t[auAnimated]=\"toast.props.animated\"\n\t\t\t\t\t\t[auAutoHide]=\"false\"\n\t\t\t\t\t\t[auClassName]=\"toast.props.className\"\n\t\t\t\t\t\t[auAriaCloseButtonLabel]=\"toast.props.ariaCloseButtonLabel\"\n\t\t\t\t\t\t[auStructure]=\"toast.props.structure\"\n\t\t\t\t\t\t(auHidden)=\"handleHidden(toast)\"\n\t\t\t\t\t\t(auVisibleChange)=\"(toast.props.onVisibleChange)\"\n\t\t\t\t\t\t[auChildren]=\"toast.props.children\"\n\t\t\t\t\t\t[auHeader]=\"toast.props.header\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToasterComponent {\n\treadonly toasterService = inject(ToasterService);\n\n\treadonly auDismissible = input(this.toasterService.options().dismissible);\n\treadonly auDuration = input(this.toasterService.options().duration);\n\treadonly auPosition = input(this.toasterService.options().position);\n\treadonly auLimit = input(this.toasterService.options().limit);\n\treadonly auPauseOnHover = input(this.toasterService.options().pauseOnHover);\n\treadonly auCloseAll = input(this.toasterService.options().closeAll);\n\treadonly auCloseAllLabel = input(this.toasterService.options().closeAllLabel);\n\n\treadonly positionClass = computed(() => toastPositions[this.toasterService.options().position]);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.toasterService.options.update((options) => ({\n\t\t\t\t...options,\n\t\t\t\tdismissible: this.auDismissible(),\n\t\t\t\tduration: this.auDuration(),\n\t\t\t\tposition: this.auPosition(),\n\t\t\t\tlimit: this.auLimit(),\n\t\t\t\tpauseOnHover: this.auPauseOnHover(),\n\t\t\t\tcloseAll: this.auCloseAll(),\n\t\t\t\tcloseAllLabel: this.auCloseAllLabel(),\n\t\t\t}));\n\t\t});\n\t}\n\n\thandleHidden(toast: any) {\n\t\tthis.toasterService.removeToast(toast.id);\n\t\ttoast.props.onHidden?.();\n\t}\n}\n","import {SlotDirective, UseDirective, UseMultiDirective} from '@agnos-ui/angular-headless';\nimport {NgModule} from '@angular/core';\nimport {\n\tModalBodyDirective,\n\tModalComponent,\n\tModalFooterDirective,\n\tModalHeaderDirective,\n\tModalStructureDirective,\n\tModalTitleDirective,\n} from './components/modal/modal.component';\nimport {\n\tPaginationComponent,\n\tPaginationEllipsisDirective,\n\tPaginationFirstDirective,\n\tPaginationLastDirective,\n\tPaginationNextDirective,\n\tPaginationNumberDirective,\n\tPaginationPagesDirective,\n\tPaginationStructureDirective,\n\tPaginationPreviousDirective,\n} from './components/pagination/pagination.component';\nimport {RatingComponent, RatingStarDirective} from './components/rating/rating.component';\nimport {SelectBadgeLabelDirective, SelectComponent, SelectItemLabelDirective} from './components/select/select.component';\nimport {AlertBodyDirective, AlertComponent, AlertStructureDirective} from './components/alert/alert.component';\nimport {\n\tAccordionDirective,\n\tAccordionItemComponent,\n\tAccordionHeaderDirective,\n\tAccordionBodyDirective,\n\tAccordionItemStructureDirective,\n} from './components/accordion/accordion.component';\nimport {\n\tSliderComponent,\n\tSliderHandleDirective,\n\tSliderLabelDirective,\n\tSliderStructureDirective,\n\tSliderTickDirective,\n} from './components/slider/slider.component';\nimport {ProgressbarComponent, ProgressbarBodyDirective, ProgressbarStructureDirective} from './components/progressbar/progressbar.component';\nimport {ToastBodyDirective, ToastComponent, ToastHeaderDirective, ToastStructureDirective} from './components/toast/toast.component';\nimport {CollapseDirective, CollapseTriggerDirective} from './components/collapse';\nimport {\n\tTreeComponent,\n\tTreeItemContentDirective,\n\tTreeItemDirective,\n\tTreeStructureDirective,\n\tTreeItemToggleDirective,\n} from './components/tree/tree.component';\nimport {CarouselComponent, CarouselNavigationDirective, CarouselSlideDirective, CarouselStructureDirective} from './components/carousel';\nimport {ToasterComponent} from './components/toast';\n\n/* istanbul ignore next */\nconst components = [\n\tSlotDirective,\n\tSelectComponent,\n\tSelectBadgeLabelDirective,\n\tSelectItemLabelDirective,\n\tUseDirective,\n\tUseMultiDirective,\n\tRatingComponent,\n\tRatingStarDirective,\n\tPaginationComponent,\n\tPaginationEllipsisDirective,\n\tPaginationFirstDirective,\n\tPaginationLastDirective,\n\tPaginationNextDirective,\n\tPaginationNumberDirective,\n\tPaginationPreviousDirective,\n\tPaginationPagesDirective,\n\tPaginationStructureDirective,\n\tModalComponent,\n\tModalStructureDirective,\n\tModalHeaderDirective,\n\tModalTitleDirective,\n\tModalBodyDirective,\n\tModalFooterDirective,\n\tAlertComponent,\n\tAlertStructureDirective,\n\tAlertBodyDirective,\n\tAccordionDirective,\n\tAccordionItemComponent,\n\tAccordionHeaderDirective,\n\tAccordionBodyDirective,\n\tAccordionItemStructureDirective,\n\tSliderComponent,\n\tSliderHandleDirective,\n\tSliderLabelDirective,\n\tSliderStructureDirective,\n\tSliderTickDirective,\n\tProgressbarComponent,\n\tProgressbarStructureDirective,\n\tProgressbarBodyDirective,\n\tToastComponent,\n\tToastStructureDirective,\n\tToastBodyDirective,\n\tToastHeaderDirective,\n\tToasterComponent,\n\tCollapseDirective,\n\tCollapseTriggerDirective,\n\tTreeComponent,\n\tTreeStructureDirective,\n\tTreeItemToggleDirective,\n\tTreeItemContentDirective,\n\tTreeItemDirective,\n\tCarouselComponent,\n\tCarouselSlideDirective,\n\tCarouselStructureDirective,\n\tCarouselNavigationDirective,\n];\n\n@NgModule({\n\tdeclarations: [],\n\timports: components,\n\texports: components,\n})\nexport class AgnosUIAngularModule {}\n","import {ApplicationRef, createComponent, EnvironmentInjector, inject, Injectable, Injector, inputBinding, outputBinding} from '@angular/core';\nimport {ModalComponent} from './modal.component';\nimport type {ModalProps} from './modal.gen';\n\n/**\n * Service to handle the opening and management of modal components.\n */\n@Injectable({providedIn: 'root'})\nexport class ModalService {\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _applicationRef = inject(ApplicationRef);\n\n\t/**\n\t * Opens a modal dialog with the specified options.\n\t *\n\t * @template Data - The type of data that the modal will handle.\n\t * @param options - The options to configure the modal.\n\t * @param injector - The injector to use when creating the modal component\n\t * @returns A promise that resolves when the modal is closed.\n\t */\n\tasync open<Data>(options: Partial<ModalProps<Data>>, injector = this._injector): Promise<any> {\n\t\tconst component = createComponent(ModalComponent, {\n\t\t\tenvironmentInjector: injector.get(EnvironmentInjector),\n\t\t\telementInjector: injector,\n\t\t\tbindings: Object.entries(options).map(([key, value]) => {\n\t\t\t\tif (key.startsWith('on')) {\n\t\t\t\t\treturn outputBinding(`au${key.substring(2)}`, value as any);\n\t\t\t\t} else {\n\t\t\t\t\treturn inputBinding(`au${key[0].toUpperCase()}${key.substring(1)}`, () => value);\n\t\t\t\t}\n\t\t\t}),\n\t\t});\n\t\ttry {\n\t\t\tthis._applicationRef.attachView(component.hostView);\n\t\t\tawait component.instance['_widget'].initialized;\n\t\t\treturn await component.instance.api.open();\n\t\t} finally {\n\t\t\tcomponent.destroy();\n\t\t}\n\t}\n}\n","/*\n * Public API Surface of @agnos-ui/angular-bootstrap\n */\nexport * from '@agnos-ui/angular-headless';\n\nexport * from './agnos-ui-angular.module';\n\nexport type {\n\tAccordionApi,\n\tAccordionItemContext,\n\tAccordionItemProps,\n\tAccordionItemState,\n\tAccordionItemWidget,\n\tAccordionProps,\n\tAccordionState,\n\tAccordionWidget,\n\tAccordionDirectives,\n\tAccordionItemApi,\n\tAccordionItemDirectives,\n} from './components/accordion';\nexport {createAccordion, getAccordionDefaultConfig, createAccordionItem, factoryCreateAccordion} from './components/accordion';\nexport * from './components/accordion';\n\nexport type {AlertContext, AlertProps, AlertState, AlertWidget, AlertApi, AlertDirectives} from './components/alert';\nexport {createAlert, getAlertDefaultConfig} from './components/alert';\nexport * from './components/alert';\n\nexport * from './components/collapse';\n\nexport type {ModalContext, ModalProps, ModalState, ModalWidget, ModalApi, ModalDirectives, ModalBeforeCloseEvent} from './components/modal';\nexport {createModal, getModalDefaultConfig, modalCloseButtonClick, modalOutsideClick} from './components/modal';\nexport * from './components/modal';\n\nexport type {\n\tPaginationContext,\n\tPaginationNumberContext,\n\tPaginationProps,\n\tPaginationState,\n\tPaginationWidget,\n\tDirectionsHrefs,\n\tPaginationApi,\n\tPaginationDirectives,\n} from './components/pagination';\nexport {createPagination, getPaginationDefaultConfig} from './components/pagination';\nexport * from './components/pagination';\n\nexport type {ProgressbarContext, ProgressbarProps, ProgressbarState, ProgressbarWidget, ProgressbarDirectives} from './components/progressbar';\nexport {createProgressbar, getProgressbarDefaultConfig} from './components/progressbar';\nexport * from './components/progressbar';\n\nexport type {RatingProps, RatingState, RatingWidget, StarContext, RatingApi, RatingDirectives} from './components/rating';\nexport {createRating, getRatingDefaultConfig} from './components/rating';\nexport * from './components/rating';\n\nexport type {\n\tSelectContext,\n\tSelectItemContext,\n\tSelectProps,\n\tSelectState,\n\tSelectWidget,\n\tItemContext,\n\tSelectApi,\n\tSelectDirectives,\n} from './components/select';\nexport {createSelect, getSelectDefaultConfig} from './components/select';\nexport * from './components/select';\n\nexport type {\n\tSliderContext,\n\tSliderProps,\n\tSliderSlotHandleContext,\n\tSliderSlotLabelContext,\n\tSliderState,\n\tSliderWidget,\n\tSliderHandle,\n\tSliderTick,\n\tHandleDisplayOptions,\n\tProgressDisplayOptions,\n\tSliderDirectives,\n} from './components/slider';\nexport {createSlider, getSliderDefaultConfig} from './components/slider';\nexport * from './components/slider';\n\nexport type {ToastContext, ToastProps, ToastState, ToastWidget, ToastApi, ToastDirectives} from './components/toast';\nexport {createToast, getToastDefaultConfig} from './components/toast';\n\nexport {defaultToasterProps, ToasterService} from './components/toast';\nexport type {ToastPositions, ToasterProps, ToasterTimer, ToasterToast} from './components/toast';\nexport * from './components/toast';\n\nexport type {TreeProps, TreeState, TreeWidget, TreeApi, TreeDirectives, TreeItem, NormalizedTreeItem} from './components/tree';\nexport {createTree, getTreeDefaultConfig} from './components/tree';\nexport * from './components/tree';\n\nexport type {CarouselWidget, CarouselProps, CarouselState, CarouselApi, CarouselDirectives} from './components/carousel';\nexport {createCarousel, getCarouselDefaultConfig} from './components/carousel';\nexport * from './components/carousel';\n\nexport * from '@agnos-ui/core-bootstrap/services/transitions';\nexport * from '@agnos-ui/core-bootstrap/types';\n\nexport type {WidgetsConfig} from './config';\nexport {widgetsConfigInjectionToken, provideWidgetsConfig, injectWidgetConfig, injectWidgetsConfig, callWidgetFactory} from './config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_c2","_c6","createModal","_c4","_c3","_c5","createPagination","_c1","createRating","_c0","createSelect","createAlert","createAccordion","_c7","_c8","_forTrack0","createSlider","createProgressbar","createToast","callWidgetFactory","createTree","createCarousel","headlessToaster","toastPositions"],"mappings":"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"}
1
+ {"version":3,"file":"agnos-ui-angular-bootstrap.mjs","sources":["../../src/components/modal/modal.gen.ts","../../src/config.ts","../../src/components/modal/modal.component.ts","../../src/components/pagination/pagination.gen.ts","../../src/components/pagination/pagination.component.ts","../../src/components/rating/rating.gen.ts","../../src/components/rating/rating.component.ts","../../src/components/select/select.gen.ts","../../src/components/select/select.component.ts","../../src/components/alert/alert.gen.ts","../../src/components/alert/alert.component.ts","../../src/components/accordion/accordion.gen.ts","../../src/components/accordion/accordion.component.ts","../../src/components/slider/slider.gen.ts","../../src/components/slider/slider.component.ts","../../src/components/progressbar/progressbar.gen.ts","../../src/components/progressbar/progressbar.component.ts","../../src/components/toast/toast.gen.ts","../../src/components/toast/toast.component.ts","../../src/components/collapse/collapse.component.ts","../../src/components/collapse/collapse.gen.ts","../../src/components/tree/tree.gen.ts","../../src/components/tree/tree.component.ts","../../src/components/carousel/carousel.gen.ts","../../src/components/carousel/carousel.component.ts","../../src/components/toast/toaster.service.ts","../../src/components/toast/toaster.component.ts","../../src/agnos-ui-angular.module.ts","../../src/components/modal/modal.service.ts","../../src/index.ts","../../src/agnos-ui-angular-bootstrap.ts"],"sourcesContent":["import {getModalDefaultConfig, createModal, modalOutsideClick, modalCloseButtonClick} from '@agnos-ui/core-bootstrap/components/modal';\nimport type {WidgetSlotContext, SlotContent, TransitionFn, Widget, PropsConfig, Directive} from '@agnos-ui/angular-headless';\n\n\n/**\n * Retrieve a shallow copy of the default modal config\n * @returns the default modal config\n */\nconst export_getModalDefaultConfig: () => ModalProps<any> = getModalDefaultConfig as any;\nexport {export_getModalDefaultConfig as getModalDefaultConfig};\n\n\n\n/**\n * Represents the context for a modal component.\n *\n * @template Data - The type of data associated with the modal.\n */\nexport interface ModalContext<Data> extends WidgetSlotContext<ModalWidget<Data>> {}\n\n/**\n * Represents the state of a modal component.\n *\n * @template Data - The type of the data associated with the modal.\n */\nexport interface ModalState<Data> {\n\t\n\t/**\n\t * Whether the backdrop is fully hidden. This can be true either because {@link ModalProps.backdrop|backdrop} is false or\n\t * because {@link ModalProps.visible|visible} is false and there is no current transition.\n\t */\n\tbackdropHidden: boolean;\n\t\n\n\t/**\n\t * Whether the modal is fully hidden.\n\t */\n\thidden: boolean;\n\t\n\n\t/**\n\t * Whether there is an active transition to either display or hide the modal.\n\t */\n\ttransitioning: boolean;\n\t\n\n\t/**\n\t * DOM element of the modal.\n\t */\n\tmodalElement: HTMLElement | null;\n\t\n\t/**\n\t * Value of the aria-label attribute to put on the close button.\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\n\t/**\n\t * Classes to add on the backdrop DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\tbackdropClass: string;\n\t\n\n\t/**\n\t * Whether to display the close button.\n\t *\n\t * @defaultValue `true`\n\t */\n\tcloseButton: boolean;\n\t\n\n\t/**\n\t * Which element should contain the modal and backdrop DOM elements.\n\t * If it is not null, the modal and backdrop DOM elements are moved to the specified container.\n\t * Otherwise, they stay where the widget is located.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * typeof window !== 'undefined' ? document.body : null\n\t * ```\n\t */\n\tcontainer: HTMLElement | null;\n\t\n\n\t/**\n\t * Whether the modal should be visible when the transition is completed.\n\t *\n\t * @defaultValue `false`\n\t */\n\tvisible: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Data to use in content slots\n\t */\n\tcontentData: Data;\n\t\n\t/**\n\t * Body of the modal.\n\t */\n\tchildren: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Footer of the modal.\n\t */\n\tfooter: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Header of the modal. The default header includes {@link ModalProps.title|title}.\n\t */\n\theader: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Structure of the modal.\n\t * The default structure uses {@link ModalProps.header|header}, {@link ModalProps.children|children} and {@link ModalProps.footer|footer}.\n\t */\n\tstructure: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Title of the modal.\n\t */\n\ttitle: SlotContent<ModalContext<Data>>;\n\t\n\t/**\n\t * Option to create a fullscreen modal, according to the bootstrap documentation.\n\t *\n\t * @defaultValue `false`\n\t */\n\tfullscreen: boolean;\n}\n\n/**\n * Interface representing the properties for a modal component.\n *\n * @template Data - The type of data that the modal will handle.\n */\nexport interface ModalProps<Data> {\n\t\n\t/**\n\t * The transition to use for the backdrop behind the modal (if present).\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\tbackdropTransition: TransitionFn;\n\t\n\n\t/**\n\t * The transition to use for the modal.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\tmodalTransition: TransitionFn;\n\t\n\t/**\n\t * Whether the modal and its backdrop (if present) should be animated when shown or hidden.\n\t *\n\t * @defaultValue `true`\n\t */\n\tanimated: boolean;\n\t\n\n\t/**\n\t * Whether a backdrop should be created behind the modal.\n\t *\n\t * @defaultValue `true`\n\t */\n\tbackdrop: boolean;\n\t\n\n\t/**\n\t * Whether the modal should be closed when clicking on the viewport outside the modal.\n\t *\n\t * @defaultValue `true`\n\t */\n\tcloseOnOutsideClick: boolean;\n\t\n\n\t/**\n\t * Event to be triggered when the modal is about to be closed (i.e. the {@link ModalApi.close|close} method was called).\n\t *\n\t * @param event - event giving access to the argument given to the {@link ModalApi.close|close} method and allowing\n\t * to cancel the close process.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonBeforeClose: (event: ModalBeforeCloseEvent) => void;\n\t\n\n\t/**\n\t * Event to be triggered when the visible property changes.\n\t *\n\t * @param visible - new value of the visible propery\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonVisibleChange: (visible: boolean) => void;\n\t\n\n\t/**\n\t * Event to be triggered when the transition is completed and the modal is not visible.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonHidden: () => void;\n\t\n\n\t/**\n\t * Event to be triggered when the transition is completed and the modal is visible.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonShown: () => void;\n\t\n\t/**\n\t * Value of the aria-label attribute to put on the close button.\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\n\t/**\n\t * Classes to add on the backdrop DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\tbackdropClass: string;\n\t\n\n\t/**\n\t * Whether to display the close button.\n\t *\n\t * @defaultValue `true`\n\t */\n\tcloseButton: boolean;\n\t\n\n\t/**\n\t * Which element should contain the modal and backdrop DOM elements.\n\t * If it is not null, the modal and backdrop DOM elements are moved to the specified container.\n\t * Otherwise, they stay where the widget is located.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * typeof window !== 'undefined' ? document.body : null\n\t * ```\n\t */\n\tcontainer: HTMLElement | null;\n\t\n\n\t/**\n\t * Whether the modal should be visible when the transition is completed.\n\t *\n\t * @defaultValue `false`\n\t */\n\tvisible: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Data to use in content slots\n\t */\n\tcontentData: Data;\n\t\n\t/**\n\t * Body of the modal.\n\t */\n\tchildren: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Footer of the modal.\n\t */\n\tfooter: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Header of the modal. The default header includes {@link ModalProps.title|title}.\n\t */\n\theader: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Structure of the modal.\n\t * The default structure uses {@link ModalProps.header|header}, {@link ModalProps.children|children} and {@link ModalProps.footer|footer}.\n\t */\n\tstructure: SlotContent<ModalContext<Data>>;\n\t\n\n\t/**\n\t * Title of the modal.\n\t */\n\ttitle: SlotContent<ModalContext<Data>>;\n\t\n\t/**\n\t * Option to create a fullscreen modal, according to the bootstrap documentation.\n\t *\n\t * @defaultValue `false`\n\t */\n\tfullscreen: boolean;\n}\n\n/**\n * Interface representing the API for a modal component.\n *\n * @template Data - The type of data associated with the modal.\n */\nexport interface ModalApi<Data> {\n\t\n\t/**\n\t * Method to change some modal properties.\n\t */\n\tpatch: ModalWidget<Data>['patch'];\n\t\n\t/**\n\t * Closes the modal with the given result.\n\t *\n\t * @param result - result of the modal, as passed in the {@link ModalBeforeCloseEvent.result|result} property of the event passed to the\n\t * {@link ModalProps.onBeforeClose|onBeforeClose} event handler (and possibly changed by it) and resolved by the promise returned by the {@link ModalApi.open|open} method.\n\t */\n\tclose(result?: any): void;\n\t\n\n\t/**\n\t * Opens the modal and returns a promise that is resolved when the modal is closed.\n\t * The resolved value is the result passed to the {@link ModalApi.close|close} method and possibly changed by the\n\t * {@link ModalProps.onBeforeClose|onBeforeClose} event handler\n\t */\n\topen(): Promise<any>;\n}\n\n\n\n/**\n * Represents a modal widget with specific data type.\n *\n * @template Data - The type of data that the modal widget will handle.\n */\nexport type ModalWidget<Data> = Widget<ModalProps<Data>, ModalState<Data>, ModalApi<Data>, ModalDirectives>;\n\n\n\n/**\n * Creates a new modal widget instance.\n * @param config - config of the modal, either as a store or as an object containing values or stores.\n * @returns a new modal widget instance\n */\nconst export_createModal: <Data>(config?: PropsConfig<ModalProps<Data>>) => ModalWidget<Data> = createModal as any;\nexport {export_createModal as createModal};\n\n\n\n/**\n * Value present in the {@link ModalBeforeCloseEvent.result|result} property of the {@link ModalProps.onBeforeClose|onBeforeClose} event\n * and returned by the {@link ModalApi.open|open} method, when the modal is closed by a click inside the viewport but outside the modal.\n */\nconst export_modalOutsideClick: typeof modalOutsideClick = modalOutsideClick as any;\nexport {export_modalOutsideClick as modalOutsideClick};\n\n\n\n/**\n * Value present in the {@link ModalBeforeCloseEvent.result|result} property of the {@link ModalProps.onBeforeClose|onBeforeClose} event\n * and returned by the {@link ModalApi.open|open} method, when the modal is closed by a click on the close button.\n */\nconst export_modalCloseButtonClick: typeof modalCloseButtonClick = modalCloseButtonClick as any;\nexport {export_modalCloseButtonClick as modalCloseButtonClick};\n\n/**\n * Type of the parameter of {@link ModalProps.onBeforeClose|onBeforeClose}.\n */\nexport interface ModalBeforeCloseEvent {\n\t\n\t/**\n\t * Result of the modal, which is the value passed to the {@link ModalApi.close|close} method\n\t * and later resolved by the promise returned by the {@link ModalApi.open|open} method.\n\t * If needed, it can be changed from the {@link ModalProps.onBeforeClose|onBeforeClose} event handler.\n\t */\n\tresult: any;\n\t\n\n\t/**\n\t * Whether to cancel the close of the modal.\n\t * It can be changed from the {@link ModalProps.onBeforeClose|onBeforeClose} event handler.\n\t */\n\tcancel: boolean;\n}\n\n/**\n * Directives of the modal widget.\n */\nexport interface ModalDirectives {\n\t\n\t/**\n\t * Directive to put on the modal DOM element.\n\t */\n\tmodalDirective: Directive;\n\t\n\n\t/**\n\t * Directive to put on the backdrop DOM element.\n\t */\n\tbackdropDirective: Directive;\n\t\n\n\t/**\n\t * Portal directive to put on the modal DOM element.\n\t */\n\tmodalPortalDirective: Directive;\n\t\n\n\t/**\n\t * Portal directive to put on the backdrop DOM element.\n\t */\n\tbackdropPortalDirective: Directive;\n\t\n\n\t/**\n\t * Directive that adds all the necessary attributes to the close button\n\t */\n\tcloseButtonDirective: Directive;\n\t\n\t/**\n\t * Directive to apply to the dialog element when using the native {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement | HTMLDialogElement}\n\t */\n\tdialogDirective: Directive;\n}\n\n","import type {\n\tAngularWidget,\n\tIsSlotContent,\n\tPartial2Levels,\n\tSlotContent,\n\tWidget,\n\tWidgetFactory,\n\tWidgetProps,\n\tWidgetsConfigStore,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tBaseWidgetDirective,\n} from '@agnos-ui/angular-headless';\nimport {widgetsConfigFactory} from '@agnos-ui/angular-headless';\nimport type {BootstrapWidgetsConfig} from '@agnos-ui/core-bootstrap/config';\nimport type {ReadableSignal} from '@amadeus-it-group/tansu';\nimport type {FactoryProvider, TemplateRef} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\n\nimport type {WidgetsConfig} from './config.gen';\nexport type {WidgetsConfig};\n\ntype AdaptParentConfig = (config: Partial2Levels<WidgetsConfig>) => Partial2Levels<WidgetsConfig>;\ntype InjectWidgetsConfig = (config?: Partial2Levels<WidgetsConfig>) => WidgetsConfigStore<WidgetsConfig>;\n\nconst widgetFactories: {\n\twidgetsConfigInjectionToken: InjectionToken<WidgetsConfigStore<WidgetsConfig>>;\n\tprovideWidgetsConfig: (adaptParentConfig?: AdaptParentConfig) => FactoryProvider;\n\tinjectWidgetConfig: <N extends keyof BootstrapWidgetsConfig>(widgetName: N) => ReadableSignal<Partial<WidgetsConfig[N]> | undefined>;\n\tinjectWidgetsConfig: InjectWidgetsConfig;\n\n\tcallWidgetFactory: <W extends Widget<object, object, object, object>>(\n\t\tfactory: WidgetFactory<W>,\n\t\toptions?: {\n\t\t\twidgetName?: keyof BootstrapWidgetsConfig | null | undefined;\n\t\t\tdefaultConfig?: Partial<WidgetProps<W>> | ReadableSignal<Partial<WidgetProps<W>> | undefined> | 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} = widgetsConfigFactory<WidgetsConfig>(new InjectionToken<WidgetsConfigStore<WidgetsConfig>>('bootstrapWidgetsConfig')) as any;\n\n/**\n * Dependency Injection token which can be used to provide or inject the widgets default configuration store.\n */\nexport const widgetsConfigInjectionToken = widgetFactories.widgetsConfigInjectionToken;\n\n/**\n * Creates a provider of widgets default configuration that inherits from any widgets default configuration already defined at an upper level\n * in the Angular dependency injection system. It contains its own set of widgets configuration properties that override the same properties form\n * the parent configuration.\n *\n * @remarks\n * The configuration is computed from the parent configuration in two steps:\n * - first step: the parent configuration is transformed by the adaptParentConfig function (if specified).\n * If adaptParentConfig is not specified, this step is skipped.\n * - second step: the configuration from step 1 is merged (2-levels deep) with the own$ store. The own$ store initially contains\n * 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 * {@link injectWidgetsConfig}.\n *\n * @param adaptParentConfig - optional function that receives a 2-levels copy of the widgets default configuration\n * defined at an upper level in the Angular dependency injection system (or an empty object if there is none) and returns the widgets\n * default configuration to be used.\n * It is called only if the configuration is needed, and was not yet computed for the current value of the parent configuration.\n * 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 * 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 * Angular dependency injection system.\n *\n * @returns DI provider to be included a list of `providers` (for example at a component level or\n * any other level of the Angular dependency injection system)\n *\n * @example\n * ```typescript\n * @Component({\n * // ...\n * providers: [\n * provideWidgetsConfig((parentConfig) => {\n * // first step configuration: transforms the parent configuration\n * parentConfig.rating = parentConfig.rating ?? {};\n * parentConfig.rating.className = `${parentConfig.rating.className ?? ''} my-rating-extra-class`\n * return parentConfig;\n * })\n * ]\n * })\n * class MyComponent {\n * widgetsConfig = injectWidgetsConfig();\n * constructor() {\n * this.widgetsConfig.set({\n * // second step configuration: overrides the parent configuration\n * rating: {\n * slotStar: MyCustomSlotStar\n * }\n * });\n * }\n * // ...\n * }\n * ```\n */\nexport const provideWidgetsConfig = widgetFactories.provideWidgetsConfig;\n\n/**\n * Returns the widgets default configuration store that was provided in the current injection context.\n * Throws if the no widgets default configuration store was provided.\n *\n * @param defaultConfig - values to set as soon as the config is injected\n * @remarks\n * This function must be called from an injection context, such as a constructor, a factory function, a field initializer or\n * a function used with {@link https://angular.io/api/core/runInInjectionContext | runInInjectionContext}.\n *\n * @returns the widgets default configuration store.\n */\nexport const injectWidgetsConfig = widgetFactories.injectWidgetsConfig;\n\n/**\n * Injects the configuration for a specific widget.\n *\n * @template N - The key of the widget configuration in the `Config` type.\n * @param widgetName - The name of the widget whose configuration is to be injected.\n * @returns A `ReadableSignal` that provides a partial configuration of the specified widget or `undefined` if the configuration is not available.\n */\nexport const injectWidgetConfig = widgetFactories.injectWidgetConfig;\n\n/**\n * Creates and initializes a widget using the provided factory and configuration options.\n *\n * The resulting widget can be easily hooked into the lifecycle of an Angular component through {@link BaseWidgetDirective}.\n *\n * @template W - The type of the widget.\n * @param factory - The factory function to create the widget.\n * @param options - The options for creating the widget.\n * @param options.defaultConfig - The default configuration for the widget.\n * @param options.events - The event handlers for the widget.\n * @param options.slotTemplates - A function that returns the slot templates for the widget.\n * @param options.slotChildren - A function that returns the slot children for the widget.\n * @param options.afterInit - A callback function to be called after the widget is initialized.\n * @returns The initialized widget.\n */\nexport const callWidgetFactory = widgetFactories.callWidgetFactory;\n","import type {SlotContent, TransitionFn} from '@agnos-ui/angular-headless';\nimport {BaseWidgetDirective, ComponentTemplate, SlotDirective, UseDirective, UseMultiDirective, auBooleanAttribute} from '@agnos-ui/angular-headless';\nimport type {ModalContext, ModalWidget, ModalBeforeCloseEvent} from './modal.gen';\nimport {createModal} from './modal.gen';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, output, viewChild, contentChild} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\n\n/**\n * Directive to provide the slot structure for the modal widget.\n * This directive provides a template reference for the {@link ModalContext<Data>}.\n */\n@Directive({selector: 'ng-template[auModalStructure]'})\nexport class ModalStructureDirective<Data> {\n\tpublic templateRef = inject(TemplateRef<ModalContext<Data>>);\n\tstatic ngTemplateContextGuard<Data>(_dir: ModalStructureDirective<Data>, context: unknown): context is ModalContext<Data> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide the slot header for the modal widget.\n * This directive provides a template reference for the {@link ModalContext<Data>}.\n */\n@Directive({selector: 'ng-template[auModalHeader]'})\nexport class ModalHeaderDirective<Data> {\n\tpublic templateRef = inject(TemplateRef<ModalContext<Data>>);\n\tstatic ngTemplateContextGuard<Data>(_dir: ModalHeaderDirective<Data>, context: unknown): context is ModalContext<Data> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide the slot title for the modal widget.\n * This directive provides a template reference for the {@link ModalContext<Data>}.\n */\n@Directive({selector: 'ng-template[auModalTitle]'})\nexport class ModalTitleDirective<Data> {\n\tpublic templateRef = inject(TemplateRef<ModalContext<Data>>);\n\tstatic ngTemplateContextGuard<Data>(_dir: ModalTitleDirective<Data>, context: unknown): context is ModalContext<Data> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide the default slot for the modal widget.\n * This directive provides a template reference for the {@link ModalContext<Data>}.\n */\n@Directive({selector: 'ng-template[auModalBody]'})\nexport class ModalBodyDirective<Data> {\n\tpublic templateRef = inject(TemplateRef<ModalContext<Data>>);\n\tstatic ngTemplateContextGuard<Data>(_dir: ModalBodyDirective<Data>, context: unknown): context is ModalContext<Data> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide the slot footer for the modal widget.\n * This directive provides a template reference for the {@link ModalContext<Data>}.\n */\n@Directive({selector: 'ng-template[auModalFooter]'})\nexport class ModalFooterDirective<Data> {\n\tpublic templateRef = inject(TemplateRef<ModalContext<Data>>);\n\tstatic ngTemplateContextGuard<Data>(_dir: ModalFooterDirective<Data>, context: unknown): context is ModalContext<Data> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Component containing the default slots for the modal.\n */\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, ModalHeaderDirective, ModalStructureDirective, UseDirective],\n\ttemplate: `\n\t\t<ng-template auModalHeader #header let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t<h5 class=\"modal-title\">\n\t\t\t\t<ng-template [auSlot]=\"state.title()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t</h5>\n\t\t\t@if (state.closeButton()) {\n\t\t\t\t<button class=\"btn-close\" [auUse]=\"directives.closeButtonDirective\"></button>\n\t\t\t}\n\t\t</ng-template>\n\t\t<ng-template auModalStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t@if (state.title()) {\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<ng-template [auSlot]=\"state.header()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-template [auSlot]=\"state.children()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t</div>\n\t\t\t@if (state.footer()) {\n\t\t\t\t<div class=\"modal-footer\">\n\t\t\t\t\t<ng-template [auSlot]=\"state.footer()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-template>\n\t`,\n})\nclass ModalDefaultSlotsComponent<Data> {\n\treadonly header = viewChild.required<TemplateRef<ModalContext<Data>>>('header');\n\treadonly structure = viewChild.required<TemplateRef<ModalContext<Data>>>('structure');\n}\n\n/**\n * Default slot for modal header.\n */\nexport const modalDefaultSlotHeader: SlotContent<ModalContext<any>> = new ComponentTemplate(ModalDefaultSlotsComponent, 'header');\n\n/**\n * Default slot for modal structure.\n */\nexport const modalDefaultSlotStructure: SlotContent<ModalContext<any>> = new ComponentTemplate(ModalDefaultSlotsComponent, 'structure');\n\n/**\n * Modal component.\n */\n@Component({\n\tselector: '[auModal]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseMultiDirective, SlotDirective],\n\ttemplate: `\n\t\t<ng-template #content><ng-content /></ng-template>\n\t\t@if (!state.backdropHidden()) {\n\t\t\t<div class=\"modal-backdrop\" [auUseMulti]=\"[directives.backdropPortalDirective, directives.backdropDirective]\"></div>\n\t\t}\n\t\t@if (!state.hidden()) {\n\t\t\t<div class=\"modal d-block\" [auUseMulti]=\"[directives.modalPortalDirective, directives.modalDirective]\">\n\t\t\t\t<div class=\"modal-dialog {{ state.fullscreen() ? 'modal-fullscreen' : '' }}\">\n\t\t\t\t\t<div class=\"modal-content\">\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t`,\n})\nexport class ModalComponent<Data> extends BaseWidgetDirective<ModalWidget<Data>> {\n\t/**\n\t * Whether the modal and its backdrop (if present) should be animated when shown or hidden.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * The transition to use for the backdrop behind the modal (if present).\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\treadonly backdropTransition = input<TransitionFn>(undefined, {alias: 'auBackdropTransition'});\n\n\t/**\n\t * The transition to use for the modal.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\treadonly modalTransition = input<TransitionFn>(undefined, {alias: 'auModalTransition'});\n\n\t/**\n\t * Whether the modal should be visible when the transition is completed.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly visible = input(undefined, {alias: 'auVisible', transform: auBooleanAttribute});\n\n\t/**\n\t * Whether a backdrop should be created behind the modal.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly backdrop = input(undefined, {alias: 'auBackdrop', transform: auBooleanAttribute});\n\n\t/**\n\t * Whether the modal should be closed when clicking on the viewport outside the modal.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly closeOnOutsideClick = input(undefined, {alias: 'auCloseOnOutsideClick', transform: auBooleanAttribute});\n\n\t/**\n\t * Which element should contain the modal and backdrop DOM elements.\n\t * If it is not null, the modal and backdrop DOM elements are moved to the specified container.\n\t * Otherwise, they stay where the widget is located.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * typeof window !== 'undefined' ? document.body : null\n\t * ```\n\t */\n\treadonly container = input<HTMLElement | null>(undefined, {alias: 'auContainer'});\n\n\t/**\n\t * Value of the aria-label attribute to put on the close button.\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\treadonly ariaCloseButtonLabel = input<string>(undefined, {alias: 'auAriaCloseButtonLabel'});\n\n\t/**\n\t * Classes to add on the backdrop DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly backdropClass = input<string>(undefined, {alias: 'auBackdropClass'});\n\n\t/**\n\t * Whether to display the close button.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly closeButton = input(undefined, {alias: 'auCloseButton', transform: auBooleanAttribute});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * Option to create a fullscreen modal, according to the bootstrap documentation.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly fullscreen = input(undefined, {alias: 'auFullscreen', transform: auBooleanAttribute});\n\n\t/**\n\t * Structure of the modal.\n\t * The default structure uses {@link ModalProps.header|header}, {@link ModalProps.children|children} and {@link ModalProps.footer|footer}.\n\t */\n\treadonly structure = input<SlotContent<ModalContext<Data>>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(ModalStructureDirective);\n\n\t/**\n\t * Header of the modal. The default header includes {@link ModalProps.title|title}.\n\t */\n\treadonly header = input<SlotContent<ModalContext<Data>>>(undefined, {alias: 'auHeader'});\n\treadonly slotHeaderFromContent = contentChild(ModalHeaderDirective);\n\n\t/**\n\t * Title of the modal.\n\t */\n\treadonly title = input<SlotContent<ModalContext<Data>>>(undefined, {alias: 'auTitle'});\n\treadonly slotTitleFromContent = contentChild(ModalTitleDirective);\n\n\t/**\n\t * Body of the modal.\n\t */\n\treadonly children = input<SlotContent<ModalContext<Data>>>(undefined, {alias: 'auChildren'});\n\treadonly slotDefaultFromContent = contentChild(ModalBodyDirective);\n\n\t/**\n\t * Footer of the modal.\n\t */\n\treadonly footer = input<SlotContent<ModalContext<Data>>>(undefined, {alias: 'auFooter'});\n\treadonly slotFooterFromContent = contentChild(ModalFooterDirective);\n\n\t/**\n\t * Data to use in content slots\n\t */\n\treadonly contentData = input<Data>(undefined, {alias: 'auContentData'});\n\n\t/**\n\t * Event to be triggered when the visible property changes.\n\t *\n\t * @param visible - new value of the visible propery\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly visibleChange = output<boolean>({alias: 'auVisibleChange'});\n\n\t/**\n\t * Event to be triggered when the modal is about to be closed (i.e. the {@link ModalApi.close|close} method was called).\n\t *\n\t * @param event - event giving access to the argument given to the {@link ModalApi.close|close} method and allowing\n\t * to cancel the close process.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly beforeClose = output<ModalBeforeCloseEvent>({alias: 'auBeforeClose'});\n\n\t/**\n\t * Event to be triggered when the transition is completed and the modal is not visible.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly hidden = output<void>({alias: 'auHidden'});\n\n\t/**\n\t * Event to be triggered when the transition is completed and the modal is visible.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly shown = output<void>({alias: 'auShown'});\n\n\treadonly slotChildren = viewChild<TemplateRef<void>>('content');\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory<ModalWidget<Data>>(createModal, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\theader: modalDefaultSlotHeader,\n\t\t\t\t\tstructure: modalDefaultSlotStructure,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonShown: () => this.shown.emit(),\n\t\t\t\t\tonHidden: () => this.hidden.emit(),\n\t\t\t\t\tonBeforeClose: (event) => this.beforeClose.emit(event),\n\t\t\t\t\tonVisibleChange: (event) => this.visibleChange.emit(event),\n\t\t\t\t},\n\t\t\t\tslotTemplates: () =>\n\t\t\t\t\t({\n\t\t\t\t\t\tchildren: this.slotDefaultFromContent()?.templateRef,\n\t\t\t\t\t\tfooter: this.slotFooterFromContent()?.templateRef,\n\t\t\t\t\t\theader: this.slotHeaderFromContent()?.templateRef,\n\t\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\t\ttitle: this.slotTitleFromContent()?.templateRef,\n\t\t\t\t\t}) as any,\n\t\t\t\tslotChildren: () => this.slotChildren(),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {getPaginationDefaultConfig, createPagination} from '@agnos-ui/core-bootstrap/components/pagination';\nimport type {WidgetSlotContext, SlotContent, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default Pagination config\n * @returns the default Pagination config\n */\nconst export_getPaginationDefaultConfig: () => PaginationProps = getPaginationDefaultConfig as any;\nexport {export_getPaginationDefaultConfig as getPaginationDefaultConfig};\n\n\n\n/**\n * A type for the slot context of the pagination widget\n */\nexport interface PaginationContext extends WidgetSlotContext<PaginationWidget> {}\n\n\n\n/**\n * A type for the slot context of the pagination widget when the slot is the number label\n */\nexport interface PaginationNumberContext extends PaginationContext {\n\t/**\n\t * Displayed page\n\t */\n\tdisplayedPage: number;\n}\n\n/**\n * Represents the state of a pagination component.\n */\nexport interface PaginationState {\n\t\n\t/**\n\t * The number of pages.\n\t */\n\tpageCount: number;\n\t\n\t/**\n\t * The current pages, the number in the Array is the number of the page.\n\t */\n\tpages: number[];\n\t\n\t/**\n\t * true if the previous link need to be disabled\n\t */\n\tpreviousDisabled: boolean;\n\t\n\t/**\n\t * true if the next link need to be disabled\n\t */\n\tnextDisabled: boolean;\n\t\n\t/**\n\t * The label for each \"Page\" page link.\n\t */\n\tpagesLabel: string[];\n\t\n\n\t/** The hrefs for each \"Page\" page link */\n\tpagesHrefs: string[];\n\t\n\n\t/** The hrefs for the direction links */\n\tdirectionsHrefs: DirectionsHrefs;\n\t\n\n\t/** The aria-live text */\n\tariaLiveLabelText: string;\n\t\n\t/**\n\t * The current page.\n\t *\n\t * Page numbers start with `1`.\n\t *\n\t * @defaultValue `1`\n\t */\n\tpage: number;\n\t // value of the current/init page to display\n\n\t/**\n\t * The label for the nav element.\n\t *\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Page navigation'`\n\t */\n\tariaLabel: string;\n\t\n\n\t/**\n\t * The label for the \"active\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * '(current)'\n\t * ```\n\t */\n\tactiveLabel: string;\n\t\n\n\t/**\n\t * The label for the \"First\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for first page'\n\t * ```\n\t */\n\tariaFirstLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Previous\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for previous page'\n\t * ```\n\t */\n\tariaPreviousLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Next\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for next page'\n\t * ```\n\t */\n\tariaNextLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Last\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for last page'\n\t * ```\n\t */\n\tariaLastLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Ellipsis\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Ellipsis page element'`\n\t */\n\tariaEllipsisLabel: string;\n\t\n\n\t/**\n\t * If `true`, pagination links will be disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true`, the \"Next\" and \"Previous\" page links are shown.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdirectionLinks: boolean;\n\t\n\n\t/**\n\t * If `true`, the \"First\" and \"Last\" page links are shown.\n\t *\n\t * @defaultValue `false`\n\t */\n\tboundaryLinks: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to use for the structure of the pagination component\n\t * The default structure uses {@link PaginationProps.ellipsisLabel|ellipsisLabel}, {@link PaginationProps.firstPageLabel|firstPageLabel},\n\t * {@link PaginationProps.previousPageLabel|previousPageLabel}, {@link PaginationProps.nextPageLabel|nextPageLabel},\n\t * {@link PaginationProps.lastPageLabel|lastPageLabel}, {@link PaginationProps.pagesDisplay|pagesDisplay},\n\t * {@link PaginationProps.numberLabel|numberLabel},\n\t */\n\tstructure: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the ellipsis slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'…'`\n\t */\n\tellipsisLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the first slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'«'`\n\t */\n\tfirstPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the previous slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'‹'`\n\t */\n\tpreviousPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the next slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'›'`\n\t */\n\tnextPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the last slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'»'`\n\t */\n\tlastPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the pages slot\n\t * To use to customize the pages view\n\t * override any configuration parameters provided for this\n\t */\n\tpagesDisplay: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the number slot\n\t * override any configuration parameters provided for this\n\t * for I18n, we suggest to use the global configuration\n\t * @param displayedPage - The current page number\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({displayedPage}: PaginationNumberContext) => `${displayedPage}`\n\t * ```\n\t */\n\tnumberLabel: SlotContent<PaginationNumberContext>;\n\t\n\n\t/**\n\t * The pagination display size.\n\t *\n\t * Bootstrap currently supports small and large sizes.\n\t *\n\t * @defaultValue `null`\n\t */\n\tsize: 'sm' | 'lg' | null;\n}\n\n/**\n * Represents the properties for the Pagination component.\n */\nexport interface PaginationProps {\n\t\n\t/**\n\t * The number of items in your paginated collection.\n\t *\n\t * Note, that this is not the number of pages. Page numbers are calculated dynamically based on\n\t * `collectionSize` and `pageSize`.\n\t *\n\t * Ex. if you have 100 items in your collection and displaying 20 items per page, you'll end up with 5 pages.\n\t *\n\t * Whatever the collectionSize the page number is of minimum 1.\n\t *\n\t * @defaultValue `0`\n\t */\n\tcollectionSize: number;\n\t\n\n\t/**\n\t * The number of items per page.\n\t * @remarks min value is 1\n\t *\n\t * @defaultValue `10`\n\t */\n\tpageSize: number;\n\t\n\n\t/**\n\t * An event fired when the page is changed.\n\t *\n\t * Event payload is the number of the newly selected page.\n\t *\n\t * Page numbers start with `1`.\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonPageChange: (page: number) => void;\n\t\n\n\t/**\n\t * pagesFactory returns a function computing the array of pages to be displayed\n\t * as number (-1 are treated as ellipsis).\n\t * Use Page slot to customize the pages view and not this\n\t * @param page - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (_page: number, pageCount: number) => {\n\t * \t\tconst pages: number[] = [];\n\t * \t\tfor (let i = 1; i <= pageCount; i++) {\n\t * \t\t\tpages.push(i);\n\t * \t\t}\n\t * \t\treturn pages;\n\t * \t}\n\t * ```\n\t */\n\tpagesFactory: (page: number, pageCount: number) => number[];\n\t\n\n\t/**\n\t * Provide the label for each \"Page\" page button.\n\t * This is used for accessibility purposes.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t * @param processPage - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (processPage: number, pageCount: number) => `Page ${processPage} of ${pageCount}`\n\t * ```\n\t */\n\tariaPageLabel: (processPage: number, pageCount: number) => string;\n\t\n\n\t/**\n\t * Provide the label for the aria-live element\n\t * This is used for accessibility purposes.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t * @param currentPage - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (currentPage: number) => `Current page is ${currentPage}`\n\t * ```\n\t */\n\tariaLiveLabel: (currentPage: number, pageCount: number) => string;\n\t\n\n\t/**\n\t * Factory function providing the href for a \"Page\" page anchor,\n\t * based on the current page number\n\t * @param pageNumber - The index to use in the link\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (_page: number) => PAGE_LINK_DEFAULT\n\t * ```\n\t */\n\tpageLink: (pageNumber: number) => string;\n\t\n\t/**\n\t * The current page.\n\t *\n\t * Page numbers start with `1`.\n\t *\n\t * @defaultValue `1`\n\t */\n\tpage: number;\n\t // value of the current/init page to display\n\n\t/**\n\t * The label for the nav element.\n\t *\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Page navigation'`\n\t */\n\tariaLabel: string;\n\t\n\n\t/**\n\t * The label for the \"active\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * '(current)'\n\t * ```\n\t */\n\tactiveLabel: string;\n\t\n\n\t/**\n\t * The label for the \"First\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for first page'\n\t * ```\n\t */\n\tariaFirstLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Previous\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for previous page'\n\t * ```\n\t */\n\tariaPreviousLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Next\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for next page'\n\t * ```\n\t */\n\tariaNextLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Last\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for last page'\n\t * ```\n\t */\n\tariaLastLabel: string;\n\t\n\n\t/**\n\t * The label for the \"Ellipsis\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Ellipsis page element'`\n\t */\n\tariaEllipsisLabel: string;\n\t\n\n\t/**\n\t * If `true`, pagination links will be disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true`, the \"Next\" and \"Previous\" page links are shown.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdirectionLinks: boolean;\n\t\n\n\t/**\n\t * If `true`, the \"First\" and \"Last\" page links are shown.\n\t *\n\t * @defaultValue `false`\n\t */\n\tboundaryLinks: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to use for the structure of the pagination component\n\t * The default structure uses {@link PaginationProps.ellipsisLabel|ellipsisLabel}, {@link PaginationProps.firstPageLabel|firstPageLabel},\n\t * {@link PaginationProps.previousPageLabel|previousPageLabel}, {@link PaginationProps.nextPageLabel|nextPageLabel},\n\t * {@link PaginationProps.lastPageLabel|lastPageLabel}, {@link PaginationProps.pagesDisplay|pagesDisplay},\n\t * {@link PaginationProps.numberLabel|numberLabel},\n\t */\n\tstructure: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the ellipsis slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'…'`\n\t */\n\tellipsisLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the first slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'«'`\n\t */\n\tfirstPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the previous slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'‹'`\n\t */\n\tpreviousPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the next slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'›'`\n\t */\n\tnextPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the last slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'»'`\n\t */\n\tlastPageLabel: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the pages slot\n\t * To use to customize the pages view\n\t * override any configuration parameters provided for this\n\t */\n\tpagesDisplay: SlotContent<PaginationContext>;\n\t\n\n\t/**\n\t * The template to use for the number slot\n\t * override any configuration parameters provided for this\n\t * for I18n, we suggest to use the global configuration\n\t * @param displayedPage - The current page number\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({displayedPage}: PaginationNumberContext) => `${displayedPage}`\n\t * ```\n\t */\n\tnumberLabel: SlotContent<PaginationNumberContext>;\n\t\n\n\t/**\n\t * The pagination display size.\n\t *\n\t * Bootstrap currently supports small and large sizes.\n\t *\n\t * @defaultValue `null`\n\t */\n\tsize: 'sm' | 'lg' | null;\n}\n\n\n\n/**\n * Represents a pagination widget component.\n *\n * This type defines a widget that handles pagination functionality,\n * including properties, state, api and directives specific to pagination.\n */\nexport type PaginationWidget = Widget<PaginationProps, PaginationState, PaginationApi, PaginationDirectives>;\n\n\n\n/**\n * Create a PaginationWidget with given config props\n * @param config - an optional alert config\n * @returns a PaginationWidget\n */\nconst export_createPagination: WidgetFactory<PaginationWidget> = createPagination as any;\nexport {export_createPagination as createPagination};\n\n/**\n * Interface representing the hrefs for pagination navigation links.\n */\nexport interface DirectionsHrefs {\n\t\n\t/**\n\t * The href for the 'Previous' navigation link\n\t */\n\tprevious: string;\n\t\n\t/**\n\t * The href for the 'Next' direction link\n\t */\n\tnext: string;\n}\n\n/**\n * Interface representing pagination API for navigating through pages.\n */\nexport interface PaginationApi {\n\t\n\t/**\n\t * To \"go\" to a specific page\n\t * @param page - The page number to select\n\t */\n\tselect(page: number): void;\n\t\n\t/**\n\t * To \"go\" to the first page\n\t */\n\tfirst(): void;\n\t\n\t/**\n\t * To \"go\" to the previous page\n\t */\n\tprevious(): void;\n\t\n\t/**\n\t * To \"go\" to the next page\n\t */\n\tnext(): void;\n\t\n\t/**\n\t * To \"go\" to the last page\n\t */\n\tlast(): void;\n}\n\n/**\n * Interface representing the directives for pagination components.\n */\nexport interface PaginationDirectives {\n\t\n\t/**\n\t * A directive to be applied to each page link\n\t * This will handle the click, tabindex and aria attributes\n\t */\n\tpageLink: Directive<{\n\t\tpage: number;\n\t}>;\n\t\n\n\t/**\n\t * A directive to be applied on the previous link\n\t */\n\tpagePrev: Directive;\n\t\n\n\t/**\n\t * A directive to be applied on the first link\n\t */\n\tpageFirst: Directive;\n\t\n\n\t/**\n\t * A directive to be applied on the next link\n\t */\n\tpageNext: Directive;\n\t\n\n\t/**\n\t * A directive to be applied on the Last link\n\t */\n\tpageLast: Directive;\n}\n\n","import type {SlotContent} from '@agnos-ui/angular-headless';\nimport {BaseWidgetDirective, ComponentTemplate, SlotDirective, UseDirective, auBooleanAttribute, auNumberAttribute} from '@agnos-ui/angular-headless';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tDirective,\n\tTemplateRef,\n\tViewEncapsulation,\n\tinject,\n\tinput,\n\toutput,\n\tviewChild,\n\tcontentChild,\n} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\nimport type {PaginationContext, PaginationNumberContext, PaginationWidget} from './pagination.gen';\nimport {createPagination} from './pagination.gen';\n\n/**\n * A directive to use to give the 'ellipsis' link template to the pagination component\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationEllipsis]'})\nexport class PaginationEllipsisDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationEllipsisDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the 'first' link template to the pagination component\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationFirst]'})\nexport class PaginationFirstDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationFirstDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the 'last' link template to the pagination component\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationLast]'})\nexport class PaginationLastDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationLastDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the 'next' link template to the pagination component\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationNext]'})\nexport class PaginationNextDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationNextDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the page 'number' template to the pagination component\n * This directive provides a template reference for the {@link PaginationNumberContext}.\n */\n@Directive({selector: 'ng-template[auPaginationNumber]'})\nexport class PaginationNumberDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationNumberContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationNumberDirective, context: unknown): context is PaginationNumberContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the 'previous' link template to the pagination component\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationPrevious]'})\nexport class PaginationPreviousDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationPreviousDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * A directive to use to give the 'Pages' template for the Pages slot\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationPages]'})\nexport class PaginationPagesDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationPagesDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide the slot structure for the pagination widget.\n * This directive provides a template reference for the {@link PaginationContext}.\n */\n@Directive({selector: 'ng-template[auPaginationStructure]'})\nexport class PaginationStructureDirective {\n\tpublic templateRef = inject(TemplateRef<PaginationContext>);\n\tstatic ngTemplateContextGuard(_dir: PaginationStructureDirective, context: unknown): context is PaginationContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\timports: [SlotDirective, PaginationPagesDirective, PaginationStructureDirective, UseDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<ng-template auPaginationPages #pages let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t@for (page of state.pages(); track page; let i = $index) {\n\t\t\t\t<li class=\"page-item\" [class.active]=\"page === state.page()\" [class.disabled]=\"page === -1 || state.disabled()\">\n\t\t\t\t\t@if (page === -1) {\n\t\t\t\t\t\t<div class=\"page-link au-ellipsis\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.ellipsisLabel()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"visually-hidden\">{{ state.ariaEllipsisLabel() }}</span>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<a class=\"page-link\" [auUse]=\"[directives.pageLink, {page}]\">\n\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.numberLabel()\" [auSlotProps]=\"{state, api, directives, displayedPage: page}\" />\n\t\t\t\t\t\t\t@if (state.page() === page) {\n\t\t\t\t\t\t\t\t<span class=\"visually-hidden\">{{ state.activeLabel() }}</span>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ng-template>\n\t\t<ng-template auPaginationStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t<ul [class]=\"'au-pagination pagination' + (state.size() ? ' pagination-' + state.size() : '') + ' ' + state.className()\">\n\t\t\t\t@if (state.boundaryLinks()) {\n\t\t\t\t\t<li class=\"page-item\" [class.disabled]=\"state.previousDisabled()\">\n\t\t\t\t\t\t<a class=\"page-link\" [auUse]=\"directives.pageFirst\">\n\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.firstPageLabel()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</li>\n\t\t\t\t}\n\t\t\t\t@if (state.directionLinks()) {\n\t\t\t\t\t<li class=\"page-item\" [class.disabled]=\"state.previousDisabled()\">\n\t\t\t\t\t\t<a class=\"page-link\" [auUse]=\"directives.pagePrev\">\n\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.previousPageLabel()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</li>\n\t\t\t\t}\n\t\t\t\t<ng-template [auSlot]=\"state.pagesDisplay()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t@if (state.directionLinks()) {\n\t\t\t\t\t<li class=\"page-item\" [class.disabled]=\"state.nextDisabled()\">\n\t\t\t\t\t\t<a class=\"page-link\" [auUse]=\"directives.pageNext\">\n\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.nextPageLabel()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</li>\n\t\t\t\t}\n\t\t\t\t@if (state.boundaryLinks()) {\n\t\t\t\t\t<li class=\"page-item\" [class.disabled]=\"state.nextDisabled()\">\n\t\t\t\t\t\t<a class=\"page-link\" [auUse]=\"directives.pageLast\">\n\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.lastPageLabel()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</li>\n\t\t\t\t}\n\t\t\t</ul>\n\t\t\t<div aria-live=\"polite\" class=\"visually-hidden\">{{ state.ariaLiveLabelText() }}</div>\n\t\t</ng-template>\n\t`,\n})\nclass PaginationDefaultSlotsComponent {\n\treadonly pages = viewChild.required<TemplateRef<PaginationContext>>('pages');\n\treadonly structure = viewChild.required<TemplateRef<PaginationContext>>('structure');\n}\n/**\n * The default slot for the pages\n */\nexport const paginationDefaultSlotPages: SlotContent<PaginationContext> = new ComponentTemplate(PaginationDefaultSlotsComponent, 'pages');\n/**\n * The default slot for the structure\n */\nexport const paginationDefaultSlotStructure: SlotContent<PaginationContext> = new ComponentTemplate(PaginationDefaultSlotsComponent, 'structure');\n\n/**\n * The `PaginationComponent` is an Angular component that extends the `BaseWidgetDirective`\n * to provide a customizable pagination widget. It includes various input properties\n * to configure labels, templates, and behavior for accessibility and internationalization (i18n).\n */\n@Component({\n\tselector: '[auPagination]',\n\timports: [SlotDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[attr.aria-label]': 'state.ariaLabel()',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\ttemplate: `<ng-template [auSlotProps]=\"{state, api, directives}\" [auSlot]=\"state.structure()\" />`,\n})\nexport class PaginationComponent extends BaseWidgetDirective<PaginationWidget> {\n\t/**\n\t * Provide the label for each \"Page\" page button.\n\t * This is used for accessibility purposes.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t * @param processPage - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (processPage: number, pageCount: number) => `Page ${processPage} of ${pageCount}`\n\t * ```\n\t */\n\treadonly ariaPageLabel = input<(processPage: number, pageCount: number) => string>(undefined, {alias: 'auAriaPageLabel'});\n\n\t/**\n\t * Provide the label for the aria-live element\n\t * This is used for accessibility purposes.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t * @param currentPage - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (currentPage: number) => `Current page is ${currentPage}`\n\t * ```\n\t */\n\treadonly ariaLiveLabel = input<(currentPage: number, pageCount: number) => string>(undefined, {alias: 'auAriaLiveLabel'});\n\n\t/**\n\t * The label for the nav element.\n\t *\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Page navigation'`\n\t */\n\treadonly ariaLabel = input<string>(undefined, {alias: 'auAriaLabel'});\n\n\t/**\n\t * The label for the \"active\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * '(current)'\n\t * ```\n\t */\n\treadonly activeLabel = input<string>(undefined, {alias: 'auActiveLabel'});\n\n\t/**\n\t * The label for the \"First\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for first page'\n\t * ```\n\t */\n\treadonly ariaFirstLabel = input<string>(undefined, {alias: 'auAriaFirstLabel'});\n\n\t/**\n\t * The label for the \"Previous\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for previous page'\n\t * ```\n\t */\n\treadonly ariaPreviousLabel = input<string>(undefined, {alias: 'auAriaPreviousLabel'});\n\n\t/**\n\t * The label for the \"Next\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for next page'\n\t * ```\n\t */\n\treadonly ariaNextLabel = input<string>(undefined, {alias: 'auAriaNextLabel'});\n\n\t/**\n\t * The label for the \"Last\" page button.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * 'Action link for last page'\n\t * ```\n\t */\n\treadonly ariaLastLabel = input<string>(undefined, {alias: 'auAriaLastLabel'});\n\n\t/**\n\t * The label for the \"Ellipsis\" page.\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'Ellipsis page element'`\n\t */\n\treadonly ariaEllipsisLabel = input<string>(undefined, {alias: 'auAriaEllipsisLabel'});\n\n\t/**\n\t * Factory function providing the href for a \"Page\" page anchor,\n\t * based on the current page number\n\t * @param pageNumber - The index to use in the link\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (_page: number) => PAGE_LINK_DEFAULT\n\t * ```\n\t */\n\treadonly pageLink = input<(pageNumber: number) => string>(undefined, {alias: 'auPageLink'});\n\n\t/**\n\t * The template to use for the ellipsis slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'…'`\n\t */\n\treadonly ellipsisLabel = input<SlotContent<PaginationContext>>(undefined, {alias: 'auEllipsisLabel'});\n\treadonly slotEllipsisFromContent = contentChild(PaginationEllipsisDirective);\n\n\t/**\n\t * The template to use for the first slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'«'`\n\t */\n\treadonly firstPageLabel = input<SlotContent<PaginationContext>>(undefined, {alias: 'auFirstPageLabel'});\n\treadonly slotFirstFromContent = contentChild(PaginationFirstDirective);\n\n\t/**\n\t * The template to use for the previous slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'‹'`\n\t */\n\treadonly previousPageLabel = input<SlotContent<PaginationContext>>(undefined, {alias: 'auPreviousPageLabel'});\n\treadonly slotPreviousFromContent = contentChild(PaginationPreviousDirective);\n\n\t/**\n\t * The template to use for the next slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'›'`\n\t */\n\treadonly nextPageLabel = input<SlotContent<PaginationContext>>(undefined, {alias: 'auNextPageLabel'});\n\treadonly slotNextFromContent = contentChild(PaginationNextDirective);\n\n\t/**\n\t * The template to use for the last slot\n\t * for I18n, we suggest to use the global configuration\n\t * override any configuration parameters provided for this\n\t *\n\t * @defaultValue `'»'`\n\t */\n\treadonly lastPageLabel = input<SlotContent<PaginationContext>>(undefined, {alias: 'auLastPageLabel'});\n\treadonly slotLastFromContent = contentChild(PaginationLastDirective);\n\n\t/**\n\t * The template to use for the pages slot\n\t * To use to customize the pages view\n\t * override any configuration parameters provided for this\n\t */\n\treadonly pagesDisplay = input<SlotContent<PaginationContext>>(undefined, {alias: 'auPagesDisplay'});\n\treadonly slotPagesFromContent = contentChild(PaginationPagesDirective);\n\n\t/**\n\t * The template to use for the number slot\n\t * override any configuration parameters provided for this\n\t * for I18n, we suggest to use the global configuration\n\t * @param displayedPage - The current page number\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({displayedPage}: PaginationNumberContext) => `${displayedPage}`\n\t * ```\n\t */\n\treadonly numberLabel = input<SlotContent<PaginationNumberContext>>(undefined, {alias: 'auNumberLabel'});\n\treadonly slotNumberLabelFromContent = contentChild(PaginationNumberDirective);\n\n\t/**\n\t * The template to use for the structure of the pagination component\n\t * The default structure uses {@link PaginationProps.ellipsisLabel|ellipsisLabel}, {@link PaginationProps.firstPageLabel|firstPageLabel},\n\t * {@link PaginationProps.previousPageLabel|previousPageLabel}, {@link PaginationProps.nextPageLabel|nextPageLabel},\n\t * {@link PaginationProps.lastPageLabel|lastPageLabel}, {@link PaginationProps.pagesDisplay|pagesDisplay},\n\t * {@link PaginationProps.numberLabel|numberLabel},\n\t */\n\treadonly structure = input<SlotContent<PaginationContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(PaginationStructureDirective);\n\n\t/**\n\t * If `true`, pagination links will be disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly disabled = input(undefined, {alias: 'auDisabled', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, the \"First\" and \"Last\" page links are shown.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly boundaryLinks = input(undefined, {alias: 'auBoundaryLinks', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, the \"Next\" and \"Previous\" page links are shown.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly directionLinks = input(undefined, {alias: 'auDirectionLinks', transform: auBooleanAttribute});\n\n\t/**\n\t * The number of items in your paginated collection.\n\t *\n\t * Note, that this is not the number of pages. Page numbers are calculated dynamically based on\n\t * `collectionSize` and `pageSize`.\n\t *\n\t * Ex. if you have 100 items in your collection and displaying 20 items per page, you'll end up with 5 pages.\n\t *\n\t * Whatever the collectionSize the page number is of minimum 1.\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly collectionSize = input(undefined, {alias: 'auCollectionSize', transform: auNumberAttribute});\n\n\t/**\n\t * The current page.\n\t *\n\t * Page numbers start with `1`.\n\t *\n\t * @defaultValue `1`\n\t */\n\treadonly page = input(undefined, {alias: 'auPage', transform: auNumberAttribute});\n\n\t/**\n\t * The number of items per page.\n\t * @remarks min value is 1\n\t *\n\t * @defaultValue `10`\n\t */\n\treadonly pageSize = input(undefined, {alias: 'auPageSize', transform: auNumberAttribute});\n\n\t/**\n\t * The pagination display size.\n\t *\n\t * Bootstrap currently supports small and large sizes.\n\t *\n\t * @defaultValue `null`\n\t */\n\treadonly size = input<'sm' | 'lg' | null>(undefined, {alias: 'auSize'});\n\n\t/**\n\t * pagesFactory returns a function computing the array of pages to be displayed\n\t * as number (-1 are treated as ellipsis).\n\t * Use Page slot to customize the pages view and not this\n\t * @param page - The current page number\n\t * @param pageCount - The total number of pages\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (_page: number, pageCount: number) => {\n\t * \t\tconst pages: number[] = [];\n\t * \t\tfor (let i = 1; i <= pageCount; i++) {\n\t * \t\t\tpages.push(i);\n\t * \t\t}\n\t * \t\treturn pages;\n\t * \t}\n\t * ```\n\t */\n\treadonly pagesFactory = input<(page: number, pageCount: number) => number[]>(undefined, {alias: 'auPagesFactory'});\n\n\t/**\n\t * An event fired when the page is changed.\n\t *\n\t * Event payload is the number of the newly selected page.\n\t *\n\t * Page numbers start with `1`.\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly pageChange = output<number>({alias: 'auPageChange'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createPagination, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: paginationDefaultSlotStructure,\n\t\t\t\t\tpagesDisplay: paginationDefaultSlotPages,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonPageChange: (page: number) => this.pageChange.emit(page),\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\tellipsisLabel: this.slotEllipsisFromContent()?.templateRef,\n\t\t\t\t\tfirstPageLabel: this.slotFirstFromContent()?.templateRef,\n\t\t\t\t\tpreviousPageLabel: this.slotPreviousFromContent()?.templateRef,\n\t\t\t\t\tnextPageLabel: this.slotNextFromContent()?.templateRef,\n\t\t\t\t\tlastPageLabel: this.slotLastFromContent()?.templateRef,\n\t\t\t\t\tpagesDisplay: this.slotPagesFromContent()?.templateRef,\n\t\t\t\t\tnumberLabel: this.slotNumberLabelFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {getRatingDefaultConfig, createRating} from '@agnos-ui/core-bootstrap/components/rating';\nimport type {SlotContent, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default Rating config\n * @returns the default Rating config\n */\nconst export_getRatingDefaultConfig: () => RatingProps = getRatingDefaultConfig as any;\nexport {export_getRatingDefaultConfig as getRatingDefaultConfig};\n\n/**\n * Represents the state of a rating component.\n */\nexport interface RatingState {\n\t\n\t/**\n\t * the aria value of the rating\n\t */\n\tariaValueText: string;\n\t\n\t/**\n\t * the visible value of the rating (it changes when hovering over the rating even though the real value did not change)\n\t */\n\tvisibleRating: number;\n\t\n\t/**\n\t * is the rating interactive i.e. listening to hover, click and keyboard events\n\t */\n\tinteractive: boolean;\n\t\n\t/**\n\t * the list of stars\n\t */\n\tstars: StarContext[];\n\t\n\t/**\n\t * The current rating. Could be a decimal value like `3.75`.\n\t *\n\t * @defaultValue `0`\n\t */\n\trating: number;\n\t\n\n\t/**\n\t * The maximum rating that can be given.\n\t *\n\t * @defaultValue `10`\n\t */\n\tmaxRating: number;\n\t\n\n\t/**\n\t * If `true`, the rating is disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true`, the rating can't be changed.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly: boolean;\n\t\n\n\t/**\n\t * Define if the rating can be reset.\n\t *\n\t * If set to true, the user can 'unset' the rating value by cliking on the current rating value.\n\t *\n\t * @defaultValue `true`\n\t */\n\tresettable: boolean;\n\t\n\n\t/**\n\t * Allows setting a custom rating tabindex.\n\t * If the component is disabled, `tabindex` will still be set to `-1`.\n\t *\n\t * @defaultValue `0`\n\t */\n\ttabindex: number;\n\t\n\n\t/**\n\t * The aria label\n\t *\n\t * @defaultValue `'Rating'`\n\t */\n\tariaLabel: string;\n\t\n\n\t/**\n\t * The aria labelled by\n\t *\n\t * @defaultValue `''`\n\t */\n\tariaLabelledBy: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to override the way each star is displayed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({fill}: StarContext) => String.fromCharCode(fill === 100 ? 9733 : 9734)\n\t * ```\n\t */\n\tstar: SlotContent<StarContext>;\n}\n\n/**\n * Represents the properties for the Rating component.\n */\nexport interface RatingProps {\n\t\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute.\n\t * @param rating - Current rating value.\n\t * @param maxRating - maxRating value.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (rating: number, maxRating: number) => `${rating} out of ${maxRating}`\n\t * ```\n\t */\n\tariaValueTextFn: (rating: number, maxRating: number) => string;\n\t\n\n\t/**\n\t * An event emitted when the rating is changed.\n\t *\n\t * Event payload is equal to the newly selected rating.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonRatingChange: (rating: number) => void;\n\t\n\n\t/**\n\t * An event emitted when the user is hovering over a given rating.\n\t *\n\t * Event payload is equal to the rating being hovered over.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonHover: (rating: number) => void;\n\t\n\n\t/**\n\t * An event emitted when the user stops hovering over a given rating.\n\t *\n\t * Event payload is equal to the rating of the last item being hovered over.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonLeave: (rating: number) => void;\n\t\n\t/**\n\t * The current rating. Could be a decimal value like `3.75`.\n\t *\n\t * @defaultValue `0`\n\t */\n\trating: number;\n\t\n\n\t/**\n\t * The maximum rating that can be given.\n\t *\n\t * @defaultValue `10`\n\t */\n\tmaxRating: number;\n\t\n\n\t/**\n\t * If `true`, the rating is disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true`, the rating can't be changed.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly: boolean;\n\t\n\n\t/**\n\t * Define if the rating can be reset.\n\t *\n\t * If set to true, the user can 'unset' the rating value by cliking on the current rating value.\n\t *\n\t * @defaultValue `true`\n\t */\n\tresettable: boolean;\n\t\n\n\t/**\n\t * Allows setting a custom rating tabindex.\n\t * If the component is disabled, `tabindex` will still be set to `-1`.\n\t *\n\t * @defaultValue `0`\n\t */\n\ttabindex: number;\n\t\n\n\t/**\n\t * The aria label\n\t *\n\t * @defaultValue `'Rating'`\n\t */\n\tariaLabel: string;\n\t\n\n\t/**\n\t * The aria labelled by\n\t *\n\t * @defaultValue `''`\n\t */\n\tariaLabelledBy: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to override the way each star is displayed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({fill}: StarContext) => String.fromCharCode(fill === 100 ? 9733 : 9734)\n\t * ```\n\t */\n\tstar: SlotContent<StarContext>;\n}\n\n\n\n/**\n * Represents a Rating Widget component.\n */\nexport type RatingWidget = Widget<RatingProps, RatingState, RatingApi, RatingDirectives>;\n\n\n\n/**\n * Create a RatingWidget with given config props\n * @param config - an optional rating config\n * @returns a RatingWidget\n */\n\nconst export_createRating: WidgetFactory<RatingWidget> = createRating as any;\nexport {export_createRating as createRating};\n\n\n\n/**\n * Represents the context for a star in a rating component.\n */\nexport interface StarContext {\n\t/**\n\t * indicates how much the current star is filled, from 0 to 100\n\t */\n\tfill: number;\n\t/**\n\t * the position of the star in the rating\n\t */\n\tindex: number;\n}\n\n/**\n * Interface representing directives for a rating component.\n */\nexport interface RatingDirectives {\n\t\n\t/**\n\t * A directive to be applied to the main container\n\t * This will handle the keydown, mouseleave, tabindex and aria attributes\n\t */\n\tcontainerDirective: Directive;\n\t\n\n\t/**\n\t * A directive to be applied on each star element\n\t */\n\tstarDirective: Directive<{index: number}>;\n}\n\n/**\n * Interface representing the API that can be performed on a rating component.\n */\nexport interface RatingApi {\n\t\n\t/**\n\t * Sets the rating value.\n\t *\n\t * @param index - Star index, starting from 1\n\t */\n\tsetRating(index: number): void;\n\t\n\n\t/**\n\t * Sets the hovered rating value.\n\t *\n\t * @param index - Star index, starting from 1\n\t */\n\tsetHoveredRating(index: number): void;\n\t\n\n\t/**\n\t * Leave the rating, resetting the visible rating to the rating value and triggering the onLeave callback\n\t */\n\tleave(): void;\n}\n\n","import type {SlotContent} from '@agnos-ui/angular-headless';\nimport {\n\tBaseWidgetDirective,\n\tSlotDirective,\n\tUseDirective,\n\tauBooleanAttribute,\n\tauNumberAttribute,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tDirective,\n\tTemplateRef,\n\tViewEncapsulation,\n\tforwardRef,\n\tinject,\n\tinput,\n\toutput,\n\tcontentChild,\n} from '@angular/core';\nimport type {ControlValueAccessor} from '@angular/forms';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {callWidgetFactory} from '../../config';\nimport type {RatingWidget, StarContext} from './rating.gen';\nimport {createRating} from './rating.gen';\n\n/**\n * Directive to represent a rating star.\n *\n * This directive uses a template reference to render the {@link StarContext}.\n */\n@Directive({selector: 'ng-template[auRatingStar]'})\nexport class RatingStarDirective {\n\tpublic templateRef = inject(TemplateRef<StarContext>);\n\tstatic ngTemplateContextGuard(_dir: RatingStarDirective, context: unknown): context is StarContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * The `RatingComponent` is an Angular component that allows users to provide a rating.\n * It extends `BaseWidgetDirective` and implements `ControlValueAccessor` to integrate with Angular forms.\n */\n@Component({\n\tselector: '[auRating]',\n\timports: [UseDirective, SlotDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'd-inline-flex',\n\t\t'(blur)': 'onTouched()',\n\t},\n\ttemplate: `\n\t\t@for (item of state.stars(); track trackByIndex(index); let index = $index) {\n\t\t\t<span class=\"visually-hidden\">({{ index < state.visibleRating() ? '*' : ' ' }})</span>\n\t\t\t<span [auUse]=\"[directives.starDirective, {index}]\">\n\t\t\t\t<ng-template [auSlot]=\"state.star()\" [auSlotProps]=\"state.stars()[index]\" />\n\t\t\t</span>\n\t\t}\n\t`,\n\tproviders: [{provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RatingComponent), multi: true}],\n})\nexport class RatingComponent extends BaseWidgetDirective<RatingWidget> implements ControlValueAccessor {\n\tonChange = (_: any) => {};\n\tonTouched = () => {};\n\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute.\n\t * @param rating - Current rating value.\n\t * @param maxRating - maxRating value.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (rating: number, maxRating: number) => `${rating} out of ${maxRating}`\n\t * ```\n\t */\n\treadonly ariaValueTextFn = input<(rating: number, maxRating: number) => string>(undefined, {alias: 'auAriaValueTextFn'});\n\n\t/**\n\t * If `true`, the rating is disabled.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly disabled = input(undefined, {alias: 'auDisabled', transform: auBooleanAttribute});\n\n\t/**\n\t * The maximum rating that can be given.\n\t *\n\t * @defaultValue `10`\n\t */\n\treadonly maxRating = input(undefined, {alias: 'auMaxRating', transform: auNumberAttribute});\n\n\t/**\n\t * The current rating. Could be a decimal value like `3.75`.\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly rating = input(undefined, {alias: 'auRating', transform: auNumberAttribute});\n\n\t/**\n\t * If `true`, the rating can't be changed.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly readonly = input(undefined, {alias: 'auReadonly', transform: auBooleanAttribute});\n\n\t/**\n\t * Define if the rating can be reset.\n\t *\n\t * If set to true, the user can 'unset' the rating value by cliking on the current rating value.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly resettable = input(undefined, {alias: 'auResettable', transform: auBooleanAttribute});\n\n\t/**\n\t * The template to override the way each star is displayed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({fill}: StarContext) => String.fromCharCode(fill === 100 ? 9733 : 9734)\n\t * ```\n\t */\n\treadonly star = input<SlotContent<StarContext>>(undefined, {alias: 'auStar'});\n\treadonly slotStarFromContent = contentChild(RatingStarDirective);\n\n\t/**\n\t * Allows setting a custom rating tabindex.\n\t * If the component is disabled, `tabindex` will still be set to `-1`.\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly tabindex = input(undefined, {alias: 'auTabindex', transform: auNumberAttribute});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * The aria label\n\t *\n\t * @defaultValue `'Rating'`\n\t */\n\treadonly ariaLabel = input<string>(undefined, {alias: 'auAriaLabel'});\n\n\t/**\n\t * The aria labelled by\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly ariaLabelledBy = input<string>(undefined, {alias: 'auAriaLabelledBy'});\n\n\t/**\n\t * An event emitted when the user is hovering over a given rating.\n\t *\n\t * Event payload is equal to the rating being hovered over.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly hover = output<number>({alias: 'auHover'});\n\n\t/**\n\t * An event emitted when the user stops hovering over a given rating.\n\t *\n\t * Event payload is equal to the rating of the last item being hovered over.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly leave = output<number>({alias: 'auLeave'});\n\n\t/**\n\t * An event emitted when the rating is changed.\n\t *\n\t * Event payload is equal to the newly selected rating.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly ratingChange = output<number>({alias: 'auRatingChange'});\n\n\twriteValue(value: any): void {\n\t\tthis['_widget'].patch({rating: value});\n\t}\n\n\tregisterOnChange(fn: (value: any) => any): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => any): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tsetDisabledState(disabled: boolean): void {\n\t\tthis['_widget'].patch({disabled});\n\t}\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createRating, {\n\t\t\t\tevents: {\n\t\t\t\t\tonHover: (event) => this.hover.emit(event),\n\t\t\t\t\tonLeave: (event) => this.leave.emit(event),\n\t\t\t\t\tonRatingChange: (rating: number) => {\n\t\t\t\t\t\tthis.ratingChange.emit(rating);\n\t\t\t\t\t\tthis.onChange(rating);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.containerDirective);\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstar: this.slotStarFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n\n\ttrackByIndex(index: number) {\n\t\treturn index;\n\t}\n}\n","import {getSelectDefaultConfig, createSelect} from '@agnos-ui/core-bootstrap/components/select';\nimport type {WidgetSlotContext, SlotContent, Widget, PropsConfig, HasFocus, FloatingUI, Directive} from '@agnos-ui/angular-headless';\nimport type {Placement} from '@floating-ui/dom';\n\n\n\n/**\n * Retrieve a shallow copy of the default Select config\n * @returns the default Select config\n */\nconst export_getSelectDefaultConfig: () => SelectProps<any> = getSelectDefaultConfig as any;\nexport {export_getSelectDefaultConfig as getSelectDefaultConfig};\n\n\n\n/**\n * Interface for the slot context of the pagination widget\n * @template Item - The type of the items in the Select component.\n */\nexport interface SelectContext<Item> extends WidgetSlotContext<SelectWidget<Item>> {}\n\n\n\n/**\n * Represents the context for a select item, extending the base `SelectContext` with additional\n * contextual data specific to an item.\n *\n * @template Item - The type of the item within the select context.\n */\nexport interface SelectItemContext<Item> extends SelectContext<Item> {\n\t/**\n\t * Contextual data related to an item\n\t */\n\titemContext: ItemContext<Item>;\n}\n\n/**\n * Represents the state of a Select component.\n *\n * @template Item - The type of the items in the select component.\n */\nexport interface SelectState<Item> {\n\t\n\t/**\n\t * List of item contexts, to be displayed in the menu\n\t */\n\tvisibleItems: ItemContext<Item>[];\n\t\n\n\t/**\n\t * List of selected items to be display\n\t */\n\tselectedContexts: ItemContext<Item>[];\n\t\n\n\t/**\n\t * Highlighted item context.\n\t * It is designed to define the highlighted item in the dropdown menu\n\t */\n\thighlighted: ItemContext<Item> | undefined;\n\t\n\n\t/**\n\t * Current placement of the dropdown\n\t */\n\tplacement: Placement | undefined;\n\t\n\t/**\n\t * id used for the input inside the select\n\t */\n\tid: string | undefined;\n\t\n\n\t/**\n\t * aria-label used for the input inside the select\n\t *\n\t * @defaultValue `'Select'`\n\t */\n\tariaLabel: string | undefined;\n\t\n\n\t/**\n\t * List of selected item ids\n\t *\n\t * @defaultValue `[]`\n\t */\n\tselected: Item[];\n\t\n\n\t/**\n\t * Filtered text to be display in the filter input\n\t *\n\t * @defaultValue `''`\n\t */\n\tfilterText: string;\n\t\n\n\t/**\n\t * true if the select is disabled\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * true if the select is open\n\t *\n\t * @defaultValue `false`\n\t */\n\topen: boolean;\n\t\n\n\t/**\n\t * Class to be added on the dropdown menu container\n\t *\n\t * @defaultValue `''`\n\t */\n\tmenuClassName: string;\n\t\n\n\t/**\n\t * Class to be added on menu items\n\t *\n\t * @defaultValue `''`\n\t */\n\tmenuItemClassName: string;\n\t\n\n\t/**\n\t * Class to be added on selected items (displayed in the input zone)\n\t *\n\t * @defaultValue `''`\n\t */\n\tbadgeClassName: string;\n\t\n\n\t/**\n\t * true if a loading process is being done\n\t *\n\t * @defaultValue `false`\n\t */\n\tloading: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to override the way each badge on the left of the input is displayed.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\tbadgeLabel: SlotContent<SelectItemContext<Item>>;\n\t\n\n\t/**\n\t * The template to override the way each item is displayed in the list.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\titemLabel: SlotContent<SelectItemContext<Item>>;\n}\n\n/**\n * Represents the properties for the Select component.\n *\n * @template Item - The type of the items in the select component.\n */\nexport interface SelectProps<Item> {\n\t\n\t/**\n\t * List of available items for the dropdown\n\t *\n\t * @defaultValue `[]`\n\t */\n\titems: Item[];\n\t\n\n\t/**\n\t * List of allowed placements for the dropdown.\n\t * This refers to the [allowedPlacements from floating UI](https://floating-ui.com/docs/autoPlacement#allowedplacements), given the different [Placement possibilities](https://floating-ui.com/docs/computePosition#placement).\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ['bottom-start', 'top-start', 'bottom-end', 'top-end']\n\t * ```\n\t */\n\tallowedPlacements: Placement[];\n\t\n\n\t/**\n\t * Custom function to get the id of an item\n\t * By default, the item is returned\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (item: any) => '' + item\n\t * ```\n\t */\n\titemIdFn(item: Item): string;\n\t\n\n\t/**\n\t * Retrieves navigable elements within an HTML element containing badges and the input.\n\t *\n\t * @param node - HTMLElement that contains the badges and the input\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (node: HTMLElement) => node.querySelectorAll('.au-select-badge,input')\n\t * ```\n\t */\n\tnavSelector(node: HTMLElement): NodeListOf<HTMLSpanElement | HTMLInputElement>;\n\t\n\n\t// Event callbacks\n\n\t/**\n\t * Callback called dropdown open state change\n\t * @param isOpen - updated open state\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonOpenChange(isOpen: boolean): void;\n\t\n\n\t/**\n\t * Callback called when the text filter change\n\t * @param text - Filtered text\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonFilterTextChange(text: string): void;\n\t\n\n\t/**\n\t * Callback called when the selection change\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonSelectedChange(selected: Item[]): void;\n\t\n\t/**\n\t * id used for the input inside the select\n\t */\n\tid: string | undefined;\n\t\n\n\t/**\n\t * aria-label used for the input inside the select\n\t *\n\t * @defaultValue `'Select'`\n\t */\n\tariaLabel: string | undefined;\n\t\n\n\t/**\n\t * List of selected item ids\n\t *\n\t * @defaultValue `[]`\n\t */\n\tselected: Item[];\n\t\n\n\t/**\n\t * Filtered text to be display in the filter input\n\t *\n\t * @defaultValue `''`\n\t */\n\tfilterText: string;\n\t\n\n\t/**\n\t * true if the select is disabled\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * true if the select is open\n\t *\n\t * @defaultValue `false`\n\t */\n\topen: boolean;\n\t\n\n\t/**\n\t * Class to be added on the dropdown menu container\n\t *\n\t * @defaultValue `''`\n\t */\n\tmenuClassName: string;\n\t\n\n\t/**\n\t * Class to be added on menu items\n\t *\n\t * @defaultValue `''`\n\t */\n\tmenuItemClassName: string;\n\t\n\n\t/**\n\t * Class to be added on selected items (displayed in the input zone)\n\t *\n\t * @defaultValue `''`\n\t */\n\tbadgeClassName: string;\n\t\n\n\t/**\n\t * true if a loading process is being done\n\t *\n\t * @defaultValue `false`\n\t */\n\tloading: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * The template to override the way each badge on the left of the input is displayed.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\tbadgeLabel: SlotContent<SelectItemContext<Item>>;\n\t\n\n\t/**\n\t * The template to override the way each item is displayed in the list.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\titemLabel: SlotContent<SelectItemContext<Item>>;\n}\n\n\n\n/**\n * Represents a Select widget component.\n *\n * @template Item - The type of the items that the select widget will handle.\n */\nexport type SelectWidget<Item> = Widget<SelectProps<Item>, SelectState<Item>, SelectApi<Item>, SelectDirectives<Item>>;\n\n\n\n/**\n * Creates a new select widget instance.\n * @param config - config of the modal, either as a store or as an object containing values or stores.\n * @returns a new select widget instance\n */\nconst export_createSelect: <Item>(config?: PropsConfig<SelectProps<Item>>) => SelectWidget<Item> = createSelect as any;\nexport {export_createSelect as createSelect};\n\n\n\n/**\n * Item representation built from the items provided in parameters\n *\n * @template T - The type of the Select Items\n */\nexport interface ItemContext<T> {\n\t/**\n\t * Original item given in the parameters\n\t */\n\titem: T;\n\n\t/**\n\t * Unique id to identify the item\n\t */\n\tid: string;\n\n\t/**\n\t * Specify if the item is checked\n\t */\n\tselected: boolean;\n}\n\n/**\n * Interface representing the API for a Select component.\n *\n * @template Item - The type of the Select Items\n */\nexport interface SelectApi<Item> {\n\t\n\t/**\n\t * Clear all the selected items\n\t */\n\tclear(): void;\n\t\n\n\t/**\n\t * Clear the filter text\n\t */\n\tclearText(): void;\n\t\n\n\t/**\n\t * Highlight the given item, if there is a corresponding match among the visible list\n\t */\n\thighlight(item: Item): void;\n\t\n\n\t/**\n\t * Highlight the first item among the visible list\n\t */\n\thighlightFirst(): void;\n\t\n\n\t/**\n\t * Highlight the previous item among the visible list\n\t * Loop to the last item if needed\n\t */\n\thighlightPrevious(): void;\n\t\n\n\t/**\n\t * Highlight the next item among the visible list.\n\t * Loop to the first item if needed\n\t */\n\thighlightNext(): void;\n\t\n\n\t/**\n\t * Highlight the last item among the visible list\n\t */\n\thighlightLast(): void;\n\t\n\n\t/**\n\t * Select the provided item.\n\t * The selected list is used to\n\t * @param item - the item to select\n\t */\n\tselect(item: Item): void;\n\t\n\t/**\n\t * Unselect the provided item.\n\t * @param item - the item to unselect\n\t */\n\tunselect(item: Item): void;\n\t\n\t/**\n\t * Toggle the selection of an item\n\t * @param item - the item to toggle\n\t * @param selected - an optional boolean to enforce the selected/unselected state instead of toggling\n\t */\n\ttoggleItem(item: Item, selected?: boolean): void;\n\t\n\n\t/**\n\t * open the select\n\t */\n\topen(): void;\n\t\n\t/**\n\t * close the select\n\t */\n\tclose(): void;\n\t\n\t/**\n\t * Toggle the dropdown menu\n\t * @param isOpen - If specified, set the menu in the defined state.\n\t */\n\ttoggle(isOpen?: boolean): void;\n}\n\n/**\n * Interface representing the directives used in the Select component.\n *\n * @template Item - The type of the Select Items\n */\nexport interface SelectDirectives<Item> {\n\t\n\t/**\n\t * Directive to be used in the input group and the menu containers\n\t */\n\thasFocusDirective: HasFocus['directive'];\n\t\n\n\t/**\n\t * Directive that enables dynamic positioning of menu element\n\t */\n\tfloatingDirective: FloatingUI['directives']['floatingDirective'];\n\t\n\n\t/**\n\t * A directive to be applied to the input group element serves as the base for menu positioning\n\t */\n\treferenceDirective: FloatingUI['directives']['referenceDirective'];\n\t\n\n\t/**\n\t * A directive to be applied to the element that contains the badges and the input\n\t */\n\tinputContainerDirective: Directive;\n\t\n\n\t/**\n\t * A directive that applies all the necessary attributes to the container badges\n\t */\n\tbadgeAttributesDirective: Directive<ItemContext<Item>>;\n\t\n\n\t/**\n\t * A directive that applies all the necessary attributes to the dropdown menu\n\t */\n\tmenuAttributesDirective: Directive;\n\t\n\n\t/**\n\t * A directive that applies all the necessary attributes to the dropdown item\n\t */\n\titemAttributesDirective: Directive<ItemContext<Item>>;\n\t\n\n\t/**\n\t * A directive to be applied to the input\n\t */\n\tinputDirective: Directive;\n\t\n\t/**\n\t * A directive to be applied to a button that closes a badge\n\t */\n\tbadgeCloseButtonDirective: Directive<ItemContext<Item>>;\n}\n\n","import type {SlotContent} from '@agnos-ui/angular-headless';\nimport {\n\tBaseWidgetDirective,\n\tSlotDirective,\n\tUseDirective,\n\tUseMultiDirective,\n\tauBooleanAttribute,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, output, contentChild} from '@angular/core';\nimport type {Placement} from '@floating-ui/dom';\nimport {callWidgetFactory} from '../../config';\nimport type {ItemContext, SelectItemContext, SelectWidget} from './select.gen';\nimport {createSelect} from './select.gen';\n\n/**\n * Directive to provide a custom template for the badge label in a select component.\n *\n * @template Item - The type of the item in the select component.\n *\n * This directive uses a template reference to render the {@link SelectItemContext<Item>}.\n */\n@Directive({selector: 'ng-template[auSelectBadgeLabel]'})\nexport class SelectBadgeLabelDirective<Item> {\n\tpublic templateRef = inject(TemplateRef<SelectItemContext<Item>>);\n\tstatic ngTemplateContextGuard<Item>(_dir: SelectBadgeLabelDirective<Item>, context: unknown): context is SelectItemContext<Item> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to provide a custom label template for select items.\n *\n * This directive allows you to define a custom template for the labels of items\n * in a select component. The template can be specified using an Angular `TemplateRef`.\n *\n * @template Item - The type of the items in the select component.\n *\n * This directive uses a template reference to render the {@link SelectItemContext<Item>}.\n */\n@Directive({selector: 'ng-template[auSelectItemLabel]'})\nexport class SelectItemLabelDirective<Item> {\n\tpublic templateRef = inject(TemplateRef<SelectItemContext<Item>>);\n\tstatic ngTemplateContextGuard<Item>(_dir: SelectItemLabelDirective<Item>, context: unknown): context is SelectItemContext<Item> {\n\t\treturn true;\n\t}\n}\n\n/**\n * A component that represents a customizable select dropdown widget.\n *\n * @template Item - The type of items in the select dropdown.\n */\n@Component({\n\timports: [UseMultiDirective, SlotDirective, UseDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tselector: '[auSelect]',\n\thost: {\n\t\t'[class]': '\"au-select dropdown border border-1 p-1 mb-3 d-block\" + state.className()',\n\t},\n\ttemplate: `\n\t\t<div [auUseMulti]=\"[directives.hasFocusDirective, directives.inputContainerDirective]\" class=\"d-flex align-items-center flex-wrap gap-1\">\n\t\t\t@if (state.selectedContexts(); as selectedContexts) {\n\t\t\t\t@for (itemContext of selectedContexts; track itemCtxTrackBy($index, itemContext)) {\n\t\t\t\t\t<div [auUse]=\"[directives.badgeAttributesDirective, itemContext]\">\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.badgeLabel()\" [auSlotProps]=\"{state, api, directives, itemContext}\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t\t<input [auUse]=\"directives.inputDirective\" [value]=\"state.filterText()\" />\n\t\t</div>\n\t\t@if (state.open() && state.visibleItems().length) {\n\t\t\t<ul [auUseMulti]=\"[directives.hasFocusDirective, directives.floatingDirective, directives.menuAttributesDirective]\" class=\"dropdown-menu show\">\n\t\t\t\t@for (itemContext of state.visibleItems(); track itemCtxTrackBy($index, itemContext)) {\n\t\t\t\t\t<li\n\t\t\t\t\t\tclass=\"dropdown-item position-relative\"\n\t\t\t\t\t\t[auUse]=\"[directives.itemAttributesDirective, itemContext]\"\n\t\t\t\t\t\t[class.text-bg-primary]=\"itemContext === state.highlighted()\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.itemLabel()\" [auSlotProps]=\"{state, api, directives, itemContext}\" />\n\t\t\t\t\t</li>\n\t\t\t\t}\n\t\t\t</ul>\n\t\t}\n\t`,\n})\nexport class SelectComponent<Item> extends BaseWidgetDirective<SelectWidget<Item>> {\n\t/**\n\t * aria-label used for the input inside the select\n\t *\n\t * @defaultValue `'Select'`\n\t */\n\treadonly ariaLabel = input<string>(undefined, {alias: 'auAriaLabel'});\n\n\t/**\n\t * id used for the input inside the select\n\t */\n\treadonly id = input<string>(undefined, {alias: 'auId'});\n\n\t/**\n\t * List of available items for the dropdown\n\t *\n\t * @defaultValue `[]`\n\t */\n\treadonly items = input<Item[]>(undefined, {alias: 'auItems'});\n\n\t/**\n\t * List of allowed placements for the dropdown.\n\t * This refers to the [allowedPlacements from floating UI](https://floating-ui.com/docs/autoPlacement#allowedplacements), given the different [Placement possibilities](https://floating-ui.com/docs/computePosition#placement).\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ['bottom-start', 'top-start', 'bottom-end', 'top-end']\n\t * ```\n\t */\n\treadonly allowedPlacements = input<Placement[]>(undefined, {alias: 'auAllowedPlacements'});\n\n\t/**\n\t * true if the select is open\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly open = input(undefined, {alias: 'auOpen', transform: auBooleanAttribute});\n\n\t/**\n\t * Filtered text to be display in the filter input\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly filterText = input<string>(undefined, {alias: 'auFilterText'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * true if the select is disabled\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly disabled = input(undefined, {alias: 'auDisabled', transform: auBooleanAttribute});\n\n\t/**\n\t * List of selected item ids\n\t *\n\t * @defaultValue `[]`\n\t */\n\treadonly selected = input<Item[]>(undefined, {alias: 'auSelected'});\n\n\t/**\n\t * true if a loading process is being done\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly loading = input(undefined, {alias: 'auLoading', transform: auBooleanAttribute});\n\n\t/**\n\t * Custom function to get the id of an item\n\t * By default, the item is returned\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (item: any) => '' + item\n\t * ```\n\t */\n\treadonly itemIdFn = input<(item: Item) => string>(undefined, {alias: 'auItemIdFn'});\n\n\t/**\n\t * Class to be added on the dropdown menu container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly menuClassName = input<string>(undefined, {alias: 'auMenuClassName'});\n\n\t/**\n\t * The template to override the way each badge on the left of the input is displayed.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\treadonly badgeLabel = input<SlotContent<SelectItemContext<Item>>>(undefined, {alias: 'auBadgeLabel'});\n\treadonly slotSelectBadgeLabelFromContent = contentChild(SelectBadgeLabelDirective);\n\n\t/**\n\t * The template to override the way each item is displayed in the list.\n\t * This define the content of the badge inside the badge container.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({itemContext}: SelectItemContext<any>) => itemContext.item\n\t * ```\n\t */\n\treadonly itemLabel = input<SlotContent<SelectItemContext<Item>>>(undefined, {alias: 'auItemLabel'});\n\treadonly slotSelectItemLabelFromContent = contentChild(SelectItemLabelDirective);\n\n\t/**\n\t * Callback called when the text filter change\n\t * @param text - Filtered text\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly filterTextChange = output<string>({alias: 'auFilterTextChange'});\n\n\t/**\n\t * Callback called when the selection change\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly selectedChange = output<Item[]>({alias: 'auSelectedChange'});\n\n\t/**\n\t * Callback called dropdown open state change\n\t * @param isOpen - updated open state\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly openChange = output<boolean>({alias: 'auOpenChange'});\n\n\t/**\n\t * Class to be added on menu items\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly menuItemClassName = input<string>(undefined, {alias: 'auMenuItemClassName'});\n\n\t/**\n\t * Class to be added on selected items (displayed in the input zone)\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly badgeClassName = input<string>(undefined, {alias: 'auBadgeClassName'});\n\n\t/**\n\t * Retrieves navigable elements within an HTML element containing badges and the input.\n\t *\n\t * @param node - HTMLElement that contains the badges and the input\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (node: HTMLElement) => node.querySelectorAll('.au-select-badge,input')\n\t * ```\n\t */\n\treadonly navSelector = input<(node: HTMLElement) => NodeListOf<HTMLSpanElement | HTMLInputElement>>(undefined, {alias: 'auNavSelector'});\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory<SelectWidget<Item>>(createSelect, {\n\t\t\t\tevents: {\n\t\t\t\t\tonOpenChange: (event) => this.openChange.emit(event),\n\t\t\t\t\tonSelectedChange: (event) => this.selectedChange.emit(event),\n\t\t\t\t\tonFilterTextChange: (event) => this.filterTextChange.emit(event),\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.referenceDirective);\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tbadgeLabel: this.slotSelectBadgeLabelFromContent()?.templateRef,\n\t\t\t\t\titemLabel: this.slotSelectItemLabelFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n\n\titemCtxTrackBy(_: number, itemContext: ItemContext<Item>) {\n\t\treturn itemContext.id;\n\t}\n}\n","import {getAlertDefaultConfig, createAlert} from '@agnos-ui/core-bootstrap/components/alert';\nimport type {WidgetSlotContext, SlotContent, TransitionFn, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\nimport type {BSContextualClass} from '@agnos-ui/core-bootstrap/types';\n\n\n\n/**\n * Retrieve a shallow copy of the default Alert config\n * @returns the default Alert config\n */\nconst export_getAlertDefaultConfig: () => AlertProps = getAlertDefaultConfig as any;\nexport {export_getAlertDefaultConfig as getAlertDefaultConfig};\n\n\n\n/**\n * Represents the context for an Alert component.\n */\nexport interface AlertContext extends WidgetSlotContext<AlertWidget> {}\n\n/**\n * Represents the state of an alert component.\n */\nexport interface AlertState {\n\t\n\t/**\n\t * Is `true` when the alert is hidden. Compared to `visible`, this is updated after the transition is executed.\n\t */\n\thidden: boolean;\n\t\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdismissible: boolean;\n\t\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n\t\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Global template for the alert component\n\t */\n\tstructure: SlotContent<AlertContext>;\n\t\n\t/**\n\t * Template for the alert content\n\t */\n\tchildren: SlotContent<AlertContext>;\n\t\n\t/**\n\t * Type of the alert, following bootstrap types.\n\t *\n\t * @defaultValue `'primary'`\n\t */\n\ttype: BSContextualClass;\n}\n\n/**\n * Represents the properties for the Alert component.\n */\nexport interface AlertProps {\n\t\n\t/**\n\t * The transition function will be executed when the alert is displayed or hidden.\n\t *\n\t * Depending on the value of `animatedOnInit`, the animation can be optionally skipped during the showing process.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\ttransition: TransitionFn;\n\t\n\t/**\n\t * Callback called when the alert visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonVisibleChange: (visible: boolean) => void;\n\t\n\n\t/**\n\t * Callback called when the alert is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonHidden: () => void;\n\t\n\n\t/**\n\t * Callback called when the alert is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonShown: () => void;\n\t\n\n\t/**\n\t * If `true`, alert opening will be animated.\n\t *\n\t * Animation is triggered when the `.open()` function is called\n\t * or the visible prop is changed\n\t *\n\t * @defaultValue `false`\n\t */\n\tanimatedOnInit: boolean;\n\t\n\t/**\n\t * If `true`, alert closing will be animated.\n\t *\n\t * Animation is triggered when clicked on the close button (×),\n\t * via the `.close()` function or the visible prop is changed\n\t *\n\t * @defaultValue `true`\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdismissible: boolean;\n\t\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n\t\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Global template for the alert component\n\t */\n\tstructure: SlotContent<AlertContext>;\n\t\n\t/**\n\t * Template for the alert content\n\t */\n\tchildren: SlotContent<AlertContext>;\n\t\n\t/**\n\t * Type of the alert, following bootstrap types.\n\t *\n\t * @defaultValue `'primary'`\n\t */\n\ttype: BSContextualClass;\n}\n\n\n\n/**\n * Represents an alert widget component.\n */\nexport type AlertWidget = Widget<AlertProps, AlertState, AlertApi, AlertDirectives>;\n\n\n\n/**\n * Create an AlertWidget with given config props\n * @param config - an optional alert config\n * @returns an AlertWidget\n */\nconst export_createAlert: WidgetFactory<AlertWidget> = createAlert as any;\nexport {export_createAlert as createAlert};\n\n/**\n * Represents the API for an alert component.\n */\nexport interface AlertApi {\n\t\n\t/**\n\t * Triggers alert closing programmatically (same as clicking on the close button (×)).\n\t */\n\tclose(): void;\n\t\n\n\t/**\n\t * Triggers the alert to be displayed for the user.\n\t */\n\topen(): void;\n}\n\n/**\n * Represents the directives for an alert component.\n */\nexport interface AlertDirectives {\n\t\n\t/**\n\t * the transition directive, piloting what is the visual effect of going from hidden to visible\n\t */\n\ttransitionDirective: Directive;\n}\n\n","import type {SlotContent, TransitionFn} from '@agnos-ui/angular-headless';\nimport {BaseWidgetDirective, ComponentTemplate, SlotDirective, UseDirective, auBooleanAttribute} from '@agnos-ui/angular-headless';\nimport type {AlertContext, AlertWidget} from './alert.gen';\nimport {createAlert} from './alert.gen';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, output, viewChild, contentChild} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\nimport type {BSContextualClass} from '@agnos-ui/core-bootstrap/types';\n\n/**\n * Directive to be used as a structural directive for the body of an alert component.\n *\n * This directive allows the use of a template reference for the alert body content, with type {@link AlertContext}.\n */\n@Directive({selector: 'ng-template[auAlertBody]'})\nexport class AlertBodyDirective {\n\tpublic templateRef = inject(TemplateRef<AlertContext>);\n\tstatic ngTemplateContextGuard(_dir: AlertBodyDirective, context: unknown): context is AlertContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to define the structure of an alert component.\n *\n * This directive uses a `TemplateRef` to inject the template reference of the {@link AlertContext}.\n */\n@Directive({selector: 'ng-template[auAlertStructure]'})\nexport class AlertStructureDirective {\n\tpublic templateRef = inject(TemplateRef<AlertContext>);\n\tstatic ngTemplateContextGuard(_dir: AlertStructureDirective, context: unknown): context is AlertContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, AlertStructureDirective],\n\ttemplate: ` <ng-template auAlertStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t<div class=\"alert-body\">\n\t\t\t<ng-template [auSlot]=\"state.children()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t</div>\n\t\t@if (state.dismissible()) {\n\t\t\t<button type=\"button\" class=\"btn-close\" (click)=\"api.close()\" [attr.aria-label]=\"state.ariaCloseButtonLabel()\"></button>\n\t\t}\n\t</ng-template>`,\n})\nclass AlertDefaultSlotsComponent {\n\treadonly structure = viewChild.required<TemplateRef<AlertContext>>('structure');\n}\n\n/**\n * Represents the default slot structure for the alert component.\n */\nexport const alertDefaultSlotStructure: SlotContent<AlertContext> = new ComponentTemplate(AlertDefaultSlotsComponent, 'structure');\n\n/**\n * AlertComponent is a UI component that extends BaseWidgetDirective to provide\n * an alert box with various customizable properties and behaviors.\n *\n * @remarks\n * This component is designed to be used with Bootstrap styles and supports\n * various Bootstrap contextual classes for different alert types.\n */\n@Component({\n\tselector: '[auAlert]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, UseDirective],\n\ttemplate: ` <ng-template #content>\n\t\t\t<ng-content />\n\t\t</ng-template>\n\n\t\t@if (!state.hidden()) {\n\t\t\t<div\n\t\t\t\t[auUse]=\"directives.transitionDirective\"\n\t\t\t\tclass=\"au-alert alert alert-{{ state.type() }} {{ state.className() }} {{ state.dismissible() ? 'alert-dismissible' : '' }}\"\n\t\t\t\trole=\"alert\"\n\t\t\t>\n\t\t\t\t<ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t</div>\n\t\t}`,\n})\nexport class AlertComponent extends BaseWidgetDirective<AlertWidget> {\n\t/**\n\t * Type of the alert, following bootstrap types.\n\t *\n\t * @defaultValue `'primary'`\n\t */\n\treadonly type = input<BSContextualClass>(undefined, {alias: 'auType'});\n\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly dismissible = input(undefined, {alias: 'auDismissible', transform: auBooleanAttribute});\n\n\t/**\n\t * The transition function will be executed when the alert is displayed or hidden.\n\t *\n\t * Depending on the value of `animatedOnInit`, the animation can be optionally skipped during the showing process.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\treadonly transition = input<TransitionFn>(undefined, {alias: 'auTransition'});\n\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly visible = input(undefined, {alias: 'auVisible', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, alert opening will be animated.\n\t *\n\t * Animation is triggered when the `.open()` function is called\n\t * or the visible prop is changed\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly animatedOnInit = input(undefined, {alias: 'auAnimatedOnInit', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, alert closing will be animated.\n\t *\n\t * Animation is triggered when clicked on the close button (×),\n\t * via the `.close()` function or the visible prop is changed\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\treadonly ariaCloseButtonLabel = input<string>(undefined, {alias: 'auAriaCloseButtonLabel'});\n\n\t/**\n\t * Template for the alert content\n\t */\n\treadonly children = input<SlotContent<AlertContext>>(undefined, {alias: 'auChildren'});\n\treadonly slotDefaultFromContent = contentChild(AlertBodyDirective);\n\n\t/**\n\t * Global template for the alert component\n\t */\n\treadonly structure = input<SlotContent<AlertContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(AlertStructureDirective);\n\n\t/**\n\t * Callback called when the alert visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly visibleChange = output<boolean>({alias: 'auVisibleChange'});\n\n\t/**\n\t * Callback called when the alert is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly hidden = output<void>({alias: 'auHidden'});\n\n\t/**\n\t * Callback called when the alert is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly shown = output<void>({alias: 'auShown'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\treadonly slotChildren = viewChild<TemplateRef<void>>('content');\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createAlert, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: alertDefaultSlotStructure,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonVisibleChange: (event) => this.visibleChange.emit(event),\n\t\t\t\t\tonShown: () => this.shown.emit(),\n\t\t\t\t\tonHidden: () => this.hidden.emit(),\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tchildren: this.slotDefaultFromContent()?.templateRef,\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t\tslotChildren: () => this.slotChildren(),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {getAccordionDefaultConfig, createAccordionItem, createAccordion, factoryCreateAccordion} from '@agnos-ui/core-bootstrap/components/accordion';\nimport type {WidgetSlotContext, SlotContent, TransitionFn, Widget, WidgetFactory, ConfigValidator, PropsConfig, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default accordion config\n * @returns the default accordion config\n */\nconst export_getAccordionDefaultConfig: () => AccordionProps = getAccordionDefaultConfig as any;\nexport {export_getAccordionDefaultConfig as getAccordionDefaultConfig};\n\n\n\n/**\n * Represents the context for an accordion item within the accordion component.\n */\nexport interface AccordionItemContext extends WidgetSlotContext<AccordionItemWidget> {}\n\n/**\n * Represents the state of an Accordion component.\n */\nexport interface AccordionState {\n\t\n\t/**\n\t * Array containing all the accordion-items contained in the accordion.\n\t */\n\titemWidgets: AccordionItemWidget[];\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\titemStructure: SlotContent<AccordionItemContext>;\n}\n\n/**\n * Represents the state of an AccordionItem component.\n */\nexport interface AccordionProps {\n\t\n\t/**\n\t * The transition to use for the accordion-item body-container when the accordion-item is toggled.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * collapseVerticalTransition\n\t * ```\n\t */\n\titemTransition: TransitionFn;\n\t\n\t/**\n\t * If `true`, only one accordion-item at the time can stay open.\n\t *\n\t * @defaultValue `false`\n\t */\n\tcloseOthers: boolean;\n\t\n\t/**\n\t * An event fired when an item is shown.\n\t *\n\t * Event payload is the id of the item.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonItemShown: (itemId: string) => void;\n\t\n\t/**\n\t * An event fired when an item is hidden.\n\t *\n\t * Event payload is the id of the item.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonItemHidden: (itemId: string) => void;\n\t\n\t/**\n\t * If `true`, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise.\n\t *\n\t * @defaultValue `true`\n\t */\n\titemDestroyOnHide: boolean;\n\t\n\t/**\n\t * If `true`, accordion-item will be animated.\n\t *\n\t * @defaultValue `true`\n\t */\n\titemAnimated: boolean;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item header DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemHeaderClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item toggle button DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemButtonClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body container DOM element.\n\t * The accordion-item body container is the DOM element on what the itemTransition is applied.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemBodyContainerClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemBodyClassName: string;\n\t\n\t/**\n\t * The html tag to use for the accordion-item-header.\n\t *\n\t * @defaultValue `''`\n\t */\n\titemHeadingTag: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\titemStructure: SlotContent<AccordionItemContext>;\n}\n\n\n\n/**\n * Represents an Accordion widget type.\n */\nexport type AccordionWidget = Widget<AccordionProps, AccordionState, AccordionApi, AccordionDirectives>;\n\n/**\n * Represents the state of an accordion item, extending the core item state and additional properties specific to the accordion item.\n */\nexport interface AccordionItemState {\n\t\n\t/**\n\t * If `true` the content of the accordion-item collapse should be in DOM. Its value depends on the\n\t * value of the `visible` and `destroyOnHide`.\n\t */\n\tshouldBeInDOM: boolean;\n\t\n\t/**\n\t * If `true`, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed).\n\t */\n\tvisible: boolean;\n\t\n\t/**\n\t * If `true`, the accordion-item will be disabled.\n\t * It will not react to user's clicks, but still will be possible to toggle programmatically.\n\t */\n\tdisabled: boolean;\n\t\n\t/**\n\t * The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api.\n\t */\n\tid: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item header DOM element.\n\t */\n\theaderClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item collapse DOM element.\n\t */\n\tbuttonClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body container DOM element.\n\t * The accordion-item body container is the DOM element on what the itemTransition is applied.\n\t */\n\tbodyContainerClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body DOM element.\n\t */\n\tbodyClassName: string;\n\t\n\t/**\n\t * The html tag to use for the accordion-item-header.\n\t */\n\theadingTag: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\tstructure: SlotContent<AccordionItemContext>;\n\t\n\t/**\n\t * Content present in the accordion body.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\tchildren: SlotContent<AccordionItemContext>;\n\t\n\t/**\n\t * Content present in the accordion button inside the accordion header.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\theader: SlotContent<AccordionItemContext>;\n}\n\n/**\n * Represents the properties for an Accordion item component.\n */\nexport interface AccordionItemProps {\n\t\n\t/**\n\t * If `true`, accordion-item will be animated.\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * The transition to use for the accordion-item body-container when the accordion-item is toggled.\n\t */\n\ttransition: TransitionFn;\n\t\n\t/**\n\t * If `true`, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise.\n\t */\n\tdestroyOnHide: boolean;\n\t\n\t/**\n\t * An event fired when an item is shown.\n\t */\n\tonShown: () => void;\n\t\n\t/**\n\t * An event fired when an item is hidden.\n\t */\n\tonHidden: () => void;\n\t\n\t/**\n\t * An event fired when the `visible` value changes.\n\t *\n\t * Event payload is the new value of visible.\n\t */\n\tonVisibleChange: (visible: boolean) => void;\n\t\n\t/**\n\t * If `true`, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed).\n\t */\n\tvisible: boolean;\n\t\n\t/**\n\t * If `true`, the accordion-item will be disabled.\n\t * It will not react to user's clicks, but still will be possible to toggle programmatically.\n\t */\n\tdisabled: boolean;\n\t\n\t/**\n\t * The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api.\n\t */\n\tid: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item header DOM element.\n\t */\n\theaderClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item collapse DOM element.\n\t */\n\tbuttonClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body container DOM element.\n\t * The accordion-item body container is the DOM element on what the itemTransition is applied.\n\t */\n\tbodyContainerClassName: string;\n\t\n\t/**\n\t * CSS classes to add on the accordion-item body DOM element.\n\t */\n\tbodyClassName: string;\n\t\n\t/**\n\t * The html tag to use for the accordion-item-header.\n\t */\n\theadingTag: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\tstructure: SlotContent<AccordionItemContext>;\n\t\n\t/**\n\t * Content present in the accordion body.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\tchildren: SlotContent<AccordionItemContext>;\n\t\n\t/**\n\t * Content present in the accordion button inside the accordion header.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\theader: SlotContent<AccordionItemContext>;\n}\n\n\n\n/**\n * Represents a widget for an accordion item.\n */\nexport type AccordionItemWidget = Widget<AccordionItemProps, AccordionItemState, AccordionItemApi, AccordionItemDirectives>;\n\n\n\n/**\n * Create an AccordionItemWidget with given config props\n * @param config - an optional AccordionItem config\n * @returns an AccordionItemWidget\n */\nconst export_createAccordionItem: WidgetFactory<AccordionItemWidget> = createAccordionItem as any;\nexport {export_createAccordionItem as createAccordionItem};\n\n\n\n/**\n * Create an AccordionWidget with given config props\n * @param config - an optional accordion config\n * @returns an AccordionWidget\n */\nconst export_createAccordion: WidgetFactory<AccordionWidget> = createAccordion as any;\nexport {export_createAccordion as createAccordion};\n\n\n\n/**\n * Create an accordion WidgetFactory based on a item factory and the list of item props that should inherit from the parent accordion\n *\n * @param itemFactory - the item factory\n * @param accordionItemProps - the list of item props\n * @param accordionConfig - the default accordion config\n * @param accordionValidator - the validator of props\n * @returns the accordion widget factory\n */\nconst export_factoryCreateAccordion: (itemFactory?: WidgetFactory<AccordionItemWidget>, accordionItemProps?: string[], accordionConfig?: AccordionProps, accordionValidator?: ConfigValidator<AccordionProps>) => WidgetFactory<AccordionWidget> = factoryCreateAccordion as any;\nexport {export_factoryCreateAccordion as factoryCreateAccordion};\n\n/**\n * Interface representing the API for an accordion component.\n */\nexport interface AccordionApi {\n\t\n\t/**\n\t * Given the itemId, will expand the corresponding accordion-item.\n\t *\n\t * If the itemId is not valid, nothing will happen.\n\t */\n\texpand(itemId: string): void;\n\t\n\t/**\n\t * Given the itemId, will collapse the corresponding accordion-item.\n\t *\n\t * If the itemId is not valid, nothing will happen.\n\t */\n\tcollapse(itemId: string): void;\n\t\n\t/**\n\t * Given the itemId, will toggle the corresponding accordion-item.\n\t *\n\t * If the itemId is not valid, nothing will happen.\n\t */\n\ttoggle(itemId: string): void;\n\t\n\t/**\n\t * It will expand all the items in the accordion.\n\t *\n\t * If `closeOthers` is `true` it will expand only the last accordion-item.\n\t */\n\texpandAll(): void;\n\t\n\t/**\n\t * It will collapse all the accordion-items in the accordion.\n\t */\n\tcollapseAll(): void;\n\t\n\t/**\n\t * Creates a new accordionItem.\n\t */\n\tregisterItem(itemConfig?: PropsConfig<AccordionItemProps>): AccordionItemWidget;\n}\n\n/**\n * Interface representing the directives used in the Accordion component.\n */\nexport interface AccordionDirectives {\n\t\n\t/**\n\t * Directive to put on the accordion DOM element\n\t */\n\taccordionDirective: Directive;\n}\n\n/**\n * Interface representing the API for an accordion item.\n */\nexport interface AccordionItemApi {\n\t\n\t/**\n\t * It will collapse the accordion-item.\n\t */\n\tcollapse(): void;\n\t\n\n\t/**\n\t * It will expand the accordion-item.\n\t */\n\texpand(): void;\n\t\n\t/**\n\t * It will toggle the accordion-item.\n\t */\n\ttoggle(): void;\n\t\n\t/**\n\t * Method to be called after the initialization to allow animations.\n\t */\n\tinitDone(): void;\n}\n\n/**\n * Interface representing the directives used in an accordion item.\n */\nexport interface AccordionItemDirectives {\n\t\n\t/**\n\t * Directive to use in special cases, if the accordion header does not use a button element to control the collapsing.\n\t */\n\ttoggleDirective: Directive;\n\t\n\n\t/**\n\t * Directive to put on the button element that will control the collapsing of the accordion-item.\n\t */\n\tbuttonDirective: Directive;\n\t\n\n\t/**\n\t * Directive to put on the accordion-item header that will contain the button element.\n\t */\n\theaderDirective: Directive;\n\t\n\n\t/**\n\t * Directive to put on the accordion-item body.\n\t */\n\tbodyDirective: Directive;\n\t\n\t/**\n\t * Directive to apply the itemTransition\n\t */\n\ttransitionDirective: Directive;\n\t\n\t/**\n\t * Directive to apply aria attributes to the expanded body panel\n\t */\n\tbodyContainerAttrsDirective: Directive;\n\t\n\t/**\n\t * Directive to be put on the accordion-item body container. It will handle the animation.\n\t */\n\tbodyContainerDirective: Directive;\n\t\n\t/**\n\t * Directive to be put on the accordion-item. It will handle adding the accordion-item to the accordion.\n\t */\n\titemDirective: Directive;\n}\n\n","import type {SlotContent, TransitionFn} from '@agnos-ui/angular-headless';\nimport {\n\tBaseWidgetDirective,\n\tComponentTemplate,\n\tSlotDirective,\n\tUseDirective,\n\tauBooleanAttribute,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\nimport {NgTemplateOutlet} from '@angular/common';\nimport type {AfterViewInit} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, output, viewChild, contentChild} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\nimport type {AccordionItemContext, AccordionItemWidget, AccordionWidget} from './accordion.gen';\nimport {createAccordion} from './accordion.gen';\n\n/**\n * Directive to represent the body of an accordion item.\n *\n * This directive provides a template reference for the {@link AccordionItemContext}.\n */\n@Directive({selector: 'ng-template[auAccordionItemBody]'})\nexport class AccordionBodyDirective {\n\tpublic templateRef = inject(TemplateRef<AccordionItemContext>);\n\tstatic ngTemplateContextGuard(_dir: AccordionBodyDirective, context: unknown): context is AccordionItemContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to be used as an accordion header.\n *\n * This directive provides a template reference for the {@link AccordionItemContext}.\n */\n@Directive({selector: 'ng-template[auAccordionItemHeader]'})\nexport class AccordionHeaderDirective {\n\tpublic templateRef = inject(TemplateRef<AccordionItemContext>);\n\tstatic ngTemplateContextGuard(_dir: AccordionHeaderDirective, context: unknown): context is AccordionItemContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive that represents the structure of an accordion item.\n *\n * This directive provides a template reference for the {@link AccordionItemContext}.\n * It also includes a static method to guard the template context type.\n */\n@Directive({selector: 'ng-template[auAccordionItemStructure]'})\nexport class AccordionItemStructureDirective {\n\tpublic templateRef = inject(TemplateRef<AccordionItemContext>);\n\tstatic ngTemplateContextGuard(_dir: AccordionItemStructureDirective, context: unknown): context is AccordionItemContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, SlotDirective, NgTemplateOutlet, AccordionItemStructureDirective],\n\ttemplate: `\n\t\t<ng-template auAccordionItemStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t@switch (state.headingTag()) {\n\t\t\t\t@case ('h1') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h1\" />\n\t\t\t\t}\n\t\t\t\t@case ('h2') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h2\" />\n\t\t\t\t}\n\t\t\t\t@case ('h3') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h3\" />\n\t\t\t\t}\n\t\t\t\t@case ('h4') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h4\" />\n\t\t\t\t}\n\t\t\t\t@case ('h5') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h5\" />\n\t\t\t\t}\n\t\t\t\t@case ('h6') {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h6\" />\n\t\t\t\t}\n\t\t\t\t@default {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"h2\" />\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t<ng-template #h1>\n\t\t\t\t<h1 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h1>\n\t\t\t</ng-template>\n\n\t\t\t<ng-template #h2>\n\t\t\t\t<h2 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h2>\n\t\t\t</ng-template>\n\n\t\t\t<ng-template #h3>\n\t\t\t\t<h3 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h3>\n\t\t\t</ng-template>\n\n\t\t\t<ng-template #h4>\n\t\t\t\t<h4 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h4>\n\t\t\t</ng-template>\n\n\t\t\t<ng-template #h5>\n\t\t\t\t<h5 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h5>\n\t\t\t</ng-template>\n\t\t\t<ng-template #h6>\n\t\t\t\t<h6 class=\"accordion-header\" [auUse]=\"directives.headerDirective\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"button\" />\n\t\t\t\t</h6>\n\t\t\t</ng-template>\n\n\t\t\t<ng-template #button>\n\t\t\t\t<button class=\"accordion-button \" [auUse]=\"directives.buttonDirective\">\n\t\t\t\t\t<ng-template [auSlotProps]=\"{state, directives, api}\" [auSlot]=\"state.header()\" />\n\t\t\t\t</button>\n\t\t\t</ng-template>\n\t\t\t@if (state.shouldBeInDOM()) {\n\t\t\t\t<div [auUse]=\"directives.bodyContainerDirective\" class=\"accordion-collapse\">\n\t\t\t\t\t<div class=\"accordion-body\" [auUse]=\"directives.bodyDirective\">\n\t\t\t\t\t\t<ng-template [auSlotProps]=\"{state, directives, api}\" [auSlot]=\"state.children()\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-template>\n\t`,\n})\nclass AccordionItemDefaultSlotsComponent {\n\treadonly structure = viewChild.required<TemplateRef<AccordionItemContext>>('structure');\n}\n/**\n * Represents the default slot structure for an accordion item.\n */\nexport const accordionItemDefaultSlotStructure: SlotContent<AccordionItemContext> = new ComponentTemplate(\n\tAccordionItemDefaultSlotsComponent,\n\t'structure',\n);\n\n/**\n * AccordionItemComponent is a component that represents an item within an accordion.\n */\n@Component({\n\tselector: '[auAccordionItem]',\n\texportAs: 'auAccordionItem',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'accordion-item',\n\t},\n\timports: [SlotDirective],\n\ttemplate: `\n\t\t<ng-template #content><ng-content /></ng-template>\n\t\t<ng-template [auSlotProps]=\"{state, api, directives}\" [auSlot]=\"state.structure()\" />\n\t`,\n})\nexport class AccordionItemComponent extends BaseWidgetDirective<AccordionItemWidget> implements AfterViewInit {\n\t/**\n\t * Content present in the accordion button inside the accordion header.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\treadonly header = input<SlotContent<AccordionItemContext>>(undefined, {alias: 'auHeader'});\n\treadonly slotHeaderFromContent = contentChild(AccordionHeaderDirective);\n\t/**\n\t * Content present in the accordion body.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\treadonly children = input<SlotContent<AccordionItemContext>>(undefined, {alias: 'auChildren'});\n\treadonly slotBodyFromContent = contentChild(AccordionBodyDirective);\n\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\treadonly structure = input<SlotContent<AccordionItemContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(AccordionItemStructureDirective);\n\n\t/**\n\t * The id of the accordion-item. It can be used for controlling the accordion-item via the accordion api.\n\t */\n\treadonly id = input<string>(undefined, {alias: 'auId'});\n\t/**\n\t * The transition to use for the accordion-item body-container when the accordion-item is toggled.\n\t */\n\treadonly transition = input<TransitionFn>(undefined, {alias: 'auTransition'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\t/**\n\t * If `true`, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise.\n\t */\n\treadonly destroyOnHide = input(undefined, {alias: 'auDestroyOnHide', transform: auBooleanAttribute});\n\t/**\n\t * If `true`, the accordion-item will be disabled.\n\t * It will not react to user's clicks, but still will be possible to toggle programmatically.\n\t */\n\treadonly disabled = input(undefined, {alias: 'auDisabled', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, the accordion-item will be visible (expanded). Otherwise, it will be hidden (collapsed).\n\t */\n\treadonly visible = input(undefined, {alias: 'auVisible', transform: auBooleanAttribute});\n\t/**\n\t * If `true`, accordion-item will be animated.\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\t/**\n\t * CSS classes to add on the accordion-item header DOM element.\n\t */\n\treadonly headerClassName = input<string>(undefined, {alias: 'auHeaderClassName'});\n\t/**\n\t * CSS classes to add on the accordion-item collapse DOM element.\n\t */\n\treadonly buttonClassName = input<string>(undefined, {alias: 'auButtonClassName'});\n\t/**\n\t * CSS classes to add on the accordion-item body container DOM element.\n\t * The accordion-item body container is the DOM element on what the itemTransition is applied.\n\t */\n\treadonly bodyContainerClassName = input<string>(undefined, {alias: 'auBodyContainerClassName'});\n\t/**\n\t * CSS classes to add on the accordion-item body DOM element.\n\t */\n\treadonly bodyClassName = input<string>(undefined, {alias: 'auBodyClassName'});\n\t/**\n\t * The html tag to use for the accordion-item-header.\n\t */\n\treadonly headingTag = input<string>(undefined, {alias: 'auHeadingTag'});\n\t/**\n\t * An event fired when an item is shown.\n\t */\n\treadonly shown = output<void>({alias: 'auShown'});\n\t/**\n\t * An event fired when an item is hidden.\n\t */\n\treadonly hidden = output<void>({alias: 'auHidden'});\n\t/**\n\t * An event fired when the `visible` value changes.\n\t *\n\t * Event payload is the new value of visible.\n\t */\n\treadonly visibleChange = output<boolean>({alias: 'auVisibleChange'});\n\n\treadonly slotChildren = viewChild<TemplateRef<void>>('content');\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory<AccordionItemWidget>((arg) => inject(AccordionDirective).api.registerItem(arg), {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: accordionItemDefaultSlotStructure,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonVisibleChange: (visible) => this.visibleChange.emit(visible),\n\t\t\t\t\tonHidden: () => this.hidden.emit(),\n\t\t\t\t\tonShown: () => this.shown.emit(),\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.itemDirective);\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\theader: this.slotHeaderFromContent()?.templateRef,\n\t\t\t\t\tchildren: this.slotBodyFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t\tslotChildren: () => this.slotChildren(),\n\t\t\t}),\n\t\t);\n\t}\n\n\tngAfterViewInit() {\n\t\tqueueMicrotask(() => this.api.initDone());\n\t}\n}\n\n/**\n * Directive for creating an accordion component.\n *\n * This directive extends the `BaseWidgetDirective` and provides various inputs and outputs\n * to customize the behavior and appearance of the accordion and its items.\n *\n */\n@Directive({\n\tselector: '[auAccordion]',\n\texportAs: 'auAccordion',\n\n\thost: {\n\t\tclass: 'accordion',\n\t},\n})\nexport class AccordionDirective extends BaseWidgetDirective<AccordionWidget> {\n\t/**\n\t * If `true`, only one accordion-item at the time can stay open.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly closeOthers = input(undefined, {alias: 'auCloseOthers', transform: auBooleanAttribute});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * An event fired when an item is shown.\n\t *\n\t * Event payload is the id of the item.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly itemShown = output<string>({alias: 'auItemShown'});\n\n\t/**\n\t * An event fired when an item is hidden.\n\t *\n\t * Event payload is the id of the item.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly itemHidden = output<string>({alias: 'auItemHidden'});\n\n\t/**\n\t * If `true`, the accordion-item body container will be removed from the DOM when the accordion-item is collapsed. It will be just hidden otherwise.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly itemDestroyOnHide = input(undefined, {alias: 'auItemDestroyOnHide', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, accordion-item will be animated.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly itemAnimated = input(undefined, {alias: 'auItemAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * The transition to use for the accordion-item body-container when the accordion-item is toggled.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * collapseVerticalTransition\n\t * ```\n\t */\n\treadonly itemTransition = input<TransitionFn>(undefined, {alias: 'auItemTransition'});\n\n\t/**\n\t * Structure of the accordion-item. The default item structure is: accordion-item\n\t * contains accordion header and accordion-item body container; the accordion header contains the accordion button\n\t * (that contains `header`), while the accordion-item body container contains the accordion body (that contains `children`).\n\t * The itemTransition is applied on this element.\n\t *\n\t * It is a prop of the accordion-item.\n\t */\n\treadonly itemStructure = input<SlotContent<AccordionItemContext>>(undefined, {alias: 'auItemStructure'});\n\n\t/**\n\t * CSS classes to add on the accordion-item DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemClassName = input<string>(undefined, {alias: 'auItemClassName'});\n\n\t/**\n\t * CSS classes to add on the accordion-item header DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemHeaderClassName = input<string>(undefined, {alias: 'auItemHeaderClassName'});\n\n\t/**\n\t * CSS classes to add on the accordion-item toggle button DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemButtonClassName = input<string>(undefined, {alias: 'auItemButtonClassName'});\n\n\t/**\n\t * CSS classes to add on the accordion-item body container DOM element.\n\t * The accordion-item body container is the DOM element on what the itemTransition is applied.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemBodyContainerClassName = input<string>(undefined, {alias: 'auItemBodyContainerClassName'});\n\n\t/**\n\t * CSS classes to add on the accordion-item body DOM element.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemBodyClassName = input<string>(undefined, {alias: 'auItemBodyClassName'});\n\n\t/**\n\t * The html tag to use for the accordion-item-header.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly itemHeadingTag = input<string>(undefined, {alias: 'auItemHeadingTag'});\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createAccordion, {\n\t\t\t\tevents: {\n\t\t\t\t\tonItemShown: (id) => this.itemShown.emit(id),\n\t\t\t\t\tonItemHidden: (id) => this.itemHidden.emit(id),\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.accordionDirective);\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {getSliderDefaultConfig, createSlider} from '@agnos-ui/core-bootstrap/components/slider';\nimport type {WidgetSlotContext, SlotContent, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default Slider config\n * @returns the default Slider config\n */\nconst export_getSliderDefaultConfig: () => SliderProps = getSliderDefaultConfig as any;\nexport {export_getSliderDefaultConfig as getSliderDefaultConfig};\n\n\n\n/**\n * Represents the context for a Slider component.\n * This type is an alias for `WidgetSlotContext<SliderWidget>`.\n */\nexport interface SliderContext extends WidgetSlotContext<SliderWidget> {}\n\n\n/**\n * Represents the context for a slider slot label, extending the base `SliderContext`\n * with an additional `value` property.\n */\nexport interface SliderSlotLabelContext extends SliderContext {\n\t/**\n\t * the value of the handle the label is attached to\n\t */\n\tvalue: number;\n}\n\n\n/**\n * Represents the context for a slider slot handle.\n * This type extends the `SliderContext` and includes an additional `item` property of type `SliderHandle`.\n */\nexport interface SliderSlotHandleContext extends SliderContext {\n\t/**\n\t * the handle context\n\t */\n\titem: SliderHandle;\n}\n\n\n\n/**\n * Represents the context for a slider tick slot\n */\nexport interface SliderSlotTickContext extends SliderContext {\n\t/**\n\t * tick context\n\t */\n\ttick: SliderTick;\n}\n\n/**\n * Represents the state of a slider component.\n */\nexport interface SliderState {\n\t\n\t/**\n\t * Sorted slider values\n\t */\n\tsortedValues: number[];\n\t\n\n\t/**\n\t * Combined label left offset in %\n\t */\n\tcombinedLabelPositionLeft: number;\n\t\n\n\t/**\n\t * Combined label top offset in %\n\t */\n\tcombinedLabelPositionTop: number;\n\t\n\n\t/**\n\t * If true, the minimum label will be visible\n\t */\n\tminValueLabelDisplay: boolean;\n\t\n\n\t/**\n\t * If true, the maximum label will be visible\n\t */\n\tmaxValueLabelDisplay: boolean;\n\t\n\n\t/**\n\t * If true, the label when the handles are close is visible\n\t */\n\tcombinedLabelDisplay: boolean;\n\t\n\n\t/**\n\t * Array of the sorted handles to display\n\t */\n\tsortedHandles: SliderHandle[];\n\t\n\n\t/**\n\t * Array of objects representing progress display options\n\t */\n\tprogressDisplayOptions: ProgressDisplayOptions[];\n\t\n\n\t/**\n\t * Array of objects representing handle display options\n\t */\n\thandleDisplayOptions: HandleDisplayOptions[];\n\t\n\n\t/**\n\t * Check if the slider is interactive, meaning it is not disabled or readonly\n\t */\n\tinteractive: boolean;\n\t\n\n\t/**\n\t * Array of ticks to display on the slider component\n\t */\n\tticks: SliderTick[];\n\t\n\t/**\n\t * Minimum value that can be assigned to the slider\n\t *\n\t * @defaultValue `0`\n\t */\n\tmin: number;\n\t\n\n\t/**\n\t * Maximum value that can be assigned to the slider\n\t *\n\t * @defaultValue `100`\n\t */\n\tmax: number;\n\t\n\n\t/**\n\t * Unit value between slider steps\n\t *\n\t * @defaultValue `1`\n\t */\n\tstepSize: number;\n\t\n\n\t/**\n\t * If `true` slider value cannot be changed but the slider is still focusable\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly: boolean;\n\t\n\n\t/**\n\t * If `true` slider value cannot be changed and the slider cannot be focused\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true` is vertically positioned otherwise it is horizontal\n\t *\n\t * @defaultValue `false`\n\t */\n\tvertical: boolean;\n\t\n\n\t/**\n\t * Current slider values\n\t *\n\t * @defaultValue `[0]`\n\t */\n\tvalues: number[];\n\t\n\n\t/**\n\t * If `true` the value labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\tshowValueLabels: boolean;\n\t\n\n\t/**\n\t * If `true` the min and max labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\tshowMinMaxLabels: boolean;\n\t\n\n\t/**\n\t * If `true` the ticks are displayed on the slider\n\t *\n\t * @defaultValue `false`\n\t */\n\tshowTicks: boolean;\n\t\n\n\t/**\n\t * It `true` slider display is inversed\n\t *\n\t * @defaultValue `false`\n\t */\n\trtl: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Slot to change the default display of the slider\n\t */\n\tstructure: SlotContent<SliderContext>;\n\t\n\n\t/**\n\t * Slot to change the default labels of the slider\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({value}: SliderSlotLabelContext) => '' + value\n\t * ```\n\t */\n\tlabel: SlotContent<SliderSlotLabelContext>;\n\t\n\n\t/**\n\t * Slot to change the handlers\n\t */\n\thandle: SlotContent<SliderSlotHandleContext>;\n\t\n\n\t/**\n\t * Slot to change the ticks\n\t */\n\ttick: SlotContent<SliderSlotTickContext>;\n}\n\n/**\n * Represents the properties for the Slider component.\n */\nexport interface SliderProps {\n\t\n\t/**\n\t * Return the value for the 'aria-label' attribute for the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => 'Value'\n\t * ```\n\t */\n\tariaLabel: (sortedIndex: number) => string;\n\t\n\n\t/**\n\t * Return the value for the 'aria-labelledBy' attribute for the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => ''\n\t * ```\n\t */\n\tariaLabelledBy: (sortedIndex: number) => string;\n\t\n\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute for the handle\n\t * @param value - value of the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (value: number) => ''\n\t * ```\n\t */\n\tariaValueText: (value: number, sortedIndex: number) => string;\n\t\n\n\t/**\n\t * An event emitted when slider values are changed\n\t *\n\t * Event payload equals to the updated slider values\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonValuesChange: (values: number[]) => void;\n\t\n\n\t/**\n\t * Unit value between the ticks\n\t * If value is set to `0` the {@link stepSize} is used to space the ticks\n\t *\n\t * @defaultValue `0`\n\t */\n\ttickInterval: number;\n\t\n\n\t/**\n\t * If `true` the tick values are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\tshowTickValues: boolean;\n\t\n\n\t/**\n\t * Minimum distance between two values.\n\t * When set to 0, no minimum distance constraint is applied.\n\t *\n\t * @defaultValue 0\n\t */\n\tminRange: number;\n\t\n\n\t/**\n\t * Maximum distance between two values\n\t * When set to 0, no maximum distance constraint is applied.\n\t *\n\t * @defaultValue 0\n\t */\n\tmaxRange: number;\n\t\n\n\t/**\n\t * When true, if moving a value would break the minRange or maxRange constraint,\n\t * it will instead push or pull the neighboring values to keep the allowed range rather than just stopping.\n\t *\n\t * @defaultValue false\n\t */\n\tpushRange: boolean;\n\t\n\t/**\n\t * Minimum value that can be assigned to the slider\n\t *\n\t * @defaultValue `0`\n\t */\n\tmin: number;\n\t\n\n\t/**\n\t * Maximum value that can be assigned to the slider\n\t *\n\t * @defaultValue `100`\n\t */\n\tmax: number;\n\t\n\n\t/**\n\t * Unit value between slider steps\n\t *\n\t * @defaultValue `1`\n\t */\n\tstepSize: number;\n\t\n\n\t/**\n\t * If `true` slider value cannot be changed but the slider is still focusable\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly: boolean;\n\t\n\n\t/**\n\t * If `true` slider value cannot be changed and the slider cannot be focused\n\t *\n\t * @defaultValue `false`\n\t */\n\tdisabled: boolean;\n\t\n\n\t/**\n\t * If `true` is vertically positioned otherwise it is horizontal\n\t *\n\t * @defaultValue `false`\n\t */\n\tvertical: boolean;\n\t\n\n\t/**\n\t * Current slider values\n\t *\n\t * @defaultValue `[0]`\n\t */\n\tvalues: number[];\n\t\n\n\t/**\n\t * If `true` the value labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\tshowValueLabels: boolean;\n\t\n\n\t/**\n\t * If `true` the min and max labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\tshowMinMaxLabels: boolean;\n\t\n\n\t/**\n\t * If `true` the ticks are displayed on the slider\n\t *\n\t * @defaultValue `false`\n\t */\n\tshowTicks: boolean;\n\t\n\n\t/**\n\t * It `true` slider display is inversed\n\t *\n\t * @defaultValue `false`\n\t */\n\trtl: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Slot to change the default display of the slider\n\t */\n\tstructure: SlotContent<SliderContext>;\n\t\n\n\t/**\n\t * Slot to change the default labels of the slider\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({value}: SliderSlotLabelContext) => '' + value\n\t * ```\n\t */\n\tlabel: SlotContent<SliderSlotLabelContext>;\n\t\n\n\t/**\n\t * Slot to change the handlers\n\t */\n\thandle: SlotContent<SliderSlotHandleContext>;\n\t\n\n\t/**\n\t * Slot to change the ticks\n\t */\n\ttick: SlotContent<SliderSlotTickContext>;\n}\n\n\n\n/**\n * Represents a slider widget component.\n */\nexport type SliderWidget = Widget<SliderProps, SliderState, object, SliderDirectives>;\n\n\n\n/**\n * Create a Slider with given config props\n * @param config - an optional slider config\n * @returns a SliderWidget\n */\n\nconst export_createSlider: WidgetFactory<SliderWidget> = createSlider as any;\nexport {export_createSlider as createSlider};\n\n/**\n * Options for displaying progress in a slider component.\n */\nexport interface ProgressDisplayOptions {\n\t\n\t/**\n\t * Right offset of the progress in %\n\t */\n\tleft: number | null;\n\t\n\t/**\n\t * Left offset of the progress in %\n\t */\n\tright: number | null;\n\t\n\t/**\n\t * Top offset of the progress in %\n\t */\n\ttop: number | null;\n\t\n\t/**\n\t * Bottom offset of the progress in %\n\t */\n\tbottom: number | null;\n\t\n\t/**\n\t * Width of the progress in %\n\t */\n\twidth: number;\n\t\n\t/**\n\t * Height of the progress in %\n\t */\n\theight: number;\n\t\n\t/**\n\t * Id of the progress\n\t */\n\tid: number;\n}\n\n/**\n * Options for displaying a handle in a slider component.\n */\nexport interface HandleDisplayOptions {\n\t\n\t/**\n\t * Left offset of the handle in %\n\t */\n\tleft: number | null;\n\t\n\t/**\n\t * Top offset of the handle in %\n\t */\n\ttop: number | null;\n}\n\n/**\n * Represents a handle in a slider component.\n */\nexport interface SliderHandle {\n\t\n\t/**\n\t * Value of the handle\n\t */\n\tvalue: number;\n\t\n\t/**\n\t * Handle id\n\t */\n\tid: number;\n\t\n\t/**\n\t * ariaLabel of the handle\n\t */\n\tariaLabel: string | undefined;\n\t\n\t/**\n\t * ariaValueText of the handle\n\t */\n\tariaValueText: string | undefined;\n\t\n\t/**\n\t * aria-labelledBy of the handle\n\t */\n\tariaLabelledBy: string | undefined;\n}\n\n/**\n * Represents a tick in a slider component.\n */\nexport interface SliderTick {\n\t\n\t/**\n\t * CSS classes to be applied on the tick\n\t */\n\tclassName?: string | null;\n\t\n\t/**\n\t * Visualized optional explanation of the label\n\t */\n\tlegend?: string | null;\n\t\n\t/**\n\t * Position of the tick in percent\n\t */\n\tposition: number;\n\t\n\t/**\n\t * If `true` the tick has selected style\n\t */\n\tselected: boolean;\n\t\n\t/**\n\t * Value of the tick\n\t */\n\tvalue: number;\n\t\n\t/**\n\t * If `true` the tick label is displayed\n\t */\n\tdisplayLabel: boolean;\n}\n\n/**\n * Interface representing various directives used in the slider component.\n */\nexport interface SliderDirectives {\n\t\n\t/**\n\t * Directive to get the slider component elementRef\n\t */\n\tsliderDirective: Directive;\n\t\n\n\t/**\n\t * Directive to apply to the slider container wrapping the slider content\n\t */\n\tcontainerDirective: Directive;\n\t\n\n\t/**\n\t * Directive used to style the progress display for each handle\n\t */\n\tprogressDisplayDirective: Directive<{option: ProgressDisplayOptions}>;\n\t\n\n\t/**\n\t * Directive to apply to the slider clickable area, to directly move the handle to a given specific position\n\t */\n\tclickableAreaDirective: Directive;\n\t\n\n\t/**\n\t * Directive to apply handle events handlers\n\t */\n\thandleEventsDirective: Directive<{item: {id: number}}>;\n\t\n\t/**\n\t * Directive to apply to the slider handle if any\n\t */\n\thandleDirective: Directive<{item: SliderHandle}>;\n\t\n\n\t/**\n\t * Directive to get the minLabel elementRef\n\t */\n\tminLabelDirective: Directive;\n\t\n\n\t/**\n\t * Directive to get the maxLabel elementRef\n\t */\n\tmaxLabelDirective: Directive;\n\t\n\n\t/**\n\t * Directive to apply to the handle when combined label display is active\n\t */\n\tcombinedHandleLabelDisplayDirective: Directive;\n\t\n\n\t/**\n\t * Directive to apply to the handle when combined label display is not active\n\t */\n\thandleLabelDisplayDirective: Directive<{index: number}>;\n\t\n\n\t/**\n\t * Directive to apply to the slider tick\n\t */\n\ttickDirective: Directive<{tick: SliderTick}>;\n\t\n\n\t/**\n\t * Directive to apply to the slider tick label\n\t */\n\ttickLabelDirective: Directive<{tick: SliderTick}>;\n}\n\n","import type {SlotContent} from '@agnos-ui/angular-headless';\nimport {\n\tBaseWidgetDirective,\n\tComponentTemplate,\n\tSlotDirective,\n\tUseDirective,\n\tauBooleanAttribute,\n\tauNumberAttribute,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tDirective,\n\ttype OnDestroy,\n\tTemplateRef,\n\tViewEncapsulation,\n\tcontentChild,\n\tforwardRef,\n\tinject,\n\tinput,\n\toutput,\n\tviewChild,\n} from '@angular/core';\nimport {type ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {callWidgetFactory} from '../../config';\nimport type {SliderContext, SliderSlotHandleContext, SliderSlotLabelContext, SliderSlotTickContext, SliderWidget} from './slider.gen';\nimport {createSlider} from './slider.gen';\n\n/**\n * Directive to provide a template reference for slider labels.\n *\n * This directive uses a template reference to render the {@link SliderSlotLabelContext}.\n */\n@Directive({selector: 'ng-template[auSliderLabel]'})\nexport class SliderLabelDirective {\n\tpublic templateRef = inject(TemplateRef<SliderSlotLabelContext>);\n\tstatic ngTemplateContextGuard(_dir: SliderLabelDirective, context: unknown): context is SliderSlotLabelContext {\n\t\treturn true;\n\t}\n}\n/**\n * Directive representing a handle for a slider component.\n *\n * This directive uses a template reference to render the {@link SliderSlotHandleContext}.\n */\n@Directive({selector: 'ng-template[auSliderHandle]'})\nexport class SliderHandleDirective {\n\tpublic templateRef = inject(TemplateRef<SliderSlotHandleContext>);\n\tstatic ngTemplateContextGuard(_dir: SliderHandleDirective, context: unknown): context is SliderSlotHandleContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, SliderHandleDirective],\n\ttemplate: `\n\t\t<ng-template auSliderHandle #handle let-state=\"state\" let-directives=\"directives\" let-item=\"item\">\n\t\t\t<button [auUse]=\"[directives.handleDirective, {item}]\" (keydown)=\"onKeyDown($event)\"></button>\n\t\t</ng-template>\n\t`,\n})\nclass SliderDefaultHandleSlotComponent implements OnDestroy {\n\treadonly handle = viewChild.required<TemplateRef<SliderSlotHandleContext>>('handle');\n\n\tprivate updateTimeout?: ReturnType<typeof setTimeout>;\n\n\t/**\n\t * Key handler that sets the refocus element only on the key strokes that move\n\t * the element up the DOM\n\t * @param event object containting key stroke and the target element\n\t */\n\tonKeyDown(event: KeyboardEvent) {\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\tcase 'ArrowLeft':\n\t\t\tcase 'Home':\n\t\t\tcase 'ArrowUp':\n\t\t\tcase 'ArrowRight':\n\t\t\tcase 'End':\n\t\t\t\tclearTimeout(this.updateTimeout);\n\t\t\t\tthis.updateTimeout = setTimeout(() => {\n\t\t\t\t\t(event.target as HTMLElement)?.focus();\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tclearTimeout(this.updateTimeout);\n\t}\n}\n\n/**\n * A constant representing the default slot handle for the slider component.\n */\nexport const sliderDefaultSlotHandle: SlotContent<SliderSlotHandleContext> = new ComponentTemplate(SliderDefaultHandleSlotComponent, 'handle');\n\n/**\n * Directive representing a tick for a slider component.\n *\n * This directive uses a template reference to render the {@link SliderSlotTickContext}.\n */\n@Directive({selector: 'ng-template[auSliderTick]'})\nexport class SliderTickDirective {\n\tpublic templateRef = inject(TemplateRef<SliderSlotTickContext>);\n\tstatic ngTemplateContextGuard(_dir: SliderTickDirective, context: unknown): context is SliderSlotTickContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, SliderTickDirective],\n\ttemplate: `\n\t\t<ng-template auSliderTick #tick let-state=\"state\" let-directives=\"directives\" let-tick=\"tick\">\n\t\t\t@if (tick.displayLabel) {\n\t\t\t\t<span [auUse]=\"[directives.tickLabelDirective, {tick}]\">\n\t\t\t\t\t{{ tick.value }}\n\t\t\t\t</span>\n\t\t\t}\n\t\t\t<span [auUse]=\"[directives.tickDirective, {tick}]\">\n\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<circle class=\"au-slider-tick-outer\" [class.au-slider-tick-disabled]=\"state.disabled()\" [class.au-slider-tick-selected]=\"tick.selected\" />\n\t\t\t\t\t@if (tick.selected) {\n\t\t\t\t\t\t<circle class=\"au-slider-tick-inner au-slider-tick-selected\" />\n\t\t\t\t\t}\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t</ng-template>\n\t`,\n})\nclass SliderDefaultTickSlotComponent {\n\treadonly tick = viewChild.required<TemplateRef<SliderSlotTickContext>>('tick');\n}\n\n/**\n * A constant representing the default slot tick for the slider component.\n */\nexport const sliderDefaultSlotTick: SlotContent<SliderSlotTickContext> = new ComponentTemplate(SliderDefaultTickSlotComponent, 'tick');\n\n/**\n * Directive that provides structure for the slider component.\n *\n * This directive uses a `TemplateRef` to handle the context of the slider slot.\n */\n@Directive({selector: 'ng-template[auSliderStructure]'})\nexport class SliderStructureDirective {\n\tpublic templateRef = inject(TemplateRef<SliderSlotHandleContext>);\n\tstatic ngTemplateContextGuard(_dir: SliderStructureDirective, context: unknown): context is SliderSlotHandleContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, SliderStructureDirective, UseDirective],\n\ttemplate: `\n\t\t<ng-template auSliderStructure #structure let-state=\"state\" let-directives=\"directives\" let-api=\"api\">\n\t\t\t@for (option of state.progressDisplayOptions(); track option.id) {\n\t\t\t\t<div [auUse]=\"[directives.progressDisplayDirective, {option}]\"></div>\n\t\t\t}\n\t\t\t<div [auUse]=\"directives.clickableAreaDirective\"></div>\n\t\t\t@if (state.showMinMaxLabels()) {\n\t\t\t\t<div [auUse]=\"directives.minLabelDirective\">\n\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.min()}\" />\n\t\t\t\t</div>\n\t\t\t\t<div [auUse]=\"directives.maxLabelDirective\">\n\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.max()}\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@if (state.showValueLabels() && state.combinedLabelDisplay()) {\n\t\t\t\t<div [auUse]=\"directives.combinedHandleLabelDisplayDirective\">\n\t\t\t\t\t@if (state.rtl()) {\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.sortedValues()[1]}\" /> -\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.sortedValues()[0]}\" />\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.sortedValues()[0]}\" /> -\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.sortedValues()[1]}\" />\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@for (tick of state.ticks(); track tick.position) {\n\t\t\t\t<ng-template [auSlot]=\"state.tick()\" [auSlotProps]=\"{state, api, directives, tick}\" />\n\t\t\t}\n\t\t\t@for (item of state.sortedHandles(); track item.id; let i = $index) {\n\t\t\t\t<ng-template [auSlot]=\"state.handle()\" [auSlotProps]=\"{state, api, directives, item}\" />\n\t\t\t\t@if (state.showValueLabels() && !state.combinedLabelDisplay()) {\n\t\t\t\t\t<div [auUse]=\"[directives.handleLabelDisplayDirective, {index: i}]\">\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.label()\" [auSlotProps]=\"{state, api, directives, value: state.values()[i]}\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t</ng-template>\n\t`,\n})\nclass SliderDefaultStructureSlotComponent {\n\treadonly structure = viewChild.required<TemplateRef<SliderContext>>('structure');\n}\n\n/**\n * Represents the default slot structure for the slider component.\n */\nexport const sliderDefaultSlotStructure: SlotContent<SliderContext> = new ComponentTemplate(SliderDefaultStructureSlotComponent, 'structure');\n\n/**\n * SliderComponent is an Angular component that extends the BaseWidgetDirective\n * to provide a customizable slider widget. This component allows for various\n * configurations and customizations through its inputs and outputs.\n */\n@Component({\n\tselector: '[auSlider]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [{provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SliderComponent), multi: true}],\n\timports: [SlotDirective, UseDirective],\n\thost: {\n\t\t'(blur)': 'handleBlur()',\n\t},\n\ttemplate: `\n\t\t<div [auUse]=\"directives.sliderDirective\">\n\t\t\t<ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t</div>\n\t`,\n})\nexport class SliderComponent extends BaseWidgetDirective<SliderWidget> implements ControlValueAccessor {\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * Minimum value that can be assigned to the slider\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly min = input(undefined, {alias: 'auMin', transform: auNumberAttribute});\n\n\t/**\n\t * Maximum value that can be assigned to the slider\n\t *\n\t * @defaultValue `100`\n\t */\n\treadonly max = input(undefined, {alias: 'auMax', transform: auNumberAttribute});\n\n\t/**\n\t * Minimum distance between two values.\n\t * When set to 0, no minimum distance constraint is applied.\n\t *\n\t * @defaultValue 0\n\t */\n\treadonly minRange = input(undefined, {alias: 'auMinRange', transform: auNumberAttribute});\n\n\t/**\n\t * Maximum distance between two values\n\t * When set to 0, no maximum distance constraint is applied.\n\t *\n\t * @defaultValue 0\n\t */\n\treadonly maxRange = input(undefined, {alias: 'auMaxRange', transform: auNumberAttribute});\n\n\t/**\n\t * When true, if moving a value would break the minRange or maxRange constraint,\n\t * it will instead push or pull the neighboring values to keep the allowed range rather than just stopping.\n\t *\n\t * @defaultValue false\n\t */\n\treadonly pushRange = input(undefined, {alias: 'auPushRange', transform: auBooleanAttribute});\n\n\t/**\n\t * Unit value between slider steps\n\t *\n\t * @defaultValue `1`\n\t */\n\treadonly stepSize = input(undefined, {alias: 'auStepSize', transform: auNumberAttribute});\n\n\t/**\n\t * Current slider values\n\t *\n\t * @defaultValue `[0]`\n\t */\n\treadonly values = input<number[]>(undefined, {alias: 'auValues'});\n\n\t/**\n\t * It `true` slider display is inversed\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly rtl = input(undefined, {alias: 'auRtl', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` the value labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly showValueLabels = input(undefined, {alias: 'auShowValueLabels', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` the min and max labels are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly showMinMaxLabels = input(undefined, {alias: 'auShowMinMaxLabels', transform: auBooleanAttribute});\n\n\t/**\n\t * Return the value for the 'aria-label' attribute for the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => 'Value'\n\t * ```\n\t */\n\treadonly ariaLabel = input<(sortedIndex: number) => string>(undefined, {alias: 'auAriaLabel'});\n\n\t/**\n\t * Return the value for the 'aria-labelledBy' attribute for the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => ''\n\t * ```\n\t */\n\treadonly ariaLabelledBy = input<(sortedIndex: number) => string>(undefined, {alias: 'auAriaLabelledBy'});\n\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute for the handle\n\t * @param value - value of the handle\n\t * @param sortedIndex - index of the handle in the sorted list\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (value: number) => ''\n\t * ```\n\t */\n\treadonly ariaValueText = input<(value: number, sortedIndex: number) => string>(undefined, {alias: 'auAriaValueText'});\n\n\t/**\n\t * If `true` slider value cannot be changed but the slider is still focusable\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly readonly = input(undefined, {alias: 'auReadonly', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` slider value cannot be changed and the slider cannot be focused\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly disabled = input(undefined, {alias: 'auDisabled', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` is vertically positioned otherwise it is horizontal\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly vertical = input(undefined, {alias: 'auVertical', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` the ticks are displayed on the slider\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly showTicks = input(undefined, {alias: 'auShowTicks', transform: auBooleanAttribute});\n\n\t/**\n\t * Unit value between the ticks\n\t * If value is set to `0` the {@link stepSize} is used to space the ticks\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly tickInterval = input(undefined, {alias: 'auTickInterval', transform: auNumberAttribute});\n\n\t/**\n\t * If `true` the tick values are displayed on the slider\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly showTickValues = input(undefined, {alias: 'auShowTickValues', transform: auBooleanAttribute});\n\n\t/**\n\t * An event emitted when slider values are changed\n\t *\n\t * Event payload equals to the updated slider values\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly valuesChange = output<number[]>({alias: 'auValuesChange'});\n\n\t/**\n\t * Slot to change the default labels of the slider\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * ({value}: SliderSlotLabelContext) => '' + value\n\t * ```\n\t */\n\treadonly label = input<SlotContent<SliderSlotLabelContext>>(undefined, {alias: 'auLabel'});\n\treadonly slotLabelFromContent = contentChild(SliderLabelDirective);\n\n\t/**\n\t * Slot to change the default display of the slider\n\t */\n\treadonly structure = input<SlotContent<SliderContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(SliderStructureDirective);\n\n\t/**\n\t * Slot to change the handlers\n\t */\n\treadonly handle = input<SlotContent<SliderSlotHandleContext>>(undefined, {alias: 'auHandle'});\n\treadonly slotHandleFromContent = contentChild(SliderHandleDirective);\n\n\t/**\n\t * Slot to change the ticks\n\t */\n\treadonly tick = input<SlotContent<SliderSlotTickContext>>(undefined, {alias: 'auTick'});\n\treadonly slotTickFromContent = contentChild(SliderTickDirective);\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createSlider, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: sliderDefaultSlotStructure,\n\t\t\t\t\thandle: sliderDefaultSlotHandle,\n\t\t\t\t\ttick: sliderDefaultSlotTick,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonValuesChange: (event) => {\n\t\t\t\t\t\tthis.onChange(event);\n\t\t\t\t\t\tthis.onTouched();\n\t\t\t\t\t\tthis.valuesChange.emit(event);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.containerDirective);\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\thandle: this.slotHandleFromContent()?.templateRef,\n\t\t\t\t\tlabel: this.slotLabelFromContent()?.templateRef,\n\t\t\t\t\ttick: this.slotTickFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n\n\t/**\n\t * Control value accessor methods\n\t */\n\tonChange = (_: any) => {};\n\n\tonTouched = () => {};\n\n\tregisterOnChange(fn: (value: any) => any): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => any): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\twriteValue(value: any): void {\n\t\tif (Array.isArray(value)) {\n\t\t\tthis['_widget'].patch({\n\t\t\t\tvalues: value,\n\t\t\t});\n\t\t} else {\n\t\t\tthis['_widget'].patch({\n\t\t\t\tvalues: [value],\n\t\t\t});\n\t\t}\n\t}\n\n\tsetDisabledState(isDisabled: boolean) {\n\t\tthis['_widget'].patch({\n\t\t\tdisabled: isDisabled,\n\t\t});\n\t}\n\n\thandleBlur() {\n\t\tthis.onTouched();\n\t}\n}\n","import {getProgressbarDefaultConfig, createProgressbar} from '@agnos-ui/core-bootstrap/components/progressbar';\nimport type {WidgetSlotContext, SlotContent, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\nimport type {BSContextualClass} from '@agnos-ui/core-bootstrap/types';\n\n\n\n/**\n * Retrieve a shallow copy of the default Progressbar config\n * @returns the default Progressbar config\n */\nconst export_getProgressbarDefaultConfig: () => ProgressbarProps = getProgressbarDefaultConfig as any;\nexport {export_getProgressbarDefaultConfig as getProgressbarDefaultConfig};\n\n\n\n/**\n * Represents the context for a Progressbar widget.\n * This interface is used to define the context object that is passed to the Progressbar widget.\n */\nexport interface ProgressbarContext extends WidgetSlotContext<ProgressbarWidget> {}\n\n/**\n * Represents the state of a Progressbar component.\n */\nexport interface ProgressbarState {\n\t\n\t/**\n\t * Percentage of completion.\n\t */\n\tpercentage: number;\n\t\n\t/**\n\t * `true` if the value is above its minimum value.\n\t */\n\tstarted: boolean;\n\t\n\t/**\n\t * `true` if the value has reached its maximum value.\n\t */\n\tfinished: boolean;\n\t\n\t/**\n\t * The aria value text.\n\t */\n\tariaValueText: string | undefined;\n\t\n\t/**\n\t * The minimum value.\n\t *\n\t * @defaultValue `0`\n\t */\n\tmin: number;\n\t\n\t/**\n\t * The maximum value.\n\t *\n\t * @defaultValue `100`\n\t */\n\tmax: number;\n\t\n\t/**\n\t * The current value.\n\t *\n\t * @defaultValue `0`\n\t */\n\tvalue: number;\n\t\n\t/**\n\t * The aria label.\n\t *\n\t * @defaultValue `'Progressbar'`\n\t */\n\tariaLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Global template for the Progressbar.\n\t */\n\tstructure: SlotContent<ProgressbarContext>;\n\t\n\t/**\n\t * Label of the progress.\n\t */\n\tchildren: SlotContent<ProgressbarContext>;\n\t\n\t/**\n\t * Height of the progressbar, can be any valid css height value.\n\t *\n\t * @defaultValue `''`\n\t */\n\theight: string;\n\t\n\t/**\n\t * If `true`, shows a striped progressbar.\n\t *\n\t * @defaultValue `false`\n\t */\n\tstriped: boolean;\n\t\n\t/**\n\t * If `true`, animates a striped progressbar.\n\t * Takes effect only for browsers supporting CSS3 animations, and if `striped` is `true`.\n\t *\n\t * @defaultValue `false`\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * Type of the progressbar, following bootstrap types.\n\t */\n\ttype: BSContextualClass | undefined;\n}\n\n/**\n * Interface representing the properties for the Progressbar component.\n */\nexport interface ProgressbarProps {\n\t\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute.\n\t * @param value - current value\n\t * @param minimum - minimum value\n\t * @param maximum - maximum value\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => undefined\n\t * ```\n\t */\n\tariaValueTextFn: (value: number, minimum: number, maximum: number) => string | undefined;\n\t\n\t/**\n\t * The minimum value.\n\t *\n\t * @defaultValue `0`\n\t */\n\tmin: number;\n\t\n\t/**\n\t * The maximum value.\n\t *\n\t * @defaultValue `100`\n\t */\n\tmax: number;\n\t\n\t/**\n\t * The current value.\n\t *\n\t * @defaultValue `0`\n\t */\n\tvalue: number;\n\t\n\t/**\n\t * The aria label.\n\t *\n\t * @defaultValue `'Progressbar'`\n\t */\n\tariaLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Global template for the Progressbar.\n\t */\n\tstructure: SlotContent<ProgressbarContext>;\n\t\n\t/**\n\t * Label of the progress.\n\t */\n\tchildren: SlotContent<ProgressbarContext>;\n\t\n\t/**\n\t * Height of the progressbar, can be any valid css height value.\n\t *\n\t * @defaultValue `''`\n\t */\n\theight: string;\n\t\n\t/**\n\t * If `true`, shows a striped progressbar.\n\t *\n\t * @defaultValue `false`\n\t */\n\tstriped: boolean;\n\t\n\t/**\n\t * If `true`, animates a striped progressbar.\n\t * Takes effect only for browsers supporting CSS3 animations, and if `striped` is `true`.\n\t *\n\t * @defaultValue `false`\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * Type of the progressbar, following bootstrap types.\n\t */\n\ttype: BSContextualClass | undefined;\n}\n\n\n\n/**\n * Represents a Progressbar widget.\n *\n * This type defines the structure of a Progressbar widget, including its properties, state, and directives.\n */\nexport type ProgressbarWidget = Widget<ProgressbarProps, ProgressbarState, object, ProgressbarDirectives>;\n\n\n\n/**\n * Create a Progressbar with given config props\n * @param config - an optional progressbar config\n * @returns a ProgressbarWidget\n */\n\nconst export_createProgressbar: WidgetFactory<ProgressbarWidget> = createProgressbar as any;\nexport {export_createProgressbar as createProgressbar};\n\n/**\n * Interface representing directives for a progress bar component.\n */\nexport interface ProgressbarDirectives {\n\t\n\t/**\n\t * A directive to be applied to the main container that handles aria attributes.\n\t */\n\tariaDirective: Directive;\n}\n\n","import {\n\tBaseWidgetDirective,\n\tComponentTemplate,\n\tSlotDirective,\n\tauBooleanAttribute,\n\tauNumberAttribute,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\nimport type {SlotContent} from '@agnos-ui/angular-headless';\nimport {NgClass} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, viewChild, contentChild} from '@angular/core';\nimport type {ProgressbarContext, ProgressbarWidget} from './progressbar.gen';\nimport {createProgressbar} from './progressbar.gen';\n\nimport {callWidgetFactory} from '../../config';\nimport type {BSContextualClass} from '@agnos-ui/core-bootstrap/types';\n\n/**\n * Directive that provides a template reference for the progress bar context.\n * This directive provides a template reference for the {@link ProgressbarContext}.\n */\n@Directive({selector: 'ng-template[auProgressbarBody]'})\nexport class ProgressbarBodyDirective {\n\tpublic templateRef = inject(TemplateRef<ProgressbarContext>);\n\tstatic ngTemplateContextGuard(_dir: ProgressbarStructureDirective, context: unknown): context is ProgressbarContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to define the structure of a progress bar.\n *\n * This directive provides a template reference for the {@link ProgressbarContext}.\n */\n@Directive({selector: 'ng-template[auProgressbarStructure]'})\nexport class ProgressbarStructureDirective {\n\tpublic templateRef = inject(TemplateRef<ProgressbarContext>);\n\tstatic ngTemplateContextGuard(_dir: ProgressbarStructureDirective, context: unknown): context is ProgressbarContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgClass, SlotDirective, ProgressbarStructureDirective],\n\ttemplate: `\n\t\t<ng-template auProgressbarStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t<div class=\"progress\" [style.height]=\"state.height()\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"progress-bar\"\n\t\t\t\t\t[class.progress-bar-striped]=\"state.striped()\"\n\t\t\t\t\t[class.progress-bar-animated]=\"state.animated()\"\n\t\t\t\t\t[ngClass]=\"state.type() ? 'text-bg-' + state.type() : undefined\"\n\t\t\t\t\t[style.width.%]=\"state.percentage()\"\n\t\t\t\t>\n\t\t\t\t\t<ng-template [auSlot]=\"state.children()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</ng-template>\n\t`,\n})\nclass ProgressbarDefaultSlotsComponent {\n\treadonly structure = viewChild.required<TemplateRef<ProgressbarContext>>('structure');\n}\n\n/**\n * Represents the default slot structure for the progress bar component.\n */\nexport const progressbarDefaultSlotStructure: SlotContent<ProgressbarContext> = new ComponentTemplate(ProgressbarDefaultSlotsComponent, 'structure');\n\n/**\n * ProgressbarComponent is a UI component that extends the BaseWidgetDirective\n * to create a customizable progress bar widget. It provides various inputs\n * to configure the appearance and behavior of the progress bar.\n *\n */\n@Component({\n\tselector: '[auProgressbar]',\n\timports: [SlotDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[class]': 'state.className()',\n\t},\n\ttemplate: `\n\t\t<ng-template #content><ng-content /></ng-template>\n\t\t<ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" />\n\t`,\n})\nexport class ProgressbarComponent extends BaseWidgetDirective<ProgressbarWidget> {\n\t/**\n\t * The aria label.\n\t *\n\t * @defaultValue `'Progressbar'`\n\t */\n\treadonly ariaLabel = input<string>(undefined, {alias: 'auAriaLabel'});\n\n\t/**\n\t * The minimum value.\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly min = input(undefined, {alias: 'auMin', transform: auNumberAttribute});\n\n\t/**\n\t * The maximum value.\n\t *\n\t * @defaultValue `100`\n\t */\n\treadonly max = input(undefined, {alias: 'auMax', transform: auNumberAttribute});\n\n\t/**\n\t * The current value.\n\t *\n\t * @defaultValue `0`\n\t */\n\treadonly value = input(undefined, {alias: 'auValue', transform: auNumberAttribute});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * Label of the progress.\n\t */\n\treadonly children = input<SlotContent<ProgressbarContext>>(undefined, {alias: 'auChildren'});\n\treadonly slotDefaultFromContent = contentChild(ProgressbarBodyDirective);\n\n\t/**\n\t * Global template for the Progressbar.\n\t */\n\treadonly structure = input<SlotContent<ProgressbarContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(ProgressbarStructureDirective);\n\n\t/**\n\t * Height of the progressbar, can be any valid css height value.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly height = input<string>(undefined, {alias: 'auHeight'});\n\n\t/**\n\t * If `true`, animates a striped progressbar.\n\t * Takes effect only for browsers supporting CSS3 animations, and if `striped` is `true`.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, shows a striped progressbar.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly striped = input(undefined, {alias: 'auStriped', transform: auBooleanAttribute});\n\n\t/**\n\t * Return the value for the 'aria-valuetext' attribute.\n\t * @param value - current value\n\t * @param minimum - minimum value\n\t * @param maximum - maximum value\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => undefined\n\t * ```\n\t */\n\treadonly ariaValueTextFn = input<(value: number, minimum: number, maximum: number) => string | undefined>(undefined, {alias: 'auAriaValueTextFn'});\n\n\t/**\n\t * Type of the progressbar, following bootstrap types.\n\t */\n\treadonly type = input<BSContextualClass>(undefined, {alias: 'auType'});\n\n\treadonly slotChildren = viewChild<TemplateRef<void>>('content');\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createProgressbar, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: progressbarDefaultSlotStructure,\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => useDirectiveForHost(widget.directives.ariaDirective),\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\tchildren: this.slotDefaultFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t\tslotChildren: () => this.slotChildren(),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {getToastDefaultConfig, createToast, toastPositions, defaultToasterProps} from '@agnos-ui/core-bootstrap/components/toast';\nimport type {WidgetSlotContext, SlotContent, TransitionFn, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default Toast config\n * @returns the default Toast config\n */\nconst export_getToastDefaultConfig: () => ToastProps = getToastDefaultConfig as any;\nexport {export_getToastDefaultConfig as getToastDefaultConfig};\n\n\n\n/**\n * Represents the context for a Toast widget.\n * This interface is an alias for `WidgetSlotContext<ToastWidget>`.\n */\nexport interface ToastContext extends WidgetSlotContext<ToastWidget> {}\n\n/**\n * Represents the state of a Toast component.\n */\nexport interface ToastState {\n\t\n\t/**\n\t * Is `true` when the alert is hidden. Compared to `visible`, this is updated after the transition is executed.\n\t */\n\thidden: boolean;\n\t\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdismissible: boolean;\n\t\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n\t\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * If `true` automatically hides the toast after the delay.\n\t *\n\t * @defaultValue `true`\n\t */\n\tautoHide: boolean;\n\t\n\t/**\n\t * Delay in milliseconds before hiding the toast.\n\t *\n\t * @defaultValue `5000`\n\t */\n\tdelay: number;\n\t\n\t/**\n\t * Global template for the toast component\n\t */\n\tstructure: SlotContent<ToastContext>;\n\t\n\t/**\n\t * Template for the toast content\n\t */\n\tchildren: SlotContent<ToastContext>;\n\t\n\t/**\n\t * Header template for the toast component\n\t */\n\theader: SlotContent<ToastContext>;\n}\n\n/**\n * Interface representing the properties for the Toast component.\n */\nexport interface ToastProps {\n\t\n\t/**\n\t * The transition function will be executed when the alert is displayed or hidden.\n\t *\n\t * Depending on the value of `animatedOnInit`, the animation can be optionally skipped during the showing process.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\ttransition: TransitionFn;\n\t\n\t/**\n\t * Callback called when the alert visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonVisibleChange: (visible: boolean) => void;\n\t\n\n\t/**\n\t * Callback called when the alert is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonHidden: () => void;\n\t\n\n\t/**\n\t * Callback called when the alert is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonShown: () => void;\n\t\n\n\t/**\n\t * If `true`, alert opening will be animated.\n\t *\n\t * Animation is triggered when the `.open()` function is called\n\t * or the visible prop is changed\n\t *\n\t * @defaultValue `false`\n\t */\n\tanimatedOnInit: boolean;\n\t\n\t/**\n\t * If `true`, alert closing will be animated.\n\t *\n\t * Animation is triggered when clicked on the close button (×),\n\t * via the `.close()` function or the visible prop is changed\n\t *\n\t * @defaultValue `true`\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\tdismissible: boolean;\n\t\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n\t\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\tariaCloseButtonLabel: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * If `true` automatically hides the toast after the delay.\n\t *\n\t * @defaultValue `true`\n\t */\n\tautoHide: boolean;\n\t\n\t/**\n\t * Delay in milliseconds before hiding the toast.\n\t *\n\t * @defaultValue `5000`\n\t */\n\tdelay: number;\n\t\n\t/**\n\t * Global template for the toast component\n\t */\n\tstructure: SlotContent<ToastContext>;\n\t\n\t/**\n\t * Template for the toast content\n\t */\n\tchildren: SlotContent<ToastContext>;\n\t\n\t/**\n\t * Header template for the toast component\n\t */\n\theader: SlotContent<ToastContext>;\n}\n\n\n\n/**\n * Represents a Toast widget component.\n */\nexport type ToastWidget = Widget<ToastProps, ToastState, ToastApi, ToastDirectives>;\n\n\n\n/**\n * Create an ToastWidget with given config props\n * @param config - an optional alert config\n * @returns an ToastWidget\n */\nconst export_createToast: WidgetFactory<ToastWidget> = createToast as any;\nexport {export_createToast as createToast};\n\n\n\n/**\n * A mapping of toast position keys to their corresponding CSS class strings of bootstrap.\n * These classes define the positioning of toast notifications on the screen.\n *\n * The keys represent various positions on the screen, such as top-left, top-center,\n * middle-right, etc., and the values are the CSS classes of bootstrap that apply the respective\n * positioning styles.\n *\n * Example usage:\n * ```typescript\n * const positionClass = toastPositions.topLeft; // \"top-0 start-0\"\n * ```\n */\nconst export_toastPositions: Record<ToastPositions, string> = toastPositions as any;\nexport {export_toastPositions as toastPositions};\n\n/**\n * Represents the API for the toast component.\n */\nexport interface ToastApi {\n\t\n\t/**\n\t * Triggers alert closing programmatically (same as clicking on the close button (×)).\n\t */\n\tclose(): void;\n\t\n\n\t/**\n\t * Triggers the alert to be displayed for the user.\n\t */\n\topen(): void;\n}\n\n/**\n * Interface representing the directives for a toast component.\n */\nexport interface ToastDirectives {\n\t\n\t/**\n\t * the transition directive, piloting what is the visual effect of going from hidden to visible\n\t */\n\ttransitionDirective: Directive;\n\t\n\t/**\n\t * Directive that handles the autohide of the toast component\n\t */\n\tautoHideDirective: Directive;\n\t\n\t/**\n\t * Directive that adds all the necessary attributes to the body\n\t */\n\tbodyDirective: Directive;\n\t\n\t/**\n\t * Directive that adds all the necessary attributes to the close button depending on the presence of the header\n\t */\n\tcloseButtonDirective: Directive;\n}\n\n\n\n/**\n * Represents the possible positions for displaying a toast notification.\n *\n * The positions are defined based on a grid layout with three horizontal\n * alignments (left, center, right) and three vertical alignments (top, middle, bottom).\n *\n * Available positions:\n * - `topLeft`: Top-left corner of the screen.\n * - `topCenter`: Top-center of the screen.\n * - `topRight`: Top-right corner of the screen.\n * - `middleLeft`: Middle-left side of the screen.\n * - `middleCenter`: Center of the screen.\n * - `middleRight`: Middle-right side of the screen.\n * - `bottomLeft`: Bottom-left corner of the screen.\n * - `bottomCenter`: Bottom-center of the screen.\n * - `bottomRight`: Bottom-right corner of the screen.\n */\nexport type ToastPositions =\n\t| 'topLeft'\n\t| 'topCenter'\n\t| 'topRight'\n\t| 'middleLeft'\n\t| 'middleCenter'\n\t| 'middleRight'\n\t| 'bottomLeft'\n\t| 'bottomCenter'\n\t| 'bottomRight';\n\n/**\n * Props of the toaster\n */\nexport interface ToasterProps {\n\t\n\t/** How much time (ms) a toast is displayed; 0 means it won't be removed until a manual action */\n\tduration: number;\n\t\n\t/** Where to position the toasts */\n\tposition: ToastPositions;\n\t\n\t/** Maximum number of toasts displayed */\n\tlimit?: number;\n\t\n\t/** Pause toast when hover */\n\tpauseOnHover?: boolean;\n\t\n\t/** Display a dismiss button on each toast. When duration = 0, this is enforced to true */\n\tdismissible: boolean;\n\t\n\t/** Add a button to close all the toasts at once */\n\tcloseAll?: boolean;\n\t\n\t/** Close all label */\n\tcloseAllLabel?: string;\n}\n\n/**\n * Toast object\n * @template Props Type of the toast properties.\n */\nexport interface ToasterToast<Props> {\n\t\n\t/** Identifier of the toasts in the toaster */\n\tid: number;\n\t\n\t/** Properties of the toast */\n\tprops: Props;\n}\n\n/**\n * Represents a timer used by the toaster service.\n */\nexport interface ToasterTimer {\n\t\n\t/**\n\t * The timeout identifier returned by `setTimeout`.\n\t */\n\ttimeout: ReturnType<typeof setTimeout> | null;\n\t\n\n\t/**\n\t * The timestamp when the timer was started.\n\t */\n\tstarted: number;\n\t\n\n\t/**\n\t * The timestamp when the timer was paused (optional).\n\t */\n\tpaused?: number;\n\t\n\n\t/**\n\t * The duration for which the timer is set (optional). Used internally to compute the remaining time.\n\t */\n\tduration: number;\n}\n\n\n\nconst export_defaultToasterProps: ToasterProps = defaultToasterProps as any;\nexport {export_defaultToasterProps as defaultToasterProps};\n\n","import type {SlotContent, TransitionFn} from '@agnos-ui/angular-headless';\nimport {\n\tBaseWidgetDirective,\n\tComponentTemplate,\n\tSlotDirective,\n\tUseDirective,\n\tUseMultiDirective,\n\tauBooleanAttribute,\n\tauNumberAttribute,\n} from '@agnos-ui/angular-headless';\nimport {ChangeDetectionStrategy, Component, Directive, TemplateRef, inject, input, output, viewChild, contentChild} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\n\nimport type {ToastContext, ToastWidget} from './toast.gen';\nimport {createToast} from './toast.gen';\n\n/**\n * Directive to represent the body of a toast notification.\n * This directive uses a template reference to render the {@link ToastContext}.\n */\n@Directive({selector: 'ng-template[auToastBody]'})\nexport class ToastBodyDirective {\n\tpublic templateRef = inject(TemplateRef<ToastContext>);\n\tstatic ngTemplateContextGuard(_dir: ToastBodyDirective, context: unknown): context is ToastContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive to define the structure of a toast component.\n * This directive uses a template reference to render the {@link ToastContext}.\n */\n@Directive({selector: 'ng-template[auToastStructure]'})\nexport class ToastStructureDirective {\n\tpublic templateRef = inject(TemplateRef<ToastContext>);\n\tstatic ngTemplateContextGuard(_dir: ToastStructureDirective, context: unknown): context is ToastContext {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive representing the header of a toast component.\n * This directive uses a template reference to render the {@link ToastContext}.\n */\n@Directive({selector: 'ng-template[auToastHeader]'})\nexport class ToastHeaderDirective {\n\tpublic templateRef = inject(TemplateRef<ToastContext>);\n\tstatic ngTemplateContextGuard(_dir: ToastHeaderDirective, context: unknown): context is ToastContext {\n\t\treturn true;\n\t}\n}\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, ToastStructureDirective, UseDirective],\n\ttemplate: ` <ng-template auToastStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t@if (state.header()) {\n\t\t\t<div class=\"toast-header\">\n\t\t\t\t<ng-template [auSlot]=\"state.header()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t\t@if (state.dismissible()) {\n\t\t\t\t\t<button class=\"btn-close me-0 ms-auto\" [auUse]=\"directives.closeButtonDirective\"></button>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"toast-body\">\n\t\t\t<ng-template [auSlot]=\"state.children()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t</div>\n\t\t@if (state.dismissible() && !state.header()) {\n\t\t\t<button class=\"btn-close btn-close-white me-2 m-auto\" [auUse]=\"directives.closeButtonDirective\"></button>\n\t\t}\n\t</ng-template>`,\n})\nclass ToastDefaultSlotsComponent {\n\treadonly structure = viewChild.required<TemplateRef<ToastContext>>('structure');\n}\n\n/**\n * Represents the default slot structure for the toast component.\n */\nexport const toastDefaultSlotStructure: SlotContent<ToastContext> = new ComponentTemplate(ToastDefaultSlotsComponent, 'structure');\n\n/**\n * The `ToastComponent` is a UI component that displays a toast notification.\n * It extends the `BaseWidgetDirective` and provides various configurable properties\n * and events to control the behavior and appearance of the toast.\n */\n@Component({\n\tselector: '[auToast]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, UseMultiDirective],\n\ttemplate: ` <ng-template #content>\n\t\t\t<ng-content />\n\t\t</ng-template>\n\t\t@if (!state.hidden()) {\n\t\t\t<div\n\t\t\t\t[class.d-flex]=\"!state.header()\"\n\t\t\t\t[class.toast-dismissible]=\"state.dismissible()\"\n\t\t\t\t[auUseMulti]=\"[directives.autoHideDirective, directives.transitionDirective, directives.bodyDirective]\"\n\t\t\t>\n\t\t\t\t<ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t</div>\n\t\t}`,\n})\nexport class ToastComponent extends BaseWidgetDirective<ToastWidget> {\n\t/**\n\t * If `true`, alert can be dismissed by the user.\n\t * The close button (×) will be displayed and you can be notified of the event with the (close) output.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly dismissible = input(undefined, {alias: 'auDismissible', transform: auBooleanAttribute});\n\n\t/**\n\t * The transition function will be executed when the alert is displayed or hidden.\n\t *\n\t * Depending on the value of `animatedOnInit`, the animation can be optionally skipped during the showing process.\n\t *\n\t * @defaultValue `fadeTransition`\n\t */\n\treadonly transition = input<TransitionFn>(undefined, {alias: 'auTransition'});\n\n\t/**\n\t * If `true` the alert is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly visible = input(undefined, {alias: 'auVisible', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, alert opening will be animated.\n\t *\n\t * Animation is triggered when the `.open()` function is called\n\t * or the visible prop is changed\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly animatedOnInit = input(undefined, {alias: 'auAnimatedOnInit', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, alert closing will be animated.\n\t *\n\t * Animation is triggered when clicked on the close button (×),\n\t * via the `.close()` function or the visible prop is changed\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` automatically hides the toast after the delay.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly autoHide = input(undefined, {alias: 'auAutoHide', transform: auBooleanAttribute});\n\n\t/**\n\t * Delay in milliseconds before hiding the toast.\n\t *\n\t * @defaultValue `5000`\n\t */\n\treadonly delay = input(undefined, {alias: 'auDelay', transform: auNumberAttribute});\n\n\t/**\n\t * Accessibility close button label\n\t *\n\t * @defaultValue `'Close'`\n\t */\n\treadonly ariaCloseButtonLabel = input<string>(undefined, {alias: 'auAriaCloseButtonLabel'});\n\n\t/**\n\t * Template for the toast content\n\t */\n\treadonly children = input<SlotContent<ToastContext>>(undefined, {alias: 'auChildren'});\n\treadonly slotDefaultFromContent = contentChild(ToastBodyDirective);\n\n\t/**\n\t * Global template for the toast component\n\t */\n\treadonly structure = input<SlotContent<ToastContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(ToastStructureDirective);\n\n\t/**\n\t * Header template for the toast component\n\t */\n\treadonly header = input<SlotContent<ToastContext>>(undefined, {alias: 'auHeader'});\n\treadonly slotHeaderFromContent = contentChild(ToastHeaderDirective);\n\n\t/**\n\t * Callback called when the alert visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly visibleChange = output<boolean>({alias: 'auVisibleChange'});\n\n\t/**\n\t * Callback called when the alert is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly hidden = output<void>({alias: 'auHidden'});\n\n\t/**\n\t * Callback called when the alert is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly shown = output<void>({alias: 'auShown'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\treadonly slotChildren = viewChild<TemplateRef<void>>('content');\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createToast, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: toastDefaultSlotStructure,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonVisibleChange: (event) => this.visibleChange.emit(event),\n\t\t\t\t\tonShown: () => this.shown.emit(),\n\t\t\t\t\tonHidden: () => this.hidden.emit(),\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tchildren: this.slotDefaultFromContent()?.templateRef,\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\theader: this.slotHeaderFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t\tslotChildren: () => this.slotChildren(),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {auBooleanAttribute, BaseWidgetDirective, useDirectiveForHost} from '@agnos-ui/angular-headless';\nimport type {CollapseWidget} from '@agnos-ui/core-bootstrap/components/collapse';\nimport {createCollapse} from '@agnos-ui/core-bootstrap/components/collapse';\nimport {Directive, inject, Injector, input, type OnInit, output, runInInjectionContext} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\n\n/**\n * Directive to control the collapse behavior of an element.\n */\n@Directive({\n\tselector: '[auCollapse]',\n\n\texportAs: 'auCollapse',\n})\nexport class CollapseDirective extends BaseWidgetDirective<CollapseWidget> {\n\t/**\n\t * If `true`, collapse opening will be animated at init time.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly animatedOnInit = input(undefined, {alias: 'auAnimatedOnInit', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, collapse closing and opening will be animated.\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly animated = input(undefined, {alias: 'auAnimated', transform: auBooleanAttribute});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * If `true`, collapse will be done horizontally.\n\t *\n\t * @defaultValue `false`\n\t */\n\treadonly horizontal = input(undefined, {alias: 'auHorizontal', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true` the collapse is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\treadonly visible = input(undefined, {alias: 'auVisible', transform: auBooleanAttribute});\n\n\t/**\n\t * id of the collapse\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly id = input<string>(undefined, {alias: 'auId'});\n\n\t/**\n\t * Callback called when the collapse visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t * @param visible - The new visibility state of the collapse.\n\t */\n\treadonly visibleChange = output<boolean>({alias: 'auVisibleChange'});\n\n\t/**\n\t * Callback called when the collapse is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly hidden = output<void>({alias: 'auHidden'});\n\n\t/**\n\t * Callback called when the collapse is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly shown = output<void>({alias: 'auShown'});\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createCollapse, {\n\t\t\t\tevents: {\n\t\t\t\t\tonVisibleChange: (event) => this.visibleChange.emit(event),\n\t\t\t\t\tonShown: () => this.shown.emit(),\n\t\t\t\t\tonHidden: () => this.hidden.emit(),\n\t\t\t\t},\n\t\t\t\tafterInit: (widget) => {\n\t\t\t\t\tuseDirectiveForHost(widget.directives.collapseDirective);\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n}\n\n@Directive({\n\tselector: '[auCollapseTrigger]',\n})\nexport class CollapseTriggerDirective implements OnInit {\n\treadonly auCollapseTrigger = input.required<CollapseDirective>();\n\tprivate readonly injector = inject(Injector);\n\n\tasync ngOnInit() {\n\t\tawait this.auCollapseTrigger()['_widget'].initialized;\n\t\trunInInjectionContext(this.injector, () => {\n\t\t\tuseDirectiveForHost(this.auCollapseTrigger().directives.triggerDirective);\n\t\t});\n\t}\n}\n","import {getCollapseDefaultConfig, createCollapse} from '@agnos-ui/core-bootstrap/components/collapse';\nimport type {Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default collapse config\n * @returns the default collapse config\n */\nconst export_getCollapseDefaultConfig: () => CollapseProps = getCollapseDefaultConfig as any;\nexport {export_getCollapseDefaultConfig as getCollapseDefaultConfig};\n\n/**\n * Properties for the Collapse component.\n */\nexport interface CollapseProps {\n\t\n\t/**\n\t * Callback called when the collapse visibility changed.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t * @param visible - The new visibility state of the collapse.\n\t */\n\tonVisibleChange: (visible: boolean) => void;\n\t\n\n\t/**\n\t * Callback called when the collapse is hidden.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonHidden: () => void;\n\t\n\n\t/**\n\t * Callback called when the collapse is shown.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonShown: () => void;\n\t\n\n\t/**\n\t * If `true`, collapse opening will be animated at init time.\n\t *\n\t * @defaultValue `false`\n\t */\n\tanimatedOnInit: boolean;\n\t\n\n\t/**\n\t * If `true`, collapse closing and opening will be animated.\n\t *\n\t * @defaultValue `true`\n\t */\n\tanimated: boolean;\n\t\n\t/**\n\t * id of the collapse\n\t *\n\t * @defaultValue `''`\n\t */\n\tid: string;\n\t\n\t/**\n\t * If `true` the collapse is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * If `true`, collapse will be done horizontally.\n\t *\n\t * @defaultValue `false`\n\t */\n\thorizontal: boolean;\n}\n\n\n\n/**\n * Represents a widget for handling collapse functionality.\n *\n * This type defines the structure of a CollapseWidget, which includes properties, state, API, and directives\n * necessary for managing the collapse behavior in the UI.\n *\n * @type {Widget<CollapseProps, CollapseState, CollapseApi, CollapseDirectives>}\n */\nexport type CollapseWidget = Widget<CollapseProps, CollapseState, CollapseApi, CollapseDirectives>;\n\n\n\n/**\n * Create an CollapseWidget with given config props\n * @param config - an optional collapse config\n * @returns an CollapseWidget\n */\nconst export_createCollapse: WidgetFactory<CollapseWidget> = createCollapse as any;\nexport {export_createCollapse as createCollapse};\n\n/**\n * Represents the state of a Collapse component.\n */\nexport interface CollapseState {\n\t\n\t/**\n\t * Is `true` when the collapse is hidden. Compared to `visible`, this is updated after the transition is executed.\n\t */\n\thidden: boolean;\n\t\n\t/**\n\t * If `true` the collapse is visible to the user\n\t *\n\t * @defaultValue `true`\n\t */\n\tvisible: boolean;\n}\n\n/**\n * Interface representing the API for a collapsible component.\n */\nexport interface CollapseApi {\n\t\n\t/**\n\t * Triggers collapse closing programmatically.\n\t */\n\tclose(): void;\n\t\n\n\t/**\n\t * Triggers the collapse content to be displayed for the user.\n\t */\n\topen(): void;\n\t\n\n\t/**\n\t * Toggles the collapse content visibility.\n\t */\n\ttoggle(): void;\n}\n\n/**\n * Interface representing the directives used in a collapse component.\n */\nexport interface CollapseDirectives {\n\t\n\t/**\n\t * Directive to apply the collapse.\n\t */\n\tcollapseDirective: Directive;\n\t\n\t/**\n\t * Directive to apply to a trigger;\n\t */\n\ttriggerDirective: Directive;\n}\n\n","import {getTreeDefaultConfig, createTree} from '@agnos-ui/core-bootstrap/components/tree';\nimport type {WidgetSlotContext, SlotContent, Widget, WidgetFactory, Directive} from '@agnos-ui/angular-headless';\n\n\n\n/**\n * Retrieve a shallow copy of the default Tree config\n * @returns the default Tree config\n */\nconst export_getTreeDefaultConfig: () => TreeProps = getTreeDefaultConfig as any;\nexport {export_getTreeDefaultConfig as getTreeDefaultConfig};\n\n\n\n/**\n * Represents the context for a Tree widget.\n * This interface is an alias for `WidgetSlotContext<TreeWidget>`.\n */\nexport type TreeContext = WidgetSlotContext<TreeWidget>;\n\n\n/**\n * Represents the context for a tree item, extending the base `TreeContext`\n * with an additional `item` property.\n */\nexport type TreeSlotItemContext = TreeContext & {item: NormalizedTreeItem};\n\n/**\n * Represents the state of a Tree component.\n */\nexport interface TreeState {\n\t\n\t/**\n\t * Array of normalized tree nodes\n\t */\n\tnormalizedNodes: NormalizedTreeItem[];\n\t\n\t/**\n\t * Getter of expanded state for each tree node\n\t */\n\texpandedMap: {get(item: NormalizedTreeItem): boolean | undefined};\n\t\n\t/**\n\t * Optional accessibility label for the tree if there is no explicit label\n\t *\n\t * @defaultValue `''`\n\t */\n\tariaLabel?: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Slot to change the default display of the tree\n\t */\n\tstructure: SlotContent<TreeContext>;\n\t\n\t/**\n\t * Slot to change the default tree item\n\t */\n\titem: SlotContent<TreeSlotItemContext>;\n\t\n\t/**\n\t * Slot to change the default tree item content\n\t */\n\titemContent: SlotContent<TreeSlotItemContext>;\n\t\n\t/**\n\t * Slot to change the default tree item toggle\n\t */\n\titemToggle: SlotContent<TreeSlotItemContext>;\n}\n\n/**\n * Represents the properties for the Tree component.\n */\nexport interface TreeProps {\n\t\n\t/**\n\t * Array of the tree nodes to display\n\t *\n\t * @defaultValue `[]`\n\t */\n\tnodes: TreeItem[];\n\t\n\t/**\n\t * An event emitted when the user toggles the expand of the TreeItem.\n\t *\n\t * Event payload is equal to the TreeItem clicked.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\tonExpandToggle: (node: NormalizedTreeItem) => void;\n\t\n\t/**\n\t * Retrieves expand items of the TreeItem\n\t *\n\t * @param node - HTML element that is representing the expand item\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (node: HTMLElement) => node.querySelectorAll('button')\n\t * ```\n\t */\n\tnavSelector(node: HTMLElement): NodeListOf<HTMLElement>;\n\t\n\t/**\n\t * Return the value for the 'aria-label' attribute of the toggle\n\t * @param label - tree item label\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (label: string) => `Toggle ${label}`\n\t * ```\n\t */\n\tariaLabelToggleFn: (label: string) => string;\n\t\n\t/**\n\t * Optional accessibility label for the tree if there is no explicit label\n\t *\n\t * @defaultValue `''`\n\t */\n\tariaLabel?: string;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Slot to change the default display of the tree\n\t */\n\tstructure: SlotContent<TreeContext>;\n\t\n\t/**\n\t * Slot to change the default tree item\n\t */\n\titem: SlotContent<TreeSlotItemContext>;\n\t\n\t/**\n\t * Slot to change the default tree item content\n\t */\n\titemContent: SlotContent<TreeSlotItemContext>;\n\t\n\t/**\n\t * Slot to change the default tree item toggle\n\t */\n\titemToggle: SlotContent<TreeSlotItemContext>;\n}\n\n\n/**\n * Represents a Tree widget component.\n */\nexport type TreeWidget = Widget<TreeProps, TreeState, TreeApi, TreeDirectives>;\n\n\n\n/**\n * Create a Tree with given config props\n * @param config - an optional tree config\n * @returns a TreeWidget\n */\nconst export_createTree: WidgetFactory<TreeWidget> = createTree as any;\nexport {export_createTree as createTree};\n\n/**\n * Represents a tree item component.\n */\nexport interface TreeItem {\n\t\n\t/**\n\t * Optional accessibility label for the node\n\t */\n\tariaLabel?: string;\n\t\n\t/**\n\t * Optional array of children nodes\n\t */\n\tchildren?: TreeItem[];\n\t\n\t/**\n\t * If `true` the node is expanded\n\t */\n\tisExpanded?: boolean;\n\t\n\t/**\n\t * String title of the node\n\t */\n\tlabel: string;\n}\n\n/**\n * Normalized TreeItem object\n */\nexport interface NormalizedTreeItem {\n\t\n\t/**\n\t * Accessibility label for the node\n\t */\n\tariaLabel: string;\n\t\n\n\t/**\n\t * Level in the hierarchy, starts with 0 for a root node\n\t */\n\tlevel: number;\n\t\n\n\t/**\n\t * An array of children nodes\n\t */\n\tchildren: NormalizedTreeItem[];\n\t\n\t/**\n\t * If `true` the node is expanded\n\t */\n\tisExpanded?: boolean;\n\t\n\t/**\n\t * String title of the node\n\t */\n\tlabel: string;\n}\n\n/**\n * Interface representing the API for a Tree component.\n */\nexport interface TreeApi {\n}\n\n/**\n * Interface representing various directives used in the Tree component.\n */\nexport interface TreeDirectives {\n\t\n\t/**\n\t * Directive to attach navManager for the tree\n\t */\n\tnavigationDirective: Directive;\n\t\n\t/**\n\t * Directive to handle toggle for the tree item\n\t */\n\titemToggleDirective: Directive<{item: NormalizedTreeItem}>;\n\t\n\t/**\n\t * Directive to handle attributes for the tree item\n\t */\n\titemAttributesDirective: Directive<{item: NormalizedTreeItem}>;\n}\n\n","import type {SlotContent} from '@agnos-ui/angular-headless';\nimport {BaseWidgetDirective, callWidgetFactory, ComponentTemplate, SlotDirective, UseDirective} from '@agnos-ui/angular-headless';\nimport {ChangeDetectionStrategy, Component, contentChild, Directive, inject, input, output, TemplateRef, viewChild} from '@angular/core';\nimport type {TreeContext, TreeItem, NormalizedTreeItem, TreeSlotItemContext, TreeWidget} from './tree.gen';\nimport {createTree} from './tree.gen';\n\n/**\n * Directive to provide a template reference for tree structure.\n *\n * This directive uses a template reference to render the {@link TreeContext}.\n */\n@Directive({selector: 'ng-template[auTreeStructure]'})\nexport class TreeStructureDirective {\n\tpublic templateRef = inject(TemplateRef<TreeContext>);\n\tstatic ngTemplateContextGuard(_dir: TreeStructureDirective, context: unknown): context is TreeContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, TreeStructureDirective, SlotDirective],\n\ttemplate: `\n\t\t<ng-template auTreeStructure #structure let-state=\"state\" let-directives=\"directives\" let-api=\"api\">\n\t\t\t<ul role=\"tree\" class=\"au-tree {{ state.className() }}\" [auUse]=\"directives.navigationDirective\">\n\t\t\t\t@for (node of state.normalizedNodes(); track trackNode($index, node)) {\n\t\t\t\t\t<ng-template [auSlot]=\"state.item()\" [auSlotProps]=\"{state, api, directives, item: node}\" />\n\t\t\t\t}\n\t\t\t</ul>\n\t\t</ng-template>\n\t`,\n})\nclass TreeDefaultStructureSlotComponent {\n\treadonly structure = viewChild.required<TemplateRef<TreeContext>>('structure');\n\n\ttrackNode(index: number, node: NormalizedTreeItem): string {\n\t\treturn node.label + node.level + index;\n\t}\n}\n\n/**\n * A constant representing the default slot for tree structure.\n */\nexport const treeDefaultSlotStructure: SlotContent<TreeContext> = new ComponentTemplate(TreeDefaultStructureSlotComponent, 'structure');\n\n/**\n * Directive to provide a template reference for tree item toggle.\n *\n * This directive uses a template reference to render the {@link TreeSlotItemContext}.\n */\n@Directive({selector: 'ng-template[auTreeItemToggle]'})\nexport class TreeItemToggleDirective {\n\tpublic templateRef = inject(TemplateRef<TreeSlotItemContext>);\n\tstatic ngTemplateContextGuard(_dir: TreeItemToggleDirective, context: unknown): context is TreeSlotItemContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, TreeItemToggleDirective],\n\ttemplate: `\n\t\t<ng-template auTreeItemToggle #toggle let-directives=\"directives\" let-item=\"item\">\n\t\t\t@if (item.children.length > 0) {\n\t\t\t\t<button [auUse]=\"[directives.itemToggleDirective, {item}]\">\n\t\t\t\t\t<svg class=\"au-tree-expand-icon-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 10 10\">\n\t\t\t\t\t\t<path d=\"M3 1 L7 5 L3 9\" class=\"au-tree-expand-icon-svg-fill\" stroke-width=\"1\" fill=\"none\" />\n\t\t\t\t\t</svg>\n\t\t\t\t</button>\n\t\t\t} @else {\n\t\t\t\t<span class=\"au-tree-expand-icon-placeholder\"></span>\n\t\t\t}\n\t\t</ng-template>\n\t`,\n})\nclass TreeDefaultItemToggleSlotComponent {\n\treadonly toggle = viewChild.required<TemplateRef<TreeSlotItemContext>>('toggle');\n}\n\n/**\n * A constant representing the default slot for tree item toggle.\n */\nexport const treeDefaultItemToggle: SlotContent<TreeSlotItemContext> = new ComponentTemplate(TreeDefaultItemToggleSlotComponent, 'toggle');\n\n/**\n * Directive to provide a template reference for tree item content.\n *\n * This directive uses a template reference to render the {@link TreeSlotItemContext}.\n */\n@Directive({selector: 'ng-template[auTreeItemContent]'})\nexport class TreeItemContentDirective {\n\tpublic templateRef = inject(TemplateRef<TreeSlotItemContext>);\n\tstatic ngTemplateContextGuard(_dir: TreeItemContentDirective, context: unknown): context is TreeSlotItemContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective, TreeItemContentDirective],\n\ttemplate: `\n\t\t<ng-template auTreeItemContent #treeItemContent let-state=\"state\" let-directives=\"directives\" let-item=\"item\" let-api=\"api\">\n\t\t\t<span class=\"au-tree-item\">\n\t\t\t\t<ng-template [auSlot]=\"state.itemToggle()\" [auSlotProps]=\"{state, api, directives, item}\" />\n\t\t\t\t{{ item.label }}\n\t\t\t</span>\n\t\t</ng-template>\n\t`,\n})\nclass TreeDefaultItemContentSlotComponent {\n\treadonly treeItemContent = viewChild.required<TemplateRef<TreeSlotItemContext>>('treeItemContent');\n}\n\n/**\n * A constant representing the default slot for tree item.\n */\nexport const treeDefaultSlotItemContent: SlotContent<TreeSlotItemContext> = new ComponentTemplate(\n\tTreeDefaultItemContentSlotComponent,\n\t'treeItemContent',\n);\n\n/**\n * Directive to provide a template reference for tree item.\n *\n * This directive uses a template reference to render the {@link TreeSlotItemContext}.\n */\n@Directive({selector: 'ng-template[auTreeItem]'})\nexport class TreeItemDirective {\n\tpublic templateRef = inject(TemplateRef<TreeSlotItemContext>);\n\tstatic ngTemplateContextGuard(_dir: TreeItemDirective, context: unknown): context is TreeSlotItemContext {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [UseDirective, SlotDirective, TreeItemDirective],\n\ttemplate: `\n\t\t<ng-template auTreeItem #treeItem let-state=\"state\" let-directives=\"directives\" let-item=\"item\" let-api=\"api\">\n\t\t\t<li [auUse]=\"[directives.itemAttributesDirective, {item}]\">\n\t\t\t\t<ng-template [auSlot]=\"state.itemContent()\" [auSlotProps]=\"{state, api, directives, item}\" />\n\t\t\t\t@if (state.expandedMap().get(item)) {\n\t\t\t\t\t<ul role=\"group\">\n\t\t\t\t\t\t@for (child of item.children; track trackNode($index, child)) {\n\t\t\t\t\t\t\t<ng-template [auSlot]=\"state.item()\" [auSlotProps]=\"{state, api, directives, item: child}\" />\n\t\t\t\t\t\t}\n\t\t\t\t\t</ul>\n\t\t\t\t}\n\t\t\t</li>\n\t\t</ng-template>\n\t`,\n})\nclass TreeDefaultItemSlotComponent {\n\treadonly treeItem = viewChild.required<TemplateRef<TreeSlotItemContext>>('treeItem');\n\n\ttrackNode(index: number, node: NormalizedTreeItem) {\n\t\treturn node.label + node.level + index;\n\t}\n}\n\n/**\n * A constant representing the default slot for tree item.\n */\nexport const treeDefaultSlotItem: SlotContent<TreeSlotItemContext> = new ComponentTemplate(TreeDefaultItemSlotComponent, 'treeItem');\n\n/**\n * TreeComponent is an Angular component that extends the BaseWidgetDirective\n * to provide a customizable tree widget. This component allows for various\n * configurations and customizations through its inputs and outputs.\n */\n@Component({\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tselector: '[auTree]',\n\n\timports: [SlotDirective],\n\ttemplate: ` <ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" /> `,\n})\nexport class TreeComponent extends BaseWidgetDirective<TreeWidget> {\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory(createTree, {\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: treeDefaultSlotStructure,\n\t\t\t\t\titem: treeDefaultSlotItem,\n\t\t\t\t\titemContent: treeDefaultSlotItemContent,\n\t\t\t\t\titemToggle: treeDefaultItemToggle,\n\t\t\t\t},\n\t\t\t\tevents: {\n\t\t\t\t\tonExpandToggle: (item: NormalizedTreeItem) => this.expandToggle.emit(item),\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\titem: this.slotItemFromContent()?.templateRef,\n\t\t\t\t\titemContent: this.slotItemContentFromContent()?.templateRef,\n\t\t\t\t\titemToggle: this.slotItemToggleFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n\t/**\n\t * Optional accessibility label for the tree if there is no explicit label\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly ariaLabel = input<string>(undefined, {alias: 'auAriaLabel'});\n\t/**\n\t * Array of the tree nodes to display\n\t *\n\t * @defaultValue `[]`\n\t */\n\treadonly nodes = input<TreeItem[]>(undefined, {alias: 'auNodes'});\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\t/**\n\t * Retrieves expand items of the TreeItem\n\t *\n\t * @param node - HTML element that is representing the expand item\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (node: HTMLElement) => node.querySelectorAll('button')\n\t * ```\n\t */\n\treadonly navSelector = input<(node: HTMLElement) => NodeListOf<HTMLElement>>(undefined, {alias: 'auNavSelector'});\n\t/**\n\t * Return the value for the 'aria-label' attribute of the toggle\n\t * @param label - tree item label\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * (label: string) => `Toggle ${label}`\n\t * ```\n\t */\n\treadonly ariaLabelToggleFn = input<(label: string) => string>(undefined, {alias: 'auAriaLabelToggleFn'});\n\n\t/**\n\t * An event emitted when the user toggles the expand of the TreeItem.\n\t *\n\t * Event payload is equal to the TreeItem clicked.\n\t *\n\t * @defaultValue\n\t * ```ts\n\t * () => {}\n\t * ```\n\t */\n\treadonly expandToggle = output<NormalizedTreeItem>({alias: 'auExpandToggle'});\n\n\t/**\n\t * Slot to change the default tree item content\n\t */\n\treadonly itemContent = input<SlotContent<TreeSlotItemContext>>(undefined, {alias: 'auItemContent'});\n\treadonly slotItemContentFromContent = contentChild(TreeItemContentDirective);\n\n\t/**\n\t * Slot to change the default display of the tree\n\t */\n\treadonly structure = input<SlotContent<TreeContext>>(undefined, {alias: 'auStructure'});\n\treadonly slotStructureFromContent = contentChild(TreeStructureDirective);\n\n\t/**\n\t * Slot to change the default tree item toggle\n\t */\n\treadonly itemToggle = input<SlotContent<TreeSlotItemContext>>(undefined, {alias: 'auItemToggle'});\n\treadonly slotItemToggleFromContent = contentChild(TreeItemToggleDirective);\n\n\t/**\n\t * Slot to change the default tree item\n\t */\n\treadonly item = input<SlotContent<TreeSlotItemContext>>(undefined, {alias: 'auItem'});\n\treadonly slotItemFromContent = contentChild(TreeItemDirective);\n}\n","import {getCarouselDefaultConfig, createCarousel} from '@agnos-ui/core-bootstrap/components/carousel';\nimport type {WidgetSlotContext, SlotContent, Directive, Widget, WidgetFactory, PropsConfig} from '@agnos-ui/angular-headless';\nimport type {EmblaPluginType, EmblaPluginsType, EmblaCarouselType} from 'embla-carousel';\n\n\n\n/**\n * Retrieve a shallow copy of the default Carousel config\n * @returns the default Carousel config\n */\nconst export_getCarouselDefaultConfig: () => CarouselProps<any> = getCarouselDefaultConfig as any;\nexport {export_getCarouselDefaultConfig as getCarouselDefaultConfig};\n\n\n\n/**\n * Represents the context for a carousel.\n *\n * @template SlideData - The type of data used by each slide in the carousel.\n */\nexport type CarouselContext<SlideData extends {id: string}> = WidgetSlotContext<CarouselWidget<SlideData>>;\n\n\n\n/**\n * Represents the context for a carousel slide.\n *\n * @template SlideData - The type of data used by each slide in the carousel.\n */\nexport type CarouselSlideContext<SlideData extends {id: string}> = WidgetSlotContext<CarouselWidget<SlideData>> & SlideData;\n\n/**\n * Represents the state of a carousel component.\n *\n * @template SlideData - The type of data used by each slide in the carousel.\n */\nexport interface CarouselState<SlideData extends {id: string}> {\n\t\n\t/**\n\t * is the carousel currently scrolling\n\t */\n\tscrolling: boolean;\n\t\n\t/**\n\t * can carousel scroll to previous slide\n\t */\n\tcanScrollPrev: boolean;\n\t\n\t/**\n\t * can carousel scroll to next slide\n\t */\n\tcanScrollNext: boolean;\n\t\n\t/**\n\t * selected scroll snap\n\t */\n\tselectedScrollSnap: number;\n\t\n\t/**\n\t * is the carousel initialized\n\t */\n\tinitialized: boolean;\n\t\n\t/**\n\t * If `true`, 'previous' and 'next' navigation arrows will be visible.\n\t */\n\tshowNavigationArrows: boolean;\n\t\n\t/**\n\t * If `true`, navigation indicators at the bottom of the slide will be visible.\n\t */\n\tshowNavigationIndicators: boolean;\n\t\n\t/**\n\t * Choose content direction between `ltr` and `rtl`\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#direction}\n\t * @defaultValue `'ltr'`\n\t */\n\tdirection: 'ltr' | 'rtl';\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Class name to apply to the container of the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\tcontainerClass: string;\n\t\n\t/**\n\t * Class name to apply to each slide in the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\tslideClass: string | ((slideContext: {id: string; index: number; active: boolean}) => string);\n\t\n\t/**\n\t * The data for each slide in the carousel.\n\t *\n\t * @defaultValue `[]`\n\t */\n\tslidesData: SlideData[];\n\t\n\t/**\n\t * The structure of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tstructure: SlotContent<CarouselContext<SlideData>>;\n\t\n\t/**\n\t * The navigation layer of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tnavigation: SlotContent<CarouselContext<SlideData>>;\n\t\n\t/**\n\t * The content of each slide in the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tslide: SlotContent<CarouselSlideContext<SlideData>>;\n\t\n\t/**\n\t * The aria-live attribute value for the carousel container.\n\t *\n\t * @defaultValue `'polite'`\n\t */\n\tariaLive: string;\n}\n\n/**\n * Interface representing the properties for a carousel component.\n *\n * @template SlideData - The type of data used by each slide in the carousel.\n */\nexport interface CarouselProps<SlideData extends {id: string}> {\n\t\n\t/**\n\t * Plugins to extend the carousel with additional features\n\t * @defaultValue `[]`\n\t */\n\tplugins: EmblaPluginType[];\n\t\n\t/**\n\t * Aria label for navigation indicators\n\t */\n\tariaIndicatorLabel: (index: number) => string;\n\t\n\t/**\n\t * Aria label for previous button\n\t */\n\tariaPrevLabel: string;\n\t\n\t/**\n\t * Aria label for next button\n\t */\n\tariaNextLabel: string;\n\t\n\t/**\n\t * Align the slides relative to the carousel viewport\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#align}\n\t * @defaultValue `'center'`\n\t */\n\talign: 'start' | 'center' | 'end';\n\t\n\t/**\n\t * Enables choosing a custom container element which holds the slides. By default, Embla will choose the first direct child element of the root element. Provide a valid CSS selector string.\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#container}\n\t */\n\tcontainer: string | null;\n\t\n\t/**\n\t * Clear leading and trailing empty space that causes excessive scrolling\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#containScroll}\n\t * @defaultValue `'trimSnaps'`\n\t */\n\tcontainScroll: false | 'trimSnaps' | 'keepSnaps';\n\t\n\t/**\n\t * Choose content direction between `ltr` and `rtl`\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#direction}\n\t * @defaultValue `'ltr'`\n\t */\n\tdirection: 'ltr' | 'rtl';\n\t\n\t/**\n\t * Enables momentum scrolling\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#dragFree}\n\t * @defaultValue `false`\n\t */\n\tdragFree: boolean;\n\t\n\t/**\n\t * Drag threshold in pixels\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#dragThreshold}\n\t * @defaultValue `10`\n\t */\n\tdragThreshold: number;\n\t\n\t/**\n\t * Set scroll duration when triggered by any of the API methods\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#duration}\n\t * @defaultValue `25`\n\t */\n\tduration: number;\n\t\n\t/**\n\t * Enables infinite looping\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#loop}\n\t * @defaultValue `false`\n\t */\n\tloop: boolean;\n\t\n\t/**\n\t * Allow the carousel to skip scroll snaps if it's dragged vigorously\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#skipsnaps}\n\t * @defaultValue `false`\n\t */\n\tskipSnaps: boolean;\n\t\n\t/**\n\t * If `true`, 'previous' and 'next' navigation arrows will be visible.\n\t */\n\tshowNavigationArrows: boolean;\n\t\n\t/**\n\t * If `true`, navigation indicators at the bottom of the slide will be visible.\n\t */\n\tshowNavigationIndicators: boolean;\n\t\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\tclassName: string;\n\t\n\t/**\n\t * Class name to apply to the container of the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\tcontainerClass: string;\n\t\n\t/**\n\t * Class name to apply to each slide in the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\tslideClass: string | ((slideContext: {id: string; index: number; active: boolean}) => string);\n\t\n\t/**\n\t * The data for each slide in the carousel.\n\t *\n\t * @defaultValue `[]`\n\t */\n\tslidesData: SlideData[];\n\t\n\t/**\n\t * The structure of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tstructure: SlotContent<CarouselContext<SlideData>>;\n\t\n\t/**\n\t * The navigation layer of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tnavigation: SlotContent<CarouselContext<SlideData>>;\n\t\n\t/**\n\t * The content of each slide in the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\tslide: SlotContent<CarouselSlideContext<SlideData>>;\n\t\n\t/**\n\t * The aria-live attribute value for the carousel container.\n\t *\n\t * @defaultValue `'polite'`\n\t */\n\tariaLive: string;\n}\n\n/**\n * Represents the directives for a carousel component.\n */\nexport interface CarouselDirectives {\n\t\n\t/**\n\t * A directive to be applied to each slide in the carousel.\n\t */\n\tslide: Directive<{id: string; index: number}>;\n\t\n\t/**\n\t * A directive to be applied to container of the carousel.\n\t */\n\tcontainer: Directive;\n\t\n\t/**\n\t * the root directive\n\t */\n\troot: Directive;\n\t\n\t/**\n\t * A directive to be applied to a navigation button allowing to scroll to the previous slide.\n\t */\n\tscrollPrev: Directive;\n\t\n\t/**\n\t * A directive to be applied to a navigation button allowing to scroll to the next slide.\n\t */\n\tscrollNext: Directive;\n\t\n\t/**\n\t * A directive to be applied to a tab list allowing to navigate to the corresponding slide.\n\t * This directive adds the role `tablist` and is recommended to be used together with {@link tabIndicator}.\n\t */\n\ttabList: Directive;\n\t\n\t/**\n\t * A directive to be applied to a navigation indicator allowing to scroll to the corresponding slide.\n\t * As this directive adds the role `tab` to the element, it is recommended to use it on a button or a link and the parent element should have the {@link tabList} directive attached.\n\t */\n\ttabIndicator: Directive<{index: number; id: string; jump?: boolean}>;\n}\n\n\n\n/**\n * Represents a carousel widget with specific properties, state, API, and directives.\n *\n * @template SlideData - The type of the data for each slide.\n */\nexport type CarouselWidget<SlideData extends {id: string}> = Widget<\n\tCarouselProps<SlideData>,\n\tCarouselState<SlideData>,\n\tCarouselApi,\n\tCarouselDirectives\n>;\n\n\n\n/**\n * Create a Carousel with given config props\n *\n * @template SlideData - The type of the data for each slide.\n * @param config - an optional carousel config\n * @returns a CarouselWidget\n */\nconst export_createCarousel: WidgetFactory<CarouselWidget<{ id: string; }>, <SlideData extends { id: string; }>(config?: PropsConfig<CarouselProps<SlideData>>) => CarouselWidget<SlideData>> = createCarousel as any;\nexport {export_createCarousel as createCarousel};\n\n/**\n * Represents the API for a carousel component.\n */\nexport interface CarouselApi {\n\t\n\t/**\n\t * Scroll to the previous snap point if possible.\n\t * @param jump - scroll instantly\n\t */\n\tscrollPrev: (jump?: boolean) => void;\n\t\n\t/**\n\t * Scroll to the next snap point if possible.\n\t * @param jump - scroll instantly\n\t */\n\tscrollNext: (jump?: boolean) => void;\n\t\n\t/**\n\t * Scroll to a snap point by index\n\t * @param index - the snap point index\n\t * @param jump - scroll instantly\n\t */\n\tscrollTo: (index: number, jump?: boolean) => void;\n\t\n\t/**\n\t * Retrieve the enabled plugins\n\t */\n\tplugins: () => EmblaPluginsType | undefined;\n\t\n\t/**\n\t * Retrieve the inner EmblaApi object\n\t */\n\temblaApi: () => EmblaCarouselType | undefined;\n}\n\n","import {\n\tauBooleanAttribute,\n\tauNumberAttribute,\n\tBaseWidgetDirective,\n\tComponentTemplate,\n\ttype SlotContent,\n\tSlotDirective,\n\tUseDirective,\n\tuseDirectiveForHost,\n} from '@agnos-ui/angular-headless';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type {CarouselContext, CarouselSlideContext, CarouselWidget, CarouselProps} from './carousel.gen';\nimport {createCarousel} from './carousel.gen';\nimport type {InputSignal} from '@angular/core';\nimport {ChangeDetectionStrategy, Component, contentChild, Directive, inject, input, TemplateRef, viewChild} from '@angular/core';\nimport {callWidgetFactory} from '../../config';\nimport type {EmblaPluginType} from 'embla-carousel';\n\n/**\n * Directive that provides a template reference for the carousel structure using the {@link CarouselContext}.\n */\n@Directive({selector: 'ng-template[auCarouselStructure]'})\nexport class CarouselStructureDirective<SlideData extends {id: string}> {\n\tpublic templateRef = inject(TemplateRef<CarouselContext<SlideData>>);\n\n\tstatic ngTemplateContextGuard<SlideData extends {id: string}>(\n\t\t_dir: CarouselStructureDirective<SlideData>,\n\t\tcontext: unknown,\n\t): context is CarouselContext<SlideData> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive that provides a template reference for the carousel navigation using the {@link CarouselContext}.\n */\n@Directive({selector: 'ng-template[auCarouselNavigation]'})\nexport class CarouselNavigationDirective<SlideData extends {id: string}> {\n\tpublic templateRef = inject(TemplateRef<CarouselContext<SlideData>>);\n\n\tstatic ngTemplateContextGuard<SlideData extends {id: string}>(\n\t\t_dir: CarouselNavigationDirective<SlideData>,\n\t\tcontext: unknown,\n\t): context is CarouselContext<SlideData> {\n\t\treturn true;\n\t}\n}\n\n/**\n * Directive that provides a template reference for the carousel slide using the {@link CarouselSlideContext}.\n */\n@Directive({selector: 'ng-template[auCarouselSlide]'})\nexport class CarouselSlideDirective<SlideData extends {id: string}> {\n\tpublic templateRef = inject(TemplateRef<CarouselSlideContext<SlideData>>);\n\n\tstatic ngTemplateContextGuard<SlideData extends {id: string}>(\n\t\t_dir: CarouselSlideDirective<SlideData>,\n\t\tcontext: unknown,\n\t): context is CarouselSlideContext<SlideData> {\n\t\treturn true;\n\t}\n}\n\n@Component({\n\timports: [SlotDirective, CarouselStructureDirective, CarouselNavigationDirective, UseDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<ng-template auCarouselNavigation #navigation let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t@if (state.showNavigationArrows()) {\n\t\t\t\t@if (state.canScrollPrev()) {\n\t\t\t\t\t@let prevBtnClassPrefix = state.direction() === 'rtl' ? 'carousel-control-next' : 'carousel-control-prev';\n\t\t\t\t\t<button class=\"{{ prevBtnClassPrefix }}\" [auUse]=\"directives.scrollPrev\">\n\t\t\t\t\t\t<span class=\"{{ prevBtnClassPrefix }}-icon\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t\t@if (state.canScrollNext()) {\n\t\t\t\t\t@let nextBtnClassPrefix = state.direction() === 'ltr' ? 'carousel-control-next' : 'carousel-control-prev';\n\t\t\t\t\t<button class=\"{{ nextBtnClassPrefix }}\" [auUse]=\"directives.scrollNext\">\n\t\t\t\t\t\t<span class=\"{{ nextBtnClassPrefix }}-icon\"></span>\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t}\n\t\t\t@if (state.showNavigationIndicators()) {\n\t\t\t\t<div class=\"carousel-indicators\" [auUse]=\"directives.tabList\">\n\t\t\t\t\t@for (slideData of state.slidesData(); track slideData.id; let index = $index) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tdata-bs-target=\"true\"\n\t\t\t\t\t\t\t[attr.class]=\"state.selectedScrollSnap() === index ? 'active' : undefined\"\n\t\t\t\t\t\t\t[auUse]=\"[directives.tabIndicator, {index, id: slideData.id}]\"\n\t\t\t\t\t\t></button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-template>\n\t\t<ng-template auCarouselStructure #structure let-state=\"state\" let-api=\"api\" let-directives=\"directives\">\n\t\t\t<ng-template [auSlot]=\"state.navigation()\" [auSlotProps]=\"{state, api, directives}\" />\n\t\t\t<div [auUse]=\"directives.container\">\n\t\t\t\t@for (slideData of state.slidesData(); track slideData.id; let index = $index) {\n\t\t\t\t\t<div [auUse]=\"[directives.slide, {index, id: slideData.id}]\">\n\t\t\t\t\t\t<ng-template [auSlot]=\"state.slide()\" [auSlotProps]=\"toSlideContext(slideData, {state, api, directives})\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ng-template>\n\t`,\n})\nclass CarouselDefaultSlotsComponent<SlideData extends {id: string}> {\n\treadonly structure = viewChild.required<TemplateRef<CarouselContext<SlideData>>>('structure');\n\treadonly navigation = viewChild.required<TemplateRef<CarouselContext<SlideData>>>('navigation');\n\n\ttoSlideContext(slideData: SlideData, carouselContext: CarouselContext<SlideData>): CarouselSlideContext<SlideData> {\n\t\treturn {\n\t\t\t...slideData,\n\t\t\t...carouselContext,\n\t\t};\n\t}\n}\n/**\n * The default slot for the structure\n */\nexport const carouselDefaultSlotStructure: SlotContent<CarouselContext<any>> = new ComponentTemplate(CarouselDefaultSlotsComponent, 'structure');\n/**\n * The default slot for the navigation\n */\nexport const carouselDefaultSlotNavigation: SlotContent<CarouselContext<any>> = new ComponentTemplate(CarouselDefaultSlotsComponent, 'navigation');\n\n/**\n * CarouselComponent is an Angular Component that extends {@link BaseWidgetDirective}<{@link CarouselWidget}>\n * to create a customizable carousel widget. It provides various inputs (see {@link CarouselProps})\n * to configure the appearance and behavior of the carousel.\n */\n@Component({\n\tselector: '[auCarousel]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [SlotDirective],\n\ttemplate: ` <ng-template [auSlot]=\"state.structure()\" [auSlotProps]=\"{state, api, directives}\" /> `,\n})\nexport class CarouselComponent<SlideData extends {id: string}> extends BaseWidgetDirective<CarouselWidget<SlideData>> {\n\t/**\n\t * Aria label for navigation indicators\n\t */\n\treadonly ariaIndicatorLabel = input<(index: number) => string>(undefined, {alias: 'auAriaIndicatorLabel'});\n\n\t/**\n\t * Aria label for previous button\n\t */\n\treadonly ariaPrevLabel = input<string>(undefined, {alias: 'auAriaPrevLabel'});\n\n\t/**\n\t * Aria label for next button\n\t */\n\treadonly ariaNextLabel = input<string>(undefined, {alias: 'auAriaNextLabel'});\n\n\t/**\n\t * Choose content direction between `ltr` and `rtl`\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#direction}\n\t * @defaultValue `'ltr'`\n\t */\n\treadonly direction = input<'ltr' | 'rtl'>(undefined, {alias: 'auDirection'});\n\n\t/**\n\t * Enables momentum scrolling\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#dragFree}\n\t * @defaultValue `false`\n\t */\n\treadonly dragFree = input(undefined, {alias: 'auDragFree', transform: auBooleanAttribute});\n\n\t/**\n\t * Drag threshold in pixels\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#dragThreshold}\n\t * @defaultValue `10`\n\t */\n\treadonly dragThreshold = input(undefined, {alias: 'auDragThreshold', transform: auNumberAttribute});\n\n\t/**\n\t * Set scroll duration when triggered by any of the API methods\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#duration}\n\t * @defaultValue `25`\n\t */\n\treadonly duration = input(undefined, {alias: 'auDuration', transform: auNumberAttribute});\n\n\t/**\n\t * Enables infinite looping\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#loop}\n\t * @defaultValue `false`\n\t */\n\treadonly loop = input(undefined, {alias: 'auLoop', transform: auBooleanAttribute});\n\n\t/**\n\t * Allow the carousel to skip scroll snaps if it's dragged vigorously\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#skipsnaps}\n\t * @defaultValue `false`\n\t */\n\treadonly skipSnaps = input(undefined, {alias: 'auSkipSnaps', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, 'previous' and 'next' navigation arrows will be visible.\n\t */\n\treadonly showNavigationArrows = input(undefined, {alias: 'auShowNavigationArrows', transform: auBooleanAttribute});\n\n\t/**\n\t * If `true`, navigation indicators at the bottom of the slide will be visible.\n\t */\n\treadonly showNavigationIndicators = input(undefined, {alias: 'auShowNavigationIndicators', transform: auBooleanAttribute});\n\n\t/**\n\t * Plugins to extend the carousel with additional features\n\t * @defaultValue `[]`\n\t */\n\treadonly plugins: InputSignal<EmblaPluginType[] | undefined> = input<EmblaPluginType[]>(undefined, {alias: 'auPlugins'});\n\n\t/**\n\t * Align the slides relative to the carousel viewport\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#align}\n\t * @defaultValue `'center'`\n\t */\n\treadonly align = input<'start' | 'center' | 'end'>(undefined, {alias: 'auAlign'});\n\n\t/**\n\t * Enables choosing a custom container element which holds the slides. By default, Embla will choose the first direct child element of the root element. Provide a valid CSS selector string.\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#container}\n\t */\n\treadonly container = input<string | null>(undefined, {alias: 'auContainer'});\n\n\t/**\n\t * Clear leading and trailing empty space that causes excessive scrolling\n\t *\n\t * @see {@link https://www.embla-carousel.com/api/options/#containScroll}\n\t * @defaultValue `'trimSnaps'`\n\t */\n\treadonly containScroll = input<false | 'trimSnaps' | 'keepSnaps'>(undefined, {alias: 'auContainScroll'});\n\n\t/**\n\t * CSS classes to be applied on the widget main container\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly className = input<string>(undefined, {alias: 'auClassName'});\n\n\t/**\n\t * Class name to apply to the container of the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly containerClass = input<string>(undefined, {alias: 'auContainerClass'});\n\n\t/**\n\t * Class name to apply to each slide in the carousel.\n\t *\n\t * @defaultValue `''`\n\t */\n\treadonly slideClass = input<string | ((slideContext: {id: string; index: number; active: boolean}) => string)>(undefined, {alias: 'auSlideClass'});\n\n\t/**\n\t * The aria-live attribute value for the carousel container.\n\t *\n\t * @defaultValue `'polite'`\n\t */\n\treadonly ariaLive = input<string>(undefined, {alias: 'auAriaLive'});\n\n\t/**\n\t * The data for each slide in the carousel.\n\t *\n\t * @defaultValue `[]`\n\t */\n\treadonly slidesData = input<SlideData[]>(undefined, {alias: 'auSlidesData'});\n\n\t/**\n\t * The structure of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\treadonly structure = input<SlotContent<CarouselContext<SlideData>>>(undefined, {alias: 'auStructure'});\n\n\t/**\n\t * The navigation layer of the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\treadonly navigation = input<SlotContent<CarouselContext<SlideData>>>(undefined, {alias: 'auNavigation'});\n\n\t/**\n\t * The content of each slide in the carousel.\n\t *\n\t * @defaultValue `undefined`\n\t */\n\treadonly slide = input<SlotContent<CarouselSlideContext<SlideData>>>(undefined, {alias: 'auSlide'});\n\n\treadonly slotSlideFromContent = contentChild(CarouselSlideDirective<SlideData>);\n\treadonly slotStructureFromContent = contentChild(CarouselStructureDirective<SlideData>);\n\treadonly slotNavigationFromContent = contentChild(CarouselNavigationDirective<SlideData>);\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tcallWidgetFactory<CarouselWidget<SlideData>>(createCarousel, {\n\t\t\t\tafterInit: (widget) => useDirectiveForHost(widget.directives.root),\n\t\t\t\tdefaultConfig: {\n\t\t\t\t\tstructure: carouselDefaultSlotStructure,\n\t\t\t\t\tnavigation: carouselDefaultSlotNavigation,\n\t\t\t\t},\n\t\t\t\tslotTemplates: () => ({\n\t\t\t\t\tslide: this.slotSlideFromContent()?.templateRef,\n\t\t\t\t\tstructure: this.slotStructureFromContent()?.templateRef,\n\t\t\t\t\tnavigation: this.slotNavigationFromContent()?.templateRef,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t}\n}\n","import {Injectable} from '@angular/core';\nimport type {ToastProps} from './toast.gen';\nimport {ToasterService as headlessToaster} from '@agnos-ui/angular-headless';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ToasterService extends headlessToaster<Partial<ToastProps>> {}\n","import {Component, inject, ChangeDetectionStrategy, input, effect, computed} from '@angular/core';\nimport {ToastComponent} from './toast.component';\nimport {ToasterService} from './toaster.service';\nimport {UseDirective} from '@agnos-ui/angular-headless';\nimport {toastPositions} from './toast.gen';\n\n@Component({\n\tselector: '[auToaster]',\n\timports: [UseDirective, ToastComponent],\n\thost: {\n\t\tclass: 'au-toaster',\n\t\t'aria-live': 'polite',\n\t\t'aria-atomic': 'true',\n\t},\n\ttemplate: `\n\t\t<div [class]=\"'au-toaster-container toast-container ' + positionClass()\">\n\t\t\t@if (toasterService.options().closeAll && toasterService.toasts().length > 1) {\n\t\t\t\t<div class=\"d-flex position-relative align-items-end pb-2\">\n\t\t\t\t\t<button class=\"au-toaster-closeAll btn btn-secondary me-0 ms-auto pe-auto\" (click)=\"toasterService.closeAll()\">\n\t\t\t\t\t\t{{ toasterService.options().closeAllLabel || 'Close all' }}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t@for (toast of toasterService.toasts(); track toast.id) {\n\t\t\t\t<div [auUse]=\"[toasterService.eventsDirective, toast.id]\">\n\t\t\t\t\t<au-component\n\t\t\t\t\t\tauToast\n\t\t\t\t\t\t[auDismissible]=\"toast.props.dismissible ?? toasterService.options().dismissible\"\n\t\t\t\t\t\t[auAnimated]=\"toast.props.animated\"\n\t\t\t\t\t\t[auAutoHide]=\"false\"\n\t\t\t\t\t\t[auClassName]=\"toast.props.className\"\n\t\t\t\t\t\t[auAriaCloseButtonLabel]=\"toast.props.ariaCloseButtonLabel\"\n\t\t\t\t\t\t[auStructure]=\"toast.props.structure\"\n\t\t\t\t\t\t(auHidden)=\"handleHidden(toast)\"\n\t\t\t\t\t\t(auVisibleChange)=\"(toast.props.onVisibleChange)\"\n\t\t\t\t\t\t[auChildren]=\"toast.props.children\"\n\t\t\t\t\t\t[auHeader]=\"toast.props.header\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToasterComponent {\n\treadonly toasterService = inject(ToasterService);\n\n\treadonly auDismissible = input(this.toasterService.options().dismissible);\n\treadonly auDuration = input(this.toasterService.options().duration);\n\treadonly auPosition = input(this.toasterService.options().position);\n\treadonly auLimit = input(this.toasterService.options().limit);\n\treadonly auPauseOnHover = input(this.toasterService.options().pauseOnHover);\n\treadonly auCloseAll = input(this.toasterService.options().closeAll);\n\treadonly auCloseAllLabel = input(this.toasterService.options().closeAllLabel);\n\n\treadonly positionClass = computed(() => toastPositions[this.toasterService.options().position]);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.toasterService.options.update((options) => ({\n\t\t\t\t...options,\n\t\t\t\tdismissible: this.auDismissible(),\n\t\t\t\tduration: this.auDuration(),\n\t\t\t\tposition: this.auPosition(),\n\t\t\t\tlimit: this.auLimit(),\n\t\t\t\tpauseOnHover: this.auPauseOnHover(),\n\t\t\t\tcloseAll: this.auCloseAll(),\n\t\t\t\tcloseAllLabel: this.auCloseAllLabel(),\n\t\t\t}));\n\t\t});\n\t}\n\n\thandleHidden(toast: any) {\n\t\tthis.toasterService.removeToast(toast.id);\n\t\ttoast.props.onHidden?.();\n\t}\n}\n","import {SlotDirective, UseDirective, UseMultiDirective} from '@agnos-ui/angular-headless';\nimport {NgModule} from '@angular/core';\nimport {\n\tModalBodyDirective,\n\tModalComponent,\n\tModalFooterDirective,\n\tModalHeaderDirective,\n\tModalStructureDirective,\n\tModalTitleDirective,\n} from './components/modal/modal.component';\nimport {\n\tPaginationComponent,\n\tPaginationEllipsisDirective,\n\tPaginationFirstDirective,\n\tPaginationLastDirective,\n\tPaginationNextDirective,\n\tPaginationNumberDirective,\n\tPaginationPagesDirective,\n\tPaginationStructureDirective,\n\tPaginationPreviousDirective,\n} from './components/pagination/pagination.component';\nimport {RatingComponent, RatingStarDirective} from './components/rating/rating.component';\nimport {SelectBadgeLabelDirective, SelectComponent, SelectItemLabelDirective} from './components/select/select.component';\nimport {AlertBodyDirective, AlertComponent, AlertStructureDirective} from './components/alert/alert.component';\nimport {\n\tAccordionDirective,\n\tAccordionItemComponent,\n\tAccordionHeaderDirective,\n\tAccordionBodyDirective,\n\tAccordionItemStructureDirective,\n} from './components/accordion/accordion.component';\nimport {\n\tSliderComponent,\n\tSliderHandleDirective,\n\tSliderLabelDirective,\n\tSliderStructureDirective,\n\tSliderTickDirective,\n} from './components/slider/slider.component';\nimport {ProgressbarComponent, ProgressbarBodyDirective, ProgressbarStructureDirective} from './components/progressbar/progressbar.component';\nimport {ToastBodyDirective, ToastComponent, ToastHeaderDirective, ToastStructureDirective} from './components/toast/toast.component';\nimport {CollapseDirective, CollapseTriggerDirective} from './components/collapse';\nimport {\n\tTreeComponent,\n\tTreeItemContentDirective,\n\tTreeItemDirective,\n\tTreeStructureDirective,\n\tTreeItemToggleDirective,\n} from './components/tree/tree.component';\nimport {CarouselComponent, CarouselNavigationDirective, CarouselSlideDirective, CarouselStructureDirective} from './components/carousel';\nimport {ToasterComponent} from './components/toast';\n\n/* istanbul ignore next */\nconst components = [\n\tSlotDirective,\n\tSelectComponent,\n\tSelectBadgeLabelDirective,\n\tSelectItemLabelDirective,\n\tUseDirective,\n\tUseMultiDirective,\n\tRatingComponent,\n\tRatingStarDirective,\n\tPaginationComponent,\n\tPaginationEllipsisDirective,\n\tPaginationFirstDirective,\n\tPaginationLastDirective,\n\tPaginationNextDirective,\n\tPaginationNumberDirective,\n\tPaginationPreviousDirective,\n\tPaginationPagesDirective,\n\tPaginationStructureDirective,\n\tModalComponent,\n\tModalStructureDirective,\n\tModalHeaderDirective,\n\tModalTitleDirective,\n\tModalBodyDirective,\n\tModalFooterDirective,\n\tAlertComponent,\n\tAlertStructureDirective,\n\tAlertBodyDirective,\n\tAccordionDirective,\n\tAccordionItemComponent,\n\tAccordionHeaderDirective,\n\tAccordionBodyDirective,\n\tAccordionItemStructureDirective,\n\tSliderComponent,\n\tSliderHandleDirective,\n\tSliderLabelDirective,\n\tSliderStructureDirective,\n\tSliderTickDirective,\n\tProgressbarComponent,\n\tProgressbarStructureDirective,\n\tProgressbarBodyDirective,\n\tToastComponent,\n\tToastStructureDirective,\n\tToastBodyDirective,\n\tToastHeaderDirective,\n\tToasterComponent,\n\tCollapseDirective,\n\tCollapseTriggerDirective,\n\tTreeComponent,\n\tTreeStructureDirective,\n\tTreeItemToggleDirective,\n\tTreeItemContentDirective,\n\tTreeItemDirective,\n\tCarouselComponent,\n\tCarouselSlideDirective,\n\tCarouselStructureDirective,\n\tCarouselNavigationDirective,\n];\n\n@NgModule({\n\tdeclarations: [],\n\timports: components,\n\texports: components,\n})\nexport class AgnosUIAngularModule {}\n","import {ApplicationRef, createComponent, EnvironmentInjector, inject, Injectable, Injector, inputBinding, outputBinding} from '@angular/core';\nimport {ModalComponent} from './modal.component';\nimport type {ModalProps} from './modal.gen';\n\n/**\n * Service to handle the opening and management of modal components.\n */\n@Injectable({providedIn: 'root'})\nexport class ModalService {\n\tprivate readonly _injector = inject(Injector);\n\tprivate readonly _applicationRef = inject(ApplicationRef);\n\n\t/**\n\t * Opens a modal dialog with the specified options.\n\t *\n\t * @template Data - The type of data that the modal will handle.\n\t * @param options - The options to configure the modal.\n\t * @param injector - The injector to use when creating the modal component\n\t * @returns A promise that resolves when the modal is closed.\n\t */\n\tasync open<Data>(options: Partial<ModalProps<Data>>, injector = this._injector): Promise<any> {\n\t\tconst component = createComponent(ModalComponent, {\n\t\t\tenvironmentInjector: injector.get(EnvironmentInjector),\n\t\t\telementInjector: injector,\n\t\t\tbindings: Object.entries(options).map(([key, value]) => {\n\t\t\t\tif (key.startsWith('on')) {\n\t\t\t\t\treturn outputBinding(`au${key.substring(2)}`, value as any);\n\t\t\t\t} else {\n\t\t\t\t\treturn inputBinding(`au${key[0].toUpperCase()}${key.substring(1)}`, () => value);\n\t\t\t\t}\n\t\t\t}),\n\t\t});\n\t\ttry {\n\t\t\tthis._applicationRef.attachView(component.hostView);\n\t\t\tawait component.instance['_widget'].initialized;\n\t\t\treturn await component.instance.api.open();\n\t\t} finally {\n\t\t\tcomponent.destroy();\n\t\t}\n\t}\n}\n","/*\n * Public API Surface of @agnos-ui/angular-bootstrap\n */\nexport * from '@agnos-ui/angular-headless';\n\nexport * from './agnos-ui-angular.module';\n\nexport type {\n\tAccordionApi,\n\tAccordionItemContext,\n\tAccordionItemProps,\n\tAccordionItemState,\n\tAccordionItemWidget,\n\tAccordionProps,\n\tAccordionState,\n\tAccordionWidget,\n\tAccordionDirectives,\n\tAccordionItemApi,\n\tAccordionItemDirectives,\n} from './components/accordion';\nexport {createAccordion, getAccordionDefaultConfig, createAccordionItem, factoryCreateAccordion} from './components/accordion';\nexport * from './components/accordion';\n\nexport type {AlertContext, AlertProps, AlertState, AlertWidget, AlertApi, AlertDirectives} from './components/alert';\nexport {createAlert, getAlertDefaultConfig} from './components/alert';\nexport * from './components/alert';\n\nexport type {CollapseProps, CollapseWidget, CollapseApi, CollapseDirectives, CollapseState} from './components/collapse';\nexport {createCollapse, getCollapseDefaultConfig} from './components/collapse';\nexport * from './components/collapse';\n\nexport type {ModalContext, ModalProps, ModalState, ModalWidget, ModalApi, ModalDirectives, ModalBeforeCloseEvent} from './components/modal';\nexport {createModal, getModalDefaultConfig, modalCloseButtonClick, modalOutsideClick} from './components/modal';\nexport * from './components/modal';\n\nexport type {\n\tPaginationContext,\n\tPaginationNumberContext,\n\tPaginationProps,\n\tPaginationState,\n\tPaginationWidget,\n\tDirectionsHrefs,\n\tPaginationApi,\n\tPaginationDirectives,\n} from './components/pagination';\nexport {createPagination, getPaginationDefaultConfig} from './components/pagination';\nexport * from './components/pagination';\n\nexport type {ProgressbarContext, ProgressbarProps, ProgressbarState, ProgressbarWidget, ProgressbarDirectives} from './components/progressbar';\nexport {createProgressbar, getProgressbarDefaultConfig} from './components/progressbar';\nexport * from './components/progressbar';\n\nexport type {RatingProps, RatingState, RatingWidget, StarContext, RatingApi, RatingDirectives} from './components/rating';\nexport {createRating, getRatingDefaultConfig} from './components/rating';\nexport * from './components/rating';\n\nexport type {\n\tSelectContext,\n\tSelectItemContext,\n\tSelectProps,\n\tSelectState,\n\tSelectWidget,\n\tItemContext,\n\tSelectApi,\n\tSelectDirectives,\n} from './components/select';\nexport {createSelect, getSelectDefaultConfig} from './components/select';\nexport * from './components/select';\n\nexport type {\n\tSliderContext,\n\tSliderProps,\n\tSliderSlotHandleContext,\n\tSliderSlotLabelContext,\n\tSliderState,\n\tSliderWidget,\n\tSliderHandle,\n\tSliderTick,\n\tHandleDisplayOptions,\n\tProgressDisplayOptions,\n\tSliderDirectives,\n} from './components/slider';\nexport {createSlider, getSliderDefaultConfig} from './components/slider';\nexport * from './components/slider';\n\nexport type {ToastContext, ToastProps, ToastState, ToastWidget, ToastApi, ToastDirectives} from './components/toast';\nexport {createToast, getToastDefaultConfig} from './components/toast';\n\nexport {defaultToasterProps, ToasterService} from './components/toast';\nexport type {ToastPositions, ToasterProps, ToasterTimer, ToasterToast} from './components/toast';\nexport * from './components/toast';\n\nexport type {TreeProps, TreeState, TreeWidget, TreeApi, TreeDirectives, TreeItem, NormalizedTreeItem} from './components/tree';\nexport {createTree, getTreeDefaultConfig} from './components/tree';\nexport * from './components/tree';\n\nexport type {CarouselWidget, CarouselProps, CarouselState, CarouselApi, CarouselDirectives} from './components/carousel';\nexport {createCarousel, getCarouselDefaultConfig} from './components/carousel';\nexport * from './components/carousel';\n\nexport * from '@agnos-ui/core-bootstrap/services/transitions';\nexport * from '@agnos-ui/core-bootstrap/types';\n\nexport type {WidgetsConfig} from './config';\nexport {widgetsConfigInjectionToken, provideWidgetsConfig, injectWidgetConfig, injectWidgetsConfig, callWidgetFactory} from './config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_c2","_c6","createModal","_c4","_c3","_c5","createPagination","_c1","createRating","_c0","createSelect","createAlert","createAccordion","_c7","_c8","_forTrack0","createSlider","createProgressbar","createToast","callWidgetFactory","createTree","createCarousel","headlessToaster","toastPositions"],"mappings":"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"}