@lucca-front/ng 22.0.5 → 22.1.0-rc.2

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 (76) hide show
  1. package/fesm2022/lucca-front-ng-activity-feed.mjs +12 -9
  2. package/fesm2022/lucca-front-ng-activity-feed.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-approbation-inbox.mjs +1 -1
  4. package/fesm2022/lucca-front-ng-approbation-inbox.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-callout.mjs +1 -1
  6. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-core-select.mjs +236 -8
  8. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-core.mjs +5 -1
  10. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-data-table.mjs +2 -2
  12. package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-date2.mjs +217 -159
  14. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-dialog.mjs +2 -2
  16. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-fancy-box.mjs +47 -24
  18. package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-file-upload.mjs +1 -1
  20. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-filter-pills-core.mjs +55 -0
  22. package/fesm2022/lucca-front-ng-filter-pills-core.mjs.map +1 -0
  23. package/fesm2022/lucca-front-ng-filter-pills.mjs +74 -69
  24. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-form-field.mjs +37 -5
  26. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-form-label.mjs +1 -1
  28. package/fesm2022/lucca-front-ng-form-label.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-form.mjs +42 -5
  30. package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +3 -3
  32. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-forms.mjs +12 -6
  34. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-highlight-data.mjs +6 -7
  36. package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-impersonation.mjs +19 -4
  38. package/fesm2022/lucca-front-ng-impersonation.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-link.mjs +8 -3
  40. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  41. package/fesm2022/lucca-front-ng-markdown.mjs +51 -0
  42. package/fesm2022/lucca-front-ng-markdown.mjs.map +1 -0
  43. package/fesm2022/lucca-front-ng-multi-select.mjs +147 -43
  44. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-popover2.mjs +11 -5
  46. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-priority-levels.mjs +128 -0
  48. package/fesm2022/lucca-front-ng-priority-levels.mjs.map +1 -0
  49. package/fesm2022/lucca-front-ng-safe-content.mjs +5 -2
  50. package/fesm2022/lucca-front-ng-safe-content.mjs.map +1 -1
  51. package/fesm2022/lucca-front-ng-simple-select.mjs +63 -12
  52. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  53. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs +1 -1
  54. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs.map +1 -1
  55. package/fesm2022/lucca-front-ng-user-popover.mjs +3 -2
  56. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  57. package/package.json +17 -4
  58. package/src/components/cdk/_overlay.scss +3 -1
  59. package/types/lucca-front-ng-activity-feed.d.ts +3 -1
  60. package/types/lucca-front-ng-core-select.d.ts +90 -7
  61. package/types/lucca-front-ng-core.d.ts +3 -1
  62. package/types/lucca-front-ng-date2.d.ts +31 -5
  63. package/types/lucca-front-ng-fancy-box.d.ts +29 -12
  64. package/types/lucca-front-ng-filter-pills-core.d.ts +69 -0
  65. package/types/lucca-front-ng-filter-pills.d.ts +28 -55
  66. package/types/lucca-front-ng-form-field.d.ts +12 -4
  67. package/types/lucca-front-ng-form.d.ts +7 -1
  68. package/types/lucca-front-ng-forms.d.ts +7 -2
  69. package/types/lucca-front-ng-highlight-data.d.ts +1 -2
  70. package/types/lucca-front-ng-impersonation.d.ts +14 -1
  71. package/types/lucca-front-ng-link.d.ts +5 -1
  72. package/types/lucca-front-ng-markdown.d.ts +24 -0
  73. package/types/lucca-front-ng-multi-select.d.ts +10 -1
  74. package/types/lucca-front-ng-popover2.d.ts +7 -1
  75. package/types/lucca-front-ng-priority-levels.d.ts +44 -0
  76. package/types/lucca-front-ng-simple-select.d.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-filter-pills.mjs","sources":["../../../packages/ng/filter-pills/core/tokens.ts","../../../packages/ng/filter-pills/core/filter-pill-displayer.directive.ts","../../../packages/ng/filter-pills/core/filter-pill-label.directive.ts","../../../packages/ng/filter-pills/translations.ts","../../../packages/ng/filter-pills/filter-pills.translate.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.html","../../../packages/ng/filter-pills/filter-bar/filter-bar.token.ts","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.ts","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.html","../../../packages/ng/filter-pills/filter-view-selector/filter-view-selector.component.ts","../../../packages/ng/filter-pills/filter-view-selector/filter-view-selector.component.html","../../../packages/ng/filter-pills/filter-bar/filter-pill-addon.directive.ts","../../../packages/ng/filter-pills/lucca-front-ng-filter-pills.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FilterPillInputComponent } from './filter-pill-input-component';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\n\nexport const FILTER_PILL_INPUT_COMPONENT = new InjectionToken<FilterPillInputComponent>('FilterPills:InputComponent');\n\nexport const FILTER_PILL_HOST_COMPONENT = new InjectionToken<FilterPillComponent>('FilterPills:HostComponent');\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\n\ninterface FilterPillDisplayerContext {\n\tlabel: string;\n\tplaceholder: string;\n\tisEmpty: boolean;\n}\n\n@Directive({\n\tselector: '[luFilterPillDisplayer]',\n})\nexport class FilterPillDisplayerDirective {\n\t#filterPillComponentRef = inject(FilterPillComponent, { optional: true });\n\n\t#templateRef = inject(TemplateRef);\n\n\tconstructor() {\n\t\tif (this.#filterPillComponentRef) {\n\t\t\tthis.#filterPillComponentRef.pillTpl = this.#templateRef;\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillDisplayerDirective, _ctx: unknown): _ctx is FilterPillDisplayerContext {\n\t\treturn true;\n\t}\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\nimport { FILTER_PILL_INPUT_COMPONENT } from './tokens';\n\ninterface FilterPillLabelContext {\n\tlabel: string;\n\tplaceholder: string;\n\tisEmpty: boolean;\n\tcolon: string;\n}\n\n@Directive({\n\tselector: '[luFilterPillLabel]',\n})\nexport class FilterPillLabelDirective {\n\t#filterPillComponentRef = inject(FilterPillComponent, { optional: true });\n\t#parentComponentRef = inject(FILTER_PILL_INPUT_COMPONENT, { optional: true, skipSelf: true });\n\n\t#templateRef = inject(TemplateRef);\n\n\tconstructor() {\n\t\tif (this.#filterPillComponentRef && this.#parentComponentRef && !this.#parentComponentRef.parentInput) {\n\t\t\tthis.#filterPillComponentRef.customLabelTpl.set(this.#templateRef);\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillLabelDirective, _ctx: unknown): _ctx is FilterPillLabelContext {\n\t\treturn true;\n\t}\n}\n","export const Translations = {\n\tfr: {\n\t\tclear: 'Vider ce champ',\n\t\tplaceholder: 'Aucune valeur sélectionnée',\n\t\tadditionalFilters: 'Filtres supplémentaires',\n\t\tautoApplyAnnouncement: 'La liste des résultats se met à jour automatiquement.',\n\t\tselectView: 'Sélectionner une vue',\n\t\tviewOptions: 'Options de la vue : {{viewName}}',\n\t\trenameView: 'Modifier le nom',\n\t\tdeleteView: 'Supprimer',\n\t\tsaveView: 'Enregistrer la vue',\n\t\tsaveModification: 'Enregistrer les modifications',\n\t\tsaveNewView: 'Enregistrer en tant que nouvelle vue',\n\t},\n\tpt: {\n\t\tclear: 'Esvaziar este campo',\n\t\tplaceholder: 'Nenhum valor selecionado',\n\t\tadditionalFilters: 'Filtros adicionais',\n\t\tautoApplyAnnouncement: 'A lista de resultados é atualizada automaticamente.',\n\t\tselectView: 'Selecionar uma vista',\n\t\tviewOptions: 'Opções da visualização: {{viewName}}',\n\t\trenameView: 'Alterar o nome',\n\t\tdeleteView: 'Eliminar',\n\t\tsaveView: 'Guardar a vista',\n\t\tsaveModification: 'Guardar as alterações',\n\t\tsaveNewView: 'Guardar como nova vista',\n\t},\n\tes: {\n\t\tclear: 'Vaciar este campo',\n\t\tplaceholder: 'Ningún valor seleccionado',\n\t\tadditionalFilters: 'Filtros adicionales',\n\t\tautoApplyAnnouncement: 'La lista de resultados se actualiza automáticamente.',\n\t\tselectView: 'Seleccionar una vista',\n\t\tviewOptions: 'Opciones de la vista: {{viewName}}',\n\t\trenameView: 'Editar el nombre',\n\t\tdeleteView: 'Eliminar',\n\t\tsaveView: 'Guardar vista',\n\t\tsaveModification: 'Guardar los cambios',\n\t\tsaveNewView: 'Guardar como vista nueva',\n\t},\n\t'nl-BE': {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t\tautoApplyAnnouncement: 'De resultatenlijst wordt automatisch bijgewerkt.',\n\t\tselectView: 'Selecteer een weergave',\n\t\tviewOptions: 'Opties van de weergave: {{viewName}}',\n\t\trenameView: 'De naam wijzigen',\n\t\tdeleteView: 'Verwijderen',\n\t\tsaveView: 'De weergave opslaan',\n\t\tsaveModification: 'Wijzigingen opslaan',\n\t\tsaveNewView: 'Opslaan als nieuwe weergave',\n\t},\n\tnl: {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t\tautoApplyAnnouncement: 'De resultatenlijst wordt automatisch bijgewerkt.',\n\t\tselectView: 'Selecteer een weergave',\n\t\tviewOptions: 'Opties van de weergave: {{viewName}}',\n\t\trenameView: 'De naam wijzigen',\n\t\tdeleteView: 'Verwijderen',\n\t\tsaveView: 'De weergave opslaan',\n\t\tsaveModification: 'Wijzigingen opslaan',\n\t\tsaveNewView: 'Opslaan als nieuwe weergave',\n\t},\n\tit: {\n\t\tclear: 'Vuotare questo campo',\n\t\tplaceholder: 'Nessun valore selezionato',\n\t\tadditionalFilters: 'Filtri aggiuntivi',\n\t\tautoApplyAnnouncement: \"L'elenco dei risultati si aggiorna automaticamente.\",\n\t\tselectView: 'Selezionare una vista',\n\t\tviewOptions: 'Opzioni della vista: {{viewName}}',\n\t\trenameView: 'Modificare il nome',\n\t\tdeleteView: 'Elimina',\n\t\tsaveView: 'Salva la vista',\n\t\tsaveModification: 'Salva le modifiche',\n\t\tsaveNewView: 'Salva come nuova vista',\n\t},\n\tde: {\n\t\tclear: 'Den Inhalt aus diesem Feld entfernen',\n\t\tplaceholder: 'Kein Wert ausgewählt',\n\t\tadditionalFilters: 'Zusätzliche Filter',\n\t\tautoApplyAnnouncement: 'Die Ergebnisliste wird automatisch aktualisiert.',\n\t\tselectView: 'Eine Ansicht auswählen',\n\t\tviewOptions: 'Ansichtsoptionen: {{viewName}}',\n\t\trenameView: 'Name bearbeiten',\n\t\tdeleteView: 'Löschen',\n\t\tsaveView: 'Ansicht speichern',\n\t\tsaveModification: 'Änderungen speichern',\n\t\tsaveNewView: 'Als neue Ansicht speichern',\n\t},\n\ten: {\n\t\tclear: 'Empty this field',\n\t\tplaceholder: 'No value selected',\n\t\tadditionalFilters: 'Additional filters',\n\t\tautoApplyAnnouncement: 'The results list updates automatically.',\n\t\tselectView: 'Select a view',\n\t\tviewOptions: 'View options: {{viewName}}',\n\t\trenameView: 'Edit name',\n\t\tdeleteView: 'Delete',\n\t\tsaveView: 'Save view',\n\t\tsaveModification: 'Save changes',\n\t\tsaveNewView: 'Save as new view',\n\t},\n\tpl: {\n\t\tclear: 'Wyczyść to pole',\n\t\tplaceholder: 'Nie wybrano żadnej wartości',\n\t\tadditionalFilters: 'Dodatkowe filtry',\n\t\tautoApplyAnnouncement: 'Lista wyników aktualizuje się automatycznie.',\n\t\tselectView: 'Wybierz widok',\n\t\tviewOptions: 'Opcje widoku: {{viewName}}',\n\t\trenameView: 'Zmień nazwę',\n\t\tdeleteView: 'Usuń',\n\t\tsaveView: 'Save view',\n\t\tsaveModification: 'Save changes',\n\t\tsaveNewView: 'Save as new view',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FILTER_PILLS_TRANSLATIONS = new InjectionToken('LuFilterPillsTranslations', {\n\tfactory: () => luFilterPillsTranslations,\n});\n\nexport interface LuFilterPillsLabel {\n\tclear: string;\n\tplaceholder: string;\n\tadditionalFilters: string;\n\tautoApplyAnnouncement: string;\n\tselectView: string;\n\tviewOptions: string;\n\trenameView: string;\n\tdeleteView: string;\n}\n\nexport const luFilterPillsTranslations: LuTranslation<LuFilterPillsLabel> = Translations;\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tinject,\n\tinput,\n\tLOCALE_ID,\n\tmodel,\n\tsignal,\n\tTemplateRef,\n\tuntracked,\n\tviewChild,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { ClearComponent } from '@lucca-front/ng/clear';\nimport { intlInputOptions, luBooleanAttribute } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { FILTER_PILL_HOST_COMPONENT, FILTER_PILL_INPUT_COMPONENT, FilterPillInputComponent } from '../core';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\n@Component({\n\tselector: 'lu-filter-pill',\n\timports: [PopoverDirective, FormsModule, IconComponent, NgTemplateOutlet, LuTooltipModule, ClearComponent],\n\ttemplateUrl: './filter-pill.component.html',\n\tstyleUrl: './filter-pill.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: FILTER_PILL_HOST_COMPONENT,\n\t\t\tuseExisting: forwardRef(() => FilterPillComponent),\n\t\t},\n\t],\n\thost: {\n\t\tclass: 'filterPillWrapper',\n\t\t'[class.is-hidden]': 'isHiddenClass',\n\t\t'[class.mod-checkbox]': 'isModCheckbox',\n\t\t'[class.is-filled]': 'isFilled',\n\t\t'[class.is-comboboxHidden]': 'hideCombobox',\n\t\t'(click)': 'hostClick()',\n\t},\n})\nexport class FilterPillComponent {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\t#locale = inject(LOCALE_ID);\n\n\treadonly elementRef = inject(ElementRef);\n\n\treadonly layout = computed(() => this.inputComponentRef()?.filterPillLayout?.() || 'default');\n\n\t// The easy way to grab input component, will work in most cases\n\treadonly childInputComponentRef = contentChild(FILTER_PILL_INPUT_COMPONENT);\n\n\t// The harder way, because child has to register itself to the host, might become the default approach if this is required too much\n\t// (like when child isn't created when component inits or it's too deep)\n\treadonly registeredInputComponentRef = signal<FilterPillInputComponent | null>(null);\n\n\treadonly inputComponentRef = computed(() => this.registeredInputComponentRef() || this.childInputComponentRef());\n\n\treadonly popoverRef = viewChild(PopoverDirective);\n\n\tpillTpl: TemplateRef<unknown>;\n\n\treadonly labelTpl = computed(() => this.customLabelTpl() || this.defaultLabelTpl());\n\n\treadonly defaultLabelTpl = viewChild<TemplateRef<unknown>>('defaultLabel');\n\n\treadonly customLabelTpl = signal<TemplateRef<unknown> | null>(null);\n\n\treadonly name = input<string>();\n\n\treadonly optional = input(false, { transform: luBooleanAttribute });\n\n\treadonly disabled = computed(() => this.inputComponentRef()?.filterPillDisabled?.() || false);\n\n\tget isHiddenClass() {\n\t\treturn this.isHidden();\n\t}\n\n\treadonly displayed = model(false);\n\n\tprotected readonly isHidden = computed(() => this.optional() && !this.displayed());\n\n\tpopoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\treadonly label = input.required<string>();\n\n\treadonly placeholder = computed(() => this.placeholderOverride() ?? this.intl().placeholder);\n\treadonly placeholderOverride = input<string | null>(null, { alias: 'placeholder' });\n\n\treadonly icon = input<LuccaIcon>();\n\n\treadonly defaultIcon = computed<LuccaIcon>(() => this.inputComponentRef()?.getDefaultFilterPillIcon?.() ?? 'arrowChevronBottom');\n\n\treadonly displayedIcon = computed(() => this.icon() || this.defaultIcon());\n\n\treadonly shouldHideCombobox = computed(() => this.inputComponentRef()?.hideCombobox?.() ?? false);\n\n\treadonly inputIsEmpty = computed(() => this.inputComponentRef()?.isFilterPillEmpty() ?? true);\n\treadonly inputIsClearable = computed(() => this.inputComponentRef()?.isFilterPillClearable() ?? false);\n\n\treadonly shouldShowColon = computed(() => this.inputComponentRef()?.showColon?.() || !this.inputIsEmpty());\n\n\treadonly colonDisplay = computed(() => {\n\t\tif (!this.shouldShowColon()) {\n\t\t\treturn '';\n\t\t}\n\t\tif (this.#locale.split('-')[0] === 'fr') {\n\t\t\treturn ' :';\n\t\t}\n\t\treturn ':';\n\t});\n\n\treadonly modCheckbox = computed(() => this.layout() === 'checkable');\n\n\tget isModCheckbox() {\n\t\treturn this.modCheckbox();\n\t}\n\n\tget isFilled() {\n\t\treturn !this.inputIsEmpty();\n\t}\n\n\tget hideCombobox() {\n\t\treturn this.shouldHideCombobox();\n\t}\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst ref = this.inputComponentRef();\n\t\t\tif (ref) {\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tref.enableFilterPillMode?.();\n\t\t\t\t\tref.registerFilterPillClosePopover(this.closePopover);\n\t\t\t\t\tref.registerFilterPillUpdatePosition?.(this.updatePosition);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill has a value, it must be displayed\n\t\t\tif (this.optional() && !this.inputIsEmpty() && !untracked(this.displayed)) {\n\t\t\t\tthis.displayed.set(true);\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill is hidden, its value must be clear\n\t\t\tif (this.optional() && !this.displayed() && !untracked(this.inputIsEmpty)) {\n\t\t\t\tthis.clear();\n\t\t\t}\n\t\t});\n\t}\n\n\thostClick(): void {\n\t\tthis.inputComponentRef()?.onFilterPillClick?.();\n\t}\n\n\tpopoverOpened(): void {\n\t\tthis.inputComponentRef()?.onFilterPillOpened?.();\n\t}\n\n\tpopoverClosed(): void {\n\t\tthis.inputComponentRef()?.onFilterPillClosed?.();\n\t}\n\n\tclosePopover = () => {\n\t\t// `onFilterPillClosed` is notified by the `luPopoverClosed` binding, which also covers\n\t\t// closes the input never asked for (outside click, Escape handled by the popover)\n\t\tthis.popoverRef()?.close();\n\t};\n\n\tupdatePosition = () => {\n\t\tthis.popoverRef()?.updatePosition();\n\t};\n\n\tclear(): void {\n\t\tthis.inputComponentRef()?.clearFilterPillValue();\n\t}\n\n\tregisterInput(input: FilterPillInputComponent): void {\n\t\tthis.registeredInputComponentRef.set(input);\n\t}\n}\n","@if (!isHidden()) {\n\t@if (layout() === \"default\") {\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass=\"filterPill\"\n\t\t\t[attr.disabled]=\"disabled() ? 'disabled' : null\"\n\t\t\t[class.is-filled]=\"!this.inputIsEmpty()\"\n\t\t\t[attr.aria-expanded]=\"popoverRef.opened()\"\n\t\t\t(keydown.arrowDown)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t\t(keydown.arrowUp)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t\t[luPopover2]=\"pillContent\"\n\t\t\t[luPopoverAnchor]=\"elementRef\"\n\t\t\t[luPopoverNoCloseButton]=\"true\"\n\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t(luPopoverOpened)=\"popoverOpened()\"\n\t\t\t(luPopoverClosed)=\"popoverClosed()\"\n\t\t\t#filterPillRef\n\t\t\t#popoverRef=\"luPopover2\"\n\t\t>\n\t\t\t<span class=\"filterPill-label\">\n\t\t\t\t<ng-container\n\t\t\t\t\t*ngTemplateOutlet=\"\n\t\t\t\t\t\tlabelTpl();\n\t\t\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\t\t\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tclass=\"filterPill-value\"\n\t\t\t\tluTooltip\n\t\t\t\tluTooltipWhenEllipsis\n\t\t\t\t[luTooltipDisabled]=\"inputIsEmpty()\"\n\t\t\t\t[luTooltipTriggerAnchor]=\"filterPillRef\"\n\t\t\t>\n\t\t\t\t<ng-container *ngTemplateOutlet=\"pillTpl; context: { label: label(), isEmpty: inputIsEmpty() }\" />\n\t\t\t\t@if (inputIsEmpty() && !disabled()) {\n\t\t\t\t\t{{ placeholder() }}\n\t\t\t\t}\n\t\t\t</span>\n\t\t\t<span class=\"filterPill-toggle\">\n\t\t\t\t<lu-icon [icon]=\"displayedIcon()\" size=\"S\" />\n\t\t\t</span>\n\t\t</button>\n\t\t@if (inputIsClearable()) {\n\t\t\t<lu-clear class=\"filterPill_clear\" (onClear)=\"clear(); popoverRef.opened() ? null : filterPillRef.focus()\">{{\n\t\t\t\tintl().clear\n\t\t\t}}</lu-clear>\n\t\t}\n\t} @else {\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"\n\t\t\t\tlabelTpl();\n\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\"\n\t\t/>\n\t}\n}\n<ng-template #pillContent>\n\t<div class=\"filterPill_popover-content popover-contentOptional\">\n\t\t<ng-content />\n\t</div>\n</ng-template>\n<ng-template #defaultLabel>{{ label() }}{{ colonDisplay() }}</ng-template>\n","import { InjectionToken } from '@angular/core';\nimport { FilterBarComponent } from './filter-bar.component';\n\nexport const LU_FILTER_BAR_INSTANCE = new InjectionToken<FilterBarComponent>('LU_FILTER_BAR_INSTANCE');\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, forwardRef, input, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { intlInputOptions, luBooleanAttribute } from '@lucca-front/ng/core';\nimport { DividerComponent } from '@lucca-front/ng/divider';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { ScrollBoxComponent } from '@lucca-front/ng/scroll-box';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\nimport { LU_FILTER_BAR_INSTANCE } from './filter-bar.token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-filter-bar',\n\timports: [IconComponent, LuTooltipTriggerDirective, PopoverDirective, DividerComponent, ScrollBoxComponent, FormsModule, NgTemplateOutlet, FormLabelComponent],\n\ttemplateUrl: './filter-bar.component.html',\n\tstyleUrl: './filter-bar.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'filterBar',\n\t\t'[attr.aria-describedby]': 'manualApply() ? null : autoApplyAnnouncementId',\n\t},\n\tproviders: [\n\t\t{\n\t\t\tprovide: LU_FILTER_BAR_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FilterBarComponent),\n\t\t},\n\t],\n})\nexport class FilterBarComponent {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\t/**\n\t * Set when results only update after an explicit \"Apply\" action, to remove the hidden message\n\t * telling assistive technology users that the results list updates automatically\n\t */\n\treadonly manualApply = input(false, { transform: luBooleanAttribute });\n\n\treadonly autoApplyAnnouncementId = `filterBar-autoApplyAnnouncement-${nextId++}`;\n\n\treadonly addonBefore = signal<TemplateRef<unknown> | null>(null);\n\treadonly addonAfter = signal<TemplateRef<unknown> | null>(null);\n\n\tpopoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\treadonly pills = contentChildren(FilterPillComponent, { descendants: true });\n\n\treadonly optionalPills = computed(() => this.pills().filter((pill) => pill.optional()));\n}\n","@if (!manualApply()) {\n\t<span class=\"pr-u-mask\" [attr.id]=\"autoApplyAnnouncementId\">{{ intl().autoApplyAnnouncement }}</span>\n}\n<lu-scroll-box class=\"filterBar-scrollBox\">\n\t<div class=\"filterBar-scrollBox-group\">\n\t\t@if (addonBefore()) {\n\t\t\t<ng-container *ngTemplateOutlet=\"addonBefore()\" />\n\n\t\t\t<lu-divider class=\"filterBar-divider\" />\n\t\t}\n\t\t@if (optionalPills().length > 0) {\n\t\t\t<button\n\t\t\t\tclass=\"filterPill mod-button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t[luTooltip]=\"intl().additionalFilters\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t\t[luPopover2]=\"contentOptionsTpl\"\n\t\t\t\tluPopoverNoCloseButton\n\t\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t>\n\t\t\t\t<lu-icon class=\"filterPill-icon\" icon=\"filtersDescending\" [alt]=\"intl().additionalFilters\" />\n\t\t\t</button>\n\t\t}\n\n\t\t<ng-content />\n\t</div>\n\n\t@if (addonAfter()) {\n\t\t<div class=\"filterBar-scrollBox-export\">\n\t\t\t<ng-container *ngTemplateOutlet=\"addonAfter()\" />\n\t\t</div>\n\t}\n</lu-scroll-box>\n\n<ng-template #contentOptionsTpl>\n\t<form class=\"filterPill_popover-content popover-contentOptional\">\n\t\t@for (pill of optionalPills(); track pill.name(); let index = $index) {\n\t\t\t<div class=\"form-field mod-selectOption filterPill_popover-content-option\">\n\t\t\t\t<label luFormLabel [attr.for]=\"`filterPillOptions${index}`\">{{ pill.label() }}</label>\n\t\t\t\t<span class=\"checkboxField\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tclass=\"checkboxField-input\"\n\t\t\t\t\t\t[name]=\"pill.name() ?? ''\"\n\t\t\t\t\t\t[attr.id]=\"'filterPillOptions' + index\"\n\t\t\t\t\t\t[(ngModel)]=\"pill.displayed\"\n\t\t\t\t\t/>\n\t\t\t\t\t<span class=\"checkboxField-icon\" aria-hidden=\"true\"><span class=\"checkboxField-icon-check\"></span></span>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t}\n\t</form>\n</ng-template>\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, computed, input, model, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { intlInputOptions, IntlParamsPipe } from '@lucca-front/ng/core';\nimport { DropdownActionComponent, DropdownItemComponent, DropdownMenuComponent, LuDropdownTriggerDirective } from '@lucca-front/ng/dropdown';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\n// Same convention as `lu-select` (see @lucca-front/ng/core-select). Duplicated locally because core-select\n// depends on filter-pills, so importing it here would introduce a circular dependency between entry points.\nexport type LuOptionComparer<T> = (a: T, b: T) => boolean;\nexport const filterViewDefaultOptionComparer: LuOptionComparer<unknown> = (a, b) => JSON.stringify(a) === JSON.stringify(b);\nexport const filterViewDefaultOptionKey: (option: unknown) => unknown = (option) => option;\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-filter-view-selector',\n\timports: [ButtonComponent, IconComponent, PopoverDirective, FormLabelComponent, LuDropdownTriggerDirective, DropdownMenuComponent, DropdownItemComponent, DropdownActionComponent, IntlParamsPipe],\n\ttemplateUrl: './filter-view-selector.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'filterBar-viewSelector',\n\t\t'(keydown.arrowDown)': 'popoverRef()?.openPopover()',\n\t},\n})\nexport class FilterViewSelectorComponent<T> {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\treadonly popoverRef = viewChild(PopoverDirective);\n\n\t/** The list of saved views to pick from. */\n\treadonly views = input.required<T[]>();\n\n\t/** The currently selected view (two-way bindable). */\n\treadonly selectedView = model<T | null>(null);\n\n\t/** How to display a view. Defaults to reading its `name` property. */\n\treadonly viewLabel = input<(view: T) => string>((view) => (view as { name: string }).name);\n\n\t/** How to compare two views for selection. Same convention as `lu-select` — defaults to a structural comparison. */\n\treadonly optionComparer = input<LuOptionComparer<T>>(filterViewDefaultOptionComparer);\n\n\t/** Stable identity used for `@for` tracking. Same convention as `lu-select` — defaults to identity. */\n\treadonly optionKey = input<(view: T) => unknown>(filterViewDefaultOptionKey);\n\n\t/** Emitted when the user asks to rename a view. */\n\treadonly renameView = output<T>();\n\n\t/** Emitted when the user asks to delete a view. */\n\treadonly deleteView = output<T>();\n\n\t/** Aligns the popover under the trigger, like the filter pills do. */\n\tprotected readonly popoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, -4, 0),\n\t\tnew ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, -4, 0),\n\t];\n\n\t/** Shared `name` so all the radios of a given selector belong to the same group. */\n\tprotected readonly groupName = `filterViewSelector-${nextId++}`;\n\n\tprotected readonly selectedLabel = computed(() => {\n\t\tconst selected = this.selectedView();\n\t\treturn selected != null ? this.viewLabel()(selected) : null;\n\t});\n\n\tprotected isSelected(view: T): boolean {\n\t\tconst selected = this.selectedView();\n\t\tif (selected == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.optionComparer()(selected, view);\n\t}\n\n\tprotected inputId(index: number): string {\n\t\treturn `${this.groupName}-${index}`;\n\t}\n\n\tprotected viewOptionsLabel(view: T): string {\n\t\treturn `${this.intl().viewOptions} : ${this.viewLabel()(view)}`;\n\t}\n\n\tprotected selectView(view: T): void {\n\t\tthis.selectedView.set(view);\n\t\tthis.popoverRef()?.close();\n\t}\n}\n","<button\n\ttype=\"button\"\n\tluButton=\"outlined\"\n\tsize=\"S\"\n\tdisclosure\n\tluPopoverNoCloseButton\n\t[luPopover2]=\"viewsPopover\"\n\t[customPositions]=\"popoverPositions\"\n>\n\t@if (selectedLabel(); as label) {\n\t\t<span class=\"pr-u-mask\">{{ intl().selectView }} - </span>\n\t\t{{ label }}\n\t} @else {\n\t\t{{ intl().selectView }}\n\t}\n\t<lu-icon icon=\"arrowChevronBottom\" />\n</button>\n\n<ng-template #viewsPopover>\n\t<div class=\"filterPill_popover-content popover-contentOptional\">\n\t\t@for (view of views(); track optionKey()(view); let index = $index) {\n\t\t\t<div class=\"filterPill_popover-content-option\">\n\t\t\t\t<label luFormLabel [attr.for]=\"inputId(index)\">{{ viewLabel()(view) }}</label>\n\t\t\t\t<span class=\"filterPill_popover-content-option-input\">\n\t\t\t\t\t<input type=\"radio\" [attr.id]=\"inputId(index)\" [attr.name]=\"groupName\" [checked]=\"isSelected(view)\" (change)=\"selectView(view)\" />\n\t\t\t\t</span>\n\t\t\t\t<button type=\"button\" class=\"filterPill_popover-content-option-actions\" size=\"XS\" luButton=\"ghost\" [luDropdown]=\"optionsDropdown\">\n\t\t\t\t\t<lu-icon icon=\"menuDots\" [alt]=\"intl().viewOptions | intlParams: { viewName: viewLabel()(view) }\" />\n\t\t\t\t</button>\n\n\t\t\t\t<ng-template #optionsDropdown>\n\t\t\t\t\t<lu-dropdown-menu>\n\t\t\t\t\t\t<lu-dropdown-item>\n\t\t\t\t\t\t\t<button type=\"button\" lu-dropdown-action (click)=\"renameView.emit(view); popoverRef()?.close()\">\n\t\t\t\t\t\t\t\t<lu-icon icon=\"edit\" />\n\t\t\t\t\t\t\t\t{{ intl().renameView }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</lu-dropdown-item>\n\t\t\t\t\t\t<lu-dropdown-item>\n\t\t\t\t\t\t\t<button type=\"button\" lu-dropdown-action critical (click)=\"deleteView.emit(view); popoverRef()?.close()\">\n\t\t\t\t\t\t\t\t<lu-icon icon=\"trash\" />\n\t\t\t\t\t\t\t\t{{ intl().deleteView }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</lu-dropdown-item>\n\t\t\t\t\t</lu-dropdown-menu>\n\t\t\t\t</ng-template>\n\t\t\t</div>\n\t\t}\n\t</div>\n</ng-template>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterBarComponent } from './filter-bar.component';\n\n@Directive({\n\tselector: '[luFilterPillAddonBefore]',\n})\nexport class FilterPillAddonBeforeDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonBefore.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonBeforeDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n\n@Directive({\n\tselector: '[luFilterPillAddonAfter]',\n})\nexport class FilterPillAddonAfterDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonAfter.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonAfterDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId","i1"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-filter-pills.mjs","sources":["../../../packages/ng/filter-pills/translations.ts","../../../packages/ng/filter-pills/filter-pills.translate.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.html","../../../packages/ng/filter-pills/filter-bar/filter-bar.token.ts","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.ts","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.html","../../../packages/ng/filter-pills/filter-view-selector/filter-view-selector.component.ts","../../../packages/ng/filter-pills/filter-view-selector/filter-view-selector.component.html","../../../packages/ng/filter-pills/filter-bar/filter-pill-addon.directive.ts","../../../packages/ng/filter-pills/lucca-front-ng-filter-pills.ts"],"sourcesContent":["export const Translations = {\n\tfr: {\n\t\tclear: 'Vider ce champ',\n\t\tplaceholder: 'Aucune valeur sélectionnée',\n\t\tadditionalFilters: 'Filtres supplémentaires',\n\t\tautoApplyAnnouncement: 'La liste des résultats se met à jour automatiquement.',\n\t\tselectView: 'Sélectionner une vue',\n\t\tviewOptions: 'Options de la vue : {{viewName}}',\n\t\trenameView: 'Modifier le nom',\n\t\tdeleteView: 'Supprimer',\n\t\tsaveView: 'Enregistrer la vue',\n\t\tsaveModification: 'Enregistrer les modifications',\n\t\tsaveNewView: 'Enregistrer en tant que nouvelle vue',\n\t},\n\tpt: {\n\t\tclear: 'Esvaziar este campo',\n\t\tplaceholder: 'Nenhum valor selecionado',\n\t\tadditionalFilters: 'Filtros adicionais',\n\t\tautoApplyAnnouncement: 'A lista de resultados é atualizada automaticamente.',\n\t\tselectView: 'Selecionar uma vista',\n\t\tviewOptions: 'Opções da visualização: {{viewName}}',\n\t\trenameView: 'Alterar o nome',\n\t\tdeleteView: 'Eliminar',\n\t\tsaveView: 'Guardar a vista',\n\t\tsaveModification: 'Guardar as alterações',\n\t\tsaveNewView: 'Guardar como nova vista',\n\t},\n\tes: {\n\t\tclear: 'Vaciar este campo',\n\t\tplaceholder: 'Ningún valor seleccionado',\n\t\tadditionalFilters: 'Filtros adicionales',\n\t\tautoApplyAnnouncement: 'La lista de resultados se actualiza automáticamente.',\n\t\tselectView: 'Seleccionar una vista',\n\t\tviewOptions: 'Opciones de la vista: {{viewName}}',\n\t\trenameView: 'Editar el nombre',\n\t\tdeleteView: 'Eliminar',\n\t\tsaveView: 'Guardar vista',\n\t\tsaveModification: 'Guardar los cambios',\n\t\tsaveNewView: 'Guardar como vista nueva',\n\t},\n\t'nl-BE': {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t\tautoApplyAnnouncement: 'De resultatenlijst wordt automatisch bijgewerkt.',\n\t\tselectView: 'Selecteer een weergave',\n\t\tviewOptions: 'Opties van de weergave: {{viewName}}',\n\t\trenameView: 'De naam wijzigen',\n\t\tdeleteView: 'Verwijderen',\n\t\tsaveView: 'De weergave opslaan',\n\t\tsaveModification: 'Wijzigingen opslaan',\n\t\tsaveNewView: 'Opslaan als nieuwe weergave',\n\t},\n\tnl: {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t\tautoApplyAnnouncement: 'De resultatenlijst wordt automatisch bijgewerkt.',\n\t\tselectView: 'Selecteer een weergave',\n\t\tviewOptions: 'Opties van de weergave: {{viewName}}',\n\t\trenameView: 'De naam wijzigen',\n\t\tdeleteView: 'Verwijderen',\n\t\tsaveView: 'De weergave opslaan',\n\t\tsaveModification: 'Wijzigingen opslaan',\n\t\tsaveNewView: 'Opslaan als nieuwe weergave',\n\t},\n\tit: {\n\t\tclear: 'Vuotare questo campo',\n\t\tplaceholder: 'Nessun valore selezionato',\n\t\tadditionalFilters: 'Filtri aggiuntivi',\n\t\tautoApplyAnnouncement: \"L'elenco dei risultati si aggiorna automaticamente.\",\n\t\tselectView: 'Selezionare una vista',\n\t\tviewOptions: 'Opzioni della vista: {{viewName}}',\n\t\trenameView: 'Modificare il nome',\n\t\tdeleteView: 'Elimina',\n\t\tsaveView: 'Salva la vista',\n\t\tsaveModification: 'Salva le modifiche',\n\t\tsaveNewView: 'Salva come nuova vista',\n\t},\n\tde: {\n\t\tclear: 'Den Inhalt aus diesem Feld entfernen',\n\t\tplaceholder: 'Kein Wert ausgewählt',\n\t\tadditionalFilters: 'Zusätzliche Filter',\n\t\tautoApplyAnnouncement: 'Die Ergebnisliste wird automatisch aktualisiert.',\n\t\tselectView: 'Eine Ansicht auswählen',\n\t\tviewOptions: 'Ansichtsoptionen: {{viewName}}',\n\t\trenameView: 'Name bearbeiten',\n\t\tdeleteView: 'Löschen',\n\t\tsaveView: 'Ansicht speichern',\n\t\tsaveModification: 'Änderungen speichern',\n\t\tsaveNewView: 'Als neue Ansicht speichern',\n\t},\n\ten: {\n\t\tclear: 'Empty this field',\n\t\tplaceholder: 'No value selected',\n\t\tadditionalFilters: 'Additional filters',\n\t\tautoApplyAnnouncement: 'The results list updates automatically.',\n\t\tselectView: 'Select a view',\n\t\tviewOptions: 'View options: {{viewName}}',\n\t\trenameView: 'Edit name',\n\t\tdeleteView: 'Delete',\n\t\tsaveView: 'Save view',\n\t\tsaveModification: 'Save changes',\n\t\tsaveNewView: 'Save as new view',\n\t},\n\tpl: {\n\t\tclear: 'Wyczyść to pole',\n\t\tplaceholder: 'Nie wybrano żadnej wartości',\n\t\tadditionalFilters: 'Dodatkowe filtry',\n\t\tautoApplyAnnouncement: 'Lista wyników aktualizuje się automatycznie.',\n\t\tselectView: 'Wybierz widok',\n\t\tviewOptions: 'Opcje widoku: {{viewName}}',\n\t\trenameView: 'Zmień nazwę',\n\t\tdeleteView: 'Usuń',\n\t\tsaveView: 'Save view',\n\t\tsaveModification: 'Save changes',\n\t\tsaveNewView: 'Save as new view',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FILTER_PILLS_TRANSLATIONS = new InjectionToken('LuFilterPillsTranslations', {\n\tfactory: () => luFilterPillsTranslations,\n});\n\nexport interface LuFilterPillsLabel {\n\tclear: string;\n\tplaceholder: string;\n\tadditionalFilters: string;\n\tautoApplyAnnouncement: string;\n\tselectView: string;\n\tviewOptions: string;\n\trenameView: string;\n\tdeleteView: string;\n}\n\nexport const luFilterPillsTranslations: LuTranslation<LuFilterPillsLabel> = Translations;\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tinject,\n\tinput,\n\tLOCALE_ID,\n\tmodel,\n\tsignal,\n\tTemplateRef,\n\tuntracked,\n\tviewChild,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { ClearComponent } from '@lucca-front/ng/clear';\nimport { intlInputOptions, luBooleanAttribute } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { FILTER_PILL_HOST_COMPONENT, FILTER_PILL_INPUT_COMPONENT, FilterPillHostComponent, FilterPillInputComponent } from '@lucca-front/ng/filter-pills/core';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\n@Component({\n\tselector: 'lu-filter-pill',\n\timports: [PopoverDirective, FormsModule, IconComponent, NgTemplateOutlet, LuTooltipModule, ClearComponent],\n\ttemplateUrl: './filter-pill.component.html',\n\tstyleUrl: './filter-pill.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: FILTER_PILL_HOST_COMPONENT,\n\t\t\tuseExisting: forwardRef(() => FilterPillComponent),\n\t\t},\n\t],\n\thost: {\n\t\tclass: 'filterPillWrapper',\n\t\t'[class.is-hidden]': 'isHiddenClass',\n\t\t'[class.mod-checkbox]': 'isModCheckbox',\n\t\t'[class.is-filled]': 'isFilled',\n\t\t'[class.is-comboboxHidden]': 'hideCombobox',\n\t\t'(click)': 'hostClick()',\n\t},\n})\nexport class FilterPillComponent implements FilterPillHostComponent {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\t#locale = inject(LOCALE_ID);\n\n\treadonly elementRef = inject(ElementRef);\n\n\treadonly layout = computed(() => this.inputComponentRef()?.filterPillLayout?.() || 'default');\n\n\t// The easy way to grab input component, will work in most cases\n\treadonly childInputComponentRef = contentChild(FILTER_PILL_INPUT_COMPONENT);\n\n\t// The harder way, because child has to register itself to the host, might become the default approach if this is required too much\n\t// (like when child isn't created when component inits or it's too deep)\n\treadonly registeredInputComponentRef = signal<FilterPillInputComponent | null>(null);\n\n\treadonly inputComponentRef = computed(() => this.registeredInputComponentRef() || this.childInputComponentRef());\n\n\treadonly popoverRef = viewChild(PopoverDirective);\n\n\tpillTpl: TemplateRef<unknown>;\n\n\treadonly labelTpl = computed(() => this.customLabelTpl() || this.defaultLabelTpl());\n\n\treadonly defaultLabelTpl = viewChild<TemplateRef<unknown>>('defaultLabel');\n\n\treadonly customLabelTpl = signal<TemplateRef<unknown> | null>(null);\n\n\treadonly name = input<string>();\n\n\treadonly optional = input(false, { transform: luBooleanAttribute });\n\n\t/** Groups the pill with the ones sharing the same value in the filter bar's optional filters list. Empty means no group. */\n\treadonly grouping = input('');\n\n\t/** Renders the pill as an icon-only button, its label being carried by a tooltip. */\n\treadonly iconOnly = input(false, { transform: luBooleanAttribute });\n\n\t/** Catches the click that closes the popover instead of letting it through to the page. */\n\treadonly backdrop = input(false, { transform: luBooleanAttribute });\n\n\treadonly disabled = computed(() => this.inputComponentRef()?.filterPillDisabled?.() || false);\n\n\tget isHiddenClass() {\n\t\treturn this.isHidden();\n\t}\n\n\treadonly displayed = model(false);\n\n\tprotected readonly isHidden = computed(() => this.optional() && !this.displayed());\n\n\tpopoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\treadonly label = input.required<string>();\n\n\treadonly placeholder = computed(() => this.placeholderOverride() ?? this.intl().placeholder);\n\treadonly placeholderOverride = input<string | null>(null, { alias: 'placeholder' });\n\n\treadonly icon = input<LuccaIcon>();\n\n\treadonly defaultIcon = computed<LuccaIcon>(() => this.inputComponentRef()?.getDefaultFilterPillIcon?.() ?? 'arrowChevronBottom');\n\n\treadonly displayedIcon = computed(() => this.icon() || this.defaultIcon());\n\n\treadonly shouldHideCombobox = computed(() => this.inputComponentRef()?.hideCombobox?.() ?? false);\n\n\treadonly inputIsEmpty = computed(() => this.inputComponentRef()?.isFilterPillEmpty() ?? true);\n\treadonly inputIsClearable = computed(() => this.inputComponentRef()?.isFilterPillClearable() ?? false);\n\n\treadonly shouldShowColon = computed(() => this.inputComponentRef()?.showColon?.() || !this.inputIsEmpty());\n\n\treadonly colonDisplay = computed(() => {\n\t\tif (!this.shouldShowColon()) {\n\t\t\treturn '';\n\t\t}\n\t\tif (this.#locale.split('-')[0] === 'fr') {\n\t\t\treturn ' :';\n\t\t}\n\t\treturn ':';\n\t});\n\n\treadonly modCheckbox = computed(() => this.layout() === 'checkable');\n\n\tget isModCheckbox() {\n\t\treturn this.modCheckbox();\n\t}\n\n\tget isFilled() {\n\t\treturn !this.inputIsEmpty();\n\t}\n\n\tget hideCombobox() {\n\t\treturn this.shouldHideCombobox();\n\t}\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst ref = this.inputComponentRef();\n\t\t\tif (ref) {\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tref.enableFilterPillMode?.();\n\t\t\t\t\tref.registerFilterPillClosePopover(this.closePopover);\n\t\t\t\t\tref.registerFilterPillUpdatePosition?.(this.updatePosition);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill has a value, it must be displayed\n\t\t\tif (this.optional() && !this.inputIsEmpty() && !untracked(this.displayed)) {\n\t\t\t\tthis.displayed.set(true);\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill is hidden, its value must be clear\n\t\t\tif (this.optional() && !this.displayed() && !untracked(this.inputIsEmpty)) {\n\t\t\t\tthis.clear();\n\t\t\t}\n\t\t});\n\t}\n\n\thostClick(): void {\n\t\tthis.inputComponentRef()?.onFilterPillClick?.();\n\t}\n\n\tpopoverOpened(): void {\n\t\tthis.inputComponentRef()?.onFilterPillOpened?.();\n\t}\n\n\tpopoverClosed(): void {\n\t\tthis.inputComponentRef()?.onFilterPillClosed?.();\n\t}\n\n\tclosePopover = () => {\n\t\t// `onFilterPillClosed` is notified by the `luPopoverClosed` binding, which also covers\n\t\t// closes the input never asked for (outside click, Escape handled by the popover)\n\t\tthis.popoverRef()?.close();\n\t};\n\n\tupdatePosition = () => {\n\t\tthis.popoverRef()?.updatePosition();\n\t};\n\n\tclear(): void {\n\t\tthis.inputComponentRef()?.clearFilterPillValue();\n\t}\n\n\tregisterInput(input: FilterPillInputComponent): void {\n\t\tthis.registeredInputComponentRef.set(input);\n\t}\n}\n","@if (!isHidden()) {\n\t@if (iconOnly()) {\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass=\"filterPill mod-button\"\n\t\t\t[attr.disabled]=\"disabled() ? 'disabled' : null\"\n\t\t\t[attr.aria-expanded]=\"popoverRef.opened()\"\n\t\t\t[luTooltip]=\"label()\"\n\t\t\tluTooltipOnlyForDisplay\n\t\t\t(keydown.arrowDown)=\"$event.preventDefault(); popoverRef.openPopover()\"\n\t\t\t(keydown.arrowUp)=\"$event.preventDefault(); popoverRef.openPopover()\"\n\t\t\t[luPopover2]=\"pillContent\"\n\t\t\t[luPopoverAnchor]=\"elementRef\"\n\t\t\t[luPopoverNoCloseButton]=\"true\"\n\t\t\t[luPopoverBackdrop]=\"backdrop()\"\n\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t(luPopoverOpened)=\"popoverOpened()\"\n\t\t\t(luPopoverClosed)=\"popoverClosed()\"\n\t\t\t#popoverRef=\"luPopover2\"\n\t\t>\n\t\t\t<lu-icon class=\"filterPill-icon\" [icon]=\"displayedIcon()\" [alt]=\"label()\" />\n\t\t</button>\n\t} @else if (layout() === \"default\") {\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass=\"filterPill\"\n\t\t\t[attr.disabled]=\"disabled() ? 'disabled' : null\"\n\t\t\t[class.is-filled]=\"!this.inputIsEmpty()\"\n\t\t\t[attr.aria-expanded]=\"popoverRef.opened()\"\n\t\t\t(keydown.arrowDown)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t\t(keydown.arrowUp)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t\t[luPopover2]=\"pillContent\"\n\t\t\t[luPopoverAnchor]=\"elementRef\"\n\t\t\t[luPopoverNoCloseButton]=\"true\"\n\t\t\t[luPopoverBackdrop]=\"backdrop()\"\n\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t(luPopoverOpened)=\"popoverOpened()\"\n\t\t\t(luPopoverClosed)=\"popoverClosed()\"\n\t\t\t#filterPillRef\n\t\t\t#popoverRef=\"luPopover2\"\n\t\t>\n\t\t\t<span class=\"filterPill-label\">\n\t\t\t\t<ng-container\n\t\t\t\t\t*ngTemplateOutlet=\"\n\t\t\t\t\t\tlabelTpl();\n\t\t\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\t\t\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tclass=\"filterPill-value\"\n\t\t\t\tluTooltip\n\t\t\t\tluTooltipWhenEllipsis\n\t\t\t\t[luTooltipDisabled]=\"inputIsEmpty()\"\n\t\t\t\t[luTooltipTriggerAnchor]=\"filterPillRef\"\n\t\t\t>\n\t\t\t\t<ng-container *ngTemplateOutlet=\"pillTpl; context: { label: label(), isEmpty: inputIsEmpty() }\" />\n\t\t\t\t@if (inputIsEmpty() && !disabled()) {\n\t\t\t\t\t{{ placeholder() }}\n\t\t\t\t}\n\t\t\t</span>\n\t\t\t<span class=\"filterPill-toggle\">\n\t\t\t\t<lu-icon [icon]=\"displayedIcon()\" size=\"S\" />\n\t\t\t</span>\n\t\t</button>\n\t\t@if (inputIsClearable()) {\n\t\t\t<lu-clear class=\"filterPill_clear\" (onClear)=\"clear(); popoverRef.opened() ? null : filterPillRef.focus()\">{{\n\t\t\t\tintl().clear\n\t\t\t}}</lu-clear>\n\t\t}\n\t} @else {\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"\n\t\t\t\tlabelTpl();\n\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\"\n\t\t/>\n\t}\n}\n<ng-template #pillContent>\n\t<div class=\"filterPill_popover-content popover-contentOptional\">\n\t\t<ng-content />\n\t</div>\n</ng-template>\n<ng-template #defaultLabel>{{ label() }}{{ colonDisplay() }}</ng-template>\n","import { InjectionToken } from '@angular/core';\nimport { FilterBarComponent } from './filter-bar.component';\n\nexport const LU_FILTER_BAR_INSTANCE = new InjectionToken<FilterBarComponent>('LU_FILTER_BAR_INSTANCE');\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, effect, forwardRef, input, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { intlInputOptions, luBooleanAttribute } from '@lucca-front/ng/core';\nimport { LuOptionComparer, LuOptionDirective, LuOptionGroupByContext, LuOptionGrouping } from '@lucca-front/ng/core-select';\nimport { DividerComponent } from '@lucca-front/ng/divider';\nimport { LuMultiSelectInputComponent } from '@lucca-front/ng/multi-select';\nimport { ScrollBoxComponent } from '@lucca-front/ng/scroll-box';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\nimport { LU_FILTER_BAR_INSTANCE } from './filter-bar.token';\n\nlet nextId = 0;\n\n/** Case and accent insensitive, so searching `periode` matches a `Période` pill. */\nfunction normalizeSearch(value: string): string {\n\treturn value\n\t\t.normalize('NFD')\n\t\t.replace(/\\p{Diacritic}/gu, '')\n\t\t.toLowerCase();\n}\n\n@Component({\n\tselector: 'lu-filter-bar',\n\timports: [DividerComponent, ScrollBoxComponent, FormsModule, NgTemplateOutlet, FilterPillComponent, LuMultiSelectInputComponent, LuOptionDirective],\n\ttemplateUrl: './filter-bar.component.html',\n\tstyleUrl: './filter-bar.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'filterBar',\n\t\t'[attr.aria-describedby]': 'manualApply() ? null : autoApplyAnnouncementId',\n\t},\n\tproviders: [\n\t\t{\n\t\t\tprovide: LU_FILTER_BAR_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FilterBarComponent),\n\t\t},\n\t],\n})\nexport class FilterBarComponent {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\t/**\n\t * Set when results only update after an explicit \"Apply\" action, to remove the hidden message\n\t * telling assistive technology users that the results list updates automatically\n\t */\n\treadonly manualApply = input(false, { transform: luBooleanAttribute });\n\n\treadonly autoApplyAnnouncementId = `filterBar-autoApplyAnnouncement-${nextId++}`;\n\n\treadonly addonBefore = signal<TemplateRef<unknown> | null>(null);\n\treadonly addonAfter = signal<TemplateRef<unknown> | null>(null);\n\n\treadonly pills = contentChildren(FilterPillComponent, { descendants: true });\n\n\treadonly optionalPills = computed(() => this.pills().filter((pill) => pill.optional()));\n\n\tprotected readonly displayedOptionalPills = computed(() => this.optionalPills().filter((pill) => pill.displayed()));\n\n\t/** Mirrors the search clue of the optional filters select, which filters its options on its own. */\n\tprotected readonly clue = signal('');\n\n\t/**\n\t * The panel builds a group out of each run of consecutive options, so the pills of a same group\n\t * have to be listed together. Groups keep the order of their first pill, ungrouped pills come first.\n\t */\n\tprotected readonly optionalPillOptions = computed(() => {\n\t\tconst clue = normalizeSearch(this.clue());\n\t\tconst pillsByGroup = new Map<string, FilterPillComponent[]>([['', []]]);\n\t\tthis.optionalPills()\n\t\t\t.filter((pill) => normalizeSearch(pill.label()).includes(clue))\n\t\t\t.forEach((pill) => {\n\t\t\t\tconst groupPills = pillsByGroup.get(pill.grouping());\n\t\t\t\tif (groupPills) {\n\t\t\t\t\tgroupPills.push(pill);\n\t\t\t\t} else {\n\t\t\t\t\tpillsByGroup.set(pill.grouping(), [pill]);\n\t\t\t\t}\n\t\t\t});\n\t\treturn [...pillsByGroup.values()].flat();\n\t});\n\n\t/** Optional pills are identified by their instance, they have no serializable value to compare. */\n\tprotected readonly optionalPillComparer: LuOptionComparer<FilterPillComponent> = (pill1, pill2) => pill1 === pill2;\n\n\t// `viewChild` can't be declared on an ES private field\n\tprivate readonly optionalPillsSelect = viewChild(LuMultiSelectInputComponent);\n\n\tprivate readonly optionalPillsGroupTpl = viewChild<TemplateRef<LuOptionGroupByContext<unknown, unknown>>>('optionalPillsGroup');\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\t// Grouping stays off until a pill declares one, so a bar without groups keeps a flat option list\n\t\t\tconst grouped = this.optionalPills().some((pill) => pill.grouping().length > 0);\n\t\t\tconst content = this.optionalPillsGroupTpl();\n\t\t\tconst grouping: LuOptionGrouping<unknown, unknown> | undefined = grouped && content ? { selector: (pill: unknown) => (pill as FilterPillComponent).grouping(), content } : undefined;\n\t\t\tthis.optionalPillsSelect()?.groupingSignal.set(grouping);\n\t\t});\n\t}\n\n\tprotected displayOptionalPills(pills: FilterPillComponent[]): void {\n\t\tthis.optionalPills().forEach((pill) => pill.displayed.set(pills.includes(pill)));\n\t}\n}\n","@if (!manualApply()) {\n\t<span class=\"pr-u-mask\" [attr.id]=\"autoApplyAnnouncementId\">{{ intl().autoApplyAnnouncement }}</span>\n}\n<lu-scroll-box class=\"filterBar-scrollBox\">\n\t<div class=\"filterBar-scrollBox-group\">\n\t\t@if (addonBefore()) {\n\t\t\t<ng-container *ngTemplateOutlet=\"addonBefore()\" />\n\n\t\t\t<lu-divider class=\"filterBar-divider\" />\n\t\t}\n\t\t@if (optionalPills().length > 0) {\n\t\t\t<lu-filter-pill [label]=\"intl().additionalFilters\" icon=\"filtersDescending\" iconOnly backdrop>\n\t\t\t\t<lu-multi-select\n\t\t\t\t\t#optionalPillsSelect\n\t\t\t\t\t[options]=\"optionalPillOptions()\"\n\t\t\t\t\t[optionComparer]=\"optionalPillComparer\"\n\t\t\t\t\t[ngModel]=\"displayedOptionalPills()\"\n\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t\t\t(ngModelChange)=\"displayOptionalPills($event)\"\n\t\t\t\t\t(clueChange)=\"clue.set($event)\"\n\t\t\t\t>\n\t\t\t\t\t<ng-container *luOption=\"let pill; select: optionalPillsSelect\">{{ pill.label() }}</ng-container>\n\t\t\t\t\t<ng-template #optionalPillsGroup let-group>{{ group.key }}</ng-template>\n\t\t\t\t</lu-multi-select>\n\t\t\t</lu-filter-pill>\n\t\t}\n\n\t\t<ng-content />\n\t</div>\n\n\t@if (addonAfter()) {\n\t\t<div class=\"filterBar-scrollBox-export\">\n\t\t\t<ng-container *ngTemplateOutlet=\"addonAfter()\" />\n\t\t</div>\n\t}\n</lu-scroll-box>\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, computed, input, model, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { intlInputOptions, IntlParamsPipe } from '@lucca-front/ng/core';\nimport { DropdownActionComponent, DropdownItemComponent, DropdownMenuComponent, LuDropdownTriggerDirective } from '@lucca-front/ng/dropdown';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\n// Same convention as `lu-select` (see @lucca-front/ng/core-select). Duplicated locally because core-select\n// depends on filter-pills, so importing it here would introduce a circular dependency between entry points.\nexport type LuOptionComparer<T> = (a: T, b: T) => boolean;\nexport const filterViewDefaultOptionComparer: LuOptionComparer<unknown> = (a, b) => JSON.stringify(a) === JSON.stringify(b);\nexport const filterViewDefaultOptionKey: (option: unknown) => unknown = (option) => option;\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-filter-view-selector',\n\timports: [ButtonComponent, IconComponent, PopoverDirective, FormLabelComponent, LuDropdownTriggerDirective, DropdownMenuComponent, DropdownItemComponent, DropdownActionComponent, IntlParamsPipe],\n\ttemplateUrl: './filter-view-selector.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'filterBar-viewSelector',\n\t\t'(keydown.arrowDown)': 'popoverRef()?.openPopover()',\n\t},\n})\nexport class FilterViewSelectorComponent<T> {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\treadonly popoverRef = viewChild(PopoverDirective);\n\n\t/** The list of saved views to pick from. */\n\treadonly views = input.required<T[]>();\n\n\t/** The currently selected view (two-way bindable). */\n\treadonly selectedView = model<T | null>(null);\n\n\t/** How to display a view. Defaults to reading its `name` property. */\n\treadonly viewLabel = input<(view: T) => string>((view) => (view as { name: string }).name);\n\n\t/** How to compare two views for selection. Same convention as `lu-select` — defaults to a structural comparison. */\n\treadonly optionComparer = input<LuOptionComparer<T>>(filterViewDefaultOptionComparer);\n\n\t/** Stable identity used for `@for` tracking. Same convention as `lu-select` — defaults to identity. */\n\treadonly optionKey = input<(view: T) => unknown>(filterViewDefaultOptionKey);\n\n\t/** Emitted when the user asks to rename a view. */\n\treadonly renameView = output<T>();\n\n\t/** Emitted when the user asks to delete a view. */\n\treadonly deleteView = output<T>();\n\n\t/** Aligns the popover under the trigger, like the filter pills do. */\n\tprotected readonly popoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, -4, 0),\n\t\tnew ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, -4, 0),\n\t];\n\n\t/** Shared `name` so all the radios of a given selector belong to the same group. */\n\tprotected readonly groupName = `filterViewSelector-${nextId++}`;\n\n\tprotected readonly selectedLabel = computed(() => {\n\t\tconst selected = this.selectedView();\n\t\treturn selected != null ? this.viewLabel()(selected) : null;\n\t});\n\n\tprotected isSelected(view: T): boolean {\n\t\tconst selected = this.selectedView();\n\t\tif (selected == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.optionComparer()(selected, view);\n\t}\n\n\tprotected inputId(index: number): string {\n\t\treturn `${this.groupName}-${index}`;\n\t}\n\n\tprotected viewOptionsLabel(view: T): string {\n\t\treturn `${this.intl().viewOptions} : ${this.viewLabel()(view)}`;\n\t}\n\n\tprotected selectView(view: T): void {\n\t\tthis.selectedView.set(view);\n\t\tthis.popoverRef()?.close();\n\t}\n}\n","<button\n\ttype=\"button\"\n\tluButton=\"outlined\"\n\tsize=\"S\"\n\tdisclosure\n\tluPopoverNoCloseButton\n\t[luPopover2]=\"viewsPopover\"\n\t[customPositions]=\"popoverPositions\"\n>\n\t@if (selectedLabel(); as label) {\n\t\t<span class=\"pr-u-mask\">{{ intl().selectView }} - </span>\n\t\t{{ label }}\n\t} @else {\n\t\t{{ intl().selectView }}\n\t}\n\t<lu-icon icon=\"arrowChevronBottom\" />\n</button>\n\n<ng-template #viewsPopover>\n\t<div class=\"filterPill_popover-content popover-contentOptional\">\n\t\t@for (view of views(); track optionKey()(view); let index = $index) {\n\t\t\t<div class=\"filterPill_popover-content-option\">\n\t\t\t\t<label luFormLabel [attr.for]=\"inputId(index)\">{{ viewLabel()(view) }}</label>\n\t\t\t\t<span class=\"filterPill_popover-content-option-input\">\n\t\t\t\t\t<input type=\"radio\" [attr.id]=\"inputId(index)\" [attr.name]=\"groupName\" [checked]=\"isSelected(view)\" (change)=\"selectView(view)\" />\n\t\t\t\t</span>\n\t\t\t\t<button type=\"button\" class=\"filterPill_popover-content-option-actions\" size=\"XS\" luButton=\"ghost\" [luDropdown]=\"optionsDropdown\">\n\t\t\t\t\t<lu-icon icon=\"menuDots\" [alt]=\"intl().viewOptions | intlParams: { viewName: viewLabel()(view) }\" />\n\t\t\t\t</button>\n\n\t\t\t\t<ng-template #optionsDropdown>\n\t\t\t\t\t<lu-dropdown-menu>\n\t\t\t\t\t\t<lu-dropdown-item>\n\t\t\t\t\t\t\t<button type=\"button\" lu-dropdown-action (click)=\"renameView.emit(view); popoverRef()?.close()\">\n\t\t\t\t\t\t\t\t<lu-icon icon=\"edit\" />\n\t\t\t\t\t\t\t\t{{ intl().renameView }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</lu-dropdown-item>\n\t\t\t\t\t\t<lu-dropdown-item>\n\t\t\t\t\t\t\t<button type=\"button\" lu-dropdown-action critical (click)=\"deleteView.emit(view); popoverRef()?.close()\">\n\t\t\t\t\t\t\t\t<lu-icon icon=\"trash\" />\n\t\t\t\t\t\t\t\t{{ intl().deleteView }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</lu-dropdown-item>\n\t\t\t\t\t</lu-dropdown-menu>\n\t\t\t\t</ng-template>\n\t\t\t</div>\n\t\t}\n\t</div>\n</ng-template>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterBarComponent } from './filter-bar.component';\n\n@Directive({\n\tselector: '[luFilterPillAddonBefore]',\n})\nexport class FilterPillAddonBeforeDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonBefore.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonBeforeDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n\n@Directive({\n\tselector: '[luFilterPillAddonAfter]',\n})\nexport class FilterPillAddonAfterDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonAfter.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonAfterDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId"],"mappings":"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"}