@agorapulse/ui-components 21.1.6-beta.1 → 21.1.7

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.
@@ -647,6 +647,13 @@ class SelectLabelMultipleComponent {
647
647
  roundedAvatar = input(true, ...(ngDevMode ? [{ debugName: "roundedAvatar" }] : /* istanbul ignore next */ []));
648
648
  bindNetwork = input('', ...(ngDevMode ? [{ debugName: "bindNetwork" }] : /* istanbul ignore next */ []));
649
649
  removeItem = output();
650
+ /**
651
+ * Parent ng-select, resolved through the DI chain of the `ng-multi-label-tmp` template.
652
+ * `optional` so the component still works when rendered outside a ng-select.
653
+ */
654
+ ngSelect = inject(NgSelectComponent, { optional: true });
655
+ /** True when the whole select is disabled/readonly — hides every tag/label remove button. */
656
+ selectDisabled = computed(() => this.ngSelect?.disabled() ?? false, ...(ngDevMode ? [{ debugName: "selectDisabled" }] : /* istanbul ignore next */ []));
650
657
  selectedLabels = computed(() => this.selectedItems().map(item => ({
651
658
  label: this.bindLabel() ? item[this.bindLabel()] : item,
652
659
  avatarUrl: this.bindAvatarUrl() ? item[this.bindAvatarUrl()] : '',
@@ -689,11 +696,11 @@ class SelectLabelMultipleComponent {
689
696
  this.hiddenCount.set(hiddenCount);
690
697
  });
691
698
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: SelectLabelMultipleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
692
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: SelectLabelMultipleComponent, isStandalone: true, selector: "ap-select-label-multiple", inputs: { displayType: { classPropertyName: "displayType", publicName: "displayType", isSignal: true, isRequired: false, transformFunction: null }, tagColor: { classPropertyName: "tagColor", publicName: "tagColor", isSignal: true, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: true, isRequired: true, transformFunction: null }, bindLabel: { classPropertyName: "bindLabel", publicName: "bindLabel", isSignal: true, isRequired: false, transformFunction: null }, bindValue: { classPropertyName: "bindValue", publicName: "bindValue", isSignal: true, isRequired: false, transformFunction: null }, bindAvatarUrl: { classPropertyName: "bindAvatarUrl", publicName: "bindAvatarUrl", isSignal: true, isRequired: false, transformFunction: null }, bindSymbolId: { classPropertyName: "bindSymbolId", publicName: "bindSymbolId", isSignal: true, isRequired: false, transformFunction: null }, roundedAvatar: { classPropertyName: "roundedAvatar", publicName: "roundedAvatar", isSignal: true, isRequired: false, transformFunction: null }, bindNetwork: { classPropertyName: "bindNetwork", publicName: "bindNetwork", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removeItem: "removeItem" }, viewQueries: [{ propertyName: "mainContainer", first: true, predicate: ["mainContainer"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "itemsElement", predicate: ["itemElement"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<div #mainContainer class=\"multiple-item\">\n @for (item of selectedLabels(); track trackByItem($index, item)) {\n @if (displayType() === 'label') {\n <ap-label\n #itemElement\n class=\"item\"\n color=\"blue\"\n [removable]=\"!item.value.disabled\"\n [content]=\"item.label\"\n (remove)=\"removeItem.emit(item.value)\" />\n }\n\n @if (displayType() === 'tag') {\n <ap-tag\n #itemElement\n class=\"item text-item\"\n [clearable]=\"!item.value.disabled\"\n [color]=\"tagColor()\"\n (clear)=\"removeItem.emit(item.value)\">\n @if (item.avatarUrl) {\n <ap-avatar\n [size]=\"16\"\n [rounded]=\"roundedAvatar()\"\n [profilePicture]=\"item.avatarUrl\"\n [username]=\"item.label\"\n [showInitials]=\"true\"\n [network]=\"item.network\"/>\n } @else if (item.symbolId) {\n <ap-symbol\n size=\"sm\"\n [attr.symbol-id]=\"item.symbolId\"\n [symbolId]=\"item.symbolId\" />\n }\n {{ item.label }}\n </ap-tag>\n }\n }\n</div>\n\n@if (hiddenCount() > 0) {\n <div class=\"remaining\">\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"text-item\"\n clearable=\"false\"\n [color]=\"tagColor()\">\n +{{ hiddenCount() }}\n </ap-tag>\n }\n @if (displayType() === 'label') {\n <ap-label\n color=\"blue\"\n removable=\"false\"\n [content]=\"'+' + hiddenCount()\" />\n }\n </div>\n}\n", styles: ["ap-select-label-multiple{display:flex;width:100%}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "ap-label", inputs: ["content", "selectorWidth", "removable"], outputs: ["remove"] }, { kind: "component", type: TagComponent, selector: "ap-tag", inputs: ["clearable", "add", "color", "mini"], outputs: ["clear", "added"] }, { kind: "component", type: AvatarComponent, selector: "ap-avatar", inputs: ["profilePicture", "alt", "network", "size", "username", "showInitials", "bigNetwork", "anonymous", "online", "youtubeAvatarMode", "rounded"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
699
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: SelectLabelMultipleComponent, isStandalone: true, selector: "ap-select-label-multiple", inputs: { displayType: { classPropertyName: "displayType", publicName: "displayType", isSignal: true, isRequired: false, transformFunction: null }, tagColor: { classPropertyName: "tagColor", publicName: "tagColor", isSignal: true, isRequired: false, transformFunction: null }, selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: true, isRequired: true, transformFunction: null }, bindLabel: { classPropertyName: "bindLabel", publicName: "bindLabel", isSignal: true, isRequired: false, transformFunction: null }, bindValue: { classPropertyName: "bindValue", publicName: "bindValue", isSignal: true, isRequired: false, transformFunction: null }, bindAvatarUrl: { classPropertyName: "bindAvatarUrl", publicName: "bindAvatarUrl", isSignal: true, isRequired: false, transformFunction: null }, bindSymbolId: { classPropertyName: "bindSymbolId", publicName: "bindSymbolId", isSignal: true, isRequired: false, transformFunction: null }, roundedAvatar: { classPropertyName: "roundedAvatar", publicName: "roundedAvatar", isSignal: true, isRequired: false, transformFunction: null }, bindNetwork: { classPropertyName: "bindNetwork", publicName: "bindNetwork", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removeItem: "removeItem" }, viewQueries: [{ propertyName: "mainContainer", first: true, predicate: ["mainContainer"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "itemsElement", predicate: ["itemElement"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<div #mainContainer class=\"multiple-item\">\n @for (item of selectedLabels(); track trackByItem($index, item)) {\n @if (displayType() === 'label') {\n <ap-label\n #itemElement\n class=\"item\"\n color=\"blue\"\n [removable]=\"!item.value.disabled && !selectDisabled()\"\n [content]=\"item.label\"\n (remove)=\"removeItem.emit(item.value)\" />\n }\n\n @if (displayType() === 'tag') {\n <ap-tag\n #itemElement\n class=\"item text-item\"\n [clearable]=\"!item.value.disabled && !selectDisabled()\"\n [color]=\"tagColor()\"\n (clear)=\"removeItem.emit(item.value)\">\n @if (item.avatarUrl) {\n <ap-avatar\n [size]=\"16\"\n [rounded]=\"roundedAvatar()\"\n [profilePicture]=\"item.avatarUrl\"\n [username]=\"item.label\"\n [showInitials]=\"true\"\n [network]=\"item.network\"/>\n } @else if (item.symbolId) {\n <ap-symbol\n size=\"sm\"\n [attr.symbol-id]=\"item.symbolId\"\n [symbolId]=\"item.symbolId\" />\n }\n {{ item.label }}\n </ap-tag>\n }\n }\n</div>\n\n@if (hiddenCount() > 0) {\n <div class=\"remaining\">\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"text-item\"\n clearable=\"false\"\n [color]=\"tagColor()\">\n +{{ hiddenCount() }}\n </ap-tag>\n }\n @if (displayType() === 'label') {\n <ap-label\n color=\"blue\"\n removable=\"false\"\n [content]=\"'+' + hiddenCount()\" />\n }\n </div>\n}\n", styles: ["ap-select-label-multiple{display:flex;width:100%}\n"], dependencies: [{ kind: "component", type: LabelComponent, selector: "ap-label", inputs: ["content", "selectorWidth", "removable"], outputs: ["remove"] }, { kind: "component", type: TagComponent, selector: "ap-tag", inputs: ["clearable", "add", "color", "mini"], outputs: ["clear", "added"] }, { kind: "component", type: AvatarComponent, selector: "ap-avatar", inputs: ["profilePicture", "alt", "network", "size", "username", "showInitials", "bigNetwork", "anonymous", "online", "youtubeAvatarMode", "rounded"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
693
700
  }
694
701
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: SelectLabelMultipleComponent, decorators: [{
695
702
  type: Component,
696
- args: [{ selector: 'ap-select-label-multiple', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LabelComponent, TagComponent, AvatarComponent, SymbolComponent], template: "<div #mainContainer class=\"multiple-item\">\n @for (item of selectedLabels(); track trackByItem($index, item)) {\n @if (displayType() === 'label') {\n <ap-label\n #itemElement\n class=\"item\"\n color=\"blue\"\n [removable]=\"!item.value.disabled\"\n [content]=\"item.label\"\n (remove)=\"removeItem.emit(item.value)\" />\n }\n\n @if (displayType() === 'tag') {\n <ap-tag\n #itemElement\n class=\"item text-item\"\n [clearable]=\"!item.value.disabled\"\n [color]=\"tagColor()\"\n (clear)=\"removeItem.emit(item.value)\">\n @if (item.avatarUrl) {\n <ap-avatar\n [size]=\"16\"\n [rounded]=\"roundedAvatar()\"\n [profilePicture]=\"item.avatarUrl\"\n [username]=\"item.label\"\n [showInitials]=\"true\"\n [network]=\"item.network\"/>\n } @else if (item.symbolId) {\n <ap-symbol\n size=\"sm\"\n [attr.symbol-id]=\"item.symbolId\"\n [symbolId]=\"item.symbolId\" />\n }\n {{ item.label }}\n </ap-tag>\n }\n }\n</div>\n\n@if (hiddenCount() > 0) {\n <div class=\"remaining\">\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"text-item\"\n clearable=\"false\"\n [color]=\"tagColor()\">\n +{{ hiddenCount() }}\n </ap-tag>\n }\n @if (displayType() === 'label') {\n <ap-label\n color=\"blue\"\n removable=\"false\"\n [content]=\"'+' + hiddenCount()\" />\n }\n </div>\n}\n", styles: ["ap-select-label-multiple{display:flex;width:100%}\n"] }]
703
+ args: [{ selector: 'ap-select-label-multiple', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LabelComponent, TagComponent, AvatarComponent, SymbolComponent], template: "<div #mainContainer class=\"multiple-item\">\n @for (item of selectedLabels(); track trackByItem($index, item)) {\n @if (displayType() === 'label') {\n <ap-label\n #itemElement\n class=\"item\"\n color=\"blue\"\n [removable]=\"!item.value.disabled && !selectDisabled()\"\n [content]=\"item.label\"\n (remove)=\"removeItem.emit(item.value)\" />\n }\n\n @if (displayType() === 'tag') {\n <ap-tag\n #itemElement\n class=\"item text-item\"\n [clearable]=\"!item.value.disabled && !selectDisabled()\"\n [color]=\"tagColor()\"\n (clear)=\"removeItem.emit(item.value)\">\n @if (item.avatarUrl) {\n <ap-avatar\n [size]=\"16\"\n [rounded]=\"roundedAvatar()\"\n [profilePicture]=\"item.avatarUrl\"\n [username]=\"item.label\"\n [showInitials]=\"true\"\n [network]=\"item.network\"/>\n } @else if (item.symbolId) {\n <ap-symbol\n size=\"sm\"\n [attr.symbol-id]=\"item.symbolId\"\n [symbolId]=\"item.symbolId\" />\n }\n {{ item.label }}\n </ap-tag>\n }\n }\n</div>\n\n@if (hiddenCount() > 0) {\n <div class=\"remaining\">\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"text-item\"\n clearable=\"false\"\n [color]=\"tagColor()\">\n +{{ hiddenCount() }}\n </ap-tag>\n }\n @if (displayType() === 'label') {\n <ap-label\n color=\"blue\"\n removable=\"false\"\n [content]=\"'+' + hiddenCount()\" />\n }\n </div>\n}\n", styles: ["ap-select-label-multiple{display:flex;width:100%}\n"] }]
697
704
  }], propDecorators: { displayType: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayType", required: false }] }], tagColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "tagColor", required: false }] }], selectedItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItems", required: true }] }], bindLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "bindLabel", required: false }] }], bindValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "bindValue", required: false }] }], bindAvatarUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "bindAvatarUrl", required: false }] }], bindSymbolId: [{ type: i0.Input, args: [{ isSignal: true, alias: "bindSymbolId", required: false }] }], roundedAvatar: [{ type: i0.Input, args: [{ isSignal: true, alias: "roundedAvatar", required: false }] }], bindNetwork: [{ type: i0.Input, args: [{ isSignal: true, alias: "bindNetwork", required: false }] }], removeItem: [{ type: i0.Output, args: ["removeItem"] }], mainContainer: [{ type: i0.ViewChild, args: ['mainContainer', { ...{ read: ElementRef }, isSignal: true }] }], itemsElement: [{ type: i0.ViewChildren, args: ['itemElement', { ...{ read: ElementRef }, isSignal: true }] }] } });
698
705
 
699
706
  class SelectLabelSingleComponent {
@@ -1 +1 @@
1
- {"version":3,"file":"agorapulse-ui-components-select.mjs","sources":["../../../libs/ui-components/select/src/dropdown-create-new/dropdown-create-new.component.ts","../../../libs/ui-components/select/src/dropdown-create-new/dropdown-create-new.component.html","../../../libs/ui-components/select/src/dropdown-group-item/dropdown-group-item.component.ts","../../../libs/ui-components/select/src/dropdown-group-item/dropdown-group-item.component.html","../../../libs/ui-components/select/src/select-base.directive.ts","../../../libs/ui-components/select/src/select-multiple.directive.ts","../../../libs/ui-components/select/src/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.ts","../../../libs/ui-components/select/src/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.html","../../../libs/ui-components/select/src/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.ts","../../../libs/ui-components/select/src/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.html","../../../libs/ui-components/select/src/dropdown-item-single-one-line/dropdown-item-single-one-line.component.ts","../../../libs/ui-components/select/src/dropdown-item-single-one-line/dropdown-item-single-one-line.component.html","../../../libs/ui-components/select/src/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.ts","../../../libs/ui-components/select/src/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.html","../../../libs/ui-components/select/src/dropdown-search-form/dropdown-search-form.component.ts","../../../libs/ui-components/select/src/dropdown-search-form/dropdown-search-form.component.html","../../../libs/ui-components/select/src/select-label-multiple/select-label-multiple.component.ts","../../../libs/ui-components/select/src/select-label-multiple/select-label-multiple.component.html","../../../libs/ui-components/select/src/select-label-single/select-label-single.component.ts","../../../libs/ui-components/select/src/select-label-single/select-label-single.component.html","../../../libs/ui-components/select/src/select-single.directive.ts","../../../libs/ui-components/select/src/ap-select.module.ts","../../../libs/ui-components/select/src/agorapulse-ui-components-select.ts"],"sourcesContent":["import { apPlus, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { ChangeDetectionStrategy, Component, inject, input, output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-create-new',\n templateUrl: './dropdown-create-new.component.html',\n styleUrls: ['./dropdown-create-new.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent],\n})\nexport class DropdownCreateNewComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n\n text = input('');\n searchTerm = input<string>();\n\n readonly createNew = output<string>();\n\n constructor() {\n this.symbolRegistry.registerSymbols([apPlus]);\n }\n\n onClick(): void {\n this.createNew.emit(this.searchTerm() ?? '');\n }\n}\n","<button\n class=\"create-new\"\n type=\"button\"\n (click)=\"onClick()\">\n <ap-symbol\n symbolId=\"plus\"\n size=\"sm\" />\n <span>\n {{ text() }}\n @if (searchTerm()) {\n {{ '&quot;' + searchTerm() + '&quot;' }}\n }\n </span>\n</button>\n","import { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\n\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { NgOption, NgSelectComponent } from '@ng-select/ng-select';\n\n@Component({\n selector: 'ap-dropdown-group-item',\n templateUrl: './dropdown-group-item.component.html',\n styleUrls: ['./dropdown-group-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [BadgeComponent, CheckboxComponent, TooltipDirective],\n})\nexport class DropdownGroupItemComponent {\n @Input({ required: true }) groupLabel!: string;\n @Input() groupTag?: string;\n @Input() selectableGroup = false;\n @Input({ required: true }) children: NgOption[] = [];\n @Input({\n required: true,\n })\n select!: NgSelectComponent;\n @Input() disabled = false;\n @Input() disabledTooltip?: string;\n\n isGroupIntermediate(): boolean {\n const selectedChildren = this.children.filter((child: NgOption) => child.selected && !child.disabled);\n const selectableChildren = this.children.filter((child: NgOption) => !child.disabled);\n return selectedChildren.length > 0 && selectedChildren.length < selectableChildren.length;\n }\n\n isGroupChecked(): boolean {\n return this.children.every((child: NgOption) => child.selected || child.disabled) && !this.isGroupDisabled();\n }\n\n isGroupDisabled(): boolean {\n return this.children.every((child: NgOption) => child.disabled);\n }\n\n onGroupClick(event: Event): void {\n if (!this.select?.maxSelectedItems()) {\n return; // Let ng-select handle it normally\n }\n\n event.stopPropagation();\n\n if (this.isGroupDisabled() || this.disabled) {\n return;\n }\n\n const selectedChildren = this.children.filter((child: NgOption) => child.selected);\n if (selectedChildren.length > 0) {\n for (const child of selectedChildren) {\n this.select.unselect(child);\n }\n } else {\n const remaining = this.select.maxSelectedItems() - this.select.itemsList.selectedItems.length;\n const selectableChildren = this.children.filter((child: NgOption) => !child.disabled && !child.selected);\n for (const child of selectableChildren.slice(0, remaining)) {\n this.select.select(child);\n }\n }\n }\n}\n","<div\n class=\"group\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"\n (click)=\"onGroupClick($event)\">\n @if (selectableGroup) {\n <ap-checkbox\n [name]=\"'option-group-selection-' + groupLabel\"\n [disabled]=\"isGroupDisabled() || disabled\"\n [indeterminate]=\"isGroupIntermediate()\"\n [checked]=\"isGroupChecked()\">\n <span class=\"group-label\">\n {{ groupLabel }}\n </span>\n @if (groupTag) {\n <ap-badge color=\"blue\">\n {{ groupTag }}\n </ap-badge>\n }\n </ap-checkbox>\n } @else {\n <span\n class=\"group-label\"\n [title]=\"groupLabel\">\n {{ groupLabel }}\n </span>\n @if (groupTag) {\n <ap-badge color=\"blue\">\n {{ groupTag }}\n </ap-badge>\n }\n }\n</div>\n","import { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { SymbolComponent, SymbolRegistry, apCheck, apPlus } from '@agorapulse/ui-symbol';\nimport { AfterViewInit, ComponentRef, Directive, ElementRef, Renderer2, ViewContainerRef, effect, inject, input } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ng-select[apSelect]',\n standalone: true,\n host: {\n class: 'ap-select',\n },\n})\nexport class SelectBaseDirective implements AfterViewInit {\n inlineLabel = input<string>();\n symbolId = input<string>();\n\n private readonly selectComponent = inject(NgSelectComponent);\n private el: ElementRef<HTMLElement> = inject(ElementRef);\n private renderer = inject(Renderer2);\n private viewContainerRef = inject(ViewContainerRef);\n private symbolRegistry = inject(SymbolRegistry);\n private symbolComponentRef?: ComponentRef<SymbolComponent>;\n private labelElement?: HTMLElement;\n\n constructor() {\n this.selectComponent.appendTo.set('body');\n this.selectComponent.searchable.set(false);\n this.selectComponent.clearable.set(false);\n this.selectComponent.markFirst.set(false);\n this.selectComponent.selectableGroupAsModel.set(false);\n this.selectComponent.tabIndex.set(0);\n this.symbolRegistry.registerSymbols([apCheck, apPlus]);\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n\n // Handle symbolId changes\n effect(() => {\n const symbolId = this.symbolId();\n this.removeInlineSymbol();\n if (symbolId) {\n this.addInlineSymbol(symbolId);\n }\n });\n\n // Handle inlineLabel changes\n effect(() => {\n const inlineLabel = this.inlineLabel();\n this.removeInlineLabel();\n if (inlineLabel) {\n this.addInlineLabel(inlineLabel);\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.optionTemplate()) {\n throw new Error('optionTemplate is required for apSelect');\n }\n if (this.selectComponent.groupBy() && !this.selectComponent.optgroupTemplate()) {\n throw new Error('optgroupTemplate is required for apSelect');\n }\n }\n\n private addInlineSymbol(symbolId: string): void {\n this.symbolComponentRef = this.viewContainerRef.createComponent(SymbolComponent);\n this.symbolComponentRef.setInput('symbolId', symbolId);\n this.symbolComponentRef.location.nativeElement.classList.add('inline-symbol');\n this.renderer.insertBefore(\n this.el.nativeElement.getElementsByClassName('ng-select-container').item(0),\n this.symbolComponentRef.location.nativeElement,\n this.el.nativeElement.getElementsByClassName('ng-value-container').item(0)\n );\n }\n\n private removeInlineSymbol(): void {\n if (this.symbolComponentRef) {\n this.symbolComponentRef.destroy();\n this.symbolComponentRef = undefined;\n }\n }\n\n private addInlineLabel(label: string): void {\n this.labelElement = this.renderer.createElement('label');\n this.renderer.setProperty(this.labelElement, 'textContent', label);\n this.renderer.addClass(this.labelElement, 'inline-label');\n this.renderer.insertBefore(\n this.el.nativeElement.getElementsByClassName('ng-select-container').item(0),\n this.labelElement,\n this.el.nativeElement.getElementsByClassName('ng-value-container').item(0)\n );\n }\n\n private removeInlineLabel(): void {\n if (this.labelElement) {\n this.renderer.removeChild(\n this.el.nativeElement.getElementsByClassName('ng-select-container').item(0),\n this.labelElement\n );\n this.labelElement = undefined;\n }\n }\n}\n","import { AfterViewInit, Directive, ElementRef, inject, input, OnDestroy } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { Subscription } from 'rxjs';\nimport { SelectBaseDirective } from './select-base.directive';\n\n@Directive({\n selector: 'ng-select[apSelectMultiple]',\n standalone: true,\n hostDirectives: [\n {\n directive: SelectBaseDirective,\n inputs: ['inlineLabel', 'symbolId'],\n },\n ],\n})\nexport class SelectMultipleDirective implements AfterViewInit, OnDestroy {\n private readonly selectComponent = inject(NgSelectComponent);\n private readonly elementRef = inject(ElementRef);\n private readonly originalDisabledState = new WeakMap<object, boolean>();\n\n maxItemsTooltip = input<string>();\n /** Pins items selected at open time to the top of the dropdown. Ignored when `groupBy` is set. */\n pinnedItemsEnabled = input(false);\n\n valueContainer: HTMLElement | null = null;\n\n private readonly subs = new Subscription();\n\n constructor() {\n this.selectComponent.multiple.set(true);\n this.selectComponent.closeOnSelect.set(false);\n this.selectComponent.searchable.set(true); // small hack to not closed the dropdown panel when clear an item in value container\n\n const updateMaxItemsDisabledState = () => this.updateMaxItemsDisabledState();\n this.subs.add(this.selectComponent.addEvent.subscribe(updateMaxItemsDisabledState));\n this.subs.add(this.selectComponent.removeEvent.subscribe(updateMaxItemsDisabledState));\n this.subs.add(this.selectComponent.clearEvent.subscribe(updateMaxItemsDisabledState));\n this.subs.add(this.selectComponent.openEvent.subscribe(() => this.pinSelectedAtTop()));\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.multiLabelTemplate()) {\n throw new Error('multiLabelTemplate is required for apSelectMultiple');\n }\n\n // Add click handler to toggle dropdown when clicking on the select container\n this.valueContainer = this.elementRef.nativeElement.querySelector('.ng-select-container');\n if (this.valueContainer) {\n this.valueContainer.addEventListener('mousedown', this.onMousedown, true);\n }\n\n this.updateMaxItemsDisabledState();\n }\n\n ngOnDestroy() {\n if (this.valueContainer) {\n this.valueContainer.removeEventListener('mousedown', this.onMousedown);\n }\n this.subs.unsubscribe();\n }\n\n onMousedown = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const clickedOnChipOrClearButton = target.closest('ap-label, ap-tag, .ng-clear-wrapper');\n if (clickedOnChipOrClearButton) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.selectComponent.isOpen()) {\n this.selectComponent.close();\n } else {\n this.selectComponent.open();\n }\n };\n\n // `.ap-option-pinned` persists for the panel's lifetime — deselecting keeps the option pinned until reopen.\n private pinSelectedAtTop(): void {\n if (!this.pinnedItemsEnabled() || this.selectComponent.groupBy()) return;\n queueMicrotask(() => {\n const panel = document.getElementById(this.selectComponent.dropdownId);\n const firstUnselected = panel?.querySelector('.ng-option:not(.ng-option-selected)');\n if (!panel || !firstUnselected) return;\n for (const selected of Array.from(panel.querySelectorAll<HTMLElement>('.ng-option-selected'))) {\n selected.classList.add('ap-option-pinned');\n firstUnselected.before(selected);\n }\n });\n }\n\n private updateMaxItemsDisabledState(): void {\n const max = this.selectComponent.maxSelectedItems();\n if (!max) {\n return;\n }\n\n const items = this.selectComponent.itemsList.items;\n for (const item of items) {\n if (item.children || this.originalDisabledState.has(item)) {\n continue;\n }\n this.originalDisabledState.set(item, item.disabled ?? false);\n }\n\n const maxReached = this.selectComponent.itemsList.selectedItems.length >= max;\n for (const item of items) {\n if (item.children) {\n continue;\n }\n const originallyDisabled = this.originalDisabledState.get(item) ?? false;\n item.disabled = originallyDisabled || (maxReached && !item.selected);\n }\n }\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolColor, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { ChangeDetectionStrategy, Component, HostListener, inject, Input, input, output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { SelectMultipleDirective } from '../select-multiple.directive';\n\n@Component({\n selector: 'ap-dropdown-item-multiple-one-line',\n templateUrl: './dropdown-item-multiple-one-line.component.html',\n styleUrls: ['./dropdown-item-multiple-one-line.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, CheckboxComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemMultipleOneLineComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n protected readonly selectMultiple = inject(SelectMultipleDirective, { optional: true });\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n }\n\n @Input({ required: true }) text!: string;\n @Input({ required: true }) selected!: boolean;\n @Input() indeterminate = false;\n @Input({ required: true }) htmlId!: string;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() onlyEnabled = false;\n @Input() onlyText = 'Only';\n isFeatureLocked = input<boolean>(false);\n roundedAvatar = input(true);\n network = input<AvatarNetwork>();\n symbolColor = input<SymbolColor | string>();\n symbolTooltipText = input<string>();\n\n selectOnly = output<void>();\n selectionChange = output<boolean>();\n lockedFeatureClicked = output();\n\n @ViewChild(CheckboxComponent) checkbox!: CheckboxComponent;\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n\n onSelectOnly() {\n this.selectOnly.emit();\n this.checkbox.focus();\n }\n\n onCheckboxChange(checked: boolean) {\n if (typeof checked === 'boolean') {\n this.selectionChange.emit(checked);\n }\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip ?? selectMultiple?.maxItemsTooltip()\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div\n class=\"option multiple\"\n [class.feature-locked-option]=\"isFeatureLocked()\">\n <ap-checkbox\n #checkbox\n [checked]=\"selected\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled || isFeatureLocked()\"\n [name]=\"'option-selection-' + htmlId\"\n (change)=\"onCheckboxChange($event)\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\"\n [network]=\"network()\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\"\n [color]=\"symbolColor() ?? ''\"\n [apTooltip]=\"symbolTooltipText() ? symbolTooltipText() : undefined\" />\n }\n <span\n class=\"option-item\"\n [class.feature-locked-label]=\"isFeatureLocked()\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n </ap-checkbox>\n\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\" />\n }\n\n @if (onlyEnabled && !disabled && !isFeatureLocked()) {\n <button\n class=\"standalone-link\"\n type=\"button\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); onSelectOnly()\">\n {{ onlyText }}\n </button>\n }\n</div>\n\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent, SymbolColor, SymbolRegistry } from '@agorapulse/ui-symbol';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n inject,\n input,\n Input,\n output,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SelectMultipleDirective } from '../select-multiple.directive';\n\n@Component({\n selector: 'ap-dropdown-item-multiple-two-lines',\n templateUrl: './dropdown-item-multiple-two-lines.component.html',\n styleUrls: ['./dropdown-item-multiple-two-lines.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, CheckboxComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemMultipleTwoLinesComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n protected readonly selectMultiple = inject(SelectMultipleDirective, { optional: true });\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n }\n\n @Input({ required: true }) text!: string;\n @Input({ required: true }) caption!: string;\n @Input({ required: true }) selected!: boolean;\n @Input({ required: true }) htmlId!: string;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() onlyEnabled = false;\n @Input() onlyText = 'Only';\n isFeatureLocked = input<boolean>(false);\n roundedAvatar = input(true);\n network = input<AvatarNetwork>();\n symbolColor = input<SymbolColor | string>();\n symbolTooltipText = input<string>();\n\n @Output() selectOnly = new EventEmitter<void>();\n lockedFeatureClicked = output();\n\n @ViewChild(CheckboxComponent) checkbox!: CheckboxComponent;\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n\n onSelectOnly() {\n this.selectOnly.emit();\n this.checkbox.focus();\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip ?? selectMultiple?.maxItemsTooltip()\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option multiple with-caption\" [class.feature-locked-option]=\"isFeatureLocked()\">\n <ap-checkbox\n [checked]=\"selected\"\n [disabled]=\"disabled || isFeatureLocked()\"\n [name]=\"'option-selection-' + htmlId\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\"\n [network]=\"network()\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\"\n [color]=\"symbolColor() ?? ''\"\n [apTooltip]=\"symbolTooltipText() ? symbolTooltipText() : undefined\" />\n }\n <div class=\"texts\" [class.feature-locked-label]=\"isFeatureLocked()\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n </div>\n <span\n class=\"caption\"\n [title]=\"caption\">\n {{ caption }}\n </span>\n </div>\n\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n }\n\n @if (onlyEnabled && !disabled) {\n <button\n class=\"standalone-link\"\n type=\"button\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); onSelectOnly()\">\n {{ onlyText }}\n </button>\n }\n </ap-checkbox>\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\n\nimport { ChangeDetectionStrategy, Component, HostListener, inject, input, Input, output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-single-one-line',\n templateUrl: './dropdown-item-single-one-line.component.html',\n styleUrls: ['./dropdown-item-single-one-line.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemSingleOneLineComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n }\n\n @Input({ required: true }) text!: string;\n @Input({ required: true }) selected!: boolean;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() showAvatarInitials = true;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() network: AvatarNetwork | undefined = undefined;\n roundedAvatar = input(true);\n isFeatureLocked = input<boolean>(false);\n\n lockedFeatureClicked = output();\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option\" [class.feature-locked-option]=\"isFeatureLocked()\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"showAvatarInitials\"\n [network]=\"network\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <span\n class=\"option-item\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n } @else if (selected) {\n <ap-symbol\n class=\"option-selected\"\n symbolId=\"check\"\n color=\"electric-blue\"\n size=\"sm\" />\n }\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\n\nimport { ChangeDetectionStrategy, Component, HostListener, inject, input, Input, output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-single-two-lines',\n templateUrl: './dropdown-item-single-two-lines.component.html',\n styleUrls: ['./dropdown-item-single-two-lines.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemSingleTwoLinesComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n }\n\n @Input({ required: true }) text!: string;\n @Input({ required: true }) caption!: string;\n @Input({ required: true }) selected!: boolean;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() network: AvatarNetwork | undefined = undefined;\n roundedAvatar = input(true);\n isFeatureLocked = input<boolean>(false);\n\n lockedFeatureClicked = output();\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option with-caption\" [class.feature-locked-option]=\"isFeatureLocked()\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\"\n [network]=\"network\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <div class=\"texts\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n </div>\n <span\n class=\"caption\"\n [title]=\"caption\">\n {{ caption }}\n </span>\n </div>\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n } @else if (selected) {\n <ap-symbol\n class=\"option-selected\"\n symbolId=\"check\"\n color=\"electric-blue\"\n size=\"sm\" />\n }\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { InputSearchComponent } from '@agorapulse/ui-components/input-search';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n OutputRefSubscription,\n ViewChild,\n ViewEncapsulation,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { BehaviorSubject, filter } from 'rxjs';\nimport { DropdownCreateNewComponent } from '../dropdown-create-new/dropdown-create-new.component';\n\n/** Search input for an ng-select dropdown — place inside its `ng-header-tmp`. */\n@Component({\n selector: 'ap-dropdown-search-form',\n templateUrl: './dropdown-search-form.component.html',\n styleUrls: ['./dropdown-search-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, InputSearchComponent, DropdownCreateNewComponent],\n})\nexport class DropdownSearchFormComponent implements AfterViewInit, OnDestroy {\n @Input() searchPlaceholder = '';\n @Input() createNewEnabled = false;\n @Input() createText = 'Create';\n @Input({\n required: true,\n })\n select!: NgSelectComponent;\n @ViewChild(InputSearchComponent) inputSearch!: InputSearchComponent;\n\n @Output() createNew = new EventEmitter<string>();\n\n searchTermSignal = signal<string>('');\n searchTerm$ = new BehaviorSubject<string>('');\n submitSubscription: OutputRefSubscription | null = null;\n\n constructor() {\n this.searchTerm$\n .pipe(\n filter(() => !!this.select),\n takeUntilDestroyed()\n )\n .subscribe(term => {\n this.searchTermSignal.set(term);\n this.select.filter(term);\n });\n }\n\n ngOnDestroy(): void {\n this.submitSubscription?.unsubscribe();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.inputSearch.focusInput();\n this.registerKeyboardSubmit();\n }, 100);\n }\n\n /**\n * Register the keyboard submit event allowing to press enter to select the first item found.\n * And escape to close the dropdown. This is useful for keyboard navigation.\n * Use case: search for an item by typing the first characters and press enter to select it.\n * Furthermore: arrow keys currently don't work in the dropdown search form.\n */\n registerKeyboardSubmit() {\n this.submitSubscription?.unsubscribe();\n this.submitSubscription = this.inputSearch.keyup.subscribe(event => {\n if (event.key === 'Enter') {\n this.select.select(this.select.itemsList.filteredItems[0]);\n } else if (event.key === 'Escape') {\n this.select.close();\n }\n });\n }\n}\n","<ap-input-search\n class=\"dropdown-search-input\"\n [ngModel]=\"searchTermSignal()\"\n [placeholder]=\"searchPlaceholder\"\n (ngModelChange)=\"searchTerm$.next($event)\" />\n\n@if (createNewEnabled) {\n <ap-dropdown-create-new\n [text]=\"createText\"\n [searchTerm]=\"searchTermSignal()\"\n (createNew)=\"createNew.emit($event)\" />\n}\n\n","import { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { LabelComponent } from '@agorapulse/ui-components/labels';\nimport { TagColor, TagComponent } from '@agorapulse/ui-components/tag';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterRenderEffect,\n computed,\n input,\n output,\n signal,\n viewChild,\n viewChildren,\n} from '@angular/core';\n\nimport { SelectLabelMultipleDisplayType } from '../select.model';\n\n@Component({\n selector: 'ap-select-label-multiple',\n templateUrl: './select-label-multiple.component.html',\n styleUrls: ['./select-label-multiple.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelComponent, TagComponent, AvatarComponent, SymbolComponent],\n})\nexport class SelectLabelMultipleComponent {\n displayType = input<SelectLabelMultipleDisplayType>('label');\n tagColor = input<TagColor>('grey');\n selectedItems = input.required<any[]>();\n bindLabel = input('');\n bindValue = input('');\n bindAvatarUrl = input('');\n bindSymbolId = input('');\n roundedAvatar = input(true);\n bindNetwork = input('');\n\n removeItem = output<any>();\n\n selectedLabels = computed(() =>\n this.selectedItems().map(item => ({\n label: this.bindLabel() ? item[this.bindLabel()] : item,\n avatarUrl: this.bindAvatarUrl() ? item[this.bindAvatarUrl()] : '',\n symbolId: this.bindSymbolId() ? item[this.bindSymbolId()] : null,\n value: item,\n network: this.bindNetwork() ? item[this.bindNetwork()] : undefined,\n }))\n );\n\n hiddenCount = signal(0);\n\n trackByItem = (_: number, item: any) => (this.bindValue() ? item.value[this.bindValue()] : item.value);\n\n mainContainer = viewChild.required('mainContainer', { read: ElementRef });\n itemsElement = viewChildren('itemElement', { read: ElementRef });\n\n private responsiveLayout = afterRenderEffect(() => {\n const itemRefs = this.itemsElement();\n if (!itemRefs.length) {\n this.hiddenCount.set(0);\n return;\n }\n\n const containerEl = this.mainContainer().nativeElement as HTMLElement;\n const containerWidth = (containerEl.parentElement?.clientWidth ?? 0) - 30;\n if (containerWidth <= 0) return;\n\n // Reset maxWidth so items aren't constrained by a previous pass\n containerEl.style.maxWidth = '';\n\n let totalWidth = 0;\n let hiddenCount = 0;\n const itemGap = 4;\n\n for (const ref of itemRefs) {\n const el = ref.nativeElement as HTMLElement;\n const itemWidth = el.getBoundingClientRect().width + itemGap;\n\n if (totalWidth + itemWidth < containerWidth && !hiddenCount) {\n totalWidth += itemWidth;\n el.style.visibility = 'visible';\n } else {\n el.style.visibility = 'hidden';\n hiddenCount++;\n }\n }\n\n containerEl.style.maxWidth = `${totalWidth}px`;\n this.hiddenCount.set(hiddenCount);\n });\n}\n","<div #mainContainer class=\"multiple-item\">\n @for (item of selectedLabels(); track trackByItem($index, item)) {\n @if (displayType() === 'label') {\n <ap-label\n #itemElement\n class=\"item\"\n color=\"blue\"\n [removable]=\"!item.value.disabled\"\n [content]=\"item.label\"\n (remove)=\"removeItem.emit(item.value)\" />\n }\n\n @if (displayType() === 'tag') {\n <ap-tag\n #itemElement\n class=\"item text-item\"\n [clearable]=\"!item.value.disabled\"\n [color]=\"tagColor()\"\n (clear)=\"removeItem.emit(item.value)\">\n @if (item.avatarUrl) {\n <ap-avatar\n [size]=\"16\"\n [rounded]=\"roundedAvatar()\"\n [profilePicture]=\"item.avatarUrl\"\n [username]=\"item.label\"\n [showInitials]=\"true\"\n [network]=\"item.network\"/>\n } @else if (item.symbolId) {\n <ap-symbol\n size=\"sm\"\n [attr.symbol-id]=\"item.symbolId\"\n [symbolId]=\"item.symbolId\" />\n }\n {{ item.label }}\n </ap-tag>\n }\n }\n</div>\n\n@if (hiddenCount() > 0) {\n <div class=\"remaining\">\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"text-item\"\n clearable=\"false\"\n [color]=\"tagColor()\">\n +{{ hiddenCount() }}\n </ap-tag>\n }\n @if (displayType() === 'label') {\n <ap-label\n color=\"blue\"\n removable=\"false\"\n [content]=\"'+' + hiddenCount()\" />\n }\n </div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { LabelComponent } from '@agorapulse/ui-components/labels';\nimport { TagComponent } from '@agorapulse/ui-components/tag';\n\nimport { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { SelectLabelSingleDisplayType } from '../select.model';\n\n@Component({\n selector: 'ap-select-label-single',\n templateUrl: './select-label-single.component.html',\n styleUrls: ['./select-label-single.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelComponent, TagComponent, AvatarComponent],\n})\nexport class SelectLabelSingleComponent {\n displayType = input<SelectLabelSingleDisplayType>('text');\n\n label = input.required<string>();\n avatarUrl = input<string>();\n network = input<AvatarNetwork | undefined>(undefined);\n showAvatarInitials = input(true);\n\n roundedAvatar = input(true);\n}\n","@switch (displayType()) {\n @case ('text') {\n <span\n class=\"text-item\"\n [title]=\"label()\">\n {{ label() }}\n </span>\n }\n @case ('label') {\n <ap-label\n color=\"blue\"\n [removable]=\"false\"\n [content]=\"label()\" />\n }\n @case ('tag') {\n <ap-tag\n class=\"text-item\"\n color=\"grey\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"16\"\n [username]=\"label()\"\n [showInitials]=\"true\"\n [profilePicture]=\"avatarUrl()\" />\n }\n {{ label() }}\n </ap-tag>\n }\n @case ('withAvatar') {\n @if (avatarUrl()) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [username]=\"label()\"\n [showInitials]=\"showAvatarInitials()\"\n [profilePicture]=\"avatarUrl()\"\n [network]=\"network()\" />\n }\n <span class=\"text-item\">\n {{ label() }}\n </span>\n }\n}\n","import { AfterViewInit, Directive, inject } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { SelectBaseDirective } from './select-base.directive';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ng-select[apSelectSingle]',\n standalone: true,\n hostDirectives: [\n {\n directive: SelectBaseDirective,\n inputs: ['inlineLabel', 'symbolId'],\n },\n ],\n})\nexport class SelectSingleDirective implements AfterViewInit {\n private readonly selectComponent = inject(NgSelectComponent);\n\n constructor() {\n this.selectComponent.multiple.set(false);\n this.selectComponent.closeOnSelect.set(true);\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.labelTemplate()) {\n throw new Error('labelTemplate is required for apSelectSingle');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { DropdownCreateNewComponent } from './dropdown-create-new/dropdown-create-new.component';\nimport { DropdownGroupItemComponent } from './dropdown-group-item/dropdown-group-item.component';\nimport { DropdownItemMultipleOneLineComponent } from './dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component';\nimport { DropdownItemMultipleTwoLinesComponent } from './dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component';\nimport { DropdownItemSingleOneLineComponent } from './dropdown-item-single-one-line/dropdown-item-single-one-line.component';\nimport { DropdownItemSingleTwoLinesComponent } from './dropdown-item-single-two-lines/dropdown-item-single-two-lines.component';\nimport { DropdownSearchFormComponent } from './dropdown-search-form/dropdown-search-form.component';\nimport { SelectLabelMultipleComponent } from './select-label-multiple/select-label-multiple.component';\nimport { SelectLabelSingleComponent } from './select-label-single/select-label-single.component';\nimport { SelectMultipleDirective } from './select-multiple.directive';\nimport { SelectSingleDirective } from './select-single.directive';\n\n@NgModule({\n imports: [\n SelectMultipleDirective,\n SelectSingleDirective,\n DropdownItemSingleOneLineComponent,\n DropdownItemSingleTwoLinesComponent,\n DropdownItemMultipleOneLineComponent,\n DropdownItemMultipleTwoLinesComponent,\n SelectLabelSingleComponent,\n SelectLabelMultipleComponent,\n DropdownSearchFormComponent,\n DropdownCreateNewComponent,\n DropdownGroupItemComponent,\n NgSelectModule,\n ],\n exports: [\n SelectMultipleDirective,\n SelectSingleDirective,\n DropdownItemSingleOneLineComponent,\n DropdownItemSingleTwoLinesComponent,\n DropdownItemMultipleOneLineComponent,\n DropdownItemMultipleTwoLinesComponent,\n SelectLabelSingleComponent,\n SelectLabelMultipleComponent,\n DropdownSearchFormComponent,\n DropdownCreateNewComponent,\n DropdownGroupItemComponent,\n NgSelectModule,\n ],\n})\nexport class ApSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.SelectBaseDirective"],"mappings":"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"}
1
+ {"version":3,"file":"agorapulse-ui-components-select.mjs","sources":["../../../libs/ui-components/select/src/dropdown-create-new/dropdown-create-new.component.ts","../../../libs/ui-components/select/src/dropdown-create-new/dropdown-create-new.component.html","../../../libs/ui-components/select/src/dropdown-group-item/dropdown-group-item.component.ts","../../../libs/ui-components/select/src/dropdown-group-item/dropdown-group-item.component.html","../../../libs/ui-components/select/src/select-base.directive.ts","../../../libs/ui-components/select/src/select-multiple.directive.ts","../../../libs/ui-components/select/src/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.ts","../../../libs/ui-components/select/src/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.html","../../../libs/ui-components/select/src/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.ts","../../../libs/ui-components/select/src/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.html","../../../libs/ui-components/select/src/dropdown-item-single-one-line/dropdown-item-single-one-line.component.ts","../../../libs/ui-components/select/src/dropdown-item-single-one-line/dropdown-item-single-one-line.component.html","../../../libs/ui-components/select/src/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.ts","../../../libs/ui-components/select/src/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.html","../../../libs/ui-components/select/src/dropdown-search-form/dropdown-search-form.component.ts","../../../libs/ui-components/select/src/dropdown-search-form/dropdown-search-form.component.html","../../../libs/ui-components/select/src/select-label-multiple/select-label-multiple.component.ts","../../../libs/ui-components/select/src/select-label-multiple/select-label-multiple.component.html","../../../libs/ui-components/select/src/select-label-single/select-label-single.component.ts","../../../libs/ui-components/select/src/select-label-single/select-label-single.component.html","../../../libs/ui-components/select/src/select-single.directive.ts","../../../libs/ui-components/select/src/ap-select.module.ts","../../../libs/ui-components/select/src/agorapulse-ui-components-select.ts"],"sourcesContent":["import { apPlus, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { ChangeDetectionStrategy, Component, inject, input, output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-create-new',\n templateUrl: './dropdown-create-new.component.html',\n styleUrls: ['./dropdown-create-new.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent],\n})\nexport class DropdownCreateNewComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n\n text = input('');\n searchTerm = input<string>();\n\n readonly createNew = output<string>();\n\n constructor() {\n this.symbolRegistry.registerSymbols([apPlus]);\n }\n\n onClick(): void {\n this.createNew.emit(this.searchTerm() ?? '');\n }\n}\n","<button\n class=\"create-new\"\n type=\"button\"\n (click)=\"onClick()\">\n <ap-symbol\n symbolId=\"plus\"\n size=\"sm\" />\n <span>\n {{ text() }}\n @if (searchTerm()) {\n {{ '&quot;' + searchTerm() + '&quot;' }}\n }\n </span>\n</button>\n","import { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\n\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { NgOption, NgSelectComponent } from '@ng-select/ng-select';\n\n@Component({\n selector: 'ap-dropdown-group-item',\n templateUrl: './dropdown-group-item.component.html',\n styleUrls: ['./dropdown-group-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [BadgeComponent, CheckboxComponent, TooltipDirective],\n})\nexport class DropdownGroupItemComponent {\n @Input({ required: true }) groupLabel!: string;\n @Input() groupTag?: string;\n @Input() selectableGroup = false;\n @Input({ required: true }) children: NgOption[] = [];\n @Input({\n required: true,\n })\n select!: NgSelectComponent;\n @Input() disabled = false;\n @Input() disabledTooltip?: string;\n\n isGroupIntermediate(): boolean {\n const selectedChildren = this.children.filter((child: NgOption) => child.selected && !child.disabled);\n const selectableChildren = this.children.filter((child: NgOption) => !child.disabled);\n return selectedChildren.length > 0 && selectedChildren.length < selectableChildren.length;\n }\n\n isGroupChecked(): boolean {\n return this.children.every((child: NgOption) => child.selected || child.disabled) && !this.isGroupDisabled();\n }\n\n isGroupDisabled(): boolean {\n return this.children.every((child: NgOption) => child.disabled);\n }\n\n onGroupClick(event: Event): void {\n if (!this.select?.maxSelectedItems()) {\n return; // Let ng-select handle it normally\n }\n\n event.stopPropagation();\n\n if (this.isGroupDisabled() || this.disabled) {\n return;\n }\n\n const selectedChildren = this.children.filter((child: NgOption) => child.selected);\n if (selectedChildren.length > 0) {\n for (const child of selectedChildren) {\n this.select.unselect(child);\n }\n } else {\n const remaining = this.select.maxSelectedItems() - this.select.itemsList.selectedItems.length;\n const selectableChildren = this.children.filter((child: NgOption) => !child.disabled && !child.selected);\n for (const child of selectableChildren.slice(0, remaining)) {\n this.select.select(child);\n }\n }\n }\n}\n","<div\n class=\"group\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"\n (click)=\"onGroupClick($event)\">\n @if (selectableGroup) {\n <ap-checkbox\n [name]=\"'option-group-selection-' + groupLabel\"\n [disabled]=\"isGroupDisabled() || disabled\"\n [indeterminate]=\"isGroupIntermediate()\"\n [checked]=\"isGroupChecked()\">\n <span class=\"group-label\">\n {{ groupLabel }}\n </span>\n @if (groupTag) {\n <ap-badge color=\"blue\">\n {{ groupTag }}\n </ap-badge>\n }\n </ap-checkbox>\n } @else {\n <span\n class=\"group-label\"\n [title]=\"groupLabel\">\n {{ groupLabel }}\n </span>\n @if (groupTag) {\n <ap-badge color=\"blue\">\n {{ groupTag }}\n </ap-badge>\n }\n }\n</div>\n","import { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { SymbolComponent, SymbolRegistry, apCheck, apPlus } from '@agorapulse/ui-symbol';\nimport { AfterViewInit, ComponentRef, Directive, ElementRef, Renderer2, ViewContainerRef, effect, inject, input } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ng-select[apSelect]',\n standalone: true,\n host: {\n class: 'ap-select',\n },\n})\nexport class SelectBaseDirective implements AfterViewInit {\n inlineLabel = input<string>();\n symbolId = input<string>();\n\n private readonly selectComponent = inject(NgSelectComponent);\n private el: ElementRef<HTMLElement> = inject(ElementRef);\n private renderer = inject(Renderer2);\n private viewContainerRef = inject(ViewContainerRef);\n private symbolRegistry = inject(SymbolRegistry);\n private symbolComponentRef?: ComponentRef<SymbolComponent>;\n private labelElement?: HTMLElement;\n\n constructor() {\n this.selectComponent.appendTo.set('body');\n this.selectComponent.searchable.set(false);\n this.selectComponent.clearable.set(false);\n this.selectComponent.markFirst.set(false);\n this.selectComponent.selectableGroupAsModel.set(false);\n this.selectComponent.tabIndex.set(0);\n this.symbolRegistry.registerSymbols([apCheck, apPlus]);\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n\n // Handle symbolId changes\n effect(() => {\n const symbolId = this.symbolId();\n this.removeInlineSymbol();\n if (symbolId) {\n this.addInlineSymbol(symbolId);\n }\n });\n\n // Handle inlineLabel changes\n effect(() => {\n const inlineLabel = this.inlineLabel();\n this.removeInlineLabel();\n if (inlineLabel) {\n this.addInlineLabel(inlineLabel);\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.optionTemplate()) {\n throw new Error('optionTemplate is required for apSelect');\n }\n if (this.selectComponent.groupBy() && !this.selectComponent.optgroupTemplate()) {\n throw new Error('optgroupTemplate is required for apSelect');\n }\n }\n\n private addInlineSymbol(symbolId: string): void {\n this.symbolComponentRef = this.viewContainerRef.createComponent(SymbolComponent);\n this.symbolComponentRef.setInput('symbolId', symbolId);\n this.symbolComponentRef.location.nativeElement.classList.add('inline-symbol');\n this.renderer.insertBefore(\n this.el.nativeElement.getElementsByClassName('ng-select-container').item(0),\n this.symbolComponentRef.location.nativeElement,\n this.el.nativeElement.getElementsByClassName('ng-value-container').item(0)\n );\n }\n\n private removeInlineSymbol(): void {\n if (this.symbolComponentRef) {\n this.symbolComponentRef.destroy();\n this.symbolComponentRef = undefined;\n }\n }\n\n private addInlineLabel(label: string): void {\n this.labelElement = this.renderer.createElement('label');\n this.renderer.setProperty(this.labelElement, 'textContent', label);\n this.renderer.addClass(this.labelElement, 'inline-label');\n this.renderer.insertBefore(\n this.el.nativeElement.getElementsByClassName('ng-select-container').item(0),\n this.labelElement,\n this.el.nativeElement.getElementsByClassName('ng-value-container').item(0)\n );\n }\n\n private removeInlineLabel(): void {\n if (this.labelElement) {\n this.renderer.removeChild(\n this.el.nativeElement.getElementsByClassName('ng-select-container').item(0),\n this.labelElement\n );\n this.labelElement = undefined;\n }\n }\n}\n","import { AfterViewInit, Directive, ElementRef, inject, input, OnDestroy } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { Subscription } from 'rxjs';\nimport { SelectBaseDirective } from './select-base.directive';\n\n@Directive({\n selector: 'ng-select[apSelectMultiple]',\n standalone: true,\n hostDirectives: [\n {\n directive: SelectBaseDirective,\n inputs: ['inlineLabel', 'symbolId'],\n },\n ],\n})\nexport class SelectMultipleDirective implements AfterViewInit, OnDestroy {\n private readonly selectComponent = inject(NgSelectComponent);\n private readonly elementRef = inject(ElementRef);\n private readonly originalDisabledState = new WeakMap<object, boolean>();\n\n maxItemsTooltip = input<string>();\n /** Pins items selected at open time to the top of the dropdown. Ignored when `groupBy` is set. */\n pinnedItemsEnabled = input(false);\n\n valueContainer: HTMLElement | null = null;\n\n private readonly subs = new Subscription();\n\n constructor() {\n this.selectComponent.multiple.set(true);\n this.selectComponent.closeOnSelect.set(false);\n this.selectComponent.searchable.set(true); // small hack to not closed the dropdown panel when clear an item in value container\n\n const updateMaxItemsDisabledState = () => this.updateMaxItemsDisabledState();\n this.subs.add(this.selectComponent.addEvent.subscribe(updateMaxItemsDisabledState));\n this.subs.add(this.selectComponent.removeEvent.subscribe(updateMaxItemsDisabledState));\n this.subs.add(this.selectComponent.clearEvent.subscribe(updateMaxItemsDisabledState));\n this.subs.add(this.selectComponent.openEvent.subscribe(() => this.pinSelectedAtTop()));\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.multiLabelTemplate()) {\n throw new Error('multiLabelTemplate is required for apSelectMultiple');\n }\n\n // Add click handler to toggle dropdown when clicking on the select container\n this.valueContainer = this.elementRef.nativeElement.querySelector('.ng-select-container');\n if (this.valueContainer) {\n this.valueContainer.addEventListener('mousedown', this.onMousedown, true);\n }\n\n this.updateMaxItemsDisabledState();\n }\n\n ngOnDestroy() {\n if (this.valueContainer) {\n this.valueContainer.removeEventListener('mousedown', this.onMousedown);\n }\n this.subs.unsubscribe();\n }\n\n onMousedown = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const clickedOnChipOrClearButton = target.closest('ap-label, ap-tag, .ng-clear-wrapper');\n if (clickedOnChipOrClearButton) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.selectComponent.isOpen()) {\n this.selectComponent.close();\n } else {\n this.selectComponent.open();\n }\n };\n\n // `.ap-option-pinned` persists for the panel's lifetime — deselecting keeps the option pinned until reopen.\n private pinSelectedAtTop(): void {\n if (!this.pinnedItemsEnabled() || this.selectComponent.groupBy()) return;\n queueMicrotask(() => {\n const panel = document.getElementById(this.selectComponent.dropdownId);\n const firstUnselected = panel?.querySelector('.ng-option:not(.ng-option-selected)');\n if (!panel || !firstUnselected) return;\n for (const selected of Array.from(panel.querySelectorAll<HTMLElement>('.ng-option-selected'))) {\n selected.classList.add('ap-option-pinned');\n firstUnselected.before(selected);\n }\n });\n }\n\n private updateMaxItemsDisabledState(): void {\n const max = this.selectComponent.maxSelectedItems();\n if (!max) {\n return;\n }\n\n const items = this.selectComponent.itemsList.items;\n for (const item of items) {\n if (item.children || this.originalDisabledState.has(item)) {\n continue;\n }\n this.originalDisabledState.set(item, item.disabled ?? false);\n }\n\n const maxReached = this.selectComponent.itemsList.selectedItems.length >= max;\n for (const item of items) {\n if (item.children) {\n continue;\n }\n const originallyDisabled = this.originalDisabledState.get(item) ?? false;\n item.disabled = originallyDisabled || (maxReached && !item.selected);\n }\n }\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolColor, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { ChangeDetectionStrategy, Component, HostListener, inject, Input, input, output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { SelectMultipleDirective } from '../select-multiple.directive';\n\n@Component({\n selector: 'ap-dropdown-item-multiple-one-line',\n templateUrl: './dropdown-item-multiple-one-line.component.html',\n styleUrls: ['./dropdown-item-multiple-one-line.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, CheckboxComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemMultipleOneLineComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n protected readonly selectMultiple = inject(SelectMultipleDirective, { optional: true });\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n }\n\n @Input({ required: true }) text!: string;\n @Input({ required: true }) selected!: boolean;\n @Input() indeterminate = false;\n @Input({ required: true }) htmlId!: string;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() onlyEnabled = false;\n @Input() onlyText = 'Only';\n isFeatureLocked = input<boolean>(false);\n roundedAvatar = input(true);\n network = input<AvatarNetwork>();\n symbolColor = input<SymbolColor | string>();\n symbolTooltipText = input<string>();\n\n selectOnly = output<void>();\n selectionChange = output<boolean>();\n lockedFeatureClicked = output();\n\n @ViewChild(CheckboxComponent) checkbox!: CheckboxComponent;\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n\n onSelectOnly() {\n this.selectOnly.emit();\n this.checkbox.focus();\n }\n\n onCheckboxChange(checked: boolean) {\n if (typeof checked === 'boolean') {\n this.selectionChange.emit(checked);\n }\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip ?? selectMultiple?.maxItemsTooltip()\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div\n class=\"option multiple\"\n [class.feature-locked-option]=\"isFeatureLocked()\">\n <ap-checkbox\n #checkbox\n [checked]=\"selected\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled || isFeatureLocked()\"\n [name]=\"'option-selection-' + htmlId\"\n (change)=\"onCheckboxChange($event)\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\"\n [network]=\"network()\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\"\n [color]=\"symbolColor() ?? ''\"\n [apTooltip]=\"symbolTooltipText() ? symbolTooltipText() : undefined\" />\n }\n <span\n class=\"option-item\"\n [class.feature-locked-label]=\"isFeatureLocked()\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n </ap-checkbox>\n\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\" />\n }\n\n @if (onlyEnabled && !disabled && !isFeatureLocked()) {\n <button\n class=\"standalone-link\"\n type=\"button\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); onSelectOnly()\">\n {{ onlyText }}\n </button>\n }\n</div>\n\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { CheckboxComponent } from '@agorapulse/ui-components/checkbox';\nimport { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent, SymbolColor, SymbolRegistry } from '@agorapulse/ui-symbol';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostListener,\n inject,\n input,\n Input,\n output,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SelectMultipleDirective } from '../select-multiple.directive';\n\n@Component({\n selector: 'ap-dropdown-item-multiple-two-lines',\n templateUrl: './dropdown-item-multiple-two-lines.component.html',\n styleUrls: ['./dropdown-item-multiple-two-lines.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, CheckboxComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemMultipleTwoLinesComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n protected readonly selectMultiple = inject(SelectMultipleDirective, { optional: true });\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n }\n\n @Input({ required: true }) text!: string;\n @Input({ required: true }) caption!: string;\n @Input({ required: true }) selected!: boolean;\n @Input({ required: true }) htmlId!: string;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() onlyEnabled = false;\n @Input() onlyText = 'Only';\n isFeatureLocked = input<boolean>(false);\n roundedAvatar = input(true);\n network = input<AvatarNetwork>();\n symbolColor = input<SymbolColor | string>();\n symbolTooltipText = input<string>();\n\n @Output() selectOnly = new EventEmitter<void>();\n lockedFeatureClicked = output();\n\n @ViewChild(CheckboxComponent) checkbox!: CheckboxComponent;\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n\n onSelectOnly() {\n this.selectOnly.emit();\n this.checkbox.focus();\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip ?? selectMultiple?.maxItemsTooltip()\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option multiple with-caption\" [class.feature-locked-option]=\"isFeatureLocked()\">\n <ap-checkbox\n [checked]=\"selected\"\n [disabled]=\"disabled || isFeatureLocked()\"\n [name]=\"'option-selection-' + htmlId\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\"\n [network]=\"network()\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\"\n [color]=\"symbolColor() ?? ''\"\n [apTooltip]=\"symbolTooltipText() ? symbolTooltipText() : undefined\" />\n }\n <div class=\"texts\" [class.feature-locked-label]=\"isFeatureLocked()\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n </div>\n <span\n class=\"caption\"\n [title]=\"caption\">\n {{ caption }}\n </span>\n </div>\n\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n }\n\n @if (onlyEnabled && !disabled) {\n <button\n class=\"standalone-link\"\n type=\"button\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); onSelectOnly()\">\n {{ onlyText }}\n </button>\n }\n </ap-checkbox>\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\n\nimport { ChangeDetectionStrategy, Component, HostListener, inject, input, Input, output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-single-one-line',\n templateUrl: './dropdown-item-single-one-line.component.html',\n styleUrls: ['./dropdown-item-single-one-line.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemSingleOneLineComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n }\n\n @Input({ required: true }) text!: string;\n @Input({ required: true }) selected!: boolean;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() showAvatarInitials = true;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() network: AvatarNetwork | undefined = undefined;\n roundedAvatar = input(true);\n isFeatureLocked = input<boolean>(false);\n\n lockedFeatureClicked = output();\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option\" [class.feature-locked-option]=\"isFeatureLocked()\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"showAvatarInitials\"\n [network]=\"network\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <span\n class=\"option-item\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n } @else if (selected) {\n <ap-symbol\n class=\"option-selected\"\n symbolId=\"check\"\n color=\"electric-blue\"\n size=\"sm\" />\n }\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { BadgeComponent } from '@agorapulse/ui-components/badge';\nimport { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { TooltipDirective } from '@agorapulse/ui-components/tooltip';\nimport { SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\n\nimport { ChangeDetectionStrategy, Component, HostListener, inject, input, Input, output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ap-dropdown-item-single-two-lines',\n templateUrl: './dropdown-item-single-two-lines.component.html',\n styleUrls: ['./dropdown-item-single-two-lines.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [SymbolComponent, AvatarComponent, BadgeComponent, TooltipDirective],\n})\nexport class DropdownItemSingleTwoLinesComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n }\n\n @Input({ required: true }) text!: string;\n @Input({ required: true }) caption!: string;\n @Input({ required: true }) selected!: boolean;\n @Input() disabled = false;\n @Input() avatarUrl?: string;\n @Input() symbolId?: string;\n @Input() disabledTooltip?: string;\n @Input() badgeText?: string;\n @Input() dividerEnabled = false;\n @Input() network: AvatarNetwork | undefined = undefined;\n roundedAvatar = input(true);\n isFeatureLocked = input<boolean>(false);\n\n lockedFeatureClicked = output();\n\n @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n if (this.isFeatureLocked()) {\n $event.stopPropagation();\n this.lockedFeatureClicked.emit();\n }\n }\n}\n","<div\n class=\"disabled-opaque\"\n [apTooltip]=\"disabledTooltip\"\n [apTooltipDisabled]=\"!disabled\"></div>\n<div class=\"option with-caption\" [class.feature-locked-option]=\"isFeatureLocked()\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [profilePicture]=\"avatarUrl\"\n [username]=\"text\"\n [showInitials]=\"true\"\n [network]=\"network\" />\n }\n @if (symbolId) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolId\" />\n }\n <div class=\"texts\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n [title]=\"text\">\n {{ text }}\n </span>\n @if (badgeText) {\n <ap-badge color=\"blue\">\n {{ badgeText }}\n </ap-badge>\n }\n </div>\n <span\n class=\"caption\"\n [title]=\"caption\">\n {{ caption }}\n </span>\n </div>\n @if (isFeatureLocked()) {\n <ap-symbol\n symbolId=\"feature-lock\"\n color=\"purple\"\n size=\"sm\"/>\n } @else if (selected) {\n <ap-symbol\n class=\"option-selected\"\n symbolId=\"check\"\n color=\"electric-blue\"\n size=\"sm\" />\n }\n</div>\n@if (dividerEnabled) {\n <div class=\"divider\"></div>\n}\n","import { InputSearchComponent } from '@agorapulse/ui-components/input-search';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n OutputRefSubscription,\n ViewChild,\n ViewEncapsulation,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { BehaviorSubject, filter } from 'rxjs';\nimport { DropdownCreateNewComponent } from '../dropdown-create-new/dropdown-create-new.component';\n\n/** Search input for an ng-select dropdown — place inside its `ng-header-tmp`. */\n@Component({\n selector: 'ap-dropdown-search-form',\n templateUrl: './dropdown-search-form.component.html',\n styleUrls: ['./dropdown-search-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, InputSearchComponent, DropdownCreateNewComponent],\n})\nexport class DropdownSearchFormComponent implements AfterViewInit, OnDestroy {\n @Input() searchPlaceholder = '';\n @Input() createNewEnabled = false;\n @Input() createText = 'Create';\n @Input({\n required: true,\n })\n select!: NgSelectComponent;\n @ViewChild(InputSearchComponent) inputSearch!: InputSearchComponent;\n\n @Output() createNew = new EventEmitter<string>();\n\n searchTermSignal = signal<string>('');\n searchTerm$ = new BehaviorSubject<string>('');\n submitSubscription: OutputRefSubscription | null = null;\n\n constructor() {\n this.searchTerm$\n .pipe(\n filter(() => !!this.select),\n takeUntilDestroyed()\n )\n .subscribe(term => {\n this.searchTermSignal.set(term);\n this.select.filter(term);\n });\n }\n\n ngOnDestroy(): void {\n this.submitSubscription?.unsubscribe();\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.inputSearch.focusInput();\n this.registerKeyboardSubmit();\n }, 100);\n }\n\n /**\n * Register the keyboard submit event allowing to press enter to select the first item found.\n * And escape to close the dropdown. This is useful for keyboard navigation.\n * Use case: search for an item by typing the first characters and press enter to select it.\n * Furthermore: arrow keys currently don't work in the dropdown search form.\n */\n registerKeyboardSubmit() {\n this.submitSubscription?.unsubscribe();\n this.submitSubscription = this.inputSearch.keyup.subscribe(event => {\n if (event.key === 'Enter') {\n this.select.select(this.select.itemsList.filteredItems[0]);\n } else if (event.key === 'Escape') {\n this.select.close();\n }\n });\n }\n}\n","<ap-input-search\n class=\"dropdown-search-input\"\n [ngModel]=\"searchTermSignal()\"\n [placeholder]=\"searchPlaceholder\"\n (ngModelChange)=\"searchTerm$.next($event)\" />\n\n@if (createNewEnabled) {\n <ap-dropdown-create-new\n [text]=\"createText\"\n [searchTerm]=\"searchTermSignal()\"\n (createNew)=\"createNew.emit($event)\" />\n}\n\n","import { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { LabelComponent } from '@agorapulse/ui-components/labels';\nimport { TagColor, TagComponent } from '@agorapulse/ui-components/tag';\nimport { SymbolComponent } from '@agorapulse/ui-symbol';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterRenderEffect,\n computed,\n inject,\n input,\n output,\n signal,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\n\nimport { SelectLabelMultipleDisplayType } from '../select.model';\n\n@Component({\n selector: 'ap-select-label-multiple',\n templateUrl: './select-label-multiple.component.html',\n styleUrls: ['./select-label-multiple.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelComponent, TagComponent, AvatarComponent, SymbolComponent],\n})\nexport class SelectLabelMultipleComponent {\n displayType = input<SelectLabelMultipleDisplayType>('label');\n tagColor = input<TagColor>('grey');\n selectedItems = input.required<any[]>();\n bindLabel = input('');\n bindValue = input('');\n bindAvatarUrl = input('');\n bindSymbolId = input('');\n roundedAvatar = input(true);\n bindNetwork = input('');\n\n removeItem = output<any>();\n\n /**\n * Parent ng-select, resolved through the DI chain of the `ng-multi-label-tmp` template.\n * `optional` so the component still works when rendered outside a ng-select.\n */\n private readonly ngSelect = inject(NgSelectComponent, { optional: true });\n\n /** True when the whole select is disabled/readonly — hides every tag/label remove button. */\n protected readonly selectDisabled = computed(() => this.ngSelect?.disabled() ?? false);\n\n selectedLabels = computed(() =>\n this.selectedItems().map(item => ({\n label: this.bindLabel() ? item[this.bindLabel()] : item,\n avatarUrl: this.bindAvatarUrl() ? item[this.bindAvatarUrl()] : '',\n symbolId: this.bindSymbolId() ? item[this.bindSymbolId()] : null,\n value: item,\n network: this.bindNetwork() ? item[this.bindNetwork()] : undefined,\n }))\n );\n\n hiddenCount = signal(0);\n\n trackByItem = (_: number, item: any) => (this.bindValue() ? item.value[this.bindValue()] : item.value);\n\n mainContainer = viewChild.required('mainContainer', { read: ElementRef });\n itemsElement = viewChildren('itemElement', { read: ElementRef });\n\n private responsiveLayout = afterRenderEffect(() => {\n const itemRefs = this.itemsElement();\n if (!itemRefs.length) {\n this.hiddenCount.set(0);\n return;\n }\n\n const containerEl = this.mainContainer().nativeElement as HTMLElement;\n const containerWidth = (containerEl.parentElement?.clientWidth ?? 0) - 30;\n if (containerWidth <= 0) return;\n\n // Reset maxWidth so items aren't constrained by a previous pass\n containerEl.style.maxWidth = '';\n\n let totalWidth = 0;\n let hiddenCount = 0;\n const itemGap = 4;\n\n for (const ref of itemRefs) {\n const el = ref.nativeElement as HTMLElement;\n const itemWidth = el.getBoundingClientRect().width + itemGap;\n\n if (totalWidth + itemWidth < containerWidth && !hiddenCount) {\n totalWidth += itemWidth;\n el.style.visibility = 'visible';\n } else {\n el.style.visibility = 'hidden';\n hiddenCount++;\n }\n }\n\n containerEl.style.maxWidth = `${totalWidth}px`;\n this.hiddenCount.set(hiddenCount);\n });\n}\n","<div #mainContainer class=\"multiple-item\">\n @for (item of selectedLabels(); track trackByItem($index, item)) {\n @if (displayType() === 'label') {\n <ap-label\n #itemElement\n class=\"item\"\n color=\"blue\"\n [removable]=\"!item.value.disabled && !selectDisabled()\"\n [content]=\"item.label\"\n (remove)=\"removeItem.emit(item.value)\" />\n }\n\n @if (displayType() === 'tag') {\n <ap-tag\n #itemElement\n class=\"item text-item\"\n [clearable]=\"!item.value.disabled && !selectDisabled()\"\n [color]=\"tagColor()\"\n (clear)=\"removeItem.emit(item.value)\">\n @if (item.avatarUrl) {\n <ap-avatar\n [size]=\"16\"\n [rounded]=\"roundedAvatar()\"\n [profilePicture]=\"item.avatarUrl\"\n [username]=\"item.label\"\n [showInitials]=\"true\"\n [network]=\"item.network\"/>\n } @else if (item.symbolId) {\n <ap-symbol\n size=\"sm\"\n [attr.symbol-id]=\"item.symbolId\"\n [symbolId]=\"item.symbolId\" />\n }\n {{ item.label }}\n </ap-tag>\n }\n }\n</div>\n\n@if (hiddenCount() > 0) {\n <div class=\"remaining\">\n @if (displayType() === 'tag') {\n <ap-tag\n class=\"text-item\"\n clearable=\"false\"\n [color]=\"tagColor()\">\n +{{ hiddenCount() }}\n </ap-tag>\n }\n @if (displayType() === 'label') {\n <ap-label\n color=\"blue\"\n removable=\"false\"\n [content]=\"'+' + hiddenCount()\" />\n }\n </div>\n}\n","import { AvatarComponent, AvatarNetwork } from '@agorapulse/ui-components/avatar';\nimport { LabelComponent } from '@agorapulse/ui-components/labels';\nimport { TagComponent } from '@agorapulse/ui-components/tag';\n\nimport { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { SelectLabelSingleDisplayType } from '../select.model';\n\n@Component({\n selector: 'ap-select-label-single',\n templateUrl: './select-label-single.component.html',\n styleUrls: ['./select-label-single.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelComponent, TagComponent, AvatarComponent],\n})\nexport class SelectLabelSingleComponent {\n displayType = input<SelectLabelSingleDisplayType>('text');\n\n label = input.required<string>();\n avatarUrl = input<string>();\n network = input<AvatarNetwork | undefined>(undefined);\n showAvatarInitials = input(true);\n\n roundedAvatar = input(true);\n}\n","@switch (displayType()) {\n @case ('text') {\n <span\n class=\"text-item\"\n [title]=\"label()\">\n {{ label() }}\n </span>\n }\n @case ('label') {\n <ap-label\n color=\"blue\"\n [removable]=\"false\"\n [content]=\"label()\" />\n }\n @case ('tag') {\n <ap-tag\n class=\"text-item\"\n color=\"grey\">\n @if (avatarUrl !== undefined) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"16\"\n [username]=\"label()\"\n [showInitials]=\"true\"\n [profilePicture]=\"avatarUrl()\" />\n }\n {{ label() }}\n </ap-tag>\n }\n @case ('withAvatar') {\n @if (avatarUrl()) {\n <ap-avatar\n [rounded]=\"roundedAvatar()\"\n [size]=\"24\"\n [username]=\"label()\"\n [showInitials]=\"showAvatarInitials()\"\n [profilePicture]=\"avatarUrl()\"\n [network]=\"network()\" />\n }\n <span class=\"text-item\">\n {{ label() }}\n </span>\n }\n}\n","import { AfterViewInit, Directive, inject } from '@angular/core';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { SelectBaseDirective } from './select-base.directive';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ng-select[apSelectSingle]',\n standalone: true,\n hostDirectives: [\n {\n directive: SelectBaseDirective,\n inputs: ['inlineLabel', 'symbolId'],\n },\n ],\n})\nexport class SelectSingleDirective implements AfterViewInit {\n private readonly selectComponent = inject(NgSelectComponent);\n\n constructor() {\n this.selectComponent.multiple.set(false);\n this.selectComponent.closeOnSelect.set(true);\n }\n\n ngAfterViewInit(): void {\n if (!this.selectComponent.labelTemplate()) {\n throw new Error('labelTemplate is required for apSelectSingle');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { DropdownCreateNewComponent } from './dropdown-create-new/dropdown-create-new.component';\nimport { DropdownGroupItemComponent } from './dropdown-group-item/dropdown-group-item.component';\nimport { DropdownItemMultipleOneLineComponent } from './dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component';\nimport { DropdownItemMultipleTwoLinesComponent } from './dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component';\nimport { DropdownItemSingleOneLineComponent } from './dropdown-item-single-one-line/dropdown-item-single-one-line.component';\nimport { DropdownItemSingleTwoLinesComponent } from './dropdown-item-single-two-lines/dropdown-item-single-two-lines.component';\nimport { DropdownSearchFormComponent } from './dropdown-search-form/dropdown-search-form.component';\nimport { SelectLabelMultipleComponent } from './select-label-multiple/select-label-multiple.component';\nimport { SelectLabelSingleComponent } from './select-label-single/select-label-single.component';\nimport { SelectMultipleDirective } from './select-multiple.directive';\nimport { SelectSingleDirective } from './select-single.directive';\n\n@NgModule({\n imports: [\n SelectMultipleDirective,\n SelectSingleDirective,\n DropdownItemSingleOneLineComponent,\n DropdownItemSingleTwoLinesComponent,\n DropdownItemMultipleOneLineComponent,\n DropdownItemMultipleTwoLinesComponent,\n SelectLabelSingleComponent,\n SelectLabelMultipleComponent,\n DropdownSearchFormComponent,\n DropdownCreateNewComponent,\n DropdownGroupItemComponent,\n NgSelectModule,\n ],\n exports: [\n SelectMultipleDirective,\n SelectSingleDirective,\n DropdownItemSingleOneLineComponent,\n DropdownItemSingleTwoLinesComponent,\n DropdownItemMultipleOneLineComponent,\n DropdownItemMultipleTwoLinesComponent,\n SelectLabelSingleComponent,\n SelectLabelMultipleComponent,\n DropdownSearchFormComponent,\n DropdownCreateNewComponent,\n DropdownGroupItemComponent,\n NgSelectModule,\n ],\n})\nexport class ApSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.SelectBaseDirective"],"mappings":"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"}
@@ -546,10 +546,10 @@ class TooltipDirective {
546
546
  }
547
547
  }
548
548
  getHostOffset() {
549
- // Viewport coordinates for the `fixed` tooltip — getBoundingClientRect()
550
- // is already viewport-relative.
551
549
  const offset = this.nativeElement.getBoundingClientRect();
552
- return { left: offset.left, top: offset.top };
550
+ const targetLeft = offset.left + TooltipService.getWindowScrollLeft();
551
+ const targetTop = offset.top + TooltipService.getWindowScrollTop();
552
+ return { left: targetLeft, top: targetTop };
553
553
  }
554
554
  isOutOfBounds() {
555
555
  if (this.container) {
@@ -1 +1 @@
1
- {"version":3,"file":"agorapulse-ui-components-tooltip.mjs","sources":["../../../libs/ui-components/tooltip/src/tooltip-external-trigger.directive.ts","../../../libs/ui-components/tooltip/src/tooltip.component.ts","../../../libs/ui-components/tooltip/src/tooltip.component.html","../../../libs/ui-components/tooltip/src/tooltip.service.ts","../../../libs/ui-components/tooltip/src/tooltip.directive.ts","../../../libs/ui-components/tooltip/src/agorapulse-ui-components-tooltip.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n} from '@angular/core';\nimport { TooltipDirective } from './tooltip.directive';\n\n/**\n * Directive that triggers a tooltip to show/hide\n *\n * ```html\n * <div #myTooltip=\"apTooltip\" apTooltip>Content</div>\n * <div [apTooltipExternalTrigger]=\"myTooltip\">Click me</div>\n * ```\n */\n@Directive({\n selector: '[apTooltipExternalTrigger]',\n standalone: true,\n exportAs: 'apTooltipExternalTrigger',\n})\nexport class TooltipExternalTriggerDirective implements AfterViewInit, OnDestroy {\n private readonly elementRef: ElementRef = inject(ElementRef);\n private readonly zone: NgZone = inject(NgZone);\n\n // Accept a TooltipDirective reference for sibling usage\n apTooltipExternalTrigger = input<TooltipDirective>();\n\n private clickListener: (() => void) | undefined = undefined;\n\n private get targetTooltip(): TooltipDirective | null {\n // Prefer explicit reference, fall back to parent\n return this.apTooltipExternalTrigger() ?? null;\n }\n\n ngAfterViewInit(): void {\n if (!this.targetTooltip) {\n return;\n }\n\n this.setupEventListeners();\n }\n\n private setupEventListeners(): void {\n this.cleanupEventListeners();\n\n this.zone.runOutsideAngular(() => {\n const nativeElement = this.elementRef.nativeElement;\n\n this.clickListener = this.onClick.bind(this);\n nativeElement.addEventListener('click', this.clickListener, true);\n });\n }\n\n private cleanupEventListeners(): void {\n const nativeElement = this.elementRef.nativeElement;\n\n if (this.clickListener) {\n nativeElement.removeEventListener('click', this.clickListener, true);\n this.clickListener = undefined;\n }\n }\n\n ngOnDestroy(): void {\n this.cleanupEventListeners();\n }\n\n private onClick(): void {\n this.zone.run(() => {\n const tooltip = this.targetTooltip;\n if (!tooltip) return;\n\n if (tooltip.container) {\n tooltip.deactivate();\n } else {\n tooltip.externallyTriggerred = true;\n tooltip.activate();\n }\n });\n }\n}\n","import { AvatarComponent, AvatarItem } from '@agorapulse/ui-components/avatar';\nimport { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\n\nexport const CustomTooltipType = {\n DEFAULT: 'DEFAULT', // default type\n PRESENTATION: 'PRESENTATION',\n LIST: 'LIST',\n};\nexport type CustomTooltipType = (typeof CustomTooltipType)[keyof typeof CustomTooltipType];\n\nexport type CustomTooltipPresentationItem = {\n title: string;\n description: string;\n};\n\nexport type CustomTooltipAvatarItem = AvatarItem & {\n caption?: string;\n};\n\n/**\n * A tooltip component that is used for predefined templates: Presentation and List.\n * Not to be used directly, use TooltipDirective instead.\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n imports: [AvatarComponent],\n providers: [],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TooltipComponent {\n protected readonly CUSTOM_TOOLTIP_TYPE = CustomTooltipType;\n\n type = input<CustomTooltipType>(CustomTooltipType.DEFAULT);\n presentationContext = input<CustomTooltipPresentationItem>();\n\n tooltipListItems = input<CustomTooltipAvatarItem[]>([]);\n showCaption = input(true);\n}\n","<div class=\"custom-tooltip-container\">\n @switch (type()) {\n @case (CUSTOM_TOOLTIP_TYPE.PRESENTATION) {\n @let presentation = presentationContext();\n @if (presentation) {\n <div class=\"tooltip-presentation-title\">{{ presentation.title }}</div>\n <div class=\"tooltip-presentation-caption\">{{ presentation.description }}</div>\n }\n }\n @case (CUSTOM_TOOLTIP_TYPE.LIST) {\n <div class=\"tooltip-list-container\">\n @for (avatar of tooltipListItems(); track avatar) {\n <div class=\"tooltip-item\">\n <ap-avatar\n [profilePicture]=\"avatar.profilePicture\"\n [alt]=\"avatar.alt ?? ''\"\n [network]=\"avatar.network\"\n [size]=\"showCaption() && avatar.caption ? 32 : 24\"\n [username]=\"avatar.username\"\n [showInitials]=\"avatar.showInitials\"\n [bigNetwork]=\"avatar.bigNetwork ?? false\"\n [anonymous]=\"avatar.anonymous ?? false\"\n [online]=\"avatar.online ?? false\"\n [rounded]=\"avatar.rounded ?? true\" />\n\n <div class=\"tooltip-item-info\">\n <div class=\"tooltip-item-title\">\n {{ avatar.username }}\n </div>\n @if (showCaption() && avatar.caption) {\n <div class=\"tooltip-item-caption\">\n {{ avatar.caption }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n @default {\n\n }\n }\n\n</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TooltipService {\n static readonly defaultOffset = 12;\n\n static getOuterWidth(el: HTMLElement): number {\n return el.offsetWidth;\n }\n\n static getOuterHeight(el: HTMLElement): number {\n return el.offsetHeight;\n }\n\n static getViewport(): any {\n const win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n\n return { width: w, height: h };\n }\n\n static getWindowScrollLeft(): number {\n const doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n\n static getWindowScrollTop(): number {\n const doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n AfterViewInit,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport DOMPurify from 'dompurify';\nimport { CustomTooltipAvatarItem, CustomTooltipPresentationItem, CustomTooltipType, TooltipComponent } from './tooltip.component';\nimport { TooltipService } from './tooltip.service';\n\n@Directive({ selector: '[apTooltip]', standalone: true, exportAs: 'apTooltip' })\nexport class TooltipDirective implements AfterViewInit, OnDestroy, OnInit {\n private readonly elementRef: ElementRef = inject(ElementRef);\n private readonly zone: NgZone = inject(NgZone);\n private readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n private readonly destroyRef = inject(DestroyRef);\n\n private documentClickListener?: (e: MouseEvent) => void;\n\n apTooltip = input.required<string | TemplateRef<HTMLElement> | undefined | null>();\n apTooltipPosition = input<'right' | 'left' | 'top' | 'bottom' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'>('top');\n apTooltipShowDelay = input<number>(80);\n apTooltipHideDelay = input<number>(0);\n apTooltipDuration = input<number>(0);\n apTooltipDisabled = input<boolean>(false);\n apTooltipTruncatedTextOnly = input<boolean>(false);\n apTooltipTemplateContext = input<any>();\n apTooltipVirtualScrollElement = input<CdkVirtualScrollViewport>();\n apTooltipTrigger = input<'hover' | 'click'>('hover');\n\n // Predefined template variables\n apTooltipType = input<CustomTooltipType>(CustomTooltipType.DEFAULT);\n apTooltipPresentationContext = input<CustomTooltipPresentationItem>();\n apTooltipListItems = input<CustomTooltipAvatarItem[]>([]);\n apTooltipShowAvatarCaption = input(true);\n\n isDefaultTooltipType = computed(() => !this.apTooltipType() || this.apTooltipType() === CustomTooltipType.DEFAULT);\n isValidPredefinedTooltip = computed(\n () =>\n (this.apTooltipType() === CustomTooltipType.PRESENTATION &&\n this.apTooltipPresentationContext()?.title &&\n this.apTooltipPresentationContext()?.description) ||\n (this.apTooltipType() === CustomTooltipType.LIST && this.apTooltipListItems().length > 0)\n );\n triggeredByClick = computed(() => this.apTooltipTrigger() === 'click' || this.externallyTriggerred);\n\n clickListener: (() => void) | undefined = undefined;\n\n container: HTMLElement | undefined = undefined;\n\n hideTimeout: number | undefined;\n\n mouseEnterListener: (() => void) | undefined = undefined;\n\n mouseLeaveListener: (() => void) | undefined = undefined;\n\n nativeElement: HTMLElement = this.elementRef.nativeElement;\n\n showTimeout: number | undefined;\n\n tooltipText: HTMLElement | undefined;\n\n _externallyTriggerred: boolean = false;\n\n ngOnInit(): void {\n const apTooltipVirtualScrollElement = this.apTooltipVirtualScrollElement();\n if (apTooltipVirtualScrollElement) {\n apTooltipVirtualScrollElement.renderedRangeStream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(range => {\n if (range.start === 0 && range.end === 0) {\n this.deactivate();\n }\n });\n }\n }\n\n ngAfterViewInit(): void {\n this.setupEventListeners(this.apTooltipTrigger());\n }\n\n private setupEventListeners(trigger: 'hover' | 'click'): void {\n // Close any open tooltip when switching modes\n if (this.container) {\n this.remove();\n }\n\n this.cleanupEventListeners();\n\n this.zone.runOutsideAngular(() => {\n this.clickListener = this.onInputClick.bind(this);\n this.nativeElement.addEventListener('click', this.clickListener, true);\n if (trigger === 'hover') {\n this.mouseEnterListener = this.onMouseEnter.bind(this);\n this.mouseLeaveListener = this.onMouseLeave.bind(this);\n this.nativeElement.addEventListener('mouseenter', this.mouseEnterListener);\n this.nativeElement.addEventListener('mouseleave', this.mouseLeaveListener);\n }\n });\n }\n\n private cleanupEventListeners(): void {\n if (this.mouseEnterListener) {\n this.nativeElement.removeEventListener('mouseenter', this.mouseEnterListener);\n this.mouseEnterListener = undefined;\n }\n if (this.clickListener) {\n this.nativeElement.removeEventListener('click', this.clickListener, true);\n this.clickListener = undefined;\n }\n if (this.mouseLeaveListener) {\n this.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListener);\n this.mouseLeaveListener = undefined;\n }\n }\n\n ngOnDestroy(): void {\n if (this.container) {\n this.deactivate();\n }\n this.cleanupEventListeners();\n }\n\n onMouseEnter(): void {\n if (!this.container) {\n this.activate();\n }\n }\n\n onMouseLeave(): void {\n if (!this._externallyTriggerred) {\n this.deactivate();\n }\n }\n\n onInputClick(): void {\n this.zone.run(() => {\n const trigger = this.apTooltipTrigger();\n\n if (trigger === 'click') {\n if (this.container) {\n this.deactivate();\n } else {\n this.activate();\n }\n } else {\n this.deactivate();\n }\n });\n }\n\n activate(): void {\n this.clearHideTimeout();\n\n if (this.triggeredByClick()) {\n this.addDocumentClickListener();\n }\n\n if (this.apTooltipShowDelay()) {\n this.showTimeout = window.setTimeout(() => {\n this.show();\n }, this.apTooltipShowDelay());\n } else {\n this.show();\n }\n\n if (this.apTooltipDuration()) {\n const duration = this.apTooltipShowDelay() ? this.apTooltipDuration() + this.apTooltipShowDelay() : this.apTooltipDuration();\n this.hideTimeout = window.setTimeout(() => {\n this.remove();\n }, duration);\n }\n }\n\n deactivate(): void {\n this.clearShowTimeout();\n this.removeDocumentClickListener();\n if (this.apTooltipHideDelay()) {\n this.clearHideTimeout();\n this.hideTimeout = window.setTimeout(() => {\n this.remove();\n }, this.apTooltipHideDelay());\n } else {\n this.remove();\n }\n }\n\n show(): void {\n if (this.apTooltipTruncatedTextOnly() && this.elementRef.nativeElement.scrollWidth === this.elementRef.nativeElement.clientWidth) {\n return;\n }\n if (\n (this.isDefaultTooltipType() && !this.apTooltip()) ||\n (!this.isDefaultTooltipType() && !this.isValidPredefinedTooltip()) ||\n this.apTooltipDisabled()\n ) {\n return;\n }\n\n // Prevent tooltip from showing if the host element is not connected to the DOM\n const hostRect = this.nativeElement.getBoundingClientRect();\n if (!this.nativeElement.isConnected || (hostRect.width === 0 && hostRect.height === 0)) {\n return;\n }\n\n this.create();\n\n // For predefined tooltips, alignment is deferred after component rendering\n if (this.isDefaultTooltipType()) {\n this.align();\n }\n }\n\n create(): void {\n if (this.container) {\n this.clearHideTimeout();\n this.remove();\n }\n if (this.isDefaultTooltipType()) {\n this.createDefaultTooltip();\n } else {\n this.createPredefinedTooltip();\n }\n }\n\n createDefaultTooltip(): void {\n this.container = document.createElement('div');\n this.container.setAttribute('role', 'tooltip');\n\n this.tooltipText = document.createElement('div');\n this.tooltipText.className = 'ap-tooltip-text';\n this.updateText();\n\n const contentContainer = document.createElement('div');\n contentContainer.classList.add('ap-content-container');\n\n contentContainer.appendChild(this.tooltipText);\n contentContainer.appendChild(this.createSvgElement());\n this.container.appendChild(contentContainer);\n\n document.body.appendChild(this.container);\n this.container.classList.add('ap-tooltip');\n\n if (this.apTooltip() instanceof TemplateRef) {\n this.container.classList.add('ap-tooltip-custom-template');\n }\n this.setCssVariables();\n }\n\n createPredefinedTooltip(): void {\n const componentRef = this.viewContainerRef.createComponent(TooltipComponent);\n\n // Set inputs\n componentRef.setInput('type', this.apTooltipType());\n componentRef.setInput('presentationContext', this.apTooltipPresentationContext());\n componentRef.setInput('tooltipListItems', this.apTooltipListItems());\n componentRef.setInput('showCaption', this.apTooltipShowAvatarCaption());\n\n // Force change detection to render the component immediately\n componentRef.changeDetectorRef.detectChanges();\n\n this.container = document.createElement('div');\n this.container.setAttribute('role', 'tooltip');\n\n const contentContainer = document.createElement('div');\n contentContainer.classList.add('ap-content-container', 'ap-content-predefined-container');\n\n contentContainer.appendChild(componentRef.location.nativeElement);\n contentContainer.appendChild(this.createSvgElement());\n this.container.appendChild(contentContainer);\n\n document.body.appendChild(this.container);\n\n this.container.classList.add('ap-tooltip', 'ap-predefined-tooltip');\n if (this.triggeredByClick()) {\n this.container.classList.add('ap-tooltip-click-trigger');\n }\n\n // Has to wait for the TooltipComponent to be rendered in order to align and then set the CSS variable --ap-tooltip-height\n requestAnimationFrame(() => {\n this.align();\n this.setCssVariables();\n });\n }\n\n createSvgElement(): SVGElement {\n const svgNamespace = 'http://www.w3.org/2000/svg';\n const arrowSvg = document.createElementNS(svgNamespace, 'svg');\n arrowSvg.classList.add('ap-tooltip-arrow');\n arrowSvg.setAttribute('xmlns', svgNamespace);\n arrowSvg.setAttribute('viewBox', '0 0 16 8');\n arrowSvg.setAttribute('fill', 'none');\n const path = document.createElementNS(svgNamespace, 'path');\n path.setAttribute('d', 'M6.68299 1.15238C7.43705 0.492586 8.56296 0.492588 9.31701 1.15238L16 7L0 7L6.68299 1.15238Z');\n arrowSvg.appendChild(path);\n\n return arrowSvg;\n }\n\n align(): void {\n switch (this.apTooltipPosition()) {\n case 'top-left':\n this.alignTopLeft();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n case 'top-right':\n this.alignTopRight();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n case 'top':\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom':\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom-left':\n this.alignBottomLeft();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom-right':\n this.alignBottomRight();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'left':\n this.alignLeft();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n\n case 'right':\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n }\n }\n\n alignRight(): void {\n this.preAlign('right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left + TooltipService.getOuterWidth(this.nativeElement) + TooltipService.defaultOffset;\n const top =\n hostOffset.top + (TooltipService.getOuterHeight(this.nativeElement) - TooltipService.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignLeft(): void {\n this.preAlign('left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left - TooltipService.getOuterWidth(this.container) - TooltipService.defaultOffset;\n const top =\n hostOffset.top + (TooltipService.getOuterHeight(this.nativeElement) - TooltipService.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTop(): void {\n this.preAlign('top');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container)) / 2;\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTopLeft(): void {\n this.preAlign('top-left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left;\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTopRight(): void {\n this.preAlign('top-right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left + TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container);\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottom(): void {\n this.preAlign('bottom');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container)) / 2;\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottomLeft(): void {\n this.preAlign('bottom-left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left;\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottomRight(): void {\n this.preAlign('bottom-right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container));\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n preAlign(position: string) {\n this.removePreviousAlignHtmlClasses();\n if (this.container) {\n this.container.style.left = -999 + 'px';\n this.container.style.top = -999 + 'px';\n\n const defaultClassName = 'ap-tooltip-' + position;\n this.container.classList.add(defaultClassName);\n }\n }\n\n getHostOffset() {\n // Viewport coordinates for the `fixed` tooltip — getBoundingClientRect()\n // is already viewport-relative.\n const offset = this.nativeElement.getBoundingClientRect();\n\n return { left: offset.left, top: offset.top };\n }\n\n isOutOfBounds(): boolean {\n if (this.container) {\n const offset = this.container.getBoundingClientRect();\n const targetTop = offset.top;\n const targetLeft = offset.left;\n const width = TooltipService.getOuterWidth(this.container);\n const height = TooltipService.getOuterHeight(this.container);\n const viewport = TooltipService.getViewport();\n\n return targetLeft + width > viewport.width || targetLeft < 0 || targetTop < 0 || targetTop + height > viewport.height;\n } else {\n return false;\n }\n }\n\n remove(): void {\n if (this.container && this.container.parentElement) {\n document.body.removeChild(this.container);\n }\n\n this.clearTimeouts();\n this._externallyTriggerred = false;\n this.container = undefined;\n }\n\n clearShowTimeout() {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = undefined;\n }\n }\n\n clearHideTimeout() {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = undefined;\n }\n }\n\n clearTimeouts() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n }\n\n updateText() {\n const apTooltip = this.apTooltip();\n if (apTooltip instanceof TemplateRef) {\n const embeddedViewRef = this.viewContainerRef.createEmbeddedView(apTooltip);\n embeddedViewRef.context = this.apTooltipTemplateContext();\n embeddedViewRef.detectChanges();\n embeddedViewRef.rootNodes.forEach(node => this.tooltipText?.appendChild(node));\n } else if (this.tooltipText) {\n this.tooltipText.innerHTML = apTooltip ? DOMPurify.sanitize(apTooltip) : '';\n }\n }\n\n setCssVariables(): void {\n if (this.container) {\n this.container.style.setProperty('--ap-tooltip-height', this.container.offsetHeight + 'px');\n }\n }\n\n private removePreviousAlignHtmlClasses() {\n if (this.container) {\n this.container.classList.remove(\n 'ap-tooltip-top',\n 'ap-tooltip-top-left',\n 'ap-tooltip-top-right',\n 'ap-tooltip-bottom',\n 'ap-tooltip-bottom-left',\n 'ap-tooltip-bottom-right',\n 'ap-tooltip-left',\n 'ap-tooltip-right'\n );\n }\n }\n\n private addDocumentClickListener() {\n if (this.documentClickListener) return;\n this.zone.runOutsideAngular(() => {\n this.documentClickListener = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n if (this.container && !this.container.contains(target) && !this.nativeElement.contains(target)) {\n this.deactivate();\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n });\n }\n\n private removeDocumentClickListener() {\n if (!this.documentClickListener) return;\n\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = undefined;\n }\n\n get externallyTriggerred(): boolean {\n return this._externallyTriggerred;\n }\n\n set externallyTriggerred(value: boolean) {\n this._externallyTriggerred = value;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agorapulse-ui-components-tooltip.mjs","sources":["../../../libs/ui-components/tooltip/src/tooltip-external-trigger.directive.ts","../../../libs/ui-components/tooltip/src/tooltip.component.ts","../../../libs/ui-components/tooltip/src/tooltip.component.html","../../../libs/ui-components/tooltip/src/tooltip.service.ts","../../../libs/ui-components/tooltip/src/tooltip.directive.ts","../../../libs/ui-components/tooltip/src/agorapulse-ui-components-tooltip.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n} from '@angular/core';\nimport { TooltipDirective } from './tooltip.directive';\n\n/**\n * Directive that triggers a tooltip to show/hide\n *\n * ```html\n * <div #myTooltip=\"apTooltip\" apTooltip>Content</div>\n * <div [apTooltipExternalTrigger]=\"myTooltip\">Click me</div>\n * ```\n */\n@Directive({\n selector: '[apTooltipExternalTrigger]',\n standalone: true,\n exportAs: 'apTooltipExternalTrigger',\n})\nexport class TooltipExternalTriggerDirective implements AfterViewInit, OnDestroy {\n private readonly elementRef: ElementRef = inject(ElementRef);\n private readonly zone: NgZone = inject(NgZone);\n\n // Accept a TooltipDirective reference for sibling usage\n apTooltipExternalTrigger = input<TooltipDirective>();\n\n private clickListener: (() => void) | undefined = undefined;\n\n private get targetTooltip(): TooltipDirective | null {\n // Prefer explicit reference, fall back to parent\n return this.apTooltipExternalTrigger() ?? null;\n }\n\n ngAfterViewInit(): void {\n if (!this.targetTooltip) {\n return;\n }\n\n this.setupEventListeners();\n }\n\n private setupEventListeners(): void {\n this.cleanupEventListeners();\n\n this.zone.runOutsideAngular(() => {\n const nativeElement = this.elementRef.nativeElement;\n\n this.clickListener = this.onClick.bind(this);\n nativeElement.addEventListener('click', this.clickListener, true);\n });\n }\n\n private cleanupEventListeners(): void {\n const nativeElement = this.elementRef.nativeElement;\n\n if (this.clickListener) {\n nativeElement.removeEventListener('click', this.clickListener, true);\n this.clickListener = undefined;\n }\n }\n\n ngOnDestroy(): void {\n this.cleanupEventListeners();\n }\n\n private onClick(): void {\n this.zone.run(() => {\n const tooltip = this.targetTooltip;\n if (!tooltip) return;\n\n if (tooltip.container) {\n tooltip.deactivate();\n } else {\n tooltip.externallyTriggerred = true;\n tooltip.activate();\n }\n });\n }\n}\n","import { AvatarComponent, AvatarItem } from '@agorapulse/ui-components/avatar';\nimport { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\n\nexport const CustomTooltipType = {\n DEFAULT: 'DEFAULT', // default type\n PRESENTATION: 'PRESENTATION',\n LIST: 'LIST',\n};\nexport type CustomTooltipType = (typeof CustomTooltipType)[keyof typeof CustomTooltipType];\n\nexport type CustomTooltipPresentationItem = {\n title: string;\n description: string;\n};\n\nexport type CustomTooltipAvatarItem = AvatarItem & {\n caption?: string;\n};\n\n/**\n * A tooltip component that is used for predefined templates: Presentation and List.\n * Not to be used directly, use TooltipDirective instead.\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n imports: [AvatarComponent],\n providers: [],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TooltipComponent {\n protected readonly CUSTOM_TOOLTIP_TYPE = CustomTooltipType;\n\n type = input<CustomTooltipType>(CustomTooltipType.DEFAULT);\n presentationContext = input<CustomTooltipPresentationItem>();\n\n tooltipListItems = input<CustomTooltipAvatarItem[]>([]);\n showCaption = input(true);\n}\n","<div class=\"custom-tooltip-container\">\n @switch (type()) {\n @case (CUSTOM_TOOLTIP_TYPE.PRESENTATION) {\n @let presentation = presentationContext();\n @if (presentation) {\n <div class=\"tooltip-presentation-title\">{{ presentation.title }}</div>\n <div class=\"tooltip-presentation-caption\">{{ presentation.description }}</div>\n }\n }\n @case (CUSTOM_TOOLTIP_TYPE.LIST) {\n <div class=\"tooltip-list-container\">\n @for (avatar of tooltipListItems(); track avatar) {\n <div class=\"tooltip-item\">\n <ap-avatar\n [profilePicture]=\"avatar.profilePicture\"\n [alt]=\"avatar.alt ?? ''\"\n [network]=\"avatar.network\"\n [size]=\"showCaption() && avatar.caption ? 32 : 24\"\n [username]=\"avatar.username\"\n [showInitials]=\"avatar.showInitials\"\n [bigNetwork]=\"avatar.bigNetwork ?? false\"\n [anonymous]=\"avatar.anonymous ?? false\"\n [online]=\"avatar.online ?? false\"\n [rounded]=\"avatar.rounded ?? true\" />\n\n <div class=\"tooltip-item-info\">\n <div class=\"tooltip-item-title\">\n {{ avatar.username }}\n </div>\n @if (showCaption() && avatar.caption) {\n <div class=\"tooltip-item-caption\">\n {{ avatar.caption }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n @default {\n\n }\n }\n\n</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TooltipService {\n static readonly defaultOffset = 12;\n\n static getOuterWidth(el: HTMLElement): number {\n return el.offsetWidth;\n }\n\n static getOuterHeight(el: HTMLElement): number {\n return el.offsetHeight;\n }\n\n static getViewport(): any {\n const win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n\n return { width: w, height: h };\n }\n\n static getWindowScrollLeft(): number {\n const doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n\n static getWindowScrollTop(): number {\n const doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n AfterViewInit,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport DOMPurify from 'dompurify';\nimport { CustomTooltipAvatarItem, CustomTooltipPresentationItem, CustomTooltipType, TooltipComponent } from './tooltip.component';\nimport { TooltipService } from './tooltip.service';\n\n@Directive({ selector: '[apTooltip]', standalone: true, exportAs: 'apTooltip' })\nexport class TooltipDirective implements AfterViewInit, OnDestroy, OnInit {\n private readonly elementRef: ElementRef = inject(ElementRef);\n private readonly zone: NgZone = inject(NgZone);\n private readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n private readonly destroyRef = inject(DestroyRef);\n\n private documentClickListener?: (e: MouseEvent) => void;\n\n apTooltip = input.required<string | TemplateRef<HTMLElement> | undefined | null>();\n apTooltipPosition = input<'right' | 'left' | 'top' | 'bottom' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'>('top');\n apTooltipShowDelay = input<number>(80);\n apTooltipHideDelay = input<number>(0);\n apTooltipDuration = input<number>(0);\n apTooltipDisabled = input<boolean>(false);\n apTooltipTruncatedTextOnly = input<boolean>(false);\n apTooltipTemplateContext = input<any>();\n apTooltipVirtualScrollElement = input<CdkVirtualScrollViewport>();\n apTooltipTrigger = input<'hover' | 'click'>('hover');\n\n // Predefined template variables\n apTooltipType = input<CustomTooltipType>(CustomTooltipType.DEFAULT);\n apTooltipPresentationContext = input<CustomTooltipPresentationItem>();\n apTooltipListItems = input<CustomTooltipAvatarItem[]>([]);\n apTooltipShowAvatarCaption = input(true);\n\n isDefaultTooltipType = computed(() => !this.apTooltipType() || this.apTooltipType() === CustomTooltipType.DEFAULT);\n isValidPredefinedTooltip = computed(\n () =>\n (this.apTooltipType() === CustomTooltipType.PRESENTATION &&\n this.apTooltipPresentationContext()?.title &&\n this.apTooltipPresentationContext()?.description) ||\n (this.apTooltipType() === CustomTooltipType.LIST && this.apTooltipListItems().length > 0)\n );\n triggeredByClick = computed(() => this.apTooltipTrigger() === 'click' || this.externallyTriggerred);\n\n clickListener: (() => void) | undefined = undefined;\n\n container: HTMLElement | undefined = undefined;\n\n hideTimeout: number | undefined;\n\n mouseEnterListener: (() => void) | undefined = undefined;\n\n mouseLeaveListener: (() => void) | undefined = undefined;\n\n nativeElement: HTMLElement = this.elementRef.nativeElement;\n\n showTimeout: number | undefined;\n\n tooltipText: HTMLElement | undefined;\n\n _externallyTriggerred: boolean = false;\n\n ngOnInit(): void {\n const apTooltipVirtualScrollElement = this.apTooltipVirtualScrollElement();\n if (apTooltipVirtualScrollElement) {\n apTooltipVirtualScrollElement.renderedRangeStream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(range => {\n if (range.start === 0 && range.end === 0) {\n this.deactivate();\n }\n });\n }\n }\n\n ngAfterViewInit(): void {\n this.setupEventListeners(this.apTooltipTrigger());\n }\n\n private setupEventListeners(trigger: 'hover' | 'click'): void {\n // Close any open tooltip when switching modes\n if (this.container) {\n this.remove();\n }\n\n this.cleanupEventListeners();\n\n this.zone.runOutsideAngular(() => {\n this.clickListener = this.onInputClick.bind(this);\n this.nativeElement.addEventListener('click', this.clickListener, true);\n if (trigger === 'hover') {\n this.mouseEnterListener = this.onMouseEnter.bind(this);\n this.mouseLeaveListener = this.onMouseLeave.bind(this);\n this.nativeElement.addEventListener('mouseenter', this.mouseEnterListener);\n this.nativeElement.addEventListener('mouseleave', this.mouseLeaveListener);\n }\n });\n }\n\n private cleanupEventListeners(): void {\n if (this.mouseEnterListener) {\n this.nativeElement.removeEventListener('mouseenter', this.mouseEnterListener);\n this.mouseEnterListener = undefined;\n }\n if (this.clickListener) {\n this.nativeElement.removeEventListener('click', this.clickListener, true);\n this.clickListener = undefined;\n }\n if (this.mouseLeaveListener) {\n this.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListener);\n this.mouseLeaveListener = undefined;\n }\n }\n\n ngOnDestroy(): void {\n if (this.container) {\n this.deactivate();\n }\n this.cleanupEventListeners();\n }\n\n onMouseEnter(): void {\n if (!this.container) {\n this.activate();\n }\n }\n\n onMouseLeave(): void {\n if (!this._externallyTriggerred) {\n this.deactivate();\n }\n }\n\n onInputClick(): void {\n this.zone.run(() => {\n const trigger = this.apTooltipTrigger();\n\n if (trigger === 'click') {\n if (this.container) {\n this.deactivate();\n } else {\n this.activate();\n }\n } else {\n this.deactivate();\n }\n });\n }\n\n activate(): void {\n this.clearHideTimeout();\n\n if (this.triggeredByClick()) {\n this.addDocumentClickListener();\n }\n\n if (this.apTooltipShowDelay()) {\n this.showTimeout = window.setTimeout(() => {\n this.show();\n }, this.apTooltipShowDelay());\n } else {\n this.show();\n }\n\n if (this.apTooltipDuration()) {\n const duration = this.apTooltipShowDelay() ? this.apTooltipDuration() + this.apTooltipShowDelay() : this.apTooltipDuration();\n this.hideTimeout = window.setTimeout(() => {\n this.remove();\n }, duration);\n }\n }\n\n deactivate(): void {\n this.clearShowTimeout();\n this.removeDocumentClickListener();\n if (this.apTooltipHideDelay()) {\n this.clearHideTimeout();\n this.hideTimeout = window.setTimeout(() => {\n this.remove();\n }, this.apTooltipHideDelay());\n } else {\n this.remove();\n }\n }\n\n show(): void {\n if (this.apTooltipTruncatedTextOnly() && this.elementRef.nativeElement.scrollWidth === this.elementRef.nativeElement.clientWidth) {\n return;\n }\n if (\n (this.isDefaultTooltipType() && !this.apTooltip()) ||\n (!this.isDefaultTooltipType() && !this.isValidPredefinedTooltip()) ||\n this.apTooltipDisabled()\n ) {\n return;\n }\n\n // Prevent tooltip from showing if the host element is not connected to the DOM\n const hostRect = this.nativeElement.getBoundingClientRect();\n if (!this.nativeElement.isConnected || (hostRect.width === 0 && hostRect.height === 0)) {\n return;\n }\n\n this.create();\n\n // For predefined tooltips, alignment is deferred after component rendering\n if (this.isDefaultTooltipType()) {\n this.align();\n }\n }\n\n create(): void {\n if (this.container) {\n this.clearHideTimeout();\n this.remove();\n }\n if (this.isDefaultTooltipType()) {\n this.createDefaultTooltip();\n } else {\n this.createPredefinedTooltip();\n }\n }\n\n createDefaultTooltip(): void {\n this.container = document.createElement('div');\n this.container.setAttribute('role', 'tooltip');\n\n this.tooltipText = document.createElement('div');\n this.tooltipText.className = 'ap-tooltip-text';\n this.updateText();\n\n const contentContainer = document.createElement('div');\n contentContainer.classList.add('ap-content-container');\n\n contentContainer.appendChild(this.tooltipText);\n contentContainer.appendChild(this.createSvgElement());\n this.container.appendChild(contentContainer);\n\n document.body.appendChild(this.container);\n this.container.classList.add('ap-tooltip');\n\n if (this.apTooltip() instanceof TemplateRef) {\n this.container.classList.add('ap-tooltip-custom-template');\n }\n this.setCssVariables();\n }\n\n createPredefinedTooltip(): void {\n const componentRef = this.viewContainerRef.createComponent(TooltipComponent);\n\n // Set inputs\n componentRef.setInput('type', this.apTooltipType());\n componentRef.setInput('presentationContext', this.apTooltipPresentationContext());\n componentRef.setInput('tooltipListItems', this.apTooltipListItems());\n componentRef.setInput('showCaption', this.apTooltipShowAvatarCaption());\n\n // Force change detection to render the component immediately\n componentRef.changeDetectorRef.detectChanges();\n\n this.container = document.createElement('div');\n this.container.setAttribute('role', 'tooltip');\n\n const contentContainer = document.createElement('div');\n contentContainer.classList.add('ap-content-container', 'ap-content-predefined-container');\n\n contentContainer.appendChild(componentRef.location.nativeElement);\n contentContainer.appendChild(this.createSvgElement());\n this.container.appendChild(contentContainer);\n\n document.body.appendChild(this.container);\n\n this.container.classList.add('ap-tooltip', 'ap-predefined-tooltip');\n if (this.triggeredByClick()) {\n this.container.classList.add('ap-tooltip-click-trigger');\n }\n\n // Has to wait for the TooltipComponent to be rendered in order to align and then set the CSS variable --ap-tooltip-height\n requestAnimationFrame(() => {\n this.align();\n this.setCssVariables();\n });\n }\n\n createSvgElement(): SVGElement {\n const svgNamespace = 'http://www.w3.org/2000/svg';\n const arrowSvg = document.createElementNS(svgNamespace, 'svg');\n arrowSvg.classList.add('ap-tooltip-arrow');\n arrowSvg.setAttribute('xmlns', svgNamespace);\n arrowSvg.setAttribute('viewBox', '0 0 16 8');\n arrowSvg.setAttribute('fill', 'none');\n const path = document.createElementNS(svgNamespace, 'path');\n path.setAttribute('d', 'M6.68299 1.15238C7.43705 0.492586 8.56296 0.492588 9.31701 1.15238L16 7L0 7L6.68299 1.15238Z');\n arrowSvg.appendChild(path);\n\n return arrowSvg;\n }\n\n align(): void {\n switch (this.apTooltipPosition()) {\n case 'top-left':\n this.alignTopLeft();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n case 'top-right':\n this.alignTopRight();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n case 'top':\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom':\n this.alignBottom();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom-left':\n this.alignBottomLeft();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'bottom-right':\n this.alignBottomRight();\n if (this.isOutOfBounds()) {\n this.alignTop();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignLeft();\n }\n }\n }\n break;\n\n case 'left':\n this.alignLeft();\n if (this.isOutOfBounds()) {\n this.alignRight();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n\n case 'right':\n this.alignRight();\n if (this.isOutOfBounds()) {\n this.alignLeft();\n\n if (this.isOutOfBounds()) {\n this.alignTop();\n\n if (this.isOutOfBounds()) {\n this.alignBottom();\n }\n }\n }\n break;\n }\n }\n\n alignRight(): void {\n this.preAlign('right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left + TooltipService.getOuterWidth(this.nativeElement) + TooltipService.defaultOffset;\n const top =\n hostOffset.top + (TooltipService.getOuterHeight(this.nativeElement) - TooltipService.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignLeft(): void {\n this.preAlign('left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left - TooltipService.getOuterWidth(this.container) - TooltipService.defaultOffset;\n const top =\n hostOffset.top + (TooltipService.getOuterHeight(this.nativeElement) - TooltipService.getOuterHeight(this.container)) / 2;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTop(): void {\n this.preAlign('top');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container)) / 2;\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTopLeft(): void {\n this.preAlign('top-left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left;\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignTopRight(): void {\n this.preAlign('top-right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left + TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container);\n const top = hostOffset.top - TooltipService.getOuterHeight(this.container) - TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottom(): void {\n this.preAlign('bottom');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container)) / 2;\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottomLeft(): void {\n this.preAlign('bottom-left');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left = hostOffset.left;\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n alignBottomRight(): void {\n this.preAlign('bottom-right');\n if (this.container) {\n const hostOffset = this.getHostOffset();\n const left =\n hostOffset.left + (TooltipService.getOuterWidth(this.nativeElement) - TooltipService.getOuterWidth(this.container));\n const top = hostOffset.top + TooltipService.getOuterHeight(this.nativeElement) + TooltipService.defaultOffset;\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n }\n }\n\n preAlign(position: string) {\n this.removePreviousAlignHtmlClasses();\n if (this.container) {\n this.container.style.left = -999 + 'px';\n this.container.style.top = -999 + 'px';\n\n const defaultClassName = 'ap-tooltip-' + position;\n this.container.classList.add(defaultClassName);\n }\n }\n\n getHostOffset() {\n const offset = this.nativeElement.getBoundingClientRect();\n const targetLeft = offset.left + TooltipService.getWindowScrollLeft();\n const targetTop = offset.top + TooltipService.getWindowScrollTop();\n\n return { left: targetLeft, top: targetTop };\n }\n\n isOutOfBounds(): boolean {\n if (this.container) {\n const offset = this.container.getBoundingClientRect();\n const targetTop = offset.top;\n const targetLeft = offset.left;\n const width = TooltipService.getOuterWidth(this.container);\n const height = TooltipService.getOuterHeight(this.container);\n const viewport = TooltipService.getViewport();\n\n return targetLeft + width > viewport.width || targetLeft < 0 || targetTop < 0 || targetTop + height > viewport.height;\n } else {\n return false;\n }\n }\n\n remove(): void {\n if (this.container && this.container.parentElement) {\n document.body.removeChild(this.container);\n }\n\n this.clearTimeouts();\n this._externallyTriggerred = false;\n this.container = undefined;\n }\n\n clearShowTimeout() {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = undefined;\n }\n }\n\n clearHideTimeout() {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = undefined;\n }\n }\n\n clearTimeouts() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n }\n\n updateText() {\n const apTooltip = this.apTooltip();\n if (apTooltip instanceof TemplateRef) {\n const embeddedViewRef = this.viewContainerRef.createEmbeddedView(apTooltip);\n embeddedViewRef.context = this.apTooltipTemplateContext();\n embeddedViewRef.detectChanges();\n embeddedViewRef.rootNodes.forEach(node => this.tooltipText?.appendChild(node));\n } else if (this.tooltipText) {\n this.tooltipText.innerHTML = apTooltip ? DOMPurify.sanitize(apTooltip) : '';\n }\n }\n\n setCssVariables(): void {\n if (this.container) {\n this.container.style.setProperty('--ap-tooltip-height', this.container.offsetHeight + 'px');\n }\n }\n\n private removePreviousAlignHtmlClasses() {\n if (this.container) {\n this.container.classList.remove(\n 'ap-tooltip-top',\n 'ap-tooltip-top-left',\n 'ap-tooltip-top-right',\n 'ap-tooltip-bottom',\n 'ap-tooltip-bottom-left',\n 'ap-tooltip-bottom-right',\n 'ap-tooltip-left',\n 'ap-tooltip-right'\n );\n }\n }\n\n private addDocumentClickListener() {\n if (this.documentClickListener) return;\n this.zone.runOutsideAngular(() => {\n this.documentClickListener = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n if (this.container && !this.container.contains(target) && !this.nativeElement.contains(target)) {\n this.deactivate();\n }\n };\n\n document.addEventListener('click', this.documentClickListener);\n });\n }\n\n private removeDocumentClickListener() {\n if (!this.documentClickListener) return;\n\n document.removeEventListener('click', this.documentClickListener);\n this.documentClickListener = undefined;\n }\n\n get externallyTriggerred(): boolean {\n return this._externallyTriggerred;\n }\n\n set externallyTriggerred(value: boolean) {\n this._externallyTriggerred = value;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
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": "21.1.6-beta.1",
4
+ "version": "21.1.7",
5
5
  "author": "Benoit Hediard",
6
6
  "repository": {
7
7
  "type": "git",
@@ -185,6 +185,13 @@ declare class SelectLabelMultipleComponent {
185
185
  roundedAvatar: _angular_core.InputSignal<boolean>;
186
186
  bindNetwork: _angular_core.InputSignal<string>;
187
187
  removeItem: _angular_core.OutputEmitterRef<any>;
188
+ /**
189
+ * Parent ng-select, resolved through the DI chain of the `ng-multi-label-tmp` template.
190
+ * `optional` so the component still works when rendered outside a ng-select.
191
+ */
192
+ private readonly ngSelect;
193
+ /** True when the whole select is disabled/readonly — hides every tag/label remove button. */
194
+ protected readonly selectDisabled: _angular_core.Signal<boolean>;
188
195
  selectedLabels: _angular_core.Signal<{
189
196
  label: any;
190
197
  avatarUrl: any;