primeng 20.1.2 → 20.2.0
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.
- package/accordion/index.d.ts +2 -2
- package/animateonscroll/index.d.ts +2 -2
- package/api/index.d.ts +4 -3
- package/autocomplete/index.d.ts +59 -13
- package/avatargroup/index.d.ts +2 -2
- package/badge/index.d.ts +5 -5
- package/base/index.d.ts +6 -6
- package/basecomponent/index.d.ts +1 -1
- package/baseeditableholder/index.d.ts +4 -4
- package/baseinput/index.d.ts +12 -12
- package/breadcrumb/index.d.ts +1 -2
- package/button/index.d.ts +10 -10
- package/card/index.d.ts +1 -1
- package/carousel/index.d.ts +6 -6
- package/cascadeselect/index.d.ts +9 -9
- package/checkbox/index.d.ts +3 -3
- package/chip/index.d.ts +14 -4
- package/classnames/index.d.ts +38 -0
- package/config/index.d.ts +2 -2
- package/confirmdialog/index.d.ts +3 -3
- package/contextmenu/index.d.ts +4 -4
- package/dataview/index.d.ts +1 -1
- package/datepicker/index.d.ts +1 -1
- package/dialog/index.d.ts +4 -3
- package/divider/index.d.ts +2 -2
- package/dock/index.d.ts +2 -2
- package/dom/index.d.ts +4 -4
- package/dynamicdialog/index.d.ts +14 -14
- package/fesm2022/primeng-accordion.mjs +33 -21
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-animateonscroll.mjs +8 -8
- package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs +31 -31
- package/fesm2022/primeng-autocomplete.mjs +180 -50
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-autofocus.mjs +7 -7
- package/fesm2022/primeng-avatar.mjs +10 -10
- package/fesm2022/primeng-avatargroup.mjs +10 -10
- package/fesm2022/primeng-badge.mjs +15 -15
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-base.mjs +3 -3
- package/fesm2022/primeng-base.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +6 -6
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-baseeditableholder.mjs +3 -3
- package/fesm2022/primeng-baseinput.mjs +3 -3
- package/fesm2022/primeng-baseinput.mjs.map +1 -1
- package/fesm2022/primeng-basemodelholder.mjs +3 -3
- package/fesm2022/primeng-blockui.mjs +10 -10
- package/fesm2022/primeng-breadcrumb.mjs +21 -21
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +24 -23
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +10 -10
- package/fesm2022/primeng-card.mjs +10 -10
- package/fesm2022/primeng-carousel.mjs +23 -23
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +31 -25
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +10 -10
- package/fesm2022/primeng-checkbox.mjs +15 -14
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +48 -17
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-classnames.mjs +73 -0
- package/fesm2022/primeng-classnames.mjs.map +1 -0
- package/fesm2022/primeng-colorpicker.mjs +11 -11
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-config.mjs +8 -7
- package/fesm2022/primeng-config.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +16 -10
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +24 -22
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +24 -22
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +11 -11
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +23 -23
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +34 -15
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +10 -10
- package/fesm2022/primeng-dock.mjs +27 -25
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-dom.mjs +13 -10
- package/fesm2022/primeng-dom.mjs.map +1 -1
- package/fesm2022/primeng-dragdrop.mjs +10 -10
- package/fesm2022/primeng-drawer.mjs +28 -19
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +48 -39
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +11 -11
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +12 -11
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +15 -15
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +10 -10
- package/fesm2022/primeng-fluid.mjs +10 -12
- package/fesm2022/primeng-fluid.mjs.map +1 -1
- package/fesm2022/primeng-focustrap.mjs +7 -7
- package/fesm2022/primeng-focustrap.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +42 -38
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +10 -10
- package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
- package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
- package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
- package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
- package/fesm2022/primeng-icons-angledown.mjs +3 -3
- package/fesm2022/primeng-icons-angleleft.mjs +3 -3
- package/fesm2022/primeng-icons-angleright.mjs +3 -3
- package/fesm2022/primeng-icons-angleup.mjs +3 -3
- package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
- package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
- package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
- package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
- package/fesm2022/primeng-icons-arrowright.mjs +3 -3
- package/fesm2022/primeng-icons-arrowup.mjs +3 -3
- package/fesm2022/primeng-icons-ban.mjs +3 -3
- package/fesm2022/primeng-icons-bars.mjs +3 -3
- package/fesm2022/primeng-icons-baseicon.mjs +6 -6
- package/fesm2022/primeng-icons-blank.mjs +3 -3
- package/fesm2022/primeng-icons-calendar.mjs +3 -3
- package/fesm2022/primeng-icons-caretleft.mjs +3 -3
- package/fesm2022/primeng-icons-caretright.mjs +3 -3
- package/fesm2022/primeng-icons-check.mjs +3 -3
- package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
- package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
- package/fesm2022/primeng-icons-chevronright.mjs +3 -3
- package/fesm2022/primeng-icons-chevronup.mjs +3 -3
- package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
- package/fesm2022/primeng-icons-eye.mjs +3 -3
- package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
- package/fesm2022/primeng-icons-filter.mjs +3 -3
- package/fesm2022/primeng-icons-filterfill.mjs +3 -3
- package/fesm2022/primeng-icons-filterslash.mjs +3 -3
- package/fesm2022/primeng-icons-home.mjs +3 -3
- package/fesm2022/primeng-icons-infocircle.mjs +3 -3
- package/fesm2022/primeng-icons-minus.mjs +3 -3
- package/fesm2022/primeng-icons-pencil.mjs +3 -3
- package/fesm2022/primeng-icons-plus.mjs +3 -3
- package/fesm2022/primeng-icons-refresh.mjs +3 -3
- package/fesm2022/primeng-icons-search.mjs +3 -3
- package/fesm2022/primeng-icons-searchminus.mjs +3 -3
- package/fesm2022/primeng-icons-searchplus.mjs +3 -3
- package/fesm2022/primeng-icons-sortalt.mjs +3 -3
- package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
- package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
- package/fesm2022/primeng-icons-spinner.mjs +3 -3
- package/fesm2022/primeng-icons-star.mjs +3 -3
- package/fesm2022/primeng-icons-starfill.mjs +3 -3
- package/fesm2022/primeng-icons-thlarge.mjs +3 -3
- package/fesm2022/primeng-icons-times.mjs +3 -3
- package/fesm2022/primeng-icons-timescircle.mjs +3 -3
- package/fesm2022/primeng-icons-trash.mjs +3 -3
- package/fesm2022/primeng-icons-undo.mjs +3 -3
- package/fesm2022/primeng-icons-upload.mjs +3 -3
- package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
- package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
- package/fesm2022/primeng-iftalabel.mjs +10 -10
- package/fesm2022/primeng-image.mjs +19 -16
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-imagecompare.mjs +10 -10
- package/fesm2022/primeng-inplace.mjs +16 -16
- package/fesm2022/primeng-inputgroup.mjs +10 -10
- package/fesm2022/primeng-inputgroupaddon.mjs +10 -10
- package/fesm2022/primeng-inputicon.mjs +10 -10
- package/fesm2022/primeng-inputmask.mjs +22 -13
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +52 -31
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +11 -11
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +10 -10
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-keyfilter.mjs +19 -10
- package/fesm2022/primeng-keyfilter.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +10 -10
- package/fesm2022/primeng-listbox.mjs +124 -43
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +22 -20
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +35 -44
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +28 -27
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +33 -30
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +27 -18
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +58 -48
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +149 -43
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +13 -13
- package/fesm2022/primeng-overlay.mjs +15 -11
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +10 -10
- package/fesm2022/primeng-paginator.mjs +11 -11
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +11 -11
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +27 -26
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +25 -21
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +129 -48
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +11 -11
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +10 -10
- package/fesm2022/primeng-progressspinner.mjs +10 -10
- package/fesm2022/primeng-radiobutton.mjs +15 -15
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +11 -11
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +10 -10
- package/fesm2022/primeng-scroller.mjs +10 -10
- package/fesm2022/primeng-scrollpanel.mjs +19 -19
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +10 -10
- package/fesm2022/primeng-select.mjs +56 -38
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +12 -12
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +10 -10
- package/fesm2022/primeng-slider.mjs +14 -14
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +32 -24
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +15 -15
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +21 -21
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +43 -43
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +15 -15
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-styleclass.mjs +8 -8
- package/fesm2022/primeng-styleclass.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +178 -158
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +99 -55
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +10 -10
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +13 -13
- package/fesm2022/primeng-textarea.mjs +11 -11
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +26 -25
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +10 -10
- package/fesm2022/primeng-toast.mjs +14 -13
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +20 -13
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +10 -10
- package/fesm2022/primeng-toolbar.mjs +10 -10
- package/fesm2022/primeng-tooltip.mjs +16 -15
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +170 -221
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +17 -17
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +84 -77
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/fesm2022/primeng-usestyle.mjs +20 -18
- package/fesm2022/primeng-usestyle.mjs.map +1 -1
- package/fesm2022/primeng-utils.mjs.map +1 -1
- package/fieldset/index.d.ts +3 -2
- package/fileupload/index.d.ts +6 -6
- package/fluid/index.d.ts +0 -2
- package/galleria/index.d.ts +10 -10
- package/icons/baseicon/index.d.ts +1 -1
- package/image/index.d.ts +7 -7
- package/inputnumber/index.d.ts +7 -7
- package/inputotp/index.d.ts +3 -3
- package/inputtext/index.d.ts +6 -6
- package/keyfilter/index.d.ts +2 -2
- package/listbox/index.d.ts +31 -19
- package/megamenu/index.d.ts +1 -1
- package/menu/index.d.ts +1 -2
- package/message/index.d.ts +3 -2
- package/metergroup/index.d.ts +6 -6
- package/multiselect/index.d.ts +18 -17
- package/orderlist/index.d.ts +13 -7
- package/organizationchart/index.d.ts +2 -2
- package/overlay/index.d.ts +5 -5
- package/package.json +198 -194
- package/paginator/index.d.ts +1 -1
- package/panel/index.d.ts +2 -2
- package/panelmenu/index.d.ts +8 -8
- package/password/index.d.ts +6 -6
- package/picklist/index.d.ts +17 -12
- package/radiobutton/index.d.ts +3 -3
- package/rating/index.d.ts +1 -1
- package/scroller/index.d.ts +3 -3
- package/select/index.d.ts +11 -11
- package/selectbutton/index.d.ts +3 -3
- package/slider/index.d.ts +2 -2
- package/speeddial/index.d.ts +9 -9
- package/splitter/index.d.ts +3 -3
- package/stepper/index.d.ts +4 -4
- package/steps/index.d.ts +3 -3
- package/table/index.d.ts +39 -31
- package/tabs/index.d.ts +23 -8
- package/tag/index.d.ts +1 -1
- package/textarea/index.d.ts +6 -6
- package/tieredmenu/index.d.ts +1 -1
- package/toast/index.d.ts +5 -5
- package/togglebutton/index.d.ts +4 -3
- package/toggleswitch/index.d.ts +1 -1
- package/tooltip/index.d.ts +11 -11
- package/tree/index.d.ts +31 -46
- package/treeselect/index.d.ts +6 -6
- package/treetable/index.d.ts +10 -10
- package/usestyle/index.d.ts +2 -2
- package/utils/index.d.ts +2 -2
@@ -1,9 +1,9 @@
|
|
1
1
|
import * as i4 from '@angular/cdk/drag-drop';
|
2
|
-
import { DragDropModule, CDK_DRAG_CONFIG } from '@angular/cdk/drag-drop';
|
2
|
+
import { moveItemInArray, DragDropModule, CDK_DRAG_CONFIG } from '@angular/cdk/drag-drop';
|
3
3
|
import * as i2 from '@angular/common';
|
4
4
|
import { CommonModule } from '@angular/common';
|
5
5
|
import * as i0 from '@angular/core';
|
6
|
-
import { Injectable, forwardRef, input, booleanAttribute, EventEmitter, signal, inject,
|
6
|
+
import { Injectable, forwardRef, computed, input, booleanAttribute, EventEmitter, signal, inject, numberAttribute, HostListener, ContentChildren, ContentChild, ViewChild, Output, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
7
7
|
import * as i3 from '@angular/forms';
|
8
8
|
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
9
9
|
import { isNotEmpty, uuid, equals, focus, getFirstFocusableElement, isEmpty, isPrintableCharacter, resolveFieldData, findSingle, findLastIndex, isFunction } from '@primeuix/utils';
|
@@ -36,6 +36,28 @@ const theme = /*css*/ `
|
|
36
36
|
.p-listbox-header > .p-iconfield {
|
37
37
|
flex-grow: 1;
|
38
38
|
}
|
39
|
+
|
40
|
+
.p-listbox-list-container {
|
41
|
+
height: 100%;
|
42
|
+
}
|
43
|
+
|
44
|
+
/* CDK Drag & Drop styles */
|
45
|
+
.p-listbox-option.cdk-drag-preview {
|
46
|
+
background: dt('listbox.background');
|
47
|
+
}
|
48
|
+
|
49
|
+
.p-listbox-dragging .p-listbox-option:not(.cdk-drag-preview) {
|
50
|
+
pointer-events: none !important;
|
51
|
+
}
|
52
|
+
|
53
|
+
.p-listbox-dragging .p-listbox-option:not(.cdk-drag-preview):hover {
|
54
|
+
background: inherit !important;
|
55
|
+
color: inherit !important;
|
56
|
+
}
|
57
|
+
|
58
|
+
.cdk-drag-placeholder {
|
59
|
+
pointer-events: none;
|
60
|
+
}
|
39
61
|
`;
|
40
62
|
const classes = {
|
41
63
|
root: ({ instance }) => [
|
@@ -68,10 +90,10 @@ class ListBoxStyle extends BaseStyle {
|
|
68
90
|
name = 'listbox';
|
69
91
|
theme = theme;
|
70
92
|
classes = classes;
|
71
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
72
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
93
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListBoxStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
94
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListBoxStyle });
|
73
95
|
}
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListBoxStyle, decorators: [{
|
75
97
|
type: Injectable
|
76
98
|
}] });
|
77
99
|
/**
|
@@ -357,7 +379,7 @@ class Listbox extends BaseEditableHolder {
|
|
357
379
|
* @group Props
|
358
380
|
*/
|
359
381
|
get filterValue() {
|
360
|
-
return this._filterValue();
|
382
|
+
return this._filterValue() || '';
|
361
383
|
}
|
362
384
|
set filterValue(val) {
|
363
385
|
this._filterValue.set(val);
|
@@ -395,6 +417,17 @@ class Listbox extends BaseEditableHolder {
|
|
395
417
|
* @group Props
|
396
418
|
*/
|
397
419
|
dragdrop = false;
|
420
|
+
/**
|
421
|
+
* Array to use for CDK drop list data binding. When not provided, uses options array.
|
422
|
+
* @group Props
|
423
|
+
*/
|
424
|
+
dropListData;
|
425
|
+
/**
|
426
|
+
* Computed property for stable CDK drop list data reference
|
427
|
+
*/
|
428
|
+
cdkDropData = computed(() => {
|
429
|
+
return this.dropListData || this._options();
|
430
|
+
}, ...(ngDevMode ? [{ debugName: "cdkDropData" }] : []));
|
398
431
|
/**
|
399
432
|
* Spans 100% width of the container when enabled.
|
400
433
|
* @defaultValue undefined
|
@@ -585,6 +618,7 @@ class Listbox extends BaseEditableHolder {
|
|
585
618
|
_options = signal(null, ...(ngDevMode ? [{ debugName: "_options" }] : []));
|
586
619
|
startRangeIndex = signal(-1, ...(ngDevMode ? [{ debugName: "startRangeIndex" }] : []));
|
587
620
|
focusedOptionIndex = signal(-1, ...(ngDevMode ? [{ debugName: "focusedOptionIndex" }] : []));
|
621
|
+
isDragging = signal(false, ...(ngDevMode ? [{ debugName: "isDragging" }] : []));
|
588
622
|
onHostFocusOut(event) {
|
589
623
|
this.onFocusout(event);
|
590
624
|
}
|
@@ -678,7 +712,7 @@ class Listbox extends BaseEditableHolder {
|
|
678
712
|
this.onChange.emit({ originalEvent: event, value: this.value });
|
679
713
|
}
|
680
714
|
removeOption(option) {
|
681
|
-
return this.modelValue().filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey()));
|
715
|
+
return this.modelValue().filter((val) => !equals(val, this.getOptionValue(option), this.equalityKey() || ''));
|
682
716
|
}
|
683
717
|
onOptionSelect(event, option, index = -1) {
|
684
718
|
if (this.$disabled() || this.isOptionDisabled(option) || this.readonly) {
|
@@ -691,7 +725,7 @@ class Listbox extends BaseEditableHolder {
|
|
691
725
|
}
|
692
726
|
onOptionSelectMultiple(event, option) {
|
693
727
|
let selected = this.isSelected(option);
|
694
|
-
let value =
|
728
|
+
let value = [];
|
695
729
|
let metaSelection = this.optionTouched ? false : this.metaKeySelection;
|
696
730
|
if (metaSelection) {
|
697
731
|
let metaKey = event.metaKey || event.ctrlKey;
|
@@ -700,7 +734,7 @@ class Listbox extends BaseEditableHolder {
|
|
700
734
|
}
|
701
735
|
else {
|
702
736
|
value = metaKey ? this.modelValue() || [] : [];
|
703
|
-
value = [...value, this.getOptionValue(option)];
|
737
|
+
value = [...(value || []), this.getOptionValue(option)];
|
704
738
|
}
|
705
739
|
}
|
706
740
|
else {
|
@@ -751,7 +785,7 @@ class Listbox extends BaseEditableHolder {
|
|
751
785
|
if (this.$disabled() || this.readonly) {
|
752
786
|
return;
|
753
787
|
}
|
754
|
-
focus(this.headerCheckboxViewChild
|
788
|
+
focus(this.headerCheckboxViewChild?.nativeElement);
|
755
789
|
if (this.selectAll !== null) {
|
756
790
|
this.onSelectAllChange.emit({
|
757
791
|
originalEvent: event,
|
@@ -797,21 +831,21 @@ class Listbox extends BaseEditableHolder {
|
|
797
831
|
}
|
798
832
|
onFirstHiddenFocus(event) {
|
799
833
|
focus(this.listViewChild?.nativeElement);
|
800
|
-
const firstFocusableEl = getFirstFocusableElement(this.el
|
801
|
-
this.lastHiddenFocusableElement.nativeElement.tabIndex = isEmpty(firstFocusableEl) ?
|
802
|
-
this.firstHiddenFocusableElement.nativeElement.tabIndex = -1;
|
834
|
+
const firstFocusableEl = getFirstFocusableElement(this.el?.nativeElement, ':not([data-p-hidden-focusable="true"])');
|
835
|
+
this.lastHiddenFocusableElement?.nativeElement && (this.lastHiddenFocusableElement.nativeElement.tabIndex = isEmpty(firstFocusableEl) ? -1 : undefined);
|
836
|
+
this.firstHiddenFocusableElement?.nativeElement && (this.firstHiddenFocusableElement.nativeElement.tabIndex = -1);
|
803
837
|
}
|
804
838
|
onLastHiddenFocus(event) {
|
805
839
|
const relatedTarget = event.relatedTarget;
|
806
840
|
if (relatedTarget === this.listViewChild?.nativeElement) {
|
807
|
-
const firstFocusableEl = getFirstFocusableElement(this.el
|
841
|
+
const firstFocusableEl = getFirstFocusableElement(this.el?.nativeElement, ':not(.p-hidden-focusable)');
|
808
842
|
focus(firstFocusableEl);
|
809
|
-
this.firstHiddenFocusableElement.nativeElement.tabIndex = undefined;
|
843
|
+
this.firstHiddenFocusableElement?.nativeElement && (this.firstHiddenFocusableElement.nativeElement.tabIndex = undefined);
|
810
844
|
}
|
811
845
|
else {
|
812
|
-
focus(this.firstHiddenFocusableElement
|
846
|
+
focus(this.firstHiddenFocusableElement?.nativeElement);
|
813
847
|
}
|
814
|
-
this.lastHiddenFocusableElement.nativeElement.tabIndex = -1;
|
848
|
+
this.lastHiddenFocusableElement?.nativeElement && (this.lastHiddenFocusableElement.nativeElement.tabIndex = -1);
|
815
849
|
}
|
816
850
|
onFocusout(event) {
|
817
851
|
if (!this.el.nativeElement.contains(event.relatedTarget) && this.lastHiddenFocusableElement && this.firstHiddenFocusableElement) {
|
@@ -863,7 +897,7 @@ class Listbox extends BaseEditableHolder {
|
|
863
897
|
this.focusedOptionIndex.set(-1);
|
864
898
|
this.startRangeIndex.set(-1);
|
865
899
|
this.onFilter.emit({ originalEvent: event, filter: this._filterValue() });
|
866
|
-
!this.virtualScrollerDisabled && this.scroller
|
900
|
+
!this.virtualScrollerDisabled && this.scroller?.scrollToIndex(0);
|
867
901
|
}
|
868
902
|
onFilterBlur(event) {
|
869
903
|
this.focusedOptionIndex.set(-1);
|
@@ -1097,7 +1131,7 @@ class Listbox extends BaseEditableHolder {
|
|
1097
1131
|
return matched;
|
1098
1132
|
}
|
1099
1133
|
isOptionMatched(option) {
|
1100
|
-
return this.isValidOption(option) && this.getOptionLabel(option)
|
1134
|
+
return this.isValidOption(option) && this.getOptionLabel(option)?.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue?.toLocaleLowerCase(this.filterLocale));
|
1101
1135
|
}
|
1102
1136
|
scrollInView(index = -1) {
|
1103
1137
|
const id = index !== -1 ? `${this.id}_${index}` : this.focusedOptionId;
|
@@ -1106,7 +1140,7 @@ class Listbox extends BaseEditableHolder {
|
|
1106
1140
|
element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
|
1107
1141
|
}
|
1108
1142
|
else if (!this.virtualScrollerDisabled) {
|
1109
|
-
this.virtualScroll && this.scroller
|
1143
|
+
this.virtualScroll && this.scroller?.scrollToIndex(index !== -1 ? index : this.focusedOptionIndex());
|
1110
1144
|
}
|
1111
1145
|
}
|
1112
1146
|
findFirstOptionIndex() {
|
@@ -1154,7 +1188,7 @@ class Listbox extends BaseEditableHolder {
|
|
1154
1188
|
return matchedOptionIndex > -1 ? matchedOptionIndex : index;
|
1155
1189
|
}
|
1156
1190
|
findSelectedOptionIndex() {
|
1157
|
-
if (this.$filled) {
|
1191
|
+
if (this.$filled()) {
|
1158
1192
|
if (this.multiple) {
|
1159
1193
|
for (let index = this.modelValue().length - 1; index >= 0; index--) {
|
1160
1194
|
const value = this.modelValue()[index];
|
@@ -1196,7 +1230,7 @@ class Listbox extends BaseEditableHolder {
|
|
1196
1230
|
return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;
|
1197
1231
|
}
|
1198
1232
|
isEquals(value1, value2) {
|
1199
|
-
return equals(value1, value2, this.equalityKey());
|
1233
|
+
return equals(value1, value2, this.equalityKey() || '');
|
1200
1234
|
}
|
1201
1235
|
isSelected(option) {
|
1202
1236
|
const optionValue = this.getOptionValue(option);
|
@@ -1212,7 +1246,7 @@ class Listbox extends BaseEditableHolder {
|
|
1212
1246
|
return !this._options()?.length || !this.visibleOptions()?.length;
|
1213
1247
|
}
|
1214
1248
|
hasFilter() {
|
1215
|
-
return this._filterValue() && this._filterValue()
|
1249
|
+
return this._filterValue() && (this._filterValue()?.trim().length || 0) > 0;
|
1216
1250
|
}
|
1217
1251
|
resetFilter() {
|
1218
1252
|
if (this.filterViewChild && this.filterViewChild.nativeElement) {
|
@@ -1220,8 +1254,29 @@ class Listbox extends BaseEditableHolder {
|
|
1220
1254
|
}
|
1221
1255
|
this._filterValue.set(null);
|
1222
1256
|
}
|
1257
|
+
onDragEntered() {
|
1258
|
+
this.isDragging.set(true);
|
1259
|
+
}
|
1260
|
+
onDragExited() {
|
1261
|
+
this.isDragging.set(false);
|
1262
|
+
}
|
1223
1263
|
drop(event) {
|
1264
|
+
this.isDragging.set(false);
|
1224
1265
|
if (event) {
|
1266
|
+
// If dragdrop is enabled and same container (reordering), automatically handle reordering
|
1267
|
+
if (this.dragdrop && event.previousContainer === event.container) {
|
1268
|
+
const currentOptions = [...this._options()];
|
1269
|
+
moveItemInArray(currentOptions, event.previousIndex, event.currentIndex);
|
1270
|
+
this._options.set(currentOptions);
|
1271
|
+
// Update model value if needed for selection preservation
|
1272
|
+
if (this.modelValue()) {
|
1273
|
+
this.writeModelValue(this.modelValue());
|
1274
|
+
this.onModelChange(this.modelValue());
|
1275
|
+
}
|
1276
|
+
// Mark for change detection
|
1277
|
+
this.cd.markForCheck();
|
1278
|
+
}
|
1279
|
+
// Always emit the event for custom handling
|
1225
1280
|
this.onDrop.emit(event);
|
1226
1281
|
}
|
1227
1282
|
}
|
@@ -1242,8 +1297,8 @@ class Listbox extends BaseEditableHolder {
|
|
1242
1297
|
}
|
1243
1298
|
super.ngOnDestroy();
|
1244
1299
|
}
|
1245
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
1246
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
1300
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: Listbox, deps: [{ token: i1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
|
1301
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.2", type: Listbox, isStandalone: true, selector: "p-listbox, p-listBox, p-list-box", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, searchMessage: { classPropertyName: "searchMessage", publicName: "searchMessage", isSignal: false, isRequired: false, transformFunction: null }, emptySelectionMessage: { classPropertyName: "emptySelectionMessage", publicName: "emptySelectionMessage", isSignal: false, isRequired: false, transformFunction: null }, selectionMessage: { classPropertyName: "selectionMessage", publicName: "selectionMessage", isSignal: false, isRequired: false, transformFunction: null }, autoOptionFocus: { classPropertyName: "autoOptionFocus", publicName: "autoOptionFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: false, isRequired: false, transformFunction: null }, selectOnFocus: { classPropertyName: "selectOnFocus", publicName: "selectOnFocus", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, searchLocale: { classPropertyName: "searchLocale", publicName: "searchLocale", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, focusOnHover: { classPropertyName: "focusOnHover", publicName: "focusOnHover", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterMessage: { classPropertyName: "filterMessage", publicName: "filterMessage", isSignal: false, isRequired: false, transformFunction: null }, filterFields: { classPropertyName: "filterFields", publicName: "filterFields", isSignal: false, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: false, isRequired: false, transformFunction: numberAttribute }, virtualScrollOptions: { classPropertyName: "virtualScrollOptions", publicName: "virtualScrollOptions", isSignal: false, isRequired: false, transformFunction: null }, scrollHeight: { classPropertyName: "scrollHeight", publicName: "scrollHeight", isSignal: false, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: false, isRequired: false, transformFunction: null }, listStyle: { classPropertyName: "listStyle", publicName: "listStyle", isSignal: false, isRequired: false, transformFunction: null }, listStyleClass: { classPropertyName: "listStyleClass", publicName: "listStyleClass", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, checkbox: { classPropertyName: "checkbox", publicName: "checkbox", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: false, isRequired: false, transformFunction: null }, filterMatchMode: { classPropertyName: "filterMatchMode", publicName: "filterMatchMode", isSignal: false, isRequired: false, transformFunction: null }, filterLocale: { classPropertyName: "filterLocale", publicName: "filterLocale", isSignal: false, isRequired: false, transformFunction: null }, metaKeySelection: { classPropertyName: "metaKeySelection", publicName: "metaKeySelection", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: false, isRequired: false, transformFunction: null }, showToggleAll: { classPropertyName: "showToggleAll", publicName: "showToggleAll", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: false, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: false, isRequired: false, transformFunction: null }, optionGroupChildren: { classPropertyName: "optionGroupChildren", publicName: "optionGroupChildren", isSignal: false, isRequired: false, transformFunction: null }, optionGroupLabel: { classPropertyName: "optionGroupLabel", publicName: "optionGroupLabel", isSignal: false, isRequired: false, transformFunction: null }, optionDisabled: { classPropertyName: "optionDisabled", publicName: "optionDisabled", isSignal: false, isRequired: false, transformFunction: null }, ariaFilterLabel: { classPropertyName: "ariaFilterLabel", publicName: "ariaFilterLabel", isSignal: false, isRequired: false, transformFunction: null }, filterPlaceHolder: { classPropertyName: "filterPlaceHolder", publicName: "filterPlaceHolder", isSignal: false, isRequired: false, transformFunction: null }, emptyFilterMessage: { classPropertyName: "emptyFilterMessage", publicName: "emptyFilterMessage", isSignal: false, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: false, isRequired: false, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, options: { classPropertyName: "options", publicName: "options", isSignal: false, isRequired: false, transformFunction: null }, filterValue: { classPropertyName: "filterValue", publicName: "filterValue", isSignal: false, isRequired: false, transformFunction: null }, selectAll: { classPropertyName: "selectAll", publicName: "selectAll", isSignal: false, isRequired: false, transformFunction: null }, striped: { classPropertyName: "striped", publicName: "striped", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, highlightOnSelect: { classPropertyName: "highlightOnSelect", publicName: "highlightOnSelect", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, checkmark: { classPropertyName: "checkmark", publicName: "checkmark", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dragdrop: { classPropertyName: "dragdrop", publicName: "dragdrop", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, dropListData: { classPropertyName: "dropListData", publicName: "dropListData", isSignal: false, isRequired: false, transformFunction: null }, fluid: { classPropertyName: "fluid", publicName: "fluid", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange", onClick: "onClick", onDblClick: "onDblClick", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onSelectAllChange: "onSelectAllChange", onLazyLoad: "onLazyLoad", onDrop: "onDrop" }, host: { listeners: { "focusout": "onHostFocusOut($event)" }, properties: { "attr.id": "id", "class": "cn(cx('root'), styleClass, { 'p-listbox-dragging': isDragging() })" } }, providers: [
|
1247
1302
|
LISTBOX_VALUE_ACCESSOR,
|
1248
1303
|
ListBoxStyle,
|
1249
1304
|
{
|
@@ -1313,9 +1368,19 @@ class Listbox extends BaseEditableHolder {
|
|
1313
1368
|
</span>
|
1314
1369
|
</ng-template>
|
1315
1370
|
</div>
|
1316
|
-
<div
|
1371
|
+
<div
|
1372
|
+
#container
|
1373
|
+
[class]="cn(cx('listContainer'), listStyleClass)"
|
1374
|
+
[ngStyle]="listStyle"
|
1375
|
+
[style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'"
|
1376
|
+
cdkDropList
|
1377
|
+
[cdkDropListData]="cdkDropData()"
|
1378
|
+
(cdkDropListDropped)="drop($event)"
|
1379
|
+
(cdkDropListEntered)="onDragEntered()"
|
1380
|
+
(cdkDropListExited)="onDragExited()"
|
1381
|
+
>
|
1317
1382
|
@if (hasFilter() && isEmpty()) {
|
1318
|
-
<div [class]="cx('emptyMessage')"
|
1383
|
+
<div [class]="cx('emptyMessage')">
|
1319
1384
|
@if (!emptyFilterTemplate && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate) {
|
1320
1385
|
{{ emptyFilterMessageText }}
|
1321
1386
|
} @else {
|
@@ -1323,7 +1388,7 @@ class Listbox extends BaseEditableHolder {
|
|
1323
1388
|
}
|
1324
1389
|
</div>
|
1325
1390
|
} @else if (!hasFilter() && isEmpty()) {
|
1326
|
-
<div [class]="cx('emptyMessage')"
|
1391
|
+
<div [class]="cx('emptyMessage')">
|
1327
1392
|
@if (!emptyTemplate && !_emptyTemplate) {
|
1328
1393
|
{{ emptyMessage }}
|
1329
1394
|
} @else {
|
@@ -1358,6 +1423,7 @@ class Listbox extends BaseEditableHolder {
|
|
1358
1423
|
|
1359
1424
|
<ng-template #buildInItems let-items let-scrollerOptions="options">
|
1360
1425
|
<ul
|
1426
|
+
#list
|
1361
1427
|
[id]="id + '_list'"
|
1362
1428
|
[class]="cx('list')"
|
1363
1429
|
role="listbox"
|
@@ -1371,9 +1437,6 @@ class Listbox extends BaseEditableHolder {
|
|
1371
1437
|
(focus)="onListFocus($event)"
|
1372
1438
|
(blur)="onListBlur($event)"
|
1373
1439
|
(keydown)="onListKeyDown($event)"
|
1374
|
-
cdkDropList
|
1375
|
-
[cdkDropListData]="items"
|
1376
|
-
(cdkDropListDropped)="drop($event)"
|
1377
1440
|
>
|
1378
1441
|
<ng-template ngFor let-option [ngForOf]="items" let-i="index">
|
1379
1442
|
<ng-container *ngIf="isOptionGroup(option)">
|
@@ -1385,6 +1448,8 @@ class Listbox extends BaseEditableHolder {
|
|
1385
1448
|
cdkDrag
|
1386
1449
|
[cdkDragData]="option"
|
1387
1450
|
[cdkDragDisabled]="!dragdrop"
|
1451
|
+
(cdkDragStarted)="isDragging.set(true)"
|
1452
|
+
(cdkDragEnded)="isDragging.set(false)"
|
1388
1453
|
>
|
1389
1454
|
<span *ngIf="!groupTemplate && !_groupTemplate">{{ getOptionGroupLabel(option.optionGroup) }}</span>
|
1390
1455
|
<ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
|
@@ -1412,6 +1477,8 @@ class Listbox extends BaseEditableHolder {
|
|
1412
1477
|
cdkDrag
|
1413
1478
|
[cdkDragData]="option"
|
1414
1479
|
[cdkDragDisabled]="!dragdrop"
|
1480
|
+
(cdkDragStarted)="isDragging.set(true)"
|
1481
|
+
(cdkDragEnded)="isDragging.set(false)"
|
1415
1482
|
>
|
1416
1483
|
<p-checkbox
|
1417
1484
|
*ngIf="checkbox && multiple"
|
@@ -1468,7 +1535,7 @@ class Listbox extends BaseEditableHolder {
|
|
1468
1535
|
<span #lastHiddenFocusableElement role="presentation" class="p-hidden-accessible p-hidden-focusable" [tabindex]="!$disabled() ? tabindex : -1" (focus)="onLastHiddenFocus($event)" [attr.data-p-hidden-focusable]="true"> </span>
|
1469
1536
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "component", type: Scroller, selector: "p-scroller, p-virtualscroller, p-virtual-scroller, p-virtualScroller", inputs: ["id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "component", type: InputIcon, selector: "p-inputicon, p-inputIcon", inputs: ["styleClass"] }, { kind: "component", type: SearchIcon, selector: "[data-p-icon=\"search\"]" }, { kind: "component", type: Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "component", type: CheckIcon, selector: "[data-p-icon=\"check\"]" }, { kind: "component", type: IconField, selector: "p-iconfield, p-iconField, p-icon-field", inputs: ["iconPosition", "styleClass"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "component", type: BlankIcon, selector: "[data-p-icon=\"blank\"]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SharedModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
1470
1537
|
}
|
1471
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
1538
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: Listbox, decorators: [{
|
1472
1539
|
type: Component,
|
1473
1540
|
args: [{
|
1474
1541
|
selector: 'p-listbox, p-listBox, p-list-box',
|
@@ -1535,9 +1602,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
1535
1602
|
</span>
|
1536
1603
|
</ng-template>
|
1537
1604
|
</div>
|
1538
|
-
<div
|
1605
|
+
<div
|
1606
|
+
#container
|
1607
|
+
[class]="cn(cx('listContainer'), listStyleClass)"
|
1608
|
+
[ngStyle]="listStyle"
|
1609
|
+
[style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'"
|
1610
|
+
cdkDropList
|
1611
|
+
[cdkDropListData]="cdkDropData()"
|
1612
|
+
(cdkDropListDropped)="drop($event)"
|
1613
|
+
(cdkDropListEntered)="onDragEntered()"
|
1614
|
+
(cdkDropListExited)="onDragExited()"
|
1615
|
+
>
|
1539
1616
|
@if (hasFilter() && isEmpty()) {
|
1540
|
-
<div [class]="cx('emptyMessage')"
|
1617
|
+
<div [class]="cx('emptyMessage')">
|
1541
1618
|
@if (!emptyFilterTemplate && !_emptyFilterTemplate && !_emptyTemplate && !emptyTemplate) {
|
1542
1619
|
{{ emptyFilterMessageText }}
|
1543
1620
|
} @else {
|
@@ -1545,7 +1622,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
1545
1622
|
}
|
1546
1623
|
</div>
|
1547
1624
|
} @else if (!hasFilter() && isEmpty()) {
|
1548
|
-
<div [class]="cx('emptyMessage')"
|
1625
|
+
<div [class]="cx('emptyMessage')">
|
1549
1626
|
@if (!emptyTemplate && !_emptyTemplate) {
|
1550
1627
|
{{ emptyMessage }}
|
1551
1628
|
} @else {
|
@@ -1580,6 +1657,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
1580
1657
|
|
1581
1658
|
<ng-template #buildInItems let-items let-scrollerOptions="options">
|
1582
1659
|
<ul
|
1660
|
+
#list
|
1583
1661
|
[id]="id + '_list'"
|
1584
1662
|
[class]="cx('list')"
|
1585
1663
|
role="listbox"
|
@@ -1593,9 +1671,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
1593
1671
|
(focus)="onListFocus($event)"
|
1594
1672
|
(blur)="onListBlur($event)"
|
1595
1673
|
(keydown)="onListKeyDown($event)"
|
1596
|
-
cdkDropList
|
1597
|
-
[cdkDropListData]="items"
|
1598
|
-
(cdkDropListDropped)="drop($event)"
|
1599
1674
|
>
|
1600
1675
|
<ng-template ngFor let-option [ngForOf]="items" let-i="index">
|
1601
1676
|
<ng-container *ngIf="isOptionGroup(option)">
|
@@ -1607,6 +1682,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
1607
1682
|
cdkDrag
|
1608
1683
|
[cdkDragData]="option"
|
1609
1684
|
[cdkDragDisabled]="!dragdrop"
|
1685
|
+
(cdkDragStarted)="isDragging.set(true)"
|
1686
|
+
(cdkDragEnded)="isDragging.set(false)"
|
1610
1687
|
>
|
1611
1688
|
<span *ngIf="!groupTemplate && !_groupTemplate">{{ getOptionGroupLabel(option.optionGroup) }}</span>
|
1612
1689
|
<ng-container *ngTemplateOutlet="groupTemplate || _groupTemplate; context: { $implicit: option.optionGroup }"></ng-container>
|
@@ -1634,6 +1711,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
1634
1711
|
cdkDrag
|
1635
1712
|
[cdkDragData]="option"
|
1636
1713
|
[cdkDragDisabled]="!dragdrop"
|
1714
|
+
(cdkDragStarted)="isDragging.set(true)"
|
1715
|
+
(cdkDragEnded)="isDragging.set(false)"
|
1637
1716
|
>
|
1638
1717
|
<p-checkbox
|
1639
1718
|
*ngIf="checkbox && multiple"
|
@@ -1703,7 +1782,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
1703
1782
|
encapsulation: ViewEncapsulation.None,
|
1704
1783
|
host: {
|
1705
1784
|
'[attr.id]': 'id',
|
1706
|
-
'[class]': "cn(cx('root'), styleClass)"
|
1785
|
+
'[class]': "cn(cx('root'), styleClass, { 'p-listbox-dragging': isDragging() })"
|
1707
1786
|
}
|
1708
1787
|
}]
|
1709
1788
|
}], ctorParameters: () => [{ type: i1.FilterService }], propDecorators: { id: [{
|
@@ -1819,6 +1898,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
1819
1898
|
}], dragdrop: [{
|
1820
1899
|
type: Input,
|
1821
1900
|
args: [{ transform: booleanAttribute }]
|
1901
|
+
}], dropListData: [{
|
1902
|
+
type: Input
|
1822
1903
|
}], onChange: [{
|
1823
1904
|
type: Output
|
1824
1905
|
}], onClick: [{
|
@@ -1905,11 +1986,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
1905
1986
|
args: ['focusout', ['$event']]
|
1906
1987
|
}] } });
|
1907
1988
|
class ListboxModule {
|
1908
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
1909
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
1910
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
1989
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
1990
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.2", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule], exports: [Listbox, SharedModule] });
|
1991
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListboxModule, imports: [Listbox, SharedModule, SharedModule] });
|
1911
1992
|
}
|
1912
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
1993
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ListboxModule, decorators: [{
|
1913
1994
|
type: NgModule,
|
1914
1995
|
args: [{
|
1915
1996
|
imports: [Listbox, SharedModule],
|