@agorapulse/ui-components 22.1.4 → 22.1.6

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.
Files changed (31) hide show
  1. package/agorapulse-ui-components-22.1.6.tgz +0 -0
  2. package/fesm2022/agorapulse-ui-components-action-dropdown.mjs +19 -23
  3. package/fesm2022/agorapulse-ui-components-action-dropdown.mjs.map +1 -1
  4. package/fesm2022/agorapulse-ui-components-date-range-picker.mjs +15 -6
  5. package/fesm2022/agorapulse-ui-components-date-range-picker.mjs.map +1 -1
  6. package/fesm2022/agorapulse-ui-components-datepicker.mjs +12 -10
  7. package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -1
  8. package/fesm2022/agorapulse-ui-components-dropdown-base.mjs +12 -137
  9. package/fesm2022/agorapulse-ui-components-dropdown-base.mjs.map +1 -1
  10. package/fesm2022/agorapulse-ui-components-dropdown-panel.mjs +93 -0
  11. package/fesm2022/agorapulse-ui-components-dropdown-panel.mjs.map +1 -0
  12. package/fesm2022/agorapulse-ui-components-filter-dropdown.mjs +39 -35
  13. package/fesm2022/agorapulse-ui-components-filter-dropdown.mjs.map +1 -1
  14. package/fesm2022/agorapulse-ui-components-floating.mjs +7 -6
  15. package/fesm2022/agorapulse-ui-components-floating.mjs.map +1 -1
  16. package/fesm2022/agorapulse-ui-components-nav-selector.mjs +2 -2
  17. package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
  18. package/fesm2022/agorapulse-ui-components-selection-dropdown.mjs +20 -23
  19. package/fesm2022/agorapulse-ui-components-selection-dropdown.mjs.map +1 -1
  20. package/fesm2022/agorapulse-ui-components.mjs +1 -0
  21. package/fesm2022/agorapulse-ui-components.mjs.map +1 -1
  22. package/package.json +5 -1
  23. package/types/agorapulse-ui-components-action-dropdown.d.ts +6 -5
  24. package/types/agorapulse-ui-components-date-range-picker.d.ts +4 -2
  25. package/types/agorapulse-ui-components-datepicker.d.ts +7 -4
  26. package/types/agorapulse-ui-components-dropdown-base.d.ts +17 -8
  27. package/types/agorapulse-ui-components-dropdown-panel.d.ts +49 -0
  28. package/types/agorapulse-ui-components-filter-dropdown.d.ts +10 -9
  29. package/types/agorapulse-ui-components-selection-dropdown.d.ts +6 -5
  30. package/types/agorapulse-ui-components.d.ts +1 -0
  31. package/agorapulse-ui-components-22.1.4.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"agorapulse-ui-components.mjs","sources":["../../../libs/ui-components/src/lib/agorapulse-ui-components.module.ts","../../../libs/ui-components/index.ts","../../../libs/ui-components/agorapulse-ui-components.ts"],"sourcesContent":["// Modules\nimport { AddCommentComponent } from '@agorapulse/ui-components/add-comment';\nimport { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { ConfirmModalComponent } from '@agorapulse/ui-components/confirm-modal';\nimport { DatepickerComponent } from '@agorapulse/ui-components/datepicker';\nimport {\n AutosizeTextareaDirective,\n DefaultImageDirective,\n EllipsisDirective,\n EqualValidatorDirective,\n FrozenGifDirective,\n MultiStyleTextDirective,\n} from '@agorapulse/ui-components/directives';\nimport { DotStepperComponent } from '@agorapulse/ui-components/dot-stepper';\nimport { InfoboxComponent } from '@agorapulse/ui-components/infobox';\nimport { LabelComponent, LabelListComponent } from '@agorapulse/ui-components/labels';\nimport { LabelsSelectorComponent } from '@agorapulse/ui-components/labels-selector';\nimport { MediaDisplayOverlayDialogComponent } from '@agorapulse/ui-components/media-display-overlay';\nimport { ModalComponent } from '@agorapulse/ui-components/modal';\nimport { DayDisabledPipe, NeoDatepickerComponent } from '@agorapulse/ui-components/neo-datepicker';\nimport { NotificationComponent } from '@agorapulse/ui-components/notification';\nimport { PaginatorButtonComponent, PaginatorComponent } from '@agorapulse/ui-components/paginator';\nimport { PasswordInputComponent } from '@agorapulse/ui-components/password-input';\nimport { PopmenuModule } from '@agorapulse/ui-components/popmenu';\nimport { SlideToggleComponent } from '@agorapulse/ui-components/slide-toggle';\nimport { SnackbarsThreadComponent } from '@agorapulse/ui-components/snackbars-thread';\nimport { StepperComponent } from '@agorapulse/ui-components/stepper';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { NgModule } from '@angular/core';\nimport { MAT_TABS_CONFIG } from '@angular/material/tabs';\n\n/**\n * @deprecated for better tree-shaking, use standalone component import instead\n */\n@NgModule({\n declarations: [],\n imports: [\n // Components\n AvatarComponent,\n StepperComponent,\n ConfirmModalComponent,\n DatepickerComponent,\n DotStepperComponent,\n EllipsisDirective,\n InfoboxComponent,\n LabelListComponent,\n LabelsSelectorComponent,\n NeoDatepickerComponent,\n MediaDisplayOverlayDialogComponent,\n ModalComponent,\n PasswordInputComponent,\n LabelComponent,\n NotificationComponent,\n PaginatorComponent,\n PaginatorButtonComponent,\n SlideToggleComponent,\n SnackbarsThreadComponent,\n // Directives\n DefaultImageDirective,\n FrozenGifDirective,\n EqualValidatorDirective,\n MultiStyleTextDirective,\n TooltipDirective,\n AddCommentComponent,\n AutosizeTextareaDirective,\n // Pipes\n DayDisabledPipe,\n ],\n exports: [\n // Components\n AddCommentComponent,\n AvatarComponent,\n StepperComponent,\n ConfirmModalComponent,\n DatepickerComponent,\n NeoDatepickerComponent,\n DotStepperComponent,\n EllipsisDirective,\n InfoboxComponent,\n LabelComponent,\n LabelListComponent,\n MediaDisplayOverlayDialogComponent,\n ModalComponent,\n PasswordInputComponent,\n LabelsSelectorComponent,\n NotificationComponent,\n PaginatorComponent,\n PaginatorButtonComponent,\n SlideToggleComponent,\n SnackbarsThreadComponent,\n // Pipes\n DayDisabledPipe,\n // Directives\n AutosizeTextareaDirective,\n DefaultImageDirective,\n FrozenGifDirective,\n EqualValidatorDirective,\n MultiStyleTextDirective,\n TooltipDirective,\n // Modules\n PopmenuModule,\n ],\n providers: [\n // Disable ripple effect\n // {provide: MAT_RIPPLE_GLOBAL_OPTIONS, useValue: {disabled: true}},\n // Disable tabs animation\n { provide: MAT_TABS_CONFIG, useValue: { animationDuration: '0ms' } },\n ],\n})\nexport class AgorapulseUiComponentsModule {}\n","/*\n * Public API Surface of ui\n */\n\n// Module\nexport { PopmenuModule } from '@agorapulse/ui-components/popmenu';\nexport { AgorapulseUiComponentsModule } from './src/lib/agorapulse-ui-components.module';\n\n// Directive\nexport {\n AutosizeTextareaDirective,\n CheckboxDirective,\n DefaultImageDirective,\n EllipsisDirective,\n EqualValidatorDirective,\n FrozenGifDirective,\n MultiStyleTextDirective,\n} from '@agorapulse/ui-components/directives';\nexport { PopmenuDirective } from '@agorapulse/ui-components/popmenu';\nexport { PopoverDirective } from '@agorapulse/ui-components/popover';\nexport { TooltipDirective, TooltipExternalTriggerDirective } from '@agorapulse/ui-components/tooltip';\n\n// Floating\nexport type { FloatingAnchorMode, FloatingPlacement, FloatingSide } from '@agorapulse/ui-components/floating';\n\n// Dropdown base\nexport { DropdownOverlay, DropdownTriggerDirective, createDropdownOverlay } from '@agorapulse/ui-components/dropdown-base';\n\n// Component\nexport { ActionDropdownComponent, ActionDropdownItem, ActionDropdownTriggerDirective } from '@agorapulse/ui-components/action-dropdown';\nexport { AddCommentComponent } from '@agorapulse/ui-components/add-comment';\nexport { AutocompleteComponent } from '@agorapulse/ui-components/autocomplete';\nexport { AvatarComponent, AvatarItem } from '@agorapulse/ui-components/avatar';\nexport { BadgeComponent } from '@agorapulse/ui-components/badge';\nexport { ButtonComponent } from '@agorapulse/ui-components/button';\nexport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nexport { ConfirmModalComponent } from '@agorapulse/ui-components/confirm-modal';\nexport { CounterComponent } from '@agorapulse/ui-components/counter';\nexport {\n DateRangePickerComponent,\n DateRangePickerPreset,\n defaultDateRangePickerPresets,\n} from '@agorapulse/ui-components/date-range-picker';\nexport { DatepickerComponent, DatepickerMode, I18nDatePicker, Period } from '@agorapulse/ui-components/datepicker';\nexport { DotStepperComponent } from '@agorapulse/ui-components/dot-stepper';\nexport { IconButtonComponent } from '@agorapulse/ui-components/icon-button';\nexport { InfoboxComponent } from '@agorapulse/ui-components/infobox';\nexport { LabelComponent, LabelListComponent } from '@agorapulse/ui-components/labels';\nexport { LabelsSelectorComponent } from '@agorapulse/ui-components/labels-selector';\nexport { InputComponent } from '@agorapulse/ui-components/legacy/input';\nexport { SelectComponent } from '@agorapulse/ui-components/legacy/select';\nexport { TextareaComponent } from '@agorapulse/ui-components/legacy/textarea';\nexport { MediaDisplayOverlayDialogComponent } from '@agorapulse/ui-components/media-display-overlay';\nexport { ModalComponent, ModalConfig } from '@agorapulse/ui-components/modal';\nexport { NavSelectorComponent } from '@agorapulse/ui-components/nav-selector';\nexport {\n DayDisabledPipe,\n NeoDatePickerLocale,\n NeoDatePickerMode,\n NeoDatePickerStartsOn,\n NeoDatepickerComponent,\n} from '@agorapulse/ui-components/neo-datepicker';\nexport { NotificationComponent } from '@agorapulse/ui-components/notification';\nexport { PaginatorButtonComponent, PaginatorComponent } from '@agorapulse/ui-components/paginator';\nexport { PasswordInputComponent } from '@agorapulse/ui-components/password-input';\nexport { PopmenuComponent } from '@agorapulse/ui-components/popmenu';\nexport { RadioComponent } from '@agorapulse/ui-components/radio';\nexport { RadioButtonCardComponent } from '@agorapulse/ui-components/radio-button-card';\nexport { SegmentedControlComponent, SegmentedControlOption } from '@agorapulse/ui-components/segmented-control';\nexport {\n SelectionDropdownComponent,\n SelectionDropdownItem,\n SelectionDropdownTriggerDirective,\n} from '@agorapulse/ui-components/selection-dropdown';\nexport { SlideToggleComponent } from '@agorapulse/ui-components/slide-toggle';\nexport { SnackbarsThreadComponent } from '@agorapulse/ui-components/snackbars-thread';\nexport { SocialButtonComponent } from '@agorapulse/ui-components/social-button';\nexport { StatusComponent } from '@agorapulse/ui-components/status';\nexport { StatusCardActor, StatusCardComponent } from '@agorapulse/ui-components/status-card';\nexport { StepperComponent } from '@agorapulse/ui-components/stepper';\nexport { TagComponent } from '@agorapulse/ui-components/tag';\nexport { ToggleComponent } from '@agorapulse/ui-components/toggle';\n\n// Service\nexport { SnackbarsThreadService } from '@agorapulse/ui-components/snackbars-thread';\n\n// Model\nexport { ConfirmModalTexts } from '@agorapulse/ui-components/confirm-modal';\nexport * from '@agorapulse/ui-components/filter-dropdown';\nexport {\n CodeStatus,\n SnackbarTypeValues,\n SnackbarsThreadBase,\n externalSnackbarTypeAllowed,\n generateCodeStatus,\n} from '@agorapulse/ui-components/snackbars-thread';\nexport { Step } from '@agorapulse/ui-components/stepper';\nexport { CustomTooltipAvatarItem, CustomTooltipPresentationItem, CustomTooltipType } from '@agorapulse/ui-components/tooltip';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agorapulse-ui-components.mjs","sources":["../../../libs/ui-components/src/lib/agorapulse-ui-components.module.ts","../../../libs/ui-components/index.ts","../../../libs/ui-components/agorapulse-ui-components.ts"],"sourcesContent":["// Modules\nimport { AddCommentComponent } from '@agorapulse/ui-components/add-comment';\nimport { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { ConfirmModalComponent } from '@agorapulse/ui-components/confirm-modal';\nimport { DatepickerComponent } from '@agorapulse/ui-components/datepicker';\nimport {\n AutosizeTextareaDirective,\n DefaultImageDirective,\n EllipsisDirective,\n EqualValidatorDirective,\n FrozenGifDirective,\n MultiStyleTextDirective,\n} from '@agorapulse/ui-components/directives';\nimport { DotStepperComponent } from '@agorapulse/ui-components/dot-stepper';\nimport { InfoboxComponent } from '@agorapulse/ui-components/infobox';\nimport { LabelComponent, LabelListComponent } from '@agorapulse/ui-components/labels';\nimport { LabelsSelectorComponent } from '@agorapulse/ui-components/labels-selector';\nimport { MediaDisplayOverlayDialogComponent } from '@agorapulse/ui-components/media-display-overlay';\nimport { ModalComponent } from '@agorapulse/ui-components/modal';\nimport { DayDisabledPipe, NeoDatepickerComponent } from '@agorapulse/ui-components/neo-datepicker';\nimport { NotificationComponent } from '@agorapulse/ui-components/notification';\nimport { PaginatorButtonComponent, PaginatorComponent } from '@agorapulse/ui-components/paginator';\nimport { PasswordInputComponent } from '@agorapulse/ui-components/password-input';\nimport { PopmenuModule } from '@agorapulse/ui-components/popmenu';\nimport { SlideToggleComponent } from '@agorapulse/ui-components/slide-toggle';\nimport { SnackbarsThreadComponent } from '@agorapulse/ui-components/snackbars-thread';\nimport { StepperComponent } from '@agorapulse/ui-components/stepper';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { NgModule } from '@angular/core';\nimport { MAT_TABS_CONFIG } from '@angular/material/tabs';\n\n/**\n * @deprecated for better tree-shaking, use standalone component import instead\n */\n@NgModule({\n declarations: [],\n imports: [\n // Components\n AvatarComponent,\n StepperComponent,\n ConfirmModalComponent,\n DatepickerComponent,\n DotStepperComponent,\n EllipsisDirective,\n InfoboxComponent,\n LabelListComponent,\n LabelsSelectorComponent,\n NeoDatepickerComponent,\n MediaDisplayOverlayDialogComponent,\n ModalComponent,\n PasswordInputComponent,\n LabelComponent,\n NotificationComponent,\n PaginatorComponent,\n PaginatorButtonComponent,\n SlideToggleComponent,\n SnackbarsThreadComponent,\n // Directives\n DefaultImageDirective,\n FrozenGifDirective,\n EqualValidatorDirective,\n MultiStyleTextDirective,\n TooltipDirective,\n AddCommentComponent,\n AutosizeTextareaDirective,\n // Pipes\n DayDisabledPipe,\n ],\n exports: [\n // Components\n AddCommentComponent,\n AvatarComponent,\n StepperComponent,\n ConfirmModalComponent,\n DatepickerComponent,\n NeoDatepickerComponent,\n DotStepperComponent,\n EllipsisDirective,\n InfoboxComponent,\n LabelComponent,\n LabelListComponent,\n MediaDisplayOverlayDialogComponent,\n ModalComponent,\n PasswordInputComponent,\n LabelsSelectorComponent,\n NotificationComponent,\n PaginatorComponent,\n PaginatorButtonComponent,\n SlideToggleComponent,\n SnackbarsThreadComponent,\n // Pipes\n DayDisabledPipe,\n // Directives\n AutosizeTextareaDirective,\n DefaultImageDirective,\n FrozenGifDirective,\n EqualValidatorDirective,\n MultiStyleTextDirective,\n TooltipDirective,\n // Modules\n PopmenuModule,\n ],\n providers: [\n // Disable ripple effect\n // {provide: MAT_RIPPLE_GLOBAL_OPTIONS, useValue: {disabled: true}},\n // Disable tabs animation\n { provide: MAT_TABS_CONFIG, useValue: { animationDuration: '0ms' } },\n ],\n})\nexport class AgorapulseUiComponentsModule {}\n","/*\n * Public API Surface of ui\n */\n\n// Module\nexport { PopmenuModule } from '@agorapulse/ui-components/popmenu';\nexport { AgorapulseUiComponentsModule } from './src/lib/agorapulse-ui-components.module';\n\n// Directive\nexport {\n AutosizeTextareaDirective,\n CheckboxDirective,\n DefaultImageDirective,\n EllipsisDirective,\n EqualValidatorDirective,\n FrozenGifDirective,\n MultiStyleTextDirective,\n} from '@agorapulse/ui-components/directives';\nexport { PopmenuDirective } from '@agorapulse/ui-components/popmenu';\nexport { PopoverDirective } from '@agorapulse/ui-components/popover';\nexport { TooltipDirective, TooltipExternalTriggerDirective } from '@agorapulse/ui-components/tooltip';\n\n// Floating\nexport type { FloatingAnchorMode, FloatingPlacement, FloatingSide } from '@agorapulse/ui-components/floating';\n\n// Dropdown base\nexport { DropdownOverlay, DropdownTriggerDirective, createDropdownOverlay } from '@agorapulse/ui-components/dropdown-base';\nexport { DropdownContentDirective, DropdownPanelComponent } from '@agorapulse/ui-components/dropdown-panel';\n\n// Component\nexport { ActionDropdownComponent, ActionDropdownItem, ActionDropdownTriggerDirective } from '@agorapulse/ui-components/action-dropdown';\nexport { AddCommentComponent } from '@agorapulse/ui-components/add-comment';\nexport { AutocompleteComponent } from '@agorapulse/ui-components/autocomplete';\nexport { AvatarComponent, AvatarItem } from '@agorapulse/ui-components/avatar';\nexport { BadgeComponent } from '@agorapulse/ui-components/badge';\nexport { ButtonComponent } from '@agorapulse/ui-components/button';\nexport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nexport { ConfirmModalComponent } from '@agorapulse/ui-components/confirm-modal';\nexport { CounterComponent } from '@agorapulse/ui-components/counter';\nexport {\n DateRangePickerComponent,\n DateRangePickerPreset,\n defaultDateRangePickerPresets,\n} from '@agorapulse/ui-components/date-range-picker';\nexport { DatepickerComponent, DatepickerMode, I18nDatePicker, Period } from '@agorapulse/ui-components/datepicker';\nexport { DotStepperComponent } from '@agorapulse/ui-components/dot-stepper';\nexport { IconButtonComponent } from '@agorapulse/ui-components/icon-button';\nexport { InfoboxComponent } from '@agorapulse/ui-components/infobox';\nexport { LabelComponent, LabelListComponent } from '@agorapulse/ui-components/labels';\nexport { LabelsSelectorComponent } from '@agorapulse/ui-components/labels-selector';\nexport { InputComponent } from '@agorapulse/ui-components/legacy/input';\nexport { SelectComponent } from '@agorapulse/ui-components/legacy/select';\nexport { TextareaComponent } from '@agorapulse/ui-components/legacy/textarea';\nexport { MediaDisplayOverlayDialogComponent } from '@agorapulse/ui-components/media-display-overlay';\nexport { ModalComponent, ModalConfig } from '@agorapulse/ui-components/modal';\nexport { NavSelectorComponent } from '@agorapulse/ui-components/nav-selector';\nexport {\n DayDisabledPipe,\n NeoDatePickerLocale,\n NeoDatePickerMode,\n NeoDatePickerStartsOn,\n NeoDatepickerComponent,\n} from '@agorapulse/ui-components/neo-datepicker';\nexport { NotificationComponent } from '@agorapulse/ui-components/notification';\nexport { PaginatorButtonComponent, PaginatorComponent } from '@agorapulse/ui-components/paginator';\nexport { PasswordInputComponent } from '@agorapulse/ui-components/password-input';\nexport { PopmenuComponent } from '@agorapulse/ui-components/popmenu';\nexport { RadioComponent } from '@agorapulse/ui-components/radio';\nexport { RadioButtonCardComponent } from '@agorapulse/ui-components/radio-button-card';\nexport { SegmentedControlComponent, SegmentedControlOption } from '@agorapulse/ui-components/segmented-control';\nexport {\n SelectionDropdownComponent,\n SelectionDropdownItem,\n SelectionDropdownTriggerDirective,\n} from '@agorapulse/ui-components/selection-dropdown';\nexport { SlideToggleComponent } from '@agorapulse/ui-components/slide-toggle';\nexport { SnackbarsThreadComponent } from '@agorapulse/ui-components/snackbars-thread';\nexport { SocialButtonComponent } from '@agorapulse/ui-components/social-button';\nexport { StatusComponent } from '@agorapulse/ui-components/status';\nexport { StatusCardActor, StatusCardComponent } from '@agorapulse/ui-components/status-card';\nexport { StepperComponent } from '@agorapulse/ui-components/stepper';\nexport { TagComponent } from '@agorapulse/ui-components/tag';\nexport { ToggleComponent } from '@agorapulse/ui-components/toggle';\n\n// Service\nexport { SnackbarsThreadService } from '@agorapulse/ui-components/snackbars-thread';\n\n// Model\nexport { ConfirmModalTexts } from '@agorapulse/ui-components/confirm-modal';\nexport * from '@agorapulse/ui-components/filter-dropdown';\nexport {\n CodeStatus,\n SnackbarTypeValues,\n SnackbarsThreadBase,\n externalSnackbarTypeAllowed,\n generateCodeStatus,\n} from '@agorapulse/ui-components/snackbars-thread';\nexport { Step } from '@agorapulse/ui-components/stepper';\nexport { CustomTooltipAvatarItem, CustomTooltipPresentationItem, CustomTooltipType } from '@agorapulse/ui-components/tooltip';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AA+BA;;AAEG;MA4EU,4BAA4B,CAAA;uGAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAA5B,4BAA4B,EAAA,OAAA,EAAA;;YAvEjC,eAAe;YACf,gBAAgB;YAChB,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,iBAAiB;YACjB,gBAAgB;YAChB,kBAAkB;YAClB,uBAAuB;YACvB,sBAAsB;YACtB,kCAAkC;YAClC,cAAc;YACd,sBAAsB;YACtB,cAAc;YACd,qBAAqB;YACrB,kBAAkB;YAClB,wBAAwB;YACxB,oBAAoB;YACpB,wBAAwB;;YAExB,qBAAqB;YACrB,kBAAkB;YAClB,uBAAuB;YACvB,uBAAuB;YACvB,gBAAgB;YAChB,mBAAmB;YACnB,yBAAyB;;YAEzB,eAAe,CAAA,EAAA,OAAA,EAAA;;YAIf,mBAAmB;YACnB,eAAe;YACf,gBAAgB;YAChB,qBAAqB;YACrB,mBAAmB;YACnB,sBAAsB;YACtB,mBAAmB;YACnB,iBAAiB;YACjB,gBAAgB;YAChB,cAAc;YACd,kBAAkB;YAClB,kCAAkC;YAClC,cAAc;YACd,sBAAsB;YACtB,uBAAuB;YACvB,qBAAqB;YACrB,kBAAkB;YAClB,wBAAwB;YACxB,oBAAoB;YACpB,wBAAwB;;YAExB,eAAe;;YAEf,yBAAyB;YACzB,qBAAqB;YACrB,kBAAkB;YAClB,uBAAuB;YACvB,uBAAuB;YACvB,gBAAgB;;YAEhB,aAAa,CAAA,EAAA,CAAA;AASR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,SAAA,EAP1B;;;;YAIP,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE;AACvE,SAAA,EAAA,OAAA,EAAA;;YArEG,eAAe;YACf,gBAAgB;YAChB,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YAEnB,gBAAgB;YAChB,kBAAkB;YAClB,uBAAuB;YACvB,sBAAsB;YACtB,kCAAkC;YAClC,cAAc;YACd,sBAAsB;YACtB,cAAc;YACd,qBAAqB;YACrB,kBAAkB;YAClB,wBAAwB;YACxB,oBAAoB;YACpB,wBAAwB;YAOxB,mBAAmB;;YAqCnB,aAAa,CAAA,EAAA,CAAA;;2FASR,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBA3ExC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;;wBAEL,eAAe;wBACf,gBAAgB;wBAChB,qBAAqB;wBACrB,mBAAmB;wBACnB,mBAAmB;wBACnB,iBAAiB;wBACjB,gBAAgB;wBAChB,kBAAkB;wBAClB,uBAAuB;wBACvB,sBAAsB;wBACtB,kCAAkC;wBAClC,cAAc;wBACd,sBAAsB;wBACtB,cAAc;wBACd,qBAAqB;wBACrB,kBAAkB;wBAClB,wBAAwB;wBACxB,oBAAoB;wBACpB,wBAAwB;;wBAExB,qBAAqB;wBACrB,kBAAkB;wBAClB,uBAAuB;wBACvB,uBAAuB;wBACvB,gBAAgB;wBAChB,mBAAmB;wBACnB,yBAAyB;;wBAEzB,eAAe;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;;wBAEL,mBAAmB;wBACnB,eAAe;wBACf,gBAAgB;wBAChB,qBAAqB;wBACrB,mBAAmB;wBACnB,sBAAsB;wBACtB,mBAAmB;wBACnB,iBAAiB;wBACjB,gBAAgB;wBAChB,cAAc;wBACd,kBAAkB;wBAClB,kCAAkC;wBAClC,cAAc;wBACd,sBAAsB;wBACtB,uBAAuB;wBACvB,qBAAqB;wBACrB,kBAAkB;wBAClB,wBAAwB;wBACxB,oBAAoB;wBACpB,wBAAwB;;wBAExB,eAAe;;wBAEf,yBAAyB;wBACzB,qBAAqB;wBACrB,kBAAkB;wBAClB,uBAAuB;wBACvB,uBAAuB;wBACvB,gBAAgB;;wBAEhB,aAAa;AAChB,qBAAA;AACD,oBAAA,SAAS,EAAE;;;;wBAIP,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE;AACvE,qBAAA;AACJ,iBAAA;;;AC5GD;;AAEG;AAEH;;ACJA;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@agorapulse/ui-components",
3
3
  "description": "Agorapulse UI Components Library",
4
- "version": "22.1.4",
4
+ "version": "22.1.6",
5
5
  "author": "Benoit Hediard",
6
6
  "repository": {
7
7
  "type": "git",
@@ -101,6 +101,10 @@
101
101
  "types": "./types/agorapulse-ui-components-dropdown-base.d.ts",
102
102
  "default": "./fesm2022/agorapulse-ui-components-dropdown-base.mjs"
103
103
  },
104
+ "./dropdown-panel": {
105
+ "types": "./types/agorapulse-ui-components-dropdown-panel.d.ts",
106
+ "default": "./fesm2022/agorapulse-ui-components-dropdown-panel.mjs"
107
+ },
104
108
  "./filter-chips-list": {
105
109
  "types": "./types/agorapulse-ui-components-filter-chips-list.d.ts",
106
110
  "default": "./fesm2022/agorapulse-ui-components-filter-chips-list.mjs"
@@ -1,5 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { TemplateRef } from '@angular/core';
3
+ import * as _floating_ui_utils from '@floating-ui/utils';
3
4
  import { BadgeColor } from '@agorapulse/ui-components/badge';
4
5
  import { DropdownOverlay } from '@agorapulse/ui-components/dropdown-base';
5
6
  import { agorapulseSymbol, SymbolColor } from '@agorapulse/ui-symbol';
@@ -46,8 +47,7 @@ interface ActionDropdownItem {
46
47
  */
47
48
  declare class ActionDropdownComponent implements DropdownOverlay {
48
49
  private readonly symbolRegistry;
49
- private readonly overlay;
50
- actionDropdownTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
50
+ private readonly panel;
51
51
  trigger: _angular_core.Signal<TemplateRef<unknown> | undefined>;
52
52
  /** Array of items to display in the dropdown menu */
53
53
  items: _angular_core.InputSignal<ActionDropdownItem[]>;
@@ -60,7 +60,8 @@ declare class ActionDropdownComponent implements DropdownOverlay {
60
60
  /** Whether the dropdown is disabled and cannot be opened */
61
61
  disabled: _angular_core.InputSignal<boolean>;
62
62
  /** Default position for the dropdown relative to the trigger element */
63
- defaultPosition: _angular_core.InputSignal<"left" | "right">;
63
+ /** Panel placement. Unset means derived from the anchor mode, i.e. `bottom-start`. */
64
+ readonly placement: _angular_core.InputSignal<_floating_ui_utils.Placement | undefined>;
64
65
  /** Emits when the dropdown menu is opened */
65
66
  opened: _angular_core.OutputEmitterRef<void>;
66
67
  /** Emits when the dropdown menu is closed */
@@ -72,8 +73,8 @@ declare class ActionDropdownComponent implements DropdownOverlay {
72
73
  constructor();
73
74
  /** Opens the dropdown menu at the specified trigger element */
74
75
  open(triggerElement?: HTMLElement): void;
75
- /** Closes the dropdown menu and cleans up overlay resources */
76
76
  close(): void;
77
+ protected onPanelClosed(): void;
77
78
  /** Toggles the dropdown menu open or closed state */
78
79
  toggle(triggerElement?: HTMLElement): void;
79
80
  /** Handles item click events, emitting the selected item and closing the dropdown */
@@ -83,7 +84,7 @@ declare class ActionDropdownComponent implements DropdownOverlay {
83
84
  /** Sets up keyboard event handling for the opened dropdown */
84
85
  private setupKeyboardNavigation;
85
86
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ActionDropdownComponent, never>;
86
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ActionDropdownComponent, "ap-action-dropdown", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "largeModeEnabled": { "alias": "largeModeEnabled"; "required": false; "isSignal": true; }; "customWidth": { "alias": "customWidth"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; "itemClick": "itemClick"; }, ["trigger"], never, true, never>;
87
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ActionDropdownComponent, "ap-action-dropdown", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "largeModeEnabled": { "alias": "largeModeEnabled"; "required": false; "isSignal": true; }; "customWidth": { "alias": "customWidth"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; "itemClick": "itemClick"; }, ["trigger"], never, true, never>;
87
88
  }
88
89
 
89
90
  /**
@@ -1,3 +1,4 @@
1
+ import * as _floating_ui_utils from '@floating-ui/utils';
1
2
  import * as _angular_core from '@angular/core';
2
3
  import { Period, FirstDayOfWeek, DatepickerMode, RangesConfigPresetType, I18nDatePicker } from '@agorapulse/ui-components/datepicker';
3
4
  import dayjs from 'dayjs';
@@ -46,7 +47,8 @@ declare class DateRangePickerComponent {
46
47
  /** Text shown on the trigger while no period is selected. */
47
48
  readonly placeholder: _angular_core.InputSignal<string>;
48
49
  /** Side the dropdown opens to when space allows. */
49
- readonly defaultPosition: _angular_core.InputSignal<"left" | "right">;
50
+ /** Panel placement. Unset means derived from the anchor mode, i.e. `bottom-start`. */
51
+ readonly placement: _angular_core.InputSignal<_floating_ui_utils.Placement | undefined>;
50
52
  /** Label of the "Custom" entry in the preset list. */
51
53
  readonly customRangeLabel: _angular_core.InputSignal<string>;
52
54
  /** IANA time zone name. When set, a chip with the zone's offset is shown next to the trigger. */
@@ -67,7 +69,7 @@ declare class DateRangePickerComponent {
67
69
  protected onPeriodSelected(period: Period): void;
68
70
  private matchPresetKey;
69
71
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateRangePickerComponent, never>;
70
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateRangePickerComponent, "ap-date-range-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "maxRangeDays": { "alias": "maxRangeDays"; "required": false; "isSignal": true; }; "maxRangeDaysHint": { "alias": "maxRangeDaysHint"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; "customRangeLabel": { "alias": "customRangeLabel"; "required": false; "isSignal": true; }; "timeZone": { "alias": "timeZone"; "required": false; "isSignal": true; }; "timeZoneTooltip": { "alias": "timeZoneTooltip"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "presetSelected": "presetSelected"; }, never, never, true, never>;
72
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateRangePickerComponent, "ap-date-range-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "maxRangeDays": { "alias": "maxRangeDays"; "required": false; "isSignal": true; }; "maxRangeDaysHint": { "alias": "maxRangeDaysHint"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "customRangeLabel": { "alias": "customRangeLabel"; "required": false; "isSignal": true; }; "timeZone": { "alias": "timeZone"; "required": false; "isSignal": true; }; "timeZoneTooltip": { "alias": "timeZoneTooltip"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "presetSelected": "presetSelected"; }, never, never, true, never>;
71
73
  }
72
74
 
73
75
  export { DateRangePickerComponent, defaultDateRangePickerPresets };
@@ -1,3 +1,4 @@
1
+ import * as _floating_ui_utils from '@floating-ui/utils';
1
2
  import * as _angular_core from '@angular/core';
2
3
  import { OnInit, OnChanges, AfterViewInit, ChangeDetectorRef, EventEmitter, SimpleChanges, TemplateRef } from '@angular/core';
3
4
  import { DropdownOverlay } from '@agorapulse/ui-components/dropdown-base';
@@ -130,7 +131,8 @@ declare class DatepickerDropdownComponent implements DropdownOverlay {
130
131
  /** Close the overlay once a full period is selected. When false it stays open until backdrop click or Escape. */
131
132
  closeOnSelect: _angular_core.InputSignal<boolean>;
132
133
  disabled: _angular_core.InputSignal<boolean>;
133
- defaultPosition: _angular_core.InputSignal<"left" | "right">;
134
+ /** Panel placement. Unset means derived from the anchor mode, i.e. `bottom-start`. */
135
+ readonly placement: _angular_core.InputSignal<_floating_ui_utils.Placement | undefined>;
134
136
  opened: _angular_core.OutputEmitterRef<void>;
135
137
  closed: _angular_core.OutputEmitterRef<void>;
136
138
  dateSelected: _angular_core.OutputEmitterRef<dayjs.Dayjs>;
@@ -143,7 +145,7 @@ declare class DatepickerDropdownComponent implements DropdownOverlay {
143
145
  onDateSelected(date: dayjs.Dayjs): void;
144
146
  onPeriodSelected(period: Period): void;
145
147
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatepickerDropdownComponent, never>;
146
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatepickerDropdownComponent, "ap-datepicker-dropdown", never, { "mode": { "alias": "mode"; "required": true; "isSignal": true; }; "selectedDate": { "alias": "selectedDate"; "required": false; "isSignal": true; }; "selectedDates": { "alias": "selectedDates"; "required": false; "isSignal": true; }; "selectedPeriod": { "alias": "selectedPeriod"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "dateLimit": { "alias": "dateLimit"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "i18n": { "alias": "i18n"; "required": false; "isSignal": true; }; "showRanges": { "alias": "showRanges"; "required": false; "isSignal": true; }; "showCustomRangeLabel": { "alias": "showCustomRangeLabel"; "required": false; "isSignal": true; }; "rangesConfig": { "alias": "rangesConfig"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; "dateSelected": "dateSelected"; "periodSelected": "periodSelected"; }, never, never, true, never>;
148
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatepickerDropdownComponent, "ap-datepicker-dropdown", never, { "mode": { "alias": "mode"; "required": true; "isSignal": true; }; "selectedDate": { "alias": "selectedDate"; "required": false; "isSignal": true; }; "selectedDates": { "alias": "selectedDates"; "required": false; "isSignal": true; }; "selectedPeriod": { "alias": "selectedPeriod"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "dateLimit": { "alias": "dateLimit"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "i18n": { "alias": "i18n"; "required": false; "isSignal": true; }; "showRanges": { "alias": "showRanges"; "required": false; "isSignal": true; }; "showCustomRangeLabel": { "alias": "showCustomRangeLabel"; "required": false; "isSignal": true; }; "rangesConfig": { "alias": "rangesConfig"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "closeOnSelect": { "alias": "closeOnSelect"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; "dateSelected": "dateSelected"; "periodSelected": "periodSelected"; }, never, never, true, never>;
147
149
  }
148
150
 
149
151
  declare const defaultPeriodSelected: Period;
@@ -165,7 +167,8 @@ declare class InputDatepickerComponent implements ControlValueAccessor {
165
167
  showCustomRangeLabel: _angular_core.InputSignal<boolean>;
166
168
  rangesConfig: _angular_core.InputSignal<RangesConfigPresetType | null>;
167
169
  showBackdrop: _angular_core.InputSignal<boolean>;
168
- defaultPosition: _angular_core.InputSignal<"left" | "right">;
170
+ /** Panel placement. Unset means derived from the anchor mode, i.e. `bottom-start`. */
171
+ readonly placement: _angular_core.InputSignal<_floating_ui_utils.Placement | undefined>;
169
172
  /** Show a clear (X) inside the input when a value is selected. Off by default. */
170
173
  clearable: _angular_core.InputSignal<boolean>;
171
174
  periodRange: _angular_core.WritableSignal<Period>;
@@ -184,7 +187,7 @@ declare class InputDatepickerComponent implements ControlValueAccessor {
184
187
  registerOnTouched(fn: () => void): void;
185
188
  setDisabledState(isDisabled: boolean): void;
186
189
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputDatepickerComponent, never>;
187
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputDatepickerComponent, "ap-input-datepicker", never, { "mode": { "alias": "mode"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "selectedDate": { "alias": "selectedDate"; "required": false; "isSignal": true; }; "selectedDates": { "alias": "selectedDates"; "required": false; "isSignal": true; }; "selectedPeriod": { "alias": "selectedPeriod"; "required": false; "isSignal": true; }; "i18n": { "alias": "i18n"; "required": false; "isSignal": true; }; "showRanges": { "alias": "showRanges"; "required": false; "isSignal": true; }; "showCustomRangeLabel": { "alias": "showCustomRangeLabel"; "required": false; "isSignal": true; }; "rangesConfig": { "alias": "rangesConfig"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; }, { "periodChanged": "periodChanged"; "dateSelected": "dateSelected"; }, never, never, true, never>;
190
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputDatepickerComponent, "ap-input-datepicker", never, { "mode": { "alias": "mode"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "dateFormat": { "alias": "dateFormat"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "selectedDate": { "alias": "selectedDate"; "required": false; "isSignal": true; }; "selectedDates": { "alias": "selectedDates"; "required": false; "isSignal": true; }; "selectedPeriod": { "alias": "selectedPeriod"; "required": false; "isSignal": true; }; "i18n": { "alias": "i18n"; "required": false; "isSignal": true; }; "showRanges": { "alias": "showRanges"; "required": false; "isSignal": true; }; "showCustomRangeLabel": { "alias": "showCustomRangeLabel"; "required": false; "isSignal": true; }; "rangesConfig": { "alias": "rangesConfig"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; }, { "periodChanged": "periodChanged"; "dateSelected": "dateSelected"; }, never, never, true, never>;
188
191
  }
189
192
 
190
193
  export { DatepickerComponent, DatepickerDropdownComponent, DatepickerMode, InputDatepickerComponent, RangesConfigPreset, defaultPeriodSelected };
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { TemplateRef } from '@angular/core';
3
- import { OverlayRef } from '@angular/cdk/overlay';
3
+ import * as _angular_cdk_overlay from '@angular/cdk/overlay';
4
+ import { FloatingPlacement, FloatingAnchorMode } from '@agorapulse/ui-components/floating';
4
5
 
5
6
  interface DropdownOverlay {
6
7
  open(triggerElement?: HTMLElement): void;
@@ -27,23 +28,31 @@ declare class DropdownTriggerDirective {
27
28
  }
28
29
 
29
30
  interface DropdownOverlayConfig {
31
+ /** Defaults to `true` — the dropdown keeps its click catcher, unlike the primitive. */
30
32
  showBackdrop?: boolean;
31
- defaultPosition?: 'right' | 'left';
33
+ /** Panel placement. Unset means derived from `anchor`, i.e. `bottom-start`. */
34
+ placement?: FloatingPlacement;
35
+ /** What the panel connects to. Defaults to `'trigger'`. */
36
+ anchor?: FloatingAnchorMode;
37
+ /** Opt-in, and not offered by any existing panel's public API. */
38
+ arrow?: boolean;
39
+ /** What the tip points at. Defaults to `'anchor'`. */
40
+ arrowTarget?: 'anchor' | 'pointer';
32
41
  /** Extra class(es) set on the overlay pane, so a consumer can scope global styles to its own dropdown. */
33
42
  panelClass?: string | string[];
34
- /** Called when the overlay is closed via backdrop click or Escape key. Typically routes to the component's own close() method. */
43
+ /** Called when the overlay is closed via outside click or Escape key. Typically routes to the component's own close() method. */
35
44
  onClose?: () => void;
36
45
  }
37
46
  /**
38
- * Creates a composable dropdown overlay helper that manages CDK overlay creation,
39
- * positioning, and disposal. Must be called within an Angular injection context
40
- * (e.g., in a component constructor or field initializer).
47
+ * Thin adapter over `createFloatingOverlay()`. Keeps the dropdown's name, lifecycle and default
48
+ * backdrop; delegates all positioning to the shared floating primitive. Must be called within an
49
+ * Angular injection context (e.g., in a component constructor or field initializer).
41
50
  */
42
51
  declare function createDropdownOverlay(): {
43
- readonly overlayRef: OverlayRef | null;
52
+ readonly overlayRef: _angular_cdk_overlay.OverlayRef | null;
44
53
  isOpen: i0.Signal<boolean>;
45
- open: (template: TemplateRef<unknown>, triggerElement?: HTMLElement, config?: DropdownOverlayConfig) => void;
46
54
  close: () => void;
55
+ open(template: TemplateRef<unknown>, triggerElement?: HTMLElement, config?: DropdownOverlayConfig, event?: MouseEvent): void;
47
56
  };
48
57
  type DropdownOverlayInstance = ReturnType<typeof createDropdownOverlay>;
49
58
 
@@ -0,0 +1,49 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import * as _floating_ui_utils from '@floating-ui/utils';
4
+ import { OverlayRef } from '@angular/cdk/overlay';
5
+ import { DropdownOverlay } from '@agorapulse/ui-components/dropdown-base';
6
+
7
+ /** Marks the panel's content. A template, not `<ng-content>`, so nothing is created until the panel opens. */
8
+ declare class DropdownContentDirective {
9
+ readonly template: TemplateRef<unknown>;
10
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownContentDirective, never>;
11
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DropdownContentDirective, "ng-template[apDropdownContent]", never, {}, {}, never, never, true, never>;
12
+ }
13
+
14
+ /**
15
+ * The surface a dropdown opens: white, rounded, elevated — and nothing more. No role and no focus
16
+ * trap: the content brings its own semantics (`menu`, `listbox`…). A dialog wants the popover.
17
+ *
18
+ * @example
19
+ * <button [apDropdownTrigger]="panel">Columns</button>
20
+ * <ap-dropdown-panel #panel>
21
+ * <ng-template apDropdownContent>…</ng-template>
22
+ * </ap-dropdown-panel>
23
+ */
24
+ declare class DropdownPanelComponent implements DropdownOverlay {
25
+ private readonly floating;
26
+ protected readonly content: _angular_core.Signal<DropdownContentDirective>;
27
+ private readonly surface;
28
+ /** Unset means derived from the anchor mode, i.e. `bottom-start`. */
29
+ readonly placement: _angular_core.InputSignal<_floating_ui_utils.Placement | undefined>;
30
+ /** On by default: a dropdown keeps its click catcher. */
31
+ readonly showBackdrop: _angular_core.InputSignal<boolean>;
32
+ readonly panelClass: _angular_core.InputSignal<string | string[]>;
33
+ /** Consulted before an outside click or Escape closes the panel. Return `false` to keep it open. */
34
+ readonly canDismiss: _angular_core.InputSignal<() => boolean>;
35
+ readonly opened: _angular_core.OutputEmitterRef<void>;
36
+ /** Fires for every close, asked for or gestured: a host's teardown belongs here, not in its own `close()`. */
37
+ readonly closed: _angular_core.OutputEmitterRef<void>;
38
+ readonly isOpen: _angular_core.Signal<boolean>;
39
+ /** For a host that must hear the gesture before it becomes a dismissal — see the filter dropdown. */
40
+ get overlayRef(): OverlayRef | null;
41
+ open(triggerElement?: HTMLElement): void;
42
+ close(): void;
43
+ toggle(triggerElement?: HTMLElement): void;
44
+ private dismiss;
45
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownPanelComponent, never>;
46
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownPanelComponent, "ap-dropdown-panel", never, { "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "canDismiss": { "alias": "canDismiss"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; }, ["content"], never, true, never>;
47
+ }
48
+
49
+ export { DropdownContentDirective, DropdownPanelComponent };
@@ -4,8 +4,8 @@ import { InfoboxType } from '@agorapulse/ui-components/infobox';
4
4
  import dayjs from 'dayjs';
5
5
  import { SelectLabelSingleDisplayType } from '@agorapulse/ui-components/select';
6
6
  import { TagColor } from '@agorapulse/ui-components/tag';
7
+ import * as _floating_ui_utils from '@floating-ui/utils';
7
8
  import * as _angular_core from '@angular/core';
8
- import { TemplateRef } from '@angular/core';
9
9
  import { ActionDropdownItem } from '@agorapulse/ui-components/action-dropdown';
10
10
  import { DropdownOverlay } from '@agorapulse/ui-components/dropdown-base';
11
11
 
@@ -266,7 +266,7 @@ declare class FilterState {
266
266
  }
267
267
 
268
268
  declare class FilterDropdownComponent implements DropdownOverlay {
269
- private readonly overlay;
269
+ private readonly panel;
270
270
  readonly filterState: FilterState;
271
271
  /**
272
272
  * Seed the component state from its inputs. This is the ONLY reactive path and it is silent:
@@ -275,7 +275,6 @@ declare class FilterDropdownComponent implements DropdownOverlay {
275
275
  * `savedValue` falls back to `value` when omitted (non-preset consumers).
276
276
  */
277
277
  syncFromInputs: _angular_core.EffectRef;
278
- filterGroupTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
279
278
  /** An optional infobox shown at the bottom of the popup content, above the footer (e.g. a link). */
280
279
  infobox: _angular_core.InputSignal<FilterDropdownInfobox | null>;
281
280
  /**
@@ -312,7 +311,8 @@ declare class FilterDropdownComponent implements DropdownOverlay {
312
311
  /** Whether to show a backdrop that closes the dropdown when clicked */
313
312
  showBackdrop: _angular_core.InputSignal<boolean>;
314
313
  /** Default position for the dropdown relative to the trigger element */
315
- defaultPosition: _angular_core.InputSignal<"left" | "right">;
314
+ /** Panel placement. Unset means derived from the anchor mode, i.e. `bottom-start`. */
315
+ readonly placement: _angular_core.InputSignal<_floating_ui_utils.Placement | undefined>;
316
316
  /** Extra class(es) set on the body-appended overlay pane, so a consumer can scope global styles to this dropdown. */
317
317
  panelClass: _angular_core.InputSignal<string | string[]>;
318
318
  saveNewPresetsText: _angular_core.InputSignal<string>;
@@ -355,9 +355,9 @@ declare class FilterDropdownComponent implements DropdownOverlay {
355
355
  /** A leaf's panel closes on the pointerdown or keydown that dismisses it, so snapshot the flag then: by dismissal it reads false. */
356
356
  private trackDismissalGestures;
357
357
  /** Backdrop click / Escape: close, unless the gesture was a leaf panel's own dismissal. */
358
- private dismiss;
359
- /** Closes the dropdown menu and cleans up overlay resources */
358
+ protected readonly canDismiss: () => boolean;
360
359
  close(): void;
360
+ protected onPanelClosed(): void;
361
361
  /** Toggles the dropdown menu open or closed state */
362
362
  toggle(triggerElement?: HTMLElement): void;
363
363
  /**
@@ -376,7 +376,7 @@ declare class FilterDropdownComponent implements DropdownOverlay {
376
376
  onUpdatePresets(): void;
377
377
  protected onActionDropdownItemClick(item: ActionDropdownItem): void;
378
378
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterDropdownComponent, never>;
379
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterDropdownComponent, "ap-filter-dropdown", never, { "infobox": { "alias": "infobox"; "required": false; "isSignal": true; }; "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "savedValue": { "alias": "savedValue"; "required": false; "isSignal": true; }; "needApplyButton": { "alias": "needApplyButton"; "required": false; "isSignal": true; }; "needClearButton": { "alias": "needClearButton"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "expandOnOpen": { "alias": "expandOnOpen"; "required": false; "isSignal": true; }; "presetsFeatureLocked": { "alias": "presetsFeatureLocked"; "required": false; "isSignal": true; }; "savePresetsMode": { "alias": "savePresetsMode"; "required": false; "isSignal": true; }; "editingPresetsMode": { "alias": "editingPresetsMode"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "saveNewPresetsText": { "alias": "saveNewPresetsText"; "required": false; "isSignal": true; }; "saveAsNewPresetText": { "alias": "saveAsNewPresetText"; "required": false; "isSignal": true; }; "savePresetText": { "alias": "savePresetText"; "required": false; "isSignal": true; }; "updateExistingPresetText": { "alias": "updateExistingPresetText"; "required": false; "isSignal": true; }; "resetFilterText": { "alias": "resetFilterText"; "required": false; "isSignal": true; }; "applyFiltersText": { "alias": "applyFiltersText"; "required": false; "isSignal": true; }; "clearFilterText": { "alias": "clearFilterText"; "required": false; "isSignal": true; }; }, { "infoboxLinkClick": "infoboxLinkClick"; "opened": "opened"; "closed": "closed"; "presetsLockedClicked": "presetsLockedClicked"; "saveNewPresets": "saveNewPresets"; "updatePresets": "updatePresets"; "applyFilters": "applyFilters"; "clearFilters": "clearFilters"; "resetFilters": "resetFilters"; "lockedFeatureClicked": "lockedFeatureClicked"; "filterDropdownGroupLockedClicked": "filterDropdownGroupLockedClicked"; }, never, never, true, never>;
379
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterDropdownComponent, "ap-filter-dropdown", never, { "infobox": { "alias": "infobox"; "required": false; "isSignal": true; }; "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "savedValue": { "alias": "savedValue"; "required": false; "isSignal": true; }; "needApplyButton": { "alias": "needApplyButton"; "required": false; "isSignal": true; }; "needClearButton": { "alias": "needClearButton"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "expandOnOpen": { "alias": "expandOnOpen"; "required": false; "isSignal": true; }; "presetsFeatureLocked": { "alias": "presetsFeatureLocked"; "required": false; "isSignal": true; }; "savePresetsMode": { "alias": "savePresetsMode"; "required": false; "isSignal": true; }; "editingPresetsMode": { "alias": "editingPresetsMode"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "saveNewPresetsText": { "alias": "saveNewPresetsText"; "required": false; "isSignal": true; }; "saveAsNewPresetText": { "alias": "saveAsNewPresetText"; "required": false; "isSignal": true; }; "savePresetText": { "alias": "savePresetText"; "required": false; "isSignal": true; }; "updateExistingPresetText": { "alias": "updateExistingPresetText"; "required": false; "isSignal": true; }; "resetFilterText": { "alias": "resetFilterText"; "required": false; "isSignal": true; }; "applyFiltersText": { "alias": "applyFiltersText"; "required": false; "isSignal": true; }; "clearFilterText": { "alias": "clearFilterText"; "required": false; "isSignal": true; }; }, { "infoboxLinkClick": "infoboxLinkClick"; "opened": "opened"; "closed": "closed"; "presetsLockedClicked": "presetsLockedClicked"; "saveNewPresets": "saveNewPresets"; "updatePresets": "updatePresets"; "applyFilters": "applyFilters"; "clearFilters": "clearFilters"; "resetFilters": "resetFilters"; "lockedFeatureClicked": "lockedFeatureClicked"; "filterDropdownGroupLockedClicked": "filterDropdownGroupLockedClicked"; }, never, never, true, never>;
380
380
  }
381
381
 
382
382
  declare class FilterDropdownButtonComponent {
@@ -418,7 +418,8 @@ declare class FilterDropdownButtonComponent {
418
418
  /** Whether the dropdown is disabled and cannot be opened */
419
419
  disabled: _angular_core.InputSignal<boolean>;
420
420
  /** Default position for the dropdown relative to the trigger element */
421
- defaultPosition: _angular_core.InputSignal<"left" | "right">;
421
+ /** Panel placement. Unset means derived from the anchor mode, i.e. `bottom-start`. */
422
+ readonly placement: _angular_core.InputSignal<_floating_ui_utils.Placement | undefined>;
422
423
  /** Extra class(es) set on the body-appended overlay pane, so a consumer can scope global styles to this dropdown. */
423
424
  panelClass: _angular_core.InputSignal<string | string[]>;
424
425
  saveNewPresetsText: _angular_core.InputSignal<string>;
@@ -451,7 +452,7 @@ declare class FilterDropdownButtonComponent {
451
452
  /** Event emitted when a group with locked feature is clicked */
452
453
  filterDropdownGroupLockedClicked: _angular_core.OutputEmitterRef<FilterDropdownGroup>;
453
454
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterDropdownButtonComponent, never>;
454
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterDropdownButtonComponent, "ap-filter-dropdown-button", never, { "buttonFilterText": { "alias": "buttonFilterText"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "infobox": { "alias": "infobox"; "required": false; "isSignal": true; }; "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "savedValue": { "alias": "savedValue"; "required": false; "isSignal": true; }; "needApplyButton": { "alias": "needApplyButton"; "required": false; "isSignal": true; }; "needClearButton": { "alias": "needClearButton"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "expandOnOpen": { "alias": "expandOnOpen"; "required": false; "isSignal": true; }; "presetsFeatureLocked": { "alias": "presetsFeatureLocked"; "required": false; "isSignal": true; }; "savePresetsMode": { "alias": "savePresetsMode"; "required": false; "isSignal": true; }; "editingPresetsMode": { "alias": "editingPresetsMode"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "saveNewPresetsText": { "alias": "saveNewPresetsText"; "required": false; "isSignal": true; }; "saveAsNewPresetText": { "alias": "saveAsNewPresetText"; "required": false; "isSignal": true; }; "savePresetText": { "alias": "savePresetText"; "required": false; "isSignal": true; }; "updateExistingPresetText": { "alias": "updateExistingPresetText"; "required": false; "isSignal": true; }; "resetFilterText": { "alias": "resetFilterText"; "required": false; "isSignal": true; }; "applyFiltersText": { "alias": "applyFiltersText"; "required": false; "isSignal": true; }; "clearFilterText": { "alias": "clearFilterText"; "required": false; "isSignal": true; }; }, { "infoboxLinkClick": "infoboxLinkClick"; "opened": "opened"; "closed": "closed"; "presetsLockedClicked": "presetsLockedClicked"; "saveNewPresets": "saveNewPresets"; "updatePresets": "updatePresets"; "applyFilters": "applyFilters"; "clearFilters": "clearFilters"; "resetFilters": "resetFilters"; "lockedFeatureClicked": "lockedFeatureClicked"; "filterDropdownGroupLockedClicked": "filterDropdownGroupLockedClicked"; }, never, never, true, never>;
455
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FilterDropdownButtonComponent, "ap-filter-dropdown-button", never, { "buttonFilterText": { "alias": "buttonFilterText"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "infobox": { "alias": "infobox"; "required": false; "isSignal": true; }; "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "savedValue": { "alias": "savedValue"; "required": false; "isSignal": true; }; "needApplyButton": { "alias": "needApplyButton"; "required": false; "isSignal": true; }; "needClearButton": { "alias": "needClearButton"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "expandOnOpen": { "alias": "expandOnOpen"; "required": false; "isSignal": true; }; "presetsFeatureLocked": { "alias": "presetsFeatureLocked"; "required": false; "isSignal": true; }; "savePresetsMode": { "alias": "savePresetsMode"; "required": false; "isSignal": true; }; "editingPresetsMode": { "alias": "editingPresetsMode"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "saveNewPresetsText": { "alias": "saveNewPresetsText"; "required": false; "isSignal": true; }; "saveAsNewPresetText": { "alias": "saveAsNewPresetText"; "required": false; "isSignal": true; }; "savePresetText": { "alias": "savePresetText"; "required": false; "isSignal": true; }; "updateExistingPresetText": { "alias": "updateExistingPresetText"; "required": false; "isSignal": true; }; "resetFilterText": { "alias": "resetFilterText"; "required": false; "isSignal": true; }; "applyFiltersText": { "alias": "applyFiltersText"; "required": false; "isSignal": true; }; "clearFilterText": { "alias": "clearFilterText"; "required": false; "isSignal": true; }; }, { "infoboxLinkClick": "infoboxLinkClick"; "opened": "opened"; "closed": "closed"; "presetsLockedClicked": "presetsLockedClicked"; "saveNewPresets": "saveNewPresets"; "updatePresets": "updatePresets"; "applyFilters": "applyFilters"; "clearFilters": "clearFilters"; "resetFilters": "resetFilters"; "lockedFeatureClicked": "lockedFeatureClicked"; "filterDropdownGroupLockedClicked": "filterDropdownGroupLockedClicked"; }, never, never, true, never>;
455
456
  }
456
457
 
457
458
  export { FilterDropdownButtonComponent, FilterDropdownComponent };
@@ -1,5 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { OnDestroy, TemplateRef } from '@angular/core';
3
+ import * as _floating_ui_utils from '@floating-ui/utils';
3
4
  import { DropdownOverlay } from '@agorapulse/ui-components/dropdown-base';
4
5
  import { InputSearchComponent } from '@agorapulse/ui-components/input-search';
5
6
 
@@ -52,8 +53,7 @@ type SelectionDropdownMode = 'multiple' | 'single';
52
53
  /** A dropdown of options on any trigger. `multiple` = checkbox rows with search; `single` = rows, closes on pick. */
53
54
  declare class SelectionDropdownComponent implements DropdownOverlay, OnDestroy {
54
55
  private readonly symbolRegistry;
55
- private readonly overlay;
56
- selectionDropdownTemplate: _angular_core.Signal<TemplateRef<unknown> | undefined>;
56
+ private readonly panel;
57
57
  trigger: _angular_core.Signal<TemplateRef<unknown> | undefined>;
58
58
  /** ID for the header button */
59
59
  headerButtonId: _angular_core.InputSignal<string | undefined>;
@@ -84,7 +84,8 @@ declare class SelectionDropdownComponent implements DropdownOverlay, OnDestroy {
84
84
  /** Whether the dropdown is disabled and cannot be opened */
85
85
  disabled: _angular_core.InputSignal<boolean>;
86
86
  /** Default position for the dropdown relative to the trigger element */
87
- defaultPosition: _angular_core.InputSignal<"left" | "right">;
87
+ /** Panel placement. Unset means derived from the anchor mode, i.e. `bottom-start`. */
88
+ readonly placement: _angular_core.InputSignal<_floating_ui_utils.Placement | undefined>;
88
89
  /** Emits when the dropdown menu is opened */
89
90
  opened: _angular_core.OutputEmitterRef<void>;
90
91
  /** Emits when the dropdown menu is closed */
@@ -129,8 +130,8 @@ declare class SelectionDropdownComponent implements DropdownOverlay, OnDestroy {
129
130
  ngOnDestroy(): void;
130
131
  /** Opens the dropdown menu at the specified trigger element */
131
132
  open(triggerElement?: HTMLElement): void;
132
- /** Closes the dropdown menu and cleans up overlay resources */
133
133
  close(): void;
134
+ protected onPanelClosed(): void;
134
135
  /** Toggles the dropdown menu open or closed state */
135
136
  toggle(triggerElement?: HTMLElement): void;
136
137
  /** Handles item toggle events, updating selection and emitting changes.
@@ -157,7 +158,7 @@ declare class SelectionDropdownComponent implements DropdownOverlay, OnDestroy {
157
158
  /** Updates the filtered items based on search term */
158
159
  private updateFilteredItems;
159
160
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectionDropdownComponent, never>;
160
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectionDropdownComponent, "ap-selection-dropdown", never, { "headerButtonId": { "alias": "headerButtonId"; "required": false; "isSignal": true; }; "footerButtonId": { "alias": "footerButtonId"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "searchEnabled": { "alias": "searchEnabled"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "footerButtonText": { "alias": "footerButtonText"; "required": false; "isSignal": true; }; "footerButtonSymbolId": { "alias": "footerButtonSymbolId"; "required": false; "isSignal": true; }; "headerButtonText": { "alias": "headerButtonText"; "required": false; "isSignal": true; }; "headerButtonSymbolId": { "alias": "headerButtonSymbolId"; "required": false; "isSignal": true; }; "searchPlaceholderText": { "alias": "searchPlaceholderText"; "required": false; "isSignal": true; }; "noSearchResultsText": { "alias": "noSearchResultsText"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "defaultPosition": { "alias": "defaultPosition"; "required": false; "isSignal": true; }; "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; "selectionChange": "selectionChange"; "footerButtonClick": "footerButtonClick"; "headerButtonClick": "headerButtonClick"; "searchInputChange": "searchInputChange"; "searchTerm": "searchTermChange"; }, ["trigger"], never, true, never>;
161
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectionDropdownComponent, "ap-selection-dropdown", never, { "headerButtonId": { "alias": "headerButtonId"; "required": false; "isSignal": true; }; "footerButtonId": { "alias": "footerButtonId"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "searchEnabled": { "alias": "searchEnabled"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "footerButtonText": { "alias": "footerButtonText"; "required": false; "isSignal": true; }; "footerButtonSymbolId": { "alias": "footerButtonSymbolId"; "required": false; "isSignal": true; }; "headerButtonText": { "alias": "headerButtonText"; "required": false; "isSignal": true; }; "headerButtonSymbolId": { "alias": "headerButtonSymbolId"; "required": false; "isSignal": true; }; "searchPlaceholderText": { "alias": "searchPlaceholderText"; "required": false; "isSignal": true; }; "noSearchResultsText": { "alias": "noSearchResultsText"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; "selectionChange": "selectionChange"; "footerButtonClick": "footerButtonClick"; "headerButtonClick": "headerButtonClick"; "searchInputChange": "searchInputChange"; "searchTerm": "searchTermChange"; }, ["trigger"], never, true, never>;
161
162
  }
162
163
 
163
164
  /**
@@ -42,6 +42,7 @@ export { AddCommentComponent } from '@agorapulse/ui-components/add-comment';
42
42
  export { PopoverDirective } from '@agorapulse/ui-components/popover';
43
43
  export { FloatingAnchorMode, FloatingPlacement, FloatingSide } from '@agorapulse/ui-components/floating';
44
44
  export { DropdownOverlay, DropdownTriggerDirective, createDropdownOverlay } from '@agorapulse/ui-components/dropdown-base';
45
+ export { DropdownContentDirective, DropdownPanelComponent } from '@agorapulse/ui-components/dropdown-panel';
45
46
  export { ActionDropdownComponent, ActionDropdownItem, ActionDropdownTriggerDirective } from '@agorapulse/ui-components/action-dropdown';
46
47
  export { AutocompleteComponent } from '@agorapulse/ui-components/autocomplete';
47
48
  export { BadgeComponent } from '@agorapulse/ui-components/badge';
Binary file