ng-implementation/my-workspace/projects/sae-lib/inputs/multi-selector/multi-selector.html

74 lines
1.7 KiB
HTML
Raw Normal View History

2025-08-22 11:57:56 +02:00
<!-- sélecteurs-->
2025-09-10 16:02:31 +02:00
<div [ngClass]="{
'is-disabled': disabled
}"
class="input-box"
>
2025-09-15 13:03:21 +02:00
2025-09-02 13:58:35 +02:00
<i class="ri-search-line search-placeholder"></i>
<div class="label">
2025-09-23 18:54:13 +02:00
<span class="d-none">
2025-09-02 13:58:35 +02:00
{{ label }}
2025-09-23 18:54:13 +02:00
</span>
2025-09-02 13:58:35 +02:00
</div>
2025-09-10 16:02:31 +02:00
<input
2025-09-23 18:54:13 +02:00
(blur)="displayDropdown = false"
2025-09-15 16:09:20 +02:00
(click)="onClickInput()"
(focus)="displayDropdown = true"
(input)="onSearchInput($event)"
class=""
placeholder="{{label}}"
2025-09-10 16:02:31 +02:00
type="text">
2025-09-25 16:55:38 +02:00
2025-09-15 13:03:21 +02:00
<span [ngClass]="{ 'is-visible' : selectedChoices?.length}"
class="selected-items-counter">
2025-09-15 16:09:20 +02:00
{{ selectedChoices?.length || 0 }}
2025-09-15 13:03:21 +02:00
</span>
2025-09-23 18:54:13 +02:00
<div (click)="onClickInput()" class="dropdown-button selector-button">
2025-09-10 16:02:31 +02:00
<!-- bouton-->
<i class="ri-arrow-down-s-line"></i>
</div>
2025-09-25 16:22:43 +02:00
@if (displayDropdown ) {
2025-08-22 11:57:56 +02:00
2025-09-10 16:02:31 +02:00
2025-09-23 18:54:13 +02:00
<div class="dropdown">
2025-09-02 14:40:47 +02:00
<div class="dropdown-list">
<!-- selected:-->
2025-09-23 18:54:13 +02:00
@if (selectedChoices?.length && availableChoices?.length) {
<div class="selected-items">
2025-09-25 16:22:43 +02:00
@for(sc of getFilteredSelectedChoices(); track sc.value){
2025-09-23 18:54:13 +02:00
<div (click)="selectedChoicesChangeToggleItem(sc)"
2025-09-25 16:22:43 +02:00
2025-09-23 18:54:13 +02:00
class="dropdown-item"
2025-09-10 16:02:31 +02:00
>
2025-09-02 14:40:47 +02:00
<i class="ri-checkbox-line"></i>
2025-09-25 16:22:43 +02:00
{{ sc.label }}
2025-09-02 14:40:47 +02:00
</div>
2025-09-25 16:22:43 +02:00
}
2025-09-23 18:54:13 +02:00
</div>
2025-09-10 16:02:31 +02:00
<hr>
}
2025-09-02 14:40:47 +02:00
<div class="available-items">
2025-09-25 16:22:43 +02:00
2025-09-25 17:43:02 +02:00
<!-- disponibles:-->
2025-09-02 14:40:47 +02:00
<!-- available:-->
@for(ac of getFilteredAvailableChoices(); track ac.value){
2025-09-25 16:55:38 +02:00
<div (click)="availableChoicesChangeToggleItem(ac)"
2025-09-25 16:22:43 +02:00
class="dropdown-item"
>
<i class="ri-checkbox-line"></i>
2025-09-25 16:55:38 +02:00
{{ ac.label }}
2025-09-25 16:22:43 +02:00
</div>
}
2025-08-22 11:57:56 +02:00
</div>
</div>
</div>
2025-09-02 14:40:47 +02:00
}
2025-09-25 16:55:38 +02:00
2025-08-22 11:57:56 +02:00
</div>