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
@@ -24,10 +24,10 @@ class OrderListStyle extends BaseStyle {
|
|
24
24
|
name = 'orderlist';
|
25
25
|
theme = style;
|
26
26
|
classes = classes;
|
27
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
28
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
27
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: OrderListStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
28
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: OrderListStyle });
|
29
29
|
}
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: OrderListStyle, decorators: [{
|
31
31
|
type: Injectable
|
32
32
|
}] });
|
33
33
|
/**
|
@@ -162,6 +162,11 @@ class OrderList extends BaseComponent {
|
|
162
162
|
* @group Props
|
163
163
|
*/
|
164
164
|
autoOptionFocus = true;
|
165
|
+
/**
|
166
|
+
* Name of the field that uniquely identifies the record in the data.
|
167
|
+
* @group Props
|
168
|
+
*/
|
169
|
+
dataKey;
|
165
170
|
/**
|
166
171
|
* A list of values that are currently selected.
|
167
172
|
* @group Props
|
@@ -182,6 +187,10 @@ class OrderList extends BaseComponent {
|
|
182
187
|
if (this.filterValue) {
|
183
188
|
this.filter();
|
184
189
|
}
|
190
|
+
else if (this.dragdrop) {
|
191
|
+
// Initialize visibleOptions for drag&drop even when no filtering is active
|
192
|
+
this.visibleOptions = [...(val || [])];
|
193
|
+
}
|
185
194
|
}
|
186
195
|
get value() {
|
187
196
|
return this._value;
|
@@ -348,6 +357,10 @@ class OrderList extends BaseComponent {
|
|
348
357
|
reset: () => this.resetFilter()
|
349
358
|
};
|
350
359
|
}
|
360
|
+
// Initialize visibleOptions for drag&drop if enabled and value exists
|
361
|
+
if (this.dragdrop && this.value && !this.visibleOptions) {
|
362
|
+
this.visibleOptions = [...this.value];
|
363
|
+
}
|
351
364
|
}
|
352
365
|
templates;
|
353
366
|
_itemTemplate;
|
@@ -423,7 +436,7 @@ class OrderList extends BaseComponent {
|
|
423
436
|
* @group Method
|
424
437
|
*/
|
425
438
|
resetFilter() {
|
426
|
-
this.filterValue =
|
439
|
+
this.filterValue = '';
|
427
440
|
this.filterViewChild && (this.filterViewChild.nativeElement.value = '');
|
428
441
|
}
|
429
442
|
isItemVisible(item) {
|
@@ -445,22 +458,29 @@ class OrderList extends BaseComponent {
|
|
445
458
|
return this.filterValue ? !this.visibleOptions || this.visibleOptions.length === 0 : !this.value || this.value.length === 0;
|
446
459
|
}
|
447
460
|
moveUp() {
|
448
|
-
if (this.selection) {
|
449
|
-
|
450
|
-
|
461
|
+
if (this.selection && this.value instanceof Array) {
|
462
|
+
// Sort selection by their current index to process them from top to bottom
|
463
|
+
const sortedSelection = this.sortByIndexInList(this.selection, this.value);
|
464
|
+
for (let selectedItem of sortedSelection) {
|
451
465
|
let selectedItemIndex = findIndexInList(selectedItem, this.value);
|
452
|
-
if
|
466
|
+
// Only move if not at top and there's a valid position above
|
467
|
+
if (selectedItemIndex > 0) {
|
453
468
|
let movedItem = this.value[selectedItemIndex];
|
454
469
|
let temp = this.value[selectedItemIndex - 1];
|
455
470
|
this.value[selectedItemIndex - 1] = movedItem;
|
456
471
|
this.value[selectedItemIndex] = temp;
|
457
472
|
}
|
458
|
-
|
459
|
-
|
473
|
+
// Don't break - continue with other items even if one can't move
|
474
|
+
}
|
475
|
+
if (this.dragdrop) {
|
476
|
+
if (this.filterValue) {
|
477
|
+
this.filter();
|
478
|
+
}
|
479
|
+
else if (this.visibleOptions) {
|
480
|
+
// Update visibleOptions to match value when no filtering
|
481
|
+
this.visibleOptions = [...this.value];
|
460
482
|
}
|
461
483
|
}
|
462
|
-
if (this.dragdrop && this.filterValue)
|
463
|
-
this.filter();
|
464
484
|
this.movedUp = true;
|
465
485
|
this.onReorder.emit(this.selection);
|
466
486
|
}
|
@@ -470,7 +490,7 @@ class OrderList extends BaseComponent {
|
|
470
490
|
if (this.selection) {
|
471
491
|
for (let i = this.selection.length - 1; i >= 0; i--) {
|
472
492
|
let selectedItem = this.selection[i];
|
473
|
-
let selectedItemIndex = findIndexInList(selectedItem, this.value);
|
493
|
+
let selectedItemIndex = findIndexInList(selectedItem, this.value || []);
|
474
494
|
if (selectedItemIndex != 0 && this.value instanceof Array) {
|
475
495
|
let movedItem = this.value.splice(selectedItemIndex, 1)[0];
|
476
496
|
this.value.unshift(movedItem);
|
@@ -479,8 +499,15 @@ class OrderList extends BaseComponent {
|
|
479
499
|
break;
|
480
500
|
}
|
481
501
|
}
|
482
|
-
if (this.dragdrop
|
483
|
-
this.
|
502
|
+
if (this.dragdrop) {
|
503
|
+
if (this.filterValue) {
|
504
|
+
this.filter();
|
505
|
+
}
|
506
|
+
else if (this.visibleOptions) {
|
507
|
+
// Update visibleOptions to match value when no filtering
|
508
|
+
this.visibleOptions = [...(this.value || [])];
|
509
|
+
}
|
510
|
+
}
|
484
511
|
this.onReorder.emit(this.selection);
|
485
512
|
setTimeout(() => {
|
486
513
|
this.listViewChild.scrollInView(0);
|
@@ -489,22 +516,25 @@ class OrderList extends BaseComponent {
|
|
489
516
|
this.listViewChild?.cd?.markForCheck();
|
490
517
|
}
|
491
518
|
moveDown() {
|
492
|
-
if (this.selection) {
|
493
|
-
|
494
|
-
|
519
|
+
if (this.selection && this.value instanceof Array) {
|
520
|
+
const sortedSelection = this.sortByIndexInList(this.selection, this.value).reverse();
|
521
|
+
for (let selectedItem of sortedSelection) {
|
495
522
|
let selectedItemIndex = findIndexInList(selectedItem, this.value);
|
496
|
-
if (
|
523
|
+
if (selectedItemIndex < this.value.length - 1) {
|
497
524
|
let movedItem = this.value[selectedItemIndex];
|
498
525
|
let temp = this.value[selectedItemIndex + 1];
|
499
526
|
this.value[selectedItemIndex + 1] = movedItem;
|
500
527
|
this.value[selectedItemIndex] = temp;
|
501
528
|
}
|
502
|
-
|
503
|
-
|
529
|
+
}
|
530
|
+
if (this.dragdrop) {
|
531
|
+
if (this.filterValue) {
|
532
|
+
this.filter();
|
533
|
+
}
|
534
|
+
else if (this.visibleOptions) {
|
535
|
+
this.visibleOptions = [...this.value];
|
504
536
|
}
|
505
537
|
}
|
506
|
-
if (this.dragdrop && this.filterValue)
|
507
|
-
this.filter();
|
508
538
|
this.movedDown = true;
|
509
539
|
this.onReorder.emit(this.selection);
|
510
540
|
}
|
@@ -514,7 +544,7 @@ class OrderList extends BaseComponent {
|
|
514
544
|
if (this.selection) {
|
515
545
|
for (let i = 0; i < this.selection.length; i++) {
|
516
546
|
let selectedItem = this.selection[i];
|
517
|
-
let selectedItemIndex = findIndexInList(selectedItem, this.value);
|
547
|
+
let selectedItemIndex = findIndexInList(selectedItem, this.value || []);
|
518
548
|
if (this.value instanceof Array && selectedItemIndex != this.value.length - 1) {
|
519
549
|
let movedItem = this.value.splice(selectedItemIndex, 1)[0];
|
520
550
|
this.value.push(movedItem);
|
@@ -523,28 +553,102 @@ class OrderList extends BaseComponent {
|
|
523
553
|
break;
|
524
554
|
}
|
525
555
|
}
|
526
|
-
if (this.dragdrop
|
527
|
-
this.
|
556
|
+
if (this.dragdrop) {
|
557
|
+
if (this.filterValue) {
|
558
|
+
this.filter();
|
559
|
+
}
|
560
|
+
else if (this.visibleOptions) {
|
561
|
+
this.visibleOptions = [...(this.value || [])];
|
562
|
+
}
|
563
|
+
}
|
528
564
|
this.onReorder.emit(this.selection);
|
529
|
-
this.listViewChild
|
565
|
+
this.listViewChild?.scrollInView(this.value?.length ? this.value.length - 1 : 0);
|
530
566
|
}
|
531
567
|
this.listViewChild?.cd?.markForCheck();
|
532
568
|
}
|
533
569
|
onDrop(event) {
|
534
570
|
let previousIndex = event.previousIndex;
|
535
571
|
let currentIndex = event.currentIndex;
|
572
|
+
// Store the original state before any modifications
|
573
|
+
const originalValue = [...(this.value || [])];
|
574
|
+
const originalVisibleOptions = this.visibleOptions ? [...this.visibleOptions] : null;
|
536
575
|
if (previousIndex !== currentIndex) {
|
537
|
-
|
576
|
+
// Determine items to move
|
577
|
+
let itemsToMove = [];
|
578
|
+
// Check if dragged item is in selected items AND we have multiple selections
|
579
|
+
if (this.selection && this.selection.length > 1 && findIndexInList(event.item.data, this.selection) !== -1) {
|
580
|
+
// Multi-selection: Move all selected items
|
581
|
+
itemsToMove = [...this.selection];
|
582
|
+
// For multi-selection, restore original state to undo Listbox's automatic reordering
|
583
|
+
if (this.value) {
|
584
|
+
this.value.length = 0;
|
585
|
+
this.value.push(...originalValue);
|
586
|
+
}
|
587
|
+
if (originalVisibleOptions && this.visibleOptions) {
|
588
|
+
this.visibleOptions.length = 0;
|
589
|
+
this.visibleOptions.push(...originalVisibleOptions);
|
590
|
+
}
|
591
|
+
// Sort items by their index in the array to maintain relative order
|
592
|
+
itemsToMove = this.sortByIndexInList(itemsToMove, this.value || []);
|
593
|
+
// Calculate how many selected items are before the drop position
|
594
|
+
let itemsBefore = 0;
|
595
|
+
for (const item of itemsToMove) {
|
596
|
+
const itemIndex = findIndexInList(item, this.value || []);
|
597
|
+
if (itemIndex !== -1 && itemIndex < currentIndex) {
|
598
|
+
itemsBefore++;
|
599
|
+
}
|
600
|
+
}
|
601
|
+
// Remove all selected items (in reverse order to avoid index shifting)
|
602
|
+
for (let i = itemsToMove.length - 1; i >= 0; i--) {
|
603
|
+
const itemIndex = findIndexInList(itemsToMove[i], this.value || []);
|
604
|
+
if (itemIndex !== -1) {
|
605
|
+
this.value?.splice(itemIndex, 1);
|
606
|
+
}
|
607
|
+
}
|
608
|
+
// Calculate the final target index
|
609
|
+
// If we're dragging down, we need to subtract the number of items that were before the target
|
610
|
+
const targetIndex = Math.max(0, currentIndex - itemsBefore);
|
611
|
+
// Insert all selected items at the target position
|
612
|
+
for (let i = 0; i < itemsToMove.length; i++) {
|
613
|
+
this.value?.splice(targetIndex + i, 0, itemsToMove[i]);
|
614
|
+
}
|
615
|
+
// Update visibleOptions to match value
|
616
|
+
if (this.dragdrop) {
|
617
|
+
if (this.filterValue) {
|
618
|
+
this.filter();
|
619
|
+
}
|
620
|
+
else if (this.visibleOptions) {
|
621
|
+
this.visibleOptions = [...(this.value || [])];
|
622
|
+
}
|
623
|
+
}
|
624
|
+
// Ensure change detection runs
|
625
|
+
this.cd?.markForCheck();
|
626
|
+
this.onReorder.emit(itemsToMove);
|
627
|
+
}
|
628
|
+
else {
|
629
|
+
// Single item: Move only the dragged item (let Listbox handle it)
|
630
|
+
itemsToMove = [event.item.data];
|
538
631
|
if (this.filterValue) {
|
539
|
-
previousIndex = findIndexInList(event.item.data, this.value);
|
540
|
-
currentIndex = findIndexInList(this.visibleOptions[currentIndex], this.value);
|
632
|
+
previousIndex = findIndexInList(event.item.data, this.value || []);
|
633
|
+
currentIndex = findIndexInList(this.visibleOptions?.[currentIndex], this.value || []);
|
634
|
+
}
|
635
|
+
moveItemInArray(this.value, previousIndex, currentIndex);
|
636
|
+
// Sync visibleOptions for non-filtered case
|
637
|
+
if (this.dragdrop && this.visibleOptions && !this.filterValue) {
|
638
|
+
this.visibleOptions = [...(this.value || [])];
|
541
639
|
}
|
542
|
-
|
640
|
+
this.onReorder.emit([event.item.data]);
|
543
641
|
}
|
544
|
-
moveItemInArray(this.value, previousIndex, currentIndex);
|
545
|
-
this.onReorder.emit([event.item.data]);
|
546
642
|
}
|
547
643
|
}
|
644
|
+
// Helper method to sort items by their index in a list
|
645
|
+
sortByIndexInList(items, list) {
|
646
|
+
return items.sort((a, b) => {
|
647
|
+
const indexA = findIndexInList(a, list);
|
648
|
+
const indexB = findIndexInList(b, list);
|
649
|
+
return indexA - indexB;
|
650
|
+
});
|
651
|
+
}
|
548
652
|
onListFocus(event) {
|
549
653
|
this.onFocus.emit(event);
|
550
654
|
}
|
@@ -606,8 +710,8 @@ class OrderList extends BaseComponent {
|
|
606
710
|
this.destroyStyle();
|
607
711
|
super.ngOnDestroy();
|
608
712
|
}
|
609
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
610
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.
|
713
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: OrderList, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
714
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.2", type: OrderList, isStandalone: true, selector: "p-orderList, p-orderlist, p-order-list", inputs: { header: "header", styleClass: "styleClass", tabindex: ["tabindex", "tabindex", numberAttribute], ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", listStyle: "listStyle", responsive: ["responsive", "responsive", booleanAttribute], filterBy: "filterBy", filterPlaceholder: "filterPlaceholder", filterLocale: "filterLocale", metaKeySelection: ["metaKeySelection", "metaKeySelection", booleanAttribute], dragdrop: ["dragdrop", "dragdrop", booleanAttribute], controlsPosition: "controlsPosition", ariaFilterLabel: "ariaFilterLabel", filterMatchMode: "filterMatchMode", breakpoint: "breakpoint", stripedRows: ["stripedRows", "stripedRows", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], trackBy: "trackBy", scrollHeight: "scrollHeight", autoOptionFocus: ["autoOptionFocus", "autoOptionFocus", booleanAttribute], dataKey: "dataKey", selection: "selection", value: "value", buttonProps: "buttonProps", moveUpButtonProps: "moveUpButtonProps", moveTopButtonProps: "moveTopButtonProps", moveDownButtonProps: "moveDownButtonProps", moveBottomButtonProps: "moveBottomButtonProps" }, outputs: { selectionChange: "selectionChange", onReorder: "onReorder", onSelectionChange: "onSelectionChange", onFilterEvent: "onFilterEvent", onFocus: "onFocus", onBlur: "onBlur" }, host: { properties: { "class": "cn(cx('root'), styleClass)", "attr.data-pc-section": "'root'" } }, providers: [OrderListStyle], queries: [{ propertyName: "itemTemplate", first: true, predicate: ["item"] }, { propertyName: "emptyMessageTemplate", first: true, predicate: ["empty"] }, { propertyName: "emptyFilterMessageTemplate", first: true, predicate: ["emptyfilter"] }, { propertyName: "filterTemplate", first: true, predicate: ["filter"] }, { propertyName: "headerTemplate", first: true, predicate: ["header"] }, { propertyName: "moveUpIconTemplate", first: true, predicate: ["moveupicon"] }, { propertyName: "moveTopIconTemplate", first: true, predicate: ["movetopicon"] }, { propertyName: "moveDownIconTemplate", first: true, predicate: ["movedownicon"] }, { propertyName: "moveBottomIconTemplate", first: true, predicate: ["movebottomicon"] }, { propertyName: "filterIconTemplate", first: true, predicate: ["filtericon"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "listViewChild", first: true, predicate: ["listelement"], descendants: true }, { propertyName: "filterViewChild", first: true, predicate: ["filter"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
611
715
|
<div [class]="cx('controls')" [attr.data-pc-section]="'controls'">
|
612
716
|
<button type="button" [disabled]="moveDisabled()" pButton pRipple (click)="moveUp()" [attr.aria-label]="moveUpAriaLabel" [attr.data-pc-section]="'moveUpButton'" [buttonProps]="getButtonProps('up')">
|
613
717
|
<svg data-p-icon="angle-up" *ngIf="!moveUpIconTemplate && !_moveUpIconTemplate" [attr.data-pc-section]="'moveupicon'" pButtonIcon />
|
@@ -631,7 +735,7 @@ class OrderList extends BaseComponent {
|
|
631
735
|
[multiple]="true"
|
632
736
|
[options]="value"
|
633
737
|
[(ngModel)]="d_selection"
|
634
|
-
optionLabel="name"
|
738
|
+
[optionLabel]="dataKey ?? 'name'"
|
635
739
|
[id]="id + '_list'"
|
636
740
|
[listStyle]="listStyle"
|
637
741
|
[striped]="stripedRows"
|
@@ -672,9 +776,9 @@ class OrderList extends BaseComponent {
|
|
672
776
|
</ng-template>
|
673
777
|
</ng-container>
|
674
778
|
</p-listbox>
|
675
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: i2.ButtonIcon, selector: "[pButtonIcon]" }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: DragDropModule }, { kind: "component", type: AngleDoubleDownIcon, selector: "[data-p-icon=\"angle-double-down\"]" }, { kind: "component", type: AngleDoubleUpIcon, selector: "[data-p-icon=\"angle-double-up\"]" }, { kind: "component", type: AngleUpIcon, selector: "[data-p-icon=\"angle-up\"]" }, { kind: "component", type: AngleDownIcon, selector: "[data-p-icon=\"angle-down\"]" }, { kind: "component", type: Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "styleClass", "listStyle", "listStyleClass", "readonly", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark", "dragdrop", "fluid"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad", "onDrop"] }, { 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 }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
779
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "directive", type: i2.ButtonIcon, selector: "[pButtonIcon]" }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: DragDropModule }, { kind: "component", type: AngleDoubleDownIcon, selector: "[data-p-icon=\"angle-double-down\"]" }, { kind: "component", type: AngleDoubleUpIcon, selector: "[data-p-icon=\"angle-double-up\"]" }, { kind: "component", type: AngleUpIcon, selector: "[data-p-icon=\"angle-up\"]" }, { kind: "component", type: AngleDownIcon, selector: "[data-p-icon=\"angle-down\"]" }, { kind: "component", type: Listbox, selector: "p-listbox, p-listBox, p-list-box", inputs: ["id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "ariaLabel", "selectOnFocus", "searchLocale", "focusOnHover", "filterMessage", "filterFields", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "scrollHeight", "tabindex", "multiple", "styleClass", "listStyle", "listStyleClass", "readonly", "checkbox", "filter", "filterBy", "filterMatchMode", "filterLocale", "metaKeySelection", "dataKey", "showToggleAll", "optionLabel", "optionValue", "optionGroupChildren", "optionGroupLabel", "optionDisabled", "ariaFilterLabel", "filterPlaceHolder", "emptyFilterMessage", "emptyMessage", "group", "options", "filterValue", "selectAll", "striped", "highlightOnSelect", "checkmark", "dragdrop", "dropListData", "fluid"], outputs: ["onChange", "onClick", "onDblClick", "onFilter", "onFocus", "onBlur", "onSelectAllChange", "onLazyLoad", "onDrop"] }, { 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 }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
676
780
|
}
|
677
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
781
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: OrderList, decorators: [{
|
678
782
|
type: Component,
|
679
783
|
args: [{
|
680
784
|
selector: 'p-orderList, p-orderlist, p-order-list',
|
@@ -704,7 +808,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
704
808
|
[multiple]="true"
|
705
809
|
[options]="value"
|
706
810
|
[(ngModel)]="d_selection"
|
707
|
-
optionLabel="name"
|
811
|
+
[optionLabel]="dataKey ?? 'name'"
|
708
812
|
[id]="id + '_list'"
|
709
813
|
[listStyle]="listStyle"
|
710
814
|
[striped]="stripedRows"
|
@@ -803,6 +907,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
803
907
|
}], autoOptionFocus: [{
|
804
908
|
type: Input,
|
805
909
|
args: [{ transform: booleanAttribute }]
|
910
|
+
}], dataKey: [{
|
911
|
+
type: Input
|
806
912
|
}], selection: [{
|
807
913
|
type: Input
|
808
914
|
}], value: [{
|
@@ -870,11 +976,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImpor
|
|
870
976
|
args: [PrimeTemplate]
|
871
977
|
}] } });
|
872
978
|
class OrderListModule {
|
873
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
874
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
875
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
979
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: OrderListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
980
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.2", ngImport: i0, type: OrderListModule, imports: [OrderList, SharedModule], exports: [OrderList, SharedModule] });
|
981
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: OrderListModule, imports: [OrderList, SharedModule, SharedModule] });
|
876
982
|
}
|
877
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
983
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: OrderListModule, decorators: [{
|
878
984
|
type: NgModule,
|
879
985
|
args: [{
|
880
986
|
imports: [OrderList, SharedModule],
|